@getsolaris/copse 1.2.0 → 1.3.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/copse.js CHANGED
@@ -1,39 +1,40 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var Iu=Object.defineProperty;var Bu=(e)=>e;function Vu(e,t){this[e]=Bu.bind(null,t)}var Ne=(e,t)=>{for(var n in t)Iu(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Vu.bind(t,n)})};var ge=(e,t)=>()=>(e&&(t=e(e=0)),t);var cn=import.meta.require;import{existsSync as Pi,readdirSync as Md,statSync as qc}from"fs";import{join as Ai,resolve as Pd}from"path";function Wd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Yc(e){return Pd(Wd(e))}function jd(e){let t=Ai(e,".git");if(!Pi(t))return!1;try{return qc(t).isDirectory()}catch{return!1}}function Ld(e){return Pi(Ai(e,".git"))}function Id(e){if(!Pi(e))return!1;try{return qc(e).isDirectory()}catch{return!1}}function Bd(e){let t=e.map((n)=>n.trim()).filter(Boolean).map((n)=>new Bun.Glob(n));if(t.length===0)return()=>!1;return(n)=>t.some((o)=>o.match(n))}function Vd(e,t=Xc,n=[]){let o=Math.max(1,Math.min(t,Ad)),i=Yc(e);if(!Id(i))return[];let s=Bd(n),c=new Set,a=(u,h)=>{let m;try{m=Md(u,{withFileTypes:!0})}catch{return}for(let p of m){if(!p.isDirectory()||s(p.name))continue;let w=Ai(u,p.name);if(Ld(w)){if(jd(w))c.add(w);continue}if(h<o)a(w,h+1)}};return a(i,1),[...c].sort((u,h)=>u.localeCompare(h))}function Zc(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>Yc(i.path))),o=[];for(let i of t){let s=i.depth??Xc,c=i.exclude??[],a=Vd(i.path,s,c);for(let u of a){if(n.has(u))continue;n.add(u),o.push({path:u,...i.defaults??{}})}}if(o.length===0)return e;return{...e,repos:[...e.repos??[],...o]}}var Xc=1,Ad=3;var Qc=()=>{};import{join as ji,resolve as wr}from"path";import*as ln from"fs";function Vt(e,t,n){if(!Array.isArray(e)||e.some((o)=>typeof o!=="string"))n.push({field:t,message:"Must be an array of strings"})}function ea(){let t=Bun.env.XDG_CONFIG_HOME??ji(Bun.env.HOME??"~",".config");return ji(t,"copse")}function Ct(){return ji(ea(),"config.json")}function $n(e){let t=[];if(typeof e!=="object"||e===null)return t.push({field:"root",message:"Config must be a JSON object"}),t;let n=e;if(!("version"in n))t.push({field:"version",message:"Required field 'version' is missing"});else if(n.version!==1)t.push({field:"version",message:`Expected version 1, got ${JSON.stringify(n.version)}`});for(let o of Object.keys(n))if(!Hd.has(o))t.push({field:o,message:`Unknown field '${o}'`});if("defaults"in n&&n.defaults!==void 0)if(typeof n.defaults!=="object"||n.defaults===null)t.push({field:"defaults",message:"Must be an object"});else{let o=n.defaults;for(let i of Object.keys(o))if(!Nc.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in o&&typeof o.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in o&&typeof o.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});if("base"in o&&typeof o.base!=="string")t.push({field:"defaults.base",message:"Must be a string"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in o)Vt(o[i],`defaults.${i}`,t);if("sharedDeps"in o&&o.sharedDeps!==void 0)if(typeof o.sharedDeps!=="object"||o.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Wi(o.sharedDeps,"defaults.sharedDeps",t)}if("repos"in n&&n.repos!==void 0)if(!Array.isArray(n.repos))t.push({field:"repos",message:"Must be an array"});else for(let o=0;o<n.repos.length;o++){let i=n.repos[o],s=`repos[${o}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Kd.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("worktreeDir"in c&&typeof c.worktreeDir!=="string")t.push({field:`${s}.worktreeDir`,message:"Must be a string"});if("autoUpstream"in c&&typeof c.autoUpstream!=="boolean")t.push({field:`${s}.autoUpstream`,message:"Must be a boolean"});if("base"in c&&typeof c.base!=="string")t.push({field:`${s}.base`,message:"Must be a string"});for(let a of["copyFiles","linkFiles","postCreate","postRemove"])if(a in c)Vt(c[a],`${s}.${a}`,t);if("sharedDeps"in c&&c.sharedDeps!==void 0)if(typeof c.sharedDeps!=="object"||c.sharedDeps===null)t.push({field:`${s}.sharedDeps`,message:"Must be an object"});else Wi(c.sharedDeps,`${s}.sharedDeps`,t);if("monorepo"in c&&c.monorepo!==void 0)if(typeof c.monorepo!=="object"||c.monorepo===null)t.push({field:`${s}.monorepo`,message:"Must be an object"});else{let a=c.monorepo;for(let u of Object.keys(a))if(!Ud.has(u))t.push({field:`${s}.monorepo.${u}`,message:`Unknown field '${u}'`});if("autoDetect"in a&&typeof a.autoDetect!=="boolean")t.push({field:`${s}.monorepo.autoDetect`,message:"Must be a boolean"});if("extraPatterns"in a&&a.extraPatterns!==void 0)Vt(a.extraPatterns,`${s}.monorepo.extraPatterns`,t);if("hooks"in a&&a.hooks!==void 0)if(!Array.isArray(a.hooks))t.push({field:`${s}.monorepo.hooks`,message:"Must be an array"});else for(let u=0;u<a.hooks.length;u++){let h=a.hooks[u];if(typeof h!=="object"||h===null){t.push({field:`${s}.monorepo.hooks[${u}]`,message:"Must be an object"});continue}if(!("glob"in h)||typeof h.glob!=="string")t.push({field:`${s}.monorepo.hooks[${u}].glob`,message:"Required string field"});if("copyFiles"in h&&h.copyFiles!==void 0)Vt(h.copyFiles,`${s}.monorepo.hooks[${u}].copyFiles`,t);if("linkFiles"in h&&h.linkFiles!==void 0)Vt(h.linkFiles,`${s}.monorepo.hooks[${u}].linkFiles`,t);if("postCreate"in h&&h.postCreate!==void 0)Vt(h.postCreate,`${s}.monorepo.hooks[${u}].postCreate`,t);if("postRemove"in h&&h.postRemove!==void 0)Vt(h.postRemove,`${s}.monorepo.hooks[${u}].postRemove`,t)}}}if("workspaces"in n&&n.workspaces!==void 0)if(!Array.isArray(n.workspaces))t.push({field:"workspaces",message:"Must be an array"});else for(let o=0;o<n.workspaces.length;o++){let i=n.workspaces[o],s=`workspaces[${o}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Gd.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("depth"in c&&c.depth!==void 0){if(typeof c.depth!=="number"||!Number.isInteger(c.depth)||c.depth<1||c.depth>3)t.push({field:`${s}.depth`,message:"Must be an integer between 1 and 3"})}if("exclude"in c&&c.exclude!==void 0)Vt(c.exclude,`${s}.exclude`,t);if("defaults"in c&&c.defaults!==void 0)if(typeof c.defaults!=="object"||c.defaults===null||Array.isArray(c.defaults))t.push({field:`${s}.defaults`,message:"Must be an object"});else{let a=c.defaults;for(let u of Object.keys(a))if(!Nc.has(u))t.push({field:`${s}.defaults.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${s}.defaults.worktreeDir`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${s}.defaults.autoUpstream`,message:"Must be a boolean"});if("base"in a&&typeof a.base!=="string")t.push({field:`${s}.defaults.base`,message:"Must be a string"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${s}.defaults.${u}`,t);if("sharedDeps"in a&&a.sharedDeps!==void 0)if(typeof a.sharedDeps!=="object"||a.sharedDeps===null)t.push({field:`${s}.defaults.sharedDeps`,message:"Must be an object"});else Wi(a.sharedDeps,`${s}.defaults.sharedDeps`,t)}}if("templates"in n&&n.templates!==void 0)if(typeof n.templates!=="object"||n.templates===null||Array.isArray(n.templates))t.push({field:"templates",message:"Must be an object (key-value map)"});else{let o=n.templates;for(let[i,s]of Object.entries(o)){let c=`templates.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let u of Object.keys(a))if(!Td.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${c}.worktreeDir`,message:"Must be a string"});if("base"in a&&typeof a.base!=="string")t.push({field:`${c}.base`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${c}.autoUpstream`,message:"Must be a boolean"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${c}.${u}`,t)}}if("lifecycle"in n&&n.lifecycle!==void 0)if(typeof n.lifecycle!=="object"||n.lifecycle===null)t.push({field:"lifecycle",message:"Must be an object"});else{let o=n.lifecycle;for(let i of Object.keys(o))if(!Jd.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in o&&typeof o.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in o&&(typeof o.staleAfterDays!=="number"||o.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in o&&(typeof o.maxWorktrees!=="number"||o.maxWorktrees<1))t.push({field:"lifecycle.maxWorktrees",message:"Must be a positive number"})}if("sessions"in n&&n.sessions!==void 0)if(typeof n.sessions!=="object"||n.sessions===null)t.push({field:"sessions",message:"Must be an object"});else{let o=n.sessions;for(let i of Object.keys(o))if(!zd.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in o&&typeof o[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in o&&typeof o.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in o&&typeof o.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in o&&o.layouts!==void 0)if(typeof o.layouts!=="object"||o.layouts===null||Array.isArray(o.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=o.layouts;for(let[s,c]of Object.entries(i)){let a=`sessions.layouts.${s}`;if(typeof c!=="object"||c===null){t.push({field:a,message:"Must be an object"});continue}let u=c;if(!("windows"in u)||!Array.isArray(u.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let h=0;h<u.windows.length;h++){let m=u.windows[h];if(typeof m!=="object"||m===null){t.push({field:`${a}.windows[${h}]`,message:"Must be an object"});continue}if(!("name"in m)||typeof m.name!=="string")t.push({field:`${a}.windows[${h}].name`,message:"Required string field"});if("command"in m&&typeof m.command!=="string")t.push({field:`${a}.windows[${h}].command`,message:"Must be a string"})}}}if("defaultLayout"in o&&typeof o.defaultLayout==="string"&&"layouts"in o&&typeof o.layouts==="object"&&o.layouts!==null){let i=o.layouts;if(!(o.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${o.defaultLayout}' does not exist in sessions.layouts`})}}if("profiles"in n&&n.profiles!==void 0)if(typeof n.profiles!=="object"||n.profiles===null||Array.isArray(n.profiles))t.push({field:"profiles",message:"Must be an object (key-value map)"});else{let o=n.profiles;for(let[i,s]of Object.entries(o)){let c=`profiles.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let u of Object.keys(a))if(!qd.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`})}}if("activeProfile"in n&&n.activeProfile!==void 0){if(typeof n.activeProfile!=="string")t.push({field:"activeProfile",message:"Must be a string"});else if("profiles"in n&&n.profiles!==void 0&&typeof n.profiles==="object"&&n.profiles!==null&&!Array.isArray(n.profiles)){let o=n.profiles;if(!(n.activeProfile in o))t.push({field:"activeProfile",message:`Profile '${n.activeProfile}' does not exist in profiles`})}else if(!("profiles"in n)||n.profiles===void 0)t.push({field:"activeProfile",message:"Cannot set activeProfile without profiles"})}return t}function Wi(e,t,n){let o=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!o.has(i))n.push({field:`${t}.${i}`,message:`Unknown field '${i}'`});if("strategy"in e&&!["hardlink","symlink","copy"].includes(e.strategy))n.push({field:`${t}.strategy`,message:'Must be "hardlink", "symlink", or "copy"'});if("paths"in e)Vt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Vt(e.invalidateOn,`${t}.invalidateOn`,n)}function To(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Nn(e){if(Array.isArray(e))return e.map((t)=>Nn(t));if(To(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=Nn(o);return t}return e}function ta(e,t){if(t===void 0)return Nn(e);if(Array.isArray(t))return t.map((i)=>Nn(i));if(!To(t))return Nn(t);let n=To(e)?e:{},o={};for(let[i,s]of Object.entries(n))o[i]=Nn(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(To(c)&&To(s)){o[i]=ta(c,s);continue}o[i]=Nn(s)}return o}function Xd(e){if(!e.activeProfile)return structuredClone(e);let t=e.profiles?.[e.activeProfile];if(!t||typeof t!=="object"||Array.isArray(t))throw Error(`Active profile '${e.activeProfile}' does not exist`);return ta(e,t)}function na(e){let t=e??Ct();if(!ln.existsSync(t))return structuredClone(_c);let n;try{let c=xr.readFileSync(t,"utf-8");n=JSON.parse(c)}catch(c){let a=c.message;if(a.includes("JSON"))throw Error(`Invalid JSON in config file: ${a}`);if(c instanceof SyntaxError)throw Error(`Invalid JSON in config file: ${a}`);throw Error(`Failed to read config file: ${a}`)}let o=$n(n);if(o.length>0){let c=o.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=Xd(n),s=$n(i);if(s.length>0){let c=s.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed after applying activeProfile: ${c}`)}return i}function Ae(e){return Zc(na(e))}function Li(e){return na(e)}function Ht(e,t){let n=wr(t),o=e.repos?.find((i)=>wr(i.path)===n);return{worktreeDir:o?.worktreeDir??e.defaults?.worktreeDir??fo.worktreeDir,copyFiles:o?.copyFiles??e.defaults?.copyFiles??fo.copyFiles,linkFiles:o?.linkFiles??e.defaults?.linkFiles??fo.linkFiles,postCreate:o?.postCreate??e.defaults?.postCreate??fo.postCreate,postRemove:o?.postRemove??e.defaults?.postRemove??fo.postRemove,autoUpstream:o?.autoUpstream??e.defaults?.autoUpstream??fo.autoUpstream,monorepo:o?.monorepo,sharedDeps:o?.sharedDeps??e.defaults?.sharedDeps,base:o?.base??e.defaults?.base}}function En(e){return(e.repos??[]).map((t)=>wr(t.path))}function yr(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function Kt(e){let t=e??Ct(),n=e?wr(t,".."):ea();if(!ln.existsSync(n))xr.mkdirSync(n,{recursive:!0,mode:448});if(ln.existsSync(t))return t;return _n(t,`${JSON.stringify(_c,null,2)}
4
- `),t}function oa(e){let t=e??Ct(),n=ln.existsSync(t);return{path:Kt(e),created:!n}}function Sr(e,t){return e.templates?.[t]}function Cr(e,t){return{worktreeDir:t.worktreeDir??e.worktreeDir,copyFiles:t.copyFiles??e.copyFiles,linkFiles:t.linkFiles??e.linkFiles,postCreate:t.postCreate??e.postCreate,postRemove:t.postRemove??e.postRemove,autoUpstream:t.autoUpstream??e.autoUpstream,monorepo:e.monorepo,sharedDeps:e.sharedDeps,base:t.base??e.base}}function Fn(e){return e.sessions??{}}function Rr(e,t){let n=e.sessions;if(!n?.layouts)return;let o=t??n.defaultLayout;if(!o)return;return n.layouts[o]}function ra(e,t,n){if(t.length===0)return;let o=e;for(let s=0;s<t.length-1;s++){let c=t[s],a=t[s+1],u=o[c];if(u===void 0||u===null)o[c]=typeof a==="number"?[]:{};o=o[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(o)&&typeof i==="number")o.splice(i,1);else delete o[i];return}o[i]=n}function _n(e,t){let n=`${e}.tmp.${Date.now()}`;try{ln.writeFileSync(n,t,{encoding:"utf-8",mode:384});let o=JSON.parse(t),i=$n(o);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);xr.renameSync(n,e)}catch(o){if(ln.existsSync(n))xr.unlinkSync(n);throw o}}var xr,$c="~/.copse/worktrees/{repo}-{branch}",_c,fo,Hd,Nc,Kd,Gd,Ud,Td,Jd,zd,qd;var qe=ge(()=>{Qc();xr=ln,_c={version:1,defaults:{worktreeDir:$c,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},fo={worktreeDir:$c,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};Hd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),Nc=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),Kd=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),Gd=new Set(["path","depth","exclude","defaults"]),Ud=new Set(["autoDetect","extraPatterns","hooks"]),Td=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),Jd=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),zd=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),qd=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function ia(e){let t=String(e),n=t.length-1;return _e.context.id+(n?String.fromCharCode(96+n):"")+t}function Vi(e){_e.context=e}function Yd(){return{..._e.context,id:_e.getNextContextId(),count:0}}function Jo(e,t){let n=He,o=je,i=e.length===0,s=t===void 0?o:t,c=i?ha:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>Rt(()=>Dn(c)));je=c,He=null;try{return Dt(a,!0)}finally{He=n,je=o}}function ue(e,t){t=t?Object.assign({},kr,t):kr;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},o=(i)=>{if(typeof i==="function")if(fe&&fe.running&&fe.sources.has(n))i=i(n.tValue);else i=i(n.value);return ga(n,i)};return[pa.bind(n),o]}function ca(e,t,n){let o=Dr(e,t,!0,Mt);if(ho&&fe&&fe.running)ot.push(o);else mo(o)}function _t(e,t,n){let o=Dr(e,t,!1,Mt);if(ho&&fe&&fe.running)ot.push(o);else mo(o)}function Pt(e,t,n){da=ih;let o=Dr(e,t,!1,Mt),i=qo&&Gt(qo);if(i)o.suspense=i;if(!n||!n.render)o.user=!0;mt?mt.push(o):mo(o)}function Xe(e,t,n){n=n?Object.assign({},kr,n):kr;let o=Dr(e,t,!0,0);if(o.observers=null,o.observerSlots=null,o.comparator=n.equals||void 0,ho&&fe&&fe.running)o.tState=Mt,ot.push(o);else mo(o);return pa.bind(o)}function _d(e){return e&&typeof e==="object"&&"then"in e}function ma(e,t,n){let o,i,s;if(typeof t==="function")o=e,i=t,s=n||{};else o=!0,i=e,s=t||{};let c=null,a=Ii,u=null,h=!1,m=!1,p="initialValue"in s,w=typeof o==="function"&&Xe(o),A=new Set,[W,y]=(s.storage||ue)(s.initialValue),[C,k]=ue(void 0),[F,x]=ue(void 0,{equals:!1}),[S,O]=ue(p?"ready":"unresolved");if(_e.context){if(u=_e.getNextContextId(),s.ssrLoadFrom==="initial")a=s.initialValue;else if(_e.load&&_e.has(u))a=_e.load(u)}function G(J,q,Y,ne){if(c===J){if(c=null,ne!==void 0&&(p=!0),(J===a||q===a)&&s.onHydrated)queueMicrotask(()=>s.onHydrated(ne,{value:q}));if(a=Ii,fe&&J&&h)fe.promises.delete(J),h=!1,Dt(()=>{fe.running=!0,I(q,Y)},!1);else I(q,Y)}return q}function I(J,q){Dt(()=>{if(q===void 0)y(()=>J);O(q!==void 0?"errored":p?"ready":"unresolved"),k(q);for(let Y of A.keys())Y.decrement();A.clear()},!1)}function z(){let J=qo&&Gt(qo),q=W(),Y=C();if(Y!==void 0&&!c)throw Y;if(He&&!He.user&&J)ca(()=>{if(F(),c){if(J.resolved&&fe&&h)fe.promises.add(c);else if(!A.has(J))J.increment(),A.add(J)}});return q}function Z(J=!0){if(J!==!1&&m)return;m=!1;let q=w?w():o;if(h=fe&&fe.running,q==null||q===!1){G(c,Rt(W));return}if(fe&&c)fe.promises.delete(c);let Y,ne=a!==Ii?a:Rt(()=>{try{return i(q,{value:W(),refetching:J})}catch(he){Y=he}});if(Y!==void 0){G(c,void 0,vr(Y),q);return}else if(!_d(ne))return G(c,ne,void 0,q),ne;if(c=ne,"v"in ne){if(ne.s===1)G(c,ne.v,void 0,q);else G(c,void 0,vr(ne.v),q);return ne}return m=!0,queueMicrotask(()=>m=!1),Dt(()=>{O(p?"refreshing":"pending"),x()},!1),ne.then((he)=>G(ne,he,void 0,q),(he)=>G(ne,void 0,vr(he),q))}Object.defineProperties(z,{state:{get:()=>S()},error:{get:()=>C()},loading:{get(){let J=S();return J==="pending"||J==="refreshing"}},latest:{get(){if(!p)return z();let J=C();if(J&&!c)throw J;return W()}}});let T=je;if(w)ca(()=>(T=je,Z(!1)));else Z(!1);return[z,{refetch:(J)=>eh(T,()=>Z(J)),mutate:y}]}function Rt(e){if(!uo&&He===null)return e();let t=He;He=null;try{if(uo)return uo.untrack(e);return e()}finally{He=t}}function en(e,t,n){let o=Array.isArray(e),i,s=n&&n.defer;return(c)=>{let a;if(o){a=Array(e.length);for(let h=0;h<e.length;h++)a[h]=e[h]()}else a=e();if(s)return s=!1,c;let u=Rt(()=>t(a,i,c));return i=a,u}}function fn(e){Pt(()=>Rt(e))}function ct(e){if(je===null);else if(je.cleanups===null)je.cleanups=[e];else je.cleanups.push(e);return e}function eh(e,t){let n=je,o=He;je=e,He=null;try{return Dt(t,!0)}catch(i){Mr(i)}finally{je=n,He=o}}function th(e){if(fe&&fe.running)return e(),fe.done;let t=He,n=je;return Promise.resolve().then(()=>{He=t,je=n;let o;if(ho||qo)o=fe||(fe={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),o.done||(o.done=new Promise((i)=>o.resolve=i)),o.running=!0;return Dt(e,!1),He=je=null,o?o.done:void 0})}function Mn(e,t){let n=Symbol("context");return{id:n,Provider:sh(n),defaultValue:e}}function Gt(e){let t;return je&&je.context&&(t=je.context[e.id])!==void 0?t:e.defaultValue}function nh(e){let t=Xe(e),n=Xe(()=>Ki(t()));return n.toArray=()=>{let o=n();return Array.isArray(o)?o:o!=null?[o]:[]},n}function pa(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)mo(this);else{let t=ot;ot=null,Dt(()=>Er(this),!1),ot=t}if(He){let t=this.observers?this.observers.length:0;if(!He.sources)He.sources=[this],He.sourceSlots=[t];else He.sources.push(this),He.sourceSlots.push(t);if(!this.observers)this.observers=[He],this.observerSlots=[He.sources.length-1];else this.observers.push(He),this.observerSlots.push(He.sources.length-1)}if(e&&fe.sources.has(this))return this.tValue;return this.value}function ga(e,t,n){let o=fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(o,t)){if(fe){let i=fe.running;if(i||!n&&fe.sources.has(e))fe.sources.add(e),e.tValue=t;if(!i)e.value=t}else e.value=t;if(e.observers&&e.observers.length)Dt(()=>{for(let i=0;i<e.observers.length;i+=1){let s=e.observers[i],c=fe&&fe.running;if(c&&fe.disposed.has(s))continue;if(c?!s.tState:!s.state){if(s.pure)ot.push(s);else mt.push(s);if(s.observers)wa(s)}if(!c)s.state=Mt;else s.tState=Mt}if(ot.length>1e6)throw ot=[],Error()},!1)}return t}function mo(e){if(!e.fn)return;Dn(e);let t=Fr;if(la(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{Dt(()=>{fe&&(fe.running=!0),He=je=e,la(e,e.tValue,t),He=je=null},!1)})}function la(e,t,n){let o,i=je,s=He;He=je=e;try{o=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(Dn),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(Dn),e.owned=null;return e.updatedAt=n+1,Mr(c)}finally{He=s,je=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)ga(e,o,!0);else if(fe&&fe.running&&e.pure){if(!fe.sources.has(e))e.value=o;fe.sources.add(e),e.tValue=o}else e.value=o;e.updatedAt=n}}function Dr(e,t,n,o=Mt,i){let s={fn:e,state:o,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:je,context:je?je.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=o;if(je===null);else if(je!==ha)if(fe&&fe.running&&je.pure)if(!je.tOwned)je.tOwned=[s];else je.tOwned.push(s);else if(!je.owned)je.owned=[s];else je.owned.push(s);if(uo&&s.fn){let c=s.fn,[a,u]=ue(void 0,{equals:!1}),h=uo.factory(c,u);ct(()=>h.dispose());let m,p=()=>th(u).then(()=>{if(m)m.dispose(),m=void 0});s.fn=(w)=>{if(a(),fe&&fe.running){if(!m)m=uo.factory(c,p);return m.track(w)}return h.track(w)}}return s}function Xo(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===zo)return Er(e);if(e.suspense&&Rt(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Fr)){if(t&&fe.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let o=n.length-1;o>=0;o--){if(e=n[o],t){let i=e,s=n[o+1];while((i=i.owner)&&i!==s)if(fe.disposed.has(i))return}if((t?e.tState:e.state)===Mt)mo(e);else if((t?e.tState:e.state)===zo){let i=ot;ot=null,Dt(()=>Er(e,n[0]),!1),ot=i}}}function Dt(e,t){if(ot)return e();let n=!1;if(!t)ot=[];if(mt)n=!0;else mt=[];Fr++;try{let o=e();return oh(n),o}catch(o){if(!n)mt=null;ot=null,Mr(o)}}function oh(e){if(ot){if(ho&&fe&&fe.running)rh(ot);else ba(ot);ot=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:o,disposed:i}=fe;mt.push.apply(mt,fe.effects),t=fe.resolve;for(let s of mt)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,Dt(()=>{for(let s of i)Dn(s);for(let s of o){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)Dn(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}aa(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,mt),mt=null,aa(!0);return}}let n=mt;if(mt=null,n.length)Dt(()=>da(n),!1);if(t)t()}function ba(e){for(let t=0;t<e.length;t++)Xo(e[t])}function rh(e){for(let t=0;t<e.length;t++){let n=e[t],o=fe.queue;if(!o.has(n))o.add(n),ho(()=>{o.delete(n),Dt(()=>{fe.running=!0,Xo(n)},!1),fe&&(fe.running=!1)})}}function ih(e){let t,n=0;for(t=0;t<e.length;t++){let o=e[t];if(!o.user)Xo(o);else e[n++]=o}if(_e.context){if(_e.count){_e.effects||(_e.effects=[]),_e.effects.push(...e.slice(0,n));return}Vi()}if(_e.effects&&(_e.done||!_e.count))e=[..._e.effects,...e],n+=_e.effects.length,delete _e.effects;for(t=0;t<n;t++)Xo(e[t])}function Er(e,t){let n=fe&&fe.running;if(n)e.tState=0;else e.state=0;for(let o=0;o<e.sources.length;o+=1){let i=e.sources[o];if(i.sources){let s=n?i.tState:i.state;if(s===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<Fr))Xo(i)}else if(s===zo)Er(i,t)}}}function wa(e){let t=fe&&fe.running;for(let n=0;n<e.observers.length;n+=1){let o=e.observers[n];if(t?!o.tState:!o.state){if(t)o.tState=zo;else o.state=zo;if(o.pure)ot.push(o);else mt.push(o);o.observers&&wa(o)}}}function Dn(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),o=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let s=i.pop(),c=n.observerSlots.pop();if(o<i.length)s.sourceSlots[c]=o,i[o]=s,n.observerSlots[o]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)Dn(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)xa(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)Dn(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}if(fe&&fe.running)e.tState=0;else e.state=0}function xa(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)xa(e.owned[n])}function vr(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function fa(e,t,n){try{for(let o of t)o(e)}catch(o){Mr(o,n&&n.owner||null)}}function Mr(e,t=je){let n=sa&&t&&t.context&&t.context[sa],o=vr(e);if(!n)throw o;if(mt)mt.push({fn(){fa(o,n,t)},state:Mt});else fa(o,n,t)}function Ki(e){if(typeof e==="function"&&!e.length)return Ki(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let o=Ki(e[n]);Array.isArray(o)?t.push.apply(t,o):t.push(o)}return t}return e}function sh(e,t){return function(o){let i;return _t(()=>i=Rt(()=>{return je.context={...je.context,[e]:o.value},nh(()=>o.children)}),void 0),i}}function ua(e){for(let t=0;t<e.length;t++)e[t]()}function ah(e,t,n={}){let o=[],i=[],s=[],c=0,a=t.length>1?[]:null;return ct(()=>ua(s)),()=>{let u=e()||[],h=u.length,m,p;return u[$d],Rt(()=>{let A,W,y,C,k,F,x,S,O;if(h===0){if(c!==0)ua(s),s=[],o=[],i=[],c=0,a&&(a=[]);if(n.fallback)o=[ch],i[0]=Jo((G)=>{return s[0]=G,n.fallback()}),c=1}else if(c===0){i=Array(h);for(p=0;p<h;p++)o[p]=u[p],i[p]=Jo(w);c=h}else{y=Array(h),C=Array(h),a&&(k=Array(h));for(F=0,x=Math.min(c,h);F<x&&o[F]===u[F];F++);for(x=c-1,S=h-1;x>=F&&S>=F&&o[x]===u[S];x--,S--)y[S]=i[x],C[S]=s[x],a&&(k[S]=a[x]);A=new Map,W=Array(S+1);for(p=S;p>=F;p--)O=u[p],m=A.get(O),W[p]=m===void 0?-1:m,A.set(O,p);for(m=F;m<=x;m++)if(O=o[m],p=A.get(O),p!==void 0&&p!==-1)y[p]=i[m],C[p]=s[m],a&&(k[p]=a[m]),p=W[p],A.set(O,p);else s[m]();for(p=F;p<h;p++)if(p in y){if(i[p]=y[p],s[p]=C[p],a)a[p]=k[p],a[p](p)}else i[p]=Jo(w);i=i.slice(0,c=h),o=u.slice(0)}return i});function w(A){if(s[p]=A,a){let[W,y]=ue(p);return a[p]=y,t(u[p],W)}return t(u[p])}}}function ya(e,t){if(lh){if(_e.context){let n=_e.context;Vi(Yd());let o=Rt(()=>e(t||{}));return Vi(n),o}}return Rt(()=>e(t||{}))}function Or(){return!0}function Bi(e){return!(e=typeof e==="function"?e():e)?{}:e}function uh(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Pr(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Hi in a,e[c]=typeof a==="function"?(t=!0,Xe(a)):a}if(Nd&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let u=Bi(e[a])[c];if(u!==void 0)return u}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Bi(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Bi(e[a])));return[...new Set(c)]}},fh);let n={},o=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let u=Object.getOwnPropertyNames(a);for(let h=u.length-1;h>=0;h--){let m=u[h];if(m==="__proto__"||m==="constructor")continue;let p=Object.getOwnPropertyDescriptor(a,m);if(!o[m])o[m]=p.get?{enumerable:!0,configurable:!0,get:uh.bind(n[m]=[p.get.bind(a)])}:p.value!==void 0?p:void 0;else{let w=n[m];if(w){if(p.get)w.push(p.get.bind(a));else if(p.value!==void 0)w.push(()=>p.value)}}}}let i={},s=Object.keys(o);for(let c=s.length-1;c>=0;c--){let a=s[c],u=o[a];if(u&&u.get)Object.defineProperty(i,a,u);else i[a]=u?u.value:void 0}return i}function nt(e){let t="fallback"in e&&{fallback:()=>e.fallback};return Xe(ah(()=>e.each,e.children,t||void 0))}function re(e){let t=e.keyed,n=Xe(()=>e.when,void 0,void 0),o=t?n:Xe(n,void 0,{equals:(i,s)=>!i===!s});return Xe(()=>{let i=o();if(i){let s=e.children;return typeof s==="function"&&s.length>0?Rt(()=>s(t?i:()=>{if(!Rt(o))throw dh("Show");return n()})):s}return e.fallback},void 0,void 0)}var _e,Zd=!1,Qd=(e,t)=>e===t,Hi,Nd,$d,Zx,kr,sa=null,da,Mt=1,zo=2,ha,Ii,je=null,fe=null,ho=null,uo=null,He=null,ot=null,mt=null,Fr=0,Qx,aa,qo,ch,lh=!1,fh,dh=(e)=>`Stale read from <${e}>.`;var Ye=ge(()=>{_e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return ia(this.context.count)},getNextContextId(){return ia(this.context.count++)}};Hi=Symbol("solid-proxy"),Nd=typeof Proxy==="function",$d=Symbol("solid-track"),Zx=Symbol("solid-dev-component"),kr={equals:Qd},da=ba,ha={owned:null,cleanups:null,context:null,owner:null},Ii={};[Qx,aa]=ue(!1);ch=Symbol("fallback");fh={get(e,t,n){if(t===Hi)return n;return e.get(t)},has(e,t){if(t===Hi)return!0;return e.has(t)},set:Or,deleteProperty:Or,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Or,deleteProperty:Or}},ownKeys(e){return e.keys()}}});function Ca(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=hh.get(e))!==null&&t!==void 0?t:e}var Gi,hh,Sa;var Ra=ge(()=>{hh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Sa=(Gi=String.fromCodePoint)!==null&&Gi!==void 0?Gi:(e)=>{let t="";if(e>65535)e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023;return t+=String.fromCharCode(e),t}});function Oa(e){let t=typeof atob==="function"?atob(e):typeof Buffer.from==="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),n=t.length&-2,o=new Uint16Array(n/2);for(let i=0,s=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);o[s++]=c|a<<8}return o}var va;var ka=ge(()=>{va=Oa("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")});var pt;var Ea=ge(()=>{(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(pt||(pt={}))});function Ti(e){return e>=Ze.ZERO&&e<=Ze.NINE}function mh(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_F||e>=Ze.LOWER_A&&e<=Ze.LOWER_F}function ph(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_Z||e>=Ze.LOWER_A&&e<=Ze.LOWER_Z||Ti(e)}function gh(e){return e===Ze.EQUALS||ph(e)}class Ji{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=ft.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=un.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=ft.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case ft.EntityStart:{if(e.charCodeAt(t)===Ze.NUM)return this.state=ft.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=ft.NamedEntity,this.stateNamedEntity(e,t)}case ft.NumericStart:return this.stateNumericStart(e,t);case ft.NumericDecimal:return this.stateNumericDecimal(e,t);case ft.NumericHex:return this.stateNumericHex(e,t);case ft.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){if(t>=e.length)return-1;if((e.charCodeAt(t)|Fa)===Ze.LOWER_X)return this.state=ft.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1);return this.state=ft.NumericDecimal,this.stateNumericDecimal(e,t)}stateNumericHex(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ti(n)||mh(n)){let o=n<=Ze.NINE?n-Ze.ZERO:(n|Fa)-Ze.LOWER_A+10;this.result=this.result*16+o,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ti(n))this.result=this.result*10+(n-Ze.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,t){var n;if(this.consumed<=t)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===Ze.SEMI)this.consumed+=1;else if(this.decodeMode===un.Strict)return 0;if(this.emitCodePoint(Ca(this.result),this.consumed),this.errors){if(e!==Ze.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(o&pt.FLAG13)!==0){let c=(o&pt.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=o&pt.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}while(this.runConsumed<c){if(t>=e.length)return-1;let a=this.runConsumed-1,u=n[this.treeIndex+1+(a>>1)],h=a%2===0?u&255:u>>8&255;if(e.charCodeAt(t)!==h)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(c>>1),o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Ze.SEMI&&i!==0&&(o&pt.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=wh(n,o,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===un.Attribute&&(i===0||gh(s))?0:this.emitNotTerminatedNamedEntity();if(o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14,i!==0){if(s===Ze.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==un.Strict&&(o&pt.FLAG13)===0)this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,o=(n[t]&pt.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,o,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:o}=this;if(this.emitCodePoint(t===1?o[e]&~(pt.VALUE_LENGTH|pt.FLAG13):o[e+1],n),t===3)this.emitCodePoint(o[e+2],n);return n}end(){var e;switch(this.state){case ft.NamedEntity:return this.result!==0&&(this.decodeMode!==un.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ft.NumericDecimal:return this.emitNumericEntity(0,2);case ft.NumericHex:return this.emitNumericEntity(0,3);case ft.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ft.EntityStart:return 0}}}function bh(e){let t="",n=new Ji(e,(o)=>t+=Sa(o));return function(i,s){let c=0,a=0;while((a=i.indexOf("&",a))>=0){t+=i.slice(c,a),n.startEntity(s);let h=n.write(i,a+1);if(h<0){c=a+n.end();break}c=a+h,a=h===0?c+1:c}let u=t+i.slice(c);return t="",u}}function wh(e,t,n,o){let i=(t&pt.BRANCH_LENGTH)>>7,s=t&pt.JUMP_TABLE;if(i===0)return s!==0&&o===s?n:-1;if(s){let h=o-s;return h<0||h>=i?-1:e[n+h]-1}let c=i+1>>1,a=0,u=i-1;while(a<=u){let h=a+u>>>1,m=h>>1,w=e[n+m]>>(h&1)*8&255;if(w<o)a=h+1;else if(w>o)u=h-1;else return e[n+c+h]}return-1}function eo(e,t=un.Legacy){return xh(e,t)}var Ze,Fa=32,ft,un,xh;var Da=ge(()=>{Ra();ka();Ea();(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Ze||(Ze={}));(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ft||(ft={}));(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(un||(un={}));xh=bh(va)});var Ma,Pa;var Wa=ge(()=>{Da();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ma||(Ma={}));(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(Pa||(Pa={}))});import{CliRenderer as Sh,createCliRenderer as Ch,engine as Rh}from"@opentui/core";import{createTestRenderer as d0}from"@opentui/core/testing";import{ASCIIFontRenderable as Oh,BoxRenderable as vh,CodeRenderable as kh,DiffRenderable as Eh,InputRenderable as Fh,LineNumberRenderable as Dh,MarkdownRenderable as Mh,ScrollBoxRenderable as Ph,SelectRenderable as Ah,TabSelectRenderable as Wh,TextareaRenderable as jh,TextAttributes as zi,TextNodeRenderable as Lh,TextRenderable as Ih}from"@opentui/core";import{engine as p0,Timeline as g0}from"@opentui/core";import{BaseRenderable as Ka,createTextAttributes as Vh,InputRenderable as qi,InputRenderableEvents as Yo,isTextNodeRenderable as Zi,parseColor as ja,Renderable as Hh,RootTextNodeRenderable as Kh,ScrollBoxRenderable as Gh,SelectRenderable as La,SelectRenderableEvents as Xi,TabSelectRenderable as Ia,TabSelectRenderableEvents as Yi,TextNodeRenderable as Uh,TextRenderable as Ga}from"@opentui/core";import{BaseRenderable as $h,isTextNodeRenderable as _h,TextNodeRenderable as em,TextRenderable as tm,Yoga as Va}from"@opentui/core";import{TimeToFirstDrawRenderable as rm}from"@opentui/core";import{createSlotRegistry as F0}from"@opentui/core";function Jh({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:o,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:u,getFirstChild:h,getNextSibling:m}){function p(x,S,O,G){if(O!==void 0&&!G)G=[];if(typeof S!=="function")return w(x,S,G,O);_t((I)=>w(x,S(),I,O),G)}function w(x,S,O,G,I){while(typeof O==="function")O=O();if(S===O)return O;let z=typeof S,Z=G!==void 0;if(z==="string"||z==="number"){if(z==="number")S=S.toString();if(Z){let T=O[0];if(T&&o(T))i(T,S);else T=t(S);O=y(x,O,G,T)}else if(O!==""&&typeof O==="string")i(h(x),O=S);else y(x,O,G,t(S)),O=S}else if(S==null||z==="boolean")O=y(x,O,G);else if(z==="function")return _t(()=>{let T=S();while(typeof T==="function")T=T();O=w(x,T,O,G)}),()=>O;else if(Array.isArray(S)){let T=[];if(A(T,S,I))return _t(()=>O=w(x,T,O,G,!0)),()=>O;if(T.length===0){let J=y(x,O,G);if(Z)return O=J}else if(Array.isArray(O))if(O.length===0)C(x,T,G);else W(x,O,T);else if(O==null||O==="")C(x,T);else W(x,Z&&O||[h(x)],T);O=T}else{if(Array.isArray(O)){if(Z)return O=y(x,O,G,S);y(x,O,null,S)}else if(O==null||O===""||!h(x))s(x,S);else k(x,S,h(x));O=S}return O}function A(x,S,O){let G=!1;for(let I=0,z=S.length;I<z;I++){let Z=S[I],T;if(Z==null||Z===!0||Z===!1);else if(Array.isArray(Z))G=A(x,Z)||G;else if((T=typeof Z)==="string"||T==="number")x.push(t(Z));else if(T==="function")if(O){while(typeof Z==="function")Z=Z();G=A(x,Array.isArray(Z)?Z:[Z])||G}else x.push(Z),G=!0;else x.push(Z)}return G}function W(x,S,O){let G=O.length,I=S.length,z=G,Z=0,T=0,J=m(S[I-1]),q=null;while(Z<I||T<z){if(S[Z]===O[T]){Z++,T++;continue}while(S[I-1]===O[z-1])I--,z--;if(I===Z){let Y=z<G?T?m(O[T-1]):O[z-T]:J;while(T<z)s(x,O[T++],Y)}else if(z===T)while(Z<I){if(!q||!q.has(S[Z]))c(x,S[Z]);Z++}else if(S[Z]===O[z-1]&&O[T]===S[I-1]){let Y=m(S[--I]);s(x,O[T++],m(S[Z++])),s(x,O[--z],Y),S[I]=O[z]}else{if(!q){q=new Map;let ne=T;while(ne<z)q.set(O[ne],ne++)}let Y=q.get(S[Z]);if(Y!=null)if(T<Y&&Y<z){let ne=Z,he=1,_;while(++ne<I&&ne<z){if((_=q.get(S[ne]))==null||_!==Y+he)break;he++}if(he>Y-T){let me=S[Z];while(T<Y)s(x,O[T++],me)}else k(x,O[T++],S[Z++])}else Z++;else c(x,S[Z++])}}}function y(x,S,O,G){if(O===void 0){let z;while(z=h(x))c(x,z);return G&&s(x,G),G??""}let I=G||n();if(S.length){let z=!1;for(let Z=S.length-1;Z>=0;Z--){let T=S[Z];if(I!==T){let J=u(T)===x;if(!z&&!Z)J?k(x,I,T):s(x,I,O);else J&&c(x,T)}else z=!0}}else s(x,I,O);return[I]}function C(x,S,O){for(let G=0,I=S.length;G<I;G++)s(x,S[G],O)}function k(x,S,O){s(x,S,O),c(x,O)}function F(x,S,O={},G){if(S||(S={}),!G)_t(()=>O.children=w(x,S.children,O.children));return _t(()=>S.ref&&S.ref(x)),_t(()=>{for(let I in S){if(I==="children"||I==="ref")continue;let z=S[I];if(z===O[I])continue;a(x,I,z,O[I]),O[I]=z}}),O}return{render(x,S){let O;return Jo((G)=>{O=G,p(S,x())}),O},insert:p,spread(x,S,O){if(typeof S==="function")_t((G)=>F(x,S(),G,O));else F(x,S,void 0,O)},createElement:e,createTextNode:t,insertNode:s,setProp(x,S,O,G){return a(x,S,O,G),O},mergeProps:Pr,effect:_t,memo:Th,createComponent:ya,use(x,S,O){return Rt(()=>x(S,O))}}}function zh(e){let t=Jh(e);return t.mergeProps=Pr,t}function es(e){if(!Ar.has(e))Ar.set(e,0);let t=Ar.get(e)+1;return Ar.set(e,t),`${e}-${t}`}function qh(e,t,n){if(ut("Inserting node:",at(t),"into parent:",at(e),"with anchor:",at(n),t instanceof po),t instanceof Zo)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Zo)n=n.getSlotChild(e);if(Zi(t)){if(!(e instanceof Ga)&&!Zi(e))throw Error(`Orphan text error: "${t.toChunks().map((s)=>s.text).join("")}" must have a <text> as a parent: ${e.id} above ${t.id}`)}if(!(e instanceof Ka))throw console.error("[INSERT]","Tried to mount a non base renderable"),Error("Tried to mount a non base renderable");if(!n){e.add(t);return}let o=Qi(e),i=o.findIndex((s)=>s.id===n.id);if(i===-1)ut("[INSERT]","Could not find anchor",at(e),at(n),"[children]",...o.map((s)=>s.id));e.add(t,i)}function Xh(e,t){if(ut("Removing node:",at(t),"from parent:",at(e)),t instanceof Zo)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ka&&!t.parent){t.destroyRecursively();return}})}function Yh(e){ut("Creating text node:",e);let t=es("text-node");if(typeof e==="number")e=e.toString();return po.fromString(eo(e),{id:t})}function Zh(){let e=es("slot-node");return ut("Creating slot node",e),new Zo(e)}function Ba(e){ut("Getting parent of node:",at(e));let t=e.parent??void 0;if(t instanceof Kh)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof Gh&&n.content===t)t=n;return t}function ns(e){Object.assign(Xa,e)}function om(){return Xa}var _i,dn=()=>{let e=Gt(_i);if(!e)throw Error("No renderer found");return e},Bh=(e)=>{let t=dn();fn(()=>{t.on("resize",e)}),ct(()=>{t.off("resize",e)})},rt=()=>{let e=dn(),[t,n]=ue({width:e.width,height:e.height});return Bh((i,s)=>{n({width:i,height:s})}),t},it=(e,t)=>{let o=dn().keyInput;fn(()=>{if(o.on("keypress",e),t?.release)o.on("keyrelease",e)}),ct(()=>{if(o.off("keypress",e),t?.release)o.off("keyrelease",e)})},go=(e)=>{let n=dn().keyInput;fn(()=>{n.on("paste",e)}),ct(()=>{n.off("paste",e)})},Ha=(e)=>{let t=dn();fn(()=>{t.on("selection",e)}),ct(()=>{t.off("selection",e)})},Th=(e)=>Xe(()=>e()),Ar,ut=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},po,at=(e)=>{if(!e)return;return e.id},Qi=(e)=>{let t;if(e instanceof Ga)t=e.getTextChildren();else t=e.getChildren();return t},Qh,H,Le,X,l,B,f,V,Nh,r,R0,O0,ts,Ua,Ta,Zo,Qo,Wr,Ni,$i,Ja,za,qa,nm,Xa,im=(e,t)=>{let n,o=!1,i=!1,s=!0,c=!1,a=e.destroy.bind(e),u=()=>{if(i)return;if(!n){o=!0;return}i=!0,n()};e.once("destroy",u),e.destroy=()=>{if(s){c=!0;return}a()};try{n=Qh(()=>X(_i.Provider,{get value(){return e},get children(){return X(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(o)u();if(c)a()},Ya=async(e,t={})=>{let n=t instanceof Sh?t:await Ch({...t,onDestroy:()=>{t.onDestroy?.()}});Rh.attach(n),im(n,e)};var te=ge(()=>{Ye();Wa();Ye();Ye();Ye();_i=Mn();Ar=new Map;po=class po extends Uh{static fromString(e,t={}){let n=new po(t);return n.add(e),n}};({render:Qh,effect:H,memo:Le,createComponent:X,createElement:l,createTextNode:B,insertNode:f,insert:V,spread:Nh,setProp:r,mergeProps:R0,use:O0}=zh({createElement(e){ut("Creating element:",e);let t=es(e),n=Gt(_i);if(!n)throw Error("No renderer found");let o=om();if(!o[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new o[e](n,{id:t});return ut("Element created with id:",t),i},createTextNode:Yh,createSlotNode:Zh,replaceText(e,t){if(ut("Replacing text:",t,"in node:",at(e)),!(e instanceof po))return;e.replace(eo(t),0)},setProperty(e,t,n,o){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(o)e.off(i,o);return}if(Zi(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Vh(n),e.fg=n.fg?ja(n.fg):e.fg,e.bg=n.bg?ja(n.bg):e.bg;return}return}switch(t){case"id":ut("Id mapped",e.id,"=",n),e[t]=n;break;case"focused":if(!(e instanceof Hh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof La)i=Xi.SELECTION_CHANGED;else if(e instanceof Ia)i=Yi.SELECTION_CHANGED;else if(e instanceof qi)i=Yo.CHANGE;if(!i)break;if(n)e.on(i,n);if(o)e.off(i,o);break;case"onInput":if(e instanceof qi){if(n)e.on(Yo.INPUT,n);if(o)e.off(Yo.INPUT,o)}break;case"onSubmit":if(e instanceof qi){if(n)e.on(Yo.ENTER,n);if(o)e.off(Yo.ENTER,o)}else e[t]=n;break;case"onSelect":if(e instanceof La){if(n)e.on(Xi.ITEM_SELECTED,n);if(o)e.off(Xi.ITEM_SELECTED,o)}else if(e instanceof Ia){if(n)e.on(Yi.ITEM_SELECTED,n);if(o)e.off(Yi.ITEM_SELECTED,o)}break;case"style":for(let s in n){let c=n[s];if(o!==void 0&&c===o[s])continue;e[s]=c}break;case"text":case"content":{let s=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=eo(s);break}default:e[t]=n}},isTextNode(e){return e instanceof po},insertNode:qh,removeNode:Xh,getParentNode:Ba,getFirstChild(e){ut("Getting first child of node:",at(e));let t=Qi(e)[0];if(!t){ut("No first child found for node:",at(e));return}return ut("First child found:",at(t),"for node:",at(e)),t},getNextSibling(e){ut("Getting next sibling of node:",at(e));let t=Ba(e);if(!t){ut("No parent found for node:",at(e));return}let n=Qi(t),o=n.indexOf(e);if(o===-1||o===n.length-1){ut("No next sibling found for node:",at(e));return}let i=n[o+1];if(!i){ut("Next sibling is null for node:",at(e));return}return ut("Next sibling found:",at(i),"for node:",at(e)),i}}));ts=class ts extends $h{constructor(e){super({id:e})}add(e,t){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(e){}insertBefore(e,t){throw Error("Can't add children on an Slot renderable")}getRenderable(e){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(e){return}};Ua=class Ua extends em{slotParent;destroyed=!1;constructor(e,t){super({id:e});this._visible=!1,this.slotParent=t}destroy(){if(this.destroyed)return;this.destroyed=!0,this.slotParent?.destroy(),super.destroy()}};Ta=class Ta extends ts{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Va.default.Node.create(),this.yogaNode.setDisplay(Va.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};Zo=class Zo extends ts{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(_h(e)||e instanceof tm){if(!this.textNode)this.textNode=new Ua(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new Ta(`slot-layout-${this.id}`,this);return this.layoutNode}destroy(){if(this.destroyed)return;if(this.destroyed=!0,this.layoutNode)this.layoutNode.destroy();if(this.textNode)this.textNode.destroy()}};Qo=class Qo extends Lh{_ctx;constructor(e,t){super(t);this._ctx=e}};Wr=class Wr extends Qo{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|zi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|zi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|zi.UNDERLINE}};Ni=class Ni extends Wr{constructor(e){super(e,"b")}};$i=class $i extends Wr{constructor(e){super(e,"i")}};Ja=class Ja extends Wr{constructor(e){super(e,"u")}};za=class za extends Qo{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
5
- `)}};qa=class qa extends Qo{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};nm={box:vh,text:Ih,input:Fh,select:Ah,textarea:jh,ascii_font:Oh,tab_select:Wh,scrollbox:Ph,code:kh,diff:Eh,line_number:Dh,markdown:Mh,span:Qo,strong:Ni,b:Ni,em:$i,i:$i,u:Ja,br:za,a:qa},Xa={...nm};ns({time_to_first_draw:rm})});function Za(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function Qa(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function os(e,t){switch(e){case"success":return t.success;case"error":return t.error;case"warning":return t.warning;case"info":return t.info;case"loading":return rs(t.loading);default:return""}}function rs(e){if(Za(e))return e.frames[0]??"\u25CC";return e}function is(e){return Za(e)?e:null}var sm,Na;var $a=ge(()=>{sm={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},Na={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:sm,close:"\xD7"}});import{BoxRenderable as Lr,TextAttributes as cm,TextRenderable as No,parseColor as am}from"@opentui/core";function hm(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function wm(e,t={}){let[n,o]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??jr.top;else i.bottom=t.bottom??jr.bottom;if(o==="left")i.left=t.left??jr.left,i.alignItems="flex-start";else if(o==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??jr.right,i.alignItems="flex-end";return i}function xm(e){return e.includes("center")}function ym(e){return e.startsWith("top")}function Sm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:o,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??o??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??o??n??t.left}}function Cm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function _a(e,t,n){let o=ss.style,i=ss[e]?.style,s=t?.style,c=t?.[e]?.style,a=Cm(o,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function el(e,t,n){if(n!==void 0)return n;let o=t?.[e]?.duration;if(o!==void 0)return o;if(t?.duration!==void 0)return t.duration;return ss.duration}var lm,fm=200,tl=60,jr,um,ss,dm=1,mm=class{subscribers=[];toasts=[];dismissedToasts=new Set;_activeToasts=[];_updateActiveToastsCache=()=>{let e=this.toasts.filter((t)=>!this.dismissedToasts.has(t.id));if(e.length!==this._activeToasts.length||e.some((t,n)=>t!==this._activeToasts[n]))this._activeToasts=e};subscribe=(e)=>{return this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);if(t>-1)this.subscribers.splice(t,1)}};publish=(e)=>{for(let t of this.subscribers)t(e)};addToast=(e)=>{this.toasts=[...this.toasts,e],this._updateActiveToastsCache(),this.publish(e)};create=(e)=>{let{message:t,...n}=e,o=typeof e.id==="number"||e.id&&e.id.length>0?e.id:dm++,i=this.toasts.find((c)=>c.id===o),s=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(o))this.dismissedToasts.delete(o);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===o)return this.publish({...c,...e,id:o,title:t}),{...c,...e,id:o,dismissible:s,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:s,id:o,type:e.type??"default"});return o};dismiss=(e)=>{if(e!==void 0)this.dismissedToasts.add(e),this._updateActiveToastsCache(),setTimeout(()=>{for(let t of this.subscribers)t({id:e,dismiss:!0})},0);else{for(let t of this.toasts){this.dismissedToasts.add(t.id);for(let n of this.subscribers)n({id:t.id,dismiss:!0})}this._updateActiveToastsCache()}return e};message=(e,t)=>{return this.create({...t,message:e,type:"default"})};error=(e,t)=>{return this.create({...t,message:e,type:"error"})};success=(e,t)=>{return this.create({...t,message:e,type:"success"})};info=(e,t)=>{return this.create({...t,message:e,type:"info"})};warning=(e,t)=>{return this.create({...t,message:e,type:"warning"})};loading=(e,t)=>{return this.create({...t,message:e,type:"loading"})};promise=(e,t)=>{if(!t)return;let n;if(t.loading!==void 0)n=this.create({...t,type:"loading",message:t.loading,description:typeof t.description!=="function"?t.description:void 0});let o=e instanceof Function?e():e,i=n!==void 0,s,c=o.then(async(u)=>{if(s=["resolve",u],hm(u)&&!u.ok){i=!1;let h=typeof t.error==="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,m=typeof t.description==="function"?await t.description(`HTTP error! status: ${u.status}`):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}else if(u instanceof Error){i=!1;let h=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}else if(t.success!==void 0){i=!1;let h=typeof t.success==="function"?await t.success(u):t.success,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"success",description:m,...p})}}).catch(async(u)=>{if(s=["reject",u],t.error!==void 0){i=!1;let h=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((u,h)=>c.then(()=>s[0]==="reject"?h(s[1]):u(s[1])).catch(h));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ot,pm=(e,t)=>Ot.message(e,t),gm=()=>Ot.toasts,bm=()=>Ot.getActiveToasts(),to,Rm,nl;var ol=ge(()=>{$a();lm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},jr={top:1,right:2,bottom:1,left:2},um={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},ss={style:um,duration:lm.DEFAULT,default:{style:{borderColor:"#333333"}},success:{style:{borderColor:"#22c55e"}},error:{style:{borderColor:"#ef4444"}},warning:{style:{borderColor:"#f59e0b"}},info:{style:{borderColor:"#3b82f6"}},loading:{style:{borderColor:"#6b7280"}}};Ot=new mm,to=Object.assign(pm,{success:Ot.success,info:Ot.info,warning:Ot.warning,error:Ot.error,message:Ot.message,promise:Ot.promise,dismiss:Ot.dismiss,loading:Ot.loading},{getHistory:gm,getToasts:bm});Rm=class extends Lr{_toast;_icons;_toastOptions;_computedStyle;_closeButton;_onRemove;_remainingTime;_closeTimerStartTime=0;_lastCloseTimerStartTime=0;_timerHandle=null;_paused=!1;_dismissed=!1;_spinnerHandle=null;_spinnerFrameIndex=0;_spinnerConfig=null;_iconText=null;_contentBox=null;_titleText=null;_descriptionText=null;_actionsBox=null;constructor(e,t){let n=_a(t.toast.type,t.toastOptions,t.toast.style),o=el(t.toast.type,t.toastOptions,t.toast.duration),i=Sm(n,{top:0,right:1,bottom:0,left:1});super(e,{id:`toast-${t.toast.id}`,flexDirection:"row",gap:1,border:n.border,borderStyle:n.borderStyle,borderColor:n.borderColor,customBorderChars:n.customBorderChars,backgroundColor:n.backgroundColor,minHeight:n.minHeight,maxWidth:n.maxWidth??tl,minWidth:n.minWidth,paddingTop:i.top,paddingRight:i.right,paddingBottom:i.bottom,paddingLeft:i.left,onMouseOver:()=>this.pause(),onMouseOut:()=>this.resume()});if(this._toast=t.toast,this._icons=t.icons===!1?!1:{...Na,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=o,this.setupContent(),this._remainingTime!==1/0&&this._toast.type!=="loading")this.startTimer();if(this._toast.type==="loading")this.startSpinner()}setupContent(){let e=this.ctx,t=this._toast,n=this._computedStyle,o=this._icons,i=n.iconColor??n.borderColor,s=t.type==="loading";if(s&&o!==!1)this._spinnerConfig=is(o.loading);let c=t.icon??(o===!1?void 0:s?rs(o.loading):os(t.type,o));if(c)this._iconText=new No(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new Lr(e,{id:`${this.id}-content`,flexDirection:"column",flexGrow:1,flexShrink:1,gap:0});let a=typeof t.title==="function"?t.title():t.title;if(a)this._titleText=new No(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:cm.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let u=typeof t.description==="function"?t.description():t.description;if(u)this._descriptionText=new No(e,{id:`${this.id}-description`,content:u,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new Lr(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&Qa(t.action)){let h=new No(e,{id:`${this.id}-action`,content:`[${t.action.label}]`,fg:n.foregroundColor,onMouseUp:()=>t.action?.onClick?.()});this._actionsBox.add(h)}this.add(this._actionsBox)}if((t.closeButton??this._closeButton)&&t.dismissible!==!1){let h=o===!1?"\xD7":o.close,m=new No(e,{id:`${this.id}-close`,content:h,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(m)}}startTimer(){if(this._remainingTime===1/0)return;this._closeTimerStartTime=Date.now(),this._timerHandle=setTimeout(()=>{this._toast.onAutoClose?.(this._toast),this.dismiss()},this._remainingTime)}pause(){if(this._paused||this._remainingTime===1/0)return;if(this._paused=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;if(this._lastCloseTimerStartTime<this._closeTimerStartTime){let e=Date.now()-this._closeTimerStartTime;this._remainingTime=Math.max(0,this._remainingTime-e)}this._lastCloseTimerStartTime=Date.now()}resume(){if(!this._paused||this._remainingTime===1/0)return;this._paused=!1,this.startTimer()}startSpinner(){if(this._spinnerHandle||!this._spinnerConfig)return;let{frames:e,interval:t}=this._spinnerConfig;this._spinnerHandle=setInterval(()=>{this._spinnerFrameIndex=(this._spinnerFrameIndex+1)%e.length;let n=e[this._spinnerFrameIndex];if(this._iconText&&n)this._iconText.content=n,this.requestRender()},t)}stopSpinner(){if(this._spinnerHandle)clearInterval(this._spinnerHandle),this._spinnerHandle=null}dismiss(){if(this._dismissed)return;if(this._dismissed=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),this._toast.onDismiss?.(this._toast),Ot.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},fm)}updateToast(e){this._toast=e;let t=_a(e.type,this._toastOptions,e.style);if(this._computedStyle=t,t.borderColor)this.borderColor=t.borderColor;if(t.customBorderChars)this.customBorderChars=t.customBorderChars;let n=t.iconColor??t.borderColor;if(this._iconText){let s=e.icon??(this._icons===!1?void 0:os(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=am(n)}if(this._titleText){let s=typeof e.title==="function"?e.title():e.title;if(s)this._titleText.content=s}if(this._descriptionText){let s=typeof e.description==="function"?e.description():e.description;if(s)this._descriptionText.content=s}let o=this._spinnerHandle!==null,i=e.type==="loading";if(o&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!o&&i){if(this._icons!==!1)this._spinnerConfig=is(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=el(e.type,this._toastOptions,e.duration),this._remainingTime!==1/0)this.startTimer()}this.requestRender()}get toast(){return this._toast}get isDismissed(){return this._dismissed}destroy(){if(this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),super.destroy()}},nl=class extends Lr{_options={};_toastRenderables=new Map;_unsubscribe=null;constructor(e,t={}){super(e,{id:"toaster",flexDirection:"column",gap:1,zIndex:9999});this._options=t,this.applyLayoutOptions(),this.subscribe()}applyLayoutOptions(){let e=this._options.position??"bottom-right",t=wm(e,this._options.offset??{}),n=xm(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??tl}isToastPosition(e){return e==="top-left"||e==="top-center"||e==="top-right"||e==="bottom-left"||e==="bottom-center"||e==="bottom-right"}set position(e){if(this.isToastPosition(e))this._options.position=e,this.applyLayoutOptions();else super.position=e}set offset(e){this._options.offset=e,this.applyLayoutOptions()}set gap(e){this._options.gap=e,super.gap=e}set visibleToasts(e){this._options.visibleToasts=e}set closeButton(e){this._options.closeButton=e}set icons(e){this._options.icons=e}set stackingMode(e){this._options.stackingMode=e}set maxWidth(e){this._options.maxWidth=e,super.maxWidth=e}set toastOptions(e){this._options.toastOptions=e}subscribe(){this._unsubscribe=Ot.subscribe((e)=>{if("dismiss"in e&&e.dismiss)this.removeToast(e.id);else this.addOrUpdateToast(e)})}addOrUpdateToast(e){let t=this._toastRenderables.get(e.id);if(t){t.updateToast(e);return}if((this._options.stackingMode??"single")==="single")for(let[o]of this._toastRenderables)this.removeToast(o);else{let o=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=o){let s=i-o+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<s;a++){let u=c[a];if(u!==void 0)this.removeToast(u)}}}let n=new Rm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(o)=>this.handleToastRemoved(o)});if(this._toastRenderables.set(e.id,n),ym(this._options.position??"bottom-right"))this.add(n);else this.add(n,0);this.requestRender()}removeToast(e){let t=this._toastRenderables.get(e);if(t)t.dismiss()}handleToastRemoved(e){let t=this._toastRenderables.get(e.id);if(t)this._toastRenderables.delete(e.id),this.remove(t.id),t.destroy(),this.requestRender()}get toastCount(){return this._toastRenderables.size}dismissAll(){for(let[e]of this._toastRenderables)this.removeToast(e)}destroy(){this._unsubscribe?.();for(let[,e]of this._toastRenderables)e.destroy();this._toastRenderables.clear(),super.destroy()}}});var cs=ge(()=>{ol();te();ns({toaster:nl})});function il(e){let[t,n]=ue("list"),[o,i]=ue(0),[s,c]=ue(null),[a,u]=ue(!1),[h,m]=ue(!1),[p,w]=ue(!1),[A,W]=ue(!1),[y,C]=ue(new Set),[k,F]=ue(!1),[x,S]=ue(null),O=(Z)=>{let T=new Set(y());if(T.has(Z))T.delete(Z);else T.add(Z);C(T)},G=(Z)=>{C(new Set(Z))},I=(Z)=>{let T=new Set(Z),J=y(),q=new Set;for(let Y of J)if(T.has(Y))q.add(Y);if(q.size!==J.size)C(q)},z=()=>{C(new Set)};return X(rl.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:o,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:u,showCommandPalette:h,setShowCommandPalette:m,showDetailView:p,setShowDetailView:w,inputFocused:A,setInputFocused:W,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:y,toggleWorktreeSelection:O,selectAllNonMain:G,pruneSelectedWorktrees:I,clearSelection:z,showBulkActions:k,setShowBulkActions:F,focusPickerData:x,setFocusPickerData:S},get children(){return e.children}})}function st(){let e=Gt(rl);if(!e)throw Error("useApp must be used within AppProvider");return e}var rl;var Zt=ge(()=>{te();Ye();rl=Mn()});var xt,$o,as,_o;var Ut=ge(()=>{xt=class xt extends Error{exitCode;stderr;command;constructor(e,t,n,o){super(e);this.exitCode=t;this.stderr=n;this.command=o;this.name="GitError"}};$o=class $o extends Error{installed;required;constructor(e,t){super(`git version ${e} is below minimum required ${t}`);this.installed=e;this.required=t;this.name="GitVersionError"}};as=class as extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};_o=class _o extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Qt(e,t,n){let o=Array(e.length),i=0;async function s(){while(i<e.length){let a=i++;o[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(c),o}import{resolve as sl,dirname as Om}from"path";import{mkdirSync as vm,existsSync as km}from"fs";function bo(e){let t=Ir.get(e);if(!t)return;if(Date.now()>t.expires){Ir.delete(e);return}return t.data}function Tt(e,t,n=Em){return Ir.set(e,{data:t,expires:Date.now()+n}),t}function dt(){Ir.clear()}class se{static gitVersionChecked=!1;static async run(e,t){let n=Bun.spawn(["git",...e],{cwd:t??Bun.cwd,stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[o,i,s]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(s!==0)throw new xt(`git ${e[0]} failed: ${i.trim()}`,s,i.trim(),`git ${e.join(" ")}`);return o.trim()}static async exec(e,t){return this.run(e,t)}static async checkVersion(){if(this.gitVersionChecked)return;let t=(await this.run(["--version"])).match(/git version (\d+)\.(\d+)\.?((\d+)?)/);if(!t)throw Error("Cannot parse git version");let[,n,o]=t.map(Number);if(n<2||n===2&&o<17)throw new $o(`${n}.${o}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),o=`list:${n}`,i=bo(o);if(i)return i;let s=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,s,n),u=await Qt(a,10,async(h)=>({...h,isDirty:await this.isDirty(h.path).catch(()=>!1)}));return Tt(o,u)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=sl(i);if(!t.has(s))t.add(s),n.push(s)}return(await Qt(n,5,async(i)=>{try{return await this.list(i)}catch{return[]}})).flat()}static parsePorcelain(e,t,n){let o=e.trim();if(!o)return[];return o.split(/\n\n+/).filter(Boolean).map((s,c)=>{let a=s.split(`
6
- `),u=a.find((C)=>C.startsWith("worktree ")),h=a.find((C)=>C.startsWith("HEAD ")),m=a.find((C)=>C.startsWith("branch ")),p=a.find((C)=>C.startsWith("locked")),w=u?.slice(9)??"",A=h?.slice(5)??"",W=null;if(m)W=m.slice(7).replace(/^refs\/heads\//,"");let y=p&&p.startsWith("locked ")?p.slice(7):void 0;return{path:w,branch:W,head:A,isMain:c===0,isDirty:!1,isLocked:Boolean(p),lockReason:y,repoName:t,repoPath:n}})}static async add(e,t,n,o){await this.checkVersion();let i=Om(t);if(!km(i))vm(i,{recursive:!0});let c=!await this.localBranchExists(e,o),a=["worktree","add",t,e];if(c)a=["worktree","add","-b",e,t,n?.base??"HEAD"];await this.run(a,o),dt()}static async localBranchExists(e,t){try{return await this.run(["rev-parse","--verify",`refs/heads/${e}`],t??Bun.cwd),!0}catch{return!1}}static async remove(e,t,n){await this.checkVersion();let o=["worktree","remove",e];if(t?.force)o.push("--force");await this.run(o,n),dt()}static async move(e,t,n){await this.checkVersion(),await this.run(["worktree","move",e,t],n),dt()}static async prune(e){await this.checkVersion(),await this.run(["worktree","prune"],e),dt()}static async isWorktree(e){let t=e??Bun.cwd;try{let n=await this.run(["rev-parse","--git-dir"],t),o=await this.run(["rev-parse","--git-common-dir"],t);return n!==o&&!n.endsWith("/.git")&&!n.endsWith("\\.git")}catch{return!1}}static async getMainRepoPath(e){let t=e??Bun.cwd,n=await this.run(["rev-parse","--git-common-dir"],t),o=sl(t,n);return o.endsWith("/.git")?o.slice(0,-5):o}static async getBranchForWorktree(e){try{let t=await this.run(["rev-parse","--abbrev-ref","HEAD"],e);return t==="HEAD"?null:t}catch{return null}}static async isDirty(e){try{return(await this.run(["status","--porcelain"],e??Bun.cwd)).length>0}catch{return!1}}static async getAheadBehind(e,t){let n=t??Bun.cwd,o=`ahead-behind:${n}:${e}`,i=bo(o);if(i)return i;try{let s=await this.run(["rev-parse","--abbrev-ref",`${e}@{upstream}`],n),c=await this.run(["rev-list","--left-right","--count",`${s}...${e}`],n),[a,u]=c.split(/\s+/).map(Number);return Tt(o,{ahead:u??0,behind:a??0})}catch{return Tt(o,{ahead:0,behind:0})}}static async getLastCommit(e){let t=e??Bun.cwd,n=`last-commit:${t}`,o=bo(n);if(o!==void 0)return o;try{let i=await this.run(["log","-1","--format=%h\x1F%s\x1F%cr"],t);if(!i)return Tt(n,null);let[s,c,a]=i.split("\x1F");return Tt(n,{hash:s??"",message:c??"",relativeDate:a??""})}catch{return Tt(n,null)}}static async getDirtyCount(e){let t=e??Bun.cwd,n=`dirty-count:${t}`,o=bo(n);if(o!==void 0)return o;try{let i=await this.run(["status","--porcelain"],t);if(!i)return Tt(n,0);return Tt(n,i.split(`
7
- `).filter(Boolean).length)}catch{return Tt(n,0)}}static async unlock(e,t){await this.checkVersion(),await this.run(["worktree","unlock",e],t),dt()}static async isMergedInto(e,t,n){try{return(await this.run(["branch","--merged",t],n??Bun.cwd)).split(`
8
- `).some((i)=>i.trim().replace(/^[*+] /,"")===e)}catch{return!1}}static async getDefaultRemote(e){try{return await this.run(["config","checkout.defaultRemote"],e??Bun.cwd)||"origin"}catch{return"origin"}}static async remoteBranchExists(e,t,n){let o=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${o}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,o=bo(n);if(o)return o;let[i,s]=await Promise.all([this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/heads/"],t).catch(()=>""),this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/remotes/"],t).catch(()=>"")]),c=[];for(let a of i.split(`
9
- `).filter(Boolean)){let[u,h]=a.split("\x1F");c.push({name:u??"",isRemote:!1,lastCommitDate:h??""})}for(let a of s.split(`
10
- `).filter(Boolean)){let[u,h]=a.split("\x1F");if(!u||u.endsWith("/HEAD"))continue;let m=u.replace(/^[^/]+\//,"");if(c.some((p)=>p.name===m))continue;c.push({name:m,isRemote:!0,lastCommitDate:h??""})}return Tt(n,c)}static async diffBetween(e,t,n,o){let i=["diff"];if(n?.stat)i.push("--stat");if(n?.nameOnly)i.push("--name-only");return i.push(e,t),this.run(i,o)}static async getWorktreeLastActivity(e){try{let t=await this.run(["log","-1","--format=%ci"],e);return t?new Date(t):null}catch{return null}}static async setUpstream(e,t,n){let o=t??await this.getDefaultRemote(n),i=n??Bun.cwd;try{if(await this.run(["config",`branch.${e}.remote`],i))return}catch{}await this.run(["branch",`--set-upstream-to=${o}/${e}`,e],i)}static async getRemotes(e){let t=e??Bun.cwd,n=`remotes:${t}`,o=bo(n);if(o)return o;try{let s=(await this.run(["remote"],t)).split(`
11
- `).map((c)=>c.trim()).filter(Boolean);return Tt(n,s)}catch{return Tt(n,[])}}static async fetchRemote(e,t,n){let o=t?["fetch",e,t]:["fetch",e];await this.run(o,n),dt()}}function cl(e,t){if(!e||e.startsWith("refs/"))return null;let n=e.indexOf("/");if(n<=0)return null;let o=e.slice(0,n),i=e.slice(n+1);if(!i)return null;if(!t.includes(o))return null;return{remote:o,branch:i}}var Em=3000,Ir;var Ke=ge(()=>{Ut();Ir=new Map});function ll(e){let[t,{refetch:n}]=ma(async()=>{try{if(e.repoPaths.length<=1)return await se.list(e.repoPaths[0]);return await se.listAll(e.repoPaths)}catch(a){throw a}}),o=()=>{dt(),n()},i=()=>{if(t.error)return;try{return t()}catch{return}},s=Xe(()=>{let a=i()??[],u=new Set,h=[];for(let m of a)if(!u.has(m.repoName))u.add(m.repoName),h.push(m.repoName);return h}),c=Xe(()=>s().length>1);return X(al.Provider,{value:{worktrees:i,refetch:o,loading:()=>t.loading,error:()=>t.error,repoNames:s,isMultiRepo:c},get children(){return e.children}})}function gt(){let e=Gt(al);if(!e)throw Error("useGit must be used within GitProvider");return e}var al;var hn=ge(()=>{te();Ye();Ke();al=Mn()});var Fm,At,Br,Dm,wo,g;var yt=ge(()=>{Ye();Fm={opencode:{bg:{base:"#090909",surface:"#111111",elevated:"#1a1a1a",overlay:"#000000"},border:{default:"#2a2a2a",active:"#4fc3f7",subtle:"#1e1e1e"},text:{primary:"#e8e8e8",secondary:"#666666",accent:"#4fc3f7",success:"#4ade80",warning:"#fbbf24",error:"#f87171",selected:"#ffffff"},tab:{active:"#4fc3f7",activeBg:"#1a1a1a",inactive:"#555555",inactiveBg:"#000000"},select:{focusedBg:"#1a2a3a",focusedFg:"#4fc3f7",selectedBg:"#161616",selectedFg:"#e8e8e8",normalFg:"#e8e8e8",descFg:"#666666"}},"tokyo-night":{bg:{base:"#1a1b26",surface:"#1f2335",elevated:"#24283b",overlay:"#0d1117"},border:{default:"#3b4261",active:"#7aa2f7",subtle:"#292e42"},text:{primary:"#c0caf5",secondary:"#565f89",accent:"#7aa2f7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",selected:"#ffffff"},tab:{active:"#7aa2f7",activeBg:"#24283b",inactive:"#565f89",inactiveBg:"#1a1b26"},select:{focusedBg:"#283457",focusedFg:"#7aa2f7",selectedBg:"#2a2f44",selectedFg:"#c0caf5",normalFg:"#c0caf5",descFg:"#565f89"}},dracula:{bg:{base:"#282a36",surface:"#21222c",elevated:"#343746",overlay:"#191a21"},border:{default:"#6272a4",active:"#bd93f9",subtle:"#44475a"},text:{primary:"#f8f8f2",secondary:"#6272a4",accent:"#bd93f9",success:"#50fa7b",warning:"#ffb86c",error:"#ff5555",selected:"#ffffff"},tab:{active:"#bd93f9",activeBg:"#343746",inactive:"#6272a4",inactiveBg:"#282a36"},select:{focusedBg:"#44475a",focusedFg:"#bd93f9",selectedBg:"#383a4a",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#6272a4"}},nord:{bg:{base:"#2e3440",surface:"#3b4252",elevated:"#434c5e",overlay:"#242933"},border:{default:"#4c566a",active:"#81a1c1",subtle:"#3b4252"},text:{primary:"#eceff4",secondary:"#4c566a",accent:"#81a1c1",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",selected:"#ffffff"},tab:{active:"#88c0d0",activeBg:"#434c5e",inactive:"#4c566a",inactiveBg:"#2e3440"},select:{focusedBg:"#3b4252",focusedFg:"#88c0d0",selectedBg:"#3b4252",selectedFg:"#eceff4",normalFg:"#eceff4",descFg:"#4c566a"}},catppuccin:{bg:{base:"#1e1e2e",surface:"#181825",elevated:"#313244",overlay:"#11111b"},border:{default:"#45475a",active:"#cba6f7",subtle:"#313244"},text:{primary:"#cdd6f4",secondary:"#585b70",accent:"#cba6f7",success:"#a6e3a1",warning:"#fab387",error:"#f38ba8",selected:"#ffffff"},tab:{active:"#cba6f7",activeBg:"#313244",inactive:"#585b70",inactiveBg:"#1e1e2e"},select:{focusedBg:"#313244",focusedFg:"#cba6f7",selectedBg:"#313244",selectedFg:"#cdd6f4",normalFg:"#cdd6f4",descFg:"#585b70"}},"github-dark":{bg:{base:"#0d1117",surface:"#161b22",elevated:"#21262d",overlay:"#010409"},border:{default:"#30363d",active:"#58a6ff",subtle:"#21262d"},text:{primary:"#e6edf3",secondary:"#484f58",accent:"#58a6ff",success:"#3fb950",warning:"#d29922",error:"#f85149",selected:"#ffffff"},tab:{active:"#58a6ff",activeBg:"#21262d",inactive:"#484f58",inactiveBg:"#0d1117"},select:{focusedBg:"#1f2937",focusedFg:"#58a6ff",selectedBg:"#1f2937",selectedFg:"#e6edf3",normalFg:"#e6edf3",descFg:"#484f58"}},"one-dark":{bg:{base:"#282c34",surface:"#21252b",elevated:"#2c313a",overlay:"#1b1f27"},border:{default:"#3e4451",active:"#61afef",subtle:"#2c313a"},text:{primary:"#abb2bf",secondary:"#5c6370",accent:"#61afef",success:"#98c379",warning:"#e5c07b",error:"#e06c75",selected:"#ffffff"},tab:{active:"#61afef",activeBg:"#2c313a",inactive:"#5c6370",inactiveBg:"#282c34"},select:{focusedBg:"#2c313a",focusedFg:"#61afef",selectedBg:"#2c313a",selectedFg:"#abb2bf",normalFg:"#abb2bf",descFg:"#5c6370"}},monokai:{bg:{base:"#272822",surface:"#1e1f1c",elevated:"#3e3d32",overlay:"#1a1b18"},border:{default:"#49483e",active:"#a6e22e",subtle:"#3e3d32"},text:{primary:"#f8f8f2",secondary:"#75715e",accent:"#66d9ef",success:"#a6e22e",warning:"#e6db74",error:"#f92672",selected:"#ffffff"},tab:{active:"#a6e22e",activeBg:"#3e3d32",inactive:"#75715e",inactiveBg:"#272822"},select:{focusedBg:"#3e3d32",focusedFg:"#66d9ef",selectedBg:"#3e3d32",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#75715e"}},"github-light":{bg:{base:"#ffffff",surface:"#f6f8fa",elevated:"#eaeef2",overlay:"#d0d7de"},border:{default:"#d0d7de",active:"#0969da",subtle:"#eaeef2"},text:{primary:"#1f2328",secondary:"#656d76",accent:"#0969da",success:"#1a7f37",warning:"#9a6700",error:"#cf222e",selected:"#000000"},tab:{active:"#0969da",activeBg:"#eaeef2",inactive:"#656d76",inactiveBg:"#ffffff"},select:{focusedBg:"#ddf4ff",focusedFg:"#0969da",selectedBg:"#eaeef2",selectedFg:"#1f2328",normalFg:"#1f2328",descFg:"#656d76"}}},At=["opencode","tokyo-night","dracula","nord","catppuccin","github-dark","one-dark","monokai","github-light"],Br={opencode:"OpenCode","tokyo-night":"Tokyo Night",dracula:"Dracula",nord:"Nord",catppuccin:"Catppuccin Mocha","github-dark":"GitHub Dark","one-dark":"One Dark",monokai:"Monokai","github-light":"GitHub Light"},[Dm,wo]=ue("opencode"),g=new Proxy({},{get(e,t){return new Proxy({},{get(n,o){return Fm[Dm()][t]?.[o]}})}})});import{readFileSync as Mm,statSync as Pm}from"fs";import{join as fl,resolve as Am}from"path";function er(e){let t=fl(e,".git"),n=Pm(t,{throwIfNoEntry:!1});if(!n||n.isDirectory())return t;let i=Mm(t,"utf-8").trim().replace(/^gitdir:\s*/,"").trim();return Am(e,i)}function tn(e,t){return fl(er(e),t)}var Pn=()=>{};import{existsSync as Wm,mkdirSync as jm,readFileSync as Lm,writeFileSync as Im}from"fs";import{dirname as Bm,join as ls}from"path";function ul(e){return tn(e,"copse-focus")}function Vr(e,t){let n=ul(e);jm(Bm(n),{recursive:!0}),Im(n,t.join(`
12
- `),{encoding:"utf-8",mode:384})}function Jt(e){let t=ul(e);if(!Wm(t))return null;return Lm(t,"utf-8").split(/\r?\n/).filter(Boolean)}function Kr(e,t){if(t?.forceRoot)return{kind:"root",path:e};let n=Jt(e)??[];if(t?.explicitFocus){if(!n.includes(t.explicitFocus))throw new Hr(t.explicitFocus,n);return{kind:"single",path:ls(e,t.explicitFocus),focus:t.explicitFocus}}if(n.length===0)return{kind:"root",path:e};if(n.length===1)return{kind:"single",path:ls(e,n[0]),focus:n[0]};return{kind:"multiple",focusPaths:n,resolvedPaths:n.map((o)=>ls(e,o))}}var Hr;var nn=ge(()=>{Pn();Hr=class Hr extends Error{requested;available;constructor(e,t){let n=t.length===0?"no focus paths are set on this worktree.":`available: ${t.join(", ")}.`;super(`Focus path '${e}' is not set; ${n}`);this.requested=e;this.available=t;this.name="FocusNotFoundError"}}});import{existsSync as us,mkdirSync as Vm,readFileSync as Hm,writeFileSync as Km,unlinkSync as Gm}from"fs";import{dirname as Um}from"path";function fs(e){return e.replace(/\//g,"-").replace(/[^a-zA-Z0-9._-]/g,"_")}async function mn(e){let t=Bun.spawn(["tmux",...e],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C"}}),[n,o,i]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);if(i!==0)throw new xo(`tmux ${e[0]} failed: ${o.trim()}`,o.trim());return n.trim()}function An(e,t){let n=fs(t??dl),o=fs(e);return`${n}_${o}`}function ds(e){return tn(e,"copse-session")}function Tm(e,t){let n=ds(e);Vm(Um(n),{recursive:!0}),Km(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}function zt(e){let t=ds(e);if(!us(t))return null;try{return JSON.parse(Hm(t,"utf-8"))}catch{return null}}function hs(e){let t=ds(e);if(us(t))Gm(t)}async function yo(){try{return await Bun.spawn(["tmux","-V"],{stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}function ms(){return Boolean(Bun.env.TMUX)}async function pn(e){try{return await mn(["has-session","-t",e]),!0}catch{return!1}}async function Jm(e,t,n){if(await pn(e))throw new xo(`Session '${e}' already exists`,"session_exists");if(!us(t))throw new xo(`Worktree path does not exist: ${t}`,"path_not_found");let o=n?.windows??[],i=o[0],s=["new-session","-d","-s",e,"-c",t];if(i)s.push("-n",i.name);if(await mn(s),i?.command)await mn(["send-keys","-t",`${e}:${i.name}`,i.command,"Enter"]);for(let c=1;c<o.length;c++){let a=o[c];if(await mn(["new-window","-t",e,"-n",a.name,"-c",t]),a.command)await mn(["send-keys","-t",`${e}:${a.name}`,a.command,"Enter"])}if(o.length>0)await mn(["select-window","-t",`${e}:${o[0].name}`])}async function ps(e){if(!await pn(e))return;await mn(["kill-session","-t",e])}async function Gr(e){if(!await pn(e))throw new xo(`Session '${e}' does not exist`,"session_not_found");if(ms())await mn(["switch-client","-t",e]);else if(await Bun.spawn(["tmux","attach-session","-t",e],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited!==0)throw new xo(`Failed to attach to session '${e}'`,"attach_failed")}async function gs(e){let t=fs(e??dl);try{let n=await mn(["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}|#{session_created}"]);if(!n)return[];return n.split(`
13
- `).filter(Boolean).filter((o)=>o.startsWith(`${t}_`)||o.startsWith(`${t}:`)).map((o)=>{let[i,s,c,a]=o.split("|");return{name:i??"",windows:parseInt(s??"0",10),attached:c==="1",created:a??""}})}catch{return[]}}async function Ur(e,t,n){let o=An(e,n?.prefix),i=n?.attach??!0;if(await pn(o)){if(i)await Gr(o);return o}if(await Jm(o,t,n?.layout),Tm(t,{name:o,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Gr(o);return o}async function Tr(e,t,n){let o=An(e,n),i=await pn(o);if(i)await ps(o);return hs(t),i}var xo,dl="copse";var Wn=ge(()=>{Pn();xo=class xo extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function ml(e){let[t,n]=ue([]),o=(s)=>{n((c)=>c.filter((a)=>a.id!==s))},i=(s)=>{let c=`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,a=s.duration??3000;n((u)=>[...u,{...s,id:c}].slice(-5)),setTimeout(()=>{o(c)},a)};return X(hl.Provider,{value:{toasts:t,addToast:i,removeToast:o},get children(){return e.children}})}function on(){let e=Gt(hl);if(!e)throw Error("useToast must be used within ToastProvider");return e}var hl;var no=ge(()=>{te();Ye();hl=Mn()});function So(e){let[t,n]=ue(0),o=setInterval(()=>{n((i)=>(i+1)%pl.length)},80);return ct(()=>clearInterval(o)),(()=>{var i=l("box"),s=l("text");return f(i,s),r(i,"flexDirection","row"),r(i,"gap",1),V(s,()=>pl[t()]),V(i,(()=>{var c=Le(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return V(a,()=>e.label),H((u)=>r(a,"fg",g.text.secondary,u)),a})()})(),null),H((c)=>r(s,"fg",e.color??g.text.accent,c)),i})()}var pl;var Jr=ge(()=>{te();te();te();te();te();te();Ye();yt();pl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function gl(e){let t=gt(),n=on(),o=dn(),i=rt(),s=()=>i().width,c=()=>i().height,[a,u]=ue(null),[h,m]=ue(!0),[p,w]=ue("");Ha((S)=>{let O=S.getSelectedText();if(!O)return;o.copyToClipboardOSC52(O),n.addToast({type:"info",message:"Copied to clipboard"})});let A;ct(()=>{if(A)clearTimeout(A)});let W=()=>{return(t.worktrees()??[]).find((G)=>G.isMain)?.branch??"main"};Pt(en(()=>e.worktree.path,(S)=>{if(A)clearTimeout(A);if(!S){u(null),w(""),m(!1);return}u(null),w(""),m(!0),A=setTimeout(async()=>{if(e.worktree.path!==S)return;try{let[O,[G,I],z]=await Promise.all([qm(S),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(W(),e.worktree.branch,{stat:!0},S).catch(()=>""),se.diffBetween(W(),e.worktree.branch,void 0,S).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?se.getAheadBehind(e.worktree.branch,S):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==S)return;let Z=null;try{Z=Jt(S)}catch{}let T=null,J=zt(S);if(J){let q=await pn(J.name).catch(()=>!1);T={meta:J,active:q}}if(e.worktree.path!==S)return;u({commits:O,diffStat:G,fullDiff:I,aheadBehind:z,focus:Z,session:T}),w("")}catch(O){if(e.worktree.path!==S)return;u(null),w(O.message)}finally{if(e.worktree.path===S)m(!1)}},zm)}));let y=()=>{let S=e.worktree;if(S.isLocked)return"\uD83D\uDD12 locked";if(S.isDirty)return"\u25CF dirty";return"\u2713 clean"},C=()=>{let S=e.worktree;if(S.isLocked)return g.text.warning;if(S.isDirty)return g.text.error;return g.text.success},k=()=>{let S=a();if(!S)return"";let O=[];if(S.aheadBehind.ahead>0)O.push(`\u2191${S.aheadBehind.ahead}`);if(S.aheadBehind.behind>0)O.push(`\u2193${S.aheadBehind.behind}`);return O.length>0?O.join(" "):"\u2713 up to date"},F=()=>{let S=a();if(!S)return g.text.secondary;return S.aheadBehind.ahead||S.aheadBehind.behind?g.text.warning:g.text.success},x=()=>"\u2500".repeat(Math.max(s()-7,10));return(()=>{var S=l("box"),O=l("scrollbox"),G=l("box"),I=l("text"),z=l("text"),Z=l("box"),T=l("text"),J=l("box"),q=l("box"),Y=l("box"),ne=l("text"),he=l("text"),_=l("box"),me=l("box"),ke=l("text"),E=l("text"),P=l("box"),U=l("box"),K=l("text"),L=l("text"),ee=l("box"),de=l("box"),ie=l("text"),we=l("text"),Oe=l("box"),pe=l("box"),Ee=l("text"),Fe=l("box"),We=l("text");return f(S,O),r(S,"x",0),r(S,"y",0),f(O,G),f(O,Z),f(O,J),f(O,q),f(O,_),f(O,P),f(O,ee),f(O,Oe),f(O,pe),f(O,Fe),r(O,"x",2),r(O,"y",1),f(G,I),f(G,z),r(G,"height",1),f(I,B("Worktree Detail")),r(I,"x",0),r(I,"y",0),r(I,"bold",!0),r(I,"selectable",!0),f(z,B("(Esc to close)")),r(z,"x",17),r(z,"y",0),r(z,"selectable",!0),f(Z,T),r(Z,"height",1),r(T,"x",0),r(T,"y",0),r(T,"selectable",!0),V(T,x),r(J,"height",1),f(q,Y),f(q,he),r(q,"height",1),r(q,"flexDirection","row"),f(Y,ne),r(Y,"width",16),r(Y,"height",1),f(ne,B("Branch")),r(ne,"x",0),r(ne,"y",0),r(ne,"selectable",!0),r(he,"selectable",!0),V(he,()=>e.worktree.branch??"(detached)"),f(_,me),f(_,E),r(_,"height",1),r(_,"flexDirection","row"),f(me,ke),r(me,"width",16),r(me,"height",1),f(ke,B("Path")),r(ke,"x",0),r(ke,"y",0),r(ke,"selectable",!0),r(E,"selectable",!0),V(E,()=>e.worktree.path),f(P,U),f(P,L),r(P,"height",1),r(P,"flexDirection","row"),f(U,K),r(U,"width",16),r(U,"height",1),f(K,B("Status")),r(K,"x",0),r(K,"y",0),r(K,"selectable",!0),r(L,"selectable",!0),V(L,y),f(ee,de),f(ee,we),r(ee,"height",1),r(ee,"flexDirection","row"),f(de,ie),r(de,"width",16),r(de,"height",1),f(ie,B("HEAD")),r(ie,"x",0),r(ie,"y",0),r(ie,"selectable",!0),r(we,"selectable",!0),V(we,()=>e.worktree.head?.slice(0,8)),V(O,X(re,{get when(){return h()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box");return r(j,"height",1),V(j,X(So,{label:"Loading details..."})),j})()]}}),Oe),V(O,X(re,{get when(){return Le(()=>!h())()&&!!p()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,()=>`Failed to load details: ${p()}`),H((b)=>r(d,"fg",g.text.error,b)),j})()]}}),Oe),V(O,X(re,{get when(){return Le(()=>!h()&&!p())()&&!!a()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Upstream")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Sync")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,k),H((D)=>{var v=g.text.secondary,$=F();return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),X(re,{get when(){return a().aheadBehind.ahead>0},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Ahead")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>`${a().aheadBehind.ahead} commit(s)`),H((D)=>{var v=g.text.secondary,$=g.text.warning;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}}),X(re,{get when(){return a().aheadBehind.behind>0},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Behind")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>`${a().aheadBehind.behind} commit(s)`),H((D)=>{var v=g.text.secondary,$=g.text.warning;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}}),(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Recent Commits")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(re,{get when(){return a().commits.length>0},get fallback(){return(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("No commits found")),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.secondary,b)),j})()},get children(){return X(nt,{get each(){return a().commits},children:(j)=>(()=>{var d=l("box"),b=l("text");return f(d,b),r(d,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),V(b,j),H((M)=>r(b,"fg",g.text.primary,M)),d})()})}}),X(re,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),V(d,()=>`Diff vs ${W()}`),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(re,{get when(){return a().diffStat.length>0},get children(){var j=l("code");return r(j,"language","diff"),H((d)=>r(j,"code",a().diffStat,d)),j}}),(()=>{var j=l("box");return r(j,"height",1),j})(),X(re,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("No changes")),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.secondary,b)),j})()},get children(){var j=l("scrollbox"),d=l("diff");return f(j,d),r(j,"height",15),r(d,"view","unified"),H((b)=>{var M=s()-3,D=a().fullDiff;return M!==b.e&&(b.e=r(j,"width",M,b.e)),D!==b.t&&(b.t=r(d,"diff",D,b.t)),b},{e:void 0,t:void 0}),j}})]}}),X(re,{get when(){return Le(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Focus Paths")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(nt,{get each(){return a().focus},children:(j)=>(()=>{var d=l("box"),b=l("text");return f(d,b),r(d,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),V(b,` \u2022 ${j}`),H((M)=>r(b,"fg",g.text.primary,M)),d})()})]}}),X(re,{get when(){return a().session},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Session")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Name")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.meta.name),H((D)=>{var v=g.text.secondary,$=g.text.primary;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Status")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.active?"\u25CF active":"\u25CB inactive"),H((D)=>{var v=g.text.secondary,$=a().session.active?g.text.success:g.text.error;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),X(re,{get when(){return a().session.meta.layout},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Layout")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.meta.layout),H((D)=>{var v=g.text.secondary,$=g.text.primary;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}})]}}),X(re,{get when(){return e.worktree.isMain},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Type")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),f(M,B("main worktree")),r(M,"selectable",!0),H((D)=>{var v=g.text.secondary,$=g.text.accent;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})()]}})]}}),Oe),r(Oe,"height",1),f(pe,Ee),r(pe,"height",1),r(Ee,"x",0),r(Ee,"y",0),r(Ee,"selectable",!0),V(Ee,x),f(Fe,We),r(Fe,"height",1),f(We,B("Esc:back d:delete o:open r:refresh")),r(We,"x",0),r(We,"y",0),r(We,"selectable",!0),H((j)=>{var d=s(),b=c(),M=g.bg.base,D=s()-3,v=c()-3,$=g.text.accent,oe=g.text.secondary,be=g.border.subtle,le=g.text.secondary,Ie=g.text.accent,N=g.text.secondary,ae=g.text.primary,ce=g.text.secondary,Q=C(),Re=g.text.secondary,Ce=g.text.secondary,Te=g.border.subtle,Ge=g.text.secondary;return d!==j.e&&(j.e=r(S,"width",d,j.e)),b!==j.t&&(j.t=r(S,"height",b,j.t)),M!==j.a&&(j.a=r(S,"backgroundColor",M,j.a)),D!==j.o&&(j.o=r(O,"width",D,j.o)),v!==j.i&&(j.i=r(O,"height",v,j.i)),$!==j.n&&(j.n=r(I,"fg",$,j.n)),oe!==j.s&&(j.s=r(z,"fg",oe,j.s)),be!==j.h&&(j.h=r(T,"fg",be,j.h)),le!==j.r&&(j.r=r(ne,"fg",le,j.r)),Ie!==j.d&&(j.d=r(he,"fg",Ie,j.d)),N!==j.l&&(j.l=r(ke,"fg",N,j.l)),ae!==j.u&&(j.u=r(E,"fg",ae,j.u)),ce!==j.c&&(j.c=r(K,"fg",ce,j.c)),Q!==j.w&&(j.w=r(L,"fg",Q,j.w)),Re!==j.m&&(j.m=r(ie,"fg",Re,j.m)),Ce!==j.f&&(j.f=r(we,"fg",Ce,j.f)),Te!==j.y&&(j.y=r(Ee,"fg",Te,j.y)),Ge!==j.g&&(j.g=r(We,"fg",Ge,j.g)),j},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0}),S})()}async function qm(e){try{let t=Bun.spawn(["git","log","--oneline","-10"],{cwd:e,stdout:"pipe",stderr:"pipe",env:{...process.env,LC_ALL:"C"}}),n=await new Response(t.stdout).text();if(await t.exited,t.exitCode!==0)return[];return n.trim().split(`
14
- `).filter(Boolean)}catch{return[]}}var zm=150;var bl=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();hn();no();yt();nn();Wn();Ke();Jr()});function wl(){let e=st(),t=gt(),n=rt(),o=()=>{let y=t.worktrees()??[],C=e.selectedWorktreePath();if(C){let k=y.find((F)=>F.path===C);if(k)return k}return y[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[u,h]=ue(!1),[m,p]=ue(""),w;ct(()=>{if(w)clearTimeout(w)}),Pt(en(()=>o()?.path,(y)=>{if(w)clearTimeout(w);if(!y){a(null),h(!1),p("");return}a(null),h(!0),p(""),w=setTimeout(async()=>{let C=o();if(!C||C.path!==y)return;try{let[k,F,x]=await Promise.all([C.branch?se.getAheadBehind(C.branch,C.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(C.path),se.getDirtyCount(C.path)]);if(o()?.path===y)a({aheadBehind:k,lastCommit:F,dirtyCount:x}),p("")}catch(k){if(o()?.path===y)a(null),p(k.message)}finally{if(o()?.path===y)h(!1)}},Xm)}));let A=()=>{if(u())return"Loading...";if(m())return"Unavailable";let y=c();if(!y)return"";let C=[];if(y.aheadBehind.ahead>0)C.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)C.push(`\u2193${y.aheadBehind.behind}`);return C.length>0?C.join(" "):"\u2713 up to date"},W=()=>{let y=o();if(!y)return"";if(y.isLocked)return"\uD83D\uDD12 locked";let C=c();if(C&&C.dirtyCount>0)return`\u25CF ${C.dirtyCount} file(s) dirty`;if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"};return it((y)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let C=y.name;if(C==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(C==="return"&&!e.showDetailView()&&o()){e.setShowDetailView(!0);return}if(C==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var y=l("box");return r(y,"width","100%"),r(y,"height","100%"),V(y,X(re,{get when(){return Le(()=>!!e.showDetailView())()&&!!o()},get children(){return X(gl,{get worktree(){return o()}})}}),null),V(y,X(re,{get when(){return!e.showDetailView()},get children(){return[X(re,{get when(){return t.loading()},get children(){return X(So,{label:"Loading worktrees..."})}}),X(re,{get when(){return Le(()=>!t.loading())()&&!!t.error()},get children(){var C=l("box"),k=l("text"),F=l("text"),x=l("text"),S=l("text"),O=l("text"),G=l("text"),I=l("text"),z=l("text"),Z=l("text");return f(C,k),f(C,F),f(C,x),f(C,S),f(C,O),f(C,G),f(C,I),f(C,z),f(C,Z),r(C,"flexDirection","column"),r(C,"paddingX",2),r(C,"paddingY",1),r(C,"gap",0),f(k,B("Unable to list worktrees")),f(F,B(" ")),V(x,()=>t.error()?.message),f(S,B(" ")),f(O,B("copse needs a git repository to manage worktrees.")),f(G,B(" \xB7 cd into a git repository and relaunch copse, or")),f(I,B(" \xB7 configure repos in ~/.config/copse/config.json")),f(z,B(" ")),f(Z,B("Press q to quit, or ^P to open the command palette.")),H((T)=>{var J=g.text.error,q=g.text.secondary,Y=g.text.secondary,ne=g.text.secondary,he=g.text.secondary,_=g.text.secondary,me=g.text.secondary,ke=g.text.secondary,E=g.text.accent;return J!==T.e&&(T.e=r(k,"fg",J,T.e)),q!==T.t&&(T.t=r(F,"fg",q,T.t)),Y!==T.a&&(T.a=r(x,"fg",Y,T.a)),ne!==T.o&&(T.o=r(S,"fg",ne,T.o)),he!==T.i&&(T.i=r(O,"fg",he,T.i)),_!==T.n&&(T.n=r(G,"fg",_,T.n)),me!==T.s&&(T.s=r(I,"fg",me,T.s)),ke!==T.h&&(T.h=r(z,"fg",ke,T.h)),E!==T.r&&(T.r=r(Z,"fg",E,T.r)),T},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),C}}),X(re,{get when(){return Le(()=>!t.loading()&&!t.error())()&&!!o()},get children(){var C=l("box"),k=l("box"),F=l("text"),x=l("box"),S=l("text"),O=l("box"),G=l("box"),I=l("text"),z=l("text"),Z=l("box"),T=l("box"),J=l("text"),q=l("text"),Y=l("box"),ne=l("box"),he=l("text"),_=l("text"),me=l("box"),ke=l("box"),E=l("text"),P=l("text"),U=l("box"),K=l("box"),L=l("text"),ee=l("text"),de=l("box"),ie=l("text"),we=l("box"),Oe=l("text"),pe=l("text"),Ee=l("text"),Fe=l("text"),We=l("text"),j=l("text");return f(C,k),f(C,x),f(C,O),f(C,Z),f(C,Y),f(C,me),f(C,U),f(C,de),f(C,we),r(C,"width","100%"),r(C,"height","100%"),r(C,"flexDirection","column"),r(C,"paddingX",2),r(C,"paddingY",1),f(k,F),r(k,"height",1),r(k,"flexDirection","row"),f(F,B("Worktree Details")),f(x,S),r(x,"height",1),V(S,()=>"\u2500".repeat(Math.max(i()-38,10))),V(C,X(re,{get when(){return t.isMultiRepo()},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Repo")),V(D,()=>o()?.repoName),H((v)=>{var $=g.text.secondary,oe=g.text.warning;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),O),f(O,G),f(O,z),r(O,"height",1),r(O,"flexDirection","row"),f(G,I),r(G,"width",14),r(G,"height",1),f(I,B("Branch")),V(z,()=>o()?.branch??"(detached)"),f(Z,T),f(Z,q),r(Z,"height",1),r(Z,"flexDirection","row"),f(T,J),r(T,"width",14),r(T,"height",1),f(J,B("Path")),V(q,()=>o()?.path),f(Y,ne),f(Y,_),r(Y,"height",1),r(Y,"flexDirection","row"),f(ne,he),r(ne,"width",14),r(ne,"height",1),f(he,B("Status")),V(_,W),f(me,ke),f(me,P),r(me,"height",1),r(me,"flexDirection","row"),f(ke,E),r(ke,"width",14),r(ke,"height",1),f(E,B("Sync")),V(P,A),f(U,K),f(U,ee),r(U,"height",1),r(U,"flexDirection","row"),f(K,L),r(K,"width",14),r(K,"height",1),f(L,B("HEAD")),V(ee,()=>o()?.head?.slice(0,8)),V(C,X(re,{get when(){return c()?.lastCommit},get children(){return[(()=>{var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Last Commit")),V(D,()=>c().lastCommit.relativeDate),H((v)=>{var $=g.text.secondary,oe=g.text.primary;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d})(),(()=>{var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),V(D,(()=>{var v=Le(()=>c().lastCommit.message.length>50);return()=>v()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),H((v)=>{var $=g.text.secondary,oe=g.text.secondary;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d})()]}}),de),V(C,X(re,{get when(){let d=Jt(o()?.path??"");return d&&d.length>0},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Focus")),V(D,()=>Jt(o()?.path??"")?.join(", ")??""),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),V(C,X(re,{get when(){return!!zt(o()?.path??"")},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Session")),V(D,()=>{let v=zt(o()?.path??"");if(!v)return"";return v.layout?`${v.name} [${v.layout}]`:v.name}),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),V(C,X(re,{get when(){return o()?.isMain},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Type")),f(D,B("main worktree")),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),f(de,ie),r(de,"height",1),V(ie,()=>"\u2500".repeat(Math.max(i()-38,10))),f(we,Oe),f(we,pe),f(we,Ee),f(we,Fe),f(we,We),f(we,j),r(we,"height",1),r(we,"flexDirection","row"),r(we,"gap",2),f(Oe,B("Enter:detail")),f(pe,B("d:delete")),f(Ee,B("a:add")),f(Fe,B("o:open")),f(We,B("r:refresh")),f(j,B("^P:commands")),H((d)=>{var b=g.bg.surface,M=g.text.accent,D=g.border.subtle,v=g.text.secondary,$=g.text.accent,oe=g.text.secondary,be=g.text.primary,le=g.text.secondary,Ie=o()?.isDirty?g.text.error:o()?.isLocked?g.text.warning:g.text.success,N=g.text.secondary,ae=m()?g.text.error:u()?g.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?g.text.warning:g.text.success,ce=g.text.secondary,Q=g.text.secondary,Re=g.border.subtle,Ce=g.text.secondary,Te=g.text.secondary,Ge=g.text.secondary,Qe=g.text.secondary,ht=g.text.secondary,Pe=g.text.secondary;return b!==d.e&&(d.e=r(C,"backgroundColor",b,d.e)),M!==d.t&&(d.t=r(F,"fg",M,d.t)),D!==d.a&&(d.a=r(S,"fg",D,d.a)),v!==d.o&&(d.o=r(I,"fg",v,d.o)),$!==d.i&&(d.i=r(z,"fg",$,d.i)),oe!==d.n&&(d.n=r(J,"fg",oe,d.n)),be!==d.s&&(d.s=r(q,"fg",be,d.s)),le!==d.h&&(d.h=r(he,"fg",le,d.h)),Ie!==d.r&&(d.r=r(_,"fg",Ie,d.r)),N!==d.d&&(d.d=r(E,"fg",N,d.d)),ae!==d.l&&(d.l=r(P,"fg",ae,d.l)),ce!==d.u&&(d.u=r(L,"fg",ce,d.u)),Q!==d.c&&(d.c=r(ee,"fg",Q,d.c)),Re!==d.w&&(d.w=r(ie,"fg",Re,d.w)),Ce!==d.m&&(d.m=r(Oe,"fg",Ce,d.m)),Te!==d.f&&(d.f=r(pe,"fg",Te,d.f)),Ge!==d.y&&(d.y=r(Ee,"fg",Ge,d.y)),Qe!==d.g&&(d.g=r(Fe,"fg",Qe,d.g)),ht!==d.p&&(d.p=r(We,"fg",ht,d.p)),Pe!==d.b&&(d.b=r(j,"fg",Pe,d.b)),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),C}}),X(re,{get when(){return Le(()=>!t.loading()&&!t.error())()&&!o()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"flexDirection","column"),r(C,"gap",1),f(k,B("No worktree selected.")),f(F,B("Press 'a' to create one.")),H((x)=>{var S=g.text.secondary,O=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}})]}}),null),H((C)=>r(y,"backgroundColor",g.bg.base,C)),y})()}var Xm=150;var xl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();nn();Wn();Ke();bl();Jr()});var Se,Ve;var zr=ge(()=>{Se={fetch:"fetch",worktree:"worktree",upstream:"upstream",copyFiles:"copyFiles",linkFiles:"linkFiles",sharedDeps:"sharedDeps",focus:"focus",postCreate:"postCreate",monorepoHooks:"monorepoHooks",session:"session",prMeta:"prMeta",activityLog:"activityLog"},Ve={postRemove:"postRemove",monorepoHooks:"monorepoHooks",session:"session",worktree:"worktree",activityLog:"activityLog"}});import*as Ym from"fs";import{join as jn,resolve as gn,dirname as tr}from"path";function qr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=jn(gn(e),i),c=jn(gn(t),i);if(!bn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(bn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{Co(tr(c),{recursive:!0}),Sl(s,c),o.copied.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return o}function Xr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=gn(jn(gn(e),i)),c=jn(gn(t),i);if(!bn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(bn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{Co(tr(c),{recursive:!0}),Cl(s,c),o.linked.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return o}function Rl(e,t,n=0){let o=0,i=[];if(n>$m)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=gn(e),c=gn(t);if(!bn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Nm(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return Co(tr(c),{recursive:!0}),yl(s,c),{linked:1,errors:[]}}catch(u){return{linked:0,errors:[`Failed to hardlink ${e}: ${u.message}`]}}if(!bn(c))Co(c,{recursive:!0});try{let u=Qm(s,{withFileTypes:!0});for(let h of u){let m=jn(s,h.name),p=jn(c,h.name);if(h.isDirectory()){let w=Rl(m,p,n+1);if(o+=w.linked,w.errors.length>0)i.push(...w.errors)}else if(h.isFile()){if(bn(p))continue;try{yl(m,p),o++}catch(w){try{Sl(m,p),o++}catch(A){i.push(`Failed to link/copy ${h.name}: ${A.message}`)}}}}}catch(u){i.push(`Failed to read directory ${e}: ${u.message}`)}return{linked:o,errors:i}}function Ol(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=jn(gn(e),c),u=jn(gn(t),c);if(!bn(a)){o.skipped.push(c),o.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(bn(u)){o.skipped.push(c);continue}try{if(s==="symlink")Co(tr(u),{recursive:!0}),Cl(a,u),o.linked.push(c);else if(s==="hardlink"){let h=Rl(a,u);if(h.linked>0)o.linked.push(c);for(let m of h.errors)o.warnings.push(m)}else Co(tr(u),{recursive:!0}),Zm(a,u,{recursive:!0}),o.copied.push(c)}catch(h){o.skipped.push(c),o.warnings.push(`Failed to share dep ${c}: ${h.message}`)}}return o}var Sl,Zm,bn,Cl,fy,yl,Qm,Nm,Co,$m=30;var bs=ge(()=>{({copyFileSync:Sl,cpSync:Zm,existsSync:bn,symlinkSync:Cl,unlinkSync:fy,linkSync:yl,readdirSync:Qm,statSync:Nm,mkdirSync:Co}=Ym)});import{existsSync as _m,mkdirSync as ep}from"fs";async function rn(e,t){let n=t.timeout??30000;for(let o of e)await tp(o,t.cwd,n,t.env??{},t.onOutput)}async function tp(e,t,n,o,i){if(!_m(t))ep(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}catch(h){if(h.code!=="ENOENT")throw h;s=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,s.kill()},n),u=s.stderr?new Response(s.stderr).text():Promise.resolve("");try{if(i&&s.stdout){let m=s.stdout.getReader(),p=new TextDecoder,w=[];while(!0){let{done:W,value:y}=await m.read();if(W)break;let k=p.decode(y,{stream:!0}).split(`
15
- `);if(k.length===1)w.push(k[0]);else{w.push(k[0]);let F=w.join("");if(w.length=0,F)i(F);for(let S=1;S<k.length-1;S++)if(k[S])i(k[S]);let x=k[k.length-1];if(x)w.push(x)}}let A=w.join("")+p.decode();if(A)i(A)}let h=await s.exited;if(c)throw new Oo(e,n);if(h!==0){let m=(await u).trim();throw new Ro(e,h,m)}}finally{clearTimeout(a)}}var Ro,Oo;var oo=ge(()=>{Ro=class Ro extends Error{command;exitCode;stderr;constructor(e,t,n){super(`Hook command failed (exit ${t}): ${e}
16
- ${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};Oo=class Oo extends Error{command;timeoutMs;constructor(e,t){super(`Hook command timed out after ${t}ms: ${e}`);this.command=e;this.timeoutMs=t;this.name="HookTimeoutError"}}});import{mkdirSync as np,writeFileSync as op}from"fs";import{dirname as rp}from"path";function ip(e){return tn(e,"copse-pr")}function vl(e,t){let n=ip(e);np(rp(n),{recursive:!0}),op(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var kl=ge(()=>{Pn()});import{appendFileSync as sp,existsSync as cp,mkdirSync as ap,readFileSync as El,rmSync as lp,statSync as fp,writeFileSync as up}from"fs";import{dirname as dp}from"path";function ws(e){return tn(e,"copse-activity.log")}function qt(e,t){let n=ws(e);ap(dp(n),{recursive:!0}),sp(n,`${JSON.stringify(t)}
17
- `,{encoding:"utf-8",mode:384});let o=fp(n,{throwIfNoEntry:!1});if(o&&o.size>mp){let i=El(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>Fl){let s=i.slice(-hp);up(n,`${s.join(`
3
+ var td=Object.defineProperty;var nd=(e)=>e;function od(e,t){this[e]=nd.bind(null,t)}var Ze=(e,t)=>{for(var n in t)td(e,n,{get:t[n],enumerable:!0,configurable:!0,set:od.bind(t,n)})};var de=(e,t)=>()=>(e&&(t=e(e=0)),t);var cn=import.meta.require;import{existsSync as Mi,readdirSync as Zd,statSync as _c}from"fs";import{join as Ai,resolve as Qd}from"path";function $d(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function ta(e){return Qd($d(e))}function _d(e){let t=Ai(e,".git");if(!Mi(t))return!1;try{return _c(t).isDirectory()}catch{return!1}}function eh(e){return Mi(Ai(e,".git"))}function th(e){if(!Mi(e))return!1;try{return _c(e).isDirectory()}catch{return!1}}function nh(e){let t=e.map((n)=>n.trim()).filter(Boolean).map((n)=>new Bun.Glob(n));if(t.length===0)return()=>!1;return(n)=>t.some((o)=>o.match(n))}function oh(e,t=ea,n=[]){let o=Math.max(1,Math.min(t,Nd)),i=ta(e);if(!th(i))return[];let r=nh(n),c=new Set,a=(u,d)=>{let m;try{m=Zd(u,{withFileTypes:!0})}catch{return}for(let p of m){if(!p.isDirectory()||r(p.name))continue;let x=Ai(u,p.name);if(eh(x)){if(_d(x))c.add(x);continue}if(d<o)a(x,d+1)}};return a(i,1),[...c].sort((u,d)=>u.localeCompare(d))}function na(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>ta(i.path))),o=[];for(let i of t){let r=i.depth??ea,c=i.exclude??[],a=oh(i.path,r,c);for(let u of a){if(n.has(u))continue;n.add(u),o.push({path:u,...i.defaults??{}})}}if(o.length===0)return e;return{...e,repos:[...e.repos??[],...o]}}var ea=1,Nd=3;var oa=()=>{};import{join as Li,resolve as wr}from"path";import*as ln from"fs";function Vt(e,t,n){if(!Array.isArray(e)||e.some((o)=>typeof o!=="string"))n.push({field:t,message:"Must be an array of strings"})}function ca(){let t=Bun.env.XDG_CONFIG_HOME??Li(Bun.env.HOME??"~",".config");return Li(t,"copse")}function Ct(){return Li(ca(),"config.json")}function no(e){let t=[];if(typeof e!=="object"||e===null)return t.push({field:"root",message:"Config must be a JSON object"}),t;let n=e;if(!("version"in n))t.push({field:"version",message:"Required field 'version' is missing"});else if(n.version!==1)t.push({field:"version",message:`Expected version 1, got ${JSON.stringify(n.version)}`});for(let o of Object.keys(n))if(!rh.has(o))t.push({field:o,message:`Unknown field '${o}'`});if("terminalCommand"in n&&n.terminalCommand!==void 0){if(typeof n.terminalCommand!=="string")t.push({field:"terminalCommand",message:"Must be a string"});else if(n.terminalCommand.trim().length===0)t.push({field:"terminalCommand",message:"Must not be empty"})}if("defaults"in n&&n.defaults!==void 0)if(typeof n.defaults!=="object"||n.defaults===null)t.push({field:"defaults",message:"Must be an object"});else{let o=n.defaults;for(let i of Object.keys(o))if(!ra.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in o&&typeof o.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in o&&typeof o.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});if("base"in o&&typeof o.base!=="string")t.push({field:"defaults.base",message:"Must be a string"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in o)Vt(o[i],`defaults.${i}`,t);if("sharedDeps"in o&&o.sharedDeps!==void 0)if(typeof o.sharedDeps!=="object"||o.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Wi(o.sharedDeps,"defaults.sharedDeps",t)}if("repos"in n&&n.repos!==void 0)if(!Array.isArray(n.repos))t.push({field:"repos",message:"Must be an array"});else for(let o=0;o<n.repos.length;o++){let i=n.repos[o],r=`repos[${o}]`;if(typeof i!=="object"||i===null){t.push({field:r,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!ih.has(a))t.push({field:`${r}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${r}.path`,message:"Required string field 'path' is missing"});if("worktreeDir"in c&&typeof c.worktreeDir!=="string")t.push({field:`${r}.worktreeDir`,message:"Must be a string"});if("autoUpstream"in c&&typeof c.autoUpstream!=="boolean")t.push({field:`${r}.autoUpstream`,message:"Must be a boolean"});if("base"in c&&typeof c.base!=="string")t.push({field:`${r}.base`,message:"Must be a string"});for(let a of["copyFiles","linkFiles","postCreate","postRemove"])if(a in c)Vt(c[a],`${r}.${a}`,t);if("sharedDeps"in c&&c.sharedDeps!==void 0)if(typeof c.sharedDeps!=="object"||c.sharedDeps===null)t.push({field:`${r}.sharedDeps`,message:"Must be an object"});else Wi(c.sharedDeps,`${r}.sharedDeps`,t);if("monorepo"in c&&c.monorepo!==void 0)if(typeof c.monorepo!=="object"||c.monorepo===null)t.push({field:`${r}.monorepo`,message:"Must be an object"});else{let a=c.monorepo;for(let u of Object.keys(a))if(!ch.has(u))t.push({field:`${r}.monorepo.${u}`,message:`Unknown field '${u}'`});if("autoDetect"in a&&typeof a.autoDetect!=="boolean")t.push({field:`${r}.monorepo.autoDetect`,message:"Must be a boolean"});if("extraPatterns"in a&&a.extraPatterns!==void 0)Vt(a.extraPatterns,`${r}.monorepo.extraPatterns`,t);if("hooks"in a&&a.hooks!==void 0)if(!Array.isArray(a.hooks))t.push({field:`${r}.monorepo.hooks`,message:"Must be an array"});else for(let u=0;u<a.hooks.length;u++){let d=a.hooks[u];if(typeof d!=="object"||d===null){t.push({field:`${r}.monorepo.hooks[${u}]`,message:"Must be an object"});continue}if(!("glob"in d)||typeof d.glob!=="string")t.push({field:`${r}.monorepo.hooks[${u}].glob`,message:"Required string field"});if("copyFiles"in d&&d.copyFiles!==void 0)Vt(d.copyFiles,`${r}.monorepo.hooks[${u}].copyFiles`,t);if("linkFiles"in d&&d.linkFiles!==void 0)Vt(d.linkFiles,`${r}.monorepo.hooks[${u}].linkFiles`,t);if("postCreate"in d&&d.postCreate!==void 0)Vt(d.postCreate,`${r}.monorepo.hooks[${u}].postCreate`,t);if("postRemove"in d&&d.postRemove!==void 0)Vt(d.postRemove,`${r}.monorepo.hooks[${u}].postRemove`,t)}}}if("workspaces"in n&&n.workspaces!==void 0)if(!Array.isArray(n.workspaces))t.push({field:"workspaces",message:"Must be an array"});else for(let o=0;o<n.workspaces.length;o++){let i=n.workspaces[o],r=`workspaces[${o}]`;if(typeof i!=="object"||i===null){t.push({field:r,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!sh.has(a))t.push({field:`${r}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${r}.path`,message:"Required string field 'path' is missing"});if("depth"in c&&c.depth!==void 0){if(typeof c.depth!=="number"||!Number.isInteger(c.depth)||c.depth<1||c.depth>3)t.push({field:`${r}.depth`,message:"Must be an integer between 1 and 3"})}if("exclude"in c&&c.exclude!==void 0)Vt(c.exclude,`${r}.exclude`,t);if("defaults"in c&&c.defaults!==void 0)if(typeof c.defaults!=="object"||c.defaults===null||Array.isArray(c.defaults))t.push({field:`${r}.defaults`,message:"Must be an object"});else{let a=c.defaults;for(let u of Object.keys(a))if(!ra.has(u))t.push({field:`${r}.defaults.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${r}.defaults.worktreeDir`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${r}.defaults.autoUpstream`,message:"Must be a boolean"});if("base"in a&&typeof a.base!=="string")t.push({field:`${r}.defaults.base`,message:"Must be a string"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${r}.defaults.${u}`,t);if("sharedDeps"in a&&a.sharedDeps!==void 0)if(typeof a.sharedDeps!=="object"||a.sharedDeps===null)t.push({field:`${r}.defaults.sharedDeps`,message:"Must be an object"});else Wi(a.sharedDeps,`${r}.defaults.sharedDeps`,t)}}if("templates"in n&&n.templates!==void 0)if(typeof n.templates!=="object"||n.templates===null||Array.isArray(n.templates))t.push({field:"templates",message:"Must be an object (key-value map)"});else{let o=n.templates;for(let[i,r]of Object.entries(o)){let c=`templates.${i}`;if(typeof r!=="object"||r===null){t.push({field:c,message:"Must be an object"});continue}let a=r;for(let u of Object.keys(a))if(!ah.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${c}.worktreeDir`,message:"Must be a string"});if("base"in a&&typeof a.base!=="string")t.push({field:`${c}.base`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${c}.autoUpstream`,message:"Must be a boolean"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${c}.${u}`,t)}}if("lifecycle"in n&&n.lifecycle!==void 0)if(typeof n.lifecycle!=="object"||n.lifecycle===null)t.push({field:"lifecycle",message:"Must be an object"});else{let o=n.lifecycle;for(let i of Object.keys(o))if(!lh.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in o&&typeof o.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in o&&(typeof o.staleAfterDays!=="number"||o.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in o&&(typeof o.maxWorktrees!=="number"||o.maxWorktrees<1))t.push({field:"lifecycle.maxWorktrees",message:"Must be a positive number"})}if("sessions"in n&&n.sessions!==void 0)if(typeof n.sessions!=="object"||n.sessions===null)t.push({field:"sessions",message:"Must be an object"});else{let o=n.sessions;for(let i of Object.keys(o))if(!fh.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in o&&typeof o[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in o&&typeof o.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in o&&typeof o.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in o&&o.layouts!==void 0)if(typeof o.layouts!=="object"||o.layouts===null||Array.isArray(o.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=o.layouts;for(let[r,c]of Object.entries(i)){let a=`sessions.layouts.${r}`;if(typeof c!=="object"||c===null){t.push({field:a,message:"Must be an object"});continue}let u=c;if(!("windows"in u)||!Array.isArray(u.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let d=0;d<u.windows.length;d++){let m=u.windows[d];if(typeof m!=="object"||m===null){t.push({field:`${a}.windows[${d}]`,message:"Must be an object"});continue}if(!("name"in m)||typeof m.name!=="string")t.push({field:`${a}.windows[${d}].name`,message:"Required string field"});if("command"in m&&typeof m.command!=="string")t.push({field:`${a}.windows[${d}].command`,message:"Must be a string"})}}}if("defaultLayout"in o&&typeof o.defaultLayout==="string"&&"layouts"in o&&typeof o.layouts==="object"&&o.layouts!==null){let i=o.layouts;if(!(o.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${o.defaultLayout}' does not exist in sessions.layouts`})}}if("profiles"in n&&n.profiles!==void 0)if(typeof n.profiles!=="object"||n.profiles===null||Array.isArray(n.profiles))t.push({field:"profiles",message:"Must be an object (key-value map)"});else{let o=n.profiles;for(let[i,r]of Object.entries(o)){let c=`profiles.${i}`;if(typeof r!=="object"||r===null){t.push({field:c,message:"Must be an object"});continue}let a=r;for(let u of Object.keys(a))if(!uh.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`})}}if("activeProfile"in n&&n.activeProfile!==void 0){if(typeof n.activeProfile!=="string")t.push({field:"activeProfile",message:"Must be a string"});else if("profiles"in n&&n.profiles!==void 0&&typeof n.profiles==="object"&&n.profiles!==null&&!Array.isArray(n.profiles)){let o=n.profiles;if(!(n.activeProfile in o))t.push({field:"activeProfile",message:`Profile '${n.activeProfile}' does not exist in profiles`})}else if(!("profiles"in n)||n.profiles===void 0)t.push({field:"activeProfile",message:"Cannot set activeProfile without profiles"})}return t}function Wi(e,t,n){let o=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!o.has(i))n.push({field:`${t}.${i}`,message:`Unknown field '${i}'`});if("strategy"in e&&!["hardlink","symlink","copy"].includes(e.strategy))n.push({field:`${t}.strategy`,message:'Must be "hardlink", "symlink", or "copy"'});if("paths"in e)Vt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Vt(e.invalidateOn,`${t}.invalidateOn`,n)}function Uo(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function to(e){if(Array.isArray(e))return e.map((t)=>to(t));if(Uo(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=to(o);return t}return e}function aa(e,t){if(t===void 0)return to(e);if(Array.isArray(t))return t.map((i)=>to(i));if(!Uo(t))return to(t);let n=Uo(e)?e:{},o={};for(let[i,r]of Object.entries(n))o[i]=to(r);for(let[i,r]of Object.entries(t)){if(r===void 0)continue;let c=n[i];if(Uo(c)&&Uo(r)){o[i]=aa(c,r);continue}o[i]=to(r)}return o}function dh(e){if(!e.activeProfile)return structuredClone(e);let t=e.profiles?.[e.activeProfile];if(!t||typeof t!=="object"||Array.isArray(t))throw Error(`Active profile '${e.activeProfile}' does not exist`);return aa(e,t)}function la(e){let t=e??Ct();if(!ln.existsSync(t))return structuredClone(sa);let n;try{let c=xr.readFileSync(t,"utf-8");n=JSON.parse(c)}catch(c){let a=c.message;if(a.includes("JSON"))throw Error(`Invalid JSON in config file: ${a}`);if(c instanceof SyntaxError)throw Error(`Invalid JSON in config file: ${a}`);throw Error(`Failed to read config file: ${a}`)}let o=no(n);if(o.length>0){let c=o.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=dh(n),r=no(i);if(r.length>0){let c=r.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed after applying activeProfile: ${c}`)}return i}function Pe(e){return na(la(e))}function Ii(e){return la(e)}function en(e,t){let n=wr(t),o=e.repos?.find((i)=>wr(i.path)===n);return{worktreeDir:o?.worktreeDir??e.defaults?.worktreeDir??po.worktreeDir,copyFiles:o?.copyFiles??e.defaults?.copyFiles??po.copyFiles,linkFiles:o?.linkFiles??e.defaults?.linkFiles??po.linkFiles,postCreate:o?.postCreate??e.defaults?.postCreate??po.postCreate,postRemove:o?.postRemove??e.defaults?.postRemove??po.postRemove,autoUpstream:o?.autoUpstream??e.defaults?.autoUpstream??po.autoUpstream,monorepo:o?.monorepo,sharedDeps:o?.sharedDeps??e.defaults?.sharedDeps,base:o?.base??e.defaults?.base}}function Dn(e){return(e.repos??[]).map((t)=>wr(t.path))}function yr(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function Kt(e){let t=e??Ct(),n=e?wr(t,".."):ca();if(!ln.existsSync(n))xr.mkdirSync(n,{recursive:!0,mode:448});if(ln.existsSync(t))return t;return oo(t,`${JSON.stringify(sa,null,2)}
4
+ `),t}function fa(e){let t=e??Ct(),n=ln.existsSync(t);return{path:Kt(e),created:!n}}function Sr(e,t){return e.templates?.[t]}function Cr(e,t){return{worktreeDir:t.worktreeDir??e.worktreeDir,copyFiles:t.copyFiles??e.copyFiles,linkFiles:t.linkFiles??e.linkFiles,postCreate:t.postCreate??e.postCreate,postRemove:t.postRemove??e.postRemove,autoUpstream:t.autoUpstream??e.autoUpstream,monorepo:e.monorepo,sharedDeps:e.sharedDeps,base:t.base??e.base}}function Fn(e){return e.sessions??{}}function Rr(e,t){let n=e.sessions;if(!n?.layouts)return;let o=t??n.defaultLayout;if(!o)return;return n.layouts[o]}function ua(e,t,n){if(t.length===0)return;let o=e;for(let r=0;r<t.length-1;r++){let c=t[r],a=t[r+1],u=o[c];if(u===void 0||u===null)o[c]=typeof a==="number"?[]:{};o=o[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(o)&&typeof i==="number")o.splice(i,1);else delete o[i];return}o[i]=n}function oo(e,t){let n=`${e}.tmp.${Date.now()}`;try{ln.writeFileSync(n,t,{encoding:"utf-8",mode:384});let o=JSON.parse(t),i=no(o);if(i.length>0)throw Error(`Validation failed: ${i.map((r)=>r.message).join("; ")}`);xr.renameSync(n,e)}catch(o){if(ln.existsSync(n))xr.unlinkSync(n);throw o}}var xr,ia="~/.copse/worktrees/{repo}-{branch}",sa,po,rh,ra,ih,sh,ch,ah,lh,fh,uh;var ze=de(()=>{oa();xr=ln,sa={version:1,defaults:{worktreeDir:ia,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},po={worktreeDir:ia,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};rh=new Set(["version","defaults","repos","workspaces","$schema","terminalCommand","theme","templates","lifecycle","sessions","profiles","activeProfile"]),ra=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),ih=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),sh=new Set(["path","depth","exclude","defaults"]),ch=new Set(["autoDetect","extraPatterns","hooks"]),ah=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),lh=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),fh=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),uh=new Set(["defaults","repos","workspaces","terminalCommand","theme","templates","lifecycle","sessions"])});function da(e){let t=String(e),n=t.length-1;return Ne.context.id+(n?String.fromCharCode(96+n):"")+t}function Hi(e){Ne.context=e}function hh(){return{...Ne.context,id:Ne.getNextContextId(),count:0}}function Jo(e,t){let n=Be,o=Ae,i=e.length===0,r=t===void 0?o:t,c=i?ya:{owned:null,cleanups:null,context:r?r.context:null,owner:r},a=i?e:()=>e(()=>Rt(()=>Pn(c)));Ae=c,Be=null;try{return Pt(a,!0)}finally{Be=n,Ae=o}}function ue(e,t){t=t?Object.assign({},kr,t):kr;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},o=(i)=>{if(typeof i==="function")if(le&&le.running&&le.sources.has(n))i=i(n.tValue);else i=i(n.value);return Ra(n,i)};return[Ca.bind(n),o]}function ma(e,t,n){let o=Fr(e,t,!0,Mt);if(bo&&le&&le.running)nt.push(o);else wo(o)}function tn(e,t,n){let o=Fr(e,t,!1,Mt);if(bo&&le&&le.running)nt.push(o);else wo(o)}function At(e,t,n){xa=Oh;let o=Fr(e,t,!1,Mt),i=qo&&Gt(qo);if(i)o.suspense=i;if(!n||!n.render)o.user=!0;dt?dt.push(o):wo(o)}function $e(e,t,n){n=n?Object.assign({},kr,n):kr;let o=Fr(e,t,!0,0);if(o.observers=null,o.observerSlots=null,o.comparator=n.equals||void 0,bo&&le&&le.running)o.tState=Mt,nt.push(o);else wo(o);return Ca.bind(o)}function wh(e){return e&&typeof e==="object"&&"then"in e}function Sa(e,t,n){let o,i,r;if(typeof t==="function")o=e,i=t,r=n||{};else o=!0,i=e,r=t||{};let c=null,a=ji,u=null,d=!1,m=!1,p="initialValue"in r,x=typeof o==="function"&&$e(o),D=new Set,[W,b]=(r.storage||ue)(r.initialValue),[R,v]=ue(void 0),[k,S]=ue(void 0,{equals:!1}),[y,O]=ue(p?"ready":"unresolved");if(Ne.context){if(u=Ne.getNextContextId(),r.ssrLoadFrom==="initial")a=r.initialValue;else if(Ne.load&&Ne.has(u))a=Ne.load(u)}function B(J,z,Q,ne){if(c===J){if(c=null,ne!==void 0&&(p=!0),(J===a||z===a)&&r.onHydrated)queueMicrotask(()=>r.onHydrated(ne,{value:z}));if(a=ji,le&&J&&d)le.promises.delete(J),d=!1,Pt(()=>{le.running=!0,I(z,Q)},!1);else I(z,Q)}return z}function I(J,z){Pt(()=>{if(z===void 0)b(()=>J);O(z!==void 0?"errored":p?"ready":"unresolved"),v(z);for(let Q of D.keys())Q.decrement();D.clear()},!1)}function q(){let J=qo&&Gt(qo),z=W(),Q=R();if(Q!==void 0&&!c)throw Q;if(Be&&!Be.user&&J)ma(()=>{if(k(),c){if(J.resolved&&le&&d)le.promises.add(c);else if(!D.has(J))J.increment(),D.add(J)}});return z}function Y(J=!0){if(J!==!1&&m)return;m=!1;let z=x?x():o;if(d=le&&le.running,z==null||z===!1){B(c,Rt(W));return}if(le&&c)le.promises.delete(c);let Q,ne=a!==ji?a:Rt(()=>{try{return i(z,{value:W(),refetching:J})}catch(te){Q=te}});if(Q!==void 0){B(c,void 0,vr(Q),z);return}else if(!wh(ne))return B(c,ne,void 0,z),ne;if(c=ne,"v"in ne){if(ne.s===1)B(c,ne.v,void 0,z);else B(c,void 0,vr(ne.v),z);return ne}return m=!0,queueMicrotask(()=>m=!1),Pt(()=>{O(p?"refreshing":"pending"),S()},!1),ne.then((te)=>B(ne,te,void 0,z),(te)=>B(ne,void 0,vr(te),z))}Object.defineProperties(q,{state:{get:()=>y()},error:{get:()=>R()},loading:{get(){let J=y();return J==="pending"||J==="refreshing"}},latest:{get(){if(!p)return q();let J=R();if(J&&!c)throw J;return W()}}});let X=Ae;if(x)ma(()=>(X=Ae,Y(!1)));else Y(!1);return[q,{refetch:(J)=>xh(X,()=>Y(J)),mutate:b}]}function Rt(e){if(!go&&Be===null)return e();let t=Be;Be=null;try{if(go)return go.untrack(e);return e()}finally{Be=t}}function nn(e,t,n){let o=Array.isArray(e),i,r=n&&n.defer;return(c)=>{let a;if(o){a=Array(e.length);for(let d=0;d<e.length;d++)a[d]=e[d]()}else a=e();if(r)return r=!1,c;let u=Rt(()=>t(a,i,c));return i=a,u}}function fn(e){At(()=>Rt(e))}function it(e){if(Ae===null);else if(Ae.cleanups===null)Ae.cleanups=[e];else Ae.cleanups.push(e);return e}function xh(e,t){let n=Ae,o=Be;Ae=e,Be=null;try{return Pt(t,!0)}catch(i){Pr(i)}finally{Ae=n,Be=o}}function yh(e){if(le&&le.running)return e(),le.done;let t=Be,n=Ae;return Promise.resolve().then(()=>{Be=t,Ae=n;let o;if(bo||qo)o=le||(le={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),o.done||(o.done=new Promise((i)=>o.resolve=i)),o.running=!0;return Pt(e,!1),Be=Ae=null,o?o.done:void 0})}function Mn(e,t){let n=Symbol("context");return{id:n,Provider:vh(n),defaultValue:e}}function Gt(e){let t;return Ae&&Ae.context&&(t=Ae.context[e.id])!==void 0?t:e.defaultValue}function Sh(e){let t=$e(e),n=$e(()=>Vi(t()));return n.toArray=()=>{let o=n();return Array.isArray(o)?o:o!=null?[o]:[]},n}function Ca(){let e=le&&le.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)wo(this);else{let t=nt;nt=null,Pt(()=>Er(this),!1),nt=t}if(Be){let t=this.observers?this.observers.length:0;if(!Be.sources)Be.sources=[this],Be.sourceSlots=[t];else Be.sources.push(this),Be.sourceSlots.push(t);if(!this.observers)this.observers=[Be],this.observerSlots=[Be.sources.length-1];else this.observers.push(Be),this.observerSlots.push(Be.sources.length-1)}if(e&&le.sources.has(this))return this.tValue;return this.value}function Ra(e,t,n){let o=le&&le.running&&le.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(o,t)){if(le){let i=le.running;if(i||!n&&le.sources.has(e))le.sources.add(e),e.tValue=t;if(!i)e.value=t}else e.value=t;if(e.observers&&e.observers.length)Pt(()=>{for(let i=0;i<e.observers.length;i+=1){let r=e.observers[i],c=le&&le.running;if(c&&le.disposed.has(r))continue;if(c?!r.tState:!r.state){if(r.pure)nt.push(r);else dt.push(r);if(r.observers)va(r)}if(!c)r.state=Mt;else r.tState=Mt}if(nt.length>1e6)throw nt=[],Error()},!1)}return t}function wo(e){if(!e.fn)return;Pn(e);let t=Dr;if(ga(e,le&&le.running&&le.sources.has(e)?e.tValue:e.value,t),le&&!le.running&&le.sources.has(e))queueMicrotask(()=>{Pt(()=>{le&&(le.running=!0),Be=Ae=e,ga(e,e.tValue,t),Be=Ae=null},!1)})}function ga(e,t,n){let o,i=Ae,r=Be;Be=Ae=e;try{o=e.fn(t)}catch(c){if(e.pure)if(le&&le.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(Pn),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(Pn),e.owned=null;return e.updatedAt=n+1,Pr(c)}finally{Be=r,Ae=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)Ra(e,o,!0);else if(le&&le.running&&e.pure){if(!le.sources.has(e))e.value=o;le.sources.add(e),e.tValue=o}else e.value=o;e.updatedAt=n}}function Fr(e,t,n,o=Mt,i){let r={fn:e,state:o,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Ae,context:Ae?Ae.context:null,pure:n};if(le&&le.running)r.state=0,r.tState=o;if(Ae===null);else if(Ae!==ya)if(le&&le.running&&Ae.pure)if(!Ae.tOwned)Ae.tOwned=[r];else Ae.tOwned.push(r);else if(!Ae.owned)Ae.owned=[r];else Ae.owned.push(r);if(go&&r.fn){let c=r.fn,[a,u]=ue(void 0,{equals:!1}),d=go.factory(c,u);it(()=>d.dispose());let m,p=()=>yh(u).then(()=>{if(m)m.dispose(),m=void 0});r.fn=(x)=>{if(a(),le&&le.running){if(!m)m=go.factory(c,p);return m.track(x)}return d.track(x)}}return r}function Xo(e){let t=le&&le.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===zo)return Er(e);if(e.suspense&&Rt(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Dr)){if(t&&le.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let o=n.length-1;o>=0;o--){if(e=n[o],t){let i=e,r=n[o+1];while((i=i.owner)&&i!==r)if(le.disposed.has(i))return}if((t?e.tState:e.state)===Mt)wo(e);else if((t?e.tState:e.state)===zo){let i=nt;nt=null,Pt(()=>Er(e,n[0]),!1),nt=i}}}function Pt(e,t){if(nt)return e();let n=!1;if(!t)nt=[];if(dt)n=!0;else dt=[];Dr++;try{let o=e();return Ch(n),o}catch(o){if(!n)dt=null;nt=null,Pr(o)}}function Ch(e){if(nt){if(bo&&le&&le.running)Rh(nt);else Oa(nt);nt=null}if(e)return;let t;if(le){if(!le.promises.size&&!le.queue.size){let{sources:o,disposed:i}=le;dt.push.apply(dt,le.effects),t=le.resolve;for(let r of dt)"tState"in r&&(r.state=r.tState),delete r.tState;le=null,Pt(()=>{for(let r of i)Pn(r);for(let r of o){if(r.value=r.tValue,r.owned)for(let c=0,a=r.owned.length;c<a;c++)Pn(r.owned[c]);if(r.tOwned)r.owned=r.tOwned;delete r.tValue,delete r.tOwned,r.tState=0}pa(!1)},!1)}else if(le.running){le.running=!1,le.effects.push.apply(le.effects,dt),dt=null,pa(!0);return}}let n=dt;if(dt=null,n.length)Pt(()=>xa(n),!1);if(t)t()}function Oa(e){for(let t=0;t<e.length;t++)Xo(e[t])}function Rh(e){for(let t=0;t<e.length;t++){let n=e[t],o=le.queue;if(!o.has(n))o.add(n),bo(()=>{o.delete(n),Pt(()=>{le.running=!0,Xo(n)},!1),le&&(le.running=!1)})}}function Oh(e){let t,n=0;for(t=0;t<e.length;t++){let o=e[t];if(!o.user)Xo(o);else e[n++]=o}if(Ne.context){if(Ne.count){Ne.effects||(Ne.effects=[]),Ne.effects.push(...e.slice(0,n));return}Hi()}if(Ne.effects&&(Ne.done||!Ne.count))e=[...Ne.effects,...e],n+=Ne.effects.length,delete Ne.effects;for(t=0;t<n;t++)Xo(e[t])}function Er(e,t){let n=le&&le.running;if(n)e.tState=0;else e.state=0;for(let o=0;o<e.sources.length;o+=1){let i=e.sources[o];if(i.sources){let r=n?i.tState:i.state;if(r===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<Dr))Xo(i)}else if(r===zo)Er(i,t)}}}function va(e){let t=le&&le.running;for(let n=0;n<e.observers.length;n+=1){let o=e.observers[n];if(t?!o.tState:!o.state){if(t)o.tState=zo;else o.state=zo;if(o.pure)nt.push(o);else dt.push(o);o.observers&&va(o)}}}function Pn(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),o=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let r=i.pop(),c=n.observerSlots.pop();if(o<i.length)r.sourceSlots[c]=o,i[o]=r,n.observerSlots[o]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)Pn(e.tOwned[t]);delete e.tOwned}if(le&&le.running&&e.pure)ka(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)Pn(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}if(le&&le.running)e.tState=0;else e.state=0}function ka(e,t){if(!t)e.tState=0,le.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)ka(e.owned[n])}function vr(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function ba(e,t,n){try{for(let o of t)o(e)}catch(o){Pr(o,n&&n.owner||null)}}function Pr(e,t=Ae){let n=ha&&t&&t.context&&t.context[ha],o=vr(e);if(!n)throw o;if(dt)dt.push({fn(){ba(o,n,t)},state:Mt});else ba(o,n,t)}function Vi(e){if(typeof e==="function"&&!e.length)return Vi(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let o=Vi(e[n]);Array.isArray(o)?t.push.apply(t,o):t.push(o)}return t}return e}function vh(e,t){return function(o){let i;return tn(()=>i=Rt(()=>{return Ae.context={...Ae.context,[e]:o.value},Sh(()=>o.children)}),void 0),i}}function wa(e){for(let t=0;t<e.length;t++)e[t]()}function Eh(e,t,n={}){let o=[],i=[],r=[],c=0,a=t.length>1?[]:null;return it(()=>wa(r)),()=>{let u=e()||[],d=u.length,m,p;return u[bh],Rt(()=>{let D,W,b,R,v,k,S,y,O;if(d===0){if(c!==0)wa(r),r=[],o=[],i=[],c=0,a&&(a=[]);if(n.fallback)o=[kh],i[0]=Jo((B)=>{return r[0]=B,n.fallback()}),c=1}else if(c===0){i=Array(d);for(p=0;p<d;p++)o[p]=u[p],i[p]=Jo(x);c=d}else{b=Array(d),R=Array(d),a&&(v=Array(d));for(k=0,S=Math.min(c,d);k<S&&o[k]===u[k];k++);for(S=c-1,y=d-1;S>=k&&y>=k&&o[S]===u[y];S--,y--)b[y]=i[S],R[y]=r[S],a&&(v[y]=a[S]);D=new Map,W=Array(y+1);for(p=y;p>=k;p--)O=u[p],m=D.get(O),W[p]=m===void 0?-1:m,D.set(O,p);for(m=k;m<=S;m++)if(O=o[m],p=D.get(O),p!==void 0&&p!==-1)b[p]=i[m],R[p]=r[m],a&&(v[p]=a[m]),p=W[p],D.set(O,p);else r[m]();for(p=k;p<d;p++)if(p in b){if(i[p]=b[p],r[p]=R[p],a)a[p]=v[p],a[p](p)}else i[p]=Jo(x);i=i.slice(0,c=d),o=u.slice(0)}return i});function x(D){if(r[p]=D,a){let[W,b]=ue(p);return a[p]=b,t(u[p],W)}return t(u[p])}}}function Ea(e,t){if(Dh){if(Ne.context){let n=Ne.context;Hi(hh());let o=Rt(()=>e(t||{}));return Hi(n),o}}return Rt(()=>e(t||{}))}function Or(){return!0}function Ti(e){return!(e=typeof e==="function"?e():e)?{}:e}function Ph(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Mr(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Bi in a,e[c]=typeof a==="function"?(t=!0,$e(a)):a}if(gh&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let u=Ti(e[a])[c];if(u!==void 0)return u}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Ti(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Ti(e[a])));return[...new Set(c)]}},Fh);let n={},o=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let u=Object.getOwnPropertyNames(a);for(let d=u.length-1;d>=0;d--){let m=u[d];if(m==="__proto__"||m==="constructor")continue;let p=Object.getOwnPropertyDescriptor(a,m);if(!o[m])o[m]=p.get?{enumerable:!0,configurable:!0,get:Ph.bind(n[m]=[p.get.bind(a)])}:p.value!==void 0?p:void 0;else{let x=n[m];if(x){if(p.get)x.push(p.get.bind(a));else if(p.value!==void 0)x.push(()=>p.value)}}}}let i={},r=Object.keys(o);for(let c=r.length-1;c>=0;c--){let a=r[c],u=o[a];if(u&&u.get)Object.defineProperty(i,a,u);else i[a]=u?u.value:void 0}return i}function tt(e){let t="fallback"in e&&{fallback:()=>e.fallback};return $e(Eh(()=>e.each,e.children,t||void 0))}function re(e){let t=e.keyed,n=$e(()=>e.when,void 0,void 0),o=t?n:$e(n,void 0,{equals:(i,r)=>!i===!r});return $e(()=>{let i=o();if(i){let r=e.children;return typeof r==="function"&&r.length>0?Rt(()=>r(t?i:()=>{if(!Rt(o))throw Mh("Show");return n()})):r}return e.fallback},void 0,void 0)}var Ne,mh=!1,ph=(e,t)=>e===t,Bi,gh,bh,m0,kr,ha=null,xa,Mt=1,zo=2,ya,ji,Ae=null,le=null,bo=null,go=null,Be=null,nt=null,dt=null,Dr=0,p0,pa,qo,kh,Dh=!1,Fh,Mh=(e)=>`Stale read from <${e}>.`;var Xe=de(()=>{Ne={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return da(this.context.count)},getNextContextId(){return da(this.context.count++)}};Bi=Symbol("solid-proxy"),gh=typeof Proxy==="function",bh=Symbol("solid-track"),m0=Symbol("solid-dev-component"),kr={equals:ph},xa=Oa,ya={owned:null,cleanups:null,context:null,owner:null},ji={};[p0,pa]=ue(!1);kh=Symbol("fallback");Fh={get(e,t,n){if(t===Bi)return n;return e.get(t)},has(e,t){if(t===Bi)return!0;return e.has(t)},set:Or,deleteProperty:Or,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Or,deleteProperty:Or}},ownKeys(e){return e.keys()}}});function Fa(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=Ah.get(e))!==null&&t!==void 0?t:e}var Ki,Ah,Da;var Pa=de(()=>{Ah=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Da=(Ki=String.fromCodePoint)!==null&&Ki!==void 0?Ki:(e)=>{let t="";if(e>65535)e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023;return t+=String.fromCharCode(e),t}});function Ma(e){let t=typeof atob==="function"?atob(e):typeof Buffer.from==="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),n=t.length&-2,o=new Uint16Array(n/2);for(let i=0,r=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);o[r++]=c|a<<8}return o}var Aa;var Wa=de(()=>{Aa=Ma("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")});var ht;var La=de(()=>{(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(ht||(ht={}))});function Ui(e){return e>=Ye.ZERO&&e<=Ye.NINE}function Wh(e){return e>=Ye.UPPER_A&&e<=Ye.UPPER_F||e>=Ye.LOWER_A&&e<=Ye.LOWER_F}function Lh(e){return e>=Ye.UPPER_A&&e<=Ye.UPPER_Z||e>=Ye.LOWER_A&&e<=Ye.LOWER_Z||Ui(e)}function Ih(e){return e===Ye.EQUALS||Lh(e)}class Ji{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=at.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=un.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=at.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case at.EntityStart:{if(e.charCodeAt(t)===Ye.NUM)return this.state=at.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=at.NamedEntity,this.stateNamedEntity(e,t)}case at.NumericStart:return this.stateNumericStart(e,t);case at.NumericDecimal:return this.stateNumericDecimal(e,t);case at.NumericHex:return this.stateNumericHex(e,t);case at.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){if(t>=e.length)return-1;if((e.charCodeAt(t)|Ia)===Ye.LOWER_X)return this.state=at.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1);return this.state=at.NumericDecimal,this.stateNumericDecimal(e,t)}stateNumericHex(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ui(n)||Wh(n)){let o=n<=Ye.NINE?n-Ye.ZERO:(n|Ia)-Ye.LOWER_A+10;this.result=this.result*16+o,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ui(n))this.result=this.result*10+(n-Ye.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,t){var n;if(this.consumed<=t)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===Ye.SEMI)this.consumed+=1;else if(this.decodeMode===un.Strict)return 0;if(this.emitCodePoint(Fa(this.result),this.consumed),this.errors){if(e!==Ye.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,o=n[this.treeIndex],i=(o&ht.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(o&ht.FLAG13)!==0){let c=(o&ht.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=o&ht.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}while(this.runConsumed<c){if(t>=e.length)return-1;let a=this.runConsumed-1,u=n[this.treeIndex+1+(a>>1)],d=a%2===0?u&255:u>>8&255;if(e.charCodeAt(t)!==d)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(c>>1),o=n[this.treeIndex],i=(o&ht.VALUE_LENGTH)>>14}if(t>=e.length)break;let r=e.charCodeAt(t);if(r===Ye.SEMI&&i!==0&&(o&ht.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=Th(n,o,this.treeIndex+Math.max(1,i),r),this.treeIndex<0)return this.result===0||this.decodeMode===un.Attribute&&(i===0||Ih(r))?0:this.emitNotTerminatedNamedEntity();if(o=n[this.treeIndex],i=(o&ht.VALUE_LENGTH)>>14,i!==0){if(r===Ye.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==un.Strict&&(o&ht.FLAG13)===0)this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,o=(n[t]&ht.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,o,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:o}=this;if(this.emitCodePoint(t===1?o[e]&~(ht.VALUE_LENGTH|ht.FLAG13):o[e+1],n),t===3)this.emitCodePoint(o[e+2],n);return n}end(){var e;switch(this.state){case at.NamedEntity:return this.result!==0&&(this.decodeMode!==un.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case at.NumericDecimal:return this.emitNumericEntity(0,2);case at.NumericHex:return this.emitNumericEntity(0,3);case at.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case at.EntityStart:return 0}}}function jh(e){let t="",n=new Ji(e,(o)=>t+=Da(o));return function(i,r){let c=0,a=0;while((a=i.indexOf("&",a))>=0){t+=i.slice(c,a),n.startEntity(r);let d=n.write(i,a+1);if(d<0){c=a+n.end();break}c=a+d,a=d===0?c+1:c}let u=t+i.slice(c);return t="",u}}function Th(e,t,n,o){let i=(t&ht.BRANCH_LENGTH)>>7,r=t&ht.JUMP_TABLE;if(i===0)return r!==0&&o===r?n:-1;if(r){let d=o-r;return d<0||d>=i?-1:e[n+d]-1}let c=i+1>>1,a=0,u=i-1;while(a<=u){let d=a+u>>>1,m=d>>1,x=e[n+m]>>(d&1)*8&255;if(x<o)a=d+1;else if(x>o)u=d-1;else return e[n+c+d]}return-1}function ro(e,t=un.Legacy){return Hh(e,t)}var Ye,Ia=32,at,un,Hh;var ja=de(()=>{Pa();Wa();La();(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Ye||(Ye={}));(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(at||(at={}));(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(un||(un={}));Hh=jh(Aa)});var Ta,Ha;var Va=de(()=>{ja();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ta||(Ta={}));(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(Ha||(Ha={}))});import{CliRenderer as Vh,createCliRenderer as Kh,engine as Gh}from"@opentui/core";import{createTestRenderer as M0}from"@opentui/core/testing";import{ASCIIFontRenderable as Uh,BoxRenderable as Jh,CodeRenderable as zh,DiffRenderable as qh,InputRenderable as Xh,LineNumberRenderable as Yh,MarkdownRenderable as Zh,ScrollBoxRenderable as Qh,SelectRenderable as Nh,TabSelectRenderable as $h,TextareaRenderable as _h,TextAttributes as zi,TextNodeRenderable as em,TextRenderable as tm}from"@opentui/core";import{engine as L0,Timeline as I0}from"@opentui/core";import{BaseRenderable as Xa,createTextAttributes as om,InputRenderable as qi,InputRenderableEvents as Yo,isTextNodeRenderable as Zi,parseColor as Ka,Renderable as rm,RootTextNodeRenderable as im,ScrollBoxRenderable as sm,SelectRenderable as Ga,SelectRenderableEvents as Xi,TabSelectRenderable as Ua,TabSelectRenderableEvents as Yi,TextNodeRenderable as cm,TextRenderable as Ya}from"@opentui/core";import{BaseRenderable as bm,isTextNodeRenderable as wm,TextNodeRenderable as xm,TextRenderable as ym,Yoga as za}from"@opentui/core";import{TimeToFirstDrawRenderable as Rm}from"@opentui/core";import{createSlotRegistry as X0}from"@opentui/core";function lm({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:o,replaceText:i,insertNode:r,removeNode:c,setProperty:a,getParentNode:u,getFirstChild:d,getNextSibling:m}){function p(S,y,O,B){if(O!==void 0&&!B)B=[];if(typeof y!=="function")return x(S,y,B,O);tn((I)=>x(S,y(),I,O),B)}function x(S,y,O,B,I){while(typeof O==="function")O=O();if(y===O)return O;let q=typeof y,Y=B!==void 0;if(q==="string"||q==="number"){if(q==="number")y=y.toString();if(Y){let X=O[0];if(X&&o(X))i(X,y);else X=t(y);O=b(S,O,B,X)}else if(O!==""&&typeof O==="string")i(d(S),O=y);else b(S,O,B,t(y)),O=y}else if(y==null||q==="boolean")O=b(S,O,B);else if(q==="function")return tn(()=>{let X=y();while(typeof X==="function")X=X();O=x(S,X,O,B)}),()=>O;else if(Array.isArray(y)){let X=[];if(D(X,y,I))return tn(()=>O=x(S,X,O,B,!0)),()=>O;if(X.length===0){let J=b(S,O,B);if(Y)return O=J}else if(Array.isArray(O))if(O.length===0)R(S,X,B);else W(S,O,X);else if(O==null||O==="")R(S,X);else W(S,Y&&O||[d(S)],X);O=X}else{if(Array.isArray(O)){if(Y)return O=b(S,O,B,y);b(S,O,null,y)}else if(O==null||O===""||!d(S))r(S,y);else v(S,y,d(S));O=y}return O}function D(S,y,O){let B=!1;for(let I=0,q=y.length;I<q;I++){let Y=y[I],X;if(Y==null||Y===!0||Y===!1);else if(Array.isArray(Y))B=D(S,Y)||B;else if((X=typeof Y)==="string"||X==="number")S.push(t(Y));else if(X==="function")if(O){while(typeof Y==="function")Y=Y();B=D(S,Array.isArray(Y)?Y:[Y])||B}else S.push(Y),B=!0;else S.push(Y)}return B}function W(S,y,O){let B=O.length,I=y.length,q=B,Y=0,X=0,J=m(y[I-1]),z=null;while(Y<I||X<q){if(y[Y]===O[X]){Y++,X++;continue}while(y[I-1]===O[q-1])I--,q--;if(I===Y){let Q=q<B?X?m(O[X-1]):O[q-X]:J;while(X<q)r(S,O[X++],Q)}else if(q===X)while(Y<I){if(!z||!z.has(y[Y]))c(S,y[Y]);Y++}else if(y[Y]===O[q-1]&&O[X]===y[I-1]){let Q=m(y[--I]);r(S,O[X++],m(y[Y++])),r(S,O[--q],Q),y[I]=O[q]}else{if(!z){z=new Map;let ne=X;while(ne<q)z.set(O[ne],ne++)}let Q=z.get(y[Y]);if(Q!=null)if(X<Q&&Q<q){let ne=Y,te=1,Re;while(++ne<I&&ne<q){if((Re=z.get(y[ne]))==null||Re!==Q+te)break;te++}if(te>Q-X){let me=y[Y];while(X<Q)r(S,O[X++],me)}else v(S,O[X++],y[Y++])}else Y++;else c(S,y[Y++])}}}function b(S,y,O,B){if(O===void 0){let q;while(q=d(S))c(S,q);return B&&r(S,B),B??""}let I=B||n();if(y.length){let q=!1;for(let Y=y.length-1;Y>=0;Y--){let X=y[Y];if(I!==X){let J=u(X)===S;if(!q&&!Y)J?v(S,I,X):r(S,I,O);else J&&c(S,X)}else q=!0}}else r(S,I,O);return[I]}function R(S,y,O){for(let B=0,I=y.length;B<I;B++)r(S,y[B],O)}function v(S,y,O){r(S,y,O),c(S,O)}function k(S,y,O={},B){if(y||(y={}),!B)tn(()=>O.children=x(S,y.children,O.children));return tn(()=>y.ref&&y.ref(S)),tn(()=>{for(let I in y){if(I==="children"||I==="ref")continue;let q=y[I];if(q===O[I])continue;a(S,I,q,O[I]),O[I]=q}}),O}return{render(S,y){let O;return Jo((B)=>{O=B,p(y,S())}),O},insert:p,spread(S,y,O){if(typeof y==="function")tn((B)=>k(S,y(),B,O));else k(S,y,void 0,O)},createElement:e,createTextNode:t,insertNode:r,setProp(S,y,O,B){return a(S,y,O,B),O},mergeProps:Mr,effect:tn,memo:am,createComponent:Ea,use(S,y,O){return Rt(()=>S(y,O))}}}function fm(e){let t=lm(e);return t.mergeProps=Mr,t}function es(e){if(!Ar.has(e))Ar.set(e,0);let t=Ar.get(e)+1;return Ar.set(e,t),`${e}-${t}`}function um(e,t,n){if(lt("Inserting node:",st(t),"into parent:",st(e),"with anchor:",st(n),t instanceof xo),t instanceof Zo)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Zo)n=n.getSlotChild(e);if(Zi(t)){if(!(e instanceof Ya)&&!Zi(e))throw Error(`Orphan text error: "${t.toChunks().map((r)=>r.text).join("")}" must have a <text> as a parent: ${e.id} above ${t.id}`)}if(!(e instanceof Xa))throw console.error("[INSERT]","Tried to mount a non base renderable"),Error("Tried to mount a non base renderable");if(!n){e.add(t);return}let o=Qi(e),i=o.findIndex((r)=>r.id===n.id);if(i===-1)lt("[INSERT]","Could not find anchor",st(e),st(n),"[children]",...o.map((r)=>r.id));e.add(t,i)}function dm(e,t){if(lt("Removing node:",st(t),"from parent:",st(e)),t instanceof Zo)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Xa&&!t.parent){t.destroyRecursively();return}})}function hm(e){lt("Creating text node:",e);let t=es("text-node");if(typeof e==="number")e=e.toString();return xo.fromString(ro(e),{id:t})}function mm(){let e=es("slot-node");return lt("Creating slot node",e),new Zo(e)}function Ja(e){lt("Getting parent of node:",st(e));let t=e.parent??void 0;if(t instanceof im)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof sm&&n.content===t)t=n;return t}function ns(e){Object.assign(el,e)}function Cm(){return el}var _i,dn=()=>{let e=Gt(_i);if(!e)throw Error("No renderer found");return e},nm=(e)=>{let t=dn();fn(()=>{t.on("resize",e)}),it(()=>{t.off("resize",e)})},ot=()=>{let e=dn(),[t,n]=ue({width:e.width,height:e.height});return nm((i,r)=>{n({width:i,height:r})}),t},ft=(e,t)=>{let o=dn().keyInput;fn(()=>{if(o.on("keypress",e),t?.release)o.on("keyrelease",e)}),it(()=>{if(o.off("keypress",e),t?.release)o.off("keyrelease",e)})},yo=(e)=>{let n=dn().keyInput;fn(()=>{n.on("paste",e)}),it(()=>{n.off("paste",e)})},qa=(e)=>{let t=dn();fn(()=>{t.on("selection",e)}),it(()=>{t.off("selection",e)})},am=(e)=>$e(()=>e()),Ar,lt=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},xo,st=(e)=>{if(!e)return;return e.id},Qi=(e)=>{let t;if(e instanceof Ya)t=e.getTextChildren();else t=e.getChildren();return t},pm,H,Ie,Z,l,V,f,T,gm,s,G0,U0,ts,Za,Qa,Zo,Qo,Wr,Ni,$i,Na,$a,_a,Sm,el,Om=(e,t)=>{let n,o=!1,i=!1,r=!0,c=!1,a=e.destroy.bind(e),u=()=>{if(i)return;if(!n){o=!0;return}i=!0,n()};e.once("destroy",u),e.destroy=()=>{if(r){c=!0;return}a()};try{n=pm(()=>Z(_i.Provider,{get value(){return e},get children(){return Z(t,{})}}),e.root)}finally{r=!1,e.destroy=a}if(o)u();if(c)a()},tl=async(e,t={})=>{let n=t instanceof Vh?t:await Kh({...t,onDestroy:()=>{t.onDestroy?.()}});Gh.attach(n),Om(n,e)};var _=de(()=>{Xe();Va();Xe();Xe();Xe();_i=Mn();Ar=new Map;xo=class xo extends cm{static fromString(e,t={}){let n=new xo(t);return n.add(e),n}};({render:pm,effect:H,memo:Ie,createComponent:Z,createElement:l,createTextNode:V,insertNode:f,insert:T,spread:gm,setProp:s,mergeProps:G0,use:U0}=fm({createElement(e){lt("Creating element:",e);let t=es(e),n=Gt(_i);if(!n)throw Error("No renderer found");let o=Cm();if(!o[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new o[e](n,{id:t});return lt("Element created with id:",t),i},createTextNode:hm,createSlotNode:mm,replaceText(e,t){if(lt("Replacing text:",t,"in node:",st(e)),!(e instanceof xo))return;e.replace(ro(t),0)},setProperty(e,t,n,o){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(o)e.off(i,o);return}if(Zi(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=om(n),e.fg=n.fg?Ka(n.fg):e.fg,e.bg=n.bg?Ka(n.bg):e.bg;return}return}switch(t){case"id":lt("Id mapped",e.id,"=",n),e[t]=n;break;case"focused":if(!(e instanceof rm))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof Ga)i=Xi.SELECTION_CHANGED;else if(e instanceof Ua)i=Yi.SELECTION_CHANGED;else if(e instanceof qi)i=Yo.CHANGE;if(!i)break;if(n)e.on(i,n);if(o)e.off(i,o);break;case"onInput":if(e instanceof qi){if(n)e.on(Yo.INPUT,n);if(o)e.off(Yo.INPUT,o)}break;case"onSubmit":if(e instanceof qi){if(n)e.on(Yo.ENTER,n);if(o)e.off(Yo.ENTER,o)}else e[t]=n;break;case"onSelect":if(e instanceof Ga){if(n)e.on(Xi.ITEM_SELECTED,n);if(o)e.off(Xi.ITEM_SELECTED,o)}else if(e instanceof Ua){if(n)e.on(Yi.ITEM_SELECTED,n);if(o)e.off(Yi.ITEM_SELECTED,o)}break;case"style":for(let r in n){let c=n[r];if(o!==void 0&&c===o[r])continue;e[r]=c}break;case"text":case"content":{let r=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=ro(r);break}default:e[t]=n}},isTextNode(e){return e instanceof xo},insertNode:um,removeNode:dm,getParentNode:Ja,getFirstChild(e){lt("Getting first child of node:",st(e));let t=Qi(e)[0];if(!t){lt("No first child found for node:",st(e));return}return lt("First child found:",st(t),"for node:",st(e)),t},getNextSibling(e){lt("Getting next sibling of node:",st(e));let t=Ja(e);if(!t){lt("No parent found for node:",st(e));return}let n=Qi(t),o=n.indexOf(e);if(o===-1||o===n.length-1){lt("No next sibling found for node:",st(e));return}let i=n[o+1];if(!i){lt("Next sibling is null for node:",st(e));return}return lt("Next sibling found:",st(i),"for node:",st(e)),i}}));ts=class ts extends bm{constructor(e){super({id:e})}add(e,t){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(e){}insertBefore(e,t){throw Error("Can't add children on an Slot renderable")}getRenderable(e){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(e){return}};Za=class Za extends xm{slotParent;destroyed=!1;constructor(e,t){super({id:e});this._visible=!1,this.slotParent=t}destroy(){if(this.destroyed)return;this.destroyed=!0,this.slotParent?.destroy(),super.destroy()}};Qa=class Qa extends ts{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=za.default.Node.create(),this.yogaNode.setDisplay(za.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};Zo=class Zo extends ts{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(wm(e)||e instanceof ym){if(!this.textNode)this.textNode=new Za(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new Qa(`slot-layout-${this.id}`,this);return this.layoutNode}destroy(){if(this.destroyed)return;if(this.destroyed=!0,this.layoutNode)this.layoutNode.destroy();if(this.textNode)this.textNode.destroy()}};Qo=class Qo extends em{_ctx;constructor(e,t){super(t);this._ctx=e}};Wr=class Wr extends Qo{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|zi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|zi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|zi.UNDERLINE}};Ni=class Ni extends Wr{constructor(e){super(e,"b")}};$i=class $i extends Wr{constructor(e){super(e,"i")}};Na=class Na extends Wr{constructor(e){super(e,"u")}};$a=class $a extends Qo{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
5
+ `)}};_a=class _a extends Qo{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};Sm={box:Jh,text:tm,input:Xh,select:Nh,textarea:_h,ascii_font:Uh,tab_select:$h,scrollbox:Qh,code:zh,diff:qh,line_number:Yh,markdown:Zh,span:Qo,strong:Ni,b:Ni,em:$i,i:$i,u:Na,br:$a,a:_a},el={...Sm};ns({time_to_first_draw:Rm})});function nl(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function ol(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function os(e,t){switch(e){case"success":return t.success;case"error":return t.error;case"warning":return t.warning;case"info":return t.info;case"loading":return rs(t.loading);default:return""}}function rs(e){if(nl(e))return e.frames[0]??"\u25CC";return e}function is(e){return nl(e)?e:null}var vm,rl;var il=de(()=>{vm={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},rl={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:vm,close:"\xD7"}});import{BoxRenderable as Ir,TextAttributes as km,TextRenderable as No,parseColor as Em}from"@opentui/core";function Am(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function Tm(e,t={}){let[n,o]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??Lr.top;else i.bottom=t.bottom??Lr.bottom;if(o==="left")i.left=t.left??Lr.left,i.alignItems="flex-start";else if(o==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??Lr.right,i.alignItems="flex-end";return i}function Hm(e){return e.includes("center")}function Bm(e){return e.startsWith("top")}function Vm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:o,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??o??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??o??n??t.left}}function Km(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function sl(e,t,n){let o=ss.style,i=ss[e]?.style,r=t?.style,c=t?.[e]?.style,a=Km(o,i,r,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function cl(e,t,n){if(n!==void 0)return n;let o=t?.[e]?.duration;if(o!==void 0)return o;if(t?.duration!==void 0)return t.duration;return ss.duration}var Dm,Fm=200,al=60,Lr,Pm,ss,Mm=1,Wm=class{subscribers=[];toasts=[];dismissedToasts=new Set;_activeToasts=[];_updateActiveToastsCache=()=>{let e=this.toasts.filter((t)=>!this.dismissedToasts.has(t.id));if(e.length!==this._activeToasts.length||e.some((t,n)=>t!==this._activeToasts[n]))this._activeToasts=e};subscribe=(e)=>{return this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);if(t>-1)this.subscribers.splice(t,1)}};publish=(e)=>{for(let t of this.subscribers)t(e)};addToast=(e)=>{this.toasts=[...this.toasts,e],this._updateActiveToastsCache(),this.publish(e)};create=(e)=>{let{message:t,...n}=e,o=typeof e.id==="number"||e.id&&e.id.length>0?e.id:Mm++,i=this.toasts.find((c)=>c.id===o),r=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(o))this.dismissedToasts.delete(o);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===o)return this.publish({...c,...e,id:o,title:t}),{...c,...e,id:o,dismissible:r,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:r,id:o,type:e.type??"default"});return o};dismiss=(e)=>{if(e!==void 0)this.dismissedToasts.add(e),this._updateActiveToastsCache(),setTimeout(()=>{for(let t of this.subscribers)t({id:e,dismiss:!0})},0);else{for(let t of this.toasts){this.dismissedToasts.add(t.id);for(let n of this.subscribers)n({id:t.id,dismiss:!0})}this._updateActiveToastsCache()}return e};message=(e,t)=>{return this.create({...t,message:e,type:"default"})};error=(e,t)=>{return this.create({...t,message:e,type:"error"})};success=(e,t)=>{return this.create({...t,message:e,type:"success"})};info=(e,t)=>{return this.create({...t,message:e,type:"info"})};warning=(e,t)=>{return this.create({...t,message:e,type:"warning"})};loading=(e,t)=>{return this.create({...t,message:e,type:"loading"})};promise=(e,t)=>{if(!t)return;let n;if(t.loading!==void 0)n=this.create({...t,type:"loading",message:t.loading,description:typeof t.description!=="function"?t.description:void 0});let o=e instanceof Function?e():e,i=n!==void 0,r,c=o.then(async(u)=>{if(r=["resolve",u],Am(u)&&!u.ok){i=!1;let d=typeof t.error==="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,m=typeof t.description==="function"?await t.description(`HTTP error! status: ${u.status}`):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}else if(u instanceof Error){i=!1;let d=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}else if(t.success!==void 0){i=!1;let d=typeof t.success==="function"?await t.success(u):t.success,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"success",description:m,...p})}}).catch(async(u)=>{if(r=["reject",u],t.error!==void 0){i=!1;let d=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((u,d)=>c.then(()=>r[0]==="reject"?d(r[1]):u(r[1])).catch(d));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ot,Lm=(e,t)=>Ot.message(e,t),Im=()=>Ot.toasts,jm=()=>Ot.getActiveToasts(),io,Gm,ll;var fl=de(()=>{il();Dm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Lr={top:1,right:2,bottom:1,left:2},Pm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},ss={style:Pm,duration:Dm.DEFAULT,default:{style:{borderColor:"#333333"}},success:{style:{borderColor:"#22c55e"}},error:{style:{borderColor:"#ef4444"}},warning:{style:{borderColor:"#f59e0b"}},info:{style:{borderColor:"#3b82f6"}},loading:{style:{borderColor:"#6b7280"}}};Ot=new Wm,io=Object.assign(Lm,{success:Ot.success,info:Ot.info,warning:Ot.warning,error:Ot.error,message:Ot.message,promise:Ot.promise,dismiss:Ot.dismiss,loading:Ot.loading},{getHistory:Im,getToasts:jm});Gm=class extends Ir{_toast;_icons;_toastOptions;_computedStyle;_closeButton;_onRemove;_remainingTime;_closeTimerStartTime=0;_lastCloseTimerStartTime=0;_timerHandle=null;_paused=!1;_dismissed=!1;_spinnerHandle=null;_spinnerFrameIndex=0;_spinnerConfig=null;_iconText=null;_contentBox=null;_titleText=null;_descriptionText=null;_actionsBox=null;constructor(e,t){let n=sl(t.toast.type,t.toastOptions,t.toast.style),o=cl(t.toast.type,t.toastOptions,t.toast.duration),i=Vm(n,{top:0,right:1,bottom:0,left:1});super(e,{id:`toast-${t.toast.id}`,flexDirection:"row",gap:1,border:n.border,borderStyle:n.borderStyle,borderColor:n.borderColor,customBorderChars:n.customBorderChars,backgroundColor:n.backgroundColor,minHeight:n.minHeight,maxWidth:n.maxWidth??al,minWidth:n.minWidth,paddingTop:i.top,paddingRight:i.right,paddingBottom:i.bottom,paddingLeft:i.left,onMouseOver:()=>this.pause(),onMouseOut:()=>this.resume()});if(this._toast=t.toast,this._icons=t.icons===!1?!1:{...rl,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=o,this.setupContent(),this._remainingTime!==1/0&&this._toast.type!=="loading")this.startTimer();if(this._toast.type==="loading")this.startSpinner()}setupContent(){let e=this.ctx,t=this._toast,n=this._computedStyle,o=this._icons,i=n.iconColor??n.borderColor,r=t.type==="loading";if(r&&o!==!1)this._spinnerConfig=is(o.loading);let c=t.icon??(o===!1?void 0:r?rs(o.loading):os(t.type,o));if(c)this._iconText=new No(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new Ir(e,{id:`${this.id}-content`,flexDirection:"column",flexGrow:1,flexShrink:1,gap:0});let a=typeof t.title==="function"?t.title():t.title;if(a)this._titleText=new No(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:km.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let u=typeof t.description==="function"?t.description():t.description;if(u)this._descriptionText=new No(e,{id:`${this.id}-description`,content:u,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new Ir(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&ol(t.action)){let d=new No(e,{id:`${this.id}-action`,content:`[${t.action.label}]`,fg:n.foregroundColor,onMouseUp:()=>t.action?.onClick?.()});this._actionsBox.add(d)}this.add(this._actionsBox)}if((t.closeButton??this._closeButton)&&t.dismissible!==!1){let d=o===!1?"\xD7":o.close,m=new No(e,{id:`${this.id}-close`,content:d,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(m)}}startTimer(){if(this._remainingTime===1/0)return;this._closeTimerStartTime=Date.now(),this._timerHandle=setTimeout(()=>{this._toast.onAutoClose?.(this._toast),this.dismiss()},this._remainingTime)}pause(){if(this._paused||this._remainingTime===1/0)return;if(this._paused=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;if(this._lastCloseTimerStartTime<this._closeTimerStartTime){let e=Date.now()-this._closeTimerStartTime;this._remainingTime=Math.max(0,this._remainingTime-e)}this._lastCloseTimerStartTime=Date.now()}resume(){if(!this._paused||this._remainingTime===1/0)return;this._paused=!1,this.startTimer()}startSpinner(){if(this._spinnerHandle||!this._spinnerConfig)return;let{frames:e,interval:t}=this._spinnerConfig;this._spinnerHandle=setInterval(()=>{this._spinnerFrameIndex=(this._spinnerFrameIndex+1)%e.length;let n=e[this._spinnerFrameIndex];if(this._iconText&&n)this._iconText.content=n,this.requestRender()},t)}stopSpinner(){if(this._spinnerHandle)clearInterval(this._spinnerHandle),this._spinnerHandle=null}dismiss(){if(this._dismissed)return;if(this._dismissed=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),this._toast.onDismiss?.(this._toast),Ot.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},Fm)}updateToast(e){this._toast=e;let t=sl(e.type,this._toastOptions,e.style);if(this._computedStyle=t,t.borderColor)this.borderColor=t.borderColor;if(t.customBorderChars)this.customBorderChars=t.customBorderChars;let n=t.iconColor??t.borderColor;if(this._iconText){let r=e.icon??(this._icons===!1?void 0:os(e.type,this._icons));if(r)this._iconText.content=r;if(n)this._iconText.fg=Em(n)}if(this._titleText){let r=typeof e.title==="function"?e.title():e.title;if(r)this._titleText.content=r}if(this._descriptionText){let r=typeof e.description==="function"?e.description():e.description;if(r)this._descriptionText.content=r}let o=this._spinnerHandle!==null,i=e.type==="loading";if(o&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!o&&i){if(this._icons!==!1)this._spinnerConfig=is(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=cl(e.type,this._toastOptions,e.duration),this._remainingTime!==1/0)this.startTimer()}this.requestRender()}get toast(){return this._toast}get isDismissed(){return this._dismissed}destroy(){if(this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),super.destroy()}},ll=class extends Ir{_options={};_toastRenderables=new Map;_unsubscribe=null;constructor(e,t={}){super(e,{id:"toaster",flexDirection:"column",gap:1,zIndex:9999});this._options=t,this.applyLayoutOptions(),this.subscribe()}applyLayoutOptions(){let e=this._options.position??"bottom-right",t=Tm(e,this._options.offset??{}),n=Hm(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??al}isToastPosition(e){return e==="top-left"||e==="top-center"||e==="top-right"||e==="bottom-left"||e==="bottom-center"||e==="bottom-right"}set position(e){if(this.isToastPosition(e))this._options.position=e,this.applyLayoutOptions();else super.position=e}set offset(e){this._options.offset=e,this.applyLayoutOptions()}set gap(e){this._options.gap=e,super.gap=e}set visibleToasts(e){this._options.visibleToasts=e}set closeButton(e){this._options.closeButton=e}set icons(e){this._options.icons=e}set stackingMode(e){this._options.stackingMode=e}set maxWidth(e){this._options.maxWidth=e,super.maxWidth=e}set toastOptions(e){this._options.toastOptions=e}subscribe(){this._unsubscribe=Ot.subscribe((e)=>{if("dismiss"in e&&e.dismiss)this.removeToast(e.id);else this.addOrUpdateToast(e)})}addOrUpdateToast(e){let t=this._toastRenderables.get(e.id);if(t){t.updateToast(e);return}if((this._options.stackingMode??"single")==="single")for(let[o]of this._toastRenderables)this.removeToast(o);else{let o=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=o){let r=i-o+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<r;a++){let u=c[a];if(u!==void 0)this.removeToast(u)}}}let n=new Gm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(o)=>this.handleToastRemoved(o)});if(this._toastRenderables.set(e.id,n),Bm(this._options.position??"bottom-right"))this.add(n);else this.add(n,0);this.requestRender()}removeToast(e){let t=this._toastRenderables.get(e);if(t)t.dismiss()}handleToastRemoved(e){let t=this._toastRenderables.get(e.id);if(t)this._toastRenderables.delete(e.id),this.remove(t.id),t.destroy(),this.requestRender()}get toastCount(){return this._toastRenderables.size}dismissAll(){for(let[e]of this._toastRenderables)this.removeToast(e)}destroy(){this._unsubscribe?.();for(let[,e]of this._toastRenderables)e.destroy();this._toastRenderables.clear(),super.destroy()}}});var cs=de(()=>{fl();_();ns({toaster:ll})});var bt,$o,as,so;var Wt=de(()=>{bt=class bt extends Error{exitCode;stderr;command;constructor(e,t,n,o){super(e);this.exitCode=t;this.stderr=n;this.command=o;this.name="GitError"}};$o=class $o extends Error{installed;required;constructor(e,t){super(`git version ${e} is below minimum required ${t}`);this.installed=e;this.required=t;this.name="GitVersionError"}};as=class as extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};so=class so extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Qt(e,t,n){let o=Array(e.length),i=0;async function r(){while(i<e.length){let a=i++;o[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>r());return await Promise.all(c),o}import{resolve as ul,dirname as Um}from"path";import{mkdirSync as Jm,existsSync as zm}from"fs";function So(e){let t=jr.get(e);if(!t)return;if(Date.now()>t.expires){jr.delete(e);return}return t.data}function Ut(e,t,n=qm){return jr.set(e,{data:t,expires:Date.now()+n}),t}function wt(){jr.clear()}class ie{static gitVersionChecked=!1;static async run(e,t){let n=Bun.spawn(["git",...e],{cwd:t??Bun.cwd,stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[o,i,r]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(r!==0)throw new bt(`git ${e[0]} failed: ${i.trim()}`,r,i.trim(),`git ${e.join(" ")}`);return o.trim()}static async exec(e,t){return this.run(e,t)}static async checkVersion(){if(this.gitVersionChecked)return;let t=(await this.run(["--version"])).match(/git version (\d+)\.(\d+)\.?((\d+)?)/);if(!t)throw Error("Cannot parse git version");let[,n,o]=t.map(Number);if(n<2||n===2&&o<17)throw new $o(`${n}.${o}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),o=`list:${n}`,i=So(o);if(i)return i;let r=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,r,n),u=await Qt(a,10,async(d)=>({...d,isDirty:await this.isDirty(d.path).catch(()=>!1)}));return Ut(o,u)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let r=ul(i);if(!t.has(r))t.add(r),n.push(r)}return(await Qt(n,5,async(i)=>{try{return await this.list(i)}catch{return[]}})).flat()}static parsePorcelain(e,t,n){let o=e.trim();if(!o)return[];return o.split(/\n\n+/).filter(Boolean).map((r,c)=>{let a=r.split(`
6
+ `),u=a.find((R)=>R.startsWith("worktree ")),d=a.find((R)=>R.startsWith("HEAD ")),m=a.find((R)=>R.startsWith("branch ")),p=a.find((R)=>R.startsWith("locked")),x=u?.slice(9)??"",D=d?.slice(5)??"",W=null;if(m)W=m.slice(7).replace(/^refs\/heads\//,"");let b=p&&p.startsWith("locked ")?p.slice(7):void 0;return{path:x,branch:W,head:D,isMain:c===0,isDirty:!1,isLocked:Boolean(p),lockReason:b,repoName:t,repoPath:n}})}static async add(e,t,n,o){await this.checkVersion();let i=Um(t);if(!zm(i))Jm(i,{recursive:!0});let c=!await this.localBranchExists(e,o),a=["worktree","add",t,e];if(c)a=["worktree","add","-b",e,t,n?.base??"HEAD"];await this.run(a,o),wt()}static async localBranchExists(e,t){try{return await this.run(["rev-parse","--verify",`refs/heads/${e}`],t??Bun.cwd),!0}catch{return!1}}static async remove(e,t,n){await this.checkVersion();let o=["worktree","remove",e];if(t?.force)o.push("--force");await this.run(o,n),wt()}static async move(e,t,n){await this.checkVersion(),await this.run(["worktree","move",e,t],n),wt()}static async prune(e){await this.checkVersion(),await this.run(["worktree","prune"],e),wt()}static async isWorktree(e){let t=e??Bun.cwd;try{let n=await this.run(["rev-parse","--git-dir"],t),o=await this.run(["rev-parse","--git-common-dir"],t);return n!==o&&!n.endsWith("/.git")&&!n.endsWith("\\.git")}catch{return!1}}static async getMainRepoPath(e){let t=e??Bun.cwd,n=await this.run(["rev-parse","--git-common-dir"],t),o=ul(t,n);return o.endsWith("/.git")?o.slice(0,-5):o}static async getBranchForWorktree(e){try{let t=await this.run(["rev-parse","--abbrev-ref","HEAD"],e);return t==="HEAD"?null:t}catch{return null}}static async isDirty(e){try{return(await this.run(["status","--porcelain"],e??Bun.cwd)).length>0}catch{return!1}}static async getAheadBehind(e,t){let n=t??Bun.cwd,o=`ahead-behind:${n}:${e}`,i=So(o);if(i)return i;try{let r=await this.run(["rev-parse","--abbrev-ref",`${e}@{upstream}`],n),c=await this.run(["rev-list","--left-right","--count",`${r}...${e}`],n),[a,u]=c.split(/\s+/).map(Number);return Ut(o,{ahead:u??0,behind:a??0})}catch{return Ut(o,{ahead:0,behind:0})}}static async getLastCommit(e){let t=e??Bun.cwd,n=`last-commit:${t}`,o=So(n);if(o!==void 0)return o;try{let i=await this.run(["log","-1","--format=%h\x1F%s\x1F%cr"],t);if(!i)return Ut(n,null);let[r,c,a]=i.split("\x1F");return Ut(n,{hash:r??"",message:c??"",relativeDate:a??""})}catch{return Ut(n,null)}}static async getDirtyCount(e){let t=e??Bun.cwd,n=`dirty-count:${t}`,o=So(n);if(o!==void 0)return o;try{let i=await this.run(["status","--porcelain"],t);if(!i)return Ut(n,0);return Ut(n,i.split(`
7
+ `).filter(Boolean).length)}catch{return Ut(n,0)}}static async unlock(e,t){await this.checkVersion(),await this.run(["worktree","unlock",e],t),wt()}static async isMergedInto(e,t,n){try{return(await this.run(["branch","--merged",t],n??Bun.cwd)).split(`
8
+ `).some((i)=>i.trim().replace(/^[*+] /,"")===e)}catch{return!1}}static async getDefaultRemote(e){try{return await this.run(["config","checkout.defaultRemote"],e??Bun.cwd)||"origin"}catch{return"origin"}}static async remoteBranchExists(e,t,n){let o=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${o}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,o=So(n);if(o)return o;let[i,r]=await Promise.all([this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/heads/"],t).catch(()=>""),this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/remotes/"],t).catch(()=>"")]),c=[];for(let a of i.split(`
9
+ `).filter(Boolean)){let[u,d]=a.split("\x1F");c.push({name:u??"",isRemote:!1,lastCommitDate:d??""})}for(let a of r.split(`
10
+ `).filter(Boolean)){let[u,d]=a.split("\x1F");if(!u||u.endsWith("/HEAD"))continue;let m=u.replace(/^[^/]+\//,"");if(c.some((p)=>p.name===m))continue;c.push({name:m,isRemote:!0,lastCommitDate:d??""})}return Ut(n,c)}static async diffBetween(e,t,n,o){let i=["diff"];if(n?.stat)i.push("--stat");if(n?.nameOnly)i.push("--name-only");return i.push(e,t),this.run(i,o)}static async getWorktreeLastActivity(e){try{let t=await this.run(["log","-1","--format=%ci"],e);return t?new Date(t):null}catch{return null}}static async setUpstream(e,t,n){let o=t??await this.getDefaultRemote(n),i=n??Bun.cwd;try{if(await this.run(["config",`branch.${e}.remote`],i))return}catch{}await this.run(["branch",`--set-upstream-to=${o}/${e}`,e],i)}static async getRemotes(e){let t=e??Bun.cwd,n=`remotes:${t}`,o=So(n);if(o)return o;try{let r=(await this.run(["remote"],t)).split(`
11
+ `).map((c)=>c.trim()).filter(Boolean);return Ut(n,r)}catch{return Ut(n,[])}}static async fetchRemote(e,t,n){let o=t?["fetch",e,t]:["fetch",e];await this.run(o,n),wt()}}function dl(e,t){if(!e||e.startsWith("refs/"))return null;let n=e.indexOf("/");if(n<=0)return null;let o=e.slice(0,n),i=e.slice(n+1);if(!i)return null;if(!t.includes(o))return null;return{remote:o,branch:i}}var qm=3000,jr;var Te=de(()=>{Wt();jr=new Map});function ml(e){let[t,n]=ue("list"),[o,i]=ue(0),[r,c]=ue(null),[a,u]=ue(!1),[d,m]=ue(!1),[p,x]=ue(!1),[D,W]=ue(!1),[b,R]=ue(new Set),[v,k]=ue(!1),[S,y]=ue(null),O=(Y)=>{let X=new Set(b());if(X.has(Y))X.delete(Y);else X.add(Y);R(X)},B=(Y)=>{R(new Set(Y))},I=(Y)=>{let X=new Set(Y),J=b(),z=new Set;for(let Q of J)if(X.has(Q))z.add(Q);if(z.size!==J.size)R(z)},q=()=>{R(new Set)};return Z(hl.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:o,setSelectedWorktreeIndex:i,selectedWorktreePath:r,setSelectedWorktreePath:c,showRemove:a,setShowRemove:u,showCommandPalette:d,setShowCommandPalette:m,showDetailView:p,setShowDetailView:x,inputFocused:D,setInputFocused:W,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:b,toggleWorktreeSelection:O,selectAllNonMain:B,pruneSelectedWorktrees:I,clearSelection:q,showBulkActions:v,setShowBulkActions:k,focusPickerData:S,setFocusPickerData:y},get children(){return e.children}})}function ut(){let e=Gt(hl);if(!e)throw Error("useApp must be used within AppProvider");return e}var hl;var Nt=de(()=>{_();Xe();hl=Mn()});function gl(e){let[t,{refetch:n}]=Sa(async()=>{try{if(e.repoPaths.length<=1)return await ie.list(e.repoPaths[0]);return await ie.listAll(e.repoPaths)}catch(a){throw a}}),o=()=>{wt(),n()},i=()=>{if(t.error)return;try{return t()}catch{return}},r=$e(()=>{let a=i()??[],u=new Set,d=[];for(let m of a)if(!u.has(m.repoName))u.add(m.repoName),d.push(m.repoName);return d}),c=$e(()=>r().length>1);return Z(pl.Provider,{value:{worktrees:i,refetch:o,loading:()=>t.loading,error:()=>t.error,repoNames:r,isMultiRepo:c},get children(){return e.children}})}function mt(){let e=Gt(pl);if(!e)throw Error("useGit must be used within GitProvider");return e}var pl;var on=de(()=>{_();Xe();Te();pl=Mn()});function wl(e){let[t,n]=ue([]),o=(r)=>{n((c)=>c.filter((a)=>a.id!==r))},i=(r)=>{let c=`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,a=r.duration??3000;n((u)=>[...u,{...r,id:c}].slice(-5)),setTimeout(()=>{o(c)},a)};return Z(bl.Provider,{value:{toasts:t,addToast:i,removeToast:o},get children(){return e.children}})}function An(){let e=Gt(bl);if(!e)throw Error("useToast must be used within ToastProvider");return e}var bl;var Co=de(()=>{_();Xe();bl=Mn()});function Cl(e,t=process.platform){let[n,...o]=xl[t]??xl.linux;return[n,...o,e]}function Rl(e,t,n=process.platform){if(t!==void 0){let r=t.trim();if(r.length===0)throw new Sl;if(n==="darwin")return["open","-a",r,e];if(n==="win32")return[r,"-d",e];return[r,"--working-directory",e]}if(n==="win32")return["cmd","/c","start","","/D",e];let[o,...i]=yl[n]??yl.linux;return[o,...i,e]}var Sl,xl,yl;var Ol=de(()=>{Sl=class Sl extends Error{constructor(){super("terminalCommand must not be empty");this.name="InvalidTerminalCommandError"}};xl={darwin:["open"],linux:["xdg-open"],win32:["explorer"]},yl={darwin:["open","-a","Terminal"],linux:["x-terminal-emulator","--working-directory"]}});function ls(e){let t=e.platform??process.platform;switch(e.key){case"o":case"f":return Cl(e.selectedWorktree.path,t);case"t":let n=e.terminalCommand??Ym({platform:t,terminalProgram:e.terminalProgram});return Rl(e.selectedWorktree.path,n,t);default:return Zm(e.key)}}function Ym(e){if(e.platform!=="darwin")return;if(!e.terminalProgram)return;return Xm[e.terminalProgram]}function Zm(e){throw Error(`Unhandled open shortcut: ${e}`)}var Xm;var vl=de(()=>{Ol();Xm={Apple_Terminal:"Terminal",ghostty:"Ghostty",iTerm:"iTerm","iTerm.app":"iTerm",WezTerm:"WezTerm",wezterm:"WezTerm"}});var we,We,rn,Jt,xt;var co=de(()=>{we={fetch:"fetch",worktree:"worktree",upstream:"upstream",copyFiles:"copyFiles",linkFiles:"linkFiles",sharedDeps:"sharedDeps",focus:"focus",postCreate:"postCreate",monorepoHooks:"monorepoHooks",session:"session",prMeta:"prMeta",activityLog:"activityLog"},We={postRemove:"postRemove",monorepoHooks:"monorepoHooks",session:"session",worktree:"worktree",activityLog:"activityLog"},rn={createArchive:"createArchive",activityLogArchive:"activityLogArchive"},Jt={validate:"validate",importWorktree:"importWorktree",activityLog:"activityLog"},xt={renameBranch:"renameBranch",movePath:"movePath",activityLog:"activityLog"}});import*as Qm from"fs";import{join as Wn,resolve as hn,dirname as _o}from"path";function Tr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let r=Wn(hn(e),i),c=Wn(hn(t),i);if(!mn(r)){o.skipped.push(i),o.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(mn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{Ro(_o(c),{recursive:!0}),El(r,c),o.copied.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return o}function Hr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let r=hn(Wn(hn(e),i)),c=Wn(hn(t),i);if(!mn(r)){o.skipped.push(i),o.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(mn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{Ro(_o(c),{recursive:!0}),Dl(r,c),o.linked.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return o}function Fl(e,t,n=0){let o=0,i=[];if(n>ep)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let r=hn(e),c=hn(t);if(!mn(r))return{linked:0,errors:[`Source not found: ${e}`]};let a=_m(r,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return Ro(_o(c),{recursive:!0}),kl(r,c),{linked:1,errors:[]}}catch(u){return{linked:0,errors:[`Failed to hardlink ${e}: ${u.message}`]}}if(!mn(c))Ro(c,{recursive:!0});try{let u=$m(r,{withFileTypes:!0});for(let d of u){let m=Wn(r,d.name),p=Wn(c,d.name);if(d.isDirectory()){let x=Fl(m,p,n+1);if(o+=x.linked,x.errors.length>0)i.push(...x.errors)}else if(d.isFile()){if(mn(p))continue;try{kl(m,p),o++}catch(x){try{El(m,p),o++}catch(D){i.push(`Failed to link/copy ${d.name}: ${D.message}`)}}}}}catch(u){i.push(`Failed to read directory ${e}: ${u.message}`)}return{linked:o,errors:i}}function Pl(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],r=n.strategy??"symlink";for(let c of i){let a=Wn(hn(e),c),u=Wn(hn(t),c);if(!mn(a)){o.skipped.push(c),o.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(mn(u)){o.skipped.push(c);continue}try{if(r==="symlink")Ro(_o(u),{recursive:!0}),Dl(a,u),o.linked.push(c);else if(r==="hardlink"){let d=Fl(a,u);if(d.linked>0)o.linked.push(c);for(let m of d.errors)o.warnings.push(m)}else Ro(_o(u),{recursive:!0}),Nm(a,u,{recursive:!0}),o.copied.push(c)}catch(d){o.skipped.push(c),o.warnings.push(`Failed to share dep ${c}: ${d.message}`)}}return o}var El,Nm,mn,Dl,E1,kl,$m,_m,Ro,ep=30;var fs=de(()=>{({copyFileSync:El,cpSync:Nm,existsSync:mn,symlinkSync:Dl,unlinkSync:E1,linkSync:kl,readdirSync:$m,statSync:_m,mkdirSync:Ro}=Qm)});import{existsSync as tp,mkdirSync as np}from"fs";async function Ln(e,t){let n=t.timeout??30000;for(let o of e)await op(o,t.cwd,n,t.env??{},t.onOutput)}async function op(e,t,n,o,i){if(!tp(t))np(t,{recursive:!0});let r;try{r=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}catch(d){if(d.code!=="ENOENT")throw d;r=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,r.kill()},n),u=r.stderr?new Response(r.stderr).text():Promise.resolve("");try{if(i&&r.stdout){let m=r.stdout.getReader(),p=new TextDecoder,x=[];while(!0){let{done:W,value:b}=await m.read();if(W)break;let v=p.decode(b,{stream:!0}).split(`
12
+ `);if(v.length===1)x.push(v[0]);else{x.push(v[0]);let k=x.join("");if(x.length=0,k)i(k);for(let y=1;y<v.length-1;y++)if(v[y])i(v[y]);let S=v[v.length-1];if(S)x.push(S)}}let D=x.join("")+p.decode();if(D)i(D)}let d=await r.exited;if(c)throw new vo(e,n);if(d!==0){let m=(await u).trim();throw new Oo(e,d,m)}}finally{clearTimeout(a)}}var Oo,vo;var ko=de(()=>{Oo=class Oo extends Error{command;exitCode;stderr;constructor(e,t,n){super(`Hook command failed (exit ${t}): ${e}
13
+ ${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};vo=class vo extends Error{command;timeoutMs;constructor(e,t){super(`Hook command timed out after ${t}ms: ${e}`);this.command=e;this.timeoutMs=t;this.name="HookTimeoutError"}}});import{readFileSync as rp,statSync as ip}from"fs";import{join as Ml,resolve as sp}from"path";function er(e){let t=Ml(e,".git"),n=ip(t,{throwIfNoEntry:!1});if(!n||n.isDirectory())return t;let i=rp(t,"utf-8").trim().replace(/^gitdir:\s*/,"").trim();return sp(e,i)}function sn(e,t){return Ml(er(e),t)}var In=()=>{};import{existsSync as cp,mkdirSync as ap,readFileSync as lp,writeFileSync as fp}from"fs";import{dirname as up,join as us}from"path";function Al(e){return sn(e,"copse-focus")}function Br(e,t){let n=Al(e);ap(up(n),{recursive:!0}),fp(n,t.join(`
14
+ `),{encoding:"utf-8",mode:384})}function zt(e){let t=Al(e);if(!cp(t))return null;return lp(t,"utf-8").split(/\r?\n/).filter(Boolean)}function Wl(e,t){if(t?.forceRoot)return{kind:"root",path:e};let n=zt(e)??[];if(t?.explicitFocus){if(!n.includes(t.explicitFocus))throw new Vr(t.explicitFocus,n);return{kind:"single",path:us(e,t.explicitFocus),focus:t.explicitFocus}}if(n.length===0)return{kind:"root",path:e};if(n.length===1)return{kind:"single",path:us(e,n[0]),focus:n[0]};return{kind:"multiple",focusPaths:n,resolvedPaths:n.map((o)=>us(e,o))}}var Vr;var pn=de(()=>{In();Vr=class Vr extends Error{requested;available;constructor(e,t){let n=t.length===0?"no focus paths are set on this worktree.":`available: ${t.join(", ")}.`;super(`Focus path '${e}' is not set; ${n}`);this.requested=e;this.available=t;this.name="FocusNotFoundError"}}});import{mkdirSync as dp,writeFileSync as hp}from"fs";import{dirname as mp}from"path";function pp(e){return sn(e,"copse-pr")}function Ll(e,t){let n=pp(e);dp(mp(n),{recursive:!0}),hp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var Il=de(()=>{In()});import{appendFileSync as gp,existsSync as bp,mkdirSync as wp,readFileSync as jl,rmSync as xp,statSync as yp,writeFileSync as Sp}from"fs";import{dirname as Cp}from"path";function ds(e){return sn(e,"copse-activity.log")}function qt(e,t){let n=ds(e);wp(Cp(n),{recursive:!0}),gp(n,`${JSON.stringify(t)}
15
+ `,{encoding:"utf-8",mode:384});let o=yp(n,{throwIfNoEntry:!1});if(o&&o.size>Op){let i=jl(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>Tl){let r=i.slice(-Rp);Sp(n,`${r.join(`
18
16
  `)}
19
- `,{encoding:"utf-8",mode:384})}}}function Dl(e,t){let n=ws(e),o=t?.limit??50;if(!cp(n))return[];let s=El(n,"utf-8").split(/\r?\n/).filter(Boolean),c=Math.max(0,s.length-o),a=[];for(let u=s.length-1;u>=c;u--)try{a.push(JSON.parse(s[u]))}catch{}return a}function Ml(e){lp(ws(e),{force:!0})}var Fl=1000,hp=500,mp;var Ln=ge(()=>{Pn();mp=80*Fl});function Yr(e,t){return e.map((n)=>{let o=new Bun.Glob(n.glob),i=t.filter((s)=>o.match(s));return{glob:n.glob,matchedPaths:i,copyFiles:n.copyFiles??[],linkFiles:n.linkFiles??[],postCreate:n.postCreate??[],postRemove:n.postRemove??[]}}).filter((n)=>n.matchedPaths.length>0)}function pp(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function Zr(e,t,n){for(let o of e){let i=o[t],s=t==="postCreate"&&o.copyFiles.length>0,c=t==="postCreate"&&o.linkFiles.length>0,a=i.length>0;if(!s&&!c&&!a)continue;for(let u of o.matchedPaths){let{join:h}=await import("path"),m=h(n.mainRepoPath,u),p=h(n.cwd,u);if(s){let w=qr(m,p,o.copyFiles);for(let A of w.copied)n.onOutput?.(`Copied ${u}/${A}`);for(let A of w.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(c){let w=Xr(m,p,o.linkFiles);for(let A of w.linked)n.onOutput?.(`Linked ${u}/${A}`);for(let A of w.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(a){let w=i.map((W)=>pp(W,{packagePath:u,repo:n.repo,branch:n.branch})),A={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:u};await rn(w,{cwd:n.cwd,timeout:n.timeout,env:A,onOutput:n.onOutput})}}}}var xs=ge(()=>{oo();bs()});import{existsSync as gp,readdirSync as ky,readFileSync as Ey,statSync as bp}from"fs";import{join as wp,relative as Dy}from"path";function Pl(e,t){let n=[],o=[];for(let i of t){let s=i.trim();if(!s){o.push(s);continue}let c=wp(e,s);try{if(gp(c)&&bp(c).isDirectory())n.push(s);else o.push(s)}catch{o.push(s)}}return{valid:n,invalid:o}}var Al=()=>{};async function nr(e,t,n={}){let{branch:o,worktreePath:i,mainRepoPath:s,repoName:c}=t,a=Ht(e,s),u;if(t.templateName){let x=Sr(e,t.templateName);if(!x)throw Error(`Template '${t.templateName}' not found`);a=Cr(a,x),u=x.base}let h=t.base??u??a.base,m=t.focusPaths??[],p=Fn(e),w=t.session??p.autoCreate??!1,A=t.fetch!==!1,W=await se.localBranchExists(o,s),y=null;if(h&&A&&!W){let x=await se.getRemotes(s);y=cl(h,x)}let C=w?await yo():!1,k=[];if(y)k.push({id:Se.fetch,label:`Fetching ${y.remote}/${y.branch}`});if(k.push({id:Se.worktree,label:"Creating worktree"}),a.autoUpstream)k.push({id:Se.upstream,label:"Setting upstream"});if(a.copyFiles.length>0)k.push({id:Se.copyFiles,label:"Copying files"});if(a.linkFiles.length>0)k.push({id:Se.linkFiles,label:"Creating symlinks"});if(a.sharedDeps?.paths?.length)k.push({id:Se.sharedDeps,label:"Sharing dependencies"});if(m.length>0)k.push({id:Se.focus,label:"Setting focus"});if(a.postCreate.length>0)k.push({id:Se.postCreate,label:"Running postCreate hooks"});if(m.length>0&&a.monorepo?.hooks?.length)k.push({id:Se.monorepoHooks,label:"Running monorepo hooks"});if(w&&C)k.push({id:Se.session,label:"Creating session"});if(t.prNumber)k.push({id:Se.prMeta,label:"Writing PR metadata"});k.push({id:Se.activityLog,label:"Logging activity"}),n.onStepPlan?.(k);let F={validFocusPaths:[],invalidFocusPaths:[]};if(y){n.onStepStart?.(Se.fetch);try{await se.fetchRemote(y.remote,y.branch,s),n.onStepDone?.(Se.fetch)}catch(x){let S=x instanceof xt?x.stderr||x.message:x.message;F.fetchWarning=S.split(`
20
- `)[0],n.onStepError?.(Se.fetch,`${F.fetchWarning} \u2014 continuing with local ref`)}}n.onStepStart?.(Se.worktree);try{await se.add(o,i,{createBranch:!W,base:h},s),n.onStepDone?.(Se.worktree)}catch(x){throw n.onStepError?.(Se.worktree,x.message),x}try{if(a.autoUpstream){n.onStepStart?.(Se.upstream);try{let S=await se.getDefaultRemote(s);if(await se.remoteBranchExists(o,S,s))await se.setUpstream(o,S,s),n.onStepDone?.(Se.upstream,`\u2192 ${S}/${o}`);else n.onStepDone?.(Se.upstream,"no remote branch")}catch(S){n.onStepError?.(Se.upstream,S.message)}}if(a.copyFiles.length>0)n.onStepStart?.(Se.copyFiles),qr(s,i,a.copyFiles),n.onStepDone?.(Se.copyFiles);if(a.linkFiles.length>0)n.onStepStart?.(Se.linkFiles),Xr(s,i,a.linkFiles),n.onStepDone?.(Se.linkFiles);if(a.sharedDeps?.paths?.length)n.onStepStart?.(Se.sharedDeps),Ol(s,i,a.sharedDeps),n.onStepDone?.(Se.sharedDeps);if(m.length>0){n.onStepStart?.(Se.focus);let{valid:S,invalid:O}=Pl(i,m);if(F.validFocusPaths=S,F.invalidFocusPaths=O,S.length>0)Vr(i,S);n.onStepDone?.(Se.focus,S.join(", "))}let x={COPSE_BRANCH:o,COPSE_WORKTREE_PATH:i,COPSE_REPO_PATH:s};if(F.validFocusPaths.length>0)x.COPSE_FOCUS_PATHS=F.validFocusPaths.join(",");if(a.postCreate.length>0)n.onStepStart?.(Se.postCreate),await rn(a.postCreate,{cwd:i,env:x,onOutput:n.onHookOutput}),n.onStepDone?.(Se.postCreate);if(F.validFocusPaths.length>0&&a.monorepo?.hooks?.length){let S=Yr(a.monorepo.hooks,F.validFocusPaths);if(S.length>0)n.onStepStart?.(Se.monorepoHooks),await Zr(S,"postCreate",{cwd:i,env:x,repo:c,branch:o,focusPaths:F.validFocusPaths,mainRepoPath:s,onOutput:n.onHookOutput}),n.onStepDone?.(Se.monorepoHooks)}if(w&&C){n.onStepStart?.(Se.session);try{let S=t.layoutName??p.defaultLayout,O=Rr(e,S),G=await Ur(o,i,{layout:O,prefix:p.prefix,attach:!1,layoutName:S});F.sessionName=G,n.onStepDone?.(Se.session,G)}catch(S){n.onStepError?.(Se.session,S.message.split(`
21
- `)[0])}}if(t.prNumber)n.onStepStart?.(Se.prMeta),vl(i,{number:t.prNumber,branch:o,createdAt:new Date().toISOString()}),n.onStepDone?.(Se.prMeta);n.onStepStart?.(Se.activityLog);try{qt(s,{timestamp:new Date().toISOString(),event:"create",branch:o,path:i}),n.onStepDone?.(Se.activityLog)}catch(S){n.onStepError?.(Se.activityLog,S.message)}return F}catch(x){throw await se.remove(i,{force:!0},s).catch(()=>{}),x}}var Wl=ge(()=>{qe();Ke();Ut();bs();oo();nn();kl();Ln();xs();Wn();Al();zr()});async function ro(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:s,branch:c,force:a}=t,u=Ht(e,i),h=Fn(e),m=Jt(o)??[],p=m.length>0&&u.monorepo?.hooks?.length?Yr(u.monorepo.hooks,m):[],w=Boolean(h.autoKill&&c),A=w?await yo():!1,W=[];if(u.postRemove.length>0)W.push({id:Ve.postRemove,label:"Running postRemove hooks"});if(p.length>0)W.push({id:Ve.monorepoHooks,label:"Running monorepo hooks"});if(w&&A)W.push({id:Ve.session,label:"Killing session"});W.push({id:Ve.worktree,label:"Removing worktree"}),W.push({id:Ve.activityLog,label:"Logging activity"}),n.onStepPlan?.(W);let y={COPSE_BRANCH:c??"",COPSE_WORKTREE_PATH:o,COPSE_REPO_PATH:i};if(m.length>0)y.COPSE_FOCUS_PATHS=m.join(",");if(u.postRemove.length>0){n.onStepStart?.(Ve.postRemove);try{await rn(u.postRemove,{cwd:o,env:y,onOutput:n.onHookOutput}),n.onStepDone?.(Ve.postRemove)}catch(C){n.onStepError?.(Ve.postRemove,C.message)}}if(p.length>0){n.onStepStart?.(Ve.monorepoHooks);try{await Zr(p,"postRemove",{cwd:o,env:y,repo:s,branch:c??"",focusPaths:m,mainRepoPath:i,onOutput:n.onHookOutput}),n.onStepDone?.(Ve.monorepoHooks)}catch(C){n.onStepError?.(Ve.monorepoHooks,C.message)}}if(w&&A&&c){n.onStepStart?.(Ve.session);try{let C=await Tr(c,o,h.prefix);n.onStepDone?.(Ve.session,C?"killed":"no active session")}catch(C){n.onStepError?.(Ve.session,C.message)}}n.onStepStart?.(Ve.worktree),await se.remove(o,{force:a},i),n.onStepDone?.(Ve.worktree),n.onStepStart?.(Ve.activityLog);try{qt(i,{timestamp:new Date().toISOString(),event:"delete",branch:c??"",path:o}),n.onStepDone?.(Ve.activityLog)}catch(C){n.onStepError?.(Ve.activityLog,C.message)}}var jl=ge(()=>{qe();Ke();oo();nn();Ln();xs();Wn();zr()});var vo=ge(()=>{Wl();jl();zr()});function sn(e){let t=rt(),n=()=>Math.max(0,Math.floor((t().width-e.width)/2)),o=()=>Math.max(0,Math.floor((t().height-e.height)/2)),i=()=>(()=>{var s=l("box");return r(s,"border",!0),r(s,"borderStyle","rounded"),r(s,"flexDirection","column"),r(s,"paddingX",1),r(s,"paddingY",1),r(s,"titleAlignment","left"),r(s,"position","absolute"),V(s,()=>e.children,null),V(s,X(re,{get when(){return e.footer},get children(){return e.footer}}),null),H((c)=>{var a=n(),u=o(),h=e.width,m=e.height,p=e.borderColor??g.border.active,w=e.backgroundColor??g.bg.surface,A=e.gap??0,W=e.title;return a!==c.e&&(c.e=r(s,"x",a,c.e)),u!==c.t&&(c.t=r(s,"y",u,c.t)),h!==c.a&&(c.a=r(s,"width",h,c.a)),m!==c.o&&(c.o=r(s,"height",m,c.o)),p!==c.i&&(c.i=r(s,"borderColor",p,c.i)),w!==c.n&&(c.n=r(s,"backgroundColor",w,c.n)),A!==c.s&&(c.s=r(s,"gap",A,c.s)),W!==c.h&&(c.h=r(s,"title",W,c.h)),c},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),s})();return X(re,{get when(){return e.backdrop},get fallback(){return i()},get children(){var s=l("box");return r(s,"x",0),r(s,"y",0),r(s,"position","absolute"),V(s,i),H((c)=>{var a=t().width,u=t().height,h=e.backdropColor??g.bg.overlay;return a!==c.e&&(c.e=r(s,"width",a,c.e)),u!==c.t&&(c.t=r(s,"height",u,c.t)),h!==c.a&&(c.a=r(s,"backgroundColor",h,c.a)),c},{e:void 0,t:void 0,a:void 0}),s}})}var ko=ge(()=>{te();te();te();te();te();Ye();te();yt()});import{decodePasteBytes as xp}from"@opentui/core";import{basename as Ll,resolve as yp}from"path";function Il(){let e=st(),t=gt(),n=rt(),[o,i]=ue("input"),[s,c]=ue(""),[a,u]=ue(""),[h,m]=ue("branch"),[p,w]=ue(""),[A,W]=ue([]),[y,C]=ue(""),[k,F]=ue([]),[x,S]=ue(-1),[O,G]=ue(!1),I=()=>{let E=s().toLowerCase();if(!E)return k().slice(0,10);return k().filter((P)=>P.name.toLowerCase().includes(E)).slice(0,10)};Pt(en(()=>Z(),async()=>{try{let E=Z(),P=await se.listBranches(E);F(P)}catch{F([])}})),fn(()=>{queueMicrotask(()=>{c(""),u("")})}),Pt(en(s,()=>{S(-1),G(s().length>0&&I().length>0)})),Pt(en(o,(E)=>{e.setInputFocused(E==="input")})),ct(()=>{e.setInputFocused(!1)});let z=(E,P)=>{W((U)=>U.map((K,L)=>L===E?{...K,...P}:K))},Z=()=>{let E=t.worktrees()??[],P=e.selectedWorktreePath();return(P?E.find((K)=>K.path===P)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},T=()=>{let E=t.worktrees()??[],P=e.selectedWorktreePath();return(P?E.find((K)=>K.path===P)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},J=()=>{let E=s();if(!E)return"";let P=Z(),U=Ae(),K=Ht(U,P),L=E.replace(/\//g,"-"),ee=Ll(P);return yp(yr(K.worktreeDir,{repo:ee,branch:L}))};it(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let P=E.name;if(P==="escape"){if(o()==="preview"){i("input");return}e.setActiveTab("list"),c(""),u(""),m("branch"),i("input");return}if(o()==="input"){if(P==="tab"){if(O()&&h()==="branch")G(!1),S(-1);m((U)=>U==="branch"?"focus":"branch");return}if(h()==="branch"&&O()&&I().length>0){if(P==="down"||E.sequence==="\x1B[B"){S((U)=>Math.min(U+1,I().length-1));return}if(P==="up"||E.sequence==="\x1B[A"){S((U)=>Math.max(U-1,-1));return}}if(P==="return"||P==="enter"){if(h()==="branch"&&x()>=0){let U=I()[x()];if(U){c(U.name),G(!1),S(-1);return}}if(!s())return;G(!1),w(J()),i("preview");return}}if(o()==="preview"){if(P==="return"||P==="enter"){i("creating");let U=s(),K=p(),L=Z(),ee=Ll(L);try{let de=Ae(),ie=a(),we=ie?ie.split(/[,\s]+/).map((pe)=>pe.trim()).filter(Boolean):[],Oe={};await nr(de,{branch:U,worktreePath:K,mainRepoPath:L,repoName:ee,focusPaths:we,session:void 0},{onStepPlan:(pe)=>{let Ee=pe.map((Fe,We)=>{return Oe[Fe.id]=We,{label:Fe.label,status:"pending"}});W(Ee)},onStepStart:(pe)=>{let Ee=Oe[pe];if(Ee!==void 0)z(Ee,{status:"running"})},onStepDone:(pe,Ee)=>{let Fe=Oe[pe];if(Fe!==void 0)z(Fe,{status:"done",message:Ee})},onStepError:(pe,Ee)=>{let Fe=Oe[pe];if(Fe!==void 0)z(Fe,{status:"error",message:Ee})},onHookOutput:(pe)=>{let Ee=A().findLastIndex((Fe)=>Fe.status==="running");if(Ee>=0)z(Ee,{message:pe})}}),C("Worktree created successfully!"),i("done"),to.success(`Worktree created: ${U}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),u(""),m("branch"),i("input")},1500)}catch(de){to.error(de.message);let we=A().findIndex((Oe)=>Oe.status==="running");if(we>=0)z(we,{status:"error",message:de.message});C(`${de.message}`),i("error")}return}}if(o()==="error"){if(P==="escape"||P==="return"||P==="enter")i("input"),C("")}}),go((E)=>{if(!e.inputFocused())return;let P=xp(E.bytes).replace(/\r?\n/g,"");if(!P)return;if(h()==="branch"){c((U)=>U+P);return}if(h()==="focus")u((U)=>U+P)});let q=()=>n().width,Y=()=>n().height,ne=()=>Math.max(50,Math.min(80,q()-4)),he=4,_=()=>{if(o()==="input"){let E=O()&&h()==="branch"?I().length*2:0,P=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+E+P,Y()-4))}if(o()==="preview")return Math.max(13+he,Math.min((a().length>0?15:13)+he,Y()-4));if(o()==="creating")return Math.max(9+he,Math.min(A().length*2+7+he,Y()-4));if(o()==="done")return Math.max(11+he,Math.min((a().length>0?15:13)+he,Y()-4));return Math.max(11+he,Math.min(11+he,Y()-4))},me=()=>Math.max(ne()-4,10),ke=()=>Math.max(me(),20);return X(sn,{get width(){return ne()},get height(){return _()},get borderColor(){return Le(()=>o()==="done")()?g.text.success:Le(()=>o()==="error")()?g.text.error:g.border.active},get backgroundColor(){return g.bg.surface},gap:1,title:" Create Worktree ",get footer(){return[(()=>{var E=l("box"),P=l("text");return f(E,P),r(E,"height",1),V(P,()=>"\u2500".repeat(Math.max(me(),1))),H((U)=>{var K=me(),L=g.border.subtle;return K!==U.e&&(U.e=r(E,"width",K,U.e)),L!==U.t&&(U.t=r(P,"fg",L,U.t)),U},{e:void 0,t:void 0}),E})(),X(re,{get when(){return o()==="input"},get children(){var E=l("box"),P=l("text"),U=l("text"),K=l("text"),L=l("text");return f(E,P),f(E,U),f(E,K),f(E,L),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Tab:switch")),f(U,B("\u2191\u2193:pick")),f(K,B("Enter:confirm")),f(L,B("Esc:cancel")),H((ee)=>{var de=g.text.secondary,ie=g.text.secondary,we=g.text.secondary,Oe=g.text.secondary;return de!==ee.e&&(ee.e=r(P,"fg",de,ee.e)),ie!==ee.t&&(ee.t=r(U,"fg",ie,ee.t)),we!==ee.a&&(ee.a=r(K,"fg",we,ee.a)),Oe!==ee.o&&(ee.o=r(L,"fg",Oe,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),E}}),X(re,{get when(){return o()==="preview"},get children(){var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Enter:create")),f(U,B("Esc:back")),H((K)=>{var L=g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}}),X(re,{get when(){return o()==="creating"},get children(){var E=l("text");return f(E,B("Creating worktree...")),H((P)=>r(E,"fg",g.text.secondary,P)),E}}),X(re,{get when(){return o()==="done"},get children(){var E=l("text");return f(E,B("\u2713 Done \u2014 returning to list")),H((P)=>r(E,"fg",g.text.secondary,P)),E}}),X(re,{get when(){return o()==="error"},get children(){var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Enter:retry")),f(U,B("Esc:back")),H((K)=>{var L=g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}})]},get children(){return[X(re,{get when(){return o()==="input"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text"),K=l("text");return f(E,P),f(E,U),f(E,K),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("New Worktree")),r(U,"x",3),r(U,"y",0),r(K,"x",17),r(K,"y",0),V(K,T),H((L)=>{var ee=me(),de=g.bg.elevated,ie=g.text.accent,we=g.text.primary,Oe=g.text.secondary;return ee!==L.e&&(L.e=r(E,"width",ee,L.e)),de!==L.t&&(L.t=r(E,"backgroundColor",de,L.t)),ie!==L.a&&(L.a=r(P,"fg",ie,L.a)),we!==L.o&&(L.o=r(U,"fg",we,L.o)),Oe!==L.i&&(L.i=r(K,"fg",Oe,L.i)),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("text");return f(E,B("Branch name")),H((P)=>r(E,"fg",h()==="branch"?g.text.accent:g.text.secondary,P)),E})(),(()=>{var E=l("input");return r(E,"onInput",(P)=>c(P)),r(E,"placeholder","Branch name or search..."),H((P)=>{var U=s(),K=h()==="branch",L=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==P.e&&(P.e=r(E,"value",U,P.e)),K!==P.t&&(P.t=r(E,"focused",K,P.t)),L!==P.a&&(P.a=r(E,"width",L,P.a)),ee!==P.o&&(P.o=r(E,"backgroundColor",ee,P.o)),de!==P.i&&(P.i=r(E,"cursorColor",de,P.i)),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),X(re,{get when(){return Le(()=>!!(O()&&h()==="branch"))()&&I().length>0},get children(){return X(nt,{get each(){return I()},children:(E,P)=>(()=>{var U=l("box"),K=l("text"),L=l("text");return f(U,K),f(U,L),r(U,"height",1),r(K,"x",1),r(K,"y",0),V(K,()=>P()===x()?"\u25B8 ":" ",null),V(K,()=>E.name,null),r(L,"y",0),V(L,()=>E.isRemote?"(remote) ":"",null),V(L,()=>E.lastCommitDate,null),H((ee)=>{var de=me(),ie=P()===x()?g.select.focusedBg:g.bg.surface,we=P()===x()?g.tab.active:g.text.primary,Oe=Math.max(1+E.name.length+4,27),pe=g.text.secondary;return de!==ee.e&&(ee.e=r(U,"width",de,ee.e)),ie!==ee.t&&(ee.t=r(U,"backgroundColor",ie,ee.t)),we!==ee.a&&(ee.a=r(K,"fg",we,ee.a)),Oe!==ee.o&&(ee.o=r(L,"x",Oe,ee.o)),pe!==ee.i&&(ee.i=r(L,"fg",pe,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),U})()})}}),(()=>{var E=l("text");return f(E,B("Tab to switch fields \xB7 \u2191\u2193 to select branch")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"width","100%"),r(E,"height",1),r(E,"flexDirection","row"),f(P,B("Focus ")),f(U,B("(optional)")),H((K)=>{var L=h()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E})(),(()=>{var E=l("input");return r(E,"onInput",(P)=>u(P)),r(E,"placeholder","apps/web,apps/api (optional)"),H((P)=>{var U=a(),K=h()==="focus",L=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==P.e&&(P.e=r(E,"value",U,P.e)),K!==P.t&&(P.t=r(E,"focused",K,P.t)),L!==P.a&&(P.a=r(E,"width",L,P.a)),ee!==P.o&&(P.o=r(E,"backgroundColor",ee,P.o)),de!==P.i&&(P.i=r(E,"cursorColor",de,P.i)),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return f(E,B("comma-separated paths, e.g. apps/web,apps/api")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),X(re,{get when(){return s().length>0},get children(){return[(()=>{var E=l("text");return f(E,B("Target path")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),(()=>{var E=l("text");return V(E,J),H((P)=>r(E,"fg",g.text.primary,P)),E})()]}}),(()=>{var E=l("text");return f(E,B("Type a branch name, e.g. feature/my-feature")),H((P)=>r(E,"fg",g.text.primary,P)),E})()]}}),X(re,{get when(){return o()==="preview"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Confirm Worktree")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Branch")),V(K,s),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Path")),V(K,p),H((L)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Focus")),V(K,a),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,B("\u2713 Ready to create. Press Enter to confirm.")),H((P)=>r(E,"fg",g.text.success,P)),E})()]}}),X(re,{get when(){return o()==="creating"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Creating Worktree")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),X(nt,{get each(){return A()},children:(E)=>(()=>{var P=l("box"),U=l("text"),K=B(" ");return f(P,U),r(P,"height",1),f(U,K),V(U,(()=>{var L=Le(()=>E.status==="done");return()=>L()?"\u2713":Le(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),K),V(U,()=>E.label,null),V(P,X(re,{get when(){return E.message},get children(){var L=l("text");return r(L,"y",0),V(L,()=>E.message),H((ee)=>{var de=E.label.length+4,ie=g.text.secondary;return de!==ee.e&&(ee.e=r(L,"x",de,ee.e)),ie!==ee.t&&(ee.t=r(L,"fg",ie,ee.t)),ee},{e:void 0,t:void 0}),L}}),null),H((L)=>r(U,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,L)),P})()})]}}),X(re,{get when(){return o()==="done"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Worktree Created")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.success,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Branch")),V(K,s),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Path")),V(K,p),H((L)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Focus")),V(K,a),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),P=B("\u2713 ");return f(E,P),V(E,y,null),H((U)=>r(E,"fg",g.text.success,U)),E})()]}}),X(re,{get when(){return o()==="error"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Error")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.error,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("text");return f(E,B("\u2717 Failed")),H((P)=>r(E,"fg",g.text.error,P)),E})(),(()=>{var E=l("box"),P=l("text");return f(E,P),r(E,"height",1),r(P,"x",1),r(P,"y",0),V(P,()=>y().slice(0,Math.max(ke()-3,10))),H((U)=>{var K=ke(),L=g.bg.elevated,ee=g.text.primary;return K!==U.e&&(U.e=r(E,"width",K,U.e)),L!==U.t&&(U.t=r(E,"backgroundColor",L,U.t)),ee!==U.a&&(U.a=r(P,"fg",ee,U.a)),U},{e:void 0,t:void 0,a:void 0}),E})(),(()=>{var E=l("text");return f(E,B("Press Enter or Escape to try again")),H((P)=>r(E,"fg",g.text.secondary,P)),E})()]}})]}})}var Bl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();Ke();qe();vo();te();cs();yt();ko()});import{basename as Sp}from"path";function Vl(){let e=st(),t=gt(),n=rt(),[o,i]=ue(!1),[s,c]=ue(""),[a,u]=ue(!1),h=()=>{let y=t.worktrees()??[],C=e.selectedWorktreePath();if(C){let k=y.find((F)=>F.path===C);if(k)return k}return y[e.selectedWorktreeIndex()]},m=()=>{e.setShowRemove(!1),i(!1),c(""),u(!1)},p=async(y)=>{let C=h();if(!C){m();return}if(!y){if(await se.isDirty(C.path)){c("Worktree has changes. Press Enter to force remove."),u(!0);return}}i(!0),c("Removing...");try{let k=Ae(),F=Sp(C.repoPath);await ro(k,{worktreePath:C.path,mainRepoPath:C.repoPath,repoName:F,branch:C.branch,force:y},{onStepStart:(G)=>{if(G===Ve.postRemove)c("Running postRemove hooks...");else if(G===Ve.monorepoHooks)c("Running monorepo hooks...");else if(G===Ve.session)c("Killing session...");else if(G===Ve.worktree)c("Removing worktree...")}}),c("Removed successfully!"),to.success("Worktree removed");let x=t.worktrees()??[],S=e.selectedWorktreeIndex(),O=x[S-1]??x[S+1]??null;if(S>0)e.setSelectedWorktreeIndex(S-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(O?.path??null),t.refetch(),setTimeout(m,1000)}catch(k){let F=k.message;c(`Failed: ${F}`),i(!1),to.error(`Failed: ${F}`)}};it(async(y)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let C=y.name;if(C==="escape"){m();return}if(a()&&(C==="return"||C==="enter")){u(!1),await p(!0);return}if((C==="return"||C==="enter")&&!o())await p(!1)});let w=()=>h(),A=()=>Math.max(50,Math.min(80,n().width-4)),W=()=>10;return X(sn,{get width(){return A()},get height(){return W()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var y=l("box");return r(y,"flexDirection","column"),V(y,X(re,{get when(){return Le(()=>!o())()&&!a()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"height",1),r(C,"flexDirection","row"),r(C,"gap",2),f(k,B("[Enter] Confirm")),f(F,B("[Esc] Cancel")),H((x)=>{var S=g.text.secondary,O=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}}),null),V(y,X(re,{get when(){return a()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"height",1),r(C,"flexDirection","row"),r(C,"gap",2),f(k,B("[Enter] Force remove")),f(F,B("[Esc] Cancel")),H((x)=>{var S=g.text.secondary,O=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}}),null),y})()},get children(){return[X(re,{get when(){return!!w()},get children(){return[(()=>{var y=l("box"),C=l("box"),k=l("text"),F=l("text");return f(y,C),f(y,F),r(y,"height",1),r(y,"flexDirection","row"),f(C,k),r(C,"width",10),r(C,"height",1),f(k,B("Branch")),V(F,()=>w()?.branch??"(detached)"),H((x)=>{var S=g.text.secondary,O=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),y})(),(()=>{var y=l("box"),C=l("box"),k=l("text"),F=l("text");return f(y,C),f(y,F),r(y,"height",1),r(y,"flexDirection","row"),f(C,k),r(C,"width",10),r(C,"height",1),f(k,B("Path")),V(F,()=>w()?.path),H((x)=>{var S=g.text.secondary,O=g.text.primary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),y})(),X(re,{get when(){return a()},get children(){var y=l("text");return V(y,s),H((C)=>r(y,"fg",g.text.warning,C)),y}}),X(re,{get when(){return o()},get children(){var y=l("text");return V(y,s),H((C)=>r(y,"fg",s().startsWith("Failed")?g.text.error:g.text.success,C)),y}})]}}),X(re,{get when(){return!w()},get children(){var y=l("text");return f(y,B("No worktree selected.")),H((C)=>r(y,"fg",g.text.secondary,C)),y}})]}})}var Hl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();Ke();qe();vo();te();cs();yt();ko()});import{basename as Cp}from"path";function Kl(e){let t=st(),n=gt(),o=on(),[i,s]=ue("confirming"),[c,a]=ue(""),[u,h]=ue(0),m=()=>{let W=n.worktrees()??[],y=t.selectedWorktrees(),C=[];for(let k of y){let F=W.find((x)=>x.path===k);if(F&&!F.isMain)C.push({branch:F.branch??"(detached)",path:F.path,repoPath:F.repoPath})}return C},p=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},w=async()=>{let W=m();if(W.length===0){p();return}s("executing"),h(0);let y=Ae(),C=[],k=[],F=0;for(let x=0;x<W.length;x++){let S=W[x];a(`Removing ${S.branch} (${x+1}/${W.length})...`),h(x);try{if(await se.isDirty(S.path)){k.push(S.branch);continue}let G=Cp(S.repoPath);await ro(y,{worktreePath:S.path,mainRepoPath:S.repoPath,repoName:G,branch:S.branch==="(detached)"?null:S.branch,force:!1}),F++}catch(O){C.push(`${S.branch}: ${O.message}`)}}if(dt(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),C.length>0){s("error");let x=[`Failed: ${C.join("; ")}`];if(k.length>0)x.push(`Skipped ${k.length} dirty worktree(s)`);a(x.join(". ")),o.addToast({message:`Failed to remove ${C.length} worktree(s)`,type:"error"}),setTimeout(p,3000)}else if(k.length>0)s("done"),a(`Removed ${F}, skipped ${k.length} dirty: ${k.join(", ")}`),o.addToast({message:`Removed ${F}, skipped ${k.length} dirty`,type:"warning"}),setTimeout(p,2000);else s("done"),a(`Removed ${W.length} worktree(s) successfully!`),o.addToast({message:`Removed ${W.length} worktrees`,type:"success"}),setTimeout(p,1500)};it(async(W)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let y=W.name;if(i()==="executing")return;if(y==="escape"){p();return}if((y==="return"||y==="enter")&&i()==="confirming")await w()});let A=()=>m().length;return(()=>{var W=l("box"),y=l("box"),C=l("box"),k=l("text"),F=l("box"),x=l("text"),S=l("box");return f(W,y),r(W,"x",0),r(W,"y",0),f(y,C),f(y,F),f(y,S),r(y,"x",2),r(y,"y",1),r(y,"flexDirection","column"),f(C,k),r(C,"height",1),f(k,B("Bulk Delete Worktrees")),r(k,"x",0),r(k,"y",0),f(F,x),r(F,"height",1),r(x,"x",0),r(x,"y",0),V(x,()=>"\u2500".repeat(Math.max(e.w-5,10))),r(S,"height",1),V(y,X(re,{get when(){return i()==="confirming"},get children(){return[(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,()=>`Delete ${A()} worktree(s)?`),H((I)=>r(G,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box");return r(O,"height",1),O})(),X(nt,{get each(){return m().slice(0,Math.max(e.h-10,5))},children:(O)=>(()=>{var G=l("box"),I=l("text");return f(G,I),r(G,"height",1),r(I,"x",2),r(I,"y",0),V(I,()=>`\u2022 ${O.branch}`),H((z)=>r(I,"fg",g.text.accent,z)),G})()}),X(re,{get when(){return A()>Math.max(e.h-10,5)},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",2),r(G,"y",0),V(G,()=>`... and ${A()-Math.max(e.h-10,5)} more`),H((I)=>r(G,"fg",g.text.secondary,I)),O}}),(()=>{var O=l("box");return r(O,"height",1),O})(),(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),f(G,B("Enter:delete all Esc:cancel")),r(G,"x",0),r(G,"y",0),H((I)=>r(G,"fg",g.text.secondary,I)),O})()]}}),null),V(y,X(re,{get when(){return i()==="executing"},get children(){return[(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,()=>`Progress: ${u()+1}/${A()}`),H((I)=>r(G,"fg",g.text.secondary,I)),O})()]}}),null),V(y,X(re,{get when(){return i()==="done"},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.success,I)),O}}),null),V(y,X(re,{get when(){return i()==="error"},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.error,I)),O}}),null),H((O)=>{var{w:G,h:I}=e,z=g.bg.base,Z=e.w-3,T=e.h-2,J=g.bg.base,q=g.text.error,Y=g.border.subtle;return G!==O.e&&(O.e=r(W,"width",G,O.e)),I!==O.t&&(O.t=r(W,"height",I,O.t)),z!==O.a&&(O.a=r(W,"backgroundColor",z,O.a)),Z!==O.o&&(O.o=r(y,"width",Z,O.o)),T!==O.i&&(O.i=r(y,"height",T,O.i)),J!==O.n&&(O.n=r(y,"backgroundColor",J,O.n)),q!==O.s&&(O.s=r(k,"fg",q,O.s)),Y!==O.h&&(O.h=r(x,"fg",Y,O.h)),O},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),W})()}var Gl=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();no();hn();Ke();qe();vo();te();yt()});import{decodePasteBytes as Rp}from"@opentui/core";import{spawnSync as Op}from"child_process";function wn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function jp(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function St(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function Cs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function Lp(e){let t=[];if(!e)return t;if(t.push({key:"top.version",kind:"field",label:"version",value:String(e.version),rawValue:e.version,path:["version"],editKind:null,depth:0}),t.push({key:"top.theme",kind:"field",label:"theme",value:e.theme??"(default: opencode)",rawValue:e.theme,path:["theme"],editKind:"theme",depth:0}),e.activeProfile!==void 0||e.profiles&&Object.keys(e.profiles).length>0)t.push({key:"top.activeProfile",kind:"field",label:"activeProfile",value:e.activeProfile??"(none)",rawValue:e.activeProfile,path:["activeProfile"],editKind:null,depth:0});t.push({key:"sp.top",kind:"spacer",label:"",depth:0}),t.push({key:"sec.defaults",kind:"section",label:"Defaults",depth:0});let n=e.defaults??{};if(t.push({key:"d.worktreeDir",kind:"field",label:"worktreeDir",value:n.worktreeDir??"(not set)",rawValue:n.worktreeDir,path:["defaults","worktreeDir"],editKind:"string",depth:1,suggestions:ys}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:St(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:Qr}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:St(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:Nr}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:St(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:Ss}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:St(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:$r}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:Cs(n.autoUpstream),rawValue:n.autoUpstream,path:["defaults","autoUpstream"],editKind:"boolean",depth:1}),n.sharedDeps)t.push({key:"d.sharedDeps.header",kind:"section",label:"sharedDeps",depth:1}),t.push({key:"d.sharedDeps.strategy",kind:"field",label:"strategy",value:n.sharedDeps.strategy??"(not set)",rawValue:n.sharedDeps.strategy,path:["defaults","sharedDeps","strategy"],editKind:"enum",depth:2,suggestions:Pp}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:St(n.sharedDeps.paths),rawValue:n.sharedDeps.paths,path:["defaults","sharedDeps","paths"],editKind:"strArray",depth:2,suggestions:Ap}),t.push({key:"d.sharedDeps.invalidateOn",kind:"field",label:"invalidateOn",value:St(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:Wp});let o=e.workspaces??[];if(o.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${o.length})`,depth:0}),o.forEach((s,c)=>{let a=s.path.split("/").pop()||s.path;t.push({key:`w${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`w${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["workspaces",c,"path"],editKind:null,depth:2}),t.push({key:`w${c}.depth`,kind:"field",label:"depth",value:s.depth===void 0?"(default: 1)":String(s.depth),rawValue:s.depth,path:["workspaces",c,"depth"],editKind:null,depth:2}),t.push({key:`w${c}.exclude`,kind:"field",label:"exclude",value:St(s.exclude),rawValue:s.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[xn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let u=s.defaults;if(u)t.push({key:`w${c}.defaults.header`,kind:"section",label:"defaults",depth:2}),t.push({key:`w${c}.defaults.worktreeDir`,kind:"field",label:"worktreeDir",value:u.worktreeDir??"(inherits)",rawValue:u.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:ys}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:St(u.copyFiles),rawValue:u.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:Qr}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:St(u.linkFiles),rawValue:u.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:Nr}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:St(u.postCreate),rawValue:u.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:Ss}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:St(u.postRemove),rawValue:u.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:$r}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:Cs(u.autoUpstream),rawValue:u.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<o.length-1)t.push({key:`sp.w${c}`,kind:"spacer",label:"",depth:0})});let i=e.repos??[];if(t.push({key:"sp.repos",kind:"spacer",label:"",depth:0}),t.push({key:"sec.repos",kind:"section",label:`Repos (${i.length})`,depth:0}),i.length===0)t.push({key:"repos.empty",kind:"field",label:"(none)",value:"add repos via 'e' to edit config file",rawValue:null,editKind:null,depth:1});if(i.forEach((s,c)=>{let a=s.path.split("/").pop()??s.path;if(t.push({key:`r${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`r${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["repos",c,"path"],editKind:null,depth:2}),t.push({key:`r${c}.worktreeDir`,kind:"field",label:"worktreeDir",value:s.worktreeDir??"(inherits)",rawValue:s.worktreeDir,path:["repos",c,"worktreeDir"],editKind:"string",depth:2,suggestions:ys}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:St(s.copyFiles),rawValue:s.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:Qr}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:St(s.linkFiles),rawValue:s.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:Nr}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:St(s.postCreate),rawValue:s.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:Ss}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:St(s.postRemove),rawValue:s.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:$r}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:Cs(s.autoUpstream),rawValue:s.autoUpstream,path:["repos",c,"autoUpstream"],editKind:"boolean",depth:2}),s.monorepo){t.push({key:`r${c}.mr.header`,kind:"section",label:"monorepo",depth:2}),t.push({key:`r${c}.mr.autoDetect`,kind:"field",label:"autoDetect",value:s.monorepo.autoDetect===void 0?"(not set)":String(s.monorepo.autoDetect),rawValue:s.monorepo.autoDetect,path:["repos",c,"monorepo","autoDetect"],editKind:"boolean",depth:3}),t.push({key:`r${c}.mr.extraPatterns`,kind:"field",label:"extraPatterns",value:wn(s.monorepo.extraPatterns),rawValue:s.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:Ep});let u=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${u.length})`,depth:3}),u.forEach((h,m)=>{t.push({key:`r${c}.h${m}.header`,kind:"section",label:`[${m}] ${h.glob}`,depth:4}),t.push({key:`r${c}.h${m}.glob`,kind:"field",label:"glob",value:h.glob,rawValue:h.glob,path:["repos",c,"monorepo","hooks",m,"glob"],editKind:"string",depth:5,suggestions:Fp}),t.push({key:`r${c}.h${m}.copyFiles`,kind:"field",label:"copyFiles",value:wn(h.copyFiles),rawValue:h.copyFiles,path:["repos",c,"monorepo","hooks",m,"copyFiles"],editKind:"strArray",depth:5,suggestions:Qr}),t.push({key:`r${c}.h${m}.linkFiles`,kind:"field",label:"linkFiles",value:wn(h.linkFiles),rawValue:h.linkFiles,path:["repos",c,"monorepo","hooks",m,"linkFiles"],editKind:"strArray",depth:5,suggestions:Nr}),t.push({key:`r${c}.h${m}.postCreate`,kind:"field",label:"postCreate",value:wn(h.postCreate),rawValue:h.postCreate,path:["repos",c,"monorepo","hooks",m,"postCreate"],editKind:"strArray",depth:5,suggestions:Dp}),t.push({key:`r${c}.h${m}.postRemove`,kind:"field",label:"postRemove",value:wn(h.postRemove),rawValue:h.postRemove,path:["repos",c,"monorepo","hooks",m,"postRemove"],editKind:"strArray",depth:5,suggestions:$r})})}if(c<i.length-1)t.push({key:`sp.r${c}`,kind:"spacer",label:"",depth:0})}),e.templates&&Object.keys(e.templates).length>0){t.push({key:"sp.templates",kind:"spacer",label:"",depth:0}),t.push({key:"sec.templates",kind:"section",label:`Templates (${Object.keys(e.templates).length})`,depth:0});for(let[s,c]of Object.entries(e.templates)){if(t.push({key:`t.${s}.header`,kind:"section",label:s,depth:1}),c.base!==void 0)t.push({key:`t.${s}.base`,kind:"field",label:"base",value:c.base,rawValue:c.base,path:["templates",s,"base"],editKind:"string",depth:2});if(c.worktreeDir!==void 0)t.push({key:`t.${s}.worktreeDir`,kind:"field",label:"worktreeDir",value:c.worktreeDir,rawValue:c.worktreeDir,path:["templates",s,"worktreeDir"],editKind:"string",depth:2});if(c.copyFiles!==void 0)t.push({key:`t.${s}.copyFiles`,kind:"field",label:"copyFiles",value:wn(c.copyFiles),rawValue:c.copyFiles,path:["templates",s,"copyFiles"],editKind:"strArray",depth:2});if(c.linkFiles!==void 0)t.push({key:`t.${s}.linkFiles`,kind:"field",label:"linkFiles",value:wn(c.linkFiles),rawValue:c.linkFiles,path:["templates",s,"linkFiles"],editKind:"strArray",depth:2});if(c.postCreate!==void 0)t.push({key:`t.${s}.postCreate`,kind:"field",label:"postCreate",value:wn(c.postCreate),rawValue:c.postCreate,path:["templates",s,"postCreate"],editKind:"strArray",depth:2});if(c.postRemove!==void 0)t.push({key:`t.${s}.postRemove`,kind:"field",label:"postRemove",value:wn(c.postRemove),rawValue:c.postRemove,path:["templates",s,"postRemove"],editKind:"strArray",depth:2});if(c.autoUpstream!==void 0)t.push({key:`t.${s}.autoUpstream`,kind:"field",label:"autoUpstream",value:String(c.autoUpstream),rawValue:c.autoUpstream,path:["templates",s,"autoUpstream"],editKind:"boolean",depth:2})}}if(e.lifecycle){if(t.push({key:"sp.lifecycle",kind:"spacer",label:"",depth:0}),t.push({key:"sec.lifecycle",kind:"section",label:"Lifecycle",depth:0}),e.lifecycle.autoCleanMerged!==void 0)t.push({key:"lc.autoCleanMerged",kind:"field",label:"autoCleanMerged",value:String(e.lifecycle.autoCleanMerged),rawValue:e.lifecycle.autoCleanMerged,path:["lifecycle","autoCleanMerged"],editKind:"boolean",depth:1});if(e.lifecycle.staleAfterDays!==void 0)t.push({key:"lc.staleAfterDays",kind:"field",label:"staleAfterDays",value:String(e.lifecycle.staleAfterDays),rawValue:e.lifecycle.staleAfterDays,path:["lifecycle","staleAfterDays"],editKind:null,depth:1});if(e.lifecycle.maxWorktrees!==void 0)t.push({key:"lc.maxWorktrees",kind:"field",label:"maxWorktrees",value:String(e.lifecycle.maxWorktrees),rawValue:e.lifecycle.maxWorktrees,path:["lifecycle","maxWorktrees"],editKind:null,depth:1})}if(e.sessions){t.push({key:"sp.sessions",kind:"spacer",label:"",depth:0}),t.push({key:"sec.sessions",kind:"section",label:"Sessions",depth:0});let s=e.sessions;if(s.enabled!==void 0)t.push({key:"s.enabled",kind:"field",label:"enabled",value:String(s.enabled),rawValue:s.enabled,path:["sessions","enabled"],editKind:"boolean",depth:1});if(s.autoCreate!==void 0)t.push({key:"s.autoCreate",kind:"field",label:"autoCreate",value:String(s.autoCreate),rawValue:s.autoCreate,path:["sessions","autoCreate"],editKind:"boolean",depth:1});if(s.autoKill!==void 0)t.push({key:"s.autoKill",kind:"field",label:"autoKill",value:String(s.autoKill),rawValue:s.autoKill,path:["sessions","autoKill"],editKind:"boolean",depth:1});if(s.prefix!==void 0)t.push({key:"s.prefix",kind:"field",label:"prefix",value:s.prefix,rawValue:s.prefix,path:["sessions","prefix"],editKind:"string",depth:1,suggestions:Mp});if(s.defaultLayout!==void 0)t.push({key:"s.defaultLayout",kind:"field",label:"defaultLayout",value:s.defaultLayout,rawValue:s.defaultLayout,path:["sessions","defaultLayout"],editKind:"string",depth:1});if(s.layouts&&Object.keys(s.layouts).length>0){t.push({key:"s.layouts.header",kind:"section",label:`layouts (${Object.keys(s.layouts).length})`,depth:1});for(let[c,a]of Object.entries(s.layouts))t.push({key:`s.layouts.${c}`,kind:"field",label:c,value:`${a.windows?.length??0} window(s)`,rawValue:a,path:["sessions","layouts",c],editKind:null,depth:2})}}if(e.profiles&&Object.keys(e.profiles).length>0){t.push({key:"sp.profiles",kind:"spacer",label:"",depth:0}),t.push({key:"sec.profiles",kind:"section",label:`Profiles (${Object.keys(e.profiles).length})`,depth:0});for(let s of Object.keys(e.profiles)){let c=e.activeProfile===s;t.push({key:`p.${s}`,kind:"field",label:s,value:c?"active":"",rawValue:s,path:["profiles",s],editKind:null,depth:1})}}return t}function Ul(){let e=st(),t=rt(),n=Ct(),o=()=>{try{return{cfg:Li(),error:""}}catch(b){return{cfg:null,error:b.message}}},i=o(),[s,c]=ue(i.cfg),[a,u]=ue(i.error),[h,m]=ue(""),[p,w]=ue("info"),[A,W]=ue(0),[y,C]=ue(0),[k,F]=ue(!1),[x,S]=ue(null),[O,G]=ue(null),[I,z]=ue(""),[Z,T]=ue(!1),[J,q]=ue(0),[Y,ne]=ue([]),[he,_]=ue(-1),[me,ke]=ue(0),E=Xe(()=>Lp(s())),P=Xe(()=>{let b=[],M=E();for(let D=0;D<M.length;D++){let v=M[D];if(v.kind==="field"&&v.editKind!==null)b.push(D)}return b}),U=()=>{let b=P();if(b.length===0)return-1;let M=Math.max(0,Math.min(A(),b.length-1));return b[M]??-1},K=()=>{let b=U();if(b<0)return null;return E()[b]??null},L=(b,M="info")=>{m(b),w(M)},ee=()=>{let b=o();c(b.cfg),u(b.error)},de=()=>{let b=K();if(!b||!b.editKind||!b.path){L("Field is read-only (press 'e' to edit the file directly)","info");return}let M=b.suggestions??[];if(S(b.editKind),G(b.path),ne(M),e.setInputFocused(!0),b.editKind==="string"){let D=typeof b.rawValue==="string"?b.rawValue:"";z(D),_(M.indexOf(D))}else if(b.editKind==="strArray"){let D=Array.isArray(b.rawValue)?b.rawValue:[],v=JSON.stringify(D);z(v),_(M.indexOf(v))}else if(b.editKind==="boolean")T(b.rawValue===!0),_(-1);else if(b.editKind==="theme"){let D=typeof b.rawValue==="string"?b.rawValue:"opencode",v=At.indexOf(D);q(v>=0?v:0),_(-1)}else if(b.editKind==="enum"){let D=b.suggestions??[],v=typeof b.rawValue==="string"?b.rawValue:"",$=D.indexOf(v);ke($>=0?$:0),_(-1)}F(!0)},ie=()=>{F(!1),G(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)},we=(b)=>{let M=Y();if(M.length===0)return;let D=(he()+b+M.length)%M.length;_(D);let v=M[D]??"",$=x();if($==="string"||$==="strArray")z(v)},Oe=()=>{let b=O(),M=x();if(!b||!M){ie();return}let D;if(M==="string"){let v=I();D=v.length===0?void 0:v}else if(M==="strArray"){let v=I().trim();if(v.length===0)D=[];else try{let $=JSON.parse(v);if(!Array.isArray($)||$.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");D=$}catch($){L(`Invalid JSON: ${$.message}`,"error");return}}else if(M==="boolean")D=Z();else if(M==="theme")D=At[J()];else if(M==="enum")D=Y()[me()];try{Kt();let v=Li();ra(v,b,D);let $=$n(v);if($.length>0){let oe=$[0];L(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(_n(n,`${JSON.stringify(v,null,2)}
22
- `),M==="theme"&&typeof D==="string"&&At.includes(D))wo(D);ee(),L("Saved","success"),F(!1),G(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)}catch(v){L(`Save failed: ${v.message}`,"error")}};it((b)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let M=b.name;if(k()){if(M==="escape"){ie();return}let D=x();if(D==="string"||D==="strArray"){if(M==="tab"){we(b.shift?-1:1);return}if(M==="return"||M==="enter")Oe();return}if(D==="boolean"){if(M==="space"||M==="tab"||M==="left"||M==="right"||M==="h"||M==="l"){T((v)=>!v);return}if(M==="return"||M==="enter")Oe();return}if(D==="theme"){if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&b.shift){q((v)=>(v-1+At.length)%At.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){q((v)=>(v+1)%At.length);return}if(M==="return"||M==="enter")Oe();return}if(D==="enum"){let v=Y();if(v.length===0)return;if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&b.shift){ke(($)=>($-1+v.length)%v.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){ke(($)=>($+1)%v.length);return}if(M==="return"||M==="enter")Oe();return}return}if(e.inputFocused())return;if(M==="j"||M==="down"){W((D)=>Math.min(D+1,P().length-1));return}if(M==="k"||M==="up"){W((D)=>Math.max(D-1,0));return}if(M==="g"){W(0);return}if(M==="G"){W(Math.max(P().length-1,0));return}if(M==="return"||M==="enter"){de();return}if(M==="e"){let D=process.env.EDITOR??process.env.VISUAL??"vi";Kt(),Op(D,[n],{stdio:"inherit"}),ee(),L("Config reloaded","info");return}if(M==="r"){ee(),L("Reloaded","info");return}if(M==="i"){Kt(),ee(),L("Initialized","info");return}}),go((b)=>{if(!k())return;let M=x();if(M!=="string"&&M!=="strArray")return;let D=Rp(b.bytes).replace(/\r?\n/g,"");if(!D)return;z((v)=>v+D)});let pe=()=>Math.max(t().height-10,5);Pt(en([A,E],()=>{let b=U();if(b<0)return;let M=pe();if(b<y())C(b);else if(b>=y()+M)C(b-M+1)})),ct(()=>{e.setInputFocused(!1)});let Ee=Xe(()=>{let b=y();return E().slice(b,b+pe()).map((M,D)=>({row:M,globalIdx:b+D}))}),Fe=()=>P().length,We=()=>{let b=E().length;if(b<=pe())return"";let M=Math.min(y()+pe(),b);return`${y()+1}-${M}/${b}`},j=()=>t().width,d=()=>Math.max(j()-4-kp-4,20);return(()=>{var b=l("box"),M=l("box"),D=l("box"),v=l("text"),$=l("b"),oe=l("box"),be=l("text"),le=l("text"),Ie=l("box");return f(b,M),f(b,Ie),r(b,"x",0),r(b,"y",0),r(b,"width","100%"),r(b,"height","100%"),r(b,"flexDirection","column"),f(M,D),f(M,oe),r(M,"width","100%"),r(M,"height","100%"),r(M,"flexDirection","column"),r(M,"paddingX",2),r(M,"paddingY",1),f(D,v),r(D,"height",1),r(D,"flexDirection","row"),f(v,$),f($,B("Configuration")),V(D,X(re,{get when(){return!!We()},get children(){var N=l("text"),ae=B(" ");return f(N,ae),V(N,()=>` \xB7 ${We()}`,null),H((ce)=>r(N,"fg",g.text.secondary,ce)),N}}),null),V(D,X(re,{get when(){return Fe()>0},get children(){var N=l("text"),ae=B(" ");return f(N,ae),V(N,()=>` \xB7 ${A()+1}/${Fe()}`,null),H((ce)=>r(N,"fg",g.text.secondary,ce)),N}}),null),f(oe,be),f(oe,le),r(oe,"height",1),r(oe,"flexDirection","row"),r(oe,"gap",1),f(be,B("Path:")),V(le,n),V(M,X(re,{get when(){return!!a()},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"height",1),r(N,"flexDirection","row"),r(N,"gap",1),f(ae,B("Load error:")),V(ce,a),H((Q)=>{var Re=g.text.error,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),null),V(M,X(re,{get when(){return Le(()=>!s())()&&!a()},get children(){var N=l("box"),ae=l("text"),ce=l("box"),Q=l("text"),Re=l("text"),Ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","column"),r(N,"gap",1),f(ae,B("No config file found.")),f(ce,Q),f(ce,Re),f(ce,Ce),r(ce,"flexDirection","row"),r(ce,"gap",1),f(Q,B("Press")),f(Re,B("i")),f(Ce,B("to initialize with defaults.")),H((Te)=>{var Ge=g.text.warning,Qe=g.text.secondary,ht=g.text.accent,Pe=g.text.secondary;return Ge!==Te.e&&(Te.e=r(ae,"fg",Ge,Te.e)),Qe!==Te.t&&(Te.t=r(Q,"fg",Qe,Te.t)),ht!==Te.a&&(Te.a=r(Re,"fg",ht,Te.a)),Pe!==Te.o&&(Te.o=r(Ce,"fg",Pe,Te.o)),Te},{e:void 0,t:void 0,a:void 0,o:void 0}),N}}),null),V(M,X(re,{get when(){return!!s()},get children(){return[(()=>{var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),V(ae,()=>"\u2500".repeat(Math.max(j()-34,10))),H((ce)=>r(ae,"fg",g.border.subtle,ce)),N})(),(()=>{var N=l("box");return r(N,"flexDirection","column"),V(N,X(nt,{get each(){return Ee()},children:(ae)=>{let ce=ae.row,Q=()=>ae.globalIdx===U(),Re=()=>k()&&Q(),Ce=" ".repeat(ce.depth*vp);if(ce.kind==="spacer")return(()=>{var Ge=l("box"),Qe=l("text");return f(Ge,Qe),r(Ge,"height",1),f(Qe,B(" ")),H((ht)=>r(Qe,"fg",g.text.secondary,ht)),Ge})();if(ce.kind==="section")return(()=>{var Ge=l("box"),Qe=l("text");return f(Ge,Qe),r(Ge,"height",1),r(Ge,"flexDirection","row"),V(Qe,Ce,null),V(Qe,()=>ce.label,null),H((ht)=>r(Qe,"fg",g.text.accent,ht)),Ge})();let Te=()=>{let Ge=Q()?"\u25B8 ":" ";return`${Ce}${Ge}${ce.label}`};return(()=>{var Ge=l("box"),Qe=l("box"),ht=l("text");return f(Ge,Qe),r(Ge,"height",1),r(Ge,"flexDirection","row"),f(Qe,ht),r(Qe,"width",30),r(Qe,"height",1),V(ht,Te),V(Ge,X(re,{get when(){return Re()},get fallback(){return(()=>{var Pe=l("text");return V(Pe,()=>ce.value??""),H((Be)=>r(Pe,"fg",jp(ce.value)?g.text.secondary:g.text.primary,Be)),Pe})()},get children(){return[X(re,{get when(){return x()==="string"||x()==="strArray"},get children(){var Pe=l("input");return r(Pe,"onInput",(Be)=>z(Be)),r(Pe,"focused",!0),H((Be)=>{var yn=I(),Wo=d(),jo=g.bg.elevated,Lo=g.text.accent,Io=x()==="strArray"?'["a", "b"]':"";return yn!==Be.e&&(Be.e=r(Pe,"value",yn,Be.e)),Wo!==Be.t&&(Be.t=r(Pe,"width",Wo,Be.t)),jo!==Be.a&&(Be.a=r(Pe,"backgroundColor",jo,Be.a)),Lo!==Be.o&&(Be.o=r(Pe,"cursorColor",Lo,Be.o)),Io!==Be.i&&(Be.i=r(Pe,"placeholder",Io,Be.i)),Be},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Pe}}),X(re,{get when(){return x()==="boolean"},get children(){var Pe=l("text");return V(Pe,()=>Z()?"[x] true":"[ ] false"),H((Be)=>r(Pe,"fg",Z()?g.text.success:g.text.secondary,Be)),Pe}}),X(re,{get when(){return x()==="theme"},get children(){var Pe=l("text");return V(Pe,()=>`\u25C2 ${Br[At[J()]??"opencode"]} (${At[J()]??"opencode"}) \u25B8`),H((Be)=>r(Pe,"fg",g.text.accent,Be)),Pe}}),X(re,{get when(){return x()==="enum"},get children(){var Pe=l("text");return V(Pe,()=>`\u25C2 ${Y()[me()]??""} \u25B8`),H((Be)=>r(Pe,"fg",g.text.accent,Be)),Pe}})]}}),null),H((Pe)=>{var Be=Q()?g.select.focusedBg:void 0,yn=Q()?g.text.accent:g.text.secondary;return Be!==Pe.e&&(Pe.e=r(Ge,"backgroundColor",Be,Pe.e)),yn!==Pe.t&&(Pe.t=r(ht,"fg",yn,Pe.t)),Pe},{e:void 0,t:void 0}),Ge})()}})),H((ae)=>r(N,"height",pe(),ae)),N})()]}}),null),V(M,X(re,{get when(){return!!h()},get children(){var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),V(ae,h),H((ce)=>r(ae,"fg",p()==="error"?g.text.error:p()==="success"?g.text.success:g.text.accent,ce)),N}}),null),r(Ie,"width","100%"),r(Ie,"height",1),r(Ie,"flexDirection","row"),r(Ie,"gap",2),V(Ie,X(re,{get when(){return!k()},get children(){return[(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("j/k")),f(ce,B(":nav")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("g/G")),f(ce,B(":top/bot")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":edit")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("e")),f(ce,B(":$EDITOR")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("r")),f(ce,B(":reload")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("i")),f(ce,B(":init")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})()]}}),null),V(Ie,X(re,{get when(){return k()},get children(){return[(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":save")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Esc")),f(ce,B(":cancel")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),X(re,{get when(){return x()==="boolean"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Space/Tab")),f(ce,B(":toggle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="theme"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="enum"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="strArray"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("JSON")),f(ce,B(":array")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return Le(()=>x()==="string"||x()==="strArray")()&&Y().length>0},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab")),V(ce,()=>`:preset (${he()+1}/${Y().length})`),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="enum"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B(" ")),V(ce,()=>`(${me()+1}/${Y().length})`),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}})]}}),null),H((N)=>{var ae=g.bg.base,ce=g.bg.surface,Q=g.text.accent,Re=g.text.secondary,Ce=g.text.primary,Te=g.bg.base;return ae!==N.e&&(N.e=r(b,"backgroundColor",ae,N.e)),ce!==N.t&&(N.t=r(M,"backgroundColor",ce,N.t)),Q!==N.a&&(N.a=r(v,"fg",Q,N.a)),Re!==N.o&&(N.o=r(be,"fg",Re,N.o)),Ce!==N.i&&(N.i=r(le,"fg",Ce,N.i)),Te!==N.n&&(N.n=r(Ie,"backgroundColor",Te,N.n)),N},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),b})()}var vp=2,kp=30,ys,xn="[]",Qr,Nr,Ss,$r,Ep,Fp,Dp,Mp,Pp,Ap,Wp;var Tl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();qe();te();yt();ys=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],Qr=[xn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],Nr=[xn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],Ss=[xn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],$r=[xn,'["echo removed"]'],Ep=[xn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],Fp=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],Dp=[xn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],Mp=["copse","wt"],Pp=["hardlink","symlink","copy"],Ap=[xn,'["node_modules"]','["node_modules", ".next"]'],Wp=[xn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Fo,readdirSync as Ip,rmSync as Bp}from"fs";import{basename as Rs,dirname as Os,join as Vp,resolve as Eo}from"path";function Hp(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Jl(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ql(e){if(!Fo(Ct()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=Ae(),o=Eo(t.path),i=Rs(o);return[n.repos?.find((a)=>Eo(a.path)===o)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>Hp(a)).filter((a)=>!Os(a).includes("{")&&Rs(a).includes("{")).map((a)=>{let u=Rs(a),h=`^${Jl(u).replace(/\\\{repo\\\}/g,Jl(i)).replace(/\\\{branch\\\}/g,".+")}$`,m=new RegExp(h);return{path:Eo(Os(a)),matches:(p)=>m.test(p)}})}function Xl(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Eo(Os(n.path)));return[...t]}function zl(e,t,n,o){if(!Fo(e))return;let i=Ip(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(o&&!o(s.name))continue;let c=Eo(Vp(e,s.name));if(!t.has(c))n.add(c)}}function Yl(e){let t=new Set(e.map((i)=>Eo(i.path))),n=new Set,o=new Set;for(let i of ql(e))o.add(i.path),zl(i.path,t,n,i.matches);for(let i of Xl(e)){if(o.has(i))continue;zl(i,t,n)}return[...n]}function Kp(e){return ql(e).some((t)=>Fo(t.path))||Xl(e).some((t)=>Fo(t))}async function Gp(){let e=Bun.spawn(["git","--version"],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[t,n]=await Promise.all([new Response(e.stdout).text(),e.exited]);if(n!==0)return null;return t.trim().match(/git version (\d+\.\d+(?:\.\d+)?)/)?.[1]??null}async function Up(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await Gp()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof $o)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function Tp(){try{let n=(Ae().repos??[]).map((o)=>o.path).filter((o)=>!Fo(o));if(n.length>0)return{name:"Configuration",status:"warn",message:"missing repository paths",detail:n};return{name:"Configuration",status:"pass",message:"valid"}}catch(t){return{name:"Configuration",status:"fail",message:`Check failed: ${t.message}`}}}function Jp(e){let n=e.map((o)=>o.path).filter((o)=>!Fo(o));if(n.length>0)return{name:"Stale worktrees",status:"warn",message:"missing worktree paths",detail:n};return{name:"Stale worktrees",status:"pass",message:"none"}}function zp(e){try{let n=Yl(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:Kp(e)?"none":"no worktree directory"};return{name:"Orphaned directories",status:"warn",message:"orphaned worktree directories found",detail:n}}catch(n){return{name:"Orphaned directories",status:"fail",message:`Check failed: ${n.message}`}}}function qp(e){let n=e.filter((i)=>i.isLocked);if(n.length===0)return{name:"Worktree locks",status:"pass",message:"all clear"};return{name:"Worktree locks",status:"warn",message:"locked worktrees present",detail:n.map((i)=>{let s=i.branch??"detached";if(!i.lockReason)return`${s} - ${i.path} (potential stale lock: no reason)`;return`${s} - ${i.path} (reason: ${i.lockReason})`})}}function Xp(e){let n=e.filter((o)=>o.isDirty&&!o.isMain);if(n.length===0)return{name:"Dirty worktrees",status:"pass",message:"none"};return{name:"Dirty worktrees",status:"warn",message:"dirty non-main worktrees found",detail:n.map((o)=>`${o.branch??"detached"} - ${o.path}`)}}async function Do(e){let t=await se.list(e).catch(()=>[]),n=[await Up(),await Tp(),Jp(t),zp(t),qp(t),Xp(t)];return{checks:n,healthy:n.every((o)=>o.status==="pass")}}async function Yp(e){try{return await se.prune(e),{action:"Prune stale worktrees",success:!0}}catch(t){return{action:"Prune stale worktrees",success:!1,detail:t.message}}}async function Zp(e){let t=[];try{let n=Yl(await se.list(e).catch(()=>[]));for(let o of n)try{Bp(o,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:o})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${o}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Qp(e){let t=[];try{let o=(await se.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of o)try{await se.unlock(i.path,e),t.push({action:"Unlock stale lock",success:!0,detail:`${i.branch??"detached"} - ${i.path}`})}catch(s){t.push({action:"Unlock stale lock",success:!1,detail:`${i.path}: ${s.message}`})}}catch(n){t.push({action:"Fix stale locks",success:!1,detail:n.message})}return t}async function _r(e){let t=[];return t.push(await Yp(e)),t.push(...await Zp(e)),t.push(...await Qp(e)),t}var vs=ge(()=>{qe();Ke();Ut()});function Zl(){let e=st(),t=rt(),[n,o]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[u,h]=ue(!1),[m,p]=ue([]),w=async()=>{s(!0),a(""),p([]);try{let I=await Do();o(I)}catch(I){a(I.message)}s(!1)},A=async()=>{if(n()?.healthy)return;h(!0);try{let I=await _r();p(I);let z=await Do();o(z)}catch(I){a(I.message)}h(!1)};w(),it((I)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let z=I.name;if(z==="r")w();if(z==="f"&&!i()&&!u()&&!n()?.healthy)A()});let W=()=>t().width,y=()=>t().height,C=()=>Math.max(50,Math.min(80,W()-4)),k=()=>{let I=O()+G()+8+(G()>0?2:0);return Math.max(12,Math.min(I,y()-4))},F=()=>Math.max(C()-4,10),x=(I)=>{if(I==="pass")return"\u2713";if(I==="warn")return"\u26A0";return"\u2717"},S=(I)=>{if(I==="pass")return g.text.success;if(I==="warn")return g.text.warning;return g.text.error},O=()=>n()?.checks.length??0,G=()=>m().length;return X(sn,{get width(){return C()},get height(){return k()},get borderColor(){return Le(()=>!!n()?.healthy)()?g.text.success:Le(()=>!!n())()?g.text.warning:g.border.default},get backgroundColor(){return g.bg.surface},title:" Doctor ",get footer(){return[(()=>{var I=l("box"),z=l("text");return f(I,z),r(I,"height",1),V(z,()=>"\u2500".repeat(Math.max(F(),1))),H((Z)=>{var T=F(),J=g.border.subtle;return T!==Z.e&&(Z.e=r(I,"width",T,Z.e)),J!==Z.t&&(Z.t=r(z,"fg",J,Z.t)),Z},{e:void 0,t:void 0}),I})(),(()=>{var I=l("box"),z=l("text"),Z=l("text");return f(I,z),f(I,Z),r(I,"flexDirection","row"),r(I,"gap",2),f(z,B("r:recheck")),V(I,X(re,{get when(){return!n()?.healthy},get children(){var T=l("text");return f(T,B("f:fix")),H((J)=>r(T,"fg",g.text.secondary,J)),T}}),Z),f(Z,B("Esc:back")),H((T)=>{var J=g.text.secondary,q=g.text.secondary;return J!==T.e&&(T.e=r(z,"fg",J,T.e)),q!==T.t&&(T.t=r(Z,"fg",q,T.t)),T},{e:void 0,t:void 0}),I})()]},get children(){return[X(re,{get when(){return i()},get children(){return X(So,{label:"Running checks..."})}}),X(re,{get when(){return u()},get children(){var I=l("text");return f(I,B("Running auto-fix...")),H((z)=>r(I,"fg",g.text.accent,z)),I}}),X(re,{get when(){return Le(()=>!i()&&!u())()&&!!c()},get children(){var I=l("text"),z=B("Error: ");return f(I,z),V(I,c,null),H((Z)=>r(I,"fg",g.text.error,Z)),I}}),X(re,{get when(){return Le(()=>!i()&&!u()&&!c())()&&!!n()},get children(){return[(()=>{var I=l("text");return f(I,B("Health Checks")),H((z)=>r(I,"fg",g.text.accent,z)),I})(),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),X(nt,{get each(){return n().checks},children:(I)=>{return(()=>{var z=l("box"),Z=l("text"),T=l("text"),J=B(":"),q=l("text");return f(z,Z),f(z,T),f(z,q),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),V(Z,()=>x(I.status)),f(T,J),r(T,"x",2),r(T,"y",0),V(T,()=>I.name,J),r(q,"y",0),V(q,()=>I.message),H((Y)=>{var ne=S(I.status),he=g.text.primary,_=I.name.length+4,me=g.text.secondary;return ne!==Y.e&&(Y.e=r(Z,"fg",ne,Y.e)),he!==Y.t&&(Y.t=r(T,"fg",he,Y.t)),_!==Y.a&&(Y.a=r(q,"x",_,Y.a)),me!==Y.o&&(Y.o=r(q,"fg",me,Y.o)),Y},{e:void 0,t:void 0,a:void 0,o:void 0}),z})()}}),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),(()=>{var I=l("text");return V(I,(()=>{var z=Le(()=>!!n().healthy);return()=>z()?"\u2713 All checks passed":`${n().checks.filter((Z)=>Z.status==="fail").length} error(s), ${n().checks.filter((Z)=>Z.status==="warn").length} warning(s) found`})()),H((z)=>r(I,"fg",n().healthy?g.text.success:g.text.warning,z)),I})(),X(re,{get when(){return G()>0},get children(){return[(()=>{var I=l("text");return f(I,B("Fix Results")),H((z)=>r(I,"fg",g.text.accent,z)),I})(),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),X(nt,{get each(){return m()},children:(I)=>{return(()=>{var z=l("box"),Z=l("text"),T=l("text");return f(z,Z),f(z,T),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),V(Z,()=>I.success?"\u2713":"\u2717"),r(T,"x",2),r(T,"y",0),V(T,()=>I.action),V(z,X(re,{get when(){return!!I.detail},get children(){var J=l("text"),q=B("("),Y=B(")");return f(J,q),f(J,Y),r(J,"y",0),V(J,()=>I.detail,Y),H((ne)=>{var he=I.action.length+3,_=g.text.secondary;return he!==ne.e&&(ne.e=r(J,"x",he,ne.e)),_!==ne.t&&(ne.t=r(J,"fg",_,ne.t)),ne},{e:void 0,t:void 0}),J}}),null),H((J)=>{var q=I.success?g.text.success:g.text.error,Y=g.text.primary;return q!==J.e&&(J.e=r(Z,"fg",q,J.e)),Y!==J.t&&(J.t=r(T,"fg",Y,J.t)),J},{e:void 0,t:void 0}),z})()}})]}})]}})]}})}var Ql=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();vs();te();yt();ko();Jr()});var _l={};Ne(_l,{writePin:()=>Es,removePin:()=>Fs,readPin:()=>rr,listPinnedWorktrees:()=>Ds,isPinned:()=>In});import{readFileSync as Nl,writeFileSync as Np,unlinkSync as $p,mkdirSync as _p,existsSync as ks}from"fs";import{join as eg,dirname as $l}from"path";function or(e){return tn(e,"copse-pin")}function tg(e){let t=or(e),n=$l(t),o=eg(n,"HEAD"),i=Nl(o,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function Es(e,t){let n=or(e),o={branch:tg(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};_p($l(n),{recursive:!0}),Np(n,JSON.stringify(o),{encoding:"utf-8",mode:384})}function rr(e){let t=or(e);if(!ks(t))return null;return JSON.parse(Nl(t,"utf-8"))}function Fs(e){let t=or(e);if(!ks(t))return;$p(t)}function In(e){return ks(or(e))}function Ds(e){return e.filter((t)=>In(t.path))}var Mo=ge(()=>{Pn()});function ef(){let e=st(),t=gt(),n=()=>t.worktrees()??[],o=()=>e.selectedWorktreeIndex(),i=(m)=>{let p=Math.max(0,Math.min(m,Math.max(n().length-1,0))),w=n()[p];e.setSelectedWorktreeIndex(p),e.setSelectedWorktreePath(w?.path??null)},s=Xe(()=>{let m=n(),p=[],w=new Map;for(let y of m){let C=w.get(y.repoName);if(C)C.push(y);else w.set(y.repoName,[y])}let A=0,W=!0;for(let[y,C]of w){if(!W)p.push({type:"separator"});W=!1,p.push({type:"header",repoName:y});for(let k of C)p.push({type:"worktree",wt:k,flatIdx:A}),A++}return p}),c=()=>e.selectedWorktrees().size;it((m)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let p=m.name,w=n();if(p==="j"||p==="down")i(Math.min(o()+1,w.length-1));if(p==="k"||p==="up")i(Math.max(o()-1,0));if(p==="space"){let A=o(),W=w[A];if(W&&!W.isMain)e.toggleWorktreeSelection(W.path)}if(m.ctrl&&p==="a")e.selectAllNonMain(w.filter((A)=>!A.isMain).map((A)=>A.path))});let a=(m)=>{if(m.isLocked)return"\uD83D\uDD12";if(m.isDirty)return"\u25CF";return"\u2713"},u=(m)=>{if(m.isLocked)return g.text.warning;if(m.isDirty)return g.text.error;return g.text.success},h=(m,p)=>{let w=m.branch??"(detached)",A=Math.max(8,Ms-(p?9:7));return w.length>A?w.slice(0,A-1)+"\u2026":w};return(()=>{var m=l("box");return r(m,"x",0),r(m,"y",0),r(m,"width","100%"),r(m,"height","100%"),r(m,"flexDirection","column"),r(m,"paddingX",1),r(m,"paddingY",1),r(m,"gap",0),V(m,X(re,{get when(){return t.loading()},get children(){var p=l("text");return f(p,B("Loading...")),H((w)=>r(p,"fg",g.text.secondary,w)),p}}),null),V(m,X(re,{get when(){return!t.loading()},get children(){return[X(nt,{get each(){return s()},children:(p)=>{if(p.type==="header")return(()=>{var y=l("box"),C=l("text"),k=l("b");return f(y,C),r(y,"width","100%"),r(y,"height",1),f(C,k),V(k,()=>p.repoName),H((F)=>r(C,"fg",g.text.accent,F)),y})();if(p.type==="separator")return(()=>{var y=l("box"),C=l("text");return f(y,C),r(y,"width","100%"),r(y,"height",1),f(C,B("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),H((k)=>r(C,"fg",g.border.subtle,k)),y})();let w=p.wt,A=()=>p.flatIdx===o(),W=()=>e.selectedWorktrees().has(w.path);return(()=>{var y=l("box"),C=l("text"),k=l("text");return f(y,C),f(y,k),r(y,"width","100%"),r(y,"height",1),r(y,"paddingX",1),r(y,"onMouseDown",()=>i(p.flatIdx)),r(C,"x",0),r(C,"y",0),V(C,()=>a(w)),r(k,"x",2),r(k,"y",0),V(k,()=>h(w,!1)),V(y,X(re,{get when(){return W()},get children(){var F=l("text");return f(F,B("\u2713")),r(F,"x",23),r(F,"y",0),H((x)=>r(F,"fg",g.text.accent,x)),F}}),null),V(y,X(re,{get when(){return!!zt(w.path)},get children(){var F=l("text");return f(F,B("S")),r(F,"y",0),H((x)=>{var S=Ms-(W()?3:1),O=g.text.accent;return S!==x.e&&(x.e=r(F,"x",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),F}}),null),V(y,X(re,{get when(){return In(w.path)},get children(){var F=l("text");return f(F,B("P")),r(F,"y",0),H((x)=>{var S=Ms-(W()?5:3)+(zt(w.path)?0:2),O=g.text.warning;return S!==x.e&&(x.e=r(F,"x",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),F}}),null),H((F)=>{var x=A()?g.select.focusedBg:W()?g.bg.elevated:g.bg.surface,S=u(w),O=A()?g.tab.active:g.text.primary;return x!==F.e&&(F.e=r(y,"backgroundColor",x,F.e)),S!==F.t&&(F.t=r(C,"fg",S,F.t)),O!==F.a&&(F.a=r(k,"fg",O,F.a)),F},{e:void 0,t:void 0,a:void 0}),y})()}}),X(re,{get when(){return c()>0},get children(){var p=l("box"),w=l("text");return f(p,w),r(p,"width","100%"),r(p,"height",1),V(w,()=>`Selected: ${c()}`),H((A)=>r(w,"fg",g.text.accent,A)),p}})]}}),null),H((p)=>r(m,"backgroundColor",g.bg.surface,p)),m})()}var Ms=24;var tf=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();Mo();Wn()});import{decodePasteBytes as ng}from"@opentui/core";function nf(){let e=st(),t=gt(),n=rt(),[o,i]=ue(""),[s,c]=ue(0);fn(()=>{e.setInputFocused(!0)}),ct(()=>{e.setInputFocused(!1)});let a=()=>{let k=t.worktrees()??[],F=e.selectedWorktreePath();if(F){let x=k.find((S)=>S.path===F);if(x)return x}return k[e.selectedWorktreeIndex()]},u=()=>{let k=process.env.VISUAL||process.env.EDITOR;if(k)return k;let F=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let x of F)try{if(Bun.spawnSync(["which",x],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return x}catch{}return null},h=Xe(()=>[{id:"add",label:"Add Worktree",description:"Create a new git worktree",action:()=>{e.setActiveTab("add"),e.setShowCommandPalette(!1)}},{id:"delete",label:"Delete Worktree",description:"Remove the selected worktree",action:()=>{let k=a();if(!k||k.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let k=a();if(!k)return;let F=u();if(!F)return;e.setShowCommandPalette(!1),Bun.spawn([F,k.path],{stdout:"inherit",stderr:"inherit"})}},{id:"refresh",label:"Refresh",description:"Reload worktree list",action:()=>{t.refetch(),e.setShowCommandPalette(!1)}},{id:"config",label:"Open Config",description:"View configuration",action:()=>{e.setActiveTab("config"),e.setShowCommandPalette(!1)}},{id:"doctor",label:"Run Doctor",description:"Check worktree health",action:()=>{e.setActiveTab("doctor"),e.setShowCommandPalette(!1)}},...At.map((k)=>({id:`theme:${k}`,label:`Theme: ${Br[k]}`,description:"Switch color theme",action:()=>{wo(k);try{let F=Ct(),x={...Ae()};x.theme=k,_n(F,JSON.stringify(x,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),m=Xe(()=>{let k=o().toLowerCase();if(!k)return h();return h().filter((F)=>F.label.toLowerCase().includes(k)||F.description.toLowerCase().includes(k))});it((k)=>{if(!e.showCommandPalette())return;let F=k.name;if(F==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(F==="return"||F==="enter"){let x=m()[s()];if(x)x.action();i(""),c(0);return}if(F==="down"||F==="j"){c((x)=>Math.min(x+1,m().length-1));return}if(F==="up"||F==="k"){c((x)=>Math.max(x-1,0));return}}),go((k)=>{if(!e.inputFocused())return;let F=ng(k.bytes).replace(/\r?\n/g,"");if(!F)return;i((x)=>x+F),c(0)});let p=(k)=>{i(k),c(0)},w=()=>Math.max(50,Math.min(80,n().width-4)),A=()=>Math.max(10,Math.min(m().length+8,n().height-4)),W=()=>w()-4,y=()=>Math.max(W()-2,1),C=()=>A()-8;return X(sn,{get width(){return w()},get height(){return A()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var k=l("box"),F=l("text");return f(k,F),r(k,"height",1),V(F,()=>"\u2500".repeat(Math.max(W(),1))),H((x)=>{var S=W(),O=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box"),F=l("text"),x=l("text"),S=l("text");return f(k,F),f(k,x),f(k,S),r(k,"flexDirection","row"),r(k,"gap",2),f(F,B("\u2191\u2193:navigate")),f(x,B("Enter:run")),f(S,B("Esc:close")),H((O)=>{var G=g.text.secondary,I=g.text.secondary,z=g.text.secondary;return G!==O.e&&(O.e=r(F,"fg",G,O.e)),I!==O.t&&(O.t=r(x,"fg",I,O.t)),z!==O.a&&(O.a=r(S,"fg",z,O.a)),O},{e:void 0,t:void 0,a:void 0}),k})()]},get children(){return[(()=>{var k=l("box"),F=l("text"),x=l("input");return f(k,F),f(k,x),r(k,"height",1),r(k,"flexDirection","row"),f(F,B("> ")),r(x,"onInput",p),r(x,"placeholder","Search commands..."),r(x,"focused",!0),H((S)=>{var O=W(),G=g.bg.elevated,I=g.text.accent,z=o(),Z=y(),T=g.bg.elevated,J=g.text.primary,q=g.text.secondary,Y=g.text.accent,ne=g.bg.elevated;return O!==S.e&&(S.e=r(k,"width",O,S.e)),G!==S.t&&(S.t=r(k,"backgroundColor",G,S.t)),I!==S.a&&(S.a=r(F,"fg",I,S.a)),z!==S.o&&(S.o=r(x,"value",z,S.o)),Z!==S.i&&(S.i=r(x,"width",Z,S.i)),T!==S.n&&(S.n=r(x,"backgroundColor",T,S.n)),J!==S.s&&(S.s=r(x,"textColor",J,S.s)),q!==S.h&&(S.h=r(x,"placeholderColor",q,S.h)),Y!==S.r&&(S.r=r(x,"cursorColor",Y,S.r)),ne!==S.d&&(S.d=r(x,"focusedBackgroundColor",ne,S.d)),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),k})(),(()=>{var k=l("box"),F=l("text");return f(k,F),r(k,"height",1),V(F,()=>"\u2500".repeat(Math.max(W(),1))),H((x)=>{var S=W(),O=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box");return r(k,"flexDirection","column"),V(k,X(nt,{get each(){return m().slice(0,C())},children:(F,x)=>{let S=()=>x()===s();return(()=>{var O=l("box"),G=l("text"),I=l("text");return f(O,G),f(O,I),r(O,"height",1),r(O,"onMouseDown",()=>{c(x()),F.action()}),r(G,"x",2),r(G,"y",0),V(G,()=>F.label),r(I,"y",0),V(I,()=>F.description),H((z)=>{var Z=W(),T=S()?g.select.focusedBg:g.bg.surface,J=S()?g.tab.active:g.text.primary,q=Math.max(25,F.label.length+4),Y=g.text.secondary;return Z!==z.e&&(z.e=r(O,"width",Z,z.e)),T!==z.t&&(z.t=r(O,"backgroundColor",T,z.t)),J!==z.a&&(z.a=r(G,"fg",J,z.a)),q!==z.o&&(z.o=r(I,"x",q,z.o)),Y!==z.i&&(z.i=r(I,"fg",Y,z.i)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),O})()}}),null),V(k,X(re,{get when(){return m().length===0},get children(){var F=l("box"),x=l("text");return f(F,x),r(F,"height",1),f(x,B("No commands found")),r(x,"x",2),r(x,"y",0),H((S)=>r(x,"fg",g.text.secondary,S)),F}}),null),H((F)=>{var x=W(),S=C(),O=g.bg.surface;return x!==F.e&&(F.e=r(k,"width",x,F.e)),S!==F.t&&(F.t=r(k,"height",S,F.t)),O!==F.a&&(F.a=r(k,"backgroundColor",O,F.a)),F},{e:void 0,t:void 0,a:void 0}),k})()]}})}var of=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();ko();qe()});import{join as og}from"path";import{existsSync as rg}from"fs";function rf(e){let t=st(),n=on(),[o,i]=ue(0),s=()=>t.focusPickerData(),c=Xe(()=>{let m=s();if(!m)return[];return[...m.focusPaths.map((p)=>({label:p,value:p})),{label:"Worktree root",value:Ps}]}),a=()=>{t.setFocusPickerData(null),i(0)},u=(m)=>{let p=e.detectEditor();if(!p){n.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"}),a();return}if(!rg(m)){n.addToast({message:`Path does not exist: ${m}`,type:"error"}),a();return}Bun.spawn([p,m],{stdout:"inherit",stderr:"inherit"}),a()},h=()=>{let m=s(),p=c();if(!m||p.length===0)return;let w=p[o()];if(!w)return;if(w.value===Ps)u(m.worktreePath);else u(og(m.worktreePath,w.value))};return it((m)=>{if(!s())return;let p=m.name;if(p==="escape"){a();return}let w=c();if(p==="down"||p==="j"||m.sequence==="\x1B[B"){i((A)=>Math.min(A+1,w.length-1));return}if(p==="up"||p==="k"||m.sequence==="\x1B[A"){i((A)=>Math.max(A-1,0));return}if(p==="return"||p==="enter"){h();return}}),X(re,{get when(){return s()},get children(){return X(sn,{title:" Open Focus ",width:50,get height(){return Math.min(c().length+6,14)},backdrop:!0,get children(){return[(()=>{var m=l("box"),p=l("text");return f(m,p),r(m,"height",1),f(p,B("Multiple focus paths set. Pick one to open:")),H((w)=>r(p,"fg",g.text.secondary,w)),m})(),(()=>{var m=l("box");return r(m,"height",1),m})(),X(nt,{get each(){return c()},children:(m,p)=>(()=>{var w=l("box"),A=l("text");return f(w,A),r(w,"height",1),r(w,"flexDirection","row"),V(A,()=>p()===o()?"\u276F ":" ",null),V(A,()=>m.label,null),H((W)=>r(A,"fg",p()===o()?g.text.accent:m.value===Ps?g.text.secondary:g.text.primary,W)),w})()}),(()=>{var m=l("box");return r(m,"height",1),m})(),(()=>{var m=l("box"),p=l("text");return f(m,p),r(m,"height",1),f(p,B("j/k:nav enter:open esc:cancel")),H((w)=>r(p,"fg",g.text.secondary,w)),m})()]}})}})}var Ps="__root__";var sf=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Zt();no();yt();ko()});function ig(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function sg(e){if(e==="success")return g.text.success;if(e==="warning")return g.text.warning;if(e==="error")return g.text.error;return g.text.primary}function cf(){let e=rt(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var o=l("box");return r(o,"y",1),r(o,"height",5),r(o,"flexDirection","column"),V(o,X(nt,{get each(){return on().toasts()},children:(i,s)=>(()=>{var c=l("box"),a=l("text");return f(c,a),r(c,"x",0),r(c,"height",1),r(a,"x",1),r(a,"y",0),V(a,()=>`${ig(i.type)} ${i.message}`),H((u)=>{var h=s(),m=t(),p=g.bg.elevated,w=sg(i.type);return h!==u.e&&(u.e=r(c,"y",h,u.e)),m!==u.t&&(u.t=r(c,"width",m,u.t)),p!==u.a&&(u.a=r(c,"backgroundColor",p,u.a)),w!==u.o&&(u.o=r(a,"fg",w,u.o)),u},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),H((i)=>{var s=n(),c=t();return s!==i.e&&(i.e=r(o,"x",s,i.e)),c!==i.t&&(i.t=r(o,"width",c,i.t)),i},{e:void 0,t:void 0}),o})()}var af=ge(()=>{te();te();te();te();te();te();Ye();te();no();yt()});var uf={};Ne(uf,{launchTUI:()=>fg});import{existsSync as cg}from"fs";import{resolve as lf}from"path";function ff(){let e=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let t of e)try{if(Bun.spawnSync(["which",t],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return t}catch{}return null}function lg(e){let t=st(),n=gt(),o=on(),i=dn(),[s,c]=ue(!1),a=rt(),u=()=>{let C=n.worktrees()??[],k=t.selectedWorktreePath();if(k){let F=C.find((x)=>x.path===k);if(F)return F}return C[t.selectedWorktreeIndex()]};Pt(()=>{let C=n.worktrees()??[],k=C.map((O)=>O.path);if(t.pruneSelectedWorktrees(k),C.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let F=t.selectedWorktreePath();if(F){let O=C.findIndex((G)=>G.path===F);if(O>=0){if(O!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(O);return}}let x=Math.min(t.selectedWorktreeIndex(),C.length-1),S=C[x]?.path??null;if(x!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(x);if(S!==t.selectedWorktreePath())t.setSelectedWorktreePath(S)}),it((C)=>{let k=C.name;if(k==="escape"){if(t.focusPickerData()){t.setFocusPickerData(null);return}if(t.showBulkActions()){t.setShowBulkActions(!1);return}if(t.showDetailView()){t.setShowDetailView(!1);return}if(t.showRemove()){t.setShowRemove(!1);return}if(s()){c(!1);return}if(t.inputFocused())return;if(t.activeTab()!=="list"){t.setActiveTab("list");return}}if(C.ctrl&&k==="p"){t.setShowCommandPalette(!0);return}if(t.focusPickerData())return;if(t.inputFocused())return;if(t.showCommandPalette())return;if(t.showBulkActions())return;if(t.showRemove())return;if(t.activeTab()==="add")return;if(t.activeTab()==="list"){if(t.showDetailView())return;if(k==="a"){t.setActiveTab("add");return}if(k==="r"){n.refetch();return}if(k==="d"){let F=u();if(F&&!F.isMain)t.setShowRemove(!0);return}if(k==="o"){let F=u();if(!F)return;let x=Kr(F.path);if(x.kind==="multiple"){t.setFocusPickerData({worktreePath:F.path,focusPaths:x.focusPaths});return}let S=process.env.VISUAL||process.env.EDITOR||ff();if(!S){o.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!cg(x.path)){o.addToast({message:`Path does not exist: ${x.path}`,type:"error"});return}Bun.spawn([S,x.path],{stdout:"inherit",stderr:"inherit"});return}}if(k==="h"){t.setActiveTab("doctor");return}if(k==="q"||k==="Q")i.destroy();if(k==="?")c((F)=>!F)});let h=()=>a().width,m=()=>a().height,p=()=>e.repoPath.split("/").pop()??"",w=()=>{let C=n.repoNames();if(C.length<=1)return p();return`${C.length} repos`},A=()=>{let C=n.worktrees()??[];return`${p()} \xB7 ${C.length} worktrees`},W=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},y=()=>h()-ag-1;return(()=>{var C=l("box"),k=l("box"),F=l("text"),x=l("text"),S=l("box"),O=l("box"),G=l("box"),I=l("text"),z=l("b"),Z=l("box"),T=l("box"),J=l("toaster"),q=l("box"),Y=l("text"),ne=l("box"),he=l("text");return f(C,k),f(C,S),f(C,J),f(C,q),f(C,ne),r(C,"flexDirection","column"),f(k,F),f(k,x),r(k,"height",1),f(F,B("\uD83C\uDF33 copse")),r(F,"x",1),r(F,"y",0),r(x,"y",0),V(x,w),f(S,O),f(S,Z),f(S,T),r(S,"flexGrow",1),r(S,"flexDirection","row"),f(O,G),r(O,"width",28),r(O,"flexShrink",0),r(O,"flexDirection","column"),f(G,I),r(G,"height",1),r(G,"paddingX",1),f(I,z),V(z,W),V(O,X(ef,{}),null),r(Z,"width",1),r(T,"flexGrow",1),V(T,X(re,{get when(){return Le(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return X(wl,{})}}),null),V(T,X(re,{get when(){return Le(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return X(Kl,{get w(){return y()},get h(){return m()-3}})}}),null),V(T,X(re,{get when(){return t.activeTab()==="config"},get children(){return X(Ul,{})}}),null),V(C,X(cf,{}),J),r(J,"position","bottom-right"),f(q,Y),r(q,"height",1),r(Y,"x",0),r(Y,"y",0),V(Y,()=>"\u2500".repeat(h())),f(ne,he),r(ne,"height",1),f(he,B("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),r(he,"x",1),r(he,"y",0),V(C,X(re,{get when(){return Le(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),ke=l("text"),E=l("text"),P=l("box"),U=l("text"),K=l("text"),L=l("box"),ee=l("text"),de=l("text"),ie=l("box"),we=l("text"),Oe=l("text"),pe=l("box"),Ee=l("text"),Fe=l("text"),We=l("box"),j=l("box"),d=l("text"),b=l("text"),M=l("box"),D=l("text"),v=l("text"),$=l("box"),oe=l("box"),be=l("text");return f(_,me),f(_,P),f(_,L),f(_,ie),f(_,pe),f(_,We),f(_,j),f(_,M),f(_,$),f(_,oe),r(_,"height",14),r(_,"border",!0),r(_,"borderStyle","rounded"),r(_,"title"," Keyboard Shortcuts "),r(_,"titleAlignment","left"),r(_,"flexDirection","column"),r(_,"paddingX",1),r(_,"paddingY",1),r(_,"position","absolute"),f(me,ke),f(me,E),r(me,"height",1),f(ke,B("q")),r(ke,"x",1),f(E,B("Quit")),r(E,"x",8),f(P,U),f(P,K),r(P,"height",1),f(U,B("j/k")),r(U,"x",1),f(K,B("Navigate list")),r(K,"x",8),f(L,ee),f(L,de),r(L,"height",1),f(ee,B("a")),r(ee,"x",1),f(de,B("Add worktree")),r(de,"x",8),f(ie,we),f(ie,Oe),r(ie,"height",1),f(we,B("d")),r(we,"x",1),f(Oe,B("Delete worktree")),r(Oe,"x",8),f(pe,Ee),f(pe,Fe),r(pe,"height",1),f(Ee,B("r")),r(Ee,"x",1),f(Fe,B("Refresh list")),r(Fe,"x",8),r(We,"height",1),f(j,d),f(j,b),r(j,"height",1),f(d,B("Ctrl+P")),r(d,"x",1),f(b,B("Command palette")),r(b,"x",8),f(M,D),f(M,v),r(M,"height",1),f(D,B("?")),r(D,"x",1),f(v,B("Toggle help")),r(v,"x",8),r($,"height",1),f(oe,be),r(oe,"height",1),f(be,B("Press ? to close")),r(be,"x",1),H((le)=>{var Ie=Math.max(0,Math.floor((h()-Math.max(40,Math.min(60,h()-4)))/2)),N=Math.max(0,Math.floor((m()-14)/2)),ae=Math.max(40,Math.min(60,h()-4)),ce=g.border.active,Q=g.bg.elevated,Re=g.text.secondary,Ce=g.text.primary,Te=g.text.secondary,Ge=g.text.primary,Qe=g.text.secondary,ht=g.text.primary,Pe=g.text.secondary,Be=g.text.primary,yn=g.text.secondary,Wo=g.text.primary,jo=g.text.secondary,Lo=g.text.primary,Io=g.text.secondary,Hs=g.text.primary,Ks=g.text.accent;return Ie!==le.e&&(le.e=r(_,"x",Ie,le.e)),N!==le.t&&(le.t=r(_,"y",N,le.t)),ae!==le.a&&(le.a=r(_,"width",ae,le.a)),ce!==le.o&&(le.o=r(_,"borderColor",ce,le.o)),Q!==le.i&&(le.i=r(_,"backgroundColor",Q,le.i)),Re!==le.n&&(le.n=r(ke,"fg",Re,le.n)),Ce!==le.s&&(le.s=r(E,"fg",Ce,le.s)),Te!==le.h&&(le.h=r(U,"fg",Te,le.h)),Ge!==le.r&&(le.r=r(K,"fg",Ge,le.r)),Qe!==le.d&&(le.d=r(ee,"fg",Qe,le.d)),ht!==le.l&&(le.l=r(de,"fg",ht,le.l)),Pe!==le.u&&(le.u=r(we,"fg",Pe,le.u)),Be!==le.c&&(le.c=r(Oe,"fg",Be,le.c)),yn!==le.w&&(le.w=r(Ee,"fg",yn,le.w)),Wo!==le.m&&(le.m=r(Fe,"fg",Wo,le.m)),jo!==le.f&&(le.f=r(d,"fg",jo,le.f)),Lo!==le.y&&(le.y=r(b,"fg",Lo,le.y)),Io!==le.g&&(le.g=r(D,"fg",Io,le.g)),Hs!==le.p&&(le.p=r(v,"fg",Hs,le.p)),Ks!==le.b&&(le.b=r(be,"fg",Ks,le.b)),le},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),_}}),null),V(C,X(re,{get when(){return t.activeTab()==="add"},get children(){return X(Il,{})}}),null),V(C,X(re,{get when(){return t.activeTab()==="doctor"},get children(){return X(Zl,{})}}),null),V(C,X(re,{get when(){return t.showRemove()},get children(){return X(Vl,{})}}),null),V(C,X(re,{get when(){return t.showCommandPalette()},get children(){return X(nf,{})}}),null),V(C,X(rf,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||ff()}),null),H((_)=>{var me=h(),ke=m(),E=g.bg.base,P=g.bg.overlay,U=g.text.accent,K=h()-w().length-2,L=g.text.secondary,ee=g.bg.surface,de=g.text.accent,ie=g.bg.base,we=g.bg.overlay,Oe=g.border.subtle,pe=g.bg.overlay,Ee=g.text.secondary;return me!==_.e&&(_.e=r(C,"width",me,_.e)),ke!==_.t&&(_.t=r(C,"height",ke,_.t)),E!==_.a&&(_.a=r(C,"backgroundColor",E,_.a)),P!==_.o&&(_.o=r(k,"backgroundColor",P,_.o)),U!==_.i&&(_.i=r(F,"fg",U,_.i)),K!==_.n&&(_.n=r(x,"x",K,_.n)),L!==_.s&&(_.s=r(x,"fg",L,_.s)),ee!==_.h&&(_.h=r(O,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=r(I,"fg",de,_.r)),ie!==_.d&&(_.d=r(T,"backgroundColor",ie,_.d)),we!==_.l&&(_.l=r(q,"backgroundColor",we,_.l)),Oe!==_.u&&(_.u=r(Y,"fg",Oe,_.u)),pe!==_.c&&(_.c=r(ne,"backgroundColor",pe,_.c)),Ee!==_.w&&(_.w=r(he,"fg",Ee,_.w)),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0}),C})()}async function fg(){if(process.stdout.isTTY)process.stdout.write("\x1B]0;Copse\x07");let e=null;try{e=await se.getMainRepoPath()}catch{}let t=[],n;try{let c={...Ae()};if(t=En(c),typeof c.theme==="string")n=c.theme}catch{}let o=e??t[0]??process.cwd(),i=[o],s=new Set([lf(o)]);for(let c of t){let a=lf(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&At.includes(n))wo(n);await Ya(()=>X(il,{repoPath:o,repoPaths:i,get children(){return X(ll,{repoPaths:i,get children(){return X(ml,{get children(){return X(lg,{repoPath:o})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var ag=28;var df=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Zt();hn();Ke();xl();Bl();Hl();Gl();Tl();Ql();tf();yt();of();sf();no();af();no();qe();nn()});import*as hf from"readline";async function Bn(e){let t=hf.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(o)=>{t.close(),n(o.toLowerCase()==="y"||o.toLowerCase()==="yes")})})}async function Ue(){return se.getMainRepoPath().catch(()=>process.cwd())}function Xt(e,t){let n=e.find((o)=>o.branch===t||o.path===t||o.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function et(e){if(e instanceof xt)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var bt=ge(()=>{Ke();Ut()});var mf={};Ne(mf,{default:()=>pg});import{basename as ug,resolve as dg}from"path";import{existsSync as hg}from"fs";var mg,pg;var pf=ge(()=>{Ke();Ut();qe();bt();oo();vo();mg={command:"add [branch] [path]",describe:"Create a new worktree for a branch",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).positional("path",{type:"string",describe:"Worktree directory path"}).option("create",{type:"boolean",alias:"c",describe:"Optional compatibility flag; missing branches are created automatically"}).option("base",{type:"string",alias:"b",describe:"Base branch/commit for new branch"}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("template",{type:"string",alias:"t",describe:"Use a named template from config"}).option("pr",{type:"number",describe:"Create worktree from a GitHub PR number (requires gh CLI)"}).option("session",{type:"boolean",alias:"s",describe:"Create a tmux session for this worktree"}).option("layout",{type:"string",describe:"Session layout name from config"}).option("fetch",{type:"boolean",default:!0,describe:"Auto-fetch when base is a remote ref (e.g. origin/main). Use --no-fetch to skip"}),handler:async(e)=>{let{branch:t,pr:n}=e,o=await Ue(),i=ug(o);if(!t&&!n)console.error("Error: specify a branch or use --pr <number>."),process.exit(1);if(n)try{let C=Bun.spawn(["gh","pr","view",String(n),"--json","headRefName","--jq",".headRefName"],{cwd:o,stdout:"pipe",stderr:"pipe"}),[k,F,x]=await Promise.all([new Response(C.stdout).text(),new Response(C.stderr).text(),C.exited]);if(x!==0)console.error(`Error: failed to resolve PR #${n}: ${F.trim()}`),console.error("Make sure 'gh' CLI is installed and authenticated."),process.exit(1);if(t=k.trim(),!t)console.error(`Error: PR #${n} has no branch name`),process.exit(1);console.log(`PR #${n} \u2192 branch '${t}'`)}catch{console.error("Error: 'gh' CLI not found. Install it from https://cli.github.com"),process.exit(1)}if(!t)console.error("Error: could not determine branch name."),process.exit(1);let s=t.replace(/\//g,"-"),c=Ae(),a=Ht(c,o),u=e.path??a.worktreeDir,h=yr(u,{repo:i,branch:s}),m=dg(o,h);console.log(`Creating worktree for branch '${t}'...`),console.log(` Target: ${m}`);let w=(await se.list(o)).find((C)=>C.branch===t);if(w)console.error(`Error: branch '${t}' is already checked out in ${w.path}`),process.exit(1);if(hg(m))console.error(`Error: directory already exists: ${m}`),process.exit(1);let A=e.focus,W=A?A.flatMap((C)=>C.split(/[,\s]+/)).map((C)=>C.trim()).filter(Boolean):[],y=e.template;if(y)console.log(`Using template '${y}'`);try{let C=await nr(c,{branch:t,worktreePath:m,mainRepoPath:o,repoName:i,base:e.base,focusPaths:W,prNumber:n,templateName:y,session:e.session,layoutName:e.layout,fetch:e.fetch},{onStepStart:(k,F)=>{if(k===Se.fetch)console.log(` Fetching${F?` ${F}`:""}...`);else if(k===Se.copyFiles)console.log(" Copying files...");else if(k===Se.linkFiles)console.log(" Linking files...");else if(k===Se.sharedDeps)console.log(" Sharing dependencies...");else if(k===Se.postCreate)console.log(" Running postCreate hooks...");else if(k===Se.monorepoHooks)console.log(" Running monorepo hooks...")},onStepDone:(k,F)=>{if(k===Se.fetch)console.log(" \u2713 Fetched");else if(k===Se.worktree)console.log(" \u2713 Worktree created");else if(k===Se.upstream)if(F==="no remote branch")console.log(" \u2139 No remote branch found \u2014 upstream tracking skipped");else console.log(` \u2713 Upstream tracking set ${F??""}`);else if(k===Se.copyFiles)console.log(" \u2713 Files copied");else if(k===Se.linkFiles)console.log(" \u2713 Files linked");else if(k===Se.sharedDeps)console.log(" \u2713 Dependencies shared");else if(k===Se.focus&&F)console.log(` \u2713 Focus set: ${F}`);else if(k===Se.postCreate)console.log(" \u2713 Hooks completed");else if(k===Se.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(k===Se.session)console.log(` \u2713 Session created: ${F??""}`);else if(k===Se.prMeta)console.log(` \u2713 PR #${n} metadata saved`)},onStepError:(k,F)=>{if(k===Se.fetch)console.log(` \u26A0 ${F}`);else if(k===Se.upstream)console.warn(` \u26A0 Could not set upstream tracking: ${F}`);else if(k===Se.session)console.log(` \u26A0 Session create failed: ${F}`);else console.warn(` \u26A0 ${k}: ${F}`)},onHookOutput:(k)=>console.log(` ${k}`)});if(C.invalidFocusPaths.length>0)console.log(` \u26A0 Focus paths not found (skipped): ${C.invalidFocusPaths.join(", ")}`);console.log(`
23
- Worktree ready: ${m}`),process.exit(0)}catch(C){if(C instanceof Oo)console.error(`
24
- Setup failed, rolled back.`),console.error(`Error: hook timed out: ${C.command}`);else if(C instanceof Ro){if(console.error(`
25
- Setup failed, rolled back.`),console.error(`Error: hook failed (exit ${C.exitCode}): ${C.command}`),C.stderr)console.error(C.stderr)}else if(C instanceof xt)console.error(`Error creating worktree: ${C.stderr||C.message}`);else console.error(`Error: ${C.message}`);process.exit(1)}}},pg=mg});var gf={};Ne(gf,{default:()=>wg});import{relative as gg,resolve as As}from"path";var bg,wg;var bf=ge(()=>{Ke();Ut();qe();nn();bt();bg={command:"list",aliases:["ls"],describe:"List all worktrees with their status",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("porcelain",{type:"boolean",alias:"p",describe:"Machine-readable output"}).option("all",{type:"boolean",alias:"a",describe:"List worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let c=Ae(),a=await Ue(),u=En(c),h=new Set([As(a)]),m=[a];for(let p of u){let w=As(p);if(!h.has(w))h.add(w),m.push(p)}t=await se.listAll(m)}else t=await se.list();let n=await Promise.all(t.map(async(c)=>({...c,focus:Jt(c.path)})));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);if(e.porcelain){for(let c of n){if(e.all)console.log(`repo ${c.repoName}`);if(console.log(`path ${c.path}`),console.log(`branch ${c.branch??"(detached)"}`),console.log(`head ${c.head}`),console.log(`dirty ${c.isDirty}`),console.log(`locked ${c.isLocked}`),c.focus&&c.focus.length>0)console.log(`focus ${c.focus.join(",")}`);console.log("")}process.exit(0)}if(t.length===0)console.log("No worktrees found."),process.exit(0);let o=As(process.cwd()),i=e.all&&new Set(n.map((c)=>c.repoName)).size>1,s=n.map((c)=>({repo:c.repoName,branch:c.branch??"(detached)",path:c.path===o?c.path:gg(o,c.path)||c.path,status:c.isLocked?"locked":c.isDirty?"dirty":"clean",focus:c.focus?c.focus.join(", ").slice(0,40)+(c.focus.join(", ").length>40?"...":""):"\u2014"}));if(i){let c=Math.max(4,...s.map((p)=>p.repo.length)),a=Math.max(6,...s.map((p)=>p.branch.length)),u=Math.max(4,...s.map((p)=>p.path.length)),h=Math.max(6,...s.map((p)=>p.status.length)),m=Math.max(5,...s.map((p)=>p.focus.length));console.log(`${"Repo".padEnd(c)} ${"Branch".padEnd(a)} ${"Path".padEnd(u)} ${"Status".padEnd(h)} ${"Focus".padEnd(m)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(h)} ${"-".repeat(m)}`);for(let p of s)console.log(`${p.repo.padEnd(c)} ${p.branch.padEnd(a)} ${p.path.padEnd(u)} ${p.status.padEnd(h)} ${p.focus.padEnd(m)}`)}else{let c=Math.max(6,...s.map((m)=>m.branch.length)),a=Math.max(4,...s.map((m)=>m.path.length)),u=Math.max(6,...s.map((m)=>m.status.length)),h=Math.max(5,...s.map((m)=>m.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(u)} ${"Focus".padEnd(h)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(h)}`);for(let m of s)console.log(`${m.branch.padEnd(c)} ${m.path.padEnd(a)} ${m.status.padEnd(u)} ${m.focus.padEnd(h)}`)}process.exit(0)}catch(t){if(t instanceof xt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}},wg=bg});var xf={};Ne(xf,{default:()=>yg});import{basename as wf}from"path";var xg,yg;var yf=ge(()=>{Ke();qe();bt();vo();xg={command:"remove <branch-or-path>",aliases:["rm"],describe:"Remove a worktree",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}).option("force",{type:"boolean",alias:"f",describe:"Force removal even with uncommitted changes"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.force,o=!!e.yes;try{let i=await Ue(),s=await se.list(i),c=Xt(s,t);if(c.isMain)console.error("Error: cannot remove the main worktree"),process.exit(1);if(await se.isDirty(c.path)&&!n)console.error(`Error: worktree has uncommitted changes: ${c.path}`),console.error("Use --force to remove anyway."),process.exit(1);if(c.isLocked){if(console.error(`Error: worktree is locked: ${c.path}`),c.lockReason)console.error(`Lock reason: ${c.lockReason}`);process.exit(1)}if(!o){if(!await Bn(`Remove worktree '${c.branch??wf(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let u=Ae(),h=wf(i);await ro(u,{worktreePath:c.path,mainRepoPath:i,repoName:h,branch:c.branch??t,force:n},{onStepStart:(m)=>{if(m===Ve.postRemove)console.log("Running postRemove hooks...");else if(m===Ve.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(m,p)=>{if(m===Ve.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(m===Ve.session&&p==="killed")console.log(" \u2713 Session killed")},onStepError:(m,p)=>{if(m===Ve.postRemove)console.warn(`Warning: postRemove hook failed: ${p}`);else console.warn(` \u26A0 ${m}: ${p}`)},onHookOutput:(m)=>console.log(` ${m}`)}),console.log(`Removed worktree: ${c.path}`),process.exit(0)}catch(i){et(i)}}},yg=xg});var Sf={};Ne(Sf,{default:()=>Rg});import{basename as Sg}from"path";var Cg,Rg;var Cf=ge(()=>{Ke();Ln();qe();Wn();bt();Cg={command:"switch <branch-or-path>",aliases:["sw"],describe:"Switch to a worktree directory (outputs cd command for shell eval)",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}),handler:async(e)=>{let t=e["branch-or-path"];try{let n=await Ue(),o=await se.list(n),i=Xt(o,t);try{qt(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let s=Ae(),c=Fn(s);if(c.enabled&&ms()){let a=i.branch??Sg(i.path),u=An(a,c.prefix);if(await pn(u))try{await Gr(u),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){et(n)}}},Rg=Cg});async function Rf(e,t,n,o){let i=e.filter((m)=>!m.isMain),s=i.filter((m)=>In(m.path)),c=new Set(s.map((m)=>m.path)),a=[];if(t.autoCleanMerged){let m=i.filter((w)=>!c.has(w.path)&&w.branch);a=(await Qt(m,10,async(w)=>({wt:w,isMerged:await se.isMergedInto(w.branch,n,o)}))).filter((w)=>w.isMerged&&!w.wt.isDirty).map((w)=>w.wt)}let u=[];if(t.staleAfterDays&&t.staleAfterDays>0){let m=new Date,p=i.filter((A)=>!c.has(A.path));u=(await Qt(p,10,async(A)=>{let W=await se.getWorktreeLastActivity(A.path),y=W?Math.floor((m.getTime()-W.getTime())/86400000):1/0;return{wt:A,lastActivity:W,daysSince:y}})).filter((A)=>A.daysSince>=t.staleAfterDays).map((A)=>({worktree:A.wt,lastActivity:A.lastActivity,daysSinceActivity:A.daysSince===1/0?-1:A.daysSince}))}let h=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:u,pinProtected:s,overLimit:h,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function Of(e){let t=[];if(e.pinProtected.length>0){t.push(`Pin-protected worktrees (${e.pinProtected.length}):`);for(let n of e.pinProtected)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.merged.length>0){t.push(`Merged worktrees (${e.merged.length}):`);for(let n of e.merged)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.stale.length>0){t.push(`Stale worktrees (${e.stale.length}):`);for(let n of e.stale){let o=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${o}`)}}if(e.overLimit)t.push(`Worktree limit exceeded: ${e.totalCount}/${e.maxWorktrees}`);if(t.length===0)t.push("All worktrees are healthy.");return t.join(`
26
- `)}var vf=ge(()=>{Ke();Mo()});var kf={};Ne(kf,{default:()=>vg});var Og,vg;var Ef=ge(()=>{Ke();qe();vf();Mo();bt();Og={command:"clean",describe:"Remove merged worktrees and prune stale entries",builder:(e)=>e.option("dry-run",{type:"boolean",alias:"n",describe:"Show what would be removed"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation"}).option("stale",{type:"boolean",describe:"Also show stale worktrees (based on lifecycle config)"}),handler:async(e)=>{let t=!!(e["dry-run"]||e.n),n=!!e.yes;try{let o=await Ue(),i=await se.list(o),c=(i.find((m)=>m.isMain)??i[0])?.branch??"main",a=i.filter((m)=>{if(m.isMain)return!1;if(In(m.path))return console.log(` Skipping (pinned): ${m.branch}`),!1;if(!m.branch)return!1;return!0}),u=await Qt(a,10,async(m)=>{let[p,w]=await Promise.all([se.isMergedInto(m.branch,c,o),se.isDirty(m.path)]);return{wt:m,merged:p,dirty:w}}),h=[];for(let{wt:m,merged:p,dirty:w}of u){if(!p)continue;if(w){console.log(` Skipping (dirty): ${m.branch}`);continue}h.push(m)}if(h.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let m of h)console.log(` ${m.branch} (${m.path})`)}if(!t&&h.length>0){if(!n){if(!await Bn(`
27
- Remove ${h.length} worktree(s)? [y/N] `))console.log("Cancelled."),process.exit(0)}for(let m of h)await se.remove(m.path,{force:!1},o),console.log(` Removed: ${m.branch}`)}if(!t)await se.prune(o),console.log("Pruned stale worktree entries.");if(e.stale){let m=Ae();if(m.lifecycle){let p=await Rf(i,m.lifecycle,c,o);console.log(),console.log(Of(p))}else console.log(`
28
- No lifecycle config found. Add 'lifecycle' to your config to enable stale detection.`)}process.exit(0)}catch(o){et(o)}}},vg=Og});import{existsSync as kg,mkdirSync as Eg,readFileSync as Fg,writeFileSync as Dg}from"fs";import{dirname as Mg}from"path";function Ff(){let e=Ct();try{return Ae(e)}catch{if(!kg(e))throw Error("Failed to load config");let t=Fg(e,"utf-8");return JSON.parse(t)}}function Df(e){let t=Ct(),n=Mg(t);Eg(n,{recursive:!0,mode:448});let o=`${JSON.stringify(e,null,2)}
29
- `;try{_n(t,o)}catch{Dg(t,o,{encoding:"utf-8",mode:384})}}function Ws(e){return Object.keys(e.profiles??{})}function Mf(e){let t=Ff();Df({...t,activeProfile:e})}function Pf(e){return e.activeProfile??null}function Af(e){let t=Ff(),n={...t.profiles??{}};delete n[e],Df({...t,profiles:n,activeProfile:t.activeProfile===e?void 0:t.activeProfile})}var Wf=ge(()=>{qe()});var jf={};Ne(jf,{default:()=>jg});import{spawnSync as Pg}from"child_process";import{readFileSync as Ag}from"fs";var Wg,jg;var Lf=ge(()=>{qe();Wf();Wg={command:"config",describe:"Manage copse configuration",builder:(e)=>e.option("init",{type:"boolean",describe:"Create default config file"}).option("show",{type:"boolean",alias:"s",describe:"Print current config as JSON"}).option("edit",{type:"boolean",alias:"e",describe:"Open config in $EDITOR"}).option("path",{type:"boolean",describe:"Print config file path"}).option("validate",{type:"boolean",describe:"Validate config against schema"}).option("profiles",{type:"boolean",describe:"List config profiles"}).option("profile",{type:"string",describe:"Profile name for activation/deletion"}).option("activate",{type:"boolean",describe:"Activate the specified profile"}).option("delete",{type:"boolean",describe:"Delete the specified profile"}),handler:async(e)=>{let t=Ct();if(e.init){let n=Kt();console.log(`Config initialized: ${n}`),process.exit(0)}if(e.path)console.log(t),process.exit(0);if(e.show){try{let n=Ae();console.log(JSON.stringify(n,null,2))}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.edit){let n=process.env.EDITOR??process.env.VISUAL??"vi";Kt();let o=Pg(n,[t],{stdio:"inherit"});process.exit(o.status??0)}if(e.validate)try{let n=Ag(t,"utf-8"),o;try{o=JSON.parse(n)}catch{console.error(`Error: invalid JSON in config file: ${t}`),process.exit(1)}let i=$n(o);if(i.length===0)console.log(`\u2713 Config is valid: ${t}`),process.exit(0);else{console.error(`Config validation failed (${i.length} error(s)):`);for(let s of i)console.error(` ${s.field}: ${s.message}`);process.exit(1)}}catch(n){console.error(`Error reading config: ${n.message}`),process.exit(1)}if(e.profiles){try{let n=Ae(),o=Ws(n),i=Pf(n);for(let s of o)console.log(`${s}${s===i?" \u2605":""}`)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.activate){try{let n=Ae(),o=e.profile;if(!Ws(n).includes(o))console.error(`Error: profile '${o}' does not exist.`),process.exit(1);Mf(o)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.delete)Af(e.profile),process.exit(0);console.log("Usage: copse config [options]"),console.log(""),console.log("Options:"),console.log(" --init Create default config file"),console.log(" --show, -s Print current config as JSON"),console.log(" --edit, -e Open config in $EDITOR"),console.log(" --path Print config file path"),console.log(" --validate Validate config against schema"),console.log(" --profiles List config profiles"),console.log(" --profile Profile name for activation/deletion"),console.log(" --activate Activate the specified profile"),console.log(" --delete Delete the specified profile"),console.log(""),console.log(`Config path: ${t}`),process.exit(0)}},jg=Wg});var If={};Ne(If,{default:()=>Ig});var Lg,Ig;var Bf=ge(()=>{vs();Lg={command:"doctor",describe:"Check worktree health and diagnose issues",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("fix",{type:"boolean",describe:"Auto-fix issues (prune stale, remove orphans, unlock stale locks)"}),handler:async(e)=>{let t=process.cwd(),n=await Do(t);if(e.json&&!e.fix){let s={pass:n.checks.filter((c)=>c.status==="pass").length,warn:n.checks.filter((c)=>c.status==="warn").length,fail:n.checks.filter((c)=>c.status==="fail").length};console.log(JSON.stringify({healthy:n.healthy,checks:n.checks,summary:s},null,2)),process.exit(n.healthy?0:1)}console.log(`copse doctor
30
- `);for(let s of n.checks){let c=s.status==="pass"?"\u2713":s.status==="warn"?"\u26A0":"\u2717";if(console.log(`${c} ${s.name}: ${s.message}`),s.detail)for(let a of s.detail)console.log(` \u2192 ${a}`)}let o=n.checks.filter((s)=>s.status==="warn").length,i=n.checks.filter((s)=>s.status==="fail").length;if(n.healthy)console.log(`
31
- All checks passed.`);else{let s=[];if(i>0)s.push(`${i} error(s)`);if(o>0)s.push(`${o} warning(s)`);console.log(`
32
- ${s.join(", ")} found.`)}if(e.fix){if(n.healthy)console.log(`
17
+ `,{encoding:"utf-8",mode:384})}}}function Hl(e,t){let n=ds(e),o=t?.limit??50;if(!bp(n))return[];let r=jl(n,"utf-8").split(/\r?\n/).filter(Boolean),c=Math.max(0,r.length-o),a=[];for(let u=r.length-1;u>=c;u--)try{a.push(JSON.parse(r[u]))}catch{}return a}function Bl(e){xp(ds(e),{force:!0})}var Tl=1000,Rp=500,Op;var jn=de(()=>{In();Op=80*Tl});function Kr(e,t){return e.map((n)=>{let o=new Bun.Glob(n.glob),i=t.filter((r)=>o.match(r));return{glob:n.glob,matchedPaths:i,copyFiles:n.copyFiles??[],linkFiles:n.linkFiles??[],postCreate:n.postCreate??[],postRemove:n.postRemove??[]}}).filter((n)=>n.matchedPaths.length>0)}function vp(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function Gr(e,t,n){for(let o of e){let i=o[t],r=t==="postCreate"&&o.copyFiles.length>0,c=t==="postCreate"&&o.linkFiles.length>0,a=i.length>0;if(!r&&!c&&!a)continue;for(let u of o.matchedPaths){let{join:d}=await import("path"),m=d(n.mainRepoPath,u),p=d(n.cwd,u);if(r){let x=Tr(m,p,o.copyFiles);for(let D of x.copied)n.onOutput?.(`Copied ${u}/${D}`);for(let D of x.warnings)n.onOutput?.(`\u26A0 ${D}`)}if(c){let x=Hr(m,p,o.linkFiles);for(let D of x.linked)n.onOutput?.(`Linked ${u}/${D}`);for(let D of x.warnings)n.onOutput?.(`\u26A0 ${D}`)}if(a){let x=i.map((W)=>vp(W,{packagePath:u,repo:n.repo,branch:n.branch})),D={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:u};await Ln(x,{cwd:n.cwd,timeout:n.timeout,env:D,onOutput:n.onOutput})}}}}var hs=de(()=>{ko();fs()});import{existsSync as ps,mkdirSync as kp,readFileSync as Ep,writeFileSync as Dp,unlinkSync as Fp}from"fs";import{dirname as Pp}from"path";function ms(e){return e.replace(/\//g,"-").replace(/[^a-zA-Z0-9._-]/g,"_")}async function gn(e){let t=Bun.spawn(["tmux",...e],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C"}}),[n,o,i]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);if(i!==0)throw new Eo(`tmux ${e[0]} failed: ${o.trim()}`,o.trim());return n.trim()}function Tn(e,t){let n=ms(t??Vl),o=ms(e);return`${n}_${o}`}function gs(e){return sn(e,"copse-session")}function Mp(e,t){let n=gs(e);kp(Pp(n),{recursive:!0}),Dp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}function Xt(e){let t=gs(e);if(!ps(t))return null;try{return JSON.parse(Ep(t,"utf-8"))}catch{return null}}function bs(e){let t=gs(e);if(ps(t))Fp(t)}async function Do(){try{return await Bun.spawn(["tmux","-V"],{stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}function ws(){return Boolean(Bun.env.TMUX)}async function bn(e){try{return await gn(["has-session","-t",e]),!0}catch{return!1}}async function Ap(e,t,n){if(await bn(e))throw new Eo(`Session '${e}' already exists`,"session_exists");if(!ps(t))throw new Eo(`Worktree path does not exist: ${t}`,"path_not_found");let o=n?.windows??[],i=o[0],r=["new-session","-d","-s",e,"-c",t];if(i)r.push("-n",i.name);if(await gn(r),i?.command)await gn(["send-keys","-t",`${e}:${i.name}`,i.command,"Enter"]);for(let c=1;c<o.length;c++){let a=o[c];if(await gn(["new-window","-t",e,"-n",a.name,"-c",t]),a.command)await gn(["send-keys","-t",`${e}:${a.name}`,a.command,"Enter"])}if(o.length>0)await gn(["select-window","-t",`${e}:${o[0].name}`])}async function xs(e){if(!await bn(e))return;await gn(["kill-session","-t",e])}async function Ur(e){if(!await bn(e))throw new Eo(`Session '${e}' does not exist`,"session_not_found");if(ws())await gn(["switch-client","-t",e]);else if(await Bun.spawn(["tmux","attach-session","-t",e],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited!==0)throw new Eo(`Failed to attach to session '${e}'`,"attach_failed")}async function ys(e){let t=ms(e??Vl);try{let n=await gn(["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}|#{session_created}"]);if(!n)return[];return n.split(`
18
+ `).filter(Boolean).filter((o)=>o.startsWith(`${t}_`)||o.startsWith(`${t}:`)).map((o)=>{let[i,r,c,a]=o.split("|");return{name:i??"",windows:parseInt(r??"0",10),attached:c==="1",created:a??""}})}catch{return[]}}async function Jr(e,t,n){let o=Tn(e,n?.prefix),i=n?.attach??!0;if(await bn(o)){if(i)await Ur(o);return o}if(await Ap(o,t,n?.layout),Mp(t,{name:o,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Ur(o);return o}async function zr(e,t,n){let o=Tn(e,n),i=await bn(o);if(i)await xs(o);return bs(t),i}var Eo,Vl="copse";var Hn=de(()=>{In();Eo=class Eo extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});import{existsSync as Wp,readdirSync as ey,readFileSync as ty,statSync as Lp}from"fs";import{join as Ip,relative as oy}from"path";function Kl(e,t){let n=[],o=[];for(let i of t){let r=i.trim();if(!r){o.push(r);continue}let c=Ip(e,r);try{if(Wp(c)&&Lp(c).isDirectory())n.push(r);else o.push(r)}catch{o.push(r)}}return{valid:n,invalid:o}}var Gl=()=>{};async function tr(e,t,n={}){let{branch:o,worktreePath:i,mainRepoPath:r,repoName:c}=t,a=en(e,r),u;if(t.templateName){let S=Sr(e,t.templateName);if(!S)throw Error(`Template '${t.templateName}' not found`);a=Cr(a,S),u=S.base}let d=t.base??u??a.base,m=t.focusPaths??[],p=Fn(e),x=t.session??p.autoCreate??!1,D=t.fetch!==!1,W=await ie.localBranchExists(o,r),b=null;if(d&&D&&!W){let S=await ie.getRemotes(r);b=dl(d,S)}let R=x?await Do():!1,v=[];if(b)v.push({id:we.fetch,label:`Fetching ${b.remote}/${b.branch}`});if(v.push({id:we.worktree,label:"Creating worktree"}),a.autoUpstream)v.push({id:we.upstream,label:"Setting upstream"});if(a.copyFiles.length>0)v.push({id:we.copyFiles,label:"Copying files"});if(a.linkFiles.length>0)v.push({id:we.linkFiles,label:"Creating symlinks"});if(a.sharedDeps?.paths?.length)v.push({id:we.sharedDeps,label:"Sharing dependencies"});if(m.length>0)v.push({id:we.focus,label:"Setting focus"});if(a.postCreate.length>0)v.push({id:we.postCreate,label:"Running postCreate hooks"});if(m.length>0&&a.monorepo?.hooks?.length)v.push({id:we.monorepoHooks,label:"Running monorepo hooks"});if(x&&R)v.push({id:we.session,label:"Creating session"});if(t.prNumber)v.push({id:we.prMeta,label:"Writing PR metadata"});v.push({id:we.activityLog,label:"Logging activity"}),n.onStepPlan?.(v);let k={validFocusPaths:[],invalidFocusPaths:[]};if(b){n.onStepStart?.(we.fetch);try{await ie.fetchRemote(b.remote,b.branch,r),n.onStepDone?.(we.fetch)}catch(S){let y=S instanceof bt?S.stderr||S.message:S.message;k.fetchWarning=y.split(`
19
+ `)[0],n.onStepError?.(we.fetch,`${k.fetchWarning} \u2014 continuing with local ref`)}}n.onStepStart?.(we.worktree);try{await ie.add(o,i,{createBranch:!W,base:d},r),n.onStepDone?.(we.worktree)}catch(S){throw n.onStepError?.(we.worktree,S.message),S}try{if(a.autoUpstream){n.onStepStart?.(we.upstream);try{let y=await ie.getDefaultRemote(r);if(await ie.remoteBranchExists(o,y,r))await ie.setUpstream(o,y,r),n.onStepDone?.(we.upstream,`\u2192 ${y}/${o}`);else n.onStepDone?.(we.upstream,"no remote branch")}catch(y){n.onStepError?.(we.upstream,y.message)}}if(a.copyFiles.length>0)n.onStepStart?.(we.copyFiles),Tr(r,i,a.copyFiles),n.onStepDone?.(we.copyFiles);if(a.linkFiles.length>0)n.onStepStart?.(we.linkFiles),Hr(r,i,a.linkFiles),n.onStepDone?.(we.linkFiles);if(a.sharedDeps?.paths?.length)n.onStepStart?.(we.sharedDeps),Pl(r,i,a.sharedDeps),n.onStepDone?.(we.sharedDeps);if(m.length>0){n.onStepStart?.(we.focus);let{valid:y,invalid:O}=Kl(i,m);if(k.validFocusPaths=y,k.invalidFocusPaths=O,y.length>0)Br(i,y);n.onStepDone?.(we.focus,y.join(", "))}let S={COPSE_BRANCH:o,COPSE_WORKTREE_PATH:i,COPSE_REPO_PATH:r};if(k.validFocusPaths.length>0)S.COPSE_FOCUS_PATHS=k.validFocusPaths.join(",");if(a.postCreate.length>0)n.onStepStart?.(we.postCreate),await Ln(a.postCreate,{cwd:i,env:S,onOutput:n.onHookOutput}),n.onStepDone?.(we.postCreate);if(k.validFocusPaths.length>0&&a.monorepo?.hooks?.length){let y=Kr(a.monorepo.hooks,k.validFocusPaths);if(y.length>0)n.onStepStart?.(we.monorepoHooks),await Gr(y,"postCreate",{cwd:i,env:S,repo:c,branch:o,focusPaths:k.validFocusPaths,mainRepoPath:r,onOutput:n.onHookOutput}),n.onStepDone?.(we.monorepoHooks)}if(x&&R){n.onStepStart?.(we.session);try{let y=t.layoutName??p.defaultLayout,O=Rr(e,y),B=await Jr(o,i,{layout:O,prefix:p.prefix,attach:!1,layoutName:y});k.sessionName=B,n.onStepDone?.(we.session,B)}catch(y){n.onStepError?.(we.session,y.message.split(`
20
+ `)[0])}}if(t.prNumber)n.onStepStart?.(we.prMeta),Ll(i,{number:t.prNumber,branch:o,createdAt:new Date().toISOString()}),n.onStepDone?.(we.prMeta);n.onStepStart?.(we.activityLog);try{qt(r,{timestamp:new Date().toISOString(),event:"create",branch:o,path:i}),n.onStepDone?.(we.activityLog)}catch(y){n.onStepError?.(we.activityLog,y.message)}return k}catch(S){throw await ie.remove(i,{force:!0},r).catch(()=>{}),S}}var Ul=de(()=>{ze();Te();Wt();fs();ko();pn();Il();jn();hs();Hn();Gl();co()});async function qr(e,t){let{worktreePath:n,mainRepoPath:o,branch:i}=t,r=en(e,o),c=Fn(e),a=zt(n)??[],u=a.length>0&&r.monorepo?.hooks?.length?Kr(r.monorepo.hooks,a):[],d=Boolean(c.autoKill&&i),m=d?await Do():!1,p=[];if(r.postRemove.length>0)p.push({id:We.postRemove,label:"Running postRemove hooks"});if(u.length>0)p.push({id:We.monorepoHooks,label:"Running monorepo hooks"});if(d&&m)p.push({id:We.session,label:"Killing session"});return p.push({id:We.worktree,label:"Removing worktree"}),p.push({id:We.activityLog,label:"Logging activity"}),{steps:p,postRemoveHooks:r.postRemove,monorepoMatches:u,focusPaths:a,wantKill:d,tmuxOk:m,sessionPrefix:c.prefix}}async function Xr(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:r,branch:c,force:a}=t,u={COPSE_BRANCH:c??"",COPSE_WORKTREE_PATH:o,COPSE_REPO_PATH:i};if(e.focusPaths.length>0)u.COPSE_FOCUS_PATHS=e.focusPaths.join(",");if(e.postRemoveHooks.length>0){n.onStepStart?.(We.postRemove);try{await Ln(e.postRemoveHooks,{cwd:o,env:u,onOutput:n.onHookOutput}),n.onStepDone?.(We.postRemove)}catch(d){n.onStepError?.(We.postRemove,d.message)}}if(e.monorepoMatches.length>0){n.onStepStart?.(We.monorepoHooks);try{await Gr(e.monorepoMatches,"postRemove",{cwd:o,env:u,repo:r,branch:c??"",focusPaths:e.focusPaths,mainRepoPath:i,onOutput:n.onHookOutput}),n.onStepDone?.(We.monorepoHooks)}catch(d){n.onStepError?.(We.monorepoHooks,d.message)}}if(e.wantKill&&e.tmuxOk&&c){n.onStepStart?.(We.session);try{let d=await zr(c,o,e.sessionPrefix);n.onStepDone?.(We.session,d?"killed":"no active session")}catch(d){n.onStepError?.(We.session,d.message)}}n.onStepStart?.(We.worktree),await ie.remove(o,{force:a},i),n.onStepDone?.(We.worktree),n.onStepStart?.(We.activityLog);try{qt(i,{timestamp:new Date().toISOString(),event:"delete",branch:c??"",path:o}),n.onStepDone?.(We.activityLog)}catch(d){n.onStepError?.(We.activityLog,d.message)}}async function ao(e,t,n={}){let o=await qr(e,t);n.onStepPlan?.(o.steps),await Xr(o,t,n)}var Ss=de(()=>{ze();Te();ko();pn();jn();hs();Hn();co()});import{existsSync as ql,mkdirSync as jp,readFileSync as Xl,writeFileSync as Jl}from"fs";import{homedir as Tp}from"os";import{basename as Hp,join as Yr}from"path";function Bp(e){let t=er(e),n=Yr(t,"HEAD");if(!ql(n))return null;let i=Xl(n,"utf-8").trim().match(/^ref:\s+(.+)$/);if(!i)return null;return i[1]?.replace(/^refs\/heads\//,"")??null}async function zl(e,t){return ie.exec(e,t)}function Yl(){let e=Bun.env.HOME??Tp();return Yr(e,".copse","archives")}async function Zl(e,t){let n=Hp(t),o=await ie.getBranchForWorktree(e)??Bp(e)??"detached-head",i=o.replaceAll("/","-"),r=new Date().toISOString(),c=r.replaceAll(":","-"),a=Yr(Yl(),n);jp(a,{recursive:!0});let u=Yr(a,`${i}-${c}`),d=`${u}.patch`,m=`${u}.json`;try{let[p,x,D]=await Promise.all([zl(["diff"],e),zl(["format-patch","-5","HEAD","--stdout"],e),ie.getLastCommit(e)]),W=["# COP archive",`# repo: ${n}`,`# branch: ${o}`,`# archivedAt: ${r}`,"","# Uncommitted diff",p||"# (no uncommitted changes)","","# Recent commits (git format-patch -5 HEAD --stdout)",x||"# (no recent commits)"].join(`
21
+ `);Jl(d,W,"utf-8");let b={branch:o,repo:n,archivedAt:r,patchPath:d,commitHash:D?.hash??"",message:D?.message??""};return Jl(m,JSON.stringify(b,null,2),"utf-8"),b}catch(p){let x=p instanceof Error?p.message:"Unknown archive error";throw new as(`Failed to archive worktree: ${x}`,o,"archive_failed")}}async function Ql(e){let t=Yl();if(!ql(t))return[];let n=e?`${e}/*.json`:"**/*.json",o=new Bun.Glob(n),i=[];for await(let r of o.scan({cwd:t,absolute:!0}))try{let c=Xl(r,"utf-8");i.push(JSON.parse(c))}catch{}return i.sort((r,c)=>{let a=Date.parse(r.archivedAt);return Date.parse(c.archivedAt)-a})}var Cs=de(()=>{Te();Wt();In()});async function Rs(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:r,branch:c,keep:a,force:u}=t,d=null;if(!a)d=await qr(e,{worktreePath:o,mainRepoPath:i,repoName:r,branch:c,force:u??!1});let m=[{id:rn.createArchive,label:"Creating archive"},{id:rn.activityLogArchive,label:"Logging archive event"}],p=d?[...m,...d.steps]:m;n.onStepPlan?.(p),n.onStepStart?.(rn.createArchive);let x=await Zl(o,i);n.onStepDone?.(rn.createArchive,x.patchPath),n.onStepStart?.(rn.activityLogArchive);try{qt(i,{timestamp:new Date().toISOString(),event:"archive",branch:x.branch,path:x.patchPath}),n.onStepDone?.(rn.activityLogArchive)}catch(D){n.onStepError?.(rn.activityLogArchive,D.message)}if(d)await Xr(d,{worktreePath:o,mainRepoPath:i,repoName:r,branch:c??x.branch,force:u??!1},{onStepStart:n.onStepStart,onStepDone:n.onStepDone,onStepError:n.onStepError,onHookOutput:n.onHookOutput});return{archiveEntry:x}}var Nl=de(()=>{Cs();jn();co();Ss()});var ef={};Ze(ef,{writePin:()=>vs,removePin:()=>ks,readPin:()=>or,listPinnedWorktrees:()=>Es,isPinned:()=>Bn});import{readFileSync as $l,writeFileSync as Vp,unlinkSync as Kp,mkdirSync as Gp,existsSync as Os}from"fs";import{join as Up,dirname as _l}from"path";function nr(e){return sn(e,"copse-pin")}function Jp(e){let t=nr(e),n=_l(t),o=Up(n,"HEAD"),i=$l(o,"utf-8").trim(),r=i.match(/^ref:\s+refs\/heads\/(.+)$/);return r?r[1]:i}function vs(e,t){let n=nr(e),o={branch:Jp(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};Gp(_l(n),{recursive:!0}),Vp(n,JSON.stringify(o),{encoding:"utf-8",mode:384})}function or(e){let t=nr(e);if(!Os(t))return null;return JSON.parse($l(t,"utf-8"))}function ks(e){let t=nr(e);if(!Os(t))return;Kp(t)}function Bn(e){return Os(nr(e))}function Es(e){return e.filter((t)=>Bn(t.path))}var Fo=de(()=>{In()});import{existsSync as tf,readFileSync as nf,statSync as Zr}from"fs";import{basename as zp,join as Qr,resolve as Po}from"path";async function Ds(e,t){return ie.exec(e,t)}function qp(e){let t=Qr(e,"HEAD");if(!tf(t))return null;let o=nf(t,"utf-8").trim().match(/^ref:\s+refs\/heads\/(.+)$/);return o?o[1]:null}function of(e){let t=Po(e),n=Qr(t,".git");if(!Zr(n,{throwIfNoEntry:!1}))throw Error(`Missing .git at ${n}`);return er(t)}function Fs(e){let t=Po(e),n=Zr(t,{throwIfNoEntry:!1});if(!n)return{valid:!1,reason:`Path does not exist: ${t}`};if(!n.isDirectory())return{valid:!1,reason:`Path is not a directory: ${t}`};let o=Qr(t,".git"),i=Zr(o,{throwIfNoEntry:!1});if(!i)return{valid:!1,reason:`Target is missing .git: ${t}`};if(i.isDirectory())return{valid:!1,reason:`Target is not a linked git worktree (.git is a directory): ${t}`};if(!i.isFile())return{valid:!1,reason:`Target has invalid .git entry: ${t}`};let r="";try{r=of(t)}catch{return{valid:!1,reason:`Cannot resolve gitdir from .git file: ${t}`}}if(!Zr(r,{throwIfNoEntry:!1})?.isDirectory())return{valid:!1,reason:`Resolved gitdir does not exist: ${r}`};let a=qp(r);if(!a)return{valid:!1,reason:`Cannot resolve branch name from HEAD: ${t}`};return{valid:!0,branch:a}}async function rf(e,t){let n=Po(e),o=Fs(n);if(!o.valid)throw new so(`Cannot import worktree: ${o.reason??"invalid target"}`,n,o.reason??"invalid target");let[i,r,c]=await Promise.all([Ds(["rev-parse","HEAD"],n),Ds(["status","--porcelain"],n),Ds(["rev-parse","--git-common-dir"],n)]),a=Po(n,c),u=a.endsWith("/.git")||a.endsWith("\\.git")?a.slice(0,-5):a,d=zp(u),m=Po(n)===Po(u),p=of(n),x=Qr(p,"locked"),D=tf(x),W=D?nf(x,"utf-8").trim()||void 0:void 0;if(t?.focus&&t.focus.length>0)Br(n,t.focus);if(t?.pin)try{(await Promise.resolve().then(() => (Fo(),ef))).writePin(n)}catch(b){console.warn(`Warning: failed to pin worktree: ${b.message}`)}return{path:n,branch:o.branch??null,head:i,isMain:m,isDirty:r.length>0,isLocked:D,lockReason:W,repoName:d,repoPath:u}}var sf=de(()=>{Te();pn();Wt();In()});import{resolve as Xp}from"path";async function Ps(e,t={}){let n=Xp(e.targetPath),o=e.focusPaths??[],i=e.pin??!1,r=[{id:Jt.validate,label:"Validating import target"},{id:Jt.importWorktree,label:"Importing worktree metadata"},{id:Jt.activityLog,label:"Logging activity"}];t.onStepPlan?.(r),t.onStepStart?.(Jt.validate);let c=Fs(n);if(!c.valid){let u=c.reason??"invalid import target";throw t.onStepError?.(Jt.validate,u),new so(`Cannot import worktree: ${u}`,n,u)}t.onStepDone?.(Jt.validate),t.onStepStart?.(Jt.importWorktree);let a=await rf(n,{focus:o,pin:i});wt(),t.onStepDone?.(Jt.importWorktree,a.branch??""),t.onStepStart?.(Jt.activityLog);try{qt(a.repoPath,{timestamp:new Date().toISOString(),event:"import",branch:a.branch??c.branch??"unknown",path:a.path}),t.onStepDone?.(Jt.activityLog)}catch(u){t.onStepError?.(Jt.activityLog,u.message)}return a}var cf=de(()=>{sf();Te();jn();Wt();co()});import{basename as Yp,dirname as Zp,join as Qp}from"path";async function Ms(e,t={}){let{mainRepoPath:n,oldBranch:o,newBranch:i,worktreePath:r,movePath:c}=e,a=[{id:xt.renameBranch,label:`Renaming branch ${o} \u2192 ${i}`}];if(c)a.push({id:xt.movePath,label:"Moving worktree directory"});a.push({id:xt.activityLog,label:"Logging activity"}),t.onStepPlan?.(a),t.onStepStart?.(xt.renameBranch),await ie.exec(["branch","-m",o,i],n),wt(),t.onStepDone?.(xt.renameBranch);let u=r,d=!1;if(c){t.onStepStart?.(xt.movePath);let m=i.replace(/\//g,"-"),p=o.replace(/\//g,"-"),x=Zp(r),W=Yp(r).replace(p,m),b=Qp(x,W);if(b!==r)await ie.move(r,b,n),wt(),u=b,d=!0,t.onStepDone?.(xt.movePath,`${r} \u2192 ${b}`);else t.onStepDone?.(xt.movePath,"path already matches new branch slug")}t.onStepStart?.(xt.activityLog);try{qt(n,{timestamp:new Date().toISOString(),event:"rename",branch:i,details:{oldBranch:o}}),t.onStepDone?.(xt.activityLog)}catch(m){t.onStepError?.(xt.activityLog,m.message)}return{oldBranch:o,newBranch:i,newWorktreePath:u,moved:d}}var af=de(()=>{Te();jn();co()});var wn=de(()=>{Ul();Ss();Nl();cf();af();co()});var Np,Lt,Nr,$p,Mo,g;var pt=de(()=>{Xe();Np={opencode:{bg:{base:"#090909",surface:"#111111",elevated:"#1a1a1a",overlay:"#000000"},border:{default:"#2a2a2a",active:"#4fc3f7",subtle:"#1e1e1e"},text:{primary:"#e8e8e8",secondary:"#666666",accent:"#4fc3f7",success:"#4ade80",warning:"#fbbf24",error:"#f87171",selected:"#ffffff"},tab:{active:"#4fc3f7",activeBg:"#1a1a1a",inactive:"#555555",inactiveBg:"#000000"},select:{focusedBg:"#1a2a3a",focusedFg:"#4fc3f7",selectedBg:"#161616",selectedFg:"#e8e8e8",normalFg:"#e8e8e8",descFg:"#666666"}},"tokyo-night":{bg:{base:"#1a1b26",surface:"#1f2335",elevated:"#24283b",overlay:"#0d1117"},border:{default:"#3b4261",active:"#7aa2f7",subtle:"#292e42"},text:{primary:"#c0caf5",secondary:"#565f89",accent:"#7aa2f7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",selected:"#ffffff"},tab:{active:"#7aa2f7",activeBg:"#24283b",inactive:"#565f89",inactiveBg:"#1a1b26"},select:{focusedBg:"#283457",focusedFg:"#7aa2f7",selectedBg:"#2a2f44",selectedFg:"#c0caf5",normalFg:"#c0caf5",descFg:"#565f89"}},dracula:{bg:{base:"#282a36",surface:"#21222c",elevated:"#343746",overlay:"#191a21"},border:{default:"#6272a4",active:"#bd93f9",subtle:"#44475a"},text:{primary:"#f8f8f2",secondary:"#6272a4",accent:"#bd93f9",success:"#50fa7b",warning:"#ffb86c",error:"#ff5555",selected:"#ffffff"},tab:{active:"#bd93f9",activeBg:"#343746",inactive:"#6272a4",inactiveBg:"#282a36"},select:{focusedBg:"#44475a",focusedFg:"#bd93f9",selectedBg:"#383a4a",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#6272a4"}},nord:{bg:{base:"#2e3440",surface:"#3b4252",elevated:"#434c5e",overlay:"#242933"},border:{default:"#4c566a",active:"#81a1c1",subtle:"#3b4252"},text:{primary:"#eceff4",secondary:"#4c566a",accent:"#81a1c1",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",selected:"#ffffff"},tab:{active:"#88c0d0",activeBg:"#434c5e",inactive:"#4c566a",inactiveBg:"#2e3440"},select:{focusedBg:"#3b4252",focusedFg:"#88c0d0",selectedBg:"#3b4252",selectedFg:"#eceff4",normalFg:"#eceff4",descFg:"#4c566a"}},catppuccin:{bg:{base:"#1e1e2e",surface:"#181825",elevated:"#313244",overlay:"#11111b"},border:{default:"#45475a",active:"#cba6f7",subtle:"#313244"},text:{primary:"#cdd6f4",secondary:"#585b70",accent:"#cba6f7",success:"#a6e3a1",warning:"#fab387",error:"#f38ba8",selected:"#ffffff"},tab:{active:"#cba6f7",activeBg:"#313244",inactive:"#585b70",inactiveBg:"#1e1e2e"},select:{focusedBg:"#313244",focusedFg:"#cba6f7",selectedBg:"#313244",selectedFg:"#cdd6f4",normalFg:"#cdd6f4",descFg:"#585b70"}},"github-dark":{bg:{base:"#0d1117",surface:"#161b22",elevated:"#21262d",overlay:"#010409"},border:{default:"#30363d",active:"#58a6ff",subtle:"#21262d"},text:{primary:"#e6edf3",secondary:"#484f58",accent:"#58a6ff",success:"#3fb950",warning:"#d29922",error:"#f85149",selected:"#ffffff"},tab:{active:"#58a6ff",activeBg:"#21262d",inactive:"#484f58",inactiveBg:"#0d1117"},select:{focusedBg:"#1f2937",focusedFg:"#58a6ff",selectedBg:"#1f2937",selectedFg:"#e6edf3",normalFg:"#e6edf3",descFg:"#484f58"}},"one-dark":{bg:{base:"#282c34",surface:"#21252b",elevated:"#2c313a",overlay:"#1b1f27"},border:{default:"#3e4451",active:"#61afef",subtle:"#2c313a"},text:{primary:"#abb2bf",secondary:"#5c6370",accent:"#61afef",success:"#98c379",warning:"#e5c07b",error:"#e06c75",selected:"#ffffff"},tab:{active:"#61afef",activeBg:"#2c313a",inactive:"#5c6370",inactiveBg:"#282c34"},select:{focusedBg:"#2c313a",focusedFg:"#61afef",selectedBg:"#2c313a",selectedFg:"#abb2bf",normalFg:"#abb2bf",descFg:"#5c6370"}},monokai:{bg:{base:"#272822",surface:"#1e1f1c",elevated:"#3e3d32",overlay:"#1a1b18"},border:{default:"#49483e",active:"#a6e22e",subtle:"#3e3d32"},text:{primary:"#f8f8f2",secondary:"#75715e",accent:"#66d9ef",success:"#a6e22e",warning:"#e6db74",error:"#f92672",selected:"#ffffff"},tab:{active:"#a6e22e",activeBg:"#3e3d32",inactive:"#75715e",inactiveBg:"#272822"},select:{focusedBg:"#3e3d32",focusedFg:"#66d9ef",selectedBg:"#3e3d32",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#75715e"}},"github-light":{bg:{base:"#ffffff",surface:"#f6f8fa",elevated:"#eaeef2",overlay:"#d0d7de"},border:{default:"#d0d7de",active:"#0969da",subtle:"#eaeef2"},text:{primary:"#1f2328",secondary:"#656d76",accent:"#0969da",success:"#1a7f37",warning:"#9a6700",error:"#cf222e",selected:"#000000"},tab:{active:"#0969da",activeBg:"#eaeef2",inactive:"#656d76",inactiveBg:"#ffffff"},select:{focusedBg:"#ddf4ff",focusedFg:"#0969da",selectedBg:"#eaeef2",selectedFg:"#1f2328",normalFg:"#1f2328",descFg:"#656d76"}}},Lt=["opencode","tokyo-night","dracula","nord","catppuccin","github-dark","one-dark","monokai","github-light"],Nr={opencode:"OpenCode","tokyo-night":"Tokyo Night",dracula:"Dracula",nord:"Nord",catppuccin:"Catppuccin Mocha","github-dark":"GitHub Dark","one-dark":"One Dark",monokai:"Monokai","github-light":"GitHub Light"},[$p,Mo]=ue("opencode"),g=new Proxy({},{get(e,t){return new Proxy({},{get(n,o){return Np[$p()][t]?.[o]}})}})});import{basename as _p}from"path";function lf(e){let t=ut(),n=mt(),o=An(),[i,r]=ue("confirming"),[c,a]=ue(""),[u,d]=ue(0),m=()=>{let W=n.worktrees()??[],b=t.selectedWorktrees(),R=[];for(let v of b){let k=W.find((S)=>S.path===v);if(k&&!k.isMain)R.push({branch:k.branch??"(detached)",path:k.path,repoPath:k.repoPath})}return R},p=()=>{t.setShowBulkActions(!1),r("confirming"),a(""),d(0)},x=async()=>{let W=m();if(W.length===0){p();return}r("executing"),d(0);let b=Pe(),R=[],v=[],k=0;for(let S=0;S<W.length;S++){let y=W[S];a(`Removing ${y.branch} (${S+1}/${W.length})...`),d(S);try{if(await ie.isDirty(y.path)){v.push(y.branch);continue}let B=_p(y.repoPath);await ao(b,{worktreePath:y.path,mainRepoPath:y.repoPath,repoName:B,branch:y.branch==="(detached)"?null:y.branch,force:!1}),k++}catch(O){R.push(`${y.branch}: ${O.message}`)}}if(wt(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),R.length>0){r("error");let S=[`Failed: ${R.join("; ")}`];if(v.length>0)S.push(`Skipped ${v.length} dirty worktree(s)`);a(S.join(". ")),o.addToast({message:`Failed to remove ${R.length} worktree(s)`,type:"error"}),setTimeout(p,3000)}else if(v.length>0)r("done"),a(`Removed ${k}, skipped ${v.length} dirty: ${v.join(", ")}`),o.addToast({message:`Removed ${k}, skipped ${v.length} dirty`,type:"warning"}),setTimeout(p,2000);else r("done"),a(`Removed ${W.length} worktree(s) successfully!`),o.addToast({message:`Removed ${W.length} worktrees`,type:"success"}),setTimeout(p,1500)};ft(async(W)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let b=W.name;if(i()==="executing")return;if(b==="escape"){p();return}if((b==="return"||b==="enter")&&i()==="confirming")await x()});let D=()=>m().length;return(()=>{var W=l("box"),b=l("box"),R=l("box"),v=l("text"),k=l("box"),S=l("text"),y=l("box");return f(W,b),s(W,"x",0),s(W,"y",0),f(b,R),f(b,k),f(b,y),s(b,"x",2),s(b,"y",1),s(b,"flexDirection","column"),f(R,v),s(R,"height",1),f(v,V("Bulk Delete Worktrees")),s(v,"x",0),s(v,"y",0),f(k,S),s(k,"height",1),s(S,"x",0),s(S,"y",0),T(S,()=>"\u2500".repeat(Math.max(e.w-5,10))),s(y,"height",1),T(b,Z(re,{get when(){return i()==="confirming"},get children(){return[(()=>{var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",0),s(B,"y",0),T(B,()=>`Delete ${D()} worktree(s)?`),H((I)=>s(B,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box");return s(O,"height",1),O})(),Z(tt,{get each(){return m().slice(0,Math.max(e.h-10,5))},children:(O)=>(()=>{var B=l("box"),I=l("text");return f(B,I),s(B,"height",1),s(I,"x",2),s(I,"y",0),T(I,()=>`\u2022 ${O.branch}`),H((q)=>s(I,"fg",g.text.accent,q)),B})()}),Z(re,{get when(){return D()>Math.max(e.h-10,5)},get children(){var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",2),s(B,"y",0),T(B,()=>`... and ${D()-Math.max(e.h-10,5)} more`),H((I)=>s(B,"fg",g.text.secondary,I)),O}}),(()=>{var O=l("box");return s(O,"height",1),O})(),(()=>{var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),f(B,V("Enter:delete all Esc:cancel")),s(B,"x",0),s(B,"y",0),H((I)=>s(B,"fg",g.text.secondary,I)),O})()]}}),null),T(b,Z(re,{get when(){return i()==="executing"},get children(){return[(()=>{var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",0),s(B,"y",0),T(B,c),H((I)=>s(B,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",0),s(B,"y",0),T(B,()=>`Progress: ${u()+1}/${D()}`),H((I)=>s(B,"fg",g.text.secondary,I)),O})()]}}),null),T(b,Z(re,{get when(){return i()==="done"},get children(){var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",0),s(B,"y",0),T(B,c),H((I)=>s(B,"fg",g.text.success,I)),O}}),null),T(b,Z(re,{get when(){return i()==="error"},get children(){var O=l("box"),B=l("text");return f(O,B),s(O,"height",1),s(B,"x",0),s(B,"y",0),T(B,c),H((I)=>s(B,"fg",g.text.error,I)),O}}),null),H((O)=>{var{w:B,h:I}=e,q=g.bg.base,Y=e.w-3,X=e.h-2,J=g.bg.base,z=g.text.error,Q=g.border.subtle;return B!==O.e&&(O.e=s(W,"width",B,O.e)),I!==O.t&&(O.t=s(W,"height",I,O.t)),q!==O.a&&(O.a=s(W,"backgroundColor",q,O.a)),Y!==O.o&&(O.o=s(b,"width",Y,O.o)),X!==O.i&&(O.i=s(b,"height",X,O.i)),J!==O.n&&(O.n=s(b,"backgroundColor",J,O.n)),z!==O.s&&(O.s=s(v,"fg",z,O.s)),Q!==O.h&&(O.h=s(S,"fg",Q,O.h)),O},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),W})()}var ff=de(()=>{_();_();_();_();_();_();_();Xe();Nt();Co();on();Te();ze();wn();_();pt()});function Vn(e){let t=ot(),n=()=>Math.max(0,Math.floor((t().width-e.width)/2)),o=()=>Math.max(0,Math.floor((t().height-e.height)/2)),i=()=>(()=>{var r=l("box");return s(r,"border",!0),s(r,"borderStyle","rounded"),s(r,"flexDirection","column"),s(r,"paddingX",1),s(r,"paddingY",1),s(r,"titleAlignment","left"),s(r,"position","absolute"),T(r,()=>e.children,null),T(r,Z(re,{get when(){return e.footer},get children(){return e.footer}}),null),H((c)=>{var a=n(),u=o(),d=e.width,m=e.height,p=e.borderColor??g.border.active,x=e.backgroundColor??g.bg.surface,D=e.gap??0,W=e.title;return a!==c.e&&(c.e=s(r,"x",a,c.e)),u!==c.t&&(c.t=s(r,"y",u,c.t)),d!==c.a&&(c.a=s(r,"width",d,c.a)),m!==c.o&&(c.o=s(r,"height",m,c.o)),p!==c.i&&(c.i=s(r,"borderColor",p,c.i)),x!==c.n&&(c.n=s(r,"backgroundColor",x,c.n)),D!==c.s&&(c.s=s(r,"gap",D,c.s)),W!==c.h&&(c.h=s(r,"title",W,c.h)),c},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),r})();return Z(re,{get when(){return e.backdrop},get fallback(){return i()},get children(){var r=l("box");return s(r,"x",0),s(r,"y",0),s(r,"position","absolute"),T(r,i),H((c)=>{var a=t().width,u=t().height,d=e.backdropColor??g.bg.overlay;return a!==c.e&&(c.e=s(r,"width",a,c.e)),u!==c.t&&(c.t=s(r,"height",u,c.t)),d!==c.a&&(c.a=s(r,"backgroundColor",d,c.a)),c},{e:void 0,t:void 0,a:void 0}),r}})}var rr=de(()=>{_();_();_();_();_();Xe();_();pt()});import{decodePasteBytes as eg}from"@opentui/core";function uf(){let e=ut(),t=mt(),n=ot(),[o,i]=ue(""),[r,c]=ue(0);fn(()=>{e.setInputFocused(!0)}),it(()=>{e.setInputFocused(!1)});let a=()=>{let v=t.worktrees()??[],k=e.selectedWorktreePath();if(k){let S=v.find((y)=>y.path===k);if(S)return S}return v[e.selectedWorktreeIndex()]},u=()=>{let v=process.env.VISUAL||process.env.EDITOR;if(v)return v;let k=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let S of k)try{if(Bun.spawnSync(["which",S],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return S}catch{}return null},d=$e(()=>[{id:"add",label:"Add Worktree",description:"Create a new git worktree",action:()=>{e.setActiveTab("add"),e.setShowCommandPalette(!1)}},{id:"delete",label:"Delete Worktree",description:"Remove the selected worktree",action:()=>{let v=a();if(!v||v.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let v=a();if(!v)return;let k=u();if(!k)return;e.setShowCommandPalette(!1),Bun.spawn([k,v.path],{stdout:"inherit",stderr:"inherit"})}},{id:"refresh",label:"Refresh",description:"Reload worktree list",action:()=>{t.refetch(),e.setShowCommandPalette(!1)}},{id:"config",label:"Open Config",description:"View configuration",action:()=>{e.setActiveTab("config"),e.setShowCommandPalette(!1)}},{id:"doctor",label:"Run Doctor",description:"Check worktree health",action:()=>{e.setActiveTab("doctor"),e.setShowCommandPalette(!1)}},...Lt.map((v)=>({id:`theme:${v}`,label:`Theme: ${Nr[v]}`,description:"Switch color theme",action:()=>{Mo(v);try{let k=Ct(),S={...Pe()};S.theme=v,oo(k,JSON.stringify(S,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),m=$e(()=>{let v=o().toLowerCase();if(!v)return d();return d().filter((k)=>k.label.toLowerCase().includes(v)||k.description.toLowerCase().includes(v))});ft((v)=>{if(!e.showCommandPalette())return;let k=v.name;if(k==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(k==="return"||k==="enter"){let S=m()[r()];if(S)S.action();i(""),c(0);return}if(k==="down"||k==="j"){c((S)=>Math.min(S+1,m().length-1));return}if(k==="up"||k==="k"){c((S)=>Math.max(S-1,0));return}}),yo((v)=>{if(!e.inputFocused())return;let k=eg(v.bytes).replace(/\r?\n/g,"");if(!k)return;i((S)=>S+k),c(0)});let p=(v)=>{i(v),c(0)},x=()=>Math.max(50,Math.min(80,n().width-4)),D=()=>Math.max(10,Math.min(m().length+8,n().height-4)),W=()=>x()-4,b=()=>Math.max(W()-2,1),R=()=>D()-8;return Z(Vn,{get width(){return x()},get height(){return D()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var v=l("box"),k=l("text");return f(v,k),s(v,"height",1),T(k,()=>"\u2500".repeat(Math.max(W(),1))),H((S)=>{var y=W(),O=g.border.subtle;return y!==S.e&&(S.e=s(v,"width",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box"),k=l("text"),S=l("text"),y=l("text");return f(v,k),f(v,S),f(v,y),s(v,"flexDirection","row"),s(v,"gap",2),f(k,V("\u2191\u2193:navigate")),f(S,V("Enter:run")),f(y,V("Esc:close")),H((O)=>{var B=g.text.secondary,I=g.text.secondary,q=g.text.secondary;return B!==O.e&&(O.e=s(k,"fg",B,O.e)),I!==O.t&&(O.t=s(S,"fg",I,O.t)),q!==O.a&&(O.a=s(y,"fg",q,O.a)),O},{e:void 0,t:void 0,a:void 0}),v})()]},get children(){return[(()=>{var v=l("box"),k=l("text"),S=l("input");return f(v,k),f(v,S),s(v,"height",1),s(v,"flexDirection","row"),f(k,V("> ")),s(S,"onInput",p),s(S,"placeholder","Search commands..."),s(S,"focused",!0),H((y)=>{var O=W(),B=g.bg.elevated,I=g.text.accent,q=o(),Y=b(),X=g.bg.elevated,J=g.text.primary,z=g.text.secondary,Q=g.text.accent,ne=g.bg.elevated;return O!==y.e&&(y.e=s(v,"width",O,y.e)),B!==y.t&&(y.t=s(v,"backgroundColor",B,y.t)),I!==y.a&&(y.a=s(k,"fg",I,y.a)),q!==y.o&&(y.o=s(S,"value",q,y.o)),Y!==y.i&&(y.i=s(S,"width",Y,y.i)),X!==y.n&&(y.n=s(S,"backgroundColor",X,y.n)),J!==y.s&&(y.s=s(S,"textColor",J,y.s)),z!==y.h&&(y.h=s(S,"placeholderColor",z,y.h)),Q!==y.r&&(y.r=s(S,"cursorColor",Q,y.r)),ne!==y.d&&(y.d=s(S,"focusedBackgroundColor",ne,y.d)),y},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),v})(),(()=>{var v=l("box"),k=l("text");return f(v,k),s(v,"height",1),T(k,()=>"\u2500".repeat(Math.max(W(),1))),H((S)=>{var y=W(),O=g.border.subtle;return y!==S.e&&(S.e=s(v,"width",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box");return s(v,"flexDirection","column"),T(v,Z(tt,{get each(){return m().slice(0,R())},children:(k,S)=>{let y=()=>S()===r();return(()=>{var O=l("box"),B=l("text"),I=l("text");return f(O,B),f(O,I),s(O,"height",1),s(O,"onMouseDown",()=>{c(S()),k.action()}),s(B,"x",2),s(B,"y",0),T(B,()=>k.label),s(I,"y",0),T(I,()=>k.description),H((q)=>{var Y=W(),X=y()?g.select.focusedBg:g.bg.surface,J=y()?g.tab.active:g.text.primary,z=Math.max(25,k.label.length+4),Q=g.text.secondary;return Y!==q.e&&(q.e=s(O,"width",Y,q.e)),X!==q.t&&(q.t=s(O,"backgroundColor",X,q.t)),J!==q.a&&(q.a=s(B,"fg",J,q.a)),z!==q.o&&(q.o=s(I,"x",z,q.o)),Q!==q.i&&(q.i=s(I,"fg",Q,q.i)),q},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),O})()}}),null),T(v,Z(re,{get when(){return m().length===0},get children(){var k=l("box"),S=l("text");return f(k,S),s(k,"height",1),f(S,V("No commands found")),s(S,"x",2),s(S,"y",0),H((y)=>s(S,"fg",g.text.secondary,y)),k}}),null),H((k)=>{var S=W(),y=R(),O=g.bg.surface;return S!==k.e&&(k.e=s(v,"width",S,k.e)),y!==k.t&&(k.t=s(v,"height",y,k.t)),O!==k.a&&(k.a=s(v,"backgroundColor",O,k.a)),k},{e:void 0,t:void 0,a:void 0}),v})()]}})}var df=de(()=>{_();_();_();_();_();_();_();Xe();Nt();on();_();pt();rr();ze()});import{decodePasteBytes as tg}from"@opentui/core";import{spawnSync as ng}from"child_process";function xn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function hg(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function yt(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function Ls(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function mg(e){let t=[];if(!e)return t;if(t.push({key:"top.version",kind:"field",label:"version",value:String(e.version),rawValue:e.version,path:["version"],editKind:null,depth:0}),t.push({key:"top.theme",kind:"field",label:"theme",value:e.theme??"(default: opencode)",rawValue:e.theme,path:["theme"],editKind:"theme",depth:0}),t.push({key:"top.terminalCommand",kind:"field",label:"terminalCommand",value:e.terminalCommand??"(auto)",rawValue:e.terminalCommand,path:["terminalCommand"],editKind:"string",depth:0,suggestions:ig}),e.activeProfile!==void 0||e.profiles&&Object.keys(e.profiles).length>0)t.push({key:"top.activeProfile",kind:"field",label:"activeProfile",value:e.activeProfile??"(none)",rawValue:e.activeProfile,path:["activeProfile"],editKind:null,depth:0});t.push({key:"sp.top",kind:"spacer",label:"",depth:0}),t.push({key:"sec.defaults",kind:"section",label:"Defaults",depth:0});let n=e.defaults??{};if(t.push({key:"d.worktreeDir",kind:"field",label:"worktreeDir",value:n.worktreeDir??"(not set)",rawValue:n.worktreeDir,path:["defaults","worktreeDir"],editKind:"string",depth:1,suggestions:As}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:yt(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:$r}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:yt(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:_r}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:yt(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:Ws}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:yt(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:ei}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:Ls(n.autoUpstream),rawValue:n.autoUpstream,path:["defaults","autoUpstream"],editKind:"boolean",depth:1}),n.sharedDeps)t.push({key:"d.sharedDeps.header",kind:"section",label:"sharedDeps",depth:1}),t.push({key:"d.sharedDeps.strategy",kind:"field",label:"strategy",value:n.sharedDeps.strategy??"(not set)",rawValue:n.sharedDeps.strategy,path:["defaults","sharedDeps","strategy"],editKind:"enum",depth:2,suggestions:fg}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:yt(n.sharedDeps.paths),rawValue:n.sharedDeps.paths,path:["defaults","sharedDeps","paths"],editKind:"strArray",depth:2,suggestions:ug}),t.push({key:"d.sharedDeps.invalidateOn",kind:"field",label:"invalidateOn",value:yt(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:dg});let o=e.workspaces??[];if(o.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${o.length})`,depth:0}),o.forEach((r,c)=>{let a=r.path.split("/").pop()||r.path;t.push({key:`w${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`w${c}.path`,kind:"field",label:"path",value:r.path,rawValue:r.path,path:["workspaces",c,"path"],editKind:null,depth:2}),t.push({key:`w${c}.depth`,kind:"field",label:"depth",value:r.depth===void 0?"(default: 1)":String(r.depth),rawValue:r.depth,path:["workspaces",c,"depth"],editKind:null,depth:2}),t.push({key:`w${c}.exclude`,kind:"field",label:"exclude",value:yt(r.exclude),rawValue:r.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[yn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let u=r.defaults;if(u)t.push({key:`w${c}.defaults.header`,kind:"section",label:"defaults",depth:2}),t.push({key:`w${c}.defaults.worktreeDir`,kind:"field",label:"worktreeDir",value:u.worktreeDir??"(inherits)",rawValue:u.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:As}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:yt(u.copyFiles),rawValue:u.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:$r}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:yt(u.linkFiles),rawValue:u.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:_r}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:yt(u.postCreate),rawValue:u.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:Ws}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:yt(u.postRemove),rawValue:u.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:ei}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:Ls(u.autoUpstream),rawValue:u.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<o.length-1)t.push({key:`sp.w${c}`,kind:"spacer",label:"",depth:0})});let i=e.repos??[];if(t.push({key:"sp.repos",kind:"spacer",label:"",depth:0}),t.push({key:"sec.repos",kind:"section",label:`Repos (${i.length})`,depth:0}),i.length===0)t.push({key:"repos.empty",kind:"field",label:"(none)",value:"add repos via 'e' to edit config file",rawValue:null,editKind:null,depth:1});if(i.forEach((r,c)=>{let a=r.path.split("/").pop()??r.path;if(t.push({key:`r${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`r${c}.path`,kind:"field",label:"path",value:r.path,rawValue:r.path,path:["repos",c,"path"],editKind:null,depth:2}),t.push({key:`r${c}.worktreeDir`,kind:"field",label:"worktreeDir",value:r.worktreeDir??"(inherits)",rawValue:r.worktreeDir,path:["repos",c,"worktreeDir"],editKind:"string",depth:2,suggestions:As}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:yt(r.copyFiles),rawValue:r.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:$r}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:yt(r.linkFiles),rawValue:r.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:_r}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:yt(r.postCreate),rawValue:r.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:Ws}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:yt(r.postRemove),rawValue:r.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:ei}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:Ls(r.autoUpstream),rawValue:r.autoUpstream,path:["repos",c,"autoUpstream"],editKind:"boolean",depth:2}),r.monorepo){t.push({key:`r${c}.mr.header`,kind:"section",label:"monorepo",depth:2}),t.push({key:`r${c}.mr.autoDetect`,kind:"field",label:"autoDetect",value:r.monorepo.autoDetect===void 0?"(not set)":String(r.monorepo.autoDetect),rawValue:r.monorepo.autoDetect,path:["repos",c,"monorepo","autoDetect"],editKind:"boolean",depth:3}),t.push({key:`r${c}.mr.extraPatterns`,kind:"field",label:"extraPatterns",value:xn(r.monorepo.extraPatterns),rawValue:r.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:sg});let u=r.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${u.length})`,depth:3}),u.forEach((d,m)=>{t.push({key:`r${c}.h${m}.header`,kind:"section",label:`[${m}] ${d.glob}`,depth:4}),t.push({key:`r${c}.h${m}.glob`,kind:"field",label:"glob",value:d.glob,rawValue:d.glob,path:["repos",c,"monorepo","hooks",m,"glob"],editKind:"string",depth:5,suggestions:cg}),t.push({key:`r${c}.h${m}.copyFiles`,kind:"field",label:"copyFiles",value:xn(d.copyFiles),rawValue:d.copyFiles,path:["repos",c,"monorepo","hooks",m,"copyFiles"],editKind:"strArray",depth:5,suggestions:$r}),t.push({key:`r${c}.h${m}.linkFiles`,kind:"field",label:"linkFiles",value:xn(d.linkFiles),rawValue:d.linkFiles,path:["repos",c,"monorepo","hooks",m,"linkFiles"],editKind:"strArray",depth:5,suggestions:_r}),t.push({key:`r${c}.h${m}.postCreate`,kind:"field",label:"postCreate",value:xn(d.postCreate),rawValue:d.postCreate,path:["repos",c,"monorepo","hooks",m,"postCreate"],editKind:"strArray",depth:5,suggestions:ag}),t.push({key:`r${c}.h${m}.postRemove`,kind:"field",label:"postRemove",value:xn(d.postRemove),rawValue:d.postRemove,path:["repos",c,"monorepo","hooks",m,"postRemove"],editKind:"strArray",depth:5,suggestions:ei})})}if(c<i.length-1)t.push({key:`sp.r${c}`,kind:"spacer",label:"",depth:0})}),e.templates&&Object.keys(e.templates).length>0){t.push({key:"sp.templates",kind:"spacer",label:"",depth:0}),t.push({key:"sec.templates",kind:"section",label:`Templates (${Object.keys(e.templates).length})`,depth:0});for(let[r,c]of Object.entries(e.templates)){if(t.push({key:`t.${r}.header`,kind:"section",label:r,depth:1}),c.base!==void 0)t.push({key:`t.${r}.base`,kind:"field",label:"base",value:c.base,rawValue:c.base,path:["templates",r,"base"],editKind:"string",depth:2});if(c.worktreeDir!==void 0)t.push({key:`t.${r}.worktreeDir`,kind:"field",label:"worktreeDir",value:c.worktreeDir,rawValue:c.worktreeDir,path:["templates",r,"worktreeDir"],editKind:"string",depth:2});if(c.copyFiles!==void 0)t.push({key:`t.${r}.copyFiles`,kind:"field",label:"copyFiles",value:xn(c.copyFiles),rawValue:c.copyFiles,path:["templates",r,"copyFiles"],editKind:"strArray",depth:2});if(c.linkFiles!==void 0)t.push({key:`t.${r}.linkFiles`,kind:"field",label:"linkFiles",value:xn(c.linkFiles),rawValue:c.linkFiles,path:["templates",r,"linkFiles"],editKind:"strArray",depth:2});if(c.postCreate!==void 0)t.push({key:`t.${r}.postCreate`,kind:"field",label:"postCreate",value:xn(c.postCreate),rawValue:c.postCreate,path:["templates",r,"postCreate"],editKind:"strArray",depth:2});if(c.postRemove!==void 0)t.push({key:`t.${r}.postRemove`,kind:"field",label:"postRemove",value:xn(c.postRemove),rawValue:c.postRemove,path:["templates",r,"postRemove"],editKind:"strArray",depth:2});if(c.autoUpstream!==void 0)t.push({key:`t.${r}.autoUpstream`,kind:"field",label:"autoUpstream",value:String(c.autoUpstream),rawValue:c.autoUpstream,path:["templates",r,"autoUpstream"],editKind:"boolean",depth:2})}}if(e.lifecycle){if(t.push({key:"sp.lifecycle",kind:"spacer",label:"",depth:0}),t.push({key:"sec.lifecycle",kind:"section",label:"Lifecycle",depth:0}),e.lifecycle.autoCleanMerged!==void 0)t.push({key:"lc.autoCleanMerged",kind:"field",label:"autoCleanMerged",value:String(e.lifecycle.autoCleanMerged),rawValue:e.lifecycle.autoCleanMerged,path:["lifecycle","autoCleanMerged"],editKind:"boolean",depth:1});if(e.lifecycle.staleAfterDays!==void 0)t.push({key:"lc.staleAfterDays",kind:"field",label:"staleAfterDays",value:String(e.lifecycle.staleAfterDays),rawValue:e.lifecycle.staleAfterDays,path:["lifecycle","staleAfterDays"],editKind:null,depth:1});if(e.lifecycle.maxWorktrees!==void 0)t.push({key:"lc.maxWorktrees",kind:"field",label:"maxWorktrees",value:String(e.lifecycle.maxWorktrees),rawValue:e.lifecycle.maxWorktrees,path:["lifecycle","maxWorktrees"],editKind:null,depth:1})}if(e.sessions){t.push({key:"sp.sessions",kind:"spacer",label:"",depth:0}),t.push({key:"sec.sessions",kind:"section",label:"Sessions",depth:0});let r=e.sessions;if(r.enabled!==void 0)t.push({key:"s.enabled",kind:"field",label:"enabled",value:String(r.enabled),rawValue:r.enabled,path:["sessions","enabled"],editKind:"boolean",depth:1});if(r.autoCreate!==void 0)t.push({key:"s.autoCreate",kind:"field",label:"autoCreate",value:String(r.autoCreate),rawValue:r.autoCreate,path:["sessions","autoCreate"],editKind:"boolean",depth:1});if(r.autoKill!==void 0)t.push({key:"s.autoKill",kind:"field",label:"autoKill",value:String(r.autoKill),rawValue:r.autoKill,path:["sessions","autoKill"],editKind:"boolean",depth:1});if(r.prefix!==void 0)t.push({key:"s.prefix",kind:"field",label:"prefix",value:r.prefix,rawValue:r.prefix,path:["sessions","prefix"],editKind:"string",depth:1,suggestions:lg});if(r.defaultLayout!==void 0)t.push({key:"s.defaultLayout",kind:"field",label:"defaultLayout",value:r.defaultLayout,rawValue:r.defaultLayout,path:["sessions","defaultLayout"],editKind:"string",depth:1});if(r.layouts&&Object.keys(r.layouts).length>0){t.push({key:"s.layouts.header",kind:"section",label:`layouts (${Object.keys(r.layouts).length})`,depth:1});for(let[c,a]of Object.entries(r.layouts))t.push({key:`s.layouts.${c}`,kind:"field",label:c,value:`${a.windows?.length??0} window(s)`,rawValue:a,path:["sessions","layouts",c],editKind:null,depth:2})}}if(e.profiles&&Object.keys(e.profiles).length>0){t.push({key:"sp.profiles",kind:"spacer",label:"",depth:0}),t.push({key:"sec.profiles",kind:"section",label:`Profiles (${Object.keys(e.profiles).length})`,depth:0});for(let r of Object.keys(e.profiles)){let c=e.activeProfile===r;t.push({key:`p.${r}`,kind:"field",label:r,value:c?"active":"",rawValue:r,path:["profiles",r],editKind:null,depth:1})}}return t}function hf(){let e=ut(),t=ot(),n=Ct(),o=()=>{try{return{cfg:Ii(),error:""}}catch(h){return{cfg:null,error:h.message}}},i=o(),[r,c]=ue(i.cfg),[a,u]=ue(i.error),[d,m]=ue(""),[p,x]=ue("info"),[D,W]=ue(0),[b,R]=ue(0),[v,k]=ue(!1),[S,y]=ue(null),[O,B]=ue(null),[I,q]=ue(""),[Y,X]=ue(!1),[J,z]=ue(0),[Q,ne]=ue([]),[te,Re]=ue(-1),[me,ke]=ue(0),E=$e(()=>mg(r())),A=$e(()=>{let h=[],F=E();for(let P=0;P<F.length;P++){let M=F[P];if(M.kind==="field"&&M.editKind!==null)h.push(P)}return h}),U=()=>{let h=A();if(h.length===0)return-1;let F=Math.max(0,Math.min(D(),h.length-1));return h[F]??-1},K=()=>{let h=U();if(h<0)return null;return E()[h]??null},j=(h,F="info")=>{m(h),x(F)},ee=()=>{let h=o();c(h.cfg),u(h.error)},he=()=>{let h=K();if(!h||!h.editKind||!h.path){j("Field is read-only (press 'e' to edit the file directly)","info");return}let F=h.suggestions??[];if(y(h.editKind),B(h.path),ne(F),e.setInputFocused(!0),h.editKind==="string"){let P=typeof h.rawValue==="string"?h.rawValue:"";q(P),Re(F.indexOf(P))}else if(h.editKind==="strArray"){let P=Array.isArray(h.rawValue)?h.rawValue:[],M=JSON.stringify(P);q(M),Re(F.indexOf(M))}else if(h.editKind==="boolean")X(h.rawValue===!0),Re(-1);else if(h.editKind==="theme"){let P=typeof h.rawValue==="string"?h.rawValue:"opencode",M=Lt.indexOf(P);z(M>=0?M:0),Re(-1)}else if(h.editKind==="enum"){let P=h.suggestions??[],M=typeof h.rawValue==="string"?h.rawValue:"",G=P.indexOf(M);ke(G>=0?G:0),Re(-1)}k(!0)},se=()=>{k(!1),B(null),y(null),q(""),ne([]),Re(-1),e.setInputFocused(!1)},xe=(h)=>{let F=Q();if(F.length===0)return;let P=(te()+h+F.length)%F.length;Re(P);let M=F[P]??"",G=S();if(G==="string"||G==="strArray")q(M)},Oe=()=>{let h=O(),F=S();if(!h||!F){se();return}let P;if(F==="string"){let M=I();P=M.length===0?void 0:M}else if(F==="strArray"){let M=I().trim();if(M.length===0)P=[];else try{let G=JSON.parse(M);if(!Array.isArray(G)||G.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");P=G}catch(G){j(`Invalid JSON: ${G.message}`,"error");return}}else if(F==="boolean")P=Y();else if(F==="theme")P=Lt[J()];else if(F==="enum")P=Q()[me()];try{Kt();let M=Ii();ua(M,h,P);let G=no(M);if(G.length>0){let oe=G[0];j(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(oo(n,`${JSON.stringify(M,null,2)}
22
+ `),F==="theme"&&typeof P==="string"&&Lt.includes(P))Mo(P);ee(),j("Saved","success"),k(!1),B(null),y(null),q(""),ne([]),Re(-1),e.setInputFocused(!1)}catch(M){j(`Save failed: ${M.message}`,"error")}};ft((h)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let F=h.name;if(v()){if(F==="escape"){se();return}let P=S();if(P==="string"||P==="strArray"){if(F==="tab"){xe(h.shift?-1:1);return}if(F==="return"||F==="enter")Oe();return}if(P==="boolean"){if(F==="space"||F==="tab"||F==="left"||F==="right"||F==="h"||F==="l"){X((M)=>!M);return}if(F==="return"||F==="enter")Oe();return}if(P==="theme"){if(F==="left"||F==="up"||F==="h"||F==="k"||F==="tab"&&h.shift){z((M)=>(M-1+Lt.length)%Lt.length);return}if(F==="right"||F==="down"||F==="l"||F==="j"||F==="tab"){z((M)=>(M+1)%Lt.length);return}if(F==="return"||F==="enter")Oe();return}if(P==="enum"){let M=Q();if(M.length===0)return;if(F==="left"||F==="up"||F==="h"||F==="k"||F==="tab"&&h.shift){ke((G)=>(G-1+M.length)%M.length);return}if(F==="right"||F==="down"||F==="l"||F==="j"||F==="tab"){ke((G)=>(G+1)%M.length);return}if(F==="return"||F==="enter")Oe();return}return}if(e.inputFocused())return;if(F==="j"||F==="down"){W((P)=>Math.min(P+1,A().length-1));return}if(F==="k"||F==="up"){W((P)=>Math.max(P-1,0));return}if(F==="g"){W(0);return}if(F==="G"){W(Math.max(A().length-1,0));return}if(F==="return"||F==="enter"){he();return}if(F==="e"){let P=process.env.EDITOR??process.env.VISUAL??"vi";Kt(),ng(P,[n],{stdio:"inherit"}),ee(),j("Config reloaded","info");return}if(F==="r"){ee(),j("Reloaded","info");return}if(F==="i"){Kt(),ee(),j("Initialized","info");return}}),yo((h)=>{if(!v())return;let F=S();if(F!=="string"&&F!=="strArray")return;let P=tg(h.bytes).replace(/\r?\n/g,"");if(!P)return;q((M)=>M+P)});let pe=()=>Math.max(t().height-10,5);At(nn([D,E],()=>{let h=U();if(h<0)return;let F=pe();if(h<b())R(h);else if(h>=b()+F)R(h-F+1)})),it(()=>{e.setInputFocused(!1)});let Fe=$e(()=>{let h=b();return E().slice(h,h+pe()).map((F,P)=>({row:F,globalIdx:h+P}))}),De=()=>A().length,Le=()=>{let h=E().length;if(h<=pe())return"";let F=Math.min(b()+pe(),h);return`${b()+1}-${F}/${h}`},L=()=>t().width,w=()=>Math.max(L()-4-rg-4,20);return(()=>{var h=l("box"),F=l("box"),P=l("box"),M=l("text"),G=l("b"),oe=l("box"),fe=l("text"),Ve=l("text"),He=l("box");return f(h,F),f(h,He),s(h,"x",0),s(h,"y",0),s(h,"width","100%"),s(h,"height","100%"),s(h,"flexDirection","column"),f(F,P),f(F,oe),s(F,"width","100%"),s(F,"height","100%"),s(F,"flexDirection","column"),s(F,"paddingX",2),s(F,"paddingY",1),f(P,M),s(P,"height",1),s(P,"flexDirection","row"),f(M,G),f(G,V("Configuration")),T(P,Z(re,{get when(){return!!Le()},get children(){var $=l("text"),ae=V(" ");return f($,ae),T($,()=>` \xB7 ${Le()}`,null),H((ce)=>s($,"fg",g.text.secondary,ce)),$}}),null),T(P,Z(re,{get when(){return De()>0},get children(){var $=l("text"),ae=V(" ");return f($,ae),T($,()=>` \xB7 ${D()+1}/${De()}`,null),H((ce)=>s($,"fg",g.text.secondary,ce)),$}}),null),f(oe,fe),f(oe,Ve),s(oe,"height",1),s(oe,"flexDirection","row"),s(oe,"gap",1),f(fe,V("Path:")),T(Ve,n),T(F,Z(re,{get when(){return!!a()},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"height",1),s($,"flexDirection","row"),s($,"gap",1),f(ae,V("Load error:")),T(ce,a),H((N)=>{var Se=g.text.error,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),null),T(F,Z(re,{get when(){return Ie(()=>!r())()&&!a()},get children(){var $=l("box"),ae=l("text"),ce=l("box"),N=l("text"),Se=l("text"),ye=l("text");return f($,ae),f($,ce),s($,"flexDirection","column"),s($,"gap",1),f(ae,V("No config file found.")),f(ce,N),f(ce,Se),f(ce,ye),s(ce,"flexDirection","row"),s(ce,"gap",1),f(N,V("Press")),f(Se,V("i")),f(ye,V("to initialize with defaults.")),H((qe)=>{var Ke=g.text.warning,rt=g.text.secondary,vt=g.text.accent,Me=g.text.secondary;return Ke!==qe.e&&(qe.e=s(ae,"fg",Ke,qe.e)),rt!==qe.t&&(qe.t=s(N,"fg",rt,qe.t)),vt!==qe.a&&(qe.a=s(Se,"fg",vt,qe.a)),Me!==qe.o&&(qe.o=s(ye,"fg",Me,qe.o)),qe},{e:void 0,t:void 0,a:void 0,o:void 0}),$}}),null),T(F,Z(re,{get when(){return!!r()},get children(){return[(()=>{var $=l("box"),ae=l("text");return f($,ae),s($,"height",1),T(ae,()=>"\u2500".repeat(Math.max(L()-34,10))),H((ce)=>s(ae,"fg",g.border.subtle,ce)),$})(),(()=>{var $=l("box");return s($,"flexDirection","column"),T($,Z(tt,{get each(){return Fe()},children:(ae)=>{let ce=ae.row,N=()=>ae.globalIdx===U(),Se=()=>v()&&N(),ye=" ".repeat(ce.depth*og);if(ce.kind==="spacer")return(()=>{var Ke=l("box"),rt=l("text");return f(Ke,rt),s(Ke,"height",1),f(rt,V(" ")),H((vt)=>s(rt,"fg",g.text.secondary,vt)),Ke})();if(ce.kind==="section")return(()=>{var Ke=l("box"),rt=l("text");return f(Ke,rt),s(Ke,"height",1),s(Ke,"flexDirection","row"),T(rt,ye,null),T(rt,()=>ce.label,null),H((vt)=>s(rt,"fg",g.text.accent,vt)),Ke})();let qe=()=>{let Ke=N()?"\u25B8 ":" ";return`${ye}${Ke}${ce.label}`};return(()=>{var Ke=l("box"),rt=l("box"),vt=l("text");return f(Ke,rt),s(Ke,"height",1),s(Ke,"flexDirection","row"),f(rt,vt),s(rt,"width",30),s(rt,"height",1),T(vt,qe),T(Ke,Z(re,{get when(){return Se()},get fallback(){return(()=>{var Me=l("text");return T(Me,()=>ce.value??""),H((je)=>s(Me,"fg",hg(ce.value)?g.text.secondary:g.text.primary,je)),Me})()},get children(){return[Z(re,{get when(){return S()==="string"||S()==="strArray"},get children(){var Me=l("input");return s(Me,"onInput",(je)=>q(je)),s(Me,"focused",!0),H((je)=>{var Sn=I(),Js=w(),zs=g.bg.elevated,qs=g.text.accent,Xs=S()==="strArray"?'["a", "b"]':"";return Sn!==je.e&&(je.e=s(Me,"value",Sn,je.e)),Js!==je.t&&(je.t=s(Me,"width",Js,je.t)),zs!==je.a&&(je.a=s(Me,"backgroundColor",zs,je.a)),qs!==je.o&&(je.o=s(Me,"cursorColor",qs,je.o)),Xs!==je.i&&(je.i=s(Me,"placeholder",Xs,je.i)),je},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Me}}),Z(re,{get when(){return S()==="boolean"},get children(){var Me=l("text");return T(Me,()=>Y()?"[x] true":"[ ] false"),H((je)=>s(Me,"fg",Y()?g.text.success:g.text.secondary,je)),Me}}),Z(re,{get when(){return S()==="theme"},get children(){var Me=l("text");return T(Me,()=>`\u25C2 ${Nr[Lt[J()]??"opencode"]} (${Lt[J()]??"opencode"}) \u25B8`),H((je)=>s(Me,"fg",g.text.accent,je)),Me}}),Z(re,{get when(){return S()==="enum"},get children(){var Me=l("text");return T(Me,()=>`\u25C2 ${Q()[me()]??""} \u25B8`),H((je)=>s(Me,"fg",g.text.accent,je)),Me}})]}}),null),H((Me)=>{var je=N()?g.select.focusedBg:void 0,Sn=N()?g.text.accent:g.text.secondary;return je!==Me.e&&(Me.e=s(Ke,"backgroundColor",je,Me.e)),Sn!==Me.t&&(Me.t=s(vt,"fg",Sn,Me.t)),Me},{e:void 0,t:void 0}),Ke})()}})),H((ae)=>s($,"height",pe(),ae)),$})()]}}),null),T(F,Z(re,{get when(){return!!d()},get children(){var $=l("box"),ae=l("text");return f($,ae),s($,"height",1),T(ae,d),H((ce)=>s(ae,"fg",p()==="error"?g.text.error:p()==="success"?g.text.success:g.text.accent,ce)),$}}),null),s(He,"width","100%"),s(He,"height",1),s(He,"flexDirection","row"),s(He,"gap",2),T(He,Z(re,{get when(){return!v()},get children(){return[(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("j/k")),f(ce,V(":nav")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("g/G")),f(ce,V(":top/bot")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Enter")),f(ce,V(":edit")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("e")),f(ce,V(":$EDITOR")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("r")),f(ce,V(":reload")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("i")),f(ce,V(":init")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})()]}}),null),T(He,Z(re,{get when(){return v()},get children(){return[(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Enter")),f(ce,V(":save")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),(()=>{var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Esc")),f(ce,V(":cancel")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$})(),Z(re,{get when(){return S()==="boolean"},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Space/Tab")),f(ce,V(":toggle")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),Z(re,{get when(){return S()==="theme"},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Tab/\u2190\u2192")),f(ce,V(":cycle")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),Z(re,{get when(){return S()==="enum"},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Tab/\u2190\u2192")),f(ce,V(":cycle")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),Z(re,{get when(){return S()==="strArray"},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("JSON")),f(ce,V(":array")),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),Z(re,{get when(){return Ie(()=>S()==="string"||S()==="strArray")()&&Q().length>0},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V("Tab")),T(ce,()=>`:preset (${te()+1}/${Q().length})`),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}}),Z(re,{get when(){return S()==="enum"},get children(){var $=l("box"),ae=l("text"),ce=l("text");return f($,ae),f($,ce),s($,"flexDirection","row"),f(ae,V(" ")),T(ce,()=>`(${me()+1}/${Q().length})`),H((N)=>{var Se=g.text.secondary,ye=g.text.primary;return Se!==N.e&&(N.e=s(ae,"fg",Se,N.e)),ye!==N.t&&(N.t=s(ce,"fg",ye,N.t)),N},{e:void 0,t:void 0}),$}})]}}),null),H(($)=>{var ae=g.bg.base,ce=g.bg.surface,N=g.text.accent,Se=g.text.secondary,ye=g.text.primary,qe=g.bg.base;return ae!==$.e&&($.e=s(h,"backgroundColor",ae,$.e)),ce!==$.t&&($.t=s(F,"backgroundColor",ce,$.t)),N!==$.a&&($.a=s(M,"fg",N,$.a)),Se!==$.o&&($.o=s(fe,"fg",Se,$.o)),ye!==$.i&&($.i=s(Ve,"fg",ye,$.i)),qe!==$.n&&($.n=s(He,"backgroundColor",qe,$.n)),$},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),h})()}var og=2,rg=30,As,ig,yn="[]",$r,_r,Ws,ei,sg,cg,ag,lg,fg,ug,dg;var mf=de(()=>{_();_();_();_();_();_();_();_();Xe();Nt();ze();_();pt();As=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],ig=["Ghostty","ghostty","iTerm","WezTerm","wezterm","Terminal","alacritty","gnome-terminal","konsole","wt"],$r=[yn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],_r=[yn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],Ws=[yn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],ei=[yn,'["echo removed"]'],sg=[yn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],cg=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],ag=[yn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],lg=["copse","wt"],fg=["hardlink","symlink","copy"],ug=[yn,'["node_modules"]','["node_modules", ".next"]'],dg=[yn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Wo,readdirSync as pg,rmSync as gg}from"fs";import{basename as Is,dirname as js,join as bg,resolve as Ao}from"path";function wg(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function pf(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function bf(e){if(!Wo(Ct()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=Pe(),o=Ao(t.path),i=Is(o);return[n.repos?.find((a)=>Ao(a.path)===o)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>wg(a)).filter((a)=>!js(a).includes("{")&&Is(a).includes("{")).map((a)=>{let u=Is(a),d=`^${pf(u).replace(/\\\{repo\\\}/g,pf(i)).replace(/\\\{branch\\\}/g,".+")}$`,m=new RegExp(d);return{path:Ao(js(a)),matches:(p)=>m.test(p)}})}function wf(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Ao(js(n.path)));return[...t]}function gf(e,t,n,o){if(!Wo(e))return;let i=pg(e,{withFileTypes:!0});for(let r of i){if(!r.isDirectory())continue;if(o&&!o(r.name))continue;let c=Ao(bg(e,r.name));if(!t.has(c))n.add(c)}}function xf(e){let t=new Set(e.map((i)=>Ao(i.path))),n=new Set,o=new Set;for(let i of bf(e))o.add(i.path),gf(i.path,t,n,i.matches);for(let i of wf(e)){if(o.has(i))continue;gf(i,t,n)}return[...n]}function xg(e){return bf(e).some((t)=>Wo(t.path))||wf(e).some((t)=>Wo(t))}async function yg(){let e=Bun.spawn(["git","--version"],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[t,n]=await Promise.all([new Response(e.stdout).text(),e.exited]);if(n!==0)return null;return t.trim().match(/git version (\d+\.\d+(?:\.\d+)?)/)?.[1]??null}async function Sg(){try{return await ie.checkVersion(),{name:"Git version",status:"pass",message:`${await yg()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof $o)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function Cg(){try{let n=(Pe().repos??[]).map((o)=>o.path).filter((o)=>!Wo(o));if(n.length>0)return{name:"Configuration",status:"warn",message:"missing repository paths",detail:n};return{name:"Configuration",status:"pass",message:"valid"}}catch(t){return{name:"Configuration",status:"fail",message:`Check failed: ${t.message}`}}}function Rg(e){let n=e.map((o)=>o.path).filter((o)=>!Wo(o));if(n.length>0)return{name:"Stale worktrees",status:"warn",message:"missing worktree paths",detail:n};return{name:"Stale worktrees",status:"pass",message:"none"}}function Og(e){try{let n=xf(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:xg(e)?"none":"no worktree directory"};return{name:"Orphaned directories",status:"warn",message:"orphaned worktree directories found",detail:n}}catch(n){return{name:"Orphaned directories",status:"fail",message:`Check failed: ${n.message}`}}}function vg(e){let n=e.filter((i)=>i.isLocked);if(n.length===0)return{name:"Worktree locks",status:"pass",message:"all clear"};return{name:"Worktree locks",status:"warn",message:"locked worktrees present",detail:n.map((i)=>{let r=i.branch??"detached";if(!i.lockReason)return`${r} - ${i.path} (potential stale lock: no reason)`;return`${r} - ${i.path} (reason: ${i.lockReason})`})}}function kg(e){let n=e.filter((o)=>o.isDirty&&!o.isMain);if(n.length===0)return{name:"Dirty worktrees",status:"pass",message:"none"};return{name:"Dirty worktrees",status:"warn",message:"dirty non-main worktrees found",detail:n.map((o)=>`${o.branch??"detached"} - ${o.path}`)}}async function Lo(e){let t=await ie.list(e).catch(()=>[]),n=[await Sg(),await Cg(),Rg(t),Og(t),vg(t),kg(t)];return{checks:n,healthy:n.every((o)=>o.status==="pass")}}async function Eg(e){try{return await ie.prune(e),{action:"Prune stale worktrees",success:!0}}catch(t){return{action:"Prune stale worktrees",success:!1,detail:t.message}}}async function Dg(e){let t=[];try{let n=xf(await ie.list(e).catch(()=>[]));for(let o of n)try{gg(o,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:o})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${o}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Fg(e){let t=[];try{let o=(await ie.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of o)try{await ie.unlock(i.path,e),t.push({action:"Unlock stale lock",success:!0,detail:`${i.branch??"detached"} - ${i.path}`})}catch(r){t.push({action:"Unlock stale lock",success:!1,detail:`${i.path}: ${r.message}`})}}catch(n){t.push({action:"Fix stale locks",success:!1,detail:n.message})}return t}async function ti(e){let t=[];return t.push(await Eg(e)),t.push(...await Dg(e)),t.push(...await Fg(e)),t}var Ts=de(()=>{ze();Te();Wt()});function Io(e){let[t,n]=ue(0),o=setInterval(()=>{n((i)=>(i+1)%yf.length)},80);return it(()=>clearInterval(o)),(()=>{var i=l("box"),r=l("text");return f(i,r),s(i,"flexDirection","row"),s(i,"gap",1),T(r,()=>yf[t()]),T(i,(()=>{var c=Ie(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return T(a,()=>e.label),H((u)=>s(a,"fg",g.text.secondary,u)),a})()})(),null),H((c)=>s(r,"fg",e.color??g.text.accent,c)),i})()}var yf;var ni=de(()=>{_();_();_();_();_();_();Xe();pt();yf=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function Sf(){let e=ut(),t=ot(),[n,o]=ue(null),[i,r]=ue(!0),[c,a]=ue(""),[u,d]=ue(!1),[m,p]=ue([]),x=async()=>{r(!0),a(""),p([]);try{let I=await Lo();o(I)}catch(I){a(I.message)}r(!1)},D=async()=>{if(n()?.healthy)return;d(!0);try{let I=await ti();p(I);let q=await Lo();o(q)}catch(I){a(I.message)}d(!1)};x(),ft((I)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let q=I.name;if(q==="r")x();if(q==="f"&&!i()&&!u()&&!n()?.healthy)D()});let W=()=>t().width,b=()=>t().height,R=()=>Math.max(50,Math.min(80,W()-4)),v=()=>{let I=O()+B()+8+(B()>0?2:0);return Math.max(12,Math.min(I,b()-4))},k=()=>Math.max(R()-4,10),S=(I)=>{if(I==="pass")return"\u2713";if(I==="warn")return"\u26A0";return"\u2717"},y=(I)=>{if(I==="pass")return g.text.success;if(I==="warn")return g.text.warning;return g.text.error},O=()=>n()?.checks.length??0,B=()=>m().length;return Z(Vn,{get width(){return R()},get height(){return v()},get borderColor(){return Ie(()=>!!n()?.healthy)()?g.text.success:Ie(()=>!!n())()?g.text.warning:g.border.default},get backgroundColor(){return g.bg.surface},title:" Doctor ",get footer(){return[(()=>{var I=l("box"),q=l("text");return f(I,q),s(I,"height",1),T(q,()=>"\u2500".repeat(Math.max(k(),1))),H((Y)=>{var X=k(),J=g.border.subtle;return X!==Y.e&&(Y.e=s(I,"width",X,Y.e)),J!==Y.t&&(Y.t=s(q,"fg",J,Y.t)),Y},{e:void 0,t:void 0}),I})(),(()=>{var I=l("box"),q=l("text"),Y=l("text");return f(I,q),f(I,Y),s(I,"flexDirection","row"),s(I,"gap",2),f(q,V("r:recheck")),T(I,Z(re,{get when(){return!n()?.healthy},get children(){var X=l("text");return f(X,V("f:fix")),H((J)=>s(X,"fg",g.text.secondary,J)),X}}),Y),f(Y,V("Esc:back")),H((X)=>{var J=g.text.secondary,z=g.text.secondary;return J!==X.e&&(X.e=s(q,"fg",J,X.e)),z!==X.t&&(X.t=s(Y,"fg",z,X.t)),X},{e:void 0,t:void 0}),I})()]},get children(){return[Z(re,{get when(){return i()},get children(){return Z(Io,{label:"Running checks..."})}}),Z(re,{get when(){return u()},get children(){var I=l("text");return f(I,V("Running auto-fix...")),H((q)=>s(I,"fg",g.text.accent,q)),I}}),Z(re,{get when(){return Ie(()=>!i()&&!u())()&&!!c()},get children(){var I=l("text"),q=V("Error: ");return f(I,q),T(I,c,null),H((Y)=>s(I,"fg",g.text.error,Y)),I}}),Z(re,{get when(){return Ie(()=>!i()&&!u()&&!c())()&&!!n()},get children(){return[(()=>{var I=l("text");return f(I,V("Health Checks")),H((q)=>s(I,"fg",g.text.accent,q)),I})(),(()=>{var I=l("text");return T(I,()=>"\u2500".repeat(k())),H((q)=>s(I,"fg",g.border.subtle,q)),I})(),Z(tt,{get each(){return n().checks},children:(I)=>{return(()=>{var q=l("box"),Y=l("text"),X=l("text"),J=V(":"),z=l("text");return f(q,Y),f(q,X),f(q,z),s(q,"width","100%"),s(q,"height",1),s(q,"flexDirection","row"),T(Y,()=>S(I.status)),f(X,J),s(X,"x",2),s(X,"y",0),T(X,()=>I.name,J),s(z,"y",0),T(z,()=>I.message),H((Q)=>{var ne=y(I.status),te=g.text.primary,Re=I.name.length+4,me=g.text.secondary;return ne!==Q.e&&(Q.e=s(Y,"fg",ne,Q.e)),te!==Q.t&&(Q.t=s(X,"fg",te,Q.t)),Re!==Q.a&&(Q.a=s(z,"x",Re,Q.a)),me!==Q.o&&(Q.o=s(z,"fg",me,Q.o)),Q},{e:void 0,t:void 0,a:void 0,o:void 0}),q})()}}),(()=>{var I=l("text");return T(I,()=>"\u2500".repeat(k())),H((q)=>s(I,"fg",g.border.subtle,q)),I})(),(()=>{var I=l("text");return T(I,(()=>{var q=Ie(()=>!!n().healthy);return()=>q()?"\u2713 All checks passed":`${n().checks.filter((Y)=>Y.status==="fail").length} error(s), ${n().checks.filter((Y)=>Y.status==="warn").length} warning(s) found`})()),H((q)=>s(I,"fg",n().healthy?g.text.success:g.text.warning,q)),I})(),Z(re,{get when(){return B()>0},get children(){return[(()=>{var I=l("text");return f(I,V("Fix Results")),H((q)=>s(I,"fg",g.text.accent,q)),I})(),(()=>{var I=l("text");return T(I,()=>"\u2500".repeat(k())),H((q)=>s(I,"fg",g.border.subtle,q)),I})(),Z(tt,{get each(){return m()},children:(I)=>{return(()=>{var q=l("box"),Y=l("text"),X=l("text");return f(q,Y),f(q,X),s(q,"width","100%"),s(q,"height",1),s(q,"flexDirection","row"),T(Y,()=>I.success?"\u2713":"\u2717"),s(X,"x",2),s(X,"y",0),T(X,()=>I.action),T(q,Z(re,{get when(){return!!I.detail},get children(){var J=l("text"),z=V("("),Q=V(")");return f(J,z),f(J,Q),s(J,"y",0),T(J,()=>I.detail,Q),H((ne)=>{var te=I.action.length+3,Re=g.text.secondary;return te!==ne.e&&(ne.e=s(J,"x",te,ne.e)),Re!==ne.t&&(ne.t=s(J,"fg",Re,ne.t)),ne},{e:void 0,t:void 0}),J}}),null),H((J)=>{var z=I.success?g.text.success:g.text.error,Q=g.text.primary;return z!==J.e&&(J.e=s(Y,"fg",z,J.e)),Q!==J.t&&(J.t=s(X,"fg",Q,J.t)),J},{e:void 0,t:void 0}),q})()}})]}})]}})]}})}var Cf=de(()=>{_();_();_();_();_();_();_();_();Xe();Nt();Ts();_();pt();rr();ni()});function Rf(){let e=ut(),t=mt(),n=()=>t.worktrees()??[],o=()=>e.selectedWorktreeIndex(),i=(m)=>{let p=Math.max(0,Math.min(m,Math.max(n().length-1,0))),x=n()[p];e.setSelectedWorktreeIndex(p),e.setSelectedWorktreePath(x?.path??null)},r=$e(()=>{let m=n(),p=[],x=new Map;for(let b of m){let R=x.get(b.repoName);if(R)R.push(b);else x.set(b.repoName,[b])}let D=0,W=!0;for(let[b,R]of x){if(!W)p.push({type:"separator"});W=!1,p.push({type:"header",repoName:b});for(let v of R)p.push({type:"worktree",wt:v,flatIdx:D}),D++}return p}),c=()=>e.selectedWorktrees().size;ft((m)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let p=m.name,x=n();if(p==="j"||p==="down")i(Math.min(o()+1,x.length-1));if(p==="k"||p==="up")i(Math.max(o()-1,0));if(p==="space"){let D=o(),W=x[D];if(W&&!W.isMain)e.toggleWorktreeSelection(W.path)}if(m.ctrl&&p==="a")e.selectAllNonMain(x.filter((D)=>!D.isMain).map((D)=>D.path))});let a=(m)=>{if(m.isLocked)return"\uD83D\uDD12";if(m.isDirty)return"\u25CF";return"\u2713"},u=(m)=>{if(m.isLocked)return g.text.warning;if(m.isDirty)return g.text.error;return g.text.success},d=(m,p)=>{let x=m.branch??"(detached)",D=Math.max(8,Hs-(p?9:7));return x.length>D?x.slice(0,D-1)+"\u2026":x};return(()=>{var m=l("box");return s(m,"x",0),s(m,"y",0),s(m,"width","100%"),s(m,"height","100%"),s(m,"flexDirection","column"),s(m,"paddingX",1),s(m,"paddingY",1),s(m,"gap",0),T(m,Z(re,{get when(){return t.loading()},get children(){var p=l("text");return f(p,V("Loading...")),H((x)=>s(p,"fg",g.text.secondary,x)),p}}),null),T(m,Z(re,{get when(){return!t.loading()},get children(){return[Z(tt,{get each(){return r()},children:(p)=>{if(p.type==="header")return(()=>{var b=l("box"),R=l("text"),v=l("b");return f(b,R),s(b,"width","100%"),s(b,"height",1),f(R,v),T(v,()=>p.repoName),H((k)=>s(R,"fg",g.text.accent,k)),b})();if(p.type==="separator")return(()=>{var b=l("box"),R=l("text");return f(b,R),s(b,"width","100%"),s(b,"height",1),f(R,V("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),H((v)=>s(R,"fg",g.border.subtle,v)),b})();let x=p.wt,D=()=>p.flatIdx===o(),W=()=>e.selectedWorktrees().has(x.path);return(()=>{var b=l("box"),R=l("text"),v=l("text");return f(b,R),f(b,v),s(b,"width","100%"),s(b,"height",1),s(b,"paddingX",1),s(b,"onMouseDown",()=>i(p.flatIdx)),s(R,"x",0),s(R,"y",0),T(R,()=>a(x)),s(v,"x",2),s(v,"y",0),T(v,()=>d(x,!1)),T(b,Z(re,{get when(){return W()},get children(){var k=l("text");return f(k,V("\u2713")),s(k,"x",23),s(k,"y",0),H((S)=>s(k,"fg",g.text.accent,S)),k}}),null),T(b,Z(re,{get when(){return!!Xt(x.path)},get children(){var k=l("text");return f(k,V("S")),s(k,"y",0),H((S)=>{var y=Hs-(W()?3:1),O=g.text.accent;return y!==S.e&&(S.e=s(k,"x",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),k}}),null),T(b,Z(re,{get when(){return Bn(x.path)},get children(){var k=l("text");return f(k,V("P")),s(k,"y",0),H((S)=>{var y=Hs-(W()?5:3)+(Xt(x.path)?0:2),O=g.text.warning;return y!==S.e&&(S.e=s(k,"x",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),k}}),null),H((k)=>{var S=D()?g.select.focusedBg:W()?g.bg.elevated:g.bg.surface,y=u(x),O=D()?g.tab.active:g.text.primary;return S!==k.e&&(k.e=s(b,"backgroundColor",S,k.e)),y!==k.t&&(k.t=s(R,"fg",y,k.t)),O!==k.a&&(k.a=s(v,"fg",O,k.a)),k},{e:void 0,t:void 0,a:void 0}),b})()}}),Z(re,{get when(){return c()>0},get children(){var p=l("box"),x=l("text");return f(p,x),s(p,"width","100%"),s(p,"height",1),T(x,()=>`Selected: ${c()}`),H((D)=>s(x,"fg",g.text.accent,D)),p}})]}}),null),H((p)=>s(m,"backgroundColor",g.bg.surface,p)),m})()}var Hs=24;var Of=de(()=>{_();_();_();_();_();_();_();Xe();Nt();on();_();pt();Fo();Hn()});function vf(e){let t=()=>Math.max(40,Math.min(60,e.width-4));return(()=>{var n=l("box"),o=l("box"),i=l("box"),r=l("text"),c=l("text"),a=l("box"),u=l("text"),d=l("text"),m=l("box"),p=l("box"),x=l("text");return f(n,o),f(n,i),f(n,a),f(n,m),f(n,p),s(n,"height",16),s(n,"border",!0),s(n,"borderStyle","rounded"),s(n,"title"," Keyboard Shortcuts "),s(n,"titleAlignment","left"),s(n,"flexDirection","column"),s(n,"paddingX",1),s(n,"paddingY",1),s(n,"position","absolute"),T(n,Z(tt,{each:Pg,children:([D,W])=>(()=>{var b=l("box"),R=l("text"),v=l("text");return f(b,R),f(b,v),s(b,"height",1),s(R,"x",1),T(R,D),s(v,"x",8),T(v,W),H((k)=>{var S=g.text.secondary,y=g.text.primary;return S!==k.e&&(k.e=s(R,"fg",S,k.e)),y!==k.t&&(k.t=s(v,"fg",y,k.t)),k},{e:void 0,t:void 0}),b})()}),o),s(o,"height",1),f(i,r),f(i,c),s(i,"height",1),f(r,V("Ctrl+P")),s(r,"x",1),f(c,V("Command palette")),s(c,"x",8),f(a,u),f(a,d),s(a,"height",1),f(u,V("?")),s(u,"x",1),f(d,V("Toggle help")),s(d,"x",8),s(m,"height",1),f(p,x),s(p,"height",1),f(x,V("Press ? to close")),s(x,"x",1),H((D)=>{var W=Math.max(0,Math.floor((e.width-t())/2)),b=Math.max(0,Math.floor((e.height-16)/2)),R=t(),v=g.border.active,k=g.bg.elevated,S=g.text.secondary,y=g.text.primary,O=g.text.secondary,B=g.text.primary,I=g.text.accent;return W!==D.e&&(D.e=s(n,"x",W,D.e)),b!==D.t&&(D.t=s(n,"y",b,D.t)),R!==D.a&&(D.a=s(n,"width",R,D.a)),v!==D.o&&(D.o=s(n,"borderColor",v,D.o)),k!==D.i&&(D.i=s(n,"backgroundColor",k,D.i)),S!==D.n&&(D.n=s(r,"fg",S,D.n)),y!==D.s&&(D.s=s(c,"fg",y,D.s)),O!==D.h&&(D.h=s(u,"fg",O,D.h)),B!==D.r&&(D.r=s(d,"fg",B,D.r)),I!==D.d&&(D.d=s(x,"fg",I,D.d)),D},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),n})()}var Pg;var kf=de(()=>{_();_();_();_();_();_();_();Xe();pt();Pg=[["q","Quit"],["j/k","Navigate list"],["a","Add worktree"],["d","Delete worktree"],["o","Open folder"],["t","Open in Terminal"],["r","Refresh list"]]});function Mg(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function Ag(e){if(e==="success")return g.text.success;if(e==="warning")return g.text.warning;if(e==="error")return g.text.error;return g.text.primary}function Ef(){let e=ot(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var o=l("box");return s(o,"y",1),s(o,"height",5),s(o,"flexDirection","column"),T(o,Z(tt,{get each(){return An().toasts()},children:(i,r)=>(()=>{var c=l("box"),a=l("text");return f(c,a),s(c,"x",0),s(c,"height",1),s(a,"x",1),s(a,"y",0),T(a,()=>`${Mg(i.type)} ${i.message}`),H((u)=>{var d=r(),m=t(),p=g.bg.elevated,x=Ag(i.type);return d!==u.e&&(u.e=s(c,"y",d,u.e)),m!==u.t&&(u.t=s(c,"width",m,u.t)),p!==u.a&&(u.a=s(c,"backgroundColor",p,u.a)),x!==u.o&&(u.o=s(a,"fg",x,u.o)),u},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),H((i)=>{var r=n(),c=t();return r!==i.e&&(i.e=s(o,"x",r,i.e)),c!==i.t&&(i.t=s(o,"width",c,i.t)),i},{e:void 0,t:void 0}),o})()}var Df=de(()=>{_();_();_();_();_();_();Xe();_();Co();pt()});import{decodePasteBytes as Wg}from"@opentui/core";import{basename as Ff,resolve as Lg}from"path";function Pf(){let e=ut(),t=mt(),n=ot(),[o,i]=ue("input"),[r,c]=ue(""),[a,u]=ue(""),[d,m]=ue("branch"),[p,x]=ue(""),[D,W]=ue([]),[b,R]=ue(""),[v,k]=ue([]),[S,y]=ue(-1),[O,B]=ue(!1),I=()=>{let E=r().toLowerCase();if(!E)return v().slice(0,10);return v().filter((A)=>A.name.toLowerCase().includes(E)).slice(0,10)};At(nn(()=>Y(),async()=>{try{let E=Y(),A=await ie.listBranches(E);k(A)}catch{k([])}})),fn(()=>{queueMicrotask(()=>{c(""),u("")})}),At(nn(r,()=>{y(-1),B(r().length>0&&I().length>0)})),At(nn(o,(E)=>{e.setInputFocused(E==="input")})),it(()=>{e.setInputFocused(!1)});let q=(E,A)=>{W((U)=>U.map((K,j)=>j===E?{...K,...A}:K))},Y=()=>{let E=t.worktrees()??[],A=e.selectedWorktreePath();return(A?E.find((K)=>K.path===A)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},X=()=>{let E=t.worktrees()??[],A=e.selectedWorktreePath();return(A?E.find((K)=>K.path===A)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},J=()=>{let E=r();if(!E)return"";let A=Y(),U=Pe(),K=en(U,A),j=E.replace(/\//g,"-"),ee=Ff(A);return Lg(yr(K.worktreeDir,{repo:ee,branch:j}))};ft(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let A=E.name;if(A==="escape"){if(o()==="preview"){i("input");return}e.setActiveTab("list"),c(""),u(""),m("branch"),i("input");return}if(o()==="input"){if(A==="tab"){if(O()&&d()==="branch")B(!1),y(-1);m((U)=>U==="branch"?"focus":"branch");return}if(d()==="branch"&&O()&&I().length>0){if(A==="down"||E.sequence==="\x1B[B"){y((U)=>Math.min(U+1,I().length-1));return}if(A==="up"||E.sequence==="\x1B[A"){y((U)=>Math.max(U-1,-1));return}}if(A==="return"||A==="enter"){if(d()==="branch"&&S()>=0){let U=I()[S()];if(U){c(U.name),B(!1),y(-1);return}}if(!r())return;B(!1),x(J()),i("preview");return}}if(o()==="preview"){if(A==="return"||A==="enter"){i("creating");let U=r(),K=p(),j=Y(),ee=Ff(j);try{let he=Pe(),se=a(),xe=se?se.split(/[,\s]+/).map((pe)=>pe.trim()).filter(Boolean):[],Oe={};await tr(he,{branch:U,worktreePath:K,mainRepoPath:j,repoName:ee,focusPaths:xe,session:void 0},{onStepPlan:(pe)=>{let Fe=pe.map((De,Le)=>{return Oe[De.id]=Le,{label:De.label,status:"pending"}});W(Fe)},onStepStart:(pe)=>{let Fe=Oe[pe];if(Fe!==void 0)q(Fe,{status:"running"})},onStepDone:(pe,Fe)=>{let De=Oe[pe];if(De!==void 0)q(De,{status:"done",message:Fe})},onStepError:(pe,Fe)=>{let De=Oe[pe];if(De!==void 0)q(De,{status:"error",message:Fe})},onHookOutput:(pe)=>{let Fe=D().findLastIndex((De)=>De.status==="running");if(Fe>=0)q(Fe,{message:pe})}}),R("Worktree created successfully!"),i("done"),io.success(`Worktree created: ${U}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),u(""),m("branch"),i("input")},1500)}catch(he){io.error(he.message);let xe=D().findIndex((Oe)=>Oe.status==="running");if(xe>=0)q(xe,{status:"error",message:he.message});R(`${he.message}`),i("error")}return}}if(o()==="error"){if(A==="escape"||A==="return"||A==="enter")i("input"),R("")}}),yo((E)=>{if(!e.inputFocused())return;let A=Wg(E.bytes).replace(/\r?\n/g,"");if(!A)return;if(d()==="branch"){c((U)=>U+A);return}if(d()==="focus")u((U)=>U+A)});let z=()=>n().width,Q=()=>n().height,ne=()=>Math.max(50,Math.min(80,z()-4)),te=4,Re=()=>{if(o()==="input"){let E=O()&&d()==="branch"?I().length*2:0,A=r().length>0?4:0;return Math.max(21+te,Math.min(21+te+E+A,Q()-4))}if(o()==="preview")return Math.max(13+te,Math.min((a().length>0?15:13)+te,Q()-4));if(o()==="creating")return Math.max(9+te,Math.min(D().length*2+7+te,Q()-4));if(o()==="done")return Math.max(11+te,Math.min((a().length>0?15:13)+te,Q()-4));return Math.max(11+te,Math.min(11+te,Q()-4))},me=()=>Math.max(ne()-4,10),ke=()=>Math.max(me(),20);return Z(Vn,{get width(){return ne()},get height(){return Re()},get borderColor(){return Ie(()=>o()==="done")()?g.text.success:Ie(()=>o()==="error")()?g.text.error:g.border.active},get backgroundColor(){return g.bg.surface},gap:1,title:" Create Worktree ",get footer(){return[(()=>{var E=l("box"),A=l("text");return f(E,A),s(E,"height",1),T(A,()=>"\u2500".repeat(Math.max(me(),1))),H((U)=>{var K=me(),j=g.border.subtle;return K!==U.e&&(U.e=s(E,"width",K,U.e)),j!==U.t&&(U.t=s(A,"fg",j,U.t)),U},{e:void 0,t:void 0}),E})(),Z(re,{get when(){return o()==="input"},get children(){var E=l("box"),A=l("text"),U=l("text"),K=l("text"),j=l("text");return f(E,A),f(E,U),f(E,K),f(E,j),s(E,"flexDirection","row"),s(E,"gap",2),f(A,V("Tab:switch")),f(U,V("\u2191\u2193:pick")),f(K,V("Enter:confirm")),f(j,V("Esc:cancel")),H((ee)=>{var he=g.text.secondary,se=g.text.secondary,xe=g.text.secondary,Oe=g.text.secondary;return he!==ee.e&&(ee.e=s(A,"fg",he,ee.e)),se!==ee.t&&(ee.t=s(U,"fg",se,ee.t)),xe!==ee.a&&(ee.a=s(K,"fg",xe,ee.a)),Oe!==ee.o&&(ee.o=s(j,"fg",Oe,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),E}}),Z(re,{get when(){return o()==="preview"},get children(){var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"flexDirection","row"),s(E,"gap",2),f(A,V("Enter:create")),f(U,V("Esc:back")),H((K)=>{var j=g.text.secondary,ee=g.text.secondary;return j!==K.e&&(K.e=s(A,"fg",j,K.e)),ee!==K.t&&(K.t=s(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}}),Z(re,{get when(){return o()==="creating"},get children(){var E=l("text");return f(E,V("Creating worktree...")),H((A)=>s(E,"fg",g.text.secondary,A)),E}}),Z(re,{get when(){return o()==="done"},get children(){var E=l("text");return f(E,V("\u2713 Done \u2014 returning to list")),H((A)=>s(E,"fg",g.text.secondary,A)),E}}),Z(re,{get when(){return o()==="error"},get children(){var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"flexDirection","row"),s(E,"gap",2),f(A,V("Enter:retry")),f(U,V("Esc:back")),H((K)=>{var j=g.text.secondary,ee=g.text.secondary;return j!==K.e&&(K.e=s(A,"fg",j,K.e)),ee!==K.t&&(K.t=s(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}})]},get children(){return[Z(re,{get when(){return o()==="input"},get children(){return[(()=>{var E=l("box"),A=l("text"),U=l("text"),K=l("text");return f(E,A),f(E,U),f(E,K),s(E,"height",1),f(A,V(">")),s(A,"x",1),s(A,"y",0),f(U,V("New Worktree")),s(U,"x",3),s(U,"y",0),s(K,"x",17),s(K,"y",0),T(K,X),H((j)=>{var ee=me(),he=g.bg.elevated,se=g.text.accent,xe=g.text.primary,Oe=g.text.secondary;return ee!==j.e&&(j.e=s(E,"width",ee,j.e)),he!==j.t&&(j.t=s(E,"backgroundColor",he,j.t)),se!==j.a&&(j.a=s(A,"fg",se,j.a)),xe!==j.o&&(j.o=s(U,"fg",xe,j.o)),Oe!==j.i&&(j.i=s(K,"fg",Oe,j.i)),j},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return T(E,()=>"\u2500".repeat(me())),H((A)=>s(E,"fg",g.border.subtle,A)),E})(),(()=>{var E=l("text");return f(E,V("Branch name")),H((A)=>s(E,"fg",d()==="branch"?g.text.accent:g.text.secondary,A)),E})(),(()=>{var E=l("input");return s(E,"onInput",(A)=>c(A)),s(E,"placeholder","Branch name or search..."),H((A)=>{var U=r(),K=d()==="branch",j=ke(),ee=g.bg.elevated,he=g.text.accent;return U!==A.e&&(A.e=s(E,"value",U,A.e)),K!==A.t&&(A.t=s(E,"focused",K,A.t)),j!==A.a&&(A.a=s(E,"width",j,A.a)),ee!==A.o&&(A.o=s(E,"backgroundColor",ee,A.o)),he!==A.i&&(A.i=s(E,"cursorColor",he,A.i)),A},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),Z(re,{get when(){return Ie(()=>!!(O()&&d()==="branch"))()&&I().length>0},get children(){return Z(tt,{get each(){return I()},children:(E,A)=>(()=>{var U=l("box"),K=l("text"),j=l("text");return f(U,K),f(U,j),s(U,"height",1),s(K,"x",1),s(K,"y",0),T(K,()=>A()===S()?"\u25B8 ":" ",null),T(K,()=>E.name,null),s(j,"y",0),T(j,()=>E.isRemote?"(remote) ":"",null),T(j,()=>E.lastCommitDate,null),H((ee)=>{var he=me(),se=A()===S()?g.select.focusedBg:g.bg.surface,xe=A()===S()?g.tab.active:g.text.primary,Oe=Math.max(1+E.name.length+4,27),pe=g.text.secondary;return he!==ee.e&&(ee.e=s(U,"width",he,ee.e)),se!==ee.t&&(ee.t=s(U,"backgroundColor",se,ee.t)),xe!==ee.a&&(ee.a=s(K,"fg",xe,ee.a)),Oe!==ee.o&&(ee.o=s(j,"x",Oe,ee.o)),pe!==ee.i&&(ee.i=s(j,"fg",pe,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),U})()})}}),(()=>{var E=l("text");return f(E,V("Tab to switch fields \xB7 \u2191\u2193 to select branch")),H((A)=>s(E,"fg",g.text.secondary,A)),E})(),(()=>{var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"width","100%"),s(E,"height",1),s(E,"flexDirection","row"),f(A,V("Focus ")),f(U,V("(optional)")),H((K)=>{var j=d()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return j!==K.e&&(K.e=s(A,"fg",j,K.e)),ee!==K.t&&(K.t=s(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E})(),(()=>{var E=l("input");return s(E,"onInput",(A)=>u(A)),s(E,"placeholder","apps/web,apps/api (optional)"),H((A)=>{var U=a(),K=d()==="focus",j=ke(),ee=g.bg.elevated,he=g.text.accent;return U!==A.e&&(A.e=s(E,"value",U,A.e)),K!==A.t&&(A.t=s(E,"focused",K,A.t)),j!==A.a&&(A.a=s(E,"width",j,A.a)),ee!==A.o&&(A.o=s(E,"backgroundColor",ee,A.o)),he!==A.i&&(A.i=s(E,"cursorColor",he,A.i)),A},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return f(E,V("comma-separated paths, e.g. apps/web,apps/api")),H((A)=>s(E,"fg",g.text.secondary,A)),E})(),Z(re,{get when(){return r().length>0},get children(){return[(()=>{var E=l("text");return f(E,V("Target path")),H((A)=>s(E,"fg",g.text.secondary,A)),E})(),(()=>{var E=l("text");return T(E,J),H((A)=>s(E,"fg",g.text.primary,A)),E})()]}}),(()=>{var E=l("text");return f(E,V("Type a branch name, e.g. feature/my-feature")),H((A)=>s(E,"fg",g.text.primary,A)),E})()]}}),Z(re,{get when(){return o()==="preview"},get children(){return[(()=>{var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"height",1),f(A,V(">")),s(A,"x",1),s(A,"y",0),f(U,V("Confirm Worktree")),s(U,"x",3),s(U,"y",0),H((K)=>{var j=me(),ee=g.bg.elevated,he=g.text.accent,se=g.text.primary;return j!==K.e&&(K.e=s(E,"width",j,K.e)),ee!==K.t&&(K.t=s(E,"backgroundColor",ee,K.t)),he!==K.a&&(K.a=s(A,"fg",he,K.a)),se!==K.o&&(K.o=s(U,"fg",se,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return T(E,()=>"\u2500".repeat(me())),H((A)=>s(E,"fg",g.border.subtle,A)),E})(),(()=>{var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Branch")),T(K,r),H((j)=>{var ee=g.text.secondary,he=g.text.accent;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Path")),T(K,p),H((j)=>{var ee=g.text.secondary,he=g.text.primary;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E})(),Z(re,{get when(){return a().length>0},get children(){var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Focus")),T(K,a),H((j)=>{var ee=g.text.secondary,he=g.text.accent;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,V("\u2713 Ready to create. Press Enter to confirm.")),H((A)=>s(E,"fg",g.text.success,A)),E})()]}}),Z(re,{get when(){return o()==="creating"},get children(){return[(()=>{var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"height",1),f(A,V(">")),s(A,"x",1),s(A,"y",0),f(U,V("Creating Worktree")),s(U,"x",3),s(U,"y",0),H((K)=>{var j=me(),ee=g.bg.elevated,he=g.text.accent,se=g.text.primary;return j!==K.e&&(K.e=s(E,"width",j,K.e)),ee!==K.t&&(K.t=s(E,"backgroundColor",ee,K.t)),he!==K.a&&(K.a=s(A,"fg",he,K.a)),se!==K.o&&(K.o=s(U,"fg",se,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return T(E,()=>"\u2500".repeat(me())),H((A)=>s(E,"fg",g.border.subtle,A)),E})(),Z(tt,{get each(){return D()},children:(E)=>(()=>{var A=l("box"),U=l("text"),K=V(" ");return f(A,U),s(A,"height",1),f(U,K),T(U,(()=>{var j=Ie(()=>E.status==="done");return()=>j()?"\u2713":Ie(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),K),T(U,()=>E.label,null),T(A,Z(re,{get when(){return E.message},get children(){var j=l("text");return s(j,"y",0),T(j,()=>E.message),H((ee)=>{var he=E.label.length+4,se=g.text.secondary;return he!==ee.e&&(ee.e=s(j,"x",he,ee.e)),se!==ee.t&&(ee.t=s(j,"fg",se,ee.t)),ee},{e:void 0,t:void 0}),j}}),null),H((j)=>s(U,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,j)),A})()})]}}),Z(re,{get when(){return o()==="done"},get children(){return[(()=>{var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"height",1),f(A,V(">")),s(A,"x",1),s(A,"y",0),f(U,V("Worktree Created")),s(U,"x",3),s(U,"y",0),H((K)=>{var j=me(),ee=g.bg.elevated,he=g.text.success,se=g.text.primary;return j!==K.e&&(K.e=s(E,"width",j,K.e)),ee!==K.t&&(K.t=s(E,"backgroundColor",ee,K.t)),he!==K.a&&(K.a=s(A,"fg",he,K.a)),se!==K.o&&(K.o=s(U,"fg",se,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return T(E,()=>"\u2500".repeat(me())),H((A)=>s(E,"fg",g.border.subtle,A)),E})(),(()=>{var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Branch")),T(K,r),H((j)=>{var ee=g.text.secondary,he=g.text.accent;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Path")),T(K,p),H((j)=>{var ee=g.text.secondary,he=g.text.primary;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E})(),Z(re,{get when(){return a().length>0},get children(){var E=l("box"),A=l("box"),U=l("text"),K=l("text");return f(E,A),f(E,K),s(E,"height",1),s(E,"flexDirection","row"),f(A,U),s(A,"width",14),s(A,"height",1),f(U,V("Focus")),T(K,a),H((j)=>{var ee=g.text.secondary,he=g.text.accent;return ee!==j.e&&(j.e=s(U,"fg",ee,j.e)),he!==j.t&&(j.t=s(K,"fg",he,j.t)),j},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),A=V("\u2713 ");return f(E,A),T(E,b,null),H((U)=>s(E,"fg",g.text.success,U)),E})()]}}),Z(re,{get when(){return o()==="error"},get children(){return[(()=>{var E=l("box"),A=l("text"),U=l("text");return f(E,A),f(E,U),s(E,"height",1),f(A,V(">")),s(A,"x",1),s(A,"y",0),f(U,V("Error")),s(U,"x",3),s(U,"y",0),H((K)=>{var j=me(),ee=g.bg.elevated,he=g.text.error,se=g.text.primary;return j!==K.e&&(K.e=s(E,"width",j,K.e)),ee!==K.t&&(K.t=s(E,"backgroundColor",ee,K.t)),he!==K.a&&(K.a=s(A,"fg",he,K.a)),se!==K.o&&(K.o=s(U,"fg",se,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return T(E,()=>"\u2500".repeat(me())),H((A)=>s(E,"fg",g.border.subtle,A)),E})(),(()=>{var E=l("text");return f(E,V("\u2717 Failed")),H((A)=>s(E,"fg",g.text.error,A)),E})(),(()=>{var E=l("box"),A=l("text");return f(E,A),s(E,"height",1),s(A,"x",1),s(A,"y",0),T(A,()=>b().slice(0,Math.max(ke()-3,10))),H((U)=>{var K=ke(),j=g.bg.elevated,ee=g.text.primary;return K!==U.e&&(U.e=s(E,"width",K,U.e)),j!==U.t&&(U.t=s(E,"backgroundColor",j,U.t)),ee!==U.a&&(U.a=s(A,"fg",ee,U.a)),U},{e:void 0,t:void 0,a:void 0}),E})(),(()=>{var E=l("text");return f(E,V("Press Enter or Escape to try again")),H((A)=>s(E,"fg",g.text.secondary,A)),E})()]}})]}})}var Mf=de(()=>{_();_();_();_();_();_();_();_();Xe();Nt();on();Te();ze();wn();_();cs();pt();rr()});function Af(e){let t=mt(),n=An(),o=dn(),i=ot(),r=()=>i().width,c=()=>i().height,[a,u]=ue(null),[d,m]=ue(!0),[p,x]=ue("");qa((y)=>{let O=y.getSelectedText();if(!O)return;o.copyToClipboardOSC52(O),n.addToast({type:"info",message:"Copied to clipboard"})});let D;it(()=>{if(D)clearTimeout(D)});let W=()=>{return(t.worktrees()??[]).find((B)=>B.isMain)?.branch??"main"};At(nn(()=>e.worktree.path,(y)=>{if(D)clearTimeout(D);if(!y){u(null),x(""),m(!1);return}u(null),x(""),m(!0),D=setTimeout(async()=>{if(e.worktree.path!==y)return;try{let[O,[B,I],q]=await Promise.all([jg(y),e.worktree.branch&&!e.worktree.isMain?Promise.all([ie.diffBetween(W(),e.worktree.branch,{stat:!0},y).catch(()=>""),ie.diffBetween(W(),e.worktree.branch,void 0,y).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?ie.getAheadBehind(e.worktree.branch,y):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==y)return;let Y=null;try{Y=zt(y)}catch{}let X=null,J=Xt(y);if(J){let z=await bn(J.name).catch(()=>!1);X={meta:J,active:z}}if(e.worktree.path!==y)return;u({commits:O,diffStat:B,fullDiff:I,aheadBehind:q,focus:Y,session:X}),x("")}catch(O){if(e.worktree.path!==y)return;u(null),x(O.message)}finally{if(e.worktree.path===y)m(!1)}},Ig)}));let b=()=>{let y=e.worktree;if(y.isLocked)return"\uD83D\uDD12 locked";if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"},R=()=>{let y=e.worktree;if(y.isLocked)return g.text.warning;if(y.isDirty)return g.text.error;return g.text.success},v=()=>{let y=a();if(!y)return"";let O=[];if(y.aheadBehind.ahead>0)O.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)O.push(`\u2193${y.aheadBehind.behind}`);return O.length>0?O.join(" "):"\u2713 up to date"},k=()=>{let y=a();if(!y)return g.text.secondary;return y.aheadBehind.ahead||y.aheadBehind.behind?g.text.warning:g.text.success},S=()=>"\u2500".repeat(Math.max(r()-7,10));return(()=>{var y=l("box"),O=l("scrollbox"),B=l("box"),I=l("text"),q=l("text"),Y=l("box"),X=l("text"),J=l("box"),z=l("box"),Q=l("box"),ne=l("text"),te=l("text"),Re=l("box"),me=l("box"),ke=l("text"),E=l("text"),A=l("box"),U=l("box"),K=l("text"),j=l("text"),ee=l("box"),he=l("box"),se=l("text"),xe=l("text"),Oe=l("box"),pe=l("box"),Fe=l("text"),De=l("box"),Le=l("text");return f(y,O),s(y,"x",0),s(y,"y",0),f(O,B),f(O,Y),f(O,J),f(O,z),f(O,Re),f(O,A),f(O,ee),f(O,Oe),f(O,pe),f(O,De),s(O,"x",2),s(O,"y",1),f(B,I),f(B,q),s(B,"height",1),f(I,V("Worktree Detail")),s(I,"x",0),s(I,"y",0),s(I,"bold",!0),s(I,"selectable",!0),f(q,V("(Esc to close)")),s(q,"x",17),s(q,"y",0),s(q,"selectable",!0),f(Y,X),s(Y,"height",1),s(X,"x",0),s(X,"y",0),s(X,"selectable",!0),T(X,S),s(J,"height",1),f(z,Q),f(z,te),s(z,"height",1),s(z,"flexDirection","row"),f(Q,ne),s(Q,"width",16),s(Q,"height",1),f(ne,V("Branch")),s(ne,"x",0),s(ne,"y",0),s(ne,"selectable",!0),s(te,"selectable",!0),T(te,()=>e.worktree.branch??"(detached)"),f(Re,me),f(Re,E),s(Re,"height",1),s(Re,"flexDirection","row"),f(me,ke),s(me,"width",16),s(me,"height",1),f(ke,V("Path")),s(ke,"x",0),s(ke,"y",0),s(ke,"selectable",!0),s(E,"selectable",!0),T(E,()=>e.worktree.path),f(A,U),f(A,j),s(A,"height",1),s(A,"flexDirection","row"),f(U,K),s(U,"width",16),s(U,"height",1),f(K,V("Status")),s(K,"x",0),s(K,"y",0),s(K,"selectable",!0),s(j,"selectable",!0),T(j,b),f(ee,he),f(ee,xe),s(ee,"height",1),s(ee,"flexDirection","row"),f(he,se),s(he,"width",16),s(he,"height",1),f(se,V("HEAD")),s(se,"x",0),s(se,"y",0),s(se,"selectable",!0),s(xe,"selectable",!0),T(xe,()=>e.worktree.head?.slice(0,8)),T(O,Z(re,{get when(){return d()},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box");return s(L,"height",1),T(L,Z(Io,{label:"Loading details..."})),L})()]}}),Oe),T(O,Z(re,{get when(){return Ie(()=>!d())()&&!!p()},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,()=>`Failed to load details: ${p()}`),H((h)=>s(w,"fg",g.text.error,h)),L})()]}}),Oe),T(O,Z(re,{get when(){return Ie(()=>!d()&&!p())()&&!!a()},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("Upstream")),s(w,"x",0),s(w,"y",0),s(w,"bold",!0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.accent,h)),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,S),H((h)=>s(w,"fg",g.border.subtle,h)),L})(),(()=>{var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Sync")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,v),H((P)=>{var M=g.text.secondary,G=k();return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L})(),Z(re,{get when(){return a().aheadBehind.ahead>0},get children(){var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Ahead")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,()=>`${a().aheadBehind.ahead} commit(s)`),H((P)=>{var M=g.text.secondary,G=g.text.warning;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L}}),Z(re,{get when(){return a().aheadBehind.behind>0},get children(){var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Behind")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,()=>`${a().aheadBehind.behind} commit(s)`),H((P)=>{var M=g.text.secondary,G=g.text.warning;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L}}),(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("Recent Commits")),s(w,"x",0),s(w,"y",0),s(w,"bold",!0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.accent,h)),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,S),H((h)=>s(w,"fg",g.border.subtle,h)),L})(),Z(re,{get when(){return a().commits.length>0},get fallback(){return(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("No commits found")),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.secondary,h)),L})()},get children(){return Z(tt,{get each(){return a().commits},children:(L)=>(()=>{var w=l("box"),h=l("text");return f(w,h),s(w,"height",1),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),T(h,L),H((F)=>s(h,"fg",g.text.primary,F)),w})()})}}),Z(re,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"bold",!0),s(w,"selectable",!0),T(w,()=>`Diff vs ${W()}`),H((h)=>s(w,"fg",g.text.accent,h)),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,S),H((h)=>s(w,"fg",g.border.subtle,h)),L})(),Z(re,{get when(){return a().diffStat.length>0},get children(){var L=l("code");return s(L,"language","diff"),H((w)=>s(L,"code",a().diffStat,w)),L}}),(()=>{var L=l("box");return s(L,"height",1),L})(),Z(re,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("No changes")),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.secondary,h)),L})()},get children(){var L=l("scrollbox"),w=l("diff");return f(L,w),s(L,"height",15),s(w,"view","unified"),H((h)=>{var F=r()-3,P=a().fullDiff;return F!==h.e&&(h.e=s(L,"width",F,h.e)),P!==h.t&&(h.t=s(w,"diff",P,h.t)),h},{e:void 0,t:void 0}),L}})]}}),Z(re,{get when(){return Ie(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("Focus Paths")),s(w,"x",0),s(w,"y",0),s(w,"bold",!0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.accent,h)),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,S),H((h)=>s(w,"fg",g.border.subtle,h)),L})(),Z(tt,{get each(){return a().focus},children:(L)=>(()=>{var w=l("box"),h=l("text");return f(w,h),s(w,"height",1),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),T(h,` \u2022 ${L}`),H((F)=>s(h,"fg",g.text.primary,F)),w})()})]}}),Z(re,{get when(){return a().session},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),f(w,V("Session")),s(w,"x",0),s(w,"y",0),s(w,"bold",!0),s(w,"selectable",!0),H((h)=>s(w,"fg",g.text.accent,h)),L})(),(()=>{var L=l("box"),w=l("text");return f(L,w),s(L,"height",1),s(w,"x",0),s(w,"y",0),s(w,"selectable",!0),T(w,S),H((h)=>s(w,"fg",g.border.subtle,h)),L})(),(()=>{var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Name")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,()=>a().session.meta.name),H((P)=>{var M=g.text.secondary,G=g.text.primary;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L})(),(()=>{var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Status")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,()=>a().session.active?"\u25CF active":"\u25CB inactive"),H((P)=>{var M=g.text.secondary,G=a().session.active?g.text.success:g.text.error;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L})(),Z(re,{get when(){return a().session.meta.layout},get children(){var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Layout")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),s(F,"selectable",!0),T(F,()=>a().session.meta.layout),H((P)=>{var M=g.text.secondary,G=g.text.primary;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L}})]}}),Z(re,{get when(){return e.worktree.isMain},get children(){return[(()=>{var L=l("box");return s(L,"height",1),L})(),(()=>{var L=l("box"),w=l("box"),h=l("text"),F=l("text");return f(L,w),f(L,F),s(L,"height",1),s(L,"flexDirection","row"),f(w,h),s(w,"width",16),s(w,"height",1),f(h,V("Type")),s(h,"x",0),s(h,"y",0),s(h,"selectable",!0),f(F,V("main worktree")),s(F,"selectable",!0),H((P)=>{var M=g.text.secondary,G=g.text.accent;return M!==P.e&&(P.e=s(h,"fg",M,P.e)),G!==P.t&&(P.t=s(F,"fg",G,P.t)),P},{e:void 0,t:void 0}),L})()]}})]}}),Oe),s(Oe,"height",1),f(pe,Fe),s(pe,"height",1),s(Fe,"x",0),s(Fe,"y",0),s(Fe,"selectable",!0),T(Fe,S),f(De,Le),s(De,"height",1),f(Le,V("Esc:back d:delete r:refresh")),s(Le,"x",0),s(Le,"y",0),s(Le,"selectable",!0),H((L)=>{var w=r(),h=c(),F=g.bg.base,P=r()-3,M=c()-3,G=g.text.accent,oe=g.text.secondary,fe=g.border.subtle,Ve=g.text.secondary,He=g.text.accent,$=g.text.secondary,ae=g.text.primary,ce=g.text.secondary,N=R(),Se=g.text.secondary,ye=g.text.secondary,qe=g.border.subtle,Ke=g.text.secondary;return w!==L.e&&(L.e=s(y,"width",w,L.e)),h!==L.t&&(L.t=s(y,"height",h,L.t)),F!==L.a&&(L.a=s(y,"backgroundColor",F,L.a)),P!==L.o&&(L.o=s(O,"width",P,L.o)),M!==L.i&&(L.i=s(O,"height",M,L.i)),G!==L.n&&(L.n=s(I,"fg",G,L.n)),oe!==L.s&&(L.s=s(q,"fg",oe,L.s)),fe!==L.h&&(L.h=s(X,"fg",fe,L.h)),Ve!==L.r&&(L.r=s(ne,"fg",Ve,L.r)),He!==L.d&&(L.d=s(te,"fg",He,L.d)),$!==L.l&&(L.l=s(ke,"fg",$,L.l)),ae!==L.u&&(L.u=s(E,"fg",ae,L.u)),ce!==L.c&&(L.c=s(K,"fg",ce,L.c)),N!==L.w&&(L.w=s(j,"fg",N,L.w)),Se!==L.m&&(L.m=s(se,"fg",Se,L.m)),ye!==L.f&&(L.f=s(xe,"fg",ye,L.f)),qe!==L.y&&(L.y=s(Fe,"fg",qe,L.y)),Ke!==L.g&&(L.g=s(Le,"fg",Ke,L.g)),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0}),y})()}async function jg(e){try{let t=Bun.spawn(["git","log","--oneline","-10"],{cwd:e,stdout:"pipe",stderr:"pipe",env:{...process.env,LC_ALL:"C"}}),n=await new Response(t.stdout).text();if(await t.exited,t.exitCode!==0)return[];return n.trim().split(`
23
+ `).filter(Boolean)}catch{return[]}}var Ig=150;var Wf=de(()=>{_();_();_();_();_();_();_();_();Xe();_();on();Co();pt();pn();Hn();Te();ni()});function Lf(){let e=ut(),t=mt(),n=ot(),o=()=>{let b=t.worktrees()??[],R=e.selectedWorktreePath();if(R){let v=b.find((k)=>k.path===R);if(v)return v}return b[e.selectedWorktreeIndex()]},i=()=>n().width,r=14,[c,a]=ue(null),[u,d]=ue(!1),[m,p]=ue(""),x;it(()=>{if(x)clearTimeout(x)}),At(nn(()=>o()?.path,(b)=>{if(x)clearTimeout(x);if(!b){a(null),d(!1),p("");return}a(null),d(!0),p(""),x=setTimeout(async()=>{let R=o();if(!R||R.path!==b)return;try{let[v,k,S]=await Promise.all([R.branch?ie.getAheadBehind(R.branch,R.path):Promise.resolve({ahead:0,behind:0}),ie.getLastCommit(R.path),ie.getDirtyCount(R.path)]);if(o()?.path===b)a({aheadBehind:v,lastCommit:k,dirtyCount:S}),p("")}catch(v){if(o()?.path===b)a(null),p(v.message)}finally{if(o()?.path===b)d(!1)}},Tg)}));let D=()=>{if(u())return"Loading...";if(m())return"Unavailable";let b=c();if(!b)return"";let R=[];if(b.aheadBehind.ahead>0)R.push(`\u2191${b.aheadBehind.ahead}`);if(b.aheadBehind.behind>0)R.push(`\u2193${b.aheadBehind.behind}`);return R.length>0?R.join(" "):"\u2713 up to date"},W=()=>{let b=o();if(!b)return"";if(b.isLocked)return"\uD83D\uDD12 locked";let R=c();if(R&&R.dirtyCount>0)return`\u25CF ${R.dirtyCount} file(s) dirty`;if(b.isDirty)return"\u25CF dirty";return"\u2713 clean"};return ft((b)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let R=b.name;if(R==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(R==="return"&&!e.showDetailView()&&o()){e.setShowDetailView(!0);return}if(R==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var b=l("box");return s(b,"width","100%"),s(b,"height","100%"),T(b,Z(re,{get when(){return Ie(()=>!!e.showDetailView())()&&!!o()},get children(){return Z(Af,{get worktree(){return o()}})}}),null),T(b,Z(re,{get when(){return!e.showDetailView()},get children(){return[Z(re,{get when(){return t.loading()},get children(){return Z(Io,{label:"Loading worktrees..."})}}),Z(re,{get when(){return Ie(()=>!t.loading())()&&!!t.error()},get children(){var R=l("box"),v=l("text"),k=l("text"),S=l("text"),y=l("text"),O=l("text"),B=l("text"),I=l("text"),q=l("text"),Y=l("text");return f(R,v),f(R,k),f(R,S),f(R,y),f(R,O),f(R,B),f(R,I),f(R,q),f(R,Y),s(R,"flexDirection","column"),s(R,"paddingX",2),s(R,"paddingY",1),s(R,"gap",0),f(v,V("Unable to list worktrees")),f(k,V(" ")),T(S,()=>t.error()?.message),f(y,V(" ")),f(O,V("copse needs a git repository to manage worktrees.")),f(B,V(" \xB7 cd into a git repository and relaunch copse, or")),f(I,V(" \xB7 configure repos in ~/.config/copse/config.json")),f(q,V(" ")),f(Y,V("Press q to quit, or ^P to open the command palette.")),H((X)=>{var J=g.text.error,z=g.text.secondary,Q=g.text.secondary,ne=g.text.secondary,te=g.text.secondary,Re=g.text.secondary,me=g.text.secondary,ke=g.text.secondary,E=g.text.accent;return J!==X.e&&(X.e=s(v,"fg",J,X.e)),z!==X.t&&(X.t=s(k,"fg",z,X.t)),Q!==X.a&&(X.a=s(S,"fg",Q,X.a)),ne!==X.o&&(X.o=s(y,"fg",ne,X.o)),te!==X.i&&(X.i=s(O,"fg",te,X.i)),Re!==X.n&&(X.n=s(B,"fg",Re,X.n)),me!==X.s&&(X.s=s(I,"fg",me,X.s)),ke!==X.h&&(X.h=s(q,"fg",ke,X.h)),E!==X.r&&(X.r=s(Y,"fg",E,X.r)),X},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),R}}),Z(re,{get when(){return Ie(()=>!t.loading()&&!t.error())()&&!!o()},get children(){var R=l("box"),v=l("box"),k=l("text"),S=l("box"),y=l("text"),O=l("box"),B=l("box"),I=l("text"),q=l("text"),Y=l("box"),X=l("box"),J=l("text"),z=l("text"),Q=l("box"),ne=l("box"),te=l("text"),Re=l("text"),me=l("box"),ke=l("box"),E=l("text"),A=l("text"),U=l("box"),K=l("box"),j=l("text"),ee=l("text"),he=l("box"),se=l("text"),xe=l("box"),Oe=l("text"),pe=l("text"),Fe=l("text"),De=l("text"),Le=l("text"),L=l("text"),w=l("text");return f(R,v),f(R,S),f(R,O),f(R,Y),f(R,Q),f(R,me),f(R,U),f(R,he),f(R,xe),s(R,"width","100%"),s(R,"height","100%"),s(R,"flexDirection","column"),s(R,"paddingX",2),s(R,"paddingY",1),f(v,k),s(v,"height",1),s(v,"flexDirection","row"),f(k,V("Worktree Details")),f(S,y),s(S,"height",1),T(y,()=>"\u2500".repeat(Math.max(i()-38,10))),T(R,Z(re,{get when(){return t.isMultiRepo()},get children(){var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),f(P,V("Repo")),T(M,()=>o()?.repoName),H((G)=>{var oe=g.text.secondary,fe=g.text.warning;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h}}),O),f(O,B),f(O,q),s(O,"height",1),s(O,"flexDirection","row"),f(B,I),s(B,"width",14),s(B,"height",1),f(I,V("Branch")),T(q,()=>o()?.branch??"(detached)"),f(Y,X),f(Y,z),s(Y,"height",1),s(Y,"flexDirection","row"),f(X,J),s(X,"width",14),s(X,"height",1),f(J,V("Path")),T(z,()=>o()?.path),f(Q,ne),f(Q,Re),s(Q,"height",1),s(Q,"flexDirection","row"),f(ne,te),s(ne,"width",14),s(ne,"height",1),f(te,V("Status")),T(Re,W),f(me,ke),f(me,A),s(me,"height",1),s(me,"flexDirection","row"),f(ke,E),s(ke,"width",14),s(ke,"height",1),f(E,V("Sync")),T(A,D),f(U,K),f(U,ee),s(U,"height",1),s(U,"flexDirection","row"),f(K,j),s(K,"width",14),s(K,"height",1),f(j,V("HEAD")),T(ee,()=>o()?.head?.slice(0,8)),T(R,Z(re,{get when(){return c()?.lastCommit},get children(){return[(()=>{var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),f(P,V("Last Commit")),T(M,()=>c().lastCommit.relativeDate),H((G)=>{var oe=g.text.secondary,fe=g.text.primary;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h})(),(()=>{var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),T(M,(()=>{var G=Ie(()=>c().lastCommit.message.length>50);return()=>G()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),H((G)=>{var oe=g.text.secondary,fe=g.text.secondary;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h})()]}}),he),T(R,Z(re,{get when(){let h=zt(o()?.path??"");return h&&h.length>0},get children(){var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),f(P,V("Focus")),T(M,()=>zt(o()?.path??"")?.join(", ")??""),H((G)=>{var oe=g.text.secondary,fe=g.text.accent;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h}}),he),T(R,Z(re,{get when(){return!!Xt(o()?.path??"")},get children(){var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),f(P,V("Session")),T(M,()=>{let G=Xt(o()?.path??"");if(!G)return"";return G.layout?`${G.name} [${G.layout}]`:G.name}),H((G)=>{var oe=g.text.secondary,fe=g.text.accent;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h}}),he),T(R,Z(re,{get when(){return o()?.isMain},get children(){var h=l("box"),F=l("box"),P=l("text"),M=l("text");return f(h,F),f(h,M),s(h,"height",1),s(h,"flexDirection","row"),f(F,P),s(F,"width",14),s(F,"height",1),f(P,V("Type")),f(M,V("main worktree")),H((G)=>{var oe=g.text.secondary,fe=g.text.accent;return oe!==G.e&&(G.e=s(P,"fg",oe,G.e)),fe!==G.t&&(G.t=s(M,"fg",fe,G.t)),G},{e:void 0,t:void 0}),h}}),he),f(he,se),s(he,"height",1),T(se,()=>"\u2500".repeat(Math.max(i()-38,10))),f(xe,Oe),f(xe,pe),f(xe,Fe),f(xe,De),f(xe,Le),f(xe,L),f(xe,w),s(xe,"height",1),s(xe,"flexDirection","row"),s(xe,"gap",2),f(Oe,V("Enter:detail")),f(pe,V("d:delete")),f(Fe,V("a:add")),f(De,V("o:folder")),f(Le,V("t:terminal")),f(L,V("r:refresh")),f(w,V("^P:commands")),H((h)=>{var F=g.bg.surface,P=g.text.accent,M=g.border.subtle,G=g.text.secondary,oe=g.text.accent,fe=g.text.secondary,Ve=g.text.primary,He=g.text.secondary,$=o()?.isDirty?g.text.error:o()?.isLocked?g.text.warning:g.text.success,ae=g.text.secondary,ce=m()?g.text.error:u()?g.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?g.text.warning:g.text.success,N=g.text.secondary,Se=g.text.secondary,ye=g.border.subtle,qe=g.text.secondary,Ke=g.text.secondary,rt=g.text.secondary,vt=g.text.secondary,Me=g.text.secondary,je=g.text.secondary,Sn=g.text.secondary;return F!==h.e&&(h.e=s(R,"backgroundColor",F,h.e)),P!==h.t&&(h.t=s(k,"fg",P,h.t)),M!==h.a&&(h.a=s(y,"fg",M,h.a)),G!==h.o&&(h.o=s(I,"fg",G,h.o)),oe!==h.i&&(h.i=s(q,"fg",oe,h.i)),fe!==h.n&&(h.n=s(J,"fg",fe,h.n)),Ve!==h.s&&(h.s=s(z,"fg",Ve,h.s)),He!==h.h&&(h.h=s(te,"fg",He,h.h)),$!==h.r&&(h.r=s(Re,"fg",$,h.r)),ae!==h.d&&(h.d=s(E,"fg",ae,h.d)),ce!==h.l&&(h.l=s(A,"fg",ce,h.l)),N!==h.u&&(h.u=s(j,"fg",N,h.u)),Se!==h.c&&(h.c=s(ee,"fg",Se,h.c)),ye!==h.w&&(h.w=s(se,"fg",ye,h.w)),qe!==h.m&&(h.m=s(Oe,"fg",qe,h.m)),Ke!==h.f&&(h.f=s(pe,"fg",Ke,h.f)),rt!==h.y&&(h.y=s(Fe,"fg",rt,h.y)),vt!==h.g&&(h.g=s(De,"fg",vt,h.g)),Me!==h.p&&(h.p=s(Le,"fg",Me,h.p)),je!==h.b&&(h.b=s(L,"fg",je,h.b)),Sn!==h.T&&(h.T=s(w,"fg",Sn,h.T)),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0,T:void 0}),R}}),Z(re,{get when(){return Ie(()=>!t.loading()&&!t.error())()&&!o()},get children(){var R=l("box"),v=l("text"),k=l("text");return f(R,v),f(R,k),s(R,"flexDirection","column"),s(R,"gap",1),f(v,V("No worktree selected.")),f(k,V("Press 'a' to create one.")),H((S)=>{var y=g.text.secondary,O=g.text.accent;return y!==S.e&&(S.e=s(v,"fg",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),R}})]}}),null),H((R)=>s(b,"backgroundColor",g.bg.base,R)),b})()}var Tg=150;var If=de(()=>{_();_();_();_();_();_();_();_();Xe();Nt();on();_();pt();pn();Hn();Te();Wf();ni()});import{basename as Hg}from"path";function jf(){let e=ut(),t=mt(),n=ot(),[o,i]=ue(!1),[r,c]=ue(""),[a,u]=ue(!1),d=()=>{let b=t.worktrees()??[],R=e.selectedWorktreePath();if(R){let v=b.find((k)=>k.path===R);if(v)return v}return b[e.selectedWorktreeIndex()]},m=()=>{e.setShowRemove(!1),i(!1),c(""),u(!1)},p=async(b)=>{let R=d();if(!R){m();return}if(!b){if(await ie.isDirty(R.path)){c("Worktree has changes. Press Enter to force remove."),u(!0);return}}i(!0),c("Removing...");try{let v=Pe(),k=Hg(R.repoPath);await ao(v,{worktreePath:R.path,mainRepoPath:R.repoPath,repoName:k,branch:R.branch,force:b},{onStepStart:(B)=>{if(B===We.postRemove)c("Running postRemove hooks...");else if(B===We.monorepoHooks)c("Running monorepo hooks...");else if(B===We.session)c("Killing session...");else if(B===We.worktree)c("Removing worktree...")}}),c("Removed successfully!"),io.success("Worktree removed");let S=t.worktrees()??[],y=e.selectedWorktreeIndex(),O=S[y-1]??S[y+1]??null;if(y>0)e.setSelectedWorktreeIndex(y-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(O?.path??null),t.refetch(),setTimeout(m,1000)}catch(v){let k=v.message;c(`Failed: ${k}`),i(!1),io.error(`Failed: ${k}`)}};ft(async(b)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let R=b.name;if(R==="escape"){m();return}if(a()&&(R==="return"||R==="enter")){u(!1),await p(!0);return}if((R==="return"||R==="enter")&&!o())await p(!1)});let x=()=>d(),D=()=>Math.max(50,Math.min(80,n().width-4)),W=()=>10;return Z(Vn,{get width(){return D()},get height(){return W()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var b=l("box");return s(b,"flexDirection","column"),T(b,Z(re,{get when(){return Ie(()=>!o())()&&!a()},get children(){var R=l("box"),v=l("text"),k=l("text");return f(R,v),f(R,k),s(R,"height",1),s(R,"flexDirection","row"),s(R,"gap",2),f(v,V("[Enter] Confirm")),f(k,V("[Esc] Cancel")),H((S)=>{var y=g.text.secondary,O=g.text.secondary;return y!==S.e&&(S.e=s(v,"fg",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),R}}),null),T(b,Z(re,{get when(){return a()},get children(){var R=l("box"),v=l("text"),k=l("text");return f(R,v),f(R,k),s(R,"height",1),s(R,"flexDirection","row"),s(R,"gap",2),f(v,V("[Enter] Force remove")),f(k,V("[Esc] Cancel")),H((S)=>{var y=g.text.secondary,O=g.text.secondary;return y!==S.e&&(S.e=s(v,"fg",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),R}}),null),b})()},get children(){return[Z(re,{get when(){return!!x()},get children(){return[(()=>{var b=l("box"),R=l("box"),v=l("text"),k=l("text");return f(b,R),f(b,k),s(b,"height",1),s(b,"flexDirection","row"),f(R,v),s(R,"width",10),s(R,"height",1),f(v,V("Branch")),T(k,()=>x()?.branch??"(detached)"),H((S)=>{var y=g.text.secondary,O=g.text.accent;return y!==S.e&&(S.e=s(v,"fg",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),b})(),(()=>{var b=l("box"),R=l("box"),v=l("text"),k=l("text");return f(b,R),f(b,k),s(b,"height",1),s(b,"flexDirection","row"),f(R,v),s(R,"width",10),s(R,"height",1),f(v,V("Path")),T(k,()=>x()?.path),H((S)=>{var y=g.text.secondary,O=g.text.primary;return y!==S.e&&(S.e=s(v,"fg",y,S.e)),O!==S.t&&(S.t=s(k,"fg",O,S.t)),S},{e:void 0,t:void 0}),b})(),Z(re,{get when(){return a()},get children(){var b=l("text");return T(b,r),H((R)=>s(b,"fg",g.text.warning,R)),b}}),Z(re,{get when(){return o()},get children(){var b=l("text");return T(b,r),H((R)=>s(b,"fg",r().startsWith("Failed")?g.text.error:g.text.success,R)),b}})]}}),Z(re,{get when(){return!x()},get children(){var b=l("text");return f(b,V("No worktree selected.")),H((R)=>s(b,"fg",g.text.secondary,R)),b}})]}})}var Tf=de(()=>{_();_();_();_();_();_();_();_();Xe();Nt();on();Te();ze();wn();_();cs();pt();rr()});function Hf(e){let[t,...n]=e;if(!t)throw Error("Open command is empty");Bun.spawn([t,...n],{stdout:"inherit",stderr:"inherit"})}function Bf(e){let t=ut(),n=mt(),o=An(),i=dn(),[r,c]=ue(!1),a=ot(),u=()=>{let b=n.worktrees()??[],R=t.selectedWorktreePath();if(R){let v=b.find((k)=>k.path===R);if(v)return v}return b[t.selectedWorktreeIndex()]};At(()=>{let b=n.worktrees()??[],R=b.map((y)=>y.path);if(t.pruneSelectedWorktrees(R),b.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let v=t.selectedWorktreePath();if(v){let y=b.findIndex((O)=>O.path===v);if(y>=0){if(y!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(y);return}}let k=Math.min(t.selectedWorktreeIndex(),b.length-1),S=b[k]?.path??null;if(k!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(k);if(S!==t.selectedWorktreePath())t.setSelectedWorktreePath(S)}),ft((b)=>{let R=b.name;if(R==="escape"){if(t.focusPickerData()){t.setFocusPickerData(null);return}if(t.showBulkActions()){t.setShowBulkActions(!1);return}if(t.showDetailView()){t.setShowDetailView(!1);return}if(t.showRemove()){t.setShowRemove(!1);return}if(r()){c(!1);return}if(t.inputFocused())return;if(t.activeTab()!=="list"){t.setActiveTab("list");return}}if(b.ctrl&&R==="p"){t.setShowCommandPalette(!0);return}if(t.focusPickerData())return;if(t.inputFocused())return;if(t.showCommandPalette())return;if(t.showBulkActions())return;if(t.showRemove())return;if(t.activeTab()==="add")return;if(t.activeTab()==="list"){if(t.showDetailView())return;if(R==="a"){t.setActiveTab("add");return}if(R==="r"){n.refetch();return}if(R==="d"){let v=u();if(v&&!v.isMain)t.setShowRemove(!0);return}if(R==="o"||R==="f"){let v=u();if(!v)return;try{Hf(ls({key:R,selectedWorktree:v})),o.addToast({message:"Opened folder",type:"success"})}catch(k){o.addToast({message:`Folder open failed: ${k.message}`,type:"error"})}return}if(R==="t"){let v=u();if(!v)return;try{let k=Pe();Hf(ls({key:R,selectedWorktree:v,terminalCommand:k.terminalCommand,terminalProgram:process.env.TERM_PROGRAM})),o.addToast({message:"Opened in Terminal",type:"success"})}catch(k){o.addToast({message:`Terminal failed: ${k.message}`,type:"error"})}return}}if(R==="h"){t.setActiveTab("doctor");return}if(R==="q"||R==="Q")i.destroy();if(R==="?")c((v)=>!v)});let d=()=>a().width,m=()=>a().height,p=()=>e.repoPath.split("/").pop()??"",x=()=>{let b=n.repoNames();if(b.length<=1)return p();return`${b.length} repos`},D=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},W=()=>d()-Bg-1;return(()=>{var b=l("box"),R=l("box"),v=l("text"),k=l("text"),S=l("box"),y=l("box"),O=l("box"),B=l("text"),I=l("b"),q=l("box"),Y=l("box"),X=l("toaster"),J=l("box"),z=l("text"),Q=l("box"),ne=l("text");return f(b,R),f(b,S),f(b,X),f(b,J),f(b,Q),s(b,"flexDirection","column"),f(R,v),f(R,k),s(R,"height",1),f(v,V("\uD83C\uDF33 copse")),s(v,"x",1),s(v,"y",0),s(k,"y",0),T(k,x),f(S,y),f(S,q),f(S,Y),s(S,"flexGrow",1),s(S,"flexDirection","row"),f(y,O),s(y,"width",28),s(y,"flexShrink",0),s(y,"flexDirection","column"),f(O,B),s(O,"height",1),s(O,"paddingX",1),f(B,I),T(I,D),T(y,Z(Rf,{}),null),s(q,"width",1),s(Y,"flexGrow",1),T(Y,Z(re,{get when(){return Ie(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return Z(Lf,{})}}),null),T(Y,Z(re,{get when(){return Ie(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return Z(lf,{get w(){return W()},get h(){return m()-3}})}}),null),T(Y,Z(re,{get when(){return t.activeTab()==="config"},get children(){return Z(hf,{})}}),null),T(b,Z(Ef,{}),X),s(X,"position","bottom-right"),f(J,z),s(J,"height",1),s(z,"x",0),s(z,"y",0),T(z,()=>"\u2500".repeat(d())),f(Q,ne),s(Q,"height",1),f(ne,V("d:delete a:add o:folder t:terminal r:refresh ^P:cmd h:health q:quit")),s(ne,"x",1),s(ne,"y",0),T(b,Z(re,{get when(){return Ie(()=>!!r())()&&!t.showCommandPalette()},get children(){return Z(vf,{get width(){return d()},get height(){return m()}})}}),null),T(b,Z(re,{get when(){return t.activeTab()==="add"},get children(){return Z(Pf,{})}}),null),T(b,Z(re,{get when(){return t.activeTab()==="doctor"},get children(){return Z(Sf,{})}}),null),T(b,Z(re,{get when(){return t.showRemove()},get children(){return Z(jf,{})}}),null),T(b,Z(re,{get when(){return t.showCommandPalette()},get children(){return Z(uf,{})}}),null),H((te)=>{var Re=d(),me=m(),ke=g.bg.base,E=g.bg.overlay,A=g.text.accent,U=d()-x().length-2,K=g.text.secondary,j=g.bg.surface,ee=g.text.accent,he=g.bg.base,se=g.bg.overlay,xe=g.border.subtle,Oe=g.bg.overlay,pe=g.text.secondary;return Re!==te.e&&(te.e=s(b,"width",Re,te.e)),me!==te.t&&(te.t=s(b,"height",me,te.t)),ke!==te.a&&(te.a=s(b,"backgroundColor",ke,te.a)),E!==te.o&&(te.o=s(R,"backgroundColor",E,te.o)),A!==te.i&&(te.i=s(v,"fg",A,te.i)),U!==te.n&&(te.n=s(k,"x",U,te.n)),K!==te.s&&(te.s=s(k,"fg",K,te.s)),j!==te.h&&(te.h=s(y,"backgroundColor",j,te.h)),ee!==te.r&&(te.r=s(B,"fg",ee,te.r)),he!==te.d&&(te.d=s(Y,"backgroundColor",he,te.d)),se!==te.l&&(te.l=s(J,"backgroundColor",se,te.l)),xe!==te.u&&(te.u=s(z,"fg",xe,te.u)),Oe!==te.c&&(te.c=s(Q,"backgroundColor",Oe,te.c)),pe!==te.w&&(te.w=s(ne,"fg",pe,te.w)),te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0}),b})()}var Bg=28;var Vf=de(()=>{_();_();_();_();_();_();_();_();Xe();_();Nt();on();Co();ze();vl();ff();df();mf();Cf();Of();kf();Df();Mf();If();Tf();pt()});var Gf={};Ze(Gf,{launchTUI:()=>Vg});import{resolve as Kf}from"path";async function Vg(){if(process.stdout.isTTY)process.stdout.write("\x1B]0;Copse\x07");let e=null;try{e=await ie.getMainRepoPath()}catch{}let t=[],n;try{let c=Pe();t=Dn(c),n=c.theme}catch{}let o=e??t[0]??process.cwd(),i=[o],r=new Set([Kf(o)]);for(let c of t){let a=Kf(c);if(!r.has(a))r.add(a),i.push(c)}if(n&&Lt.includes(n))Mo(n);await tl(()=>Z(ml,{repoPath:o,repoPaths:i,get children(){return Z(gl,{repoPaths:i,get children(){return Z(wl,{get children(){return Z(Bf,{repoPath:o})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var Uf=de(()=>{_();_();Te();ze();Nt();on();Co();Vf();pt()});import*as Jf from"readline";async function Kn(e){let t=Jf.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(o)=>{t.close(),n(o.toLowerCase()==="y"||o.toLowerCase()==="yes")})})}async function Ge(){return ie.getMainRepoPath().catch(()=>process.cwd())}function Yt(e,t){let n=e.find((o)=>o.branch===t||o.path===t||o.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function _e(e){if(e instanceof bt)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var St=de(()=>{Te();Wt()});var zf={};Ze(zf,{default:()=>zg});import{basename as Kg,resolve as Gg}from"path";import{existsSync as Ug}from"fs";var Jg,zg;var qf=de(()=>{Te();Wt();ze();St();ko();wn();Jg={command:"add [branch] [path]",describe:"Create a new worktree for a branch",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).positional("path",{type:"string",describe:"Worktree directory path"}).option("create",{type:"boolean",alias:"c",describe:"Optional compatibility flag; missing branches are created automatically"}).option("base",{type:"string",alias:"b",describe:"Base branch/commit for new branch"}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("template",{type:"string",alias:"t",describe:"Use a named template from config"}).option("pr",{type:"number",describe:"Create worktree from a GitHub PR number (requires gh CLI)"}).option("session",{type:"boolean",alias:"s",describe:"Create a tmux session for this worktree"}).option("layout",{type:"string",describe:"Session layout name from config"}).option("fetch",{type:"boolean",default:!0,describe:"Auto-fetch when base is a remote ref (e.g. origin/main). Use --no-fetch to skip"}),handler:async(e)=>{let{branch:t,pr:n}=e,o=await Ge(),i=Kg(o);if(!t&&!n)console.error("Error: specify a branch or use --pr <number>."),process.exit(1);if(n)try{let R=Bun.spawn(["gh","pr","view",String(n),"--json","headRefName","--jq",".headRefName"],{cwd:o,stdout:"pipe",stderr:"pipe"}),[v,k,S]=await Promise.all([new Response(R.stdout).text(),new Response(R.stderr).text(),R.exited]);if(S!==0)console.error(`Error: failed to resolve PR #${n}: ${k.trim()}`),console.error("Make sure 'gh' CLI is installed and authenticated."),process.exit(1);if(t=v.trim(),!t)console.error(`Error: PR #${n} has no branch name`),process.exit(1);console.log(`PR #${n} \u2192 branch '${t}'`)}catch{console.error("Error: 'gh' CLI not found. Install it from https://cli.github.com"),process.exit(1)}if(!t)console.error("Error: could not determine branch name."),process.exit(1);let r=t.replace(/\//g,"-"),c=Pe(),a=en(c,o),u=e.path??a.worktreeDir,d=yr(u,{repo:i,branch:r}),m=Gg(o,d);console.log(`Creating worktree for branch '${t}'...`),console.log(` Target: ${m}`);let x=(await ie.list(o)).find((R)=>R.branch===t);if(x)console.error(`Error: branch '${t}' is already checked out in ${x.path}`),process.exit(1);if(Ug(m))console.error(`Error: directory already exists: ${m}`),process.exit(1);let D=e.focus,W=D?D.flatMap((R)=>R.split(/[,\s]+/)).map((R)=>R.trim()).filter(Boolean):[],b=e.template;if(b)console.log(`Using template '${b}'`);try{let R=await tr(c,{branch:t,worktreePath:m,mainRepoPath:o,repoName:i,base:e.base,focusPaths:W,prNumber:n,templateName:b,session:e.session,layoutName:e.layout,fetch:e.fetch},{onStepStart:(v,k)=>{if(v===we.fetch)console.log(` Fetching${k?` ${k}`:""}...`);else if(v===we.copyFiles)console.log(" Copying files...");else if(v===we.linkFiles)console.log(" Linking files...");else if(v===we.sharedDeps)console.log(" Sharing dependencies...");else if(v===we.postCreate)console.log(" Running postCreate hooks...");else if(v===we.monorepoHooks)console.log(" Running monorepo hooks...")},onStepDone:(v,k)=>{if(v===we.fetch)console.log(" \u2713 Fetched");else if(v===we.worktree)console.log(" \u2713 Worktree created");else if(v===we.upstream)if(k==="no remote branch")console.log(" \u2139 No remote branch found \u2014 upstream tracking skipped");else console.log(` \u2713 Upstream tracking set ${k??""}`);else if(v===we.copyFiles)console.log(" \u2713 Files copied");else if(v===we.linkFiles)console.log(" \u2713 Files linked");else if(v===we.sharedDeps)console.log(" \u2713 Dependencies shared");else if(v===we.focus&&k)console.log(` \u2713 Focus set: ${k}`);else if(v===we.postCreate)console.log(" \u2713 Hooks completed");else if(v===we.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(v===we.session)console.log(` \u2713 Session created: ${k??""}`);else if(v===we.prMeta)console.log(` \u2713 PR #${n} metadata saved`)},onStepError:(v,k)=>{if(v===we.fetch)console.log(` \u26A0 ${k}`);else if(v===we.upstream)console.warn(` \u26A0 Could not set upstream tracking: ${k}`);else if(v===we.session)console.log(` \u26A0 Session create failed: ${k}`);else console.warn(` \u26A0 ${v}: ${k}`)},onHookOutput:(v)=>console.log(` ${v}`)});if(R.invalidFocusPaths.length>0)console.log(` \u26A0 Focus paths not found (skipped): ${R.invalidFocusPaths.join(", ")}`);console.log(`
24
+ Worktree ready: ${m}`),process.exit(0)}catch(R){if(R instanceof vo)console.error(`
25
+ Setup failed, rolled back.`),console.error(`Error: hook timed out: ${R.command}`);else if(R instanceof Oo){if(console.error(`
26
+ Setup failed, rolled back.`),console.error(`Error: hook failed (exit ${R.exitCode}): ${R.command}`),R.stderr)console.error(R.stderr)}else if(R instanceof bt)console.error(`Error creating worktree: ${R.stderr||R.message}`);else console.error(`Error: ${R.message}`);process.exit(1)}}},zg=Jg});var Xf={};Ze(Xf,{default:()=>Yg});import{relative as qg,resolve as Bs}from"path";var Xg,Yg;var Yf=de(()=>{Te();Wt();ze();pn();St();Xg={command:"list",aliases:["ls"],describe:"List all worktrees with their status",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("porcelain",{type:"boolean",alias:"p",describe:"Machine-readable output"}).option("all",{type:"boolean",alias:"a",describe:"List worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let c=Pe(),a=await Ge(),u=Dn(c),d=new Set([Bs(a)]),m=[a];for(let p of u){let x=Bs(p);if(!d.has(x))d.add(x),m.push(p)}t=await ie.listAll(m)}else t=await ie.list();let n=await Promise.all(t.map(async(c)=>({...c,focus:zt(c.path)})));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);if(e.porcelain){for(let c of n){if(e.all)console.log(`repo ${c.repoName}`);if(console.log(`path ${c.path}`),console.log(`branch ${c.branch??"(detached)"}`),console.log(`head ${c.head}`),console.log(`dirty ${c.isDirty}`),console.log(`locked ${c.isLocked}`),c.focus&&c.focus.length>0)console.log(`focus ${c.focus.join(",")}`);console.log("")}process.exit(0)}if(t.length===0)console.log("No worktrees found."),process.exit(0);let o=Bs(process.cwd()),i=e.all&&new Set(n.map((c)=>c.repoName)).size>1,r=n.map((c)=>({repo:c.repoName,branch:c.branch??"(detached)",path:c.path===o?c.path:qg(o,c.path)||c.path,status:c.isLocked?"locked":c.isDirty?"dirty":"clean",focus:c.focus?c.focus.join(", ").slice(0,40)+(c.focus.join(", ").length>40?"...":""):"\u2014"}));if(i){let c=Math.max(4,...r.map((p)=>p.repo.length)),a=Math.max(6,...r.map((p)=>p.branch.length)),u=Math.max(4,...r.map((p)=>p.path.length)),d=Math.max(6,...r.map((p)=>p.status.length)),m=Math.max(5,...r.map((p)=>p.focus.length));console.log(`${"Repo".padEnd(c)} ${"Branch".padEnd(a)} ${"Path".padEnd(u)} ${"Status".padEnd(d)} ${"Focus".padEnd(m)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(d)} ${"-".repeat(m)}`);for(let p of r)console.log(`${p.repo.padEnd(c)} ${p.branch.padEnd(a)} ${p.path.padEnd(u)} ${p.status.padEnd(d)} ${p.focus.padEnd(m)}`)}else{let c=Math.max(6,...r.map((m)=>m.branch.length)),a=Math.max(4,...r.map((m)=>m.path.length)),u=Math.max(6,...r.map((m)=>m.status.length)),d=Math.max(5,...r.map((m)=>m.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(u)} ${"Focus".padEnd(d)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(d)}`);for(let m of r)console.log(`${m.branch.padEnd(c)} ${m.path.padEnd(a)} ${m.status.padEnd(u)} ${m.focus.padEnd(d)}`)}process.exit(0)}catch(t){if(t instanceof bt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}},Yg=Xg});var Qf={};Ze(Qf,{default:()=>Qg});import{basename as Zf}from"path";var Zg,Qg;var Nf=de(()=>{Te();ze();St();wn();Zg={command:"remove <branch-or-path>",aliases:["rm"],describe:"Remove a worktree",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}).option("force",{type:"boolean",alias:"f",describe:"Force removal even with uncommitted changes"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.force,o=!!e.yes;try{let i=await Ge(),r=await ie.list(i),c=Yt(r,t);if(c.isMain)console.error("Error: cannot remove the main worktree"),process.exit(1);if(await ie.isDirty(c.path)&&!n)console.error(`Error: worktree has uncommitted changes: ${c.path}`),console.error("Use --force to remove anyway."),process.exit(1);if(c.isLocked){if(console.error(`Error: worktree is locked: ${c.path}`),c.lockReason)console.error(`Lock reason: ${c.lockReason}`);process.exit(1)}if(!o){if(!await Kn(`Remove worktree '${c.branch??Zf(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let u=Pe(),d=Zf(i);await ao(u,{worktreePath:c.path,mainRepoPath:i,repoName:d,branch:c.branch??t,force:n},{onStepStart:(m)=>{if(m===We.postRemove)console.log("Running postRemove hooks...");else if(m===We.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(m,p)=>{if(m===We.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(m===We.session&&p==="killed")console.log(" \u2713 Session killed")},onStepError:(m,p)=>{if(m===We.postRemove)console.warn(`Warning: postRemove hook failed: ${p}`);else console.warn(` \u26A0 ${m}: ${p}`)},onHookOutput:(m)=>console.log(` ${m}`)}),console.log(`Removed worktree: ${c.path}`),process.exit(0)}catch(i){_e(i)}}},Qg=Zg});var $f={};Ze($f,{default:()=>_g});import{basename as Ng}from"path";var $g,_g;var _f=de(()=>{Te();jn();ze();Hn();St();$g={command:"switch <branch-or-path>",aliases:["sw"],describe:"Switch to a worktree directory (outputs cd command for shell eval)",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}),handler:async(e)=>{let t=e["branch-or-path"];try{let n=await Ge(),o=await ie.list(n),i=Yt(o,t);try{qt(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let r=Pe(),c=Fn(r);if(c.enabled&&ws()){let a=i.branch??Ng(i.path),u=Tn(a,c.prefix);if(await bn(u))try{await Ur(u),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){_e(n)}}},_g=$g});async function eu(e,t,n,o){let i=e.filter((m)=>!m.isMain),r=i.filter((m)=>Bn(m.path)),c=new Set(r.map((m)=>m.path)),a=[];if(t.autoCleanMerged){let m=i.filter((x)=>!c.has(x.path)&&x.branch);a=(await Qt(m,10,async(x)=>({wt:x,isMerged:await ie.isMergedInto(x.branch,n,o)}))).filter((x)=>x.isMerged&&!x.wt.isDirty).map((x)=>x.wt)}let u=[];if(t.staleAfterDays&&t.staleAfterDays>0){let m=new Date,p=i.filter((D)=>!c.has(D.path));u=(await Qt(p,10,async(D)=>{let W=await ie.getWorktreeLastActivity(D.path),b=W?Math.floor((m.getTime()-W.getTime())/86400000):1/0;return{wt:D,lastActivity:W,daysSince:b}})).filter((D)=>D.daysSince>=t.staleAfterDays).map((D)=>({worktree:D.wt,lastActivity:D.lastActivity,daysSinceActivity:D.daysSince===1/0?-1:D.daysSince}))}let d=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:u,pinProtected:r,overLimit:d,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function tu(e){let t=[];if(e.pinProtected.length>0){t.push(`Pin-protected worktrees (${e.pinProtected.length}):`);for(let n of e.pinProtected)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.merged.length>0){t.push(`Merged worktrees (${e.merged.length}):`);for(let n of e.merged)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.stale.length>0){t.push(`Stale worktrees (${e.stale.length}):`);for(let n of e.stale){let o=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${o}`)}}if(e.overLimit)t.push(`Worktree limit exceeded: ${e.totalCount}/${e.maxWorktrees}`);if(t.length===0)t.push("All worktrees are healthy.");return t.join(`
27
+ `)}var nu=de(()=>{Te();Fo()});var ou={};Ze(ou,{default:()=>tb});var eb,tb;var ru=de(()=>{Te();ze();nu();Fo();St();eb={command:"clean",describe:"Remove merged worktrees and prune stale entries",builder:(e)=>e.option("dry-run",{type:"boolean",alias:"n",describe:"Show what would be removed"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation"}).option("stale",{type:"boolean",describe:"Also show stale worktrees (based on lifecycle config)"}),handler:async(e)=>{let t=!!(e["dry-run"]||e.n),n=!!e.yes;try{let o=await Ge(),i=await ie.list(o),c=(i.find((m)=>m.isMain)??i[0])?.branch??"main",a=i.filter((m)=>{if(m.isMain)return!1;if(Bn(m.path))return console.log(` Skipping (pinned): ${m.branch}`),!1;if(!m.branch)return!1;return!0}),u=await Qt(a,10,async(m)=>{let[p,x]=await Promise.all([ie.isMergedInto(m.branch,c,o),ie.isDirty(m.path)]);return{wt:m,merged:p,dirty:x}}),d=[];for(let{wt:m,merged:p,dirty:x}of u){if(!p)continue;if(x){console.log(` Skipping (dirty): ${m.branch}`);continue}d.push(m)}if(d.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let m of d)console.log(` ${m.branch} (${m.path})`)}if(!t&&d.length>0){if(!n){if(!await Kn(`
28
+ Remove ${d.length} worktree(s)? [y/N] `))console.log("Cancelled."),process.exit(0)}for(let m of d)await ie.remove(m.path,{force:!1},o),console.log(` Removed: ${m.branch}`)}if(!t)await ie.prune(o),console.log("Pruned stale worktree entries.");if(e.stale){let m=Pe();if(m.lifecycle){let p=await eu(i,m.lifecycle,c,o);console.log(),console.log(tu(p))}else console.log(`
29
+ No lifecycle config found. Add 'lifecycle' to your config to enable stale detection.`)}process.exit(0)}catch(o){_e(o)}}},tb=eb});import{existsSync as nb,mkdirSync as ob,readFileSync as rb,writeFileSync as ib}from"fs";import{dirname as sb}from"path";function iu(){let e=Ct();try{return Pe(e)}catch{if(!nb(e))throw Error("Failed to load config");let t=rb(e,"utf-8");return JSON.parse(t)}}function su(e){let t=Ct(),n=sb(t);ob(n,{recursive:!0,mode:448});let o=`${JSON.stringify(e,null,2)}
30
+ `;try{oo(t,o)}catch{ib(t,o,{encoding:"utf-8",mode:384})}}function Vs(e){return Object.keys(e.profiles??{})}function cu(e){let t=iu();su({...t,activeProfile:e})}function au(e){return e.activeProfile??null}function lu(e){let t=iu(),n={...t.profiles??{}};delete n[e],su({...t,profiles:n,activeProfile:t.activeProfile===e?void 0:t.activeProfile})}var fu=de(()=>{ze()});var uu={};Ze(uu,{default:()=>fb});import{spawnSync as cb}from"child_process";import{readFileSync as ab}from"fs";var lb,fb;var du=de(()=>{ze();fu();lb={command:"config",describe:"Manage copse configuration",builder:(e)=>e.option("init",{type:"boolean",describe:"Create default config file"}).option("show",{type:"boolean",alias:"s",describe:"Print current config as JSON"}).option("edit",{type:"boolean",alias:"e",describe:"Open config in $EDITOR"}).option("path",{type:"boolean",describe:"Print config file path"}).option("validate",{type:"boolean",describe:"Validate config against schema"}).option("profiles",{type:"boolean",describe:"List config profiles"}).option("profile",{type:"string",describe:"Profile name for activation/deletion"}).option("activate",{type:"boolean",describe:"Activate the specified profile"}).option("delete",{type:"boolean",describe:"Delete the specified profile"}),handler:async(e)=>{let t=Ct();if(e.init){let n=Kt();console.log(`Config initialized: ${n}`),process.exit(0)}if(e.path)console.log(t),process.exit(0);if(e.show){try{let n=Pe();console.log(JSON.stringify(n,null,2))}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.edit){let n=process.env.EDITOR??process.env.VISUAL??"vi";Kt();let o=cb(n,[t],{stdio:"inherit"});process.exit(o.status??0)}if(e.validate)try{let n=ab(t,"utf-8"),o;try{o=JSON.parse(n)}catch{console.error(`Error: invalid JSON in config file: ${t}`),process.exit(1)}let i=no(o);if(i.length===0)console.log(`\u2713 Config is valid: ${t}`),process.exit(0);else{console.error(`Config validation failed (${i.length} error(s)):`);for(let r of i)console.error(` ${r.field}: ${r.message}`);process.exit(1)}}catch(n){console.error(`Error reading config: ${n.message}`),process.exit(1)}if(e.profiles){try{let n=Pe(),o=Vs(n),i=au(n);for(let r of o)console.log(`${r}${r===i?" \u2605":""}`)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.activate){try{let n=Pe(),o=e.profile;if(!Vs(n).includes(o))console.error(`Error: profile '${o}' does not exist.`),process.exit(1);cu(o)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.delete)lu(e.profile),process.exit(0);console.log("Usage: copse config [options]"),console.log(""),console.log("Options:"),console.log(" --init Create default config file"),console.log(" --show, -s Print current config as JSON"),console.log(" --edit, -e Open config in $EDITOR"),console.log(" --path Print config file path"),console.log(" --validate Validate config against schema"),console.log(" --profiles List config profiles"),console.log(" --profile Profile name for activation/deletion"),console.log(" --activate Activate the specified profile"),console.log(" --delete Delete the specified profile"),console.log(""),console.log(`Config path: ${t}`),process.exit(0)}},fb=lb});var hu={};Ze(hu,{default:()=>db});var ub,db;var mu=de(()=>{Ts();ub={command:"doctor",describe:"Check worktree health and diagnose issues",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("fix",{type:"boolean",describe:"Auto-fix issues (prune stale, remove orphans, unlock stale locks)"}),handler:async(e)=>{let t=process.cwd(),n=await Lo(t);if(e.json&&!e.fix){let r={pass:n.checks.filter((c)=>c.status==="pass").length,warn:n.checks.filter((c)=>c.status==="warn").length,fail:n.checks.filter((c)=>c.status==="fail").length};console.log(JSON.stringify({healthy:n.healthy,checks:n.checks,summary:r},null,2)),process.exit(n.healthy?0:1)}console.log(`copse doctor
31
+ `);for(let r of n.checks){let c=r.status==="pass"?"\u2713":r.status==="warn"?"\u26A0":"\u2717";if(console.log(`${c} ${r.name}: ${r.message}`),r.detail)for(let a of r.detail)console.log(` \u2192 ${a}`)}let o=n.checks.filter((r)=>r.status==="warn").length,i=n.checks.filter((r)=>r.status==="fail").length;if(n.healthy)console.log(`
32
+ All checks passed.`);else{let r=[];if(i>0)r.push(`${i} error(s)`);if(o>0)r.push(`${o} warning(s)`);console.log(`
33
+ ${r.join(", ")} found.`)}if(e.fix){if(n.healthy)console.log(`
33
34
  Nothing to fix.`),process.exit(0);console.log(`
34
35
  Running auto-fix...
35
- `);let s=await _r(t);if(s.length===0)console.log("No auto-fixable issues found.");else{for(let h of s){let m=h.success?"\u2713":"\u2717",p=h.detail?` (${h.detail})`:"";console.log(`${m} ${h.action}${p}`)}let a=s.filter((h)=>h.success).length,u=s.filter((h)=>!h.success).length;console.log(`
36
- Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await Do(t);if(c.healthy)console.log("All checks now pass.");process.exit(c.healthy?0:1)}process.exit(n.healthy?0:1)}},Ig=Lg});var Kf={};Ne(Kf,{default:()=>Tg});function Bg(e){if(e?.includes("fish"))return"fish";if(e?.includes("bash"))return"bash";return"zsh"}function Vf(){return`copse() {
36
+ `);let r=await ti(t);if(r.length===0)console.log("No auto-fixable issues found.");else{for(let d of r){let m=d.success?"\u2713":"\u2717",p=d.detail?` (${d.detail})`:"";console.log(`${m} ${d.action}${p}`)}let a=r.filter((d)=>d.success).length,u=r.filter((d)=>!d.success).length;console.log(`
37
+ Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await Lo(t);if(c.healthy)console.log("All checks now pass.");process.exit(c.healthy?0:1)}process.exit(n.healthy?0:1)}},db=ub});var bu={};Ze(bu,{default:()=>xb});function hb(e){if(e?.includes("fish"))return"fish";if(e?.includes("bash"))return"bash";return"zsh"}function pu(){return`copse() {
37
38
  if [ "$1" = "switch" ] || [ "$1" = "sw" ]; then
38
39
  local output
39
40
  output=$(command copse "$@" 2>/dev/null)
@@ -51,7 +52,7 @@ Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await Do(t);if(c.healthy)c
51
52
  else
52
53
  command copse "$@"
53
54
  fi
54
- }`}function Hf(){return`function copse
55
+ }`}function gu(){return`function copse
55
56
  if test "$argv[1]" = "switch"; or test "$argv[1]" = "sw"
56
57
  set output (command copse $argv 2>/dev/null)
57
58
  set status_code $status
@@ -68,7 +69,7 @@ Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await Do(t);if(c.healthy)c
68
69
  else
69
70
  command copse $argv
70
71
  end
71
- end`}function Vg(){return`_copse_completions() {
72
+ end`}function mb(){return`_copse_completions() {
72
73
  local cur="\${COMP_WORDS[COMP_CWORD]}"
73
74
  local prev="\${COMP_WORDS[COMP_CWORD-1]}"
74
75
  local commands="add list remove switch clean config doctor pin log archive rename clone import exec diff open status shell-init"
@@ -92,7 +93,7 @@ end`}function Vg(){return`_copse_completions() {
92
93
  ;;
93
94
  esac
94
95
  }
95
- complete -F _copse_completions copse`}function Hg(){return`_copse() {
96
+ complete -F _copse_completions copse`}function pb(){return`_copse() {
96
97
  local -a commands
97
98
  commands=(
98
99
  'add:Add a new worktree'
@@ -129,7 +130,7 @@ complete -F _copse_completions copse`}function Hg(){return`_copse() {
129
130
  esac
130
131
  fi
131
132
  }
132
- compdef _copse copse`}function Kg(){return`complete -c copse -f
133
+ compdef _copse copse`}function gb(){return`complete -c copse -f
133
134
  complete -c copse -n '__fish_use_subcommand' -a 'add' -d 'Add a new worktree'
134
135
  complete -c copse -n '__fish_use_subcommand' -a 'list' -d 'List worktrees'
135
136
  complete -c copse -n '__fish_use_subcommand' -a 'remove' -d 'Remove a worktree'
@@ -147,29 +148,28 @@ complete -c copse -n '__fish_use_subcommand' -a 'exec' -d 'Run command'
147
148
  complete -c copse -n '__fish_use_subcommand' -a 'diff' -d 'Show diff'
148
149
  complete -c copse -n '__fish_use_subcommand' -a 'open' -d 'Open in editor'
149
150
  complete -c copse -n '__fish_use_subcommand' -a 'status' -d 'Show status'
150
- complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function Gg(e){switch(e){case"bash":return Vg();case"zsh":return Hg();case"fish":return Kg()}}var Ug,Tg;var Gf=ge(()=>{Ug={command:"shell-init [shell]",describe:"Print shell integration code for copse switch",builder:(e)=>e.positional("shell",{type:"string",choices:["bash","zsh","fish"],describe:"Shell to generate integration for (auto-detected if omitted)"}).option("completions",{type:"string",describe:"Generate shell completions (bash, zsh, fish)",coerce:(t)=>t===!0?void 0:t}),handler:async(e)=>{let t="completions"in e,n=e.shell,o=e.completions,i=n??o??Bg(process.env.SHELL);if(t){let s=i==="fish"?Hf():Vf(),c=Gg(i);console.log(s+`
151
- `+c),process.exit(0)}if(i==="fish")console.log(Hf()),process.exit(0);console.log(Vf()),process.exit(0)}},Tg=Ug});var Tf={};Ne(Tf,{default:()=>zg});import{resolve as ei}from"path";function Uf(e,t){if(e.length<=t)return e;return e.slice(0,t-3)+"..."}var Jg,zg;var Jf=ge(()=>{Ke();Ut();qe();nn();bt();Jg={command:"status",aliases:["st"],describe:"Show status overview of all worktrees",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("all",{type:"boolean",alias:"a",describe:"Show worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let a=Ae(),u=await Ue(),h=En(a),m=new Set([ei(u)]),p=[u];for(let w of h){let A=ei(w);if(!m.has(A))m.add(A),p.push(w)}t=await se.listAll(p)}else t=await se.list();if(t.length===0)console.log("No worktrees found."),process.exit(0);let n=await Promise.all(t.map(async(a)=>{let[u,h,m,p]=await Promise.all([a.branch?se.getAheadBehind(a.branch,a.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(a.path),se.getDirtyCount(a.path),Promise.resolve(Jt(a.path))]);return{...a,aheadBehind:u,lastCommit:h,dirtyCount:m,focus:p}}));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);let o=ei(process.cwd()),i=e.all&&new Set(n.map((a)=>a.repoName)).size>1,s=n.map((a)=>{let h=(ei(a.path)===o?"* ":" ")+(a.branch??"(detached)"),m;if(a.isLocked)m="locked";else if(a.dirtyCount>0)m=`${a.dirtyCount} dirty`;else m="clean";let p=[];if(a.aheadBehind.ahead>0)p.push(`+${a.aheadBehind.ahead}`);if(a.aheadBehind.behind>0)p.push(`-${a.aheadBehind.behind}`);let w=p.length>0?p.join(" "):"=",A=a.lastCommit?`${a.lastCommit.relativeDate} ${Uf(a.lastCommit.message,30)}`:"\u2014",W=a.focus&&a.focus.length>0?Uf(a.focus.join(", "),30):"\u2014";return{repo:a.repoName,branch:h,dirty:m,sync:w,lastCommit:A,focus:W}}),c={branch:Math.max(6,...s.map((a)=>a.branch.length)),dirty:Math.max(6,...s.map((a)=>a.dirty.length)),sync:Math.max(4,...s.map((a)=>a.sync.length)),lastCommit:Math.max(11,...s.map((a)=>a.lastCommit.length)),focus:Math.max(5,...s.map((a)=>a.focus.length)),repo:Math.max(4,...s.map((a)=>a.repo.length))};if(i){let a=`${"Repo".padEnd(c.repo)} ${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.repo)} ${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let h of s)console.log(`${h.repo.padEnd(c.repo)} ${h.branch.padEnd(c.branch)} ${h.dirty.padEnd(c.dirty)} ${h.sync.padEnd(c.sync)} ${h.lastCommit.padEnd(c.lastCommit)} ${h.focus.padEnd(c.focus)}`)}else{let a=`${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let h of s)console.log(`${h.branch.padEnd(c.branch)} ${h.dirty.padEnd(c.dirty)} ${h.sync.padEnd(c.sync)} ${h.lastCommit.padEnd(c.lastCommit)} ${h.focus.padEnd(c.focus)}`)}process.exit(0)}catch(t){if(t instanceof xt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}};zg=Jg});var Xf={};Ne(Xf,{default:()=>Yg});import{existsSync as zf}from"fs";function qg(e){if(e)return e;let t=process.env.VISUAL||process.env.EDITOR;if(t)return t;for(let n of qf)try{if(Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return n}catch{continue}return null}var qf,Xg,Yg;var Yf=ge(()=>{Ke();nn();bt();qf=["code","cursor","vim","nvim","emacs","nano","subl","zed","idea","webstorm"];Xg={command:"open [branch-or-path]",describe:"Open a worktree in your editor/IDE",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path (defaults to current worktree)"}).option("editor",{type:"string",alias:"e",describe:"Editor command to use (overrides $VISUAL/$EDITOR)"}).option("focus",{type:"string",alias:"f",describe:"Open a specific focus path (must match an existing focus entry)"}).option("root",{type:"boolean",describe:"Force opening the worktree root, ignoring focus paths",default:!1}).option("list-editors",{type:"boolean",describe:"List detected editors"}),handler:async(e)=>{if(e["list-editors"]){let t=process.env.VISUAL||process.env.EDITOR;if(t)console.log(`$VISUAL/$EDITOR: ${t}`);for(let n of qf)try{let o=Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"});if(o.exitCode===0){let i=new TextDecoder().decode(o.stdout).trim();console.log(` ${n}: ${i}`)}}catch{}process.exit(0)}try{let t=e["branch-or-path"],n=e.focus,o=Boolean(e.root),i;if(!t)i=process.cwd();else{let m=await Ue(),p=await se.list(m);i=Xt(p,t).path}if(!zf(i))console.error(`Error: worktree path does not exist: ${i}`),process.exit(1);let s;try{s=Kr(i,{explicitFocus:n,forceRoot:o})}catch(m){if(m instanceof Hr)console.error(`Error: ${m.message}`),process.exit(1);throw m}let c;if(s.kind==="multiple")console.error(`Error: worktree has multiple focus paths set: ${s.focusPaths.join(", ")}`),console.error("Use --focus <path> to pick one, or --root to open the worktree root."),process.exit(1);if(c=s.path,!zf(c)){if(console.error(`Error: target path does not exist: ${c}`),s.kind==="single")console.error("The focus path may have been deleted. Try --root to open the worktree root.");process.exit(1)}let a=qg(e.editor);if(!a)console.error("Error: no editor detected."),console.error("Set $VISUAL or $EDITOR, or use --editor <command>."),console.error("Detected editors can be listed with: copse open --list-editors"),process.exit(1);let u=s.kind==="single"?` [focus: ${s.focus}]`:"";console.log(`Opening ${c} with ${a}${u}...`),await Bun.spawn([a,c],{stdout:"inherit",stderr:"inherit",stdin:"inherit"}).exited,process.exit(0)}catch(t){et(t)}}},Yg=Xg});var Qf={};Ne(Qf,{default:()=>Qg});import{resolve as Zf}from"path";var Zg,Qg;var Nf=ge(()=>{Ke();qe();bt();Zg={command:"exec <command>",describe:"Run a command in each worktree",builder:(e)=>e.positional("command",{type:"string",describe:"Shell command to execute",demandOption:!0}).option("all",{type:"boolean",alias:"a",describe:"Run across all configured repos"}).option("dirty",{type:"boolean",describe:"Only run in dirty worktrees"}).option("clean",{type:"boolean",describe:"Only run in clean worktrees"}).option("behind",{type:"boolean",describe:"Only run in worktrees behind upstream"}).option("parallel",{type:"boolean",alias:"p",describe:"Run commands in parallel (default: sequential)"}).option("json",{type:"boolean",alias:"j",describe:"Output results as JSON"}),handler:async(e)=>{let t=e.command,n=!!e.parallel,o=!!e.json;try{let i;if(e.all){let h=Ae(),m=await Ue(),p=En(h),w=new Set([Zf(m)]),A=[m];for(let W of p){let y=Zf(W);if(!w.has(y))w.add(y),A.push(W)}i=await se.listAll(A)}else i=await se.list();let s=i.filter((h)=>!h.isMain);if(e.dirty)s=s.filter((h)=>h.isDirty);if(e.clean)s=s.filter((h)=>!h.isDirty);if(e.behind)s=(await Qt(s,10,async(m)=>{if(!m.branch)return{wt:m,behind:!1};let p=await se.getAheadBehind(m.branch,m.path);return{wt:m,behind:p.behind>0}})).filter((m)=>m.behind).map((m)=>m.wt);if(s.length===0)console.log("No matching worktrees found."),process.exit(0);if(!o)console.log(`Running '${t}' in ${s.length} worktree(s)...
152
- `);let c=async(h)=>{let m=Bun.spawn(["sh","-c",t],{cwd:h.path,stdout:"pipe",stderr:"pipe",env:{...Bun.env,COPSE_BRANCH:h.branch??"",COPSE_WORKTREE_PATH:h.path,COPSE_REPO_PATH:h.repoPath}}),[p,w,A]=await Promise.all([new Response(m.stdout).text(),new Response(m.stderr).text(),m.exited]);return{branch:h.branch??"(detached)",path:h.path,exitCode:A,stdout:p.trim(),stderr:w.trim()}},a;if(n)a=await Qt(s,10,c);else{a=[];for(let h of s)a.push(await c(h))}if(o)console.log(JSON.stringify(a,null,2));else{for(let p of a){let w=p.exitCode===0?"\u2713":"\u2717";if(console.log(`${w} ${p.branch} (exit ${p.exitCode})`),p.stdout)for(let A of p.stdout.split(`
153
- `))console.log(` ${A}`);if(p.stderr)for(let A of p.stderr.split(`
154
- `))console.log(` ${A}`);console.log()}let h=a.filter((p)=>p.exitCode===0).length,m=a.length-h;console.log(`Done: ${h} passed, ${m} failed`)}let u=a.some((h)=>h.exitCode!==0);process.exit(u?1:0)}catch(i){et(i)}}},Qg=Zg});var $f={};Ne($f,{default:()=>$g});var Ng,$g;var _f=ge(()=>{Ke();bt();Ng={command:"diff <ref1> [ref2]",describe:"Show diff between two worktrees or branches",builder:(e)=>e.positional("ref1",{type:"string",describe:"First worktree branch or ref",demandOption:!0}).positional("ref2",{type:"string",describe:"Second worktree branch or ref (default: current HEAD)"}).option("stat",{type:"boolean",alias:"s",describe:"Show diffstat summary only"}).option("name-only",{type:"boolean",alias:"n",describe:"Show only names of changed files"}),handler:async(e)=>{let t=e.ref1,n=e.ref2??"HEAD",o=!!e.stat,i=!!e["name-only"];try{let s=await Ue(),c=await se.list(s),a=(p)=>{return c.find((A)=>A.branch===p)?.branch??p},u=a(t),h=a(n),m=await se.diffBetween(u,h,{stat:o,nameOnly:i},s);if(!m)console.log(`No differences between ${t} and ${n==="HEAD"?"current HEAD":n}`);else console.log(m);process.exit(0)}catch(s){et(s)}}},$g=Ng});var eu={};Ne(eu,{default:()=>eb});var _g,eb;var tu=ge(()=>{Ke();Mo();bt();_g={command:"pin [branch]",aliases:["unpin"],describe:"Pin or unpin a worktree",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).option("reason",{type:"string",describe:"Reason for pinning"}).option("list",{type:"boolean",describe:"List pinned worktrees"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("unpin",{type:"boolean",describe:"Unpin instead of pinning"}),handler:async(e)=>{try{let t=e,n=await se.list();if(e.list){let a=Ds(n).map((w)=>({...w,pin:rr(w.path)}));if(e.json)console.log(JSON.stringify(a,null,2)),process.exit(0);if(a.length===0)console.log("No pinned worktrees found."),process.exit(0);let u=Math.max(6,...a.map((w)=>(w.branch??"(detached)").length)),h=Math.max(4,...a.map((w)=>w.path.length)),m=Math.max(6,...a.map((w)=>(w.pin?.reason??"\u2014").length)),p=Math.max(9,...a.map((w)=>(w.pin?.pinnedAt??"\u2014").length));console.log(`${"Branch".padEnd(u)} ${"Path".padEnd(h)} ${"Reason".padEnd(m)} ${"Pinned At".padEnd(p)}`),console.log(`${"-".repeat(u)} ${"-".repeat(h)} ${"-".repeat(m)} ${"-".repeat(p)}`);for(let w of a)console.log(`${(w.branch??"(detached)").padEnd(u)} ${w.path.padEnd(h)} ${(w.pin?.reason??"\u2014").padEnd(m)} ${(w.pin?.pinnedAt??"\u2014").padEnd(p)}`);process.exit(0)}let o=e._[0]==="unpin"||!!e.unpin,i=typeof t.branch==="string"?t.branch:typeof e._[1]==="string"?e._[1]:void 0;if(!i)console.error("Error: branch is required"),process.exit(1);let s=n.find((a)=>a.branch===i);if(!s)console.error(`Error: no worktree found for '${i}'`),process.exit(1);if(o){if(!rr(s.path))console.warn(`Warning: worktree is not pinned: ${s.path}`),process.exit(0);Fs(s.path),console.log(`Unpinned worktree: ${s.path}`),process.exit(0)}if(rr(s.path))console.warn(`Warning: worktree is already pinned: ${s.path}`),process.exit(0);let c=typeof t.reason==="string"?t.reason:void 0;Es(s.path,c),console.log(`Pinned worktree: ${s.path}`),process.exit(0)}catch(t){et(t)}}},eb=_g});var nu={};Ne(nu,{default:()=>ob});function tb(e){let t={create:"\x1B[32m",delete:"\x1B[31m",switch:"\x1B[34m",rename:"\x1B[33m",archive:"\x1B[35m",import:"\x1B[36m",reset:"\x1B[0m"};return`${t[e]??t.reset}${e}${t.reset}`}var nb,ob;var ou=ge(()=>{Ln();bt();nb={command:"log",aliases:["logs"],describe:"Show worktree activity log",builder:(e)=>e.option("limit",{type:"number",default:20,describe:"Show the last N entries"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("clear",{type:"boolean",describe:"Clear the activity log"}),handler:async(e)=>{try{let t=await Ue();if(e.clear){if(!await Bn("Clear activity log? [y/N] "))console.log("Cancelled."),process.exit(0);Ml(t),console.log("Activity log cleared."),process.exit(0)}let n=typeof e.limit==="number"?e.limit:20,o=Dl(t,{limit:n});if(e.json)console.log(JSON.stringify(o,null,2)),process.exit(0);for(let i of o){let s=tb(i.event),c=i.branch??"(unknown)",a=i.details?Object.entries(i.details).map(([u,h])=>`${u}=${h}`).join(" "):"";console.log(`[${i.timestamp}] ${s} ${c}${a?` (${a})`:""}`)}process.exit(0)}catch(t){et(t)}}},ob=nb});import{existsSync as su,mkdirSync as rb,readFileSync as cu,writeFileSync as ru}from"fs";import{homedir as ib}from"os";import{basename as sb,join as ti}from"path";function cb(e){let t=er(e),n=ti(t,"HEAD");if(!su(n))return null;let i=cu(n,"utf-8").trim().match(/^ref:\s+(.+)$/);if(!i)return null;return i[1]?.replace(/^refs\/heads\//,"")??null}async function iu(e,t){return se.exec(e,t)}function au(){let e=Bun.env.HOME??ib();return ti(e,".copse","archives")}async function lu(e,t){let n=sb(t),o=await se.getBranchForWorktree(e)??cb(e)??"detached-head",i=o.replaceAll("/","-"),s=new Date().toISOString(),c=s.replaceAll(":","-"),a=ti(au(),n);rb(a,{recursive:!0});let u=ti(a,`${i}-${c}`),h=`${u}.patch`,m=`${u}.json`;try{let[p,w,A]=await Promise.all([iu(["diff"],e),iu(["format-patch","-5","HEAD","--stdout"],e),se.getLastCommit(e)]),W=["# COP archive",`# repo: ${n}`,`# branch: ${o}`,`# archivedAt: ${s}`,"","# Uncommitted diff",p||"# (no uncommitted changes)","","# Recent commits (git format-patch -5 HEAD --stdout)",w||"# (no recent commits)"].join(`
155
- `);ru(h,W,"utf-8");let y={branch:o,repo:n,archivedAt:s,patchPath:h,commitHash:A?.hash??"",message:A?.message??""};return ru(m,JSON.stringify(y,null,2),"utf-8"),y}catch(p){let w=p instanceof Error?p.message:"Unknown archive error";throw new as(`Failed to archive worktree: ${w}`,o,"archive_failed")}}async function fu(e){let t=au();if(!su(t))return[];let n=e?`${e}/*.json`:"**/*.json",o=new Bun.Glob(n),i=[];for await(let s of o.scan({cwd:t,absolute:!0}))try{let c=cu(s,"utf-8");i.push(JSON.parse(c))}catch{}return i.sort((s,c)=>{let a=Date.parse(s.archivedAt);return Date.parse(c.archivedAt)-a})}var uu=ge(()=>{Ke();Ut();Pn()});var du={};Ne(du,{default:()=>fb});import{basename as ab}from"path";var lb,fb;var hu=ge(()=>{Ke();Ln();uu();qe();oo();bt();lb={command:"archive [branch]",describe:"Archive worktree changes and optionally remove",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name or worktree path"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}).option("keep",{type:"boolean",describe:"Archive without removing the worktree"}).option("list",{type:"boolean",describe:"List all archives"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON (with --list)"}),handler:async(e)=>{let t=e.branch,n=!!e.yes,o=!!e.keep,i=!!e.list,s=!!e.json;try{if(i){let p=await fu();if(s)console.log(JSON.stringify(p,null,2));else if(p.length===0)console.log("No archives found.");else{console.log(`Archives:
156
- `);for(let w of p){let A=new Date(w.archivedAt).toLocaleString();console.log(` ${w.repo}/${w.branch}`),console.log(` Date: ${A}`),console.log(` Commit: ${w.commitHash.slice(0,8)} ${w.message}`),console.log(` Patch: ${w.patchPath}`),console.log()}}process.exit(0)}if(!t)console.error("Error: branch name is required (or use --list to view archives)"),process.exit(1);let c=await Ue(),a=await se.list(c),u=Xt(a,t);if(u.isMain)console.error("Error: cannot archive the main worktree"),process.exit(1);let h=o?"Archive":"Archive and remove";if(!n){if(!await Bn(`${h} worktree '${u.branch??ab(u.path)}'? [y/N] `))console.log("Cancelled."),process.exit(0)}let m=await lu(u.path,c);console.log(`Archived: ${m.patchPath}`);try{qt(c,{timestamp:new Date().toISOString(),event:"archive",branch:m.branch,path:m.patchPath})}catch{}if(!o){let p=Ae(),w=Ht(p,c);if(w.postRemove.length>0)console.log("Running postRemove hooks..."),await rn(w.postRemove,{cwd:u.path,env:{COPSE_BRANCH:u.branch??"",COPSE_WORKTREE_PATH:u.path,COPSE_REPO_PATH:c},onOutput:(A)=>console.log(` ${A}`)}).catch((A)=>console.warn(`Warning: postRemove hook failed: ${A.message}`));await se.remove(u.path,{force:!1},c),dt(),console.log(`Removed worktree: ${u.path}`)}process.exit(0)}catch(c){et(c)}}},fb=lb});var mu={};Ne(mu,{default:()=>pb});import{dirname as ub,basename as db,join as hb}from"path";var mb,pb;var pu=ge(()=>{Ke();Ln();bt();mb={command:"rename <old> <new>",describe:"Rename worktree branch",builder:(e)=>e.positional("old",{type:"string",demandOption:!0,describe:"Current branch name"}).positional("new",{type:"string",demandOption:!0,describe:"New branch name"}).option("move-path",{type:"boolean",describe:"Also rename the worktree directory path"}),handler:async(e)=>{let{old:t,new:n}=e,o=!!e["move-path"];try{let i=await Ue(),s=await se.list(i),c=Xt(s,t);if(c.isMain)console.error("Error: cannot rename the main worktree branch"),process.exit(1);if(s.find((u)=>u.branch===n))console.error(`Error: branch '${n}' already exists`),process.exit(1);if(await se.exec(["branch","-m",t,n],i),dt(),o){let u=n.replace(/\//g,"-"),h=ub(c.path),m=db(c.path),p=t.replace(/\//g,"-"),w=m.replace(p,u),A=hb(h,w);if(A!==c.path)await se.move(c.path,A,i),dt(),console.log(`Moved worktree: ${c.path} \u2192 ${A}`)}console.log(`Renamed branch: ${t} \u2192 ${n}`);try{qt(i,{timestamp:new Date().toISOString(),event:"rename",branch:n,details:{oldBranch:t}})}catch{}process.exit(0)}catch(i){et(i)}}},pb=mb});var gu={};Ne(gu,{default:()=>xb});import{basename as gb,resolve as bb}from"path";var wb,xb;var bu=ge(()=>{Ke();Ut();qe();oo();wb={command:"clone <url> [path]",describe:"Clone a repository and initialize copse config",builder:(e)=>e.positional("url",{type:"string",describe:"Repository URL to clone",demandOption:!0}).positional("path",{type:"string",describe:"Target directory path"}).option("template",{type:"string",alias:"t",describe:"Apply a named template after cloning"}).option("init-config",{type:"boolean",describe:"Initialize copse config after cloning",default:!0}),handler:async(e)=>{let{url:t,template:n}=e,o=e["init-config"],i=e.path;if(!i)try{let s=new URL(t);i=gb(s.pathname).replace(/\.git$/,"")}catch{i=(t.split("/").pop()??t.split(":").pop()??t).replace(/\.git$/,"")}if(!i)console.error("Error: could not determine target directory from URL"),process.exit(1);console.log(`Cloning ${t}...`);try{await se.exec(["clone",t,i])}catch(s){if(s instanceof xt)console.error(`Error: ${s.stderr||s.message}`);else console.error(`Error: ${s.message}`);process.exit(1)}if(o)try{let s=Kt();console.log(` \u2713 Config initialized: ${s}`)}catch(s){console.warn(` \u26A0 Could not initialize config: ${s.message}`)}if(n)try{let s=Ae(),c=Sr(s,n);if(!c){let m=Object.keys(s.templates??{});if(console.error(`Error: template '${n}' not found.`),m.length>0)console.error(`Available templates: ${m.join(", ")}`);else console.error("No templates configured. Add templates to your config file.");process.exit(1)}console.log(` Using template '${n}'`);let a=bb(i),u=Ht(s,a),h=Cr(u,c);if(h.postCreate.length>0)console.log(" Running postCreate hooks..."),await rn(h.postCreate,{cwd:a,env:{COPSE_REPO_PATH:a},onOutput:(m)=>console.log(` ${m}`)}),console.log(" \u2713 Hooks completed");console.log(` \u2713 Template '${n}' applied`)}catch(s){if(s instanceof Oo)console.error(`Error: hook timed out: ${s.command}`);else if(s instanceof Ro){if(console.error(`Error: hook failed (exit ${s.exitCode}): ${s.command}`),s.stderr)console.error(s.stderr)}else console.error(`Error applying template: ${s.message}`);process.exit(1)}console.log(`
157
- Cloned: ${t} \u2192 ${i}`),process.exit(0)}},xb=wb});import{existsSync as wu,readFileSync as xu,statSync as ni}from"fs";import{basename as yb,join as oi,resolve as Po}from"path";async function js(e,t){return se.exec(e,t)}function Sb(e){let t=oi(e,"HEAD");if(!wu(t))return null;let o=xu(t,"utf-8").trim().match(/^ref:\s+refs\/heads\/(.+)$/);return o?o[1]:null}function yu(e){let t=Po(e),n=oi(t,".git");if(!ni(n,{throwIfNoEntry:!1}))throw Error(`Missing .git at ${n}`);return er(t)}function Ls(e){let t=Po(e),n=ni(t,{throwIfNoEntry:!1});if(!n)return{valid:!1,reason:`Path does not exist: ${t}`};if(!n.isDirectory())return{valid:!1,reason:`Path is not a directory: ${t}`};let o=oi(t,".git"),i=ni(o,{throwIfNoEntry:!1});if(!i)return{valid:!1,reason:`Target is missing .git: ${t}`};if(i.isDirectory())return{valid:!1,reason:`Target is not a linked git worktree (.git is a directory): ${t}`};if(!i.isFile())return{valid:!1,reason:`Target has invalid .git entry: ${t}`};let s="";try{s=yu(t)}catch{return{valid:!1,reason:`Cannot resolve gitdir from .git file: ${t}`}}if(!ni(s,{throwIfNoEntry:!1})?.isDirectory())return{valid:!1,reason:`Resolved gitdir does not exist: ${s}`};let a=Sb(s);if(!a)return{valid:!1,reason:`Cannot resolve branch name from HEAD: ${t}`};return{valid:!0,branch:a}}async function Su(e,t){let n=Po(e),o=Ls(n);if(!o.valid)throw new _o(`Cannot import worktree: ${o.reason??"invalid target"}`,n,o.reason??"invalid target");let[i,s,c]=await Promise.all([js(["rev-parse","HEAD"],n),js(["status","--porcelain"],n),js(["rev-parse","--git-common-dir"],n)]),a=Po(n,c),u=a.endsWith("/.git")||a.endsWith("\\.git")?a.slice(0,-5):a,h=yb(u),m=Po(n)===Po(u),p=yu(n),w=oi(p,"locked"),A=wu(w),W=A?xu(w,"utf-8").trim()||void 0:void 0;if(t?.focus&&t.focus.length>0)Vr(n,t.focus);if(t?.pin)try{(await Promise.resolve().then(() => (Mo(),_l))).writePin(n)}catch(y){console.warn(`Warning: failed to pin worktree: ${y.message}`)}return{path:n,branch:o.branch??null,head:i,isMain:m,isDirty:s.length>0,isLocked:A,lockReason:W,repoName:h,repoPath:u}}var Cu=ge(()=>{Ke();nn();Ut();Pn()});var Ru={};Ne(Ru,{default:()=>Ob});import{resolve as Cb}from"path";var Rb,Ob;var Ou=ge(()=>{Cu();Ke();Ln();Ut();bt();Rb={command:"import <path>",describe:"Adopt a worktree with copse metadata",builder:(e)=>e.positional("path",{type:"string",describe:"Existing worktree directory path",demandOption:!0}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("pin",{type:"boolean",describe:"Pin the worktree"}),handler:async(e)=>{let t=Cb(e.path),n=Ls(t);if(!n.valid)console.error(`Error: ${n.reason??"invalid import target"}`),process.exit(1);let i=e.focus?.flatMap((c)=>c.split(/[,\s]+/)).map((c)=>c.trim()).filter(Boolean)??[],s=!!e.pin;try{let c=await Su(t,{focus:i,pin:s});dt();let a=c.branch??n.branch??"unknown",u=c.repoPath??await Ue();console.log(`Imported worktree: ${a} at ${c.path}`);try{qt(u,{timestamp:new Date().toISOString(),event:"import",branch:c.branch??n.branch??"unknown",path:c.path})}catch{}if(i.length>0)console.log(` Focus: ${i.join(", ")}`);if(s)console.log(" Pinned");process.exit(0)}catch(c){if(c instanceof _o)console.error(`Error: ${c.reason}`);else console.error(`Error: ${c.message}`);process.exit(1)}}},Ob=Rb});var vu={};Ne(vu,{default:()=>Fb});import{basename as ri}from"path";async function kb(e,t,n){let[o,i]=await Promise.all([gs(t),se.list(e)]);if(n){let s=o.map((c)=>{let a=i.find((h)=>{let m=h.branch??ri(h.path);return An(m,t)===c.name}),u=a?zt(a.path):null;return{...c,branch:a?.branch??null,worktreePath:a?.path??null,layout:u?.layout??null}});console.log(JSON.stringify(s,null,2));return}if(o.length===0){console.log("No active copse sessions.");return}console.log(`Active sessions (${o.length}):
158
- `);for(let s of o){let c=i.find((p)=>{let w=p.branch??ri(p.path);return An(w,t)===s.name}),a=c?zt(c.path):null,u=s.attached?" (attached)":"",h=a?.layout?` [${a.layout}]`:"",m=c?.branch?` ${c.branch}`:"";console.log(` ${s.name}${m} ${s.windows} windows${h}${u}`)}}async function Eb(e,t){let[n,o]=await Promise.all([gs(t),se.list(e)]);if(n.length===0){console.log("No active copse sessions.");return}let i=0;for(let s of n){let c=o.find((a)=>{let u=zt(a.path),h=a.branch??ri(a.path);return u?.name===s.name||An(h,t)===s.name});if(await ps(s.name),c)hs(c.path);i++,console.log(` \u2713 Killed ${s.name}`)}console.log(`
159
- Killed ${i} session${i!==1?"s":""}.`)}var vb,Fb;var ku=ge(()=>{Ke();qe();Wn();bt();vb={command:"session [branch-or-path]",aliases:["ss"],describe:"Manage tmux sessions for worktrees",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path to open session for"}).option("list",{type:"boolean",alias:"l",describe:"List active copse tmux sessions"}).option("kill",{type:"boolean",alias:"k",describe:"Kill the session for the specified worktree"}).option("kill-all",{type:"boolean",describe:"Kill all copse tmux sessions"}).option("layout",{type:"string",describe:"Use a named layout from config"}).option("json",{type:"boolean",alias:"j",describe:"Output in JSON format"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.list,o=!!e.kill,i=!!e["kill-all"],s=e.layout,c=!!e.json;if(!await yo())console.error("Error: tmux is not installed or not in PATH."),console.error("Install tmux to use session management."),process.exit(1);try{let a=await Ue(),u=Ae(),h=Fn(u);if(n)await kb(a,h.prefix,c),process.exit(0);if(i)await Eb(a,h.prefix),process.exit(0);if(!t)console.error("Error: specify a branch or worktree path, or use --list."),process.exit(1);let m=await se.list(a),p=Xt(m,t),w=p.branch??ri(p.path);if(o){if(await Tr(w,p.path,h.prefix))console.log(`Killed session for '${w}'`);else console.log(`No active session for '${w}'`);process.exit(0)}let A=Rr(u,s),W=await Ur(w,p.path,{layout:A,prefix:h.prefix,attach:!0,layoutName:s??h.defaultLayout});console.log(`Session: ${W}`),process.exit(0)}catch(a){et(a)}}};Fb=vb});import{existsSync as Is,mkdirSync as Eu,writeFileSync as Fu}from"fs";import{dirname as Du,join as Ao}from"path";function Db(e){let t=process.env.HOME||process.env.USERPROFILE||"~";switch(e){case"claude-code":return Ao(t,".claude","skills","copse");case"codex":return Ao(t,".agents","skills","copse");case"opencode":return Ao(t,".config","opencode","skill","copse")}}function Mb(e){return Ao(Db(e),"SKILL.md")}function Wb(e){return["| Flag | Type | Alias | Description |","|------|------|-------|-------------|",...e.length>0?e.map((n)=>`| ${n.flag} | ${n.type} | ${n.alias} | ${n.description} |`):["| - | - | - | No options |"]].join(`
160
- `)}function jb(){let e=Ab.map((n)=>`| \`${n.command}\` | ${n.aliases} | ${n.description} |`),t=Mu.map((n)=>`- [\`copse ${n.command}\`](references/${n.command}.md)`);return["---","name: copse",`description: ${Pb}`,"metadata:"," author: getsolaris",' version: "1.0.0"',"---","","# copse (copse)","","## Quick Start","","### Create a feature worktree","","```bash","copse add feature/my-feature --base main","```","","### List and check status","","```bash","copse list","copse status","```","","### Clean up merged worktrees","","```bash","copse clean --dry-run","copse clean --yes","```","","### Run commands across worktrees","","```bash",'copse exec "bun test" --parallel',"```","","### Review a GitHub PR","","```bash","copse add pr-review --pr 42","copse open pr-review","```","","### Use templates","","```bash","# Create worktree with predefined template (hooks, base branch, settings)","copse add feature/new --template frontend","```","","### Tmux session management","","```bash","# Create worktree with tmux session","copse add feature/api --session --layout dev","","# List active sessions","copse session --list","","# Attach to existing session","copse session feature/api","```","","### Shell integration setup","","```bash","# Add to ~/.zshrc or ~/.bashrc",'eval "$(copse shell-init)"',"","# Then switch worktrees with cd","copse switch feature/auth","```","","## Command Overview","","| Command | Aliases | Description |","|---------|---------|-------------|",...e,"","## Monorepo Workflows","","Use focus paths to target packages and trigger matching monorepo hooks.","","```bash","copse add feature/web-auth --focus apps/web,apps/api","copse import /path/to/worktree --focus packages/core --pin","copse list --json","```","","Focus accepts comma-separated values, space-separated values, or repeated --focus flags.","","## Configuration","","- Config path: `~/.config/copse/config.json`","- Use `--json` output flags for scripting and automation","- Environment variables in `copse exec`: `COPSE_BRANCH`, `COPSE_WORKTREE_PATH`, `COPSE_REPO_PATH`","","## Command Reference","","For detailed options and examples for each command:","",...t,"- [`Configuration Schema`](references/config-schema.md)",""].join(`
161
- `)}function Lb(){let e=new Map;for(let n of Mu){let o=[`# copse ${n.command}`,"",n.summary,"","## Synopsis","","```",n.synopsis,"```","","## Options","",Wb(n.options),"","## Examples","","```bash",`# ${n.examples[0][0]}`,n.examples[0][1],"",`# ${n.examples[1][0]}`,n.examples[1][1],"```","","## Notes","",...n.notes.map((i)=>`- ${i}`),"",...n.configKeys.length>0?["## Configuration","","Related config keys in `~/.config/copse/config.json`:","",...n.configKeys.map((i)=>`- ${i}`),""]:[]];e.set(`${n.command}.md`,o.join(`
162
- `))}let t=Ib();return e.set("config-schema.md",t),e}function Ib(){return["# Configuration Schema","","Config file path: `~/.config/copse/config.json`","","## Minimal Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env", ".env.local"],',' "linkFiles": ["node_modules"],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true'," }","}","```","","## Full Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env"],',' "linkFiles": [],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true,',' "sharedDeps": {',' "strategy": "symlink",',' "paths": ["node_modules"]'," }"," },",' "repos": ['," {",' "path": "/path/to/repo",',' "copyFiles": [".env", ".env.local"],',' "monorepo": {',' "autoDetect": true,',' "hooks": ['," {",' "glob": "apps/*",',' "postCreate": ["bun install"]'," }"," ]"," }"," }"," ],",' "templates": {',' "frontend": {',' "base": "main",',' "copyFiles": [".env"],',' "postCreate": ["bun install", "bun run build"]'," },",' "review": {',' "base": "main",',' "postCreate": ["bun install"]'," }"," },",' "sessions": {',' "enabled": true,',' "autoCreate": false,',' "autoKill": true,',' "prefix": "copse",',' "defaultLayout": "dev",',' "layouts": {',' "dev": {',' "windows": [',' { "name": "editor", "command": "nvim ." },',' { "name": "server", "command": "bun run dev" },',' { "name": "shell" }'," ]"," }"," }"," },",' "lifecycle": {',' "autoCleanMerged": false,',' "staleAfterDays": 30,',' "maxWorktrees": 10'," },",' "theme": "default"',"}","```","","## Key Reference","","### defaults","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `worktreeDir` | string | `~/.copse/worktrees/{repo}-{branch}` | Directory pattern. Supports `{repo}` and `{branch}` variables |","| `copyFiles` | string[] | `[]` | Files to copy from main worktree on creation |","| `linkFiles` | string[] | `[]` | Files to symlink from main worktree on creation |","| `postCreate` | string[] | `[]` | Shell commands to run after worktree creation |","| `postRemove` | string[] | `[]` | Shell commands to run before worktree removal |","| `autoUpstream` | boolean | `false` | Automatically set upstream tracking branch |","| `base` | string | - | Default base ref for new branches. If it matches `<remote>/<branch>` of a known remote (e.g. `origin/main`), `copse add` auto-runs `git fetch <remote> <branch>` first |","| `sharedDeps.strategy` | string | `symlink` | Strategy for sharing deps: `symlink`, `hardlink`, or `copy` |","| `sharedDeps.paths` | string[] | `[]` | Paths to share between worktrees |","","### repos[]","","Per-repository overrides. Same keys as `defaults` plus:","","| Key | Type | Description |","|-----|------|-------------|","| `path` | string | **Required.** Absolute path to the repository |","| `monorepo.autoDetect` | boolean | Auto-detect monorepo tools (pnpm, turbo, nx, lerna) |","| `monorepo.extraPatterns` | string[] | Additional glob patterns for package discovery |","| `monorepo.hooks[]` | object[] | Per-package hooks matched by glob pattern |","| `monorepo.hooks[].glob` | string | Glob to match against focus paths |","| `monorepo.hooks[].copyFiles` | string[] | Package-level files to copy |","| `monorepo.hooks[].linkFiles` | string[] | Package-level files to symlink |","| `monorepo.hooks[].postCreate` | string[] | Package-level post-create hooks |","| `monorepo.hooks[].postRemove` | string[] | Package-level post-remove hooks |","","### workspaces[]","","Auto-discover git repositories under parent directories. Discovered repos are merged into `repos[]` at load time. Explicit `repos[]` entries with the same resolved path always take precedence.","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `path` | string | \u2014 | **Required.** Parent directory to scan. Supports `~` expansion. |","| `depth` | integer | `1` | Scan depth (1\u20133). `1` scans only immediate children. |","| `exclude` | string[] | `[]` | Glob patterns matched against directory names to skip. |","| `defaults` | object | \u2014 | Per-repo defaults applied to discovered repos. Same fields as `defaults`, but `monorepo` is not allowed. |","","Discovery rules: a directory is a repo only if it contains a `.git` **directory** (not a file). Linked worktrees and submodules are skipped. Discovered repos are not recursed into. Symbolic links are not followed.","","### templates","","Named presets applied via `copse add --template <name>` or `copse clone --template <name>`.","","| Key | Type | Description |","|-----|------|-------------|","| `base` | string | Default base branch for new worktrees |","| `worktreeDir` | string | Override directory pattern |","| `copyFiles` | string[] | Override files to copy |","| `linkFiles` | string[] | Override files to symlink |","| `postCreate` | string[] | Override post-create hooks |","| `postRemove` | string[] | Override post-remove hooks |","| `autoUpstream` | boolean | Override upstream tracking |","","### sessions","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `enabled` | boolean | `false` | Enable tmux session integration |","| `autoCreate` | boolean | `false` | Auto-create session on `copse add` |","| `autoKill` | boolean | `false` | Auto-kill session on `copse remove` |","| `prefix` | string | `copse` | Prefix for tmux session names |","| `defaultLayout` | string | - | Default layout name |","| `layouts.<name>.windows[]` | object[] | - | Window definitions |","| `layouts.<name>.windows[].name` | string | **Required.** | Window name |","| `layouts.<name>.windows[].command` | string | - | Command to run in window |","","### lifecycle","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `autoCleanMerged` | boolean | `false` | Auto-clean merged worktrees |","| `staleAfterDays` | number | `30` | Days until a worktree is considered stale |","| `maxWorktrees` | number | `10` | Maximum number of worktrees |",""].join(`
163
- `)}function Pu(e){let t=Mb(e),n=Ao(Du(t),"references"),o=jb(),i=Lb(),s=Du(t);if(!Is(s))Eu(s,{recursive:!0});if(!Is(n))Eu(n,{recursive:!0});let c=Is(t);Fu(t,o,"utf-8");for(let[a,u]of i.entries())Fu(Ao(n,a),u,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Bs,Pb="Git worktree manager. Use when working with git worktrees \u2014 creating, switching, removing, listing, or managing worktrees across repositories. Also use for monorepo focus, tmux sessions, and worktree health checks.",Ab,Mu;var Au=ge(()=>{Bs=["claude-code","codex","opencode"];Ab=[{command:"add",aliases:"-",description:"Create a new worktree from a branch, template, or PR."},{command:"remove",aliases:"rm",description:"Remove a worktree by branch or path."},{command:"list",aliases:"ls",description:"List worktrees with branch, path, status, and focus."},{command:"switch",aliases:"sw",description:"Print shell cd command for a target worktree."},{command:"status",aliases:"st",description:"Show status summary for worktrees."},{command:"clean",aliases:"-",description:"Clean merged worktrees and optionally report stale ones."},{command:"doctor",aliases:"-",description:"Run worktree health checks and optional auto-fixes."},{command:"exec",aliases:"-",description:"Run commands across non-main worktrees."},{command:"diff",aliases:"-",description:"Compare two refs or worktree branches."},{command:"pin",aliases:"unpin",description:"Pin or unpin worktrees and inspect pin metadata."},{command:"log",aliases:"logs",description:"Read or clear the activity log."},{command:"archive",aliases:"-",description:"Archive worktree changes as patch files."},{command:"rename",aliases:"-",description:"Rename a worktree branch and optionally move its path."},{command:"clone",aliases:"-",description:"Clone a repository and initialize copse setup."},{command:"import",aliases:"-",description:"Import an existing worktree into copse metadata."},{command:"session",aliases:"ss",description:"Manage tmux sessions for worktrees."},{command:"config",aliases:"-",description:"Initialize, inspect, validate, and manage config profiles."},{command:"open",aliases:"-",description:"Open a worktree path in your preferred editor."},{command:"shell-init",aliases:"-",description:"Generate shell integration and completions."},{command:"init",aliases:"-",description:"Initialize config or install/update copse AI agent skill files."}],Mu=[{command:"add",summary:"Create a new worktree from a branch, template, or GitHub PR.",synopsis:"copse add [branch] [path]",options:[{flag:"--create",type:"boolean",alias:"-c",description:"Optional compatibility flag; missing branches are created automatically"},{flag:"--base",type:"string",alias:"-b",description:"Base branch/commit for new branch"},{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--template",type:"string",alias:"-t",description:"Use a named template from config"},{flag:"--pr",type:"number",alias:"-",description:"Create worktree from a GitHub PR number"},{flag:"--session",type:"boolean",alias:"-s",description:"Create a tmux session for this worktree"},{flag:"--layout",type:"string",alias:"-",description:"Session layout name from config"},{flag:"--no-fetch",type:"boolean",alias:"-",description:"Skip auto-fetch when base is a remote ref (e.g. origin/main)"}],examples:[["Create a feature branch worktree","copse add feature/auth --base main"],["Branch from fresh remote ref (auto-fetch)","copse add feature/auth --base origin/main"],["Create from PR with session layout","copse add feature/review --pr 123 --session --layout dev"]],notes:["Creates the branch automatically when it does not already exist.","Existing branches are reused as-is; --base only applies when a new branch is created.","Runs copyFiles, linkFiles, sharedDeps, postCreate hooks, monorepo hooks after creation.","Rolls back on hook failure.","Requires gh CLI for --pr.","Supports comma/space separated focus paths.","When --base matches '<remote>/<branch>' and <remote> is a known git remote, copse runs `git fetch <remote> <branch>` first (disable with --no-fetch).","Base resolution order: --base flag > template.base > repoConfig.base > defaults.base > git HEAD."],configKeys:["`defaults.worktreeDir` \u2014 Directory pattern for new worktrees","`defaults.copyFiles` \u2014 Files to copy from main worktree","`defaults.linkFiles` \u2014 Files to symlink from main worktree","`defaults.sharedDeps` \u2014 Shared dependency strategy and paths","`defaults.postCreate` \u2014 Hooks to run after worktree creation","`defaults.autoUpstream` \u2014 Auto-set upstream tracking branch","`defaults.base` \u2014 Default base ref for new branches (e.g. `origin/main` triggers auto-fetch)","`templates.*` \u2014 Named template overrides","`sessions.autoCreate` \u2014 Auto-create tmux session on add","`sessions.layouts` \u2014 Tmux session layout definitions"]},{command:"remove",summary:"Remove a worktree by branch name or path.",synopsis:"copse remove <branch-or-path>",options:[{flag:"--force",type:"boolean",alias:"-f",description:"Force removal even with uncommitted changes"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"}],examples:[["Remove a branch worktree","copse remove feature/auth"],["Force remove without prompt","copse remove feature/auth --force --yes"]],notes:["Runs postRemove hooks and monorepo postRemove hooks before removal.","Cannot remove main worktree.","Cannot remove locked worktrees.","Auto-kills tmux session if sessions.autoKill is enabled."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal","`sessions.autoKill` \u2014 Auto-kill tmux session on remove"]},{command:"list",summary:"List worktrees with branch, path, status, and focus details.",synopsis:"copse list",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--porcelain",type:"boolean",alias:"-p",description:"Machine-readable output"},{flag:"--all",type:"boolean",alias:"-a",description:"List worktrees from all configured repos"}],examples:[["Show all worktrees","copse list"],["Get machine-readable output","copse list --porcelain"]],notes:["Shows branch, path, status (clean/dirty/locked), focus paths.","Focus column truncated to 40 chars.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"switch",summary:"Switch shell context to a worktree by branch or path.",synopsis:"copse switch <branch-or-path>",options:[],examples:[["Switch using branch name","copse switch feature/auth"],["Switch using path","copse switch ~/.copse/worktrees/repo-feature-auth"]],notes:["Outputs cd command for shell eval.","Requires shell integration (copse shell-init).","Auto-switches tmux session if sessions.enabled and inside tmux.","Logs switch activity."],configKeys:["`sessions.enabled` \u2014 Enable tmux session switching","`sessions.prefix` \u2014 Tmux session name prefix"]},{command:"status",summary:"Show branch health, sync state, commit info, and focus.",synopsis:"copse status",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--all",type:"boolean",alias:"-a",description:"Show worktrees from all configured repos"}],examples:[["Print status table","copse status"],["Parse status in scripts","copse status --json"]],notes:["Shows branch, dirty count, sync status (ahead/behind), last commit info, focus paths.","Marks current worktree with *.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"clean",summary:"Remove merged worktrees and optionally inspect stale candidates.",synopsis:"copse clean",options:[{flag:"--dry-run",type:"boolean",alias:"-n",description:"Show what would be removed"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation"},{flag:"--stale",type:"boolean",alias:"-",description:"Also show stale worktrees based on lifecycle config"}],examples:[["Preview merged cleanup","copse clean --dry-run"],["Run cleanup without prompts","copse clean --yes"]],notes:["Only removes merged worktrees.","Skips pinned and dirty worktrees.","Runs git worktree prune after cleanup.","--stale uses lifecycle config (staleAfterDays, maxWorktrees)."],configKeys:["`lifecycle.staleAfterDays` \u2014 Days until a worktree is considered stale","`lifecycle.maxWorktrees` \u2014 Maximum allowed worktrees","`lifecycle.autoCleanMerged` \u2014 Auto-clean merged worktrees"]},{command:"doctor",summary:"Run health checks for worktree state and configuration.",synopsis:"copse doctor",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--fix",type:"boolean",alias:"-",description:"Auto-fix issues"}],examples:[["Run health checks","copse doctor"],["Auto-fix detectable issues","copse doctor --fix"]],notes:["Checks: git version (>=2.17), config validity, stale worktrees, orphaned directories, lock status, dirty worktrees.","Auto-fix: prune stale, remove orphans, unlock stale locks.","Exit code 0 if healthy, 1 if warnings/errors."],configKeys:[]},{command:"exec",summary:"Run a shell command across filtered non-main worktrees.",synopsis:"copse exec <command>",options:[{flag:"--all",type:"boolean",alias:"-a",description:"Run across all configured repos"},{flag:"--dirty",type:"boolean",alias:"-",description:"Only run in dirty worktrees"},{flag:"--clean",type:"boolean",alias:"-",description:"Only run in clean worktrees"},{flag:"--behind",type:"boolean",alias:"-",description:"Only run in worktrees behind upstream"},{flag:"--parallel",type:"boolean",alias:"-p",description:"Run commands in parallel"},{flag:"--json",type:"boolean",alias:"-j",description:"Output results as JSON"}],examples:[["Run tests in parallel",'copse exec "bun test" --parallel'],["Pull only behind worktrees",'copse exec "git pull" --behind']],notes:["Runs in non-main worktrees only.","Sets env vars: COPSE_BRANCH, COPSE_WORKTREE_PATH, COPSE_REPO_PATH.","Exit code 1 if any command fails.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"diff",summary:"Diff two refs or worktree branches.",synopsis:"copse diff <ref1> [ref2]",options:[{flag:"--stat",type:"boolean",alias:"-s",description:"Show diffstat summary only"},{flag:"--name-only",type:"boolean",alias:"-n",description:"Show only names of changed files"}],examples:[["Show diffstat only","copse diff feature/a feature/b --stat"],["List changed file names","copse diff feature/a --name-only"]],notes:["ref2 defaults to HEAD.","Resolves worktree branch names to refs automatically."],configKeys:[]},{command:"pin",summary:"Pin or unpin worktrees and inspect pin metadata.",synopsis:"copse pin [branch]",options:[{flag:"--reason",type:"string",alias:"-",description:"Reason for pinning"},{flag:"--list",type:"boolean",alias:"-",description:"List pinned worktrees"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--unpin",type:"boolean",alias:"-",description:"Unpin instead of pinning"}],examples:[["Pin with a reason",'copse pin feature/auth --reason "active sprint"'],["Unpin a branch","copse pin feature/auth --unpin"]],notes:["Pinned worktrees are excluded from copse clean.","Also invokable as copse unpin <branch>.","Pin metadata stored in git internals."],configKeys:[]},{command:"log",summary:"View or clear activity log events.",synopsis:"copse log",options:[{flag:"--limit",type:"number",alias:"-",description:"default 20, Show the last N entries"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--clear",type:"boolean",alias:"-",description:"Clear the activity log"}],examples:[["Show recent entries","copse log --limit 50"],["Clear the log","copse log --clear"]],notes:["Events: create (green), delete (red), switch (blue), rename (yellow), archive (magenta), import (cyan).","Color-coded in terminal."],configKeys:[]},{command:"archive",summary:"Archive worktree changes as patch files before optional removal.",synopsis:"copse archive [branch]",options:[{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"},{flag:"--keep",type:"boolean",alias:"-",description:"Archive without removing the worktree"},{flag:"--list",type:"boolean",alias:"-",description:"List all archives"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON with --list"}],examples:[["Archive and remove","copse archive feature/done --yes"],["List archive records","copse archive --list --json"]],notes:["Archives stored as patch files in ~/.copse/archives/.","Cannot archive main worktree.","Runs postRemove hooks before removal unless --keep."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal"]},{command:"rename",summary:"Rename a worktree branch and optionally move its directory path.",synopsis:"copse rename <old> <new>",options:[{flag:"--move-path",type:"boolean",alias:"-",description:"Also rename the worktree directory path"}],examples:[["Rename a worktree branch","copse rename feature/old feature/new"],["Rename branch and directory","copse rename feature/old feature/new --move-path"]],notes:["Cannot rename main worktree.","Checks for branch name conflicts.","Logs rename activity.","--move-path replaces old branch slug with new one in directory name."],configKeys:[]},{command:"clone",summary:"Clone a repository and optionally apply copse template setup.",synopsis:"copse clone <url> [path]",options:[{flag:"--template",type:"string",alias:"-t",description:"Apply a named template after cloning"},{flag:"--init-config",type:"boolean",alias:"-",description:"default true, Initialize copse config after cloning"}],examples:[["Clone and initialize","copse clone https://github.com/user/repo.git"],["Clone with template and no config init","copse clone https://github.com/user/repo.git --template review --no-init-config"]],notes:["Auto-detects target path from URL.","Runs template postCreate hooks if template specified.","Use --no-init-config to skip config initialization."],configKeys:["`templates.*` \u2014 Named template overrides"]},{command:"import",summary:"Import an existing git worktree into copse metadata.",synopsis:"copse import <path>",options:[{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--pin",type:"boolean",alias:"-",description:"Pin the worktree"}],examples:[["Import a worktree path","copse import /path/to/worktree"],["Import with focus and pin","copse import /path/to/worktree --focus apps/web,apps/api --pin"]],notes:["Validates that path is a valid git worktree.","Logs import activity.","Supports comma/space separated focus paths."],configKeys:[]},{command:"session",summary:"Manage tmux sessions for worktrees.",synopsis:"copse session [branch-or-path]",options:[{flag:"--list",type:"boolean",alias:"-l",description:"List active copse tmux sessions"},{flag:"--kill",type:"boolean",alias:"-k",description:"Kill the session for the specified worktree"},{flag:"--kill-all",type:"boolean",alias:"-",description:"Kill all copse tmux sessions"},{flag:"--layout",type:"string",alias:"-",description:"Use a named layout from config"},{flag:"--json",type:"boolean",alias:"-j",description:"Output in JSON format"}],examples:[["Attach or create a session","copse session feature/auth"],["List sessions as JSON","copse session --list --json"]],notes:["Requires tmux.","Session naming: branch feat/auth-token \u2192 tmux session cop_feat-auth-token.","Supports layout templates with multiple windows."],configKeys:["`sessions.enabled` \u2014 Enable tmux session integration","`sessions.autoCreate` \u2014 Auto-create session on worktree add","`sessions.autoKill` \u2014 Auto-kill session on worktree remove","`sessions.prefix` \u2014 Tmux session name prefix","`sessions.defaultLayout` \u2014 Default layout name","`sessions.layouts` \u2014 Layout definitions with windows"]},{command:"config",summary:"Initialize, inspect, edit, validate, and manage profiles.",synopsis:"copse config",options:[{flag:"--init",type:"boolean",alias:"-",description:"Create default config file"},{flag:"--show",type:"boolean",alias:"-s",description:"Print current config as JSON"},{flag:"--edit",type:"boolean",alias:"-e",description:"Open config in $EDITOR"},{flag:"--path",type:"boolean",alias:"-",description:"Print config file path"},{flag:"--validate",type:"boolean",alias:"-",description:"Validate config against schema"},{flag:"--profiles",type:"boolean",alias:"-",description:"List config profiles"},{flag:"--profile",type:"string",alias:"-",description:"Profile name for activation/deletion"},{flag:"--activate",type:"boolean",alias:"-",description:"Activate the specified profile"},{flag:"--delete",type:"boolean",alias:"-",description:"Delete the specified profile"}],examples:[["Initialize config","copse config --init"],["Activate a profile","copse config --profile work --activate"]],notes:["Config path: ~/.config/copse/config.json.","XDG-compliant."],configKeys:[]},{command:"open",summary:"Open the target or current worktree in an editor (focus-aware).",synopsis:"copse open [branch-or-path]",options:[{flag:"--editor",type:"string",alias:"-e",description:"Editor command to use"},{flag:"--focus",type:"string",alias:"-f",description:"Open a specific focus path (must match an existing focus entry)"},{flag:"--root",type:"boolean",alias:"-",description:"Force opening the worktree root, ignoring focus paths"},{flag:"--list-editors",type:"boolean",alias:"-",description:"List detected editors"}],examples:[["Open current worktree","copse open"],["Open with specific editor","copse open feature/auth --editor nvim"],["Open a specific focus path","copse open feature/auth --focus apps/web"],["Force open the worktree root","copse open feature/auth --root"]],notes:["Auto-detects editors: code, cursor, vim, nvim, emacs, nano, subl, zed, idea, webstorm.","Uses $VISUAL or $EDITOR env vars.","Defaults to current worktree if no branch specified.","Focus-aware: 0 focus paths \u2192 root, 1 focus path \u2192 that path, 2+ focus paths \u2192 errors and asks for --focus or --root (the TUI shows an interactive picker instead)."],configKeys:[]},{command:"shell-init",summary:"Generate shell integration wrappers and completions.",synopsis:"copse shell-init [shell]",options:[{flag:"--completions",type:"string",alias:"-",description:"Generate shell completions: bash, zsh, fish"}],examples:[["Generate shell wrapper","copse shell-init zsh"],["Generate completion script","copse shell-init --completions fish"]],notes:["Shell arg is auto-detected if omitted.","Generates wrapper function for copse switch to work with shell cd.","Supports bash, zsh, fish."],configKeys:[]},{command:"init",summary:"Initialize copse config or install AI agent skill files.",synopsis:"copse init",options:[{flag:"--skill",type:"string",alias:"-s",description:"Install AI agent skill: claude-code, codex, opencode"}],examples:[["Initialize config","copse init"],["Install Claude Code skill","copse init --skill claude-code"],["Install Codex skill","copse init --skill codex"]],notes:["Without --skill, reuses config initialization and creates only config.json.","With --skill, installs or updates SKILL.md + references/ directory.","Idempotent \u2014 running again updates existing files without breaking existing setup."],configKeys:[]}]});var Wu={};Ne(Wu,{default:()=>Hb});import{dirname as Bb}from"path";var Vb,Hb;var ju=ge(()=>{qe();Au();Vb={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Bs.join(", ")})`,choices:Bs}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=Kt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Pu(t),o=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${o} \u2192 ${Bb(n.filePath)}/`),console.log(" SKILL.md"),console.log(` references/ (${n.referenceCount} commands)`),process.exit(0)}catch(n){console.error(`Error: ${n.message}`),process.exit(1)}}},Hb=Vb});import{notStrictEqual as sd,strictEqual as cd}from"assert";var Hu={right:Uu,center:Tu};class Us{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]==="string")return this.applyLayoutDSL(e[0]);let t=e.map((n)=>{if(typeof n==="string")return this.colFromString(n);return n});return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]==="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
164
- `).map((o)=>o.split("\t")),n=0;return t.forEach((o)=>{if(o.length>1&&vt.stringWidth(o[0])>n)n=Math.min(Math.floor(this.width*0.5),vt.stringWidth(o[0]))}),t.forEach((o)=>{this.div(...o.map((i,s)=>{return{text:i.trim(),padding:this.measurePadding(i),width:s===0&&o.length>1?n:void 0}}))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=vt.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach((t)=>{this.rowToString(t,e)}),e.filter((t)=>!t.hidden).map((t)=>t.text).join(`
165
- `)}rowToString(e,t){return this.rasterize(e).forEach((n,o)=>{let i="";n.forEach((s,c)=>{let{width:a}=e[c],u=this.negatePadding(e[c]),h=s;if(u>vt.stringWidth(s))h+=" ".repeat(u-vt.stringWidth(s));if(e[c].align&&e[c].align!=="left"&&this.wrap){let p=Hu[e[c].align];if(h=p(h,u),vt.stringWidth(h)<u)h+=" ".repeat((a||0)-vt.stringWidth(h)-1)}let m=e[c].padding||[0,0,0,0];if(m[3])i+=" ".repeat(m[3]);if(i+=Gs(e[c],h,"| "),i+=h,i+=Gs(e[c],h," |"),m[1])i+=" ".repeat(m[1]);if(o===0&&t.length>0)i=this.renderInline(i,t[t.length-1])}),t.push({text:i.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let n=e.match(/^ */),o=n?n[0].length:0,i=t.text,s=vt.stringWidth(i.trimRight());if(!t.span)return e;if(!this.wrap)return t.hidden=!0,i+e;if(o<s)return e;return t.hidden=!0,i.trimRight()+" ".repeat(o-s)+e.trimLeft()}rasterize(e){let t=[],n=this.columnWidths(e),o;return e.forEach((i,s)=>{if(i.width=n[s],this.wrap)o=vt.wrap(i.text,this.negatePadding(i),{hard:!0}).split(`
151
+ complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function bb(e){switch(e){case"bash":return mb();case"zsh":return pb();case"fish":return gb()}}var wb,xb;var wu=de(()=>{wb={command:"shell-init [shell]",describe:"Print shell integration code for copse switch",builder:(e)=>e.positional("shell",{type:"string",choices:["bash","zsh","fish"],describe:"Shell to generate integration for (auto-detected if omitted)"}).option("completions",{type:"string",describe:"Generate shell completions (bash, zsh, fish)",coerce:(t)=>t===!0?void 0:t}),handler:async(e)=>{let t="completions"in e,n=e.shell,o=e.completions,i=n??o??hb(process.env.SHELL);if(t){let r=i==="fish"?gu():pu(),c=bb(i);console.log(r+`
152
+ `+c),process.exit(0)}if(i==="fish")console.log(gu()),process.exit(0);console.log(pu()),process.exit(0)}},xb=wb});var yu={};Ze(yu,{default:()=>Sb});import{resolve as oi}from"path";function xu(e,t){if(e.length<=t)return e;return e.slice(0,t-3)+"..."}var yb,Sb;var Su=de(()=>{Te();Wt();ze();pn();St();yb={command:"status",aliases:["st"],describe:"Show status overview of all worktrees",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("all",{type:"boolean",alias:"a",describe:"Show worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let a=Pe(),u=await Ge(),d=Dn(a),m=new Set([oi(u)]),p=[u];for(let x of d){let D=oi(x);if(!m.has(D))m.add(D),p.push(x)}t=await ie.listAll(p)}else t=await ie.list();if(t.length===0)console.log("No worktrees found."),process.exit(0);let n=await Promise.all(t.map(async(a)=>{let[u,d,m,p]=await Promise.all([a.branch?ie.getAheadBehind(a.branch,a.path):Promise.resolve({ahead:0,behind:0}),ie.getLastCommit(a.path),ie.getDirtyCount(a.path),Promise.resolve(zt(a.path))]);return{...a,aheadBehind:u,lastCommit:d,dirtyCount:m,focus:p}}));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);let o=oi(process.cwd()),i=e.all&&new Set(n.map((a)=>a.repoName)).size>1,r=n.map((a)=>{let d=(oi(a.path)===o?"* ":" ")+(a.branch??"(detached)"),m;if(a.isLocked)m="locked";else if(a.dirtyCount>0)m=`${a.dirtyCount} dirty`;else m="clean";let p=[];if(a.aheadBehind.ahead>0)p.push(`+${a.aheadBehind.ahead}`);if(a.aheadBehind.behind>0)p.push(`-${a.aheadBehind.behind}`);let x=p.length>0?p.join(" "):"=",D=a.lastCommit?`${a.lastCommit.relativeDate} ${xu(a.lastCommit.message,30)}`:"\u2014",W=a.focus&&a.focus.length>0?xu(a.focus.join(", "),30):"\u2014";return{repo:a.repoName,branch:d,dirty:m,sync:x,lastCommit:D,focus:W}}),c={branch:Math.max(6,...r.map((a)=>a.branch.length)),dirty:Math.max(6,...r.map((a)=>a.dirty.length)),sync:Math.max(4,...r.map((a)=>a.sync.length)),lastCommit:Math.max(11,...r.map((a)=>a.lastCommit.length)),focus:Math.max(5,...r.map((a)=>a.focus.length)),repo:Math.max(4,...r.map((a)=>a.repo.length))};if(i){let a=`${"Repo".padEnd(c.repo)} ${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.repo)} ${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let d of r)console.log(`${d.repo.padEnd(c.repo)} ${d.branch.padEnd(c.branch)} ${d.dirty.padEnd(c.dirty)} ${d.sync.padEnd(c.sync)} ${d.lastCommit.padEnd(c.lastCommit)} ${d.focus.padEnd(c.focus)}`)}else{let a=`${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let d of r)console.log(`${d.branch.padEnd(c.branch)} ${d.dirty.padEnd(c.dirty)} ${d.sync.padEnd(c.sync)} ${d.lastCommit.padEnd(c.lastCommit)} ${d.focus.padEnd(c.focus)}`)}process.exit(0)}catch(t){if(t instanceof bt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}};Sb=yb});var Ou={};Ze(Ou,{default:()=>Ob});import{existsSync as Cu}from"fs";function Cb(e){if(e)return e;let t=process.env.VISUAL||process.env.EDITOR;if(t)return t;for(let n of Ru)try{if(Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return n}catch{continue}return null}var Ru,Rb,Ob;var vu=de(()=>{Te();pn();St();Ru=["code","cursor","vim","nvim","emacs","nano","subl","zed","idea","webstorm"];Rb={command:"open [branch-or-path]",describe:"Open a worktree in your editor/IDE",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path (defaults to current worktree)"}).option("editor",{type:"string",alias:"e",describe:"Editor command to use (overrides $VISUAL/$EDITOR)"}).option("focus",{type:"string",alias:"f",describe:"Open a specific focus path (must match an existing focus entry)"}).option("root",{type:"boolean",describe:"Force opening the worktree root, ignoring focus paths",default:!1}).option("list-editors",{type:"boolean",describe:"List detected editors"}),handler:async(e)=>{if(e["list-editors"]){let t=process.env.VISUAL||process.env.EDITOR;if(t)console.log(`$VISUAL/$EDITOR: ${t}`);for(let n of Ru)try{let o=Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"});if(o.exitCode===0){let i=new TextDecoder().decode(o.stdout).trim();console.log(` ${n}: ${i}`)}}catch{}process.exit(0)}try{let t=e["branch-or-path"],n=e.focus,o=Boolean(e.root),i;if(!t)i=process.cwd();else{let m=await Ge(),p=await ie.list(m);i=Yt(p,t).path}if(!Cu(i))console.error(`Error: worktree path does not exist: ${i}`),process.exit(1);let r;try{r=Wl(i,{explicitFocus:n,forceRoot:o})}catch(m){if(m instanceof Vr)console.error(`Error: ${m.message}`),process.exit(1);throw m}let c;if(r.kind==="multiple")console.error(`Error: worktree has multiple focus paths set: ${r.focusPaths.join(", ")}`),console.error("Use --focus <path> to pick one, or --root to open the worktree root."),process.exit(1);if(c=r.path,!Cu(c)){if(console.error(`Error: target path does not exist: ${c}`),r.kind==="single")console.error("The focus path may have been deleted. Try --root to open the worktree root.");process.exit(1)}let a=Cb(e.editor);if(!a)console.error("Error: no editor detected."),console.error("Set $VISUAL or $EDITOR, or use --editor <command>."),console.error("Detected editors can be listed with: copse open --list-editors"),process.exit(1);let u=r.kind==="single"?` [focus: ${r.focus}]`:"";console.log(`Opening ${c} with ${a}${u}...`),await Bun.spawn([a,c],{stdout:"inherit",stderr:"inherit",stdin:"inherit"}).exited,process.exit(0)}catch(t){_e(t)}}},Ob=Rb});var Eu={};Ze(Eu,{default:()=>kb});import{resolve as ku}from"path";var vb,kb;var Du=de(()=>{Te();ze();St();vb={command:"exec <command>",describe:"Run a command in each worktree",builder:(e)=>e.positional("command",{type:"string",describe:"Shell command to execute",demandOption:!0}).option("all",{type:"boolean",alias:"a",describe:"Run across all configured repos"}).option("dirty",{type:"boolean",describe:"Only run in dirty worktrees"}).option("clean",{type:"boolean",describe:"Only run in clean worktrees"}).option("behind",{type:"boolean",describe:"Only run in worktrees behind upstream"}).option("parallel",{type:"boolean",alias:"p",describe:"Run commands in parallel (default: sequential)"}).option("json",{type:"boolean",alias:"j",describe:"Output results as JSON"}),handler:async(e)=>{let t=e.command,n=!!e.parallel,o=!!e.json;try{let i;if(e.all){let d=Pe(),m=await Ge(),p=Dn(d),x=new Set([ku(m)]),D=[m];for(let W of p){let b=ku(W);if(!x.has(b))x.add(b),D.push(W)}i=await ie.listAll(D)}else i=await ie.list();let r=i.filter((d)=>!d.isMain);if(e.dirty)r=r.filter((d)=>d.isDirty);if(e.clean)r=r.filter((d)=>!d.isDirty);if(e.behind)r=(await Qt(r,10,async(m)=>{if(!m.branch)return{wt:m,behind:!1};let p=await ie.getAheadBehind(m.branch,m.path);return{wt:m,behind:p.behind>0}})).filter((m)=>m.behind).map((m)=>m.wt);if(r.length===0)console.log("No matching worktrees found."),process.exit(0);if(!o)console.log(`Running '${t}' in ${r.length} worktree(s)...
153
+ `);let c=async(d)=>{let m=Bun.spawn(["sh","-c",t],{cwd:d.path,stdout:"pipe",stderr:"pipe",env:{...Bun.env,COPSE_BRANCH:d.branch??"",COPSE_WORKTREE_PATH:d.path,COPSE_REPO_PATH:d.repoPath}}),[p,x,D]=await Promise.all([new Response(m.stdout).text(),new Response(m.stderr).text(),m.exited]);return{branch:d.branch??"(detached)",path:d.path,exitCode:D,stdout:p.trim(),stderr:x.trim()}},a;if(n)a=await Qt(r,10,c);else{a=[];for(let d of r)a.push(await c(d))}if(o)console.log(JSON.stringify(a,null,2));else{for(let p of a){let x=p.exitCode===0?"\u2713":"\u2717";if(console.log(`${x} ${p.branch} (exit ${p.exitCode})`),p.stdout)for(let D of p.stdout.split(`
154
+ `))console.log(` ${D}`);if(p.stderr)for(let D of p.stderr.split(`
155
+ `))console.log(` ${D}`);console.log()}let d=a.filter((p)=>p.exitCode===0).length,m=a.length-d;console.log(`Done: ${d} passed, ${m} failed`)}let u=a.some((d)=>d.exitCode!==0);process.exit(u?1:0)}catch(i){_e(i)}}},kb=vb});var Fu={};Ze(Fu,{default:()=>Db});var Eb,Db;var Pu=de(()=>{Te();St();Eb={command:"diff <ref1> [ref2]",describe:"Show diff between two worktrees or branches",builder:(e)=>e.positional("ref1",{type:"string",describe:"First worktree branch or ref",demandOption:!0}).positional("ref2",{type:"string",describe:"Second worktree branch or ref (default: current HEAD)"}).option("stat",{type:"boolean",alias:"s",describe:"Show diffstat summary only"}).option("name-only",{type:"boolean",alias:"n",describe:"Show only names of changed files"}),handler:async(e)=>{let t=e.ref1,n=e.ref2??"HEAD",o=!!e.stat,i=!!e["name-only"];try{let r=await Ge(),c=await ie.list(r),a=(p)=>{return c.find((D)=>D.branch===p)?.branch??p},u=a(t),d=a(n),m=await ie.diffBetween(u,d,{stat:o,nameOnly:i},r);if(!m)console.log(`No differences between ${t} and ${n==="HEAD"?"current HEAD":n}`);else console.log(m);process.exit(0)}catch(r){_e(r)}}},Db=Eb});var Mu={};Ze(Mu,{default:()=>Pb});var Fb,Pb;var Au=de(()=>{Te();Fo();St();Fb={command:"pin [branch]",aliases:["unpin"],describe:"Pin or unpin a worktree",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).option("reason",{type:"string",describe:"Reason for pinning"}).option("list",{type:"boolean",describe:"List pinned worktrees"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("unpin",{type:"boolean",describe:"Unpin instead of pinning"}),handler:async(e)=>{try{let t=e,n=await ie.list();if(e.list){let a=Es(n).map((x)=>({...x,pin:or(x.path)}));if(e.json)console.log(JSON.stringify(a,null,2)),process.exit(0);if(a.length===0)console.log("No pinned worktrees found."),process.exit(0);let u=Math.max(6,...a.map((x)=>(x.branch??"(detached)").length)),d=Math.max(4,...a.map((x)=>x.path.length)),m=Math.max(6,...a.map((x)=>(x.pin?.reason??"\u2014").length)),p=Math.max(9,...a.map((x)=>(x.pin?.pinnedAt??"\u2014").length));console.log(`${"Branch".padEnd(u)} ${"Path".padEnd(d)} ${"Reason".padEnd(m)} ${"Pinned At".padEnd(p)}`),console.log(`${"-".repeat(u)} ${"-".repeat(d)} ${"-".repeat(m)} ${"-".repeat(p)}`);for(let x of a)console.log(`${(x.branch??"(detached)").padEnd(u)} ${x.path.padEnd(d)} ${(x.pin?.reason??"\u2014").padEnd(m)} ${(x.pin?.pinnedAt??"\u2014").padEnd(p)}`);process.exit(0)}let o=e._[0]==="unpin"||!!e.unpin,i=typeof t.branch==="string"?t.branch:typeof e._[1]==="string"?e._[1]:void 0;if(!i)console.error("Error: branch is required"),process.exit(1);let r=n.find((a)=>a.branch===i);if(!r)console.error(`Error: no worktree found for '${i}'`),process.exit(1);if(o){if(!or(r.path))console.warn(`Warning: worktree is not pinned: ${r.path}`),process.exit(0);ks(r.path),console.log(`Unpinned worktree: ${r.path}`),process.exit(0)}if(or(r.path))console.warn(`Warning: worktree is already pinned: ${r.path}`),process.exit(0);let c=typeof t.reason==="string"?t.reason:void 0;vs(r.path,c),console.log(`Pinned worktree: ${r.path}`),process.exit(0)}catch(t){_e(t)}}},Pb=Fb});var Wu={};Ze(Wu,{default:()=>Wb});function Mb(e){let t={create:"\x1B[32m",delete:"\x1B[31m",switch:"\x1B[34m",rename:"\x1B[33m",archive:"\x1B[35m",import:"\x1B[36m",reset:"\x1B[0m"};return`${t[e]??t.reset}${e}${t.reset}`}var Ab,Wb;var Lu=de(()=>{jn();St();Ab={command:"log",aliases:["logs"],describe:"Show worktree activity log",builder:(e)=>e.option("limit",{type:"number",default:20,describe:"Show the last N entries"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("clear",{type:"boolean",describe:"Clear the activity log"}),handler:async(e)=>{try{let t=await Ge();if(e.clear){if(!await Kn("Clear activity log? [y/N] "))console.log("Cancelled."),process.exit(0);Bl(t),console.log("Activity log cleared."),process.exit(0)}let n=typeof e.limit==="number"?e.limit:20,o=Hl(t,{limit:n});if(e.json)console.log(JSON.stringify(o,null,2)),process.exit(0);for(let i of o){let r=Mb(i.event),c=i.branch??"(unknown)",a=i.details?Object.entries(i.details).map(([u,d])=>`${u}=${d}`).join(" "):"";console.log(`[${i.timestamp}] ${r} ${c}${a?` (${a})`:""}`)}process.exit(0)}catch(t){_e(t)}}},Wb=Ab});var ju={};Ze(ju,{default:()=>Ib});import{basename as Iu}from"path";var Lb,Ib;var Tu=de(()=>{Te();Cs();ze();St();wn();Lb={command:"archive [branch]",describe:"Archive worktree changes and optionally remove",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name or worktree path"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}).option("keep",{type:"boolean",describe:"Archive without removing the worktree"}).option("list",{type:"boolean",describe:"List all archives"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON (with --list)"}),handler:async(e)=>{let t=e.branch,n=!!e.yes,o=!!e.keep,i=!!e.list,r=!!e.json;try{if(i){let x=await Ql();if(r)console.log(JSON.stringify(x,null,2));else if(x.length===0)console.log("No archives found.");else{console.log(`Archives:
156
+ `);for(let D of x){let W=new Date(D.archivedAt).toLocaleString();console.log(` ${D.repo}/${D.branch}`),console.log(` Date: ${W}`),console.log(` Commit: ${D.commitHash.slice(0,8)} ${D.message}`),console.log(` Patch: ${D.patchPath}`),console.log()}}process.exit(0)}if(!t)console.error("Error: branch name is required (or use --list to view archives)"),process.exit(1);let c=await Ge(),a=await ie.list(c),u=Yt(a,t);if(u.isMain)console.error("Error: cannot archive the main worktree"),process.exit(1);let d=o?"Archive":"Archive and remove";if(!n){if(!await Kn(`${d} worktree '${u.branch??Iu(u.path)}'? [y/N] `))console.log("Cancelled."),process.exit(0)}let m=Pe(),p=Iu(c);await Rs(m,{worktreePath:u.path,mainRepoPath:c,repoName:p,branch:u.branch??null,keep:o,force:!1},{onStepStart:(x)=>{if(x===We.postRemove)console.log("Running postRemove hooks...");else if(x===We.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(x,D)=>{if(x===rn.createArchive&&D)console.log(`Archived: ${D}`);else if(x===We.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(x===We.session&&D==="killed")console.log(" \u2713 Session killed");else if(x===We.worktree)console.log(`Removed worktree: ${u.path}`)},onStepError:(x,D)=>{if(x===We.postRemove)console.warn(`Warning: postRemove hook failed: ${D}`);else console.warn(` \u26A0 ${x}: ${D}`)},onHookOutput:(x)=>console.log(` ${x}`)}),process.exit(0)}catch(c){_e(c)}}},Ib=Lb});var Hu={};Ze(Hu,{default:()=>Tb});var jb,Tb;var Bu=de(()=>{Te();St();wn();jb={command:"rename <old> <new>",describe:"Rename worktree branch",builder:(e)=>e.positional("old",{type:"string",demandOption:!0,describe:"Current branch name"}).positional("new",{type:"string",demandOption:!0,describe:"New branch name"}).option("move-path",{type:"boolean",describe:"Also rename the worktree directory path"}),handler:async(e)=>{let{old:t,new:n}=e,o=!!e["move-path"];try{let i=await Ge(),r=await ie.list(i),c=Yt(r,t);if(c.isMain)console.error("Error: cannot rename the main worktree branch"),process.exit(1);if(r.find((u)=>u.branch===n))console.error(`Error: branch '${n}' already exists`),process.exit(1);await Ms({mainRepoPath:i,oldBranch:t,newBranch:n,worktreePath:c.path,movePath:o},{onStepDone:(u,d)=>{if(u===xt.renameBranch)console.log(`Renamed branch: ${t} \u2192 ${n}`);else if(u===xt.movePath&&d&&d.includes("\u2192"))console.log(`Moved worktree: ${d}`)},onStepError:(u,d)=>console.warn(` \u26A0 ${u}: ${d}`)}),process.exit(0)}catch(i){_e(i)}}},Tb=jb});var Vu={};Ze(Vu,{default:()=>Kb});import{basename as Hb,resolve as Bb}from"path";var Vb,Kb;var Ku=de(()=>{Te();Wt();ze();ko();Vb={command:"clone <url> [path]",describe:"Clone a repository and initialize copse config",builder:(e)=>e.positional("url",{type:"string",describe:"Repository URL to clone",demandOption:!0}).positional("path",{type:"string",describe:"Target directory path"}).option("template",{type:"string",alias:"t",describe:"Apply a named template after cloning"}).option("init-config",{type:"boolean",describe:"Initialize copse config after cloning",default:!0}),handler:async(e)=>{let{url:t,template:n}=e,o=e["init-config"],i=e.path;if(!i)try{let r=new URL(t);i=Hb(r.pathname).replace(/\.git$/,"")}catch{i=(t.split("/").pop()??t.split(":").pop()??t).replace(/\.git$/,"")}if(!i)console.error("Error: could not determine target directory from URL"),process.exit(1);console.log(`Cloning ${t}...`);try{await ie.exec(["clone",t,i])}catch(r){if(r instanceof bt)console.error(`Error: ${r.stderr||r.message}`);else console.error(`Error: ${r.message}`);process.exit(1)}if(o)try{let r=Kt();console.log(` \u2713 Config initialized: ${r}`)}catch(r){console.warn(` \u26A0 Could not initialize config: ${r.message}`)}if(n)try{let r=Pe(),c=Sr(r,n);if(!c){let m=Object.keys(r.templates??{});if(console.error(`Error: template '${n}' not found.`),m.length>0)console.error(`Available templates: ${m.join(", ")}`);else console.error("No templates configured. Add templates to your config file.");process.exit(1)}console.log(` Using template '${n}'`);let a=Bb(i),u=en(r,a),d=Cr(u,c);if(d.postCreate.length>0)console.log(" Running postCreate hooks..."),await Ln(d.postCreate,{cwd:a,env:{COPSE_REPO_PATH:a},onOutput:(m)=>console.log(` ${m}`)}),console.log(" \u2713 Hooks completed");console.log(` \u2713 Template '${n}' applied`)}catch(r){if(r instanceof vo)console.error(`Error: hook timed out: ${r.command}`);else if(r instanceof Oo){if(console.error(`Error: hook failed (exit ${r.exitCode}): ${r.command}`),r.stderr)console.error(r.stderr)}else console.error(`Error applying template: ${r.message}`);process.exit(1)}console.log(`
157
+ Cloned: ${t} \u2192 ${i}`),process.exit(0)}},Kb=Vb});var Gu={};Ze(Gu,{default:()=>Ub});var Gb,Ub;var Uu=de(()=>{Wt();wn();Gb={command:"import <path>",describe:"Adopt a worktree with copse metadata",builder:(e)=>e.positional("path",{type:"string",describe:"Existing worktree directory path",demandOption:!0}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("pin",{type:"boolean",describe:"Pin the worktree"}),handler:async(e)=>{let t=e.path,o=e.focus?.flatMap((r)=>r.split(/[,\s]+/)).map((r)=>r.trim()).filter(Boolean)??[],i=!!e.pin;try{let r=await Ps({targetPath:t,focusPaths:o,pin:i}),c=r.branch??"unknown";if(console.log(`Imported worktree: ${c} at ${r.path}`),o.length>0)console.log(` Focus: ${o.join(", ")}`);if(i)console.log(" Pinned");process.exit(0)}catch(r){if(r instanceof so)console.error(`Error: ${r.reason}`);else console.error(`Error: ${r.message}`);process.exit(1)}}},Ub=Gb});var Ju={};Ze(Ju,{default:()=>Xb});import{basename as ri}from"path";async function zb(e,t,n){let[o,i]=await Promise.all([ys(t),ie.list(e)]);if(n){let r=o.map((c)=>{let a=i.find((d)=>{let m=d.branch??ri(d.path);return Tn(m,t)===c.name}),u=a?Xt(a.path):null;return{...c,branch:a?.branch??null,worktreePath:a?.path??null,layout:u?.layout??null}});console.log(JSON.stringify(r,null,2));return}if(o.length===0){console.log("No active copse sessions.");return}console.log(`Active sessions (${o.length}):
158
+ `);for(let r of o){let c=i.find((p)=>{let x=p.branch??ri(p.path);return Tn(x,t)===r.name}),a=c?Xt(c.path):null,u=r.attached?" (attached)":"",d=a?.layout?` [${a.layout}]`:"",m=c?.branch?` ${c.branch}`:"";console.log(` ${r.name}${m} ${r.windows} windows${d}${u}`)}}async function qb(e,t){let[n,o]=await Promise.all([ys(t),ie.list(e)]);if(n.length===0){console.log("No active copse sessions.");return}let i=0;for(let r of n){let c=o.find((a)=>{let u=Xt(a.path),d=a.branch??ri(a.path);return u?.name===r.name||Tn(d,t)===r.name});if(await xs(r.name),c)bs(c.path);i++,console.log(` \u2713 Killed ${r.name}`)}console.log(`
159
+ Killed ${i} session${i!==1?"s":""}.`)}var Jb,Xb;var zu=de(()=>{Te();ze();Hn();St();Jb={command:"session [branch-or-path]",aliases:["ss"],describe:"Manage tmux sessions for worktrees",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path to open session for"}).option("list",{type:"boolean",alias:"l",describe:"List active copse tmux sessions"}).option("kill",{type:"boolean",alias:"k",describe:"Kill the session for the specified worktree"}).option("kill-all",{type:"boolean",describe:"Kill all copse tmux sessions"}).option("layout",{type:"string",describe:"Use a named layout from config"}).option("json",{type:"boolean",alias:"j",describe:"Output in JSON format"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.list,o=!!e.kill,i=!!e["kill-all"],r=e.layout,c=!!e.json;if(!await Do())console.error("Error: tmux is not installed or not in PATH."),console.error("Install tmux to use session management."),process.exit(1);try{let a=await Ge(),u=Pe(),d=Fn(u);if(n)await zb(a,d.prefix,c),process.exit(0);if(i)await qb(a,d.prefix),process.exit(0);if(!t)console.error("Error: specify a branch or worktree path, or use --list."),process.exit(1);let m=await ie.list(a),p=Yt(m,t),x=p.branch??ri(p.path);if(o){if(await zr(x,p.path,d.prefix))console.log(`Killed session for '${x}'`);else console.log(`No active session for '${x}'`);process.exit(0)}let D=Rr(u,r),W=await Jr(x,p.path,{layout:D,prefix:d.prefix,attach:!0,layoutName:r??d.defaultLayout});console.log(`Session: ${W}`),process.exit(0)}catch(a){_e(a)}}};Xb=Jb});import{existsSync as Ks,mkdirSync as qu,writeFileSync as Xu}from"fs";import{dirname as Yu,join as jo}from"path";function Yb(e){let t=process.env.HOME||process.env.USERPROFILE||"~";switch(e){case"claude-code":return jo(t,".claude","skills","copse");case"codex":return jo(t,".agents","skills","copse");case"opencode":return jo(t,".config","opencode","skill","copse")}}function Zb(e){return jo(Yb(e),"SKILL.md")}function $b(e){return["| Flag | Type | Alias | Description |","|------|------|-------|-------------|",...e.length>0?e.map((n)=>`| ${n.flag} | ${n.type} | ${n.alias} | ${n.description} |`):["| - | - | - | No options |"]].join(`
160
+ `)}function _b(){let e=Nb.map((n)=>`| \`${n.command}\` | ${n.aliases} | ${n.description} |`),t=Zu.map((n)=>`- [\`copse ${n.command}\`](references/${n.command}.md)`);return["---","name: copse",`description: ${Qb}`,"metadata:"," author: getsolaris",' version: "1.0.0"',"---","","# copse (copse)","","## Quick Start","","### Create a feature worktree","","```bash","copse add feature/my-feature --base main","```","","### List and check status","","```bash","copse list","copse status","```","","### Clean up merged worktrees","","```bash","copse clean --dry-run","copse clean --yes","```","","### Run commands across worktrees","","```bash",'copse exec "bun test" --parallel',"```","","### Review a GitHub PR","","```bash","copse add pr-review --pr 42","copse open pr-review","```","","### Use templates","","```bash","# Create worktree with predefined template (hooks, base branch, settings)","copse add feature/new --template frontend","```","","### Tmux session management","","```bash","# Create worktree with tmux session","copse add feature/api --session --layout dev","","# List active sessions","copse session --list","","# Attach to existing session","copse session feature/api","```","","### Shell integration setup","","```bash","# Add to ~/.zshrc or ~/.bashrc",'eval "$(copse shell-init)"',"","# Then switch worktrees with cd","copse switch feature/auth","```","","## Command Overview","","| Command | Aliases | Description |","|---------|---------|-------------|",...e,"","## Monorepo Workflows","","Use focus paths to target packages and trigger matching monorepo hooks.","","```bash","copse add feature/web-auth --focus apps/web,apps/api","copse import /path/to/worktree --focus packages/core --pin","copse list --json","```","","Focus accepts comma-separated values, space-separated values, or repeated --focus flags.","","## Configuration","","- Config path: `~/.config/copse/config.json`","- Use `--json` output flags for scripting and automation","- Environment variables in `copse exec`: `COPSE_BRANCH`, `COPSE_WORKTREE_PATH`, `COPSE_REPO_PATH`","","## Command Reference","","For detailed options and examples for each command:","",...t,"- [`Configuration Schema`](references/config-schema.md)",""].join(`
161
+ `)}function ew(){let e=new Map;for(let n of Zu){let o=[`# copse ${n.command}`,"",n.summary,"","## Synopsis","","```",n.synopsis,"```","","## Options","",$b(n.options),"","## Examples","","```bash",`# ${n.examples[0][0]}`,n.examples[0][1],"",`# ${n.examples[1][0]}`,n.examples[1][1],"```","","## Notes","",...n.notes.map((i)=>`- ${i}`),"",...n.configKeys.length>0?["## Configuration","","Related config keys in `~/.config/copse/config.json`:","",...n.configKeys.map((i)=>`- ${i}`),""]:[]];e.set(`${n.command}.md`,o.join(`
162
+ `))}let t=tw();return e.set("config-schema.md",t),e}function tw(){return["# Configuration Schema","","Config file path: `~/.config/copse/config.json`","","## Minimal Example","","```json","{",' "version": 1,',' "terminalCommand": "Terminal",',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env", ".env.local"],',' "linkFiles": ["node_modules"],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true'," }","}","```","","## Full Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env"],',' "linkFiles": [],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true,',' "sharedDeps": {',' "strategy": "symlink",',' "paths": ["node_modules"]'," }"," },",' "repos": ['," {",' "path": "/path/to/repo",',' "copyFiles": [".env", ".env.local"],',' "monorepo": {',' "autoDetect": true,',' "hooks": ['," {",' "glob": "apps/*",',' "postCreate": ["bun install"]'," }"," ]"," }"," }"," ],",' "templates": {',' "frontend": {',' "base": "main",',' "copyFiles": [".env"],',' "postCreate": ["bun install", "bun run build"]'," },",' "review": {',' "base": "main",',' "postCreate": ["bun install"]'," }"," },",' "sessions": {',' "enabled": true,',' "autoCreate": false,',' "autoKill": true,',' "prefix": "copse",',' "defaultLayout": "dev",',' "layouts": {',' "dev": {',' "windows": [',' { "name": "editor", "command": "nvim ." },',' { "name": "server", "command": "bun run dev" },',' { "name": "shell" }'," ]"," }"," }"," },",' "lifecycle": {',' "autoCleanMerged": false,',' "staleAfterDays": 30,',' "maxWorktrees": 10'," },",' "theme": "default"',"}","```","","## Key Reference","","### defaults","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `terminalCommand` | string | platform/current terminal default | Terminal app or executable for the TUI `t` shortcut. macOS can infer the current terminal from `TERM_PROGRAM` (for example Ghostty); the selected worktree path is passed automatically. |","| `worktreeDir` | string | `~/.copse/worktrees/{repo}-{branch}` | Directory pattern. Supports `{repo}` and `{branch}` variables |","| `copyFiles` | string[] | `[]` | Files to copy from main worktree on creation |","| `linkFiles` | string[] | `[]` | Files to symlink from main worktree on creation |","| `postCreate` | string[] | `[]` | Shell commands to run after worktree creation |","| `postRemove` | string[] | `[]` | Shell commands to run before worktree removal |","| `autoUpstream` | boolean | `false` | Automatically set upstream tracking branch |","| `base` | string | - | Default base ref for new branches. If it matches `<remote>/<branch>` of a known remote (e.g. `origin/main`), `copse add` auto-runs `git fetch <remote> <branch>` first |","| `sharedDeps.strategy` | string | `symlink` | Strategy for sharing deps: `symlink`, `hardlink`, or `copy` |","| `sharedDeps.paths` | string[] | `[]` | Paths to share between worktrees |","","### repos[]","","Per-repository overrides. Same keys as `defaults` plus:","","| Key | Type | Description |","|-----|------|-------------|","| `path` | string | **Required.** Absolute path to the repository |","| `monorepo.autoDetect` | boolean | Auto-detect monorepo tools (pnpm, turbo, nx, lerna) |","| `monorepo.extraPatterns` | string[] | Additional glob patterns for package discovery |","| `monorepo.hooks[]` | object[] | Per-package hooks matched by glob pattern |","| `monorepo.hooks[].glob` | string | Glob to match against focus paths |","| `monorepo.hooks[].copyFiles` | string[] | Package-level files to copy |","| `monorepo.hooks[].linkFiles` | string[] | Package-level files to symlink |","| `monorepo.hooks[].postCreate` | string[] | Package-level post-create hooks |","| `monorepo.hooks[].postRemove` | string[] | Package-level post-remove hooks |","","### workspaces[]","","Auto-discover git repositories under parent directories. Discovered repos are merged into `repos[]` at load time. Explicit `repos[]` entries with the same resolved path always take precedence.","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `path` | string | \u2014 | **Required.** Parent directory to scan. Supports `~` expansion. |","| `depth` | integer | `1` | Scan depth (1\u20133). `1` scans only immediate children. |","| `exclude` | string[] | `[]` | Glob patterns matched against directory names to skip. |","| `defaults` | object | \u2014 | Per-repo defaults applied to discovered repos. Same fields as `defaults`, but `monorepo` is not allowed. |","","Discovery rules: a directory is a repo only if it contains a `.git` **directory** (not a file). Linked worktrees and submodules are skipped. Discovered repos are not recursed into. Symbolic links are not followed.","","### templates","","Named presets applied via `copse add --template <name>` or `copse clone --template <name>`.","","| Key | Type | Description |","|-----|------|-------------|","| `base` | string | Default base branch for new worktrees |","| `worktreeDir` | string | Override directory pattern |","| `copyFiles` | string[] | Override files to copy |","| `linkFiles` | string[] | Override files to symlink |","| `postCreate` | string[] | Override post-create hooks |","| `postRemove` | string[] | Override post-remove hooks |","| `autoUpstream` | boolean | Override upstream tracking |","","### sessions","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `enabled` | boolean | `false` | Enable tmux session integration |","| `autoCreate` | boolean | `false` | Auto-create session on `copse add` |","| `autoKill` | boolean | `false` | Auto-kill session on `copse remove` |","| `prefix` | string | `copse` | Prefix for tmux session names |","| `defaultLayout` | string | - | Default layout name |","| `layouts.<name>.windows[]` | object[] | - | Window definitions |","| `layouts.<name>.windows[].name` | string | **Required.** | Window name |","| `layouts.<name>.windows[].command` | string | - | Command to run in window |","","### lifecycle","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `autoCleanMerged` | boolean | `false` | Auto-clean merged worktrees |","| `staleAfterDays` | number | `30` | Days until a worktree is considered stale |","| `maxWorktrees` | number | `10` | Maximum number of worktrees |",""].join(`
163
+ `)}function Qu(e){let t=Zb(e),n=jo(Yu(t),"references"),o=_b(),i=ew(),r=Yu(t);if(!Ks(r))qu(r,{recursive:!0});if(!Ks(n))qu(n,{recursive:!0});let c=Ks(t);Xu(t,o,"utf-8");for(let[a,u]of i.entries())Xu(jo(n,a),u,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Gs,Qb="Git worktree manager. Use when working with git worktrees \u2014 creating, switching, removing, listing, or managing worktrees across repositories. Also use for monorepo focus, tmux sessions, and worktree health checks.",Nb,Zu;var Nu=de(()=>{Gs=["claude-code","codex","opencode"];Nb=[{command:"add",aliases:"-",description:"Create a new worktree from a branch, template, or PR."},{command:"remove",aliases:"rm",description:"Remove a worktree by branch or path."},{command:"list",aliases:"ls",description:"List worktrees with branch, path, status, and focus."},{command:"switch",aliases:"sw",description:"Print shell cd command for a target worktree."},{command:"status",aliases:"st",description:"Show status summary for worktrees."},{command:"clean",aliases:"-",description:"Clean merged worktrees and optionally report stale ones."},{command:"doctor",aliases:"-",description:"Run worktree health checks and optional auto-fixes."},{command:"exec",aliases:"-",description:"Run commands across non-main worktrees."},{command:"diff",aliases:"-",description:"Compare two refs or worktree branches."},{command:"pin",aliases:"unpin",description:"Pin or unpin worktrees and inspect pin metadata."},{command:"log",aliases:"logs",description:"Read or clear the activity log."},{command:"archive",aliases:"-",description:"Archive worktree changes as patch files."},{command:"rename",aliases:"-",description:"Rename a worktree branch and optionally move its path."},{command:"clone",aliases:"-",description:"Clone a repository and initialize copse setup."},{command:"import",aliases:"-",description:"Import an existing worktree into copse metadata."},{command:"session",aliases:"ss",description:"Manage tmux sessions for worktrees."},{command:"config",aliases:"-",description:"Initialize, inspect, validate, and manage config profiles."},{command:"open",aliases:"-",description:"Open a worktree path in your preferred editor."},{command:"shell-init",aliases:"-",description:"Generate shell integration and completions."},{command:"init",aliases:"-",description:"Initialize config or install/update copse AI agent skill files."}],Zu=[{command:"add",summary:"Create a new worktree from a branch, template, or GitHub PR.",synopsis:"copse add [branch] [path]",options:[{flag:"--create",type:"boolean",alias:"-c",description:"Optional compatibility flag; missing branches are created automatically"},{flag:"--base",type:"string",alias:"-b",description:"Base branch/commit for new branch"},{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--template",type:"string",alias:"-t",description:"Use a named template from config"},{flag:"--pr",type:"number",alias:"-",description:"Create worktree from a GitHub PR number"},{flag:"--session",type:"boolean",alias:"-s",description:"Create a tmux session for this worktree"},{flag:"--layout",type:"string",alias:"-",description:"Session layout name from config"},{flag:"--no-fetch",type:"boolean",alias:"-",description:"Skip auto-fetch when base is a remote ref (e.g. origin/main)"}],examples:[["Create a feature branch worktree","copse add feature/auth --base main"],["Branch from fresh remote ref (auto-fetch)","copse add feature/auth --base origin/main"],["Create from PR with session layout","copse add feature/review --pr 123 --session --layout dev"]],notes:["Creates the branch automatically when it does not already exist.","Existing branches are reused as-is; --base only applies when a new branch is created.","Runs copyFiles, linkFiles, sharedDeps, postCreate hooks, monorepo hooks after creation.","Rolls back on hook failure.","Requires gh CLI for --pr.","Supports comma/space separated focus paths.","When --base matches '<remote>/<branch>' and <remote> is a known git remote, copse runs `git fetch <remote> <branch>` first (disable with --no-fetch).","Base resolution order: --base flag > template.base > repoConfig.base > defaults.base > git HEAD."],configKeys:["`defaults.worktreeDir` \u2014 Directory pattern for new worktrees","`defaults.copyFiles` \u2014 Files to copy from main worktree","`defaults.linkFiles` \u2014 Files to symlink from main worktree","`defaults.sharedDeps` \u2014 Shared dependency strategy and paths","`defaults.postCreate` \u2014 Hooks to run after worktree creation","`defaults.autoUpstream` \u2014 Auto-set upstream tracking branch","`defaults.base` \u2014 Default base ref for new branches (e.g. `origin/main` triggers auto-fetch)","`templates.*` \u2014 Named template overrides","`sessions.autoCreate` \u2014 Auto-create tmux session on add","`sessions.layouts` \u2014 Tmux session layout definitions"]},{command:"remove",summary:"Remove a worktree by branch name or path.",synopsis:"copse remove <branch-or-path>",options:[{flag:"--force",type:"boolean",alias:"-f",description:"Force removal even with uncommitted changes"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"}],examples:[["Remove a branch worktree","copse remove feature/auth"],["Force remove without prompt","copse remove feature/auth --force --yes"]],notes:["Runs postRemove hooks and monorepo postRemove hooks before removal.","Cannot remove main worktree.","Cannot remove locked worktrees.","Auto-kills tmux session if sessions.autoKill is enabled."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal","`sessions.autoKill` \u2014 Auto-kill tmux session on remove"]},{command:"list",summary:"List worktrees with branch, path, status, and focus details.",synopsis:"copse list",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--porcelain",type:"boolean",alias:"-p",description:"Machine-readable output"},{flag:"--all",type:"boolean",alias:"-a",description:"List worktrees from all configured repos"}],examples:[["Show all worktrees","copse list"],["Get machine-readable output","copse list --porcelain"]],notes:["Shows branch, path, status (clean/dirty/locked), focus paths.","Focus column truncated to 40 chars.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"switch",summary:"Switch shell context to a worktree by branch or path.",synopsis:"copse switch <branch-or-path>",options:[],examples:[["Switch using branch name","copse switch feature/auth"],["Switch using path","copse switch ~/.copse/worktrees/repo-feature-auth"]],notes:["Outputs cd command for shell eval.","Requires shell integration (copse shell-init).","Auto-switches tmux session if sessions.enabled and inside tmux.","Logs switch activity."],configKeys:["`sessions.enabled` \u2014 Enable tmux session switching","`sessions.prefix` \u2014 Tmux session name prefix"]},{command:"status",summary:"Show branch health, sync state, commit info, and focus.",synopsis:"copse status",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--all",type:"boolean",alias:"-a",description:"Show worktrees from all configured repos"}],examples:[["Print status table","copse status"],["Parse status in scripts","copse status --json"]],notes:["Shows branch, dirty count, sync status (ahead/behind), last commit info, focus paths.","Marks current worktree with *.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"clean",summary:"Remove merged worktrees and optionally inspect stale candidates.",synopsis:"copse clean",options:[{flag:"--dry-run",type:"boolean",alias:"-n",description:"Show what would be removed"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation"},{flag:"--stale",type:"boolean",alias:"-",description:"Also show stale worktrees based on lifecycle config"}],examples:[["Preview merged cleanup","copse clean --dry-run"],["Run cleanup without prompts","copse clean --yes"]],notes:["Only removes merged worktrees.","Skips pinned and dirty worktrees.","Runs git worktree prune after cleanup.","--stale uses lifecycle config (staleAfterDays, maxWorktrees)."],configKeys:["`lifecycle.staleAfterDays` \u2014 Days until a worktree is considered stale","`lifecycle.maxWorktrees` \u2014 Maximum allowed worktrees","`lifecycle.autoCleanMerged` \u2014 Auto-clean merged worktrees"]},{command:"doctor",summary:"Run health checks for worktree state and configuration.",synopsis:"copse doctor",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--fix",type:"boolean",alias:"-",description:"Auto-fix issues"}],examples:[["Run health checks","copse doctor"],["Auto-fix detectable issues","copse doctor --fix"]],notes:["Checks: git version (>=2.17), config validity, stale worktrees, orphaned directories, lock status, dirty worktrees.","Auto-fix: prune stale, remove orphans, unlock stale locks.","Exit code 0 if healthy, 1 if warnings/errors."],configKeys:[]},{command:"exec",summary:"Run a shell command across filtered non-main worktrees.",synopsis:"copse exec <command>",options:[{flag:"--all",type:"boolean",alias:"-a",description:"Run across all configured repos"},{flag:"--dirty",type:"boolean",alias:"-",description:"Only run in dirty worktrees"},{flag:"--clean",type:"boolean",alias:"-",description:"Only run in clean worktrees"},{flag:"--behind",type:"boolean",alias:"-",description:"Only run in worktrees behind upstream"},{flag:"--parallel",type:"boolean",alias:"-p",description:"Run commands in parallel"},{flag:"--json",type:"boolean",alias:"-j",description:"Output results as JSON"}],examples:[["Run tests in parallel",'copse exec "bun test" --parallel'],["Pull only behind worktrees",'copse exec "git pull" --behind']],notes:["Runs in non-main worktrees only.","Sets env vars: COPSE_BRANCH, COPSE_WORKTREE_PATH, COPSE_REPO_PATH.","Exit code 1 if any command fails.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"diff",summary:"Diff two refs or worktree branches.",synopsis:"copse diff <ref1> [ref2]",options:[{flag:"--stat",type:"boolean",alias:"-s",description:"Show diffstat summary only"},{flag:"--name-only",type:"boolean",alias:"-n",description:"Show only names of changed files"}],examples:[["Show diffstat only","copse diff feature/a feature/b --stat"],["List changed file names","copse diff feature/a --name-only"]],notes:["ref2 defaults to HEAD.","Resolves worktree branch names to refs automatically."],configKeys:[]},{command:"pin",summary:"Pin or unpin worktrees and inspect pin metadata.",synopsis:"copse pin [branch]",options:[{flag:"--reason",type:"string",alias:"-",description:"Reason for pinning"},{flag:"--list",type:"boolean",alias:"-",description:"List pinned worktrees"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--unpin",type:"boolean",alias:"-",description:"Unpin instead of pinning"}],examples:[["Pin with a reason",'copse pin feature/auth --reason "active sprint"'],["Unpin a branch","copse pin feature/auth --unpin"]],notes:["Pinned worktrees are excluded from copse clean.","Also invokable as copse unpin <branch>.","Pin metadata stored in git internals."],configKeys:[]},{command:"log",summary:"View or clear activity log events.",synopsis:"copse log",options:[{flag:"--limit",type:"number",alias:"-",description:"default 20, Show the last N entries"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--clear",type:"boolean",alias:"-",description:"Clear the activity log"}],examples:[["Show recent entries","copse log --limit 50"],["Clear the log","copse log --clear"]],notes:["Events: create (green), delete (red), switch (blue), rename (yellow), archive (magenta), import (cyan).","Color-coded in terminal."],configKeys:[]},{command:"archive",summary:"Archive worktree changes as patch files before optional removal.",synopsis:"copse archive [branch]",options:[{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"},{flag:"--keep",type:"boolean",alias:"-",description:"Archive without removing the worktree"},{flag:"--list",type:"boolean",alias:"-",description:"List all archives"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON with --list"}],examples:[["Archive and remove","copse archive feature/done --yes"],["List archive records","copse archive --list --json"]],notes:["Archives stored as patch files in ~/.copse/archives/.","Cannot archive main worktree.","Runs postRemove hooks before removal unless --keep."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal"]},{command:"rename",summary:"Rename a worktree branch and optionally move its directory path.",synopsis:"copse rename <old> <new>",options:[{flag:"--move-path",type:"boolean",alias:"-",description:"Also rename the worktree directory path"}],examples:[["Rename a worktree branch","copse rename feature/old feature/new"],["Rename branch and directory","copse rename feature/old feature/new --move-path"]],notes:["Cannot rename main worktree.","Checks for branch name conflicts.","Logs rename activity.","--move-path replaces old branch slug with new one in directory name."],configKeys:[]},{command:"clone",summary:"Clone a repository and optionally apply copse template setup.",synopsis:"copse clone <url> [path]",options:[{flag:"--template",type:"string",alias:"-t",description:"Apply a named template after cloning"},{flag:"--init-config",type:"boolean",alias:"-",description:"default true, Initialize copse config after cloning"}],examples:[["Clone and initialize","copse clone https://github.com/user/repo.git"],["Clone with template and no config init","copse clone https://github.com/user/repo.git --template review --no-init-config"]],notes:["Auto-detects target path from URL.","Runs template postCreate hooks if template specified.","Use --no-init-config to skip config initialization."],configKeys:["`templates.*` \u2014 Named template overrides"]},{command:"import",summary:"Import an existing git worktree into copse metadata.",synopsis:"copse import <path>",options:[{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--pin",type:"boolean",alias:"-",description:"Pin the worktree"}],examples:[["Import a worktree path","copse import /path/to/worktree"],["Import with focus and pin","copse import /path/to/worktree --focus apps/web,apps/api --pin"]],notes:["Validates that path is a valid git worktree.","Logs import activity.","Supports comma/space separated focus paths."],configKeys:[]},{command:"session",summary:"Manage tmux sessions for worktrees.",synopsis:"copse session [branch-or-path]",options:[{flag:"--list",type:"boolean",alias:"-l",description:"List active copse tmux sessions"},{flag:"--kill",type:"boolean",alias:"-k",description:"Kill the session for the specified worktree"},{flag:"--kill-all",type:"boolean",alias:"-",description:"Kill all copse tmux sessions"},{flag:"--layout",type:"string",alias:"-",description:"Use a named layout from config"},{flag:"--json",type:"boolean",alias:"-j",description:"Output in JSON format"}],examples:[["Attach or create a session","copse session feature/auth"],["List sessions as JSON","copse session --list --json"]],notes:["Requires tmux.","Session naming: branch feat/auth-token \u2192 tmux session cop_feat-auth-token.","Supports layout templates with multiple windows."],configKeys:["`sessions.enabled` \u2014 Enable tmux session integration","`sessions.autoCreate` \u2014 Auto-create session on worktree add","`sessions.autoKill` \u2014 Auto-kill session on worktree remove","`sessions.prefix` \u2014 Tmux session name prefix","`sessions.defaultLayout` \u2014 Default layout name","`sessions.layouts` \u2014 Layout definitions with windows"]},{command:"config",summary:"Initialize, inspect, edit, validate, and manage profiles.",synopsis:"copse config",options:[{flag:"--init",type:"boolean",alias:"-",description:"Create default config file"},{flag:"--show",type:"boolean",alias:"-s",description:"Print current config as JSON"},{flag:"--edit",type:"boolean",alias:"-e",description:"Open config in $EDITOR"},{flag:"--path",type:"boolean",alias:"-",description:"Print config file path"},{flag:"--validate",type:"boolean",alias:"-",description:"Validate config against schema"},{flag:"--profiles",type:"boolean",alias:"-",description:"List config profiles"},{flag:"--profile",type:"string",alias:"-",description:"Profile name for activation/deletion"},{flag:"--activate",type:"boolean",alias:"-",description:"Activate the specified profile"},{flag:"--delete",type:"boolean",alias:"-",description:"Delete the specified profile"}],examples:[["Initialize config","copse config --init"],["Activate a profile","copse config --profile work --activate"]],notes:["Config path: ~/.config/copse/config.json.","XDG-compliant."],configKeys:[]},{command:"open",summary:"Open the target or current worktree in an editor (focus-aware).",synopsis:"copse open [branch-or-path]",options:[{flag:"--editor",type:"string",alias:"-e",description:"Editor command to use"},{flag:"--focus",type:"string",alias:"-f",description:"Open a specific focus path (must match an existing focus entry)"},{flag:"--root",type:"boolean",alias:"-",description:"Force opening the worktree root, ignoring focus paths"},{flag:"--list-editors",type:"boolean",alias:"-",description:"List detected editors"}],examples:[["Open current worktree","copse open"],["Open with specific editor","copse open feature/auth --editor nvim"],["Open a specific focus path","copse open feature/auth --focus apps/web"],["Force open the worktree root","copse open feature/auth --root"]],notes:["Auto-detects editors: code, cursor, vim, nvim, emacs, nano, subl, zed, idea, webstorm.","Uses $VISUAL or $EDITOR env vars.","Defaults to current worktree if no branch specified.","Focus-aware: 0 focus paths \u2192 root, 1 focus path \u2192 that path, 2+ focus paths \u2192 errors and asks for --focus or --root (the TUI shows an interactive picker instead)."],configKeys:[]},{command:"shell-init",summary:"Generate shell integration wrappers and completions.",synopsis:"copse shell-init [shell]",options:[{flag:"--completions",type:"string",alias:"-",description:"Generate shell completions: bash, zsh, fish"}],examples:[["Generate shell wrapper","copse shell-init zsh"],["Generate completion script","copse shell-init --completions fish"]],notes:["Shell arg is auto-detected if omitted.","Generates wrapper function for copse switch to work with shell cd.","Supports bash, zsh, fish."],configKeys:[]},{command:"init",summary:"Initialize copse config or install AI agent skill files.",synopsis:"copse init",options:[{flag:"--skill",type:"string",alias:"-s",description:"Install AI agent skill: claude-code, codex, opencode"}],examples:[["Initialize config","copse init"],["Install Claude Code skill","copse init --skill claude-code"],["Install Codex skill","copse init --skill codex"]],notes:["Without --skill, reuses config initialization and creates only config.json.","With --skill, installs or updates SKILL.md + references/ directory.","Idempotent \u2014 running again updates existing files without breaking existing setup."],configKeys:[]}]});var $u={};Ze($u,{default:()=>rw});import{dirname as nw}from"path";var ow,rw;var _u=de(()=>{ze();Nu();ow={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Gs.join(", ")})`,choices:Gs}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=Kt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Qu(t),o=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${o} \u2192 ${nw(n.filePath)}/`),console.log(" SKILL.md"),console.log(` references/ (${n.referenceCount} commands)`),process.exit(0)}catch(n){console.error(`Error: ${n.message}`),process.exit(1)}}},rw=ow});import{notStrictEqual as vd,strictEqual as kd}from"assert";var rd={right:cd,center:ad};class Zs{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]==="string")return this.applyLayoutDSL(e[0]);let t=e.map((n)=>{if(typeof n==="string")return this.colFromString(n);return n});return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]==="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
164
+ `).map((o)=>o.split("\t")),n=0;return t.forEach((o)=>{if(o.length>1&&kt.stringWidth(o[0])>n)n=Math.min(Math.floor(this.width*0.5),kt.stringWidth(o[0]))}),t.forEach((o)=>{this.div(...o.map((i,r)=>{return{text:i.trim(),padding:this.measurePadding(i),width:r===0&&o.length>1?n:void 0}}))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=kt.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach((t)=>{this.rowToString(t,e)}),e.filter((t)=>!t.hidden).map((t)=>t.text).join(`
165
+ `)}rowToString(e,t){return this.rasterize(e).forEach((n,o)=>{let i="";n.forEach((r,c)=>{let{width:a}=e[c],u=this.negatePadding(e[c]),d=r;if(u>kt.stringWidth(r))d+=" ".repeat(u-kt.stringWidth(r));if(e[c].align&&e[c].align!=="left"&&this.wrap){let p=rd[e[c].align];if(d=p(d,u),kt.stringWidth(d)<u)d+=" ".repeat((a||0)-kt.stringWidth(d)-1)}let m=e[c].padding||[0,0,0,0];if(m[3])i+=" ".repeat(m[3]);if(i+=Ys(e[c],d,"| "),i+=d,i+=Ys(e[c],d," |"),m[1])i+=" ".repeat(m[1]);if(o===0&&t.length>0)i=this.renderInline(i,t[t.length-1])}),t.push({text:i.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let n=e.match(/^ */),o=n?n[0].length:0,i=t.text,r=kt.stringWidth(i.trimRight());if(!t.span)return e;if(!this.wrap)return t.hidden=!0,i+e;if(o<r)return e;return t.hidden=!0,i.trimRight()+" ".repeat(o-r)+e.trimLeft()}rasterize(e){let t=[],n=this.columnWidths(e),o;return e.forEach((i,r)=>{if(i.width=n[r],this.wrap)o=kt.wrap(i.text,this.negatePadding(i),{hard:!0}).split(`
166
166
  `);else o=i.text.split(`
167
- `);if(i.border)o.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),o.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)o.unshift(...Array(i.padding[0]||0).fill("")),o.push(...Array(i.padding[2]||0).fill(""));o.forEach((c,a)=>{if(!t[a])t.push([]);let u=t[a];for(let h=0;h<s;h++)if(u[h]===void 0)u.push("");u.push(c)})}),t}negatePadding(e){let t=e.width||0;if(e.padding)t-=(e.padding[3]||0)+(e.padding[1]||0);if(e.border)t-=4;return t}columnWidths(e){if(!this.wrap)return e.map((s)=>{return s.width||vt.stringWidth(s.text)});let t=e.length,n=this.width,o=e.map((s)=>{if(s.width)return t--,n-=s.width,s.width;return}),i=t?Math.floor(n/t):0;return o.map((s,c)=>{if(s===void 0)return Math.max(i,Ku(e[c]));return s})}}function Gs(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function Ku(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function Gu(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function Uu(e,t){e=e.trim();let n=vt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function Tu(e,t){e=e.trim();let n=vt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var vt;function Ts(e,t){return vt=t,new Us({width:(e===null||e===void 0?void 0:e.width)||Gu(),wrap:e===null||e===void 0?void 0:e.wrap})}var Js=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function ii(e){return e.replace(Js,"")}function zs(e,t){let[n,o]=e.match(Js)||["",""];e=ii(e);let i="";for(let s=0;s<e.length;s++){if(s!==0&&s%t===0)i+=`
168
- `;i+=e.charAt(s)}if(n&&o)i=`${n}${i}${o}`;return i}function si(e){return Ts(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ii,wrap:zs})}import{dirname as qs,resolve as Xs}from"path";import{readdirSync as Ju,statSync as zu}from"fs";function ci(e,t){let n=Xs(".",e),o;if(!zu(n).isDirectory())n=qs(n);while(!0){if(o=t(n,Ju(n)),o)return Xs(n,o);if(n=qs(o=n),o===n)break}}import{inspect as ad}from"util";import{readFileSync as ld}from"fs";import{fileURLToPath as fd}from"url";import{format as Yu}from"util";import{normalize as Zu,resolve as Qu}from"path";function Vn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",o=!1,i=e.match(/^-+/);for(let s=i?i[0].length:0;s<e.length;s++){let c=e.charAt(s);if(o)o=!1,c=c.toUpperCase();if(s!==0&&(c==="-"||c==="_"))o=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function ir(e,t){let n=e.toLowerCase();t=t||"-";let o="";for(let i=0;i<e.length;i++){let s=n.charAt(i),c=e.charAt(i);if(s!==c&&i>0)o+=`${t}${n.charAt(i)}`;else o+=c}return o}function sr(e){if(e===null||e===void 0)return!1;if(typeof e==="number")return!0;if(/^0x[0-9a-f]+$/i.test(e))return!0;if(/^0[^.]/.test(e))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function Ys(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,o=null,i=null,s=[];for(let c=0;c<e.length;c++){if(n=o,o=e.charAt(c),o===" "&&!i){if(n!==" ")t++;continue}if(o===i)i=null;else if((o==="'"||o==='"')&&!i)i=o;if(!s[t])s[t]="";s[t]+=o}return s}var Wt;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(Wt||(Wt={}));var an;class li{constructor(e){an=e}parse(e,t){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),o=Ys(e),i=typeof e==="string",s=qu(Object.assign(Object.create(null),n.alias)),c=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),a=Object.assign(Object.create(null),n.default),u=n.configObjects||[],h=n.envPrefix,m=c["populate--"],p=m?"--":"_",w=Object.create(null),A=Object.create(null),W=n.__||an.format,y={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},C=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,k=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(d){let b=typeof d==="object"?d.key:d,M=Object.keys(d).map(function(D){return{boolean:"bools",string:"strings",number:"numbers"}[D]}).filter(Boolean).pop();if(M)y[M][b]=!0;y.arrays[b]=!0,y.keys.push(b)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(d){y.bools[d]=!0,y.keys.push(d)}),[].concat(n.string||[]).filter(Boolean).forEach(function(d){y.strings[d]=!0,y.keys.push(d)}),[].concat(n.number||[]).filter(Boolean).forEach(function(d){y.numbers[d]=!0,y.keys.push(d)}),[].concat(n.count||[]).filter(Boolean).forEach(function(d){y.counts[d]=!0,y.keys.push(d)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(d){y.normalize[d]=!0,y.keys.push(d)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([d,b])=>{if(typeof b==="number")y.nargs[d]=b,y.keys.push(d)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([d,b])=>{if(typeof b==="function")y.coercions[d]=b,y.keys.push(d)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(d){y.configs[d]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([d,b])=>{if(typeof b==="boolean"||typeof b==="function")y.configs[d]=b})}K(n.key,s,n.default,y.arrays),Object.keys(a).forEach(function(d){(y.aliases[d]||[]).forEach(function(b){a[b]=a[d]})});let F=null;j();let x=[],S=Object.assign(Object.create(null),{_:[]}),O={};for(let d=0;d<o.length;d++){let b=o[d],M=b.replace(/^-{3,}/,"---"),D,v,$,oe,be,le;if(b!=="--"&&/^-/.test(b)&&we(b))G(b);else if(M.match(/^---+(=|$)/)){G(b);continue}else if(b.match(/^--.+=/)||!c["short-option-groups"]&&b.match(/^-.+=/)){if(oe=b.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(L(oe[1],y.arrays))d=z(d,oe[1],o,oe[2]);else if(L(oe[1],y.nargs)!==!1)d=I(d,oe[1],o,oe[2]);else Z(oe[1],oe[2],!0)}else if(b.match(k)&&c["boolean-negation"]){if(oe=b.match(k),oe!==null&&Array.isArray(oe)&&oe.length>=2)v=oe[1],Z(v,L(v,y.arrays)?[!1]:!1)}else if(b.match(/^--.+/)||!c["short-option-groups"]&&b.match(/^-[^-]+/)){if(oe=b.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(v=oe[1],L(v,y.arrays))d=z(d,v,o);else if(L(v,y.nargs)!==!1)d=I(d,v,o);else if(be=o[d+1],be!==void 0&&(!be.match(/^-/)||be.match(C))&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else if(/^(true|false)$/.test(be))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-.\..+=/)){if(oe=b.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)Z(oe[1],oe[2])}else if(b.match(/^-.\..+/)&&!b.match(C)){if(be=o[d+1],oe=b.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(v=oe[1],be!==void 0&&!be.match(/^-/)&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-[^-]+/)&&!b.match(C)){$=b.slice(1,-1).split(""),D=!1;for(let Ie=0;Ie<$.length;Ie++){if(be=b.slice(Ie+2),$[Ie+1]&&$[Ie+1]==="="){if(le=b.slice(Ie+3),v=$[Ie],L(v,y.arrays))d=z(d,v,o,le);else if(L(v,y.nargs)!==!1)d=I(d,v,o,le);else Z(v,le);D=!0;break}if(be==="-"){Z($[Ie],be);continue}if(/[A-Za-z]/.test($[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(be)&&L(be,y.bools)===!1){Z($[Ie],be),D=!0;break}if($[Ie+1]&&$[Ie+1].match(/\W/)){Z($[Ie],be),D=!0;break}else Z($[Ie],pe($[Ie]))}if(v=b.slice(-1)[0],!D&&v!=="-")if(L(v,y.arrays))d=z(d,v,o);else if(L(v,y.nargs)!==!1)d=I(d,v,o);else if(be=o[d+1],be!==void 0&&(!/^(-|--)[^-]/.test(be)||be.match(C))&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else if(/^(true|false)$/.test(be))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-[0-9]$/)&&b.match(C)&&L(b.slice(1),y.bools))v=b.slice(1),Z(v,pe(v));else if(b==="--"){x=o.slice(d+1);break}else if(c["halt-at-non-option"]){x=o.slice(d);break}else G(b)}if(_(S,!0),_(S,!1),Y(S),he(),E(S,y.aliases,a,!0),me(S),c["set-placeholder-key"])ke(S);if(Object.keys(y.counts).forEach(function(d){if(!P(S,d.split(".")))Z(d,0)}),m&&x.length)S[p]=[];if(x.forEach(function(d){S[p].push(d)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(S).filter((d)=>d!=="--"&&d.includes("-")).forEach((d)=>{delete S[d]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((d)=>s[d])).forEach((d)=>{if(c["camel-case-expansion"]&&d.includes("-"))delete S[d.split(".").map((b)=>Vn(b)).join(".")];delete S[d]});function G(d){let b=q("_",d);if(typeof b==="string"||typeof b==="number")S._.push(b)}function I(d,b,M,D){let v,$=L(b,y.nargs);if($=typeof $!=="number"||isNaN($)?1:$,$===0){if(!We(D))F=Error(W("Argument unexpected for: %s",b));return Z(b,pe(b)),d}let oe=We(D)?0:1;if(c["nargs-eats-options"]){if(M.length-(d+1)+oe<$)F=Error(W("Not enough arguments following: %s",b));oe=$}else{for(v=d+1;v<M.length;v++)if(!M[v].match(/^-[^0-9]/)||M[v].match(C)||we(M[v]))oe++;else break;if(oe<$)F=Error(W("Not enough arguments following: %s",b))}let be=Math.min(oe,$);if(!We(D)&&be>0)Z(b,D),be--;for(v=d+1;v<be+d+1;v++)Z(b,M[v]);return d+be}function z(d,b,M,D){let v=[],$=D||M[d+1],oe=L(b,y.nargs);if(L(b,y.bools)&&!/^(true|false)$/.test($))v.push(!0);else if(We($)||We(D)&&/^-/.test($)&&!C.test($)&&!we($)){if(a[b]!==void 0){let be=a[b];v=Array.isArray(be)?be:[be]}}else{if(!We(D))v.push(J(b,D,!0));for(let be=d+1;be<M.length;be++){if(!c["greedy-arrays"]&&v.length>0||oe&&typeof oe==="number"&&v.length>=oe)break;if($=M[be],/^-/.test($)&&!C.test($)&&!we($))break;d=be,v.push(J(b,$,i))}}if(typeof oe==="number"&&(oe&&v.length<oe||isNaN(oe)&&v.length===0))F=Error(W("Not enough arguments following: %s",b));return Z(b,v),d}function Z(d,b,M=i){if(/-/.test(d)&&c["camel-case-expansion"]){let $=d.split(".").map(function(oe){return Vn(oe)}).join(".");T(d,$)}let D=J(d,b,M),v=d.split(".");if(U(S,v,D),y.aliases[d])y.aliases[d].forEach(function($){let oe=$.split(".");U(S,oe,D)});if(v.length>1&&c["dot-notation"])(y.aliases[v[0]]||[]).forEach(function($){let oe=$.split("."),be=[].concat(v);if(be.shift(),oe=oe.concat(be),!(y.aliases[d]||[]).includes(oe.join(".")))U(S,oe,D)});if(L(d,y.normalize)&&!L(d,y.arrays))[d].concat(y.aliases[d]||[]).forEach(function(oe){Object.defineProperty(O,oe,{enumerable:!0,get(){return b},set(be){b=typeof be==="string"?an.normalize(be):be}})})}function T(d,b){if(!(y.aliases[d]&&y.aliases[d].length))y.aliases[d]=[b],w[b]=!0;if(!(y.aliases[b]&&y.aliases[b].length))T(b,d)}function J(d,b,M){if(M)b=Xu(b);if(L(d,y.bools)||L(d,y.counts)){if(typeof b==="string")b=b==="true"}let D=Array.isArray(b)?b.map(function(v){return q(d,v)}):q(d,b);if(L(d,y.counts)&&(We(D)||typeof D==="boolean"))D=ai();if(L(d,y.normalize)&&L(d,y.arrays))if(Array.isArray(b))D=b.map((v)=>{return an.normalize(v)});else D=an.normalize(b);return D}function q(d,b){if(!c["parse-positional-numbers"]&&d==="_")return b;if(!L(d,y.strings)&&!L(d,y.bools)&&!Array.isArray(b)){if(sr(b)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${b}`)))||!We(b)&&L(d,y.numbers))b=Number(b)}return b}function Y(d){let b=Object.create(null);E(b,y.aliases,a),Object.keys(y.configs).forEach(function(M){let D=d[M]||b[M];if(D)try{let v=null,$=an.resolve(an.cwd(),D),oe=y.configs[M];if(typeof oe==="function"){try{v=oe($)}catch(be){v=be}if(v instanceof Error){F=v;return}}else v=an.require($);ne(v)}catch(v){if(v.name==="PermissionDenied")F=v;else if(d[M])F=Error(W("Invalid JSON config file: %s",D))}})}function ne(d,b){Object.keys(d).forEach(function(M){let D=d[M],v=b?b+"."+M:M;if(typeof D==="object"&&D!==null&&!Array.isArray(D)&&c["dot-notation"])ne(D,v);else if(!P(S,v.split("."))||L(v,y.arrays)&&c["combine-arrays"])Z(v,D)})}function he(){if(typeof u<"u")u.forEach(function(d){ne(d)})}function _(d,b){if(typeof h>"u")return;let M=typeof h==="string"?h:"",D=an.env();Object.keys(D).forEach(function(v){if(M===""||v.lastIndexOf(M,0)===0){let $=v.split("__").map(function(oe,be){if(be===0)oe=oe.substring(M.length);return Vn(oe)});if((b&&y.configs[$.join(".")]||!b)&&!P(d,$))Z($.join("."),D[v])}})}function me(d){let b,M=new Set;Object.keys(d).forEach(function(D){if(!M.has(D)){if(b=L(D,y.coercions),typeof b==="function")try{let v=q(D,b(d[D]));[].concat(y.aliases[D]||[],D).forEach(($)=>{M.add($),d[$]=v})}catch(v){F=v}}})}function ke(d){return y.keys.forEach((b)=>{if(~b.indexOf("."))return;if(typeof d[b]>"u")d[b]=void 0}),d}function E(d,b,M,D=!1){Object.keys(M).forEach(function(v){if(!P(d,v.split("."))){if(U(d,v.split("."),M[v]),D)A[v]=!0;(b[v]||[]).forEach(function($){if(P(d,$.split(".")))return;U(d,$.split("."),M[v])})}})}function P(d,b){let M=d;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(v){M=M[v]||{}});let D=b[b.length-1];if(typeof M!=="object")return!1;else return D in M}function U(d,b,M){let D=d;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(le){if(le=Zs(le),typeof D==="object"&&D[le]===void 0)D[le]={};if(typeof D[le]!=="object"||Array.isArray(D[le])){if(Array.isArray(D[le]))D[le].push({});else D[le]=[D[le],{}];D=D[le][D[le].length-1]}else D=D[le]});let v=Zs(b[b.length-1]),$=L(b.join("."),y.arrays),oe=Array.isArray(M),be=c["duplicate-arguments-array"];if(!be&&L(v,y.nargs)){if(be=!0,!We(D[v])&&y.nargs[v]===1||Array.isArray(D[v])&&D[v].length===y.nargs[v])D[v]=void 0}if(M===ai())D[v]=ai(D[v]);else if(Array.isArray(D[v]))if(be&&$&&oe)D[v]=c["flatten-duplicate-arrays"]?D[v].concat(M):(Array.isArray(D[v][0])?D[v]:[D[v]]).concat([M]);else if(!be&&Boolean($)===Boolean(oe))D[v]=M;else D[v]=D[v].concat([M]);else if(D[v]===void 0&&$)D[v]=oe?M:[M];else if(be&&!(D[v]===void 0||L(v,y.counts)||L(v,y.bools)))D[v]=[D[v],M];else D[v]=M}function K(...d){d.forEach(function(b){Object.keys(b||{}).forEach(function(M){if(y.aliases[M])return;y.aliases[M]=[].concat(s[M]||[]),y.aliases[M].concat(M).forEach(function(D){if(/-/.test(D)&&c["camel-case-expansion"]){let v=Vn(D);if(v!==M&&y.aliases[M].indexOf(v)===-1)y.aliases[M].push(v),w[v]=!0}}),y.aliases[M].concat(M).forEach(function(D){if(D.length>1&&/[A-Z]/.test(D)&&c["camel-case-expansion"]){let v=ir(D,"-");if(v!==M&&y.aliases[M].indexOf(v)===-1)y.aliases[M].push(v),w[v]=!0}}),y.aliases[M].forEach(function(D){y.aliases[D]=[M].concat(y.aliases[M].filter(function(v){return D!==v}))})})})}function L(d,b){let M=[].concat(y.aliases[d]||[],d),D=Object.keys(b),v=M.find(($)=>D.includes($));return v?b[v]:!1}function ee(d){let b=Object.keys(y);return[].concat(b.map((D)=>y[D])).some(function(D){return Array.isArray(D)?D.includes(d):D[d]})}function de(d,...b){return[].concat(...b).some(function(D){let v=d.match(D);return v&&ee(v[1])})}function ie(d){if(d.match(C)||!d.match(/^-[^-]+/))return!1;let b=!0,M,D=d.slice(1).split("");for(let v=0;v<D.length;v++){if(M=d.slice(v+2),!ee(D[v])){b=!1;break}if(D[v+1]&&D[v+1]==="="||M==="-"||/[A-Za-z]/.test(D[v])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(M)||D[v+1]&&D[v+1].match(/\W/))break}return b}function we(d){return c["unknown-options-as-args"]&&Oe(d)}function Oe(d){if(d=d.replace(/^-{3,}/,"--"),d.match(C))return!1;if(ie(d))return!1;return!de(d,/^-+([^=]+?)=[\s\S]*$/,k,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(d){if(!L(d,y.bools)&&!L(d,y.counts)&&`${d}`in a)return a[d];else return Ee(Fe(d))}function Ee(d){return{[Wt.BOOLEAN]:!0,[Wt.STRING]:"",[Wt.NUMBER]:void 0,[Wt.ARRAY]:[]}[d]}function Fe(d){let b=Wt.BOOLEAN;if(L(d,y.strings))b=Wt.STRING;else if(L(d,y.numbers))b=Wt.NUMBER;else if(L(d,y.bools))b=Wt.BOOLEAN;else if(L(d,y.arrays))b=Wt.ARRAY;return b}function We(d){return d===void 0}function j(){Object.keys(y.counts).find((d)=>{if(L(d,y.arrays))return F=Error(W("Invalid configuration: %s, opts.count excludes opts.array.",d)),!0;else if(L(d,y.nargs))return F=Error(W("Invalid configuration: %s, opts.count excludes opts.narg.",d)),!0;return!1})}return{aliases:Object.assign({},y.aliases),argv:Object.assign(O,S),configuration:c,defaulted:Object.assign({},A),error:F,newAliases:Object.assign({},w)}}}function qu(e){let t=[],n=Object.create(null),o=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(o){o=!1;for(let i=0;i<t.length;i++)for(let s=i+1;s<t.length;s++)if(t[i].filter(function(a){return t[s].indexOf(a)!==-1}).length){t[i]=t[i].concat(t[s]),t.splice(s,1),o=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,u){return u.indexOf(c)===a});let s=i.pop();if(s!==void 0&&typeof s==="string")n[s]=i}),n}function ai(e){return e!==void 0?e+1:1}function Zs(e){if(e==="__proto__")return"___proto___";return e}function Xu(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var fi,ui,di,Qs=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,Ns=(ui=(fi=process===null||process===void 0?void 0:process.versions)===null||fi===void 0?void 0:fi.node)!==null&&ui!==void 0?ui:(di=process===null||process===void 0?void 0:process.version)===null||di===void 0?void 0:di.slice(1);if(Ns){if(Number(Ns.match(/^([^.]+)/)[1])<Qs)throw Error(`yargs parser supports a minimum Node.js version of ${Qs}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var Nu=process?process.env:{},$s=new li({cwd:process.cwd,env:()=>{return Nu},format:Yu,normalize:Zu,resolve:Qu,require:(e)=>{return cn(e)}}),Bo=function(t,n){return $s.parse(t.slice(),n).argv};Bo.detailed=function(e,t){return $s.parse(e.slice(),t)};Bo.camelCase=Vn;Bo.decamelize=ir;Bo.looksLikeNumber=sr;var hi=Bo;import{basename as ud,dirname as dd,extname as hd,relative as md,resolve as ic}from"path";function _s(){if($u())return 0;return 1}function $u(){return _u()&&!process.defaultApp}function _u(){return!!process.versions.electron}function mi(e){return e.slice(_s()+1)}function ec(){return process.argv[_s()]}class Je extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Je)}}import{readFileSync as ed,statSync as td,writeFile as nd}from"fs";import{format as od}from"util";import{resolve as rd}from"path";var tc={fs:{readFileSync:ed,writeFile:nd},format:od,resolve:rd,exists:(e)=>{try{return td(e).isFile()}catch(t){return!1}}};var Yt;class nc{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles==="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage==="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};if(typeof e[e.length-1]==="function")n=e.pop();if(n=n||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n});else n();return Yt.format.apply(Yt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let s=o===1?t:n;if(this.cache[this.locale][t])s=this.cache[this.locale][t][o===1?"one":"other"];if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:i});else i();let c=[s];if(~s.indexOf("%d"))c.push(o);return Yt.format.apply(Yt.format,c.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){if(!this.cache[this.locale])this._readLocaleFile();for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))this.cache[this.locale][t]=e[t]}_taggedLiteral(e,...t){let n="";return e.forEach(function(o,i){let s=t[i+1];if(n+=o,typeof s<"u")n+="%s"}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){if(this.writeQueue.push(e),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let e=this,t=this.writeQueue[0],n=t.directory,o=t.locale,i=t.cb,s=this._resolveLocaleFile(n,o),c=JSON.stringify(this.cache[o],null,2);Yt.fs.writeFile(s,c,"utf-8",function(a){if(e.writeQueue.shift(),e.writeQueue.length>0)e._processWriteQueue();i(a)})}_readLocaleFile(){let e={},t=this._resolveLocaleFile(this.directory,this.locale);try{if(Yt.fs.readFileSync)e=JSON.parse(Yt.fs.readFileSync(t,"utf-8"))}catch(n){if(n instanceof SyntaxError)n.message="syntax error in "+t;if(n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Yt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let o=Yt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(o))n=o}return n}_fileExistsSync(e){return Yt.exists(e)}}function oc(e,t){Yt=t;let n=new nc(e);return{__:n.__.bind(n),__n:n.__n.bind(n),setLocale:n.setLocale.bind(n),getLocale:n.getLocale.bind(n),updateLocale:n.updateLocale.bind(n),locale:n.locale}}var id=(e)=>{return oc(e,tc)},rc=id;var pd="require is not supported by ESM",sc="loading a directory of commands is not supported yet for ESM",Vo;try{Vo=fd(import.meta.url)}catch(e){Vo=process.cwd()}var gd=Vo.substring(0,Vo.lastIndexOf("node_modules")),pi={assert:{notStrictEqual:sd,strictEqual:cd},cliui:si,findUp:ci,getEnv:(e)=>{return process.env[e]},inspect:ad,getCallerFile:()=>{throw new Je(sc)},getProcessArgvBin:ec,mainFilename:gd||process.cwd(),Parser:hi,path:{basename:ud,dirname:dd,extname:hd,relative:md,resolve:ic},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(e,t)=>process.emitWarning(e,t),execPath:()=>process.execPath,exit:process.exit,nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:ld,require:()=>{throw new Je(pd)},requireDirectory:()=>{throw new Je(sc)},stringWidth:(e)=>{return[...e].length},y18n:rc({directory:ic(Vo,"../../../locales"),updateFiles:!1})};function wt(e,t,n,o){n.assert.notStrictEqual(e,t,o)}function gi(e,t){t.assert.strictEqual(typeof e,"string")}function io(e){return Object.keys(e)}function ze(e){return!!e&&!!e.then&&typeof e.then==="function"}function Sn(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),o=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let s={cmd:i.replace(o,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let u=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)u=!0;if(/^\[/.test(c))s.optional.push({cmd:c.replace(o,"").split("|"),variadic:u});else s.demanded.push({cmd:c.replace(o,"").split("|"),variadic:u})}),s}var bd=["first","second","third","fourth","fifth","sixth"];function xe(e,t,n){function o(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[Sn(`cmd ${e}`),t,n]}try{let i=0,[s,c,a]=o(),u=[].slice.call(c);while(u.length&&u[u.length-1]===void 0)u.pop();let h=a||u.length;if(h<s.demanded.length)throw new Je(`Not enough arguments provided. Expected ${s.demanded.length} but received ${u.length}.`);let m=s.demanded.length+s.optional.length;if(h>m)throw new Je(`Too many arguments provided. Expected max ${m} but received ${h}.`);s.demanded.forEach((p)=>{let w=u.shift(),A=cc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)ac(A,p.cmd,i);i+=1}),s.optional.forEach((p)=>{if(u.length===0)return;let w=u.shift(),A=cc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)ac(A,p.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function cc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function ac(e,t,n){throw new Je(`Invalid ${bd[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class bi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,o=!1){if(xe("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let i=0;i<e.length;i++){if(typeof e[i]!=="function")throw Error("middleware must be a function");let s=e[i];s.applyBeforeValidation=t,s.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e==="function"){let i=e;i.applyBeforeValidation=t,i.global=n,i.mutates=o,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((o)=>{let i=[...n[t]||[],t];if(!o.option)return!0;else return!i.includes(o.option)}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let e=this.frozens.pop();if(e!==void 0)this.globalMiddleware=e}reset(){this.globalMiddleware=this.globalMiddleware.filter((e)=>e.global)}}function lc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function Hn(e,t,n,o){return n.reduce((i,s)=>{if(s.applyBeforeValidation!==o)return i;if(s.mutates){if(s.applied)return i;s.applied=!0}if(ze(i))return i.then((c)=>Promise.all([c,s(c,t)])).then(([c,a])=>Object.assign(c,a));else{let c=s(i,t);return ze(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function Kn(e,t,n=(o)=>{throw o}){try{let o=wd(e)?e():e;return ze(o)?o.then((i)=>t(i)):t(o)}catch(o){return n(o)}}function wd(e){return typeof e==="function"}function wi(e){for(let t=0,n=Object.keys(cn.cache),o;t<n.length;t++)if(o=cn.cache[n[t]],o.exports===e)return o;return null}var so=/(^\*)|(^\$0)/;class uc{constructor(e,t,n,o){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=o,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,o){if(o=o||{},typeof o.recurse!=="boolean")o.recurse=!1;if(!Array.isArray(o.extensions))o.extensions=["js"];let i=typeof o.visit==="function"?o.visit:(s)=>s;o.visit=(s,c,a)=>{let u=i(s,c,a);if(u){if(this.requireCache.has(c))return u;else this.requireCache.add(c);this.addHandler(u)}return u},this.shim.requireDirectory({require:t,filename:n},e,o)}addHandler(e,t,n,o,i,s){let c=[],a=lc(i);if(o=o||(()=>{}),Array.isArray(e))if(xd(e))[e,...c]=e;else for(let u of e)this.addHandler(u);else if(Sd(e)){let u=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)u=[].concat(u).concat(e.aliases);this.addHandler(u,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(fc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let u=Sn(e);c=c.map((p)=>Sn(p).cmd);let h=!1,m=[u.cmd].concat(c).filter((p)=>{if(so.test(p))return h=!0,!1;return!0});if(m.length===0&&h)m.push("$0");if(h)u.cmd=m[0],c=m.slice(1),e=e.replace(so,u.cmd);if(c.forEach((p)=>{this.aliasMap[p]=u.cmd}),t!==!1)this.usage.command(e,t,h,c,s);if(this.handlers[u.cmd]={original:e,description:t,handler:o,builder:n||{},middlewares:a,deprecated:s,demanded:u.demanded,optional:u.optional},h)this.defaultCommand=this.handlers[u.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,o,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),u=a.commands.slice(),h=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let m=this.applyBuilderUpdateUsageAndParse(h,c,t,n.aliases,u,o,i,s);return ze(m)?m.then((p)=>this.applyMiddlewareAndGetResult(h,c,p.innerArgv,a,i,p.aliases,t)):this.applyMiddlewareAndGetResult(h,c,m.innerArgv,a,i,m.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,o,i,s,c,a){let u=t.builder,h=n;if(cr(u)){n.getInternalMethods().getUsageInstance().freeze();let m=u(n.getInternalMethods().reset(o),a);if(ze(m))return m.then((p)=>{return h=hc(p)?p:n,this.parseAndUpdateUsage(e,t,h,i,s,c)})}else if(yd(u))n.getInternalMethods().getUsageInstance().freeze(),h=n.getInternalMethods().reset(o),Object.keys(t.builder).forEach((m)=>{h.option(m,u[m])});return this.parseAndUpdateUsage(e,t,h,i,s,c)}parseAndUpdateUsage(e,t,n,o,i,s){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(o,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,s);return ze(c)?c.then((a)=>({aliases:n.parsed.aliases,innerArgv:a})):{aliases:n.parsed.aliases,innerArgv:c}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){let n=so.test(t.original)?t.original.replace(so,"").trim():t.original,o=e.filter((i)=>{return!so.test(i)});return o.push(n),`$0 ${o.join(" ")}`}handleValidationAndGetResult(e,t,n,o,i,s,c,a){if(!s.getInternalMethods().getHasOutput()){let u=s.getInternalMethods().runValidation(i,a,s.parsed.error,e);n=Kn(n,(h)=>{return u(h),h})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let u=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,u,!1,!1),n=Hn(n,s,c,!1),n=Kn(n,(h)=>{let m=t.handler(h);return ze(m)?m.then(()=>h):h}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(ze(n)&&!s.getInternalMethods().hasParseCallback())n.catch((h)=>{try{s.getInternalMethods().getUsageInstance().fail(null,h)}catch(m){}})}if(!e)o.commands.pop(),o.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,o,i,s,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,o,c);let u=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),h=Hn(n,c,u,!0);return ze(h)?h.then((m)=>this.handleValidationAndGetResult(e,t,m,o,s,c,u,a)):this.handleValidationAndGetResult(e,t,h,o,s,c,u,a)}populatePositionals(e,t,n,o){t._=t._.slice(n.commands.length);let i=e.demanded.slice(0),s=e.optional.slice(0),c={};this.validation.positionalCount(i.length,t._.length);while(i.length){let a=i.shift();this.populatePositional(a,t,c)}while(s.length){let a=s.shift();this.populatePositional(a,t,c)}return t._=n.commands.concat(t._.map((a)=>""+a)),this.postProcessPositionals(t,c,this.cmdToParseOptions(e.original),o),c}populatePositional(e,t,n){let o=e.cmd[0];if(e.variadic)n[o]=t._.splice(0).map(String);else if(t._.length)n[o]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=Sn(e);return n.demanded.forEach((o)=>{let[i,...s]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s,t.demand[i]=!0}),n.optional.forEach((o)=>{let[i,...s]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s}),t}postProcessPositionals(e,t,n,o){let i=Object.assign({},o.getOptions());i.default=Object.assign(n.default,i.default);for(let u of Object.keys(n.alias))i.alias[u]=(i.alias[u]||[]).concat(n.alias[u]);i.array=i.array.concat(n.array),i.config={};let s=[];if(Object.keys(t).forEach((u)=>{t[u].map((h)=>{if(i.configuration["unknown-options-as-args"])i.key[u]=!0;s.push(`--${u}`),s.push(h)})}),!s.length)return;let c=Object.assign({},i.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(s,Object.assign({},i,{configuration:c}));if(a.error)o.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let u=Object.keys(t);Object.keys(t).forEach((h)=>{u.push(...a.aliases[h])}),Object.keys(a.argv).forEach((h)=>{if(u.includes(h)){if(!t[h])t[h]=a.argv[h];if(!this.isInConfigs(o,h)&&!this.isDefaulted(o,h)&&Object.prototype.hasOwnProperty.call(e,h)&&Object.prototype.hasOwnProperty.call(a.argv,h)&&(Array.isArray(e[h])||Array.isArray(a.argv[h])))e[h]=[].concat(e[h],a.argv[h]);else e[h]=a.argv[h]}})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some((o)=>Object.prototype.hasOwnProperty.call(o,t))||n.some((o)=>Object.prototype.hasOwnProperty.call(o,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=so.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}let t=this.defaultCommand.builder;if(cr(t))return t(e,!0);else if(!fc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=wi(e);if(!t)throw Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let o of[e,t,n]){if(typeof o==="string"||o===!1)return o;wt(o,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();wt(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function dc(e,t,n,o){return new uc(e,t,n,o)}function fc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function xd(e){return e.every((t)=>typeof t==="string")}function cr(e){return typeof e==="function"}function yd(e){return typeof e==="object"}function Sd(e){return typeof e==="object"&&!Array.isArray(e)}function Cn(e={},t=()=>!0){let n={};return io(e).forEach((o)=>{if(t(o,e[o]))n[o]=e[o]}),n}function Rn(e){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((t)=>{let n=t;if(n._handle&&n.isTTY&&typeof n._handle.setBlocking==="function")n._handle.setBlocking(e)})}function Cd(e){return typeof e==="boolean"}function pc(e,t){let n=t.y18n.__,o={},i=[];o.failFn=function(q){i.push(q)};let s=null,c=null,a=!0;o.showHelpOnFail=function(q=!0,Y){let[ne,he]=typeof q==="string"?[!0,q]:[q,Y];if(e.getInternalMethods().isGlobalContext())c=he;return s=he,a=ne,o};let u=!1;o.fail=function(q,Y){let ne=e.getInternalMethods().getLoggerInstance();if(i.length)for(let he=i.length-1;he>=0;--he){let _=i[he];if(Cd(_)){if(Y)throw Y;else if(q)throw Error(q)}else _(q,Y,o)}else{if(e.getExitProcess())Rn(!0);if(!u){if(u=!0,a)e.showHelp("error"),ne.error();if(q||Y)ne.error(q||Y);let he=s||c;if(he){if(q||Y)ne.error("");ne.error(he)}}if(Y=Y||new Je(q),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,Y);else throw Y}};let h=[],m=!1;o.usage=(J,q)=>{if(J===null)return m=!0,h=[],o;return m=!1,h.push([J,q||""]),o},o.getUsage=()=>{return h},o.getUsageDisabled=()=>{return m},o.getPositionalGroupName=()=>{return n("Positionals:")};let p=[];o.example=(J,q)=>{p.push([J,q||""])};let w=[];o.command=function(q,Y,ne,he,_=!1){if(ne)w=w.map((me)=>{return me[2]=!1,me});w.push([q,Y||"",ne,he,_])},o.getCommands=()=>w;let A={};o.describe=function(q,Y){if(Array.isArray(q))q.forEach((ne)=>{o.describe(ne,Y)});else if(typeof q==="object")Object.keys(q).forEach((ne)=>{o.describe(ne,q[ne])});else A[q]=Y},o.getDescriptions=()=>A;let W=[];o.epilog=(J)=>{W.push(J)};let y=!1,C;o.wrap=(J)=>{y=!0,C=J},o.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!y)C=z(),y=!0;return C};let k="__yargsString__:";o.deferY18nLookup=(J)=>k+J,o.help=function(){if(S)return S;x();let q=e.customScriptName?e.$0:t.path.basename(e.$0),Y=e.getDemandedOptions(),ne=e.getDemandedCommands(),he=e.getDeprecatedOptions(),_=e.getGroups(),me=e.getOptions(),ke=[];ke=ke.concat(Object.keys(A)),ke=ke.concat(Object.keys(Y)),ke=ke.concat(Object.keys(ne)),ke=ke.concat(Object.keys(me.default)),ke=ke.filter(G),ke=Object.keys(ke.reduce((ie,we)=>{if(we!=="_")ie[we]=!0;return ie},{}));let E=o.getWrap(),P=t.cliui({width:E,wrap:!!E});if(!m){if(h.length)h.forEach((ie)=>{if(P.div({text:`${ie[0].replace(/\$0/g,q)}`}),ie[1])P.div({text:`${ie[1]}`,padding:[1,0,0,0]})}),P.div();else if(w.length){let ie=null;if(ne._)ie=`${q} <${n("command")}>
169
- `;else ie=`${q} [${n("command")}]
170
- `;P.div(`${ie}`)}}if(w.length>1||w.length===1&&!w[0][2]){P.div(n("Commands:"));let ie=e.getInternalMethods().getContext(),we=ie.commands.length?`${ie.commands.join(" ")} `:"";if(e.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)w=w.sort((pe,Ee)=>pe[0].localeCompare(Ee[0]));let Oe=q?`${q} `:"";w.forEach((pe)=>{let Ee=`${Oe}${we}${pe[0].replace(/^\$0 ?/,"")}`;P.span({text:Ee,padding:[0,2,0,2],width:F(w,E,`${q}${we}`)+4},{text:pe[1]});let Fe=[];if(pe[2])Fe.push(`[${n("default")}]`);if(pe[3]&&pe[3].length)Fe.push(`[${n("aliases:")} ${pe[3].join(", ")}]`);if(pe[4])if(typeof pe[4]==="string")Fe.push(`[${n("deprecated: %s",pe[4])}]`);else Fe.push(`[${n("deprecated")}]`);if(Fe.length)P.div({text:Fe.join(" "),padding:[0,0,0,2],align:"right"});else P.div()}),P.div()}let U=(Object.keys(me.alias)||[]).concat(Object.keys(e.parsed.newAliases)||[]);ke=ke.filter((ie)=>!e.parsed.newAliases[ie]&&U.every((we)=>(me.alias[we]||[]).indexOf(ie)===-1));let K=n("Options:");if(!_[K])_[K]=[];O(ke,me.alias,_,K);let L=(ie)=>/^--/.test(ar(ie)),ee=Object.keys(_).filter((ie)=>_[ie].length>0).map((ie)=>{let we=_[ie].filter(G).map((Oe)=>{if(U.includes(Oe))return Oe;for(let pe=0,Ee;(Ee=U[pe])!==void 0;pe++)if((me.alias[Ee]||[]).includes(Oe))return Ee;return Oe});return{groupName:ie,normalizedKeys:we}}).filter(({normalizedKeys:ie})=>ie.length>0).map(({groupName:ie,normalizedKeys:we})=>{let Oe=we.reduce((pe,Ee)=>{return pe[Ee]=[Ee].concat(me.alias[Ee]||[]).map((Fe)=>{if(ie===o.getPositionalGroupName())return Fe;else return(/^[0-9]$/.test(Fe)?me.boolean.includes(Ee)?"-":"--":Fe.length>1?"--":"-")+Fe}).sort((Fe,We)=>L(Fe)===L(We)?0:L(Fe)?1:-1).join(", "),pe},{});return{groupName:ie,normalizedKeys:we,switches:Oe}});if(ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).some(({normalizedKeys:ie,switches:we})=>!ie.every((Oe)=>L(we[Oe]))))ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).forEach(({normalizedKeys:ie,switches:we})=>{ie.forEach((Oe)=>{if(L(we[Oe]))we[Oe]=Rd(we[Oe],4)})});if(ee.forEach(({groupName:ie,normalizedKeys:we,switches:Oe})=>{P.div(ie),we.forEach((pe)=>{let Ee=Oe[pe],Fe=A[pe]||"",We=null;if(Fe.includes(k))Fe=n(Fe.substring(k.length));if(me.boolean.includes(pe))We=`[${n("boolean")}]`;if(me.count.includes(pe))We=`[${n("count")}]`;if(me.string.includes(pe))We=`[${n("string")}]`;if(me.normalize.includes(pe))We=`[${n("string")}]`;if(me.array.includes(pe))We=`[${n("array")}]`;if(me.number.includes(pe))We=`[${n("number")}]`;let j=(M)=>typeof M==="string"?`[${n("deprecated: %s",M)}]`:`[${n("deprecated")}]`,d=[pe in he?j(he[pe]):null,We,pe in Y?`[${n("required")}]`:null,me.choices&&me.choices[pe]?`[${n("choices:")} ${o.stringifiedValues(me.choices[pe])}]`:null,I(me.default[pe],me.defaultDescription[pe])].filter(Boolean).join(" ");P.span({text:ar(Ee),padding:[0,2,0,2+mc(Ee)],width:F(Oe,E)+4},Fe);let b=e.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(d&&!b)P.div({text:d,padding:[0,0,0,2],align:"right"});else P.div()}),P.div()}),p.length)P.div(n("Examples:")),p.forEach((ie)=>{ie[0]=ie[0].replace(/\$0/g,q)}),p.forEach((ie)=>{if(ie[1]==="")P.div({text:ie[0],padding:[0,2,0,2]});else P.div({text:ie[0],padding:[0,2,0,2],width:F(p,E)+4},{text:ie[1]})}),P.div();if(W.length>0){let ie=W.map((we)=>we.replace(/\$0/g,q)).join(`
171
- `);P.div(`${ie}
172
- `)}return P.toString().replace(/\s*$/,"")};function F(J,q,Y){let ne=0;if(!Array.isArray(J))J=Object.values(J).map((he)=>[he]);if(J.forEach((he)=>{ne=Math.max(t.stringWidth(Y?`${Y} ${ar(he[0])}`:ar(he[0]))+mc(he[0]),ne)}),q)ne=Math.min(ne,parseInt((q*0.5).toString(),10));return ne}function x(){let J=e.getDemandedOptions(),q=e.getOptions();(Object.keys(q.alias)||[]).forEach((Y)=>{q.alias[Y].forEach((ne)=>{if(A[ne])o.describe(Y,A[ne]);if(ne in J)e.demandOption(Y,J[ne]);if(q.boolean.includes(ne))e.boolean(Y);if(q.count.includes(ne))e.count(Y);if(q.string.includes(ne))e.string(Y);if(q.normalize.includes(ne))e.normalize(Y);if(q.array.includes(ne))e.array(Y);if(q.number.includes(ne))e.number(Y)})})}let S;o.cacheHelpMessage=function(){S=this.help()},o.clearCachedHelpMessage=function(){S=void 0},o.hasCachedHelpMessage=function(){return!!S};function O(J,q,Y,ne){let he=[],_=null;return Object.keys(Y).forEach((me)=>{he=he.concat(Y[me])}),J.forEach((me)=>{if(_=[me].concat(q[me]),!_.some((ke)=>he.indexOf(ke)!==-1))Y[ne].push(me)}),he}function G(J){return e.getOptions().hiddenOptions.indexOf(J)<0||e.parsed.argv[e.getOptions().showHiddenOpt]}o.showHelp=(J)=>{let q=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:q[J])(o.help())},o.functionDescription=(J)=>{return["(",J.name?t.Parser.decamelize(J.name,"-"):n("generated-value"),")"].join("")},o.stringifiedValues=function(q,Y){let ne="",he=Y||", ",_=[].concat(q);if(!q||!_.length)return ne;return _.forEach((me)=>{if(ne.length)ne+=he;ne+=JSON.stringify(me)}),ne};function I(J,q){let Y=`[${n("default:")} `;if(J===void 0&&!q)return null;if(q)Y+=q;else switch(typeof J){case"string":Y+=`"${J}"`;break;case"object":Y+=JSON.stringify(J);break;default:Y+=J}return`${Y}]`}function z(){if(t.process.stdColumns)return Math.min(80,t.process.stdColumns);else return 80}let Z=null;o.version=(J)=>{Z=J},o.showVersion=(J)=>{let q=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:q[J])(Z)},o.reset=function(q){return s=null,u=!1,h=[],m=!1,W=[],p=[],w=[],A=Cn(A,(Y)=>!q[Y]),o};let T=[];return o.freeze=function(){T.push({failMessage:s,failureOutput:u,usages:h,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A})},o.unfreeze=function(q=!1){let Y=T.pop();if(!Y)return;if(q)A={...Y.descriptions,...A},w=[...Y.commands,...w],h=[...Y.usages,...h],p=[...Y.examples,...p],W=[...Y.epilogs,...W];else({failMessage:s,failureOutput:u,usages:h,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A}=Y)},o}function xi(e){return typeof e==="object"}function Rd(e,t){return xi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function mc(e){return xi(e)?e.indentation:0}function ar(e){return xi(e)?e.text:e}var gc=`###-begin-{{app_name}}-completions-###
167
+ `);if(i.border)o.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),o.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)o.unshift(...Array(i.padding[0]||0).fill("")),o.push(...Array(i.padding[2]||0).fill(""));o.forEach((c,a)=>{if(!t[a])t.push([]);let u=t[a];for(let d=0;d<r;d++)if(u[d]===void 0)u.push("");u.push(c)})}),t}negatePadding(e){let t=e.width||0;if(e.padding)t-=(e.padding[3]||0)+(e.padding[1]||0);if(e.border)t-=4;return t}columnWidths(e){if(!this.wrap)return e.map((r)=>{return r.width||kt.stringWidth(r.text)});let t=e.length,n=this.width,o=e.map((r)=>{if(r.width)return t--,n-=r.width,r.width;return}),i=t?Math.floor(n/t):0;return o.map((r,c)=>{if(r===void 0)return Math.max(i,id(e[c]));return r})}}function Ys(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function id(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function sd(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function cd(e,t){e=e.trim();let n=kt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function ad(e,t){e=e.trim();let n=kt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var kt;function Qs(e,t){return kt=t,new Zs({width:(e===null||e===void 0?void 0:e.width)||sd(),wrap:e===null||e===void 0?void 0:e.wrap})}var Ns=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function ii(e){return e.replace(Ns,"")}function $s(e,t){let[n,o]=e.match(Ns)||["",""];e=ii(e);let i="";for(let r=0;r<e.length;r++){if(r!==0&&r%t===0)i+=`
168
+ `;i+=e.charAt(r)}if(n&&o)i=`${n}${i}${o}`;return i}function si(e){return Qs(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ii,wrap:$s})}import{dirname as _s,resolve as ec}from"path";import{readdirSync as ld,statSync as fd}from"fs";function ci(e,t){let n=ec(".",e),o;if(!fd(n).isDirectory())n=_s(n);while(!0){if(o=t(n,ld(n)),o)return ec(n,o);if(n=_s(o=n),o===n)break}}import{inspect as Ed}from"util";import{readFileSync as Dd}from"fs";import{fileURLToPath as Fd}from"url";import{format as hd}from"util";import{normalize as md,resolve as pd}from"path";function Gn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",o=!1,i=e.match(/^-+/);for(let r=i?i[0].length:0;r<e.length;r++){let c=e.charAt(r);if(o)o=!1,c=c.toUpperCase();if(r!==0&&(c==="-"||c==="_"))o=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function ir(e,t){let n=e.toLowerCase();t=t||"-";let o="";for(let i=0;i<e.length;i++){let r=n.charAt(i),c=e.charAt(i);if(r!==c&&i>0)o+=`${t}${n.charAt(i)}`;else o+=c}return o}function sr(e){if(e===null||e===void 0)return!1;if(typeof e==="number")return!0;if(/^0x[0-9a-f]+$/i.test(e))return!0;if(/^0[^.]/.test(e))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function tc(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,o=null,i=null,r=[];for(let c=0;c<e.length;c++){if(n=o,o=e.charAt(c),o===" "&&!i){if(n!==" ")t++;continue}if(o===i)i=null;else if((o==="'"||o==='"')&&!i)i=o;if(!r[t])r[t]="";r[t]+=o}return r}var It;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(It||(It={}));var an;class li{constructor(e){an=e}parse(e,t){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),o=tc(e),i=typeof e==="string",r=ud(Object.assign(Object.create(null),n.alias)),c=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),a=Object.assign(Object.create(null),n.default),u=n.configObjects||[],d=n.envPrefix,m=c["populate--"],p=m?"--":"_",x=Object.create(null),D=Object.create(null),W=n.__||an.format,b={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},R=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,v=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(w){let h=typeof w==="object"?w.key:w,F=Object.keys(w).map(function(P){return{boolean:"bools",string:"strings",number:"numbers"}[P]}).filter(Boolean).pop();if(F)b[F][h]=!0;b.arrays[h]=!0,b.keys.push(h)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(w){b.bools[w]=!0,b.keys.push(w)}),[].concat(n.string||[]).filter(Boolean).forEach(function(w){b.strings[w]=!0,b.keys.push(w)}),[].concat(n.number||[]).filter(Boolean).forEach(function(w){b.numbers[w]=!0,b.keys.push(w)}),[].concat(n.count||[]).filter(Boolean).forEach(function(w){b.counts[w]=!0,b.keys.push(w)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(w){b.normalize[w]=!0,b.keys.push(w)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([w,h])=>{if(typeof h==="number")b.nargs[w]=h,b.keys.push(w)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([w,h])=>{if(typeof h==="function")b.coercions[w]=h,b.keys.push(w)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(w){b.configs[w]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([w,h])=>{if(typeof h==="boolean"||typeof h==="function")b.configs[w]=h})}K(n.key,r,n.default,b.arrays),Object.keys(a).forEach(function(w){(b.aliases[w]||[]).forEach(function(h){a[h]=a[w]})});let k=null;L();let S=[],y=Object.assign(Object.create(null),{_:[]}),O={};for(let w=0;w<o.length;w++){let h=o[w],F=h.replace(/^-{3,}/,"---"),P,M,G,oe,fe,Ve;if(h!=="--"&&/^-/.test(h)&&xe(h))B(h);else if(F.match(/^---+(=|$)/)){B(h);continue}else if(h.match(/^--.+=/)||!c["short-option-groups"]&&h.match(/^-.+=/)){if(oe=h.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(j(oe[1],b.arrays))w=q(w,oe[1],o,oe[2]);else if(j(oe[1],b.nargs)!==!1)w=I(w,oe[1],o,oe[2]);else Y(oe[1],oe[2],!0)}else if(h.match(v)&&c["boolean-negation"]){if(oe=h.match(v),oe!==null&&Array.isArray(oe)&&oe.length>=2)M=oe[1],Y(M,j(M,b.arrays)?[!1]:!1)}else if(h.match(/^--.+/)||!c["short-option-groups"]&&h.match(/^-[^-]+/)){if(oe=h.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(M=oe[1],j(M,b.arrays))w=q(w,M,o);else if(j(M,b.nargs)!==!1)w=I(w,M,o);else if(fe=o[w+1],fe!==void 0&&(!fe.match(/^-/)||fe.match(R))&&!j(M,b.bools)&&!j(M,b.counts))Y(M,fe),w++;else if(/^(true|false)$/.test(fe))Y(M,fe),w++;else Y(M,pe(M))}else if(h.match(/^-.\..+=/)){if(oe=h.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)Y(oe[1],oe[2])}else if(h.match(/^-.\..+/)&&!h.match(R)){if(fe=o[w+1],oe=h.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(M=oe[1],fe!==void 0&&!fe.match(/^-/)&&!j(M,b.bools)&&!j(M,b.counts))Y(M,fe),w++;else Y(M,pe(M))}else if(h.match(/^-[^-]+/)&&!h.match(R)){G=h.slice(1,-1).split(""),P=!1;for(let He=0;He<G.length;He++){if(fe=h.slice(He+2),G[He+1]&&G[He+1]==="="){if(Ve=h.slice(He+3),M=G[He],j(M,b.arrays))w=q(w,M,o,Ve);else if(j(M,b.nargs)!==!1)w=I(w,M,o,Ve);else Y(M,Ve);P=!0;break}if(fe==="-"){Y(G[He],fe);continue}if(/[A-Za-z]/.test(G[He])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(fe)&&j(fe,b.bools)===!1){Y(G[He],fe),P=!0;break}if(G[He+1]&&G[He+1].match(/\W/)){Y(G[He],fe),P=!0;break}else Y(G[He],pe(G[He]))}if(M=h.slice(-1)[0],!P&&M!=="-")if(j(M,b.arrays))w=q(w,M,o);else if(j(M,b.nargs)!==!1)w=I(w,M,o);else if(fe=o[w+1],fe!==void 0&&(!/^(-|--)[^-]/.test(fe)||fe.match(R))&&!j(M,b.bools)&&!j(M,b.counts))Y(M,fe),w++;else if(/^(true|false)$/.test(fe))Y(M,fe),w++;else Y(M,pe(M))}else if(h.match(/^-[0-9]$/)&&h.match(R)&&j(h.slice(1),b.bools))M=h.slice(1),Y(M,pe(M));else if(h==="--"){S=o.slice(w+1);break}else if(c["halt-at-non-option"]){S=o.slice(w);break}else B(h)}if(Re(y,!0),Re(y,!1),Q(y),te(),E(y,b.aliases,a,!0),me(y),c["set-placeholder-key"])ke(y);if(Object.keys(b.counts).forEach(function(w){if(!A(y,w.split(".")))Y(w,0)}),m&&S.length)y[p]=[];if(S.forEach(function(w){y[p].push(w)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(y).filter((w)=>w!=="--"&&w.includes("-")).forEach((w)=>{delete y[w]});if(c["strip-aliased"])[].concat(...Object.keys(r).map((w)=>r[w])).forEach((w)=>{if(c["camel-case-expansion"]&&w.includes("-"))delete y[w.split(".").map((h)=>Gn(h)).join(".")];delete y[w]});function B(w){let h=z("_",w);if(typeof h==="string"||typeof h==="number")y._.push(h)}function I(w,h,F,P){let M,G=j(h,b.nargs);if(G=typeof G!=="number"||isNaN(G)?1:G,G===0){if(!Le(P))k=Error(W("Argument unexpected for: %s",h));return Y(h,pe(h)),w}let oe=Le(P)?0:1;if(c["nargs-eats-options"]){if(F.length-(w+1)+oe<G)k=Error(W("Not enough arguments following: %s",h));oe=G}else{for(M=w+1;M<F.length;M++)if(!F[M].match(/^-[^0-9]/)||F[M].match(R)||xe(F[M]))oe++;else break;if(oe<G)k=Error(W("Not enough arguments following: %s",h))}let fe=Math.min(oe,G);if(!Le(P)&&fe>0)Y(h,P),fe--;for(M=w+1;M<fe+w+1;M++)Y(h,F[M]);return w+fe}function q(w,h,F,P){let M=[],G=P||F[w+1],oe=j(h,b.nargs);if(j(h,b.bools)&&!/^(true|false)$/.test(G))M.push(!0);else if(Le(G)||Le(P)&&/^-/.test(G)&&!R.test(G)&&!xe(G)){if(a[h]!==void 0){let fe=a[h];M=Array.isArray(fe)?fe:[fe]}}else{if(!Le(P))M.push(J(h,P,!0));for(let fe=w+1;fe<F.length;fe++){if(!c["greedy-arrays"]&&M.length>0||oe&&typeof oe==="number"&&M.length>=oe)break;if(G=F[fe],/^-/.test(G)&&!R.test(G)&&!xe(G))break;w=fe,M.push(J(h,G,i))}}if(typeof oe==="number"&&(oe&&M.length<oe||isNaN(oe)&&M.length===0))k=Error(W("Not enough arguments following: %s",h));return Y(h,M),w}function Y(w,h,F=i){if(/-/.test(w)&&c["camel-case-expansion"]){let G=w.split(".").map(function(oe){return Gn(oe)}).join(".");X(w,G)}let P=J(w,h,F),M=w.split(".");if(U(y,M,P),b.aliases[w])b.aliases[w].forEach(function(G){let oe=G.split(".");U(y,oe,P)});if(M.length>1&&c["dot-notation"])(b.aliases[M[0]]||[]).forEach(function(G){let oe=G.split("."),fe=[].concat(M);if(fe.shift(),oe=oe.concat(fe),!(b.aliases[w]||[]).includes(oe.join(".")))U(y,oe,P)});if(j(w,b.normalize)&&!j(w,b.arrays))[w].concat(b.aliases[w]||[]).forEach(function(oe){Object.defineProperty(O,oe,{enumerable:!0,get(){return h},set(fe){h=typeof fe==="string"?an.normalize(fe):fe}})})}function X(w,h){if(!(b.aliases[w]&&b.aliases[w].length))b.aliases[w]=[h],x[h]=!0;if(!(b.aliases[h]&&b.aliases[h].length))X(h,w)}function J(w,h,F){if(F)h=dd(h);if(j(w,b.bools)||j(w,b.counts)){if(typeof h==="string")h=h==="true"}let P=Array.isArray(h)?h.map(function(M){return z(w,M)}):z(w,h);if(j(w,b.counts)&&(Le(P)||typeof P==="boolean"))P=ai();if(j(w,b.normalize)&&j(w,b.arrays))if(Array.isArray(h))P=h.map((M)=>{return an.normalize(M)});else P=an.normalize(h);return P}function z(w,h){if(!c["parse-positional-numbers"]&&w==="_")return h;if(!j(w,b.strings)&&!j(w,b.bools)&&!Array.isArray(h)){if(sr(h)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${h}`)))||!Le(h)&&j(w,b.numbers))h=Number(h)}return h}function Q(w){let h=Object.create(null);E(h,b.aliases,a),Object.keys(b.configs).forEach(function(F){let P=w[F]||h[F];if(P)try{let M=null,G=an.resolve(an.cwd(),P),oe=b.configs[F];if(typeof oe==="function"){try{M=oe(G)}catch(fe){M=fe}if(M instanceof Error){k=M;return}}else M=an.require(G);ne(M)}catch(M){if(M.name==="PermissionDenied")k=M;else if(w[F])k=Error(W("Invalid JSON config file: %s",P))}})}function ne(w,h){Object.keys(w).forEach(function(F){let P=w[F],M=h?h+"."+F:F;if(typeof P==="object"&&P!==null&&!Array.isArray(P)&&c["dot-notation"])ne(P,M);else if(!A(y,M.split("."))||j(M,b.arrays)&&c["combine-arrays"])Y(M,P)})}function te(){if(typeof u<"u")u.forEach(function(w){ne(w)})}function Re(w,h){if(typeof d>"u")return;let F=typeof d==="string"?d:"",P=an.env();Object.keys(P).forEach(function(M){if(F===""||M.lastIndexOf(F,0)===0){let G=M.split("__").map(function(oe,fe){if(fe===0)oe=oe.substring(F.length);return Gn(oe)});if((h&&b.configs[G.join(".")]||!h)&&!A(w,G))Y(G.join("."),P[M])}})}function me(w){let h,F=new Set;Object.keys(w).forEach(function(P){if(!F.has(P)){if(h=j(P,b.coercions),typeof h==="function")try{let M=z(P,h(w[P]));[].concat(b.aliases[P]||[],P).forEach((G)=>{F.add(G),w[G]=M})}catch(M){k=M}}})}function ke(w){return b.keys.forEach((h)=>{if(~h.indexOf("."))return;if(typeof w[h]>"u")w[h]=void 0}),w}function E(w,h,F,P=!1){Object.keys(F).forEach(function(M){if(!A(w,M.split("."))){if(U(w,M.split("."),F[M]),P)D[M]=!0;(h[M]||[]).forEach(function(G){if(A(w,G.split(".")))return;U(w,G.split("."),F[M])})}})}function A(w,h){let F=w;if(!c["dot-notation"])h=[h.join(".")];h.slice(0,-1).forEach(function(M){F=F[M]||{}});let P=h[h.length-1];if(typeof F!=="object")return!1;else return P in F}function U(w,h,F){let P=w;if(!c["dot-notation"])h=[h.join(".")];h.slice(0,-1).forEach(function(Ve){if(Ve=nc(Ve),typeof P==="object"&&P[Ve]===void 0)P[Ve]={};if(typeof P[Ve]!=="object"||Array.isArray(P[Ve])){if(Array.isArray(P[Ve]))P[Ve].push({});else P[Ve]=[P[Ve],{}];P=P[Ve][P[Ve].length-1]}else P=P[Ve]});let M=nc(h[h.length-1]),G=j(h.join("."),b.arrays),oe=Array.isArray(F),fe=c["duplicate-arguments-array"];if(!fe&&j(M,b.nargs)){if(fe=!0,!Le(P[M])&&b.nargs[M]===1||Array.isArray(P[M])&&P[M].length===b.nargs[M])P[M]=void 0}if(F===ai())P[M]=ai(P[M]);else if(Array.isArray(P[M]))if(fe&&G&&oe)P[M]=c["flatten-duplicate-arrays"]?P[M].concat(F):(Array.isArray(P[M][0])?P[M]:[P[M]]).concat([F]);else if(!fe&&Boolean(G)===Boolean(oe))P[M]=F;else P[M]=P[M].concat([F]);else if(P[M]===void 0&&G)P[M]=oe?F:[F];else if(fe&&!(P[M]===void 0||j(M,b.counts)||j(M,b.bools)))P[M]=[P[M],F];else P[M]=F}function K(...w){w.forEach(function(h){Object.keys(h||{}).forEach(function(F){if(b.aliases[F])return;b.aliases[F]=[].concat(r[F]||[]),b.aliases[F].concat(F).forEach(function(P){if(/-/.test(P)&&c["camel-case-expansion"]){let M=Gn(P);if(M!==F&&b.aliases[F].indexOf(M)===-1)b.aliases[F].push(M),x[M]=!0}}),b.aliases[F].concat(F).forEach(function(P){if(P.length>1&&/[A-Z]/.test(P)&&c["camel-case-expansion"]){let M=ir(P,"-");if(M!==F&&b.aliases[F].indexOf(M)===-1)b.aliases[F].push(M),x[M]=!0}}),b.aliases[F].forEach(function(P){b.aliases[P]=[F].concat(b.aliases[F].filter(function(M){return P!==M}))})})})}function j(w,h){let F=[].concat(b.aliases[w]||[],w),P=Object.keys(h),M=F.find((G)=>P.includes(G));return M?h[M]:!1}function ee(w){let h=Object.keys(b);return[].concat(h.map((P)=>b[P])).some(function(P){return Array.isArray(P)?P.includes(w):P[w]})}function he(w,...h){return[].concat(...h).some(function(P){let M=w.match(P);return M&&ee(M[1])})}function se(w){if(w.match(R)||!w.match(/^-[^-]+/))return!1;let h=!0,F,P=w.slice(1).split("");for(let M=0;M<P.length;M++){if(F=w.slice(M+2),!ee(P[M])){h=!1;break}if(P[M+1]&&P[M+1]==="="||F==="-"||/[A-Za-z]/.test(P[M])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(F)||P[M+1]&&P[M+1].match(/\W/))break}return h}function xe(w){return c["unknown-options-as-args"]&&Oe(w)}function Oe(w){if(w=w.replace(/^-{3,}/,"--"),w.match(R))return!1;if(se(w))return!1;return!he(w,/^-+([^=]+?)=[\s\S]*$/,v,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(w){if(!j(w,b.bools)&&!j(w,b.counts)&&`${w}`in a)return a[w];else return Fe(De(w))}function Fe(w){return{[It.BOOLEAN]:!0,[It.STRING]:"",[It.NUMBER]:void 0,[It.ARRAY]:[]}[w]}function De(w){let h=It.BOOLEAN;if(j(w,b.strings))h=It.STRING;else if(j(w,b.numbers))h=It.NUMBER;else if(j(w,b.bools))h=It.BOOLEAN;else if(j(w,b.arrays))h=It.ARRAY;return h}function Le(w){return w===void 0}function L(){Object.keys(b.counts).find((w)=>{if(j(w,b.arrays))return k=Error(W("Invalid configuration: %s, opts.count excludes opts.array.",w)),!0;else if(j(w,b.nargs))return k=Error(W("Invalid configuration: %s, opts.count excludes opts.narg.",w)),!0;return!1})}return{aliases:Object.assign({},b.aliases),argv:Object.assign(O,y),configuration:c,defaulted:Object.assign({},D),error:k,newAliases:Object.assign({},x)}}}function ud(e){let t=[],n=Object.create(null),o=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(o){o=!1;for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++)if(t[i].filter(function(a){return t[r].indexOf(a)!==-1}).length){t[i]=t[i].concat(t[r]),t.splice(r,1),o=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,u){return u.indexOf(c)===a});let r=i.pop();if(r!==void 0&&typeof r==="string")n[r]=i}),n}function ai(e){return e!==void 0?e+1:1}function nc(e){if(e==="__proto__")return"___proto___";return e}function dd(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var fi,ui,di,oc=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,rc=(ui=(fi=process===null||process===void 0?void 0:process.versions)===null||fi===void 0?void 0:fi.node)!==null&&ui!==void 0?ui:(di=process===null||process===void 0?void 0:process.version)===null||di===void 0?void 0:di.slice(1);if(rc){if(Number(rc.match(/^([^.]+)/)[1])<oc)throw Error(`yargs parser supports a minimum Node.js version of ${oc}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var gd=process?process.env:{},ic=new li({cwd:process.cwd,env:()=>{return gd},format:hd,normalize:md,resolve:pd,require:(e)=>{return cn(e)}}),To=function(t,n){return ic.parse(t.slice(),n).argv};To.detailed=function(e,t){return ic.parse(e.slice(),t)};To.camelCase=Gn;To.decamelize=ir;To.looksLikeNumber=sr;var hi=To;import{basename as Pd,dirname as Md,extname as Ad,relative as Wd,resolve as dc}from"path";function sc(){if(bd())return 0;return 1}function bd(){return wd()&&!process.defaultApp}function wd(){return!!process.versions.electron}function mi(e){return e.slice(sc()+1)}function cc(){return process.argv[sc()]}class Ue extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Ue)}}import{readFileSync as xd,statSync as yd,writeFile as Sd}from"fs";import{format as Cd}from"util";import{resolve as Rd}from"path";var ac={fs:{readFileSync:xd,writeFile:Sd},format:Cd,resolve:Rd,exists:(e)=>{try{return yd(e).isFile()}catch(t){return!1}}};var Zt;class lc{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles==="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage==="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};if(typeof e[e.length-1]==="function")n=e.pop();if(n=n||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n});else n();return Zt.format.apply(Zt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let r=o===1?t:n;if(this.cache[this.locale][t])r=this.cache[this.locale][t][o===1?"one":"other"];if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:i});else i();let c=[r];if(~r.indexOf("%d"))c.push(o);return Zt.format.apply(Zt.format,c.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){if(!this.cache[this.locale])this._readLocaleFile();for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))this.cache[this.locale][t]=e[t]}_taggedLiteral(e,...t){let n="";return e.forEach(function(o,i){let r=t[i+1];if(n+=o,typeof r<"u")n+="%s"}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){if(this.writeQueue.push(e),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let e=this,t=this.writeQueue[0],n=t.directory,o=t.locale,i=t.cb,r=this._resolveLocaleFile(n,o),c=JSON.stringify(this.cache[o],null,2);Zt.fs.writeFile(r,c,"utf-8",function(a){if(e.writeQueue.shift(),e.writeQueue.length>0)e._processWriteQueue();i(a)})}_readLocaleFile(){let e={},t=this._resolveLocaleFile(this.directory,this.locale);try{if(Zt.fs.readFileSync)e=JSON.parse(Zt.fs.readFileSync(t,"utf-8"))}catch(n){if(n instanceof SyntaxError)n.message="syntax error in "+t;if(n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Zt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let o=Zt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(o))n=o}return n}_fileExistsSync(e){return Zt.exists(e)}}function fc(e,t){Zt=t;let n=new lc(e);return{__:n.__.bind(n),__n:n.__n.bind(n),setLocale:n.setLocale.bind(n),getLocale:n.getLocale.bind(n),updateLocale:n.updateLocale.bind(n),locale:n.locale}}var Od=(e)=>{return fc(e,ac)},uc=Od;var Ld="require is not supported by ESM",hc="loading a directory of commands is not supported yet for ESM",Ho;try{Ho=Fd(import.meta.url)}catch(e){Ho=process.cwd()}var Id=Ho.substring(0,Ho.lastIndexOf("node_modules")),pi={assert:{notStrictEqual:vd,strictEqual:kd},cliui:si,findUp:ci,getEnv:(e)=>{return process.env[e]},inspect:Ed,getCallerFile:()=>{throw new Ue(hc)},getProcessArgvBin:cc,mainFilename:Id||process.cwd(),Parser:hi,path:{basename:Pd,dirname:Md,extname:Ad,relative:Wd,resolve:dc},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(e,t)=>process.emitWarning(e,t),execPath:()=>process.execPath,exit:process.exit,nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:Dd,require:()=>{throw new Ue(Ld)},requireDirectory:()=>{throw new Ue(hc)},stringWidth:(e)=>{return[...e].length},y18n:uc({directory:dc(Ho,"../../../locales"),updateFiles:!1})};function gt(e,t,n,o){n.assert.notStrictEqual(e,t,o)}function gi(e,t){t.assert.strictEqual(typeof e,"string")}function lo(e){return Object.keys(e)}function Je(e){return!!e&&!!e.then&&typeof e.then==="function"}function Cn(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),o=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let r={cmd:i.replace(o,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let u=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)u=!0;if(/^\[/.test(c))r.optional.push({cmd:c.replace(o,"").split("|"),variadic:u});else r.demanded.push({cmd:c.replace(o,"").split("|"),variadic:u})}),r}var jd=["first","second","third","fourth","fifth","sixth"];function ge(e,t,n){function o(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[Cn(`cmd ${e}`),t,n]}try{let i=0,[r,c,a]=o(),u=[].slice.call(c);while(u.length&&u[u.length-1]===void 0)u.pop();let d=a||u.length;if(d<r.demanded.length)throw new Ue(`Not enough arguments provided. Expected ${r.demanded.length} but received ${u.length}.`);let m=r.demanded.length+r.optional.length;if(d>m)throw new Ue(`Too many arguments provided. Expected max ${m} but received ${d}.`);r.demanded.forEach((p)=>{let x=u.shift(),D=mc(x);if(p.cmd.filter((b)=>b===D||b==="*").length===0)pc(D,p.cmd,i);i+=1}),r.optional.forEach((p)=>{if(u.length===0)return;let x=u.shift(),D=mc(x);if(p.cmd.filter((b)=>b===D||b==="*").length===0)pc(D,p.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function mc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function pc(e,t,n){throw new Ue(`Invalid ${jd[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class bi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,o=!1){if(ge("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let i=0;i<e.length;i++){if(typeof e[i]!=="function")throw Error("middleware must be a function");let r=e[i];r.applyBeforeValidation=t,r.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e==="function"){let i=e;i.applyBeforeValidation=t,i.global=n,i.mutates=o,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((o)=>{let i=[...n[t]||[],t];if(!o.option)return!0;else return!i.includes(o.option)}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let e=this.frozens.pop();if(e!==void 0)this.globalMiddleware=e}reset(){this.globalMiddleware=this.globalMiddleware.filter((e)=>e.global)}}function gc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function Un(e,t,n,o){return n.reduce((i,r)=>{if(r.applyBeforeValidation!==o)return i;if(r.mutates){if(r.applied)return i;r.applied=!0}if(Je(i))return i.then((c)=>Promise.all([c,r(c,t)])).then(([c,a])=>Object.assign(c,a));else{let c=r(i,t);return Je(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function Jn(e,t,n=(o)=>{throw o}){try{let o=Td(e)?e():e;return Je(o)?o.then((i)=>t(i)):t(o)}catch(o){return n(o)}}function Td(e){return typeof e==="function"}function wi(e){for(let t=0,n=Object.keys(cn.cache),o;t<n.length;t++)if(o=cn.cache[n[t]],o.exports===e)return o;return null}var fo=/(^\*)|(^\$0)/;class wc{constructor(e,t,n,o){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=o,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,o){if(o=o||{},typeof o.recurse!=="boolean")o.recurse=!1;if(!Array.isArray(o.extensions))o.extensions=["js"];let i=typeof o.visit==="function"?o.visit:(r)=>r;o.visit=(r,c,a)=>{let u=i(r,c,a);if(u){if(this.requireCache.has(c))return u;else this.requireCache.add(c);this.addHandler(u)}return u},this.shim.requireDirectory({require:t,filename:n},e,o)}addHandler(e,t,n,o,i,r){let c=[],a=gc(i);if(o=o||(()=>{}),Array.isArray(e))if(Hd(e))[e,...c]=e;else for(let u of e)this.addHandler(u);else if(Vd(e)){let u=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)u=[].concat(u).concat(e.aliases);this.addHandler(u,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(bc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let u=Cn(e);c=c.map((p)=>Cn(p).cmd);let d=!1,m=[u.cmd].concat(c).filter((p)=>{if(fo.test(p))return d=!0,!1;return!0});if(m.length===0&&d)m.push("$0");if(d)u.cmd=m[0],c=m.slice(1),e=e.replace(fo,u.cmd);if(c.forEach((p)=>{this.aliasMap[p]=u.cmd}),t!==!1)this.usage.command(e,t,d,c,r);if(this.handlers[u.cmd]={original:e,description:t,handler:o,builder:n||{},middlewares:a,deprecated:r,demanded:u.demanded,optional:u.optional},d)this.defaultCommand=this.handlers[u.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,o,i,r){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),u=a.commands.slice(),d=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let m=this.applyBuilderUpdateUsageAndParse(d,c,t,n.aliases,u,o,i,r);return Je(m)?m.then((p)=>this.applyMiddlewareAndGetResult(d,c,p.innerArgv,a,i,p.aliases,t)):this.applyMiddlewareAndGetResult(d,c,m.innerArgv,a,i,m.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,o,i,r,c,a){let u=t.builder,d=n;if(cr(u)){n.getInternalMethods().getUsageInstance().freeze();let m=u(n.getInternalMethods().reset(o),a);if(Je(m))return m.then((p)=>{return d=yc(p)?p:n,this.parseAndUpdateUsage(e,t,d,i,r,c)})}else if(Bd(u))n.getInternalMethods().getUsageInstance().freeze(),d=n.getInternalMethods().reset(o),Object.keys(t.builder).forEach((m)=>{d.option(m,u[m])});return this.parseAndUpdateUsage(e,t,d,i,r,c)}parseAndUpdateUsage(e,t,n,o,i,r){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(o,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,r);return Je(c)?c.then((a)=>({aliases:n.parsed.aliases,innerArgv:a})):{aliases:n.parsed.aliases,innerArgv:c}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){let n=fo.test(t.original)?t.original.replace(fo,"").trim():t.original,o=e.filter((i)=>{return!fo.test(i)});return o.push(n),`$0 ${o.join(" ")}`}handleValidationAndGetResult(e,t,n,o,i,r,c,a){if(!r.getInternalMethods().getHasOutput()){let u=r.getInternalMethods().runValidation(i,a,r.parsed.error,e);n=Jn(n,(d)=>{return u(d),d})}if(t.handler&&!r.getInternalMethods().getHasOutput()){r.getInternalMethods().setHasOutput();let u=!!r.getOptions().configuration["populate--"];if(r.getInternalMethods().postProcess(n,u,!1,!1),n=Un(n,r,c,!1),n=Jn(n,(d)=>{let m=t.handler(d);return Je(m)?m.then(()=>d):d}),!e)r.getInternalMethods().getUsageInstance().cacheHelpMessage();if(Je(n)&&!r.getInternalMethods().hasParseCallback())n.catch((d)=>{try{r.getInternalMethods().getUsageInstance().fail(null,d)}catch(m){}})}if(!e)o.commands.pop(),o.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,o,i,r,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,o,c);let u=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),d=Un(n,c,u,!0);return Je(d)?d.then((m)=>this.handleValidationAndGetResult(e,t,m,o,r,c,u,a)):this.handleValidationAndGetResult(e,t,d,o,r,c,u,a)}populatePositionals(e,t,n,o){t._=t._.slice(n.commands.length);let i=e.demanded.slice(0),r=e.optional.slice(0),c={};this.validation.positionalCount(i.length,t._.length);while(i.length){let a=i.shift();this.populatePositional(a,t,c)}while(r.length){let a=r.shift();this.populatePositional(a,t,c)}return t._=n.commands.concat(t._.map((a)=>""+a)),this.postProcessPositionals(t,c,this.cmdToParseOptions(e.original),o),c}populatePositional(e,t,n){let o=e.cmd[0];if(e.variadic)n[o]=t._.splice(0).map(String);else if(t._.length)n[o]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=Cn(e);return n.demanded.forEach((o)=>{let[i,...r]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=r,t.demand[i]=!0}),n.optional.forEach((o)=>{let[i,...r]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=r}),t}postProcessPositionals(e,t,n,o){let i=Object.assign({},o.getOptions());i.default=Object.assign(n.default,i.default);for(let u of Object.keys(n.alias))i.alias[u]=(i.alias[u]||[]).concat(n.alias[u]);i.array=i.array.concat(n.array),i.config={};let r=[];if(Object.keys(t).forEach((u)=>{t[u].map((d)=>{if(i.configuration["unknown-options-as-args"])i.key[u]=!0;r.push(`--${u}`),r.push(d)})}),!r.length)return;let c=Object.assign({},i.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(r,Object.assign({},i,{configuration:c}));if(a.error)o.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let u=Object.keys(t);Object.keys(t).forEach((d)=>{u.push(...a.aliases[d])}),Object.keys(a.argv).forEach((d)=>{if(u.includes(d)){if(!t[d])t[d]=a.argv[d];if(!this.isInConfigs(o,d)&&!this.isDefaulted(o,d)&&Object.prototype.hasOwnProperty.call(e,d)&&Object.prototype.hasOwnProperty.call(a.argv,d)&&(Array.isArray(e[d])||Array.isArray(a.argv[d])))e[d]=[].concat(e[d],a.argv[d]);else e[d]=a.argv[d]}})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some((o)=>Object.prototype.hasOwnProperty.call(o,t))||n.some((o)=>Object.prototype.hasOwnProperty.call(o,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=fo.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}let t=this.defaultCommand.builder;if(cr(t))return t(e,!0);else if(!bc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=wi(e);if(!t)throw Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let o of[e,t,n]){if(typeof o==="string"||o===!1)return o;gt(o,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();gt(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function xc(e,t,n,o){return new wc(e,t,n,o)}function bc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function Hd(e){return e.every((t)=>typeof t==="string")}function cr(e){return typeof e==="function"}function Bd(e){return typeof e==="object"}function Vd(e){return typeof e==="object"&&!Array.isArray(e)}function Rn(e={},t=()=>!0){let n={};return lo(e).forEach((o)=>{if(t(o,e[o]))n[o]=e[o]}),n}function On(e){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((t)=>{let n=t;if(n._handle&&n.isTTY&&typeof n._handle.setBlocking==="function")n._handle.setBlocking(e)})}function Kd(e){return typeof e==="boolean"}function Cc(e,t){let n=t.y18n.__,o={},i=[];o.failFn=function(z){i.push(z)};let r=null,c=null,a=!0;o.showHelpOnFail=function(z=!0,Q){let[ne,te]=typeof z==="string"?[!0,z]:[z,Q];if(e.getInternalMethods().isGlobalContext())c=te;return r=te,a=ne,o};let u=!1;o.fail=function(z,Q){let ne=e.getInternalMethods().getLoggerInstance();if(i.length)for(let te=i.length-1;te>=0;--te){let Re=i[te];if(Kd(Re)){if(Q)throw Q;else if(z)throw Error(z)}else Re(z,Q,o)}else{if(e.getExitProcess())On(!0);if(!u){if(u=!0,a)e.showHelp("error"),ne.error();if(z||Q)ne.error(z||Q);let te=r||c;if(te){if(z||Q)ne.error("");ne.error(te)}}if(Q=Q||new Ue(z),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,Q);else throw Q}};let d=[],m=!1;o.usage=(J,z)=>{if(J===null)return m=!0,d=[],o;return m=!1,d.push([J,z||""]),o},o.getUsage=()=>{return d},o.getUsageDisabled=()=>{return m},o.getPositionalGroupName=()=>{return n("Positionals:")};let p=[];o.example=(J,z)=>{p.push([J,z||""])};let x=[];o.command=function(z,Q,ne,te,Re=!1){if(ne)x=x.map((me)=>{return me[2]=!1,me});x.push([z,Q||"",ne,te,Re])},o.getCommands=()=>x;let D={};o.describe=function(z,Q){if(Array.isArray(z))z.forEach((ne)=>{o.describe(ne,Q)});else if(typeof z==="object")Object.keys(z).forEach((ne)=>{o.describe(ne,z[ne])});else D[z]=Q},o.getDescriptions=()=>D;let W=[];o.epilog=(J)=>{W.push(J)};let b=!1,R;o.wrap=(J)=>{b=!0,R=J},o.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!b)R=q(),b=!0;return R};let v="__yargsString__:";o.deferY18nLookup=(J)=>v+J,o.help=function(){if(y)return y;S();let z=e.customScriptName?e.$0:t.path.basename(e.$0),Q=e.getDemandedOptions(),ne=e.getDemandedCommands(),te=e.getDeprecatedOptions(),Re=e.getGroups(),me=e.getOptions(),ke=[];ke=ke.concat(Object.keys(D)),ke=ke.concat(Object.keys(Q)),ke=ke.concat(Object.keys(ne)),ke=ke.concat(Object.keys(me.default)),ke=ke.filter(B),ke=Object.keys(ke.reduce((se,xe)=>{if(xe!=="_")se[xe]=!0;return se},{}));let E=o.getWrap(),A=t.cliui({width:E,wrap:!!E});if(!m){if(d.length)d.forEach((se)=>{if(A.div({text:`${se[0].replace(/\$0/g,z)}`}),se[1])A.div({text:`${se[1]}`,padding:[1,0,0,0]})}),A.div();else if(x.length){let se=null;if(ne._)se=`${z} <${n("command")}>
169
+ `;else se=`${z} [${n("command")}]
170
+ `;A.div(`${se}`)}}if(x.length>1||x.length===1&&!x[0][2]){A.div(n("Commands:"));let se=e.getInternalMethods().getContext(),xe=se.commands.length?`${se.commands.join(" ")} `:"";if(e.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)x=x.sort((pe,Fe)=>pe[0].localeCompare(Fe[0]));let Oe=z?`${z} `:"";x.forEach((pe)=>{let Fe=`${Oe}${xe}${pe[0].replace(/^\$0 ?/,"")}`;A.span({text:Fe,padding:[0,2,0,2],width:k(x,E,`${z}${xe}`)+4},{text:pe[1]});let De=[];if(pe[2])De.push(`[${n("default")}]`);if(pe[3]&&pe[3].length)De.push(`[${n("aliases:")} ${pe[3].join(", ")}]`);if(pe[4])if(typeof pe[4]==="string")De.push(`[${n("deprecated: %s",pe[4])}]`);else De.push(`[${n("deprecated")}]`);if(De.length)A.div({text:De.join(" "),padding:[0,0,0,2],align:"right"});else A.div()}),A.div()}let U=(Object.keys(me.alias)||[]).concat(Object.keys(e.parsed.newAliases)||[]);ke=ke.filter((se)=>!e.parsed.newAliases[se]&&U.every((xe)=>(me.alias[xe]||[]).indexOf(se)===-1));let K=n("Options:");if(!Re[K])Re[K]=[];O(ke,me.alias,Re,K);let j=(se)=>/^--/.test(ar(se)),ee=Object.keys(Re).filter((se)=>Re[se].length>0).map((se)=>{let xe=Re[se].filter(B).map((Oe)=>{if(U.includes(Oe))return Oe;for(let pe=0,Fe;(Fe=U[pe])!==void 0;pe++)if((me.alias[Fe]||[]).includes(Oe))return Fe;return Oe});return{groupName:se,normalizedKeys:xe}}).filter(({normalizedKeys:se})=>se.length>0).map(({groupName:se,normalizedKeys:xe})=>{let Oe=xe.reduce((pe,Fe)=>{return pe[Fe]=[Fe].concat(me.alias[Fe]||[]).map((De)=>{if(se===o.getPositionalGroupName())return De;else return(/^[0-9]$/.test(De)?me.boolean.includes(Fe)?"-":"--":De.length>1?"--":"-")+De}).sort((De,Le)=>j(De)===j(Le)?0:j(De)?1:-1).join(", "),pe},{});return{groupName:se,normalizedKeys:xe,switches:Oe}});if(ee.filter(({groupName:se})=>se!==o.getPositionalGroupName()).some(({normalizedKeys:se,switches:xe})=>!se.every((Oe)=>j(xe[Oe]))))ee.filter(({groupName:se})=>se!==o.getPositionalGroupName()).forEach(({normalizedKeys:se,switches:xe})=>{se.forEach((Oe)=>{if(j(xe[Oe]))xe[Oe]=Gd(xe[Oe],4)})});if(ee.forEach(({groupName:se,normalizedKeys:xe,switches:Oe})=>{A.div(se),xe.forEach((pe)=>{let Fe=Oe[pe],De=D[pe]||"",Le=null;if(De.includes(v))De=n(De.substring(v.length));if(me.boolean.includes(pe))Le=`[${n("boolean")}]`;if(me.count.includes(pe))Le=`[${n("count")}]`;if(me.string.includes(pe))Le=`[${n("string")}]`;if(me.normalize.includes(pe))Le=`[${n("string")}]`;if(me.array.includes(pe))Le=`[${n("array")}]`;if(me.number.includes(pe))Le=`[${n("number")}]`;let L=(F)=>typeof F==="string"?`[${n("deprecated: %s",F)}]`:`[${n("deprecated")}]`,w=[pe in te?L(te[pe]):null,Le,pe in Q?`[${n("required")}]`:null,me.choices&&me.choices[pe]?`[${n("choices:")} ${o.stringifiedValues(me.choices[pe])}]`:null,I(me.default[pe],me.defaultDescription[pe])].filter(Boolean).join(" ");A.span({text:ar(Fe),padding:[0,2,0,2+Sc(Fe)],width:k(Oe,E)+4},De);let h=e.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(w&&!h)A.div({text:w,padding:[0,0,0,2],align:"right"});else A.div()}),A.div()}),p.length)A.div(n("Examples:")),p.forEach((se)=>{se[0]=se[0].replace(/\$0/g,z)}),p.forEach((se)=>{if(se[1]==="")A.div({text:se[0],padding:[0,2,0,2]});else A.div({text:se[0],padding:[0,2,0,2],width:k(p,E)+4},{text:se[1]})}),A.div();if(W.length>0){let se=W.map((xe)=>xe.replace(/\$0/g,z)).join(`
171
+ `);A.div(`${se}
172
+ `)}return A.toString().replace(/\s*$/,"")};function k(J,z,Q){let ne=0;if(!Array.isArray(J))J=Object.values(J).map((te)=>[te]);if(J.forEach((te)=>{ne=Math.max(t.stringWidth(Q?`${Q} ${ar(te[0])}`:ar(te[0]))+Sc(te[0]),ne)}),z)ne=Math.min(ne,parseInt((z*0.5).toString(),10));return ne}function S(){let J=e.getDemandedOptions(),z=e.getOptions();(Object.keys(z.alias)||[]).forEach((Q)=>{z.alias[Q].forEach((ne)=>{if(D[ne])o.describe(Q,D[ne]);if(ne in J)e.demandOption(Q,J[ne]);if(z.boolean.includes(ne))e.boolean(Q);if(z.count.includes(ne))e.count(Q);if(z.string.includes(ne))e.string(Q);if(z.normalize.includes(ne))e.normalize(Q);if(z.array.includes(ne))e.array(Q);if(z.number.includes(ne))e.number(Q)})})}let y;o.cacheHelpMessage=function(){y=this.help()},o.clearCachedHelpMessage=function(){y=void 0},o.hasCachedHelpMessage=function(){return!!y};function O(J,z,Q,ne){let te=[],Re=null;return Object.keys(Q).forEach((me)=>{te=te.concat(Q[me])}),J.forEach((me)=>{if(Re=[me].concat(z[me]),!Re.some((ke)=>te.indexOf(ke)!==-1))Q[ne].push(me)}),te}function B(J){return e.getOptions().hiddenOptions.indexOf(J)<0||e.parsed.argv[e.getOptions().showHiddenOpt]}o.showHelp=(J)=>{let z=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:z[J])(o.help())},o.functionDescription=(J)=>{return["(",J.name?t.Parser.decamelize(J.name,"-"):n("generated-value"),")"].join("")},o.stringifiedValues=function(z,Q){let ne="",te=Q||", ",Re=[].concat(z);if(!z||!Re.length)return ne;return Re.forEach((me)=>{if(ne.length)ne+=te;ne+=JSON.stringify(me)}),ne};function I(J,z){let Q=`[${n("default:")} `;if(J===void 0&&!z)return null;if(z)Q+=z;else switch(typeof J){case"string":Q+=`"${J}"`;break;case"object":Q+=JSON.stringify(J);break;default:Q+=J}return`${Q}]`}function q(){if(t.process.stdColumns)return Math.min(80,t.process.stdColumns);else return 80}let Y=null;o.version=(J)=>{Y=J},o.showVersion=(J)=>{let z=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:z[J])(Y)},o.reset=function(z){return r=null,u=!1,d=[],m=!1,W=[],p=[],x=[],D=Rn(D,(Q)=>!z[Q]),o};let X=[];return o.freeze=function(){X.push({failMessage:r,failureOutput:u,usages:d,usageDisabled:m,epilogs:W,examples:p,commands:x,descriptions:D})},o.unfreeze=function(z=!1){let Q=X.pop();if(!Q)return;if(z)D={...Q.descriptions,...D},x=[...Q.commands,...x],d=[...Q.usages,...d],p=[...Q.examples,...p],W=[...Q.epilogs,...W];else({failMessage:r,failureOutput:u,usages:d,usageDisabled:m,epilogs:W,examples:p,commands:x,descriptions:D}=Q)},o}function xi(e){return typeof e==="object"}function Gd(e,t){return xi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function Sc(e){return xi(e)?e.indentation:0}function ar(e){return xi(e)?e.text:e}var Rc=`###-begin-{{app_name}}-completions-###
173
173
  #
174
174
  # yargs command completion script
175
175
  #
@@ -197,7 +197,7 @@ _{{app_name}}_yargs_completions()
197
197
  }
198
198
  complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
199
199
  ###-end-{{app_name}}-completions-###
200
- `,bc=`#compdef {{app_name}}
200
+ `,Oc=`#compdef {{app_name}}
201
201
  ###-begin-{{app_name}}-completions-###
202
202
  #
203
203
  # yargs command completion script
@@ -216,12 +216,12 @@ _{{app_name}}_yargs_completions()
216
216
  }
217
217
  compdef _{{app_name}}_yargs_completions {{app_name}}
218
218
  ###-end-{{app_name}}-completions-###
219
- `;class wc{constructor(e,t,n,o){var i,s,c;this.yargs=e,this.usage=t,this.command=n,this.shim=o,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(c=((i=this.shim.getEnv("SHELL"))===null||i===void 0?void 0:i.includes("zsh"))||((s=this.shim.getEnv("ZSH_NAME"))===null||s===void 0?void 0:s.includes("zsh")))!==null&&c!==void 0?c:!1}defaultCompletion(e,t,n,o){let i=this.command.getCommandHandlers();for(let c=0,a=e.length;c<a;++c)if(i[e[c]]&&i[e[c]].builder){let u=i[e[c]].builder;if(cr(u)){this.indexAfterLastReset=c+1;let h=this.yargs.getInternalMethods().reset();return u(h,!0),h.argv}}let s=[];this.commandCompletions(s,e,n),this.optionCompletions(s,e,t,n),this.choicesFromOptionsCompletions(s,e,t,n),this.choicesFromPositionalsCompletions(s,e,t,n),o(null,s)}commandCompletions(e,t,n){let o=this.yargs.getInternalMethods().getContext().commands;if(!n.match(/^-/)&&o[o.length-1]!==n&&!this.previousArgHasChoices(t))this.usage.getCommands().forEach((i)=>{let s=Sn(i[0]).cmd;if(t.indexOf(s)===-1)if(!this.zshShell)e.push(s);else{let c=i[1]||"";e.push(s.replace(/:/g,"\\:")+":"+c)}})}optionCompletions(e,t,n,o){if((o.match(/^-/)||o===""&&e.length===0)&&!this.previousArgHasChoices(t)){let i=this.yargs.getOptions(),s=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(i.key).forEach((c)=>{let a=!!i.configuration["boolean-negation"]&&i.boolean.includes(c);if(!s.includes(c)&&!i.hiddenOptions.includes(c)&&!this.argsContainKey(t,c,a))this.completeOptionKey(c,e,o,a&&!!i.default[c])})}}choicesFromOptionsCompletions(e,t,n,o){if(this.previousArgHasChoices(t)){let i=this.getPreviousArgChoices(t);if(i&&i.length>0)e.push(...i.map((s)=>s.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(e,t,n,o){if(o===""&&e.length>0&&this.previousArgHasChoices(t))return;let i=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],s=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),c=i[n._.length-s-1];if(!c)return;let a=this.yargs.getOptions().choices[c]||[];for(let u of a)if(u.startsWith(o))e.push(u.replace(/:/g,"\\:"))}getPreviousArgChoices(e){if(e.length<1)return;let t=e[e.length-1],n="";if(!t.startsWith("-")&&e.length>1)n=t,t=e[e.length-2];if(!t.startsWith("-"))return;let o=t.replace(/^-+/,""),i=this.yargs.getOptions(),s=[o,...this.yargs.getAliases()[o]||[]],c;for(let a of s)if(Object.prototype.hasOwnProperty.call(i.key,a)&&Array.isArray(i.choices[a])){c=i.choices[a];break}if(c)return c.filter((a)=>!n||a.startsWith(n))}previousArgHasChoices(e){let t=this.getPreviousArgChoices(e);return t!==void 0&&t.length>0}argsContainKey(e,t,n){let o=(i)=>e.indexOf((/^[^0-9]$/.test(i)?"-":"--")+i)!==-1;if(o(t))return!0;if(n&&o(`no-${t}`))return!0;if(this.aliases){for(let i of this.aliases[t])if(o(i))return!0}return!1}completeOptionKey(e,t,n,o){var i,s,c,a;let u=e;if(this.zshShell){let w=this.usage.getDescriptions(),A=(s=(i=this===null||this===void 0?void 0:this.aliases)===null||i===void 0?void 0:i[e])===null||s===void 0?void 0:s.find((C)=>{let k=w[C];return typeof k==="string"&&k.length>0}),W=A?w[A]:void 0,y=(a=(c=w[e])!==null&&c!==void 0?c:W)!==null&&a!==void 0?a:"";u=`${e.replace(/:/g,"\\:")}:${y.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let h=(w)=>/^--/.test(w),m=(w)=>/^[^0-9]$/.test(w),p=!h(n)&&m(e)?"-":"--";if(t.push(p+u),o)t.push(p+"no-"+u)}customCompletion(e,t,n,o){if(wt(this.customCompletionFunction,null,this.shim),vd(this.customCompletionFunction)){let i=this.customCompletionFunction(n,t);if(ze(i))return i.then((s)=>{this.shim.process.nextTick(()=>{o(null,s)})}).catch((s)=>{this.shim.process.nextTick(()=>{o(s,void 0)})});return o(null,i)}else if(kd(this.customCompletionFunction))return this.customCompletionFunction(n,t,(i=o)=>this.defaultCompletion(e,t,n,i),(i)=>{o(null,i)});else return this.customCompletionFunction(n,t,(i)=>{o(null,i)})}getCompletion(e,t){let n=e.length?e[e.length-1]:"",o=this.yargs.parse(e,!0),i=this.customCompletionFunction?(s)=>this.customCompletion(e,s,n,t):(s)=>this.defaultCompletion(e,s,n,t);return ze(o)?o.then(i):i(o)}generateCompletionScript(e,t){let n=this.zshShell?bc:gc,o=this.shim.path.basename(e);if(e.match(/\.js$/))e=`./${e}`;return n=n.replace(/{{app_name}}/g,o),n=n.replace(/{{completion_command}}/g,t),n.replace(/{{app_path}}/g,e)}registerFunction(e){this.customCompletionFunction=e}setParsed(e){this.aliases=e.aliases}}function xc(e,t,n,o){return new wc(e,t,n,o)}function vd(e){return e.length<3}function kd(e){return e.length>3}function yc(e,t){if(e.length===0)return t.length;if(t.length===0)return e.length;let n=[],o;for(o=0;o<=t.length;o++)n[o]=[o];let i;for(i=0;i<=e.length;i++)n[0][i]=i;for(o=1;o<=t.length;o++)for(i=1;i<=e.length;i++)if(t.charAt(o-1)===e.charAt(i-1))n[o][i]=n[o-1][i-1];else if(o>1&&i>1&&t.charAt(o-2)===e.charAt(i-1)&&t.charAt(o-1)===e.charAt(i-2))n[o][i]=n[o-2][i-2]+1;else n[o][i]=Math.min(n[o-1][i-1]+1,Math.min(n[o][i-1]+1,n[o-1][i]+1));return n[t.length][e.length]}var Sc=["$0","--","_"];function Cc(e,t,n){let o=n.y18n.__,i=n.y18n.__n,s={};s.nonOptionCount=function(p){let w=e.getDemandedCommands(),W=p._.length+(p["--"]?p["--"].length:0)-e.getInternalMethods().getContext().commands.length;if(w._&&(W<w._.min||W>w._.max)){if(W<w._.min)if(w._.minMsg!==void 0)t.fail(w._.minMsg?w._.minMsg.replace(/\$0/g,W.toString()).replace(/\$1/,w._.min.toString()):null);else t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",W,W.toString(),w._.min.toString()));else if(W>w._.max)if(w._.maxMsg!==void 0)t.fail(w._.maxMsg?w._.maxMsg.replace(/\$0/g,W.toString()).replace(/\$1/,w._.max.toString()):null);else t.fail(i("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",W,W.toString(),w._.max.toString()))}},s.positionalCount=function(p,w){if(w<p)t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",w,w+"",p+""))},s.requiredArguments=function(p,w){let A=null;for(let W of Object.keys(w))if(!Object.prototype.hasOwnProperty.call(p,W)||typeof p[W]>"u")A=A||{},A[W]=w[W];if(A){let W=[];for(let C of Object.keys(A)){let k=A[C];if(k&&W.indexOf(k)<0)W.push(k)}let y=W.length?`
219
+ `;class vc{constructor(e,t,n,o){var i,r,c;this.yargs=e,this.usage=t,this.command=n,this.shim=o,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(c=((i=this.shim.getEnv("SHELL"))===null||i===void 0?void 0:i.includes("zsh"))||((r=this.shim.getEnv("ZSH_NAME"))===null||r===void 0?void 0:r.includes("zsh")))!==null&&c!==void 0?c:!1}defaultCompletion(e,t,n,o){let i=this.command.getCommandHandlers();for(let c=0,a=e.length;c<a;++c)if(i[e[c]]&&i[e[c]].builder){let u=i[e[c]].builder;if(cr(u)){this.indexAfterLastReset=c+1;let d=this.yargs.getInternalMethods().reset();return u(d,!0),d.argv}}let r=[];this.commandCompletions(r,e,n),this.optionCompletions(r,e,t,n),this.choicesFromOptionsCompletions(r,e,t,n),this.choicesFromPositionalsCompletions(r,e,t,n),o(null,r)}commandCompletions(e,t,n){let o=this.yargs.getInternalMethods().getContext().commands;if(!n.match(/^-/)&&o[o.length-1]!==n&&!this.previousArgHasChoices(t))this.usage.getCommands().forEach((i)=>{let r=Cn(i[0]).cmd;if(t.indexOf(r)===-1)if(!this.zshShell)e.push(r);else{let c=i[1]||"";e.push(r.replace(/:/g,"\\:")+":"+c)}})}optionCompletions(e,t,n,o){if((o.match(/^-/)||o===""&&e.length===0)&&!this.previousArgHasChoices(t)){let i=this.yargs.getOptions(),r=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(i.key).forEach((c)=>{let a=!!i.configuration["boolean-negation"]&&i.boolean.includes(c);if(!r.includes(c)&&!i.hiddenOptions.includes(c)&&!this.argsContainKey(t,c,a))this.completeOptionKey(c,e,o,a&&!!i.default[c])})}}choicesFromOptionsCompletions(e,t,n,o){if(this.previousArgHasChoices(t)){let i=this.getPreviousArgChoices(t);if(i&&i.length>0)e.push(...i.map((r)=>r.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(e,t,n,o){if(o===""&&e.length>0&&this.previousArgHasChoices(t))return;let i=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],r=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),c=i[n._.length-r-1];if(!c)return;let a=this.yargs.getOptions().choices[c]||[];for(let u of a)if(u.startsWith(o))e.push(u.replace(/:/g,"\\:"))}getPreviousArgChoices(e){if(e.length<1)return;let t=e[e.length-1],n="";if(!t.startsWith("-")&&e.length>1)n=t,t=e[e.length-2];if(!t.startsWith("-"))return;let o=t.replace(/^-+/,""),i=this.yargs.getOptions(),r=[o,...this.yargs.getAliases()[o]||[]],c;for(let a of r)if(Object.prototype.hasOwnProperty.call(i.key,a)&&Array.isArray(i.choices[a])){c=i.choices[a];break}if(c)return c.filter((a)=>!n||a.startsWith(n))}previousArgHasChoices(e){let t=this.getPreviousArgChoices(e);return t!==void 0&&t.length>0}argsContainKey(e,t,n){let o=(i)=>e.indexOf((/^[^0-9]$/.test(i)?"-":"--")+i)!==-1;if(o(t))return!0;if(n&&o(`no-${t}`))return!0;if(this.aliases){for(let i of this.aliases[t])if(o(i))return!0}return!1}completeOptionKey(e,t,n,o){var i,r,c,a;let u=e;if(this.zshShell){let x=this.usage.getDescriptions(),D=(r=(i=this===null||this===void 0?void 0:this.aliases)===null||i===void 0?void 0:i[e])===null||r===void 0?void 0:r.find((R)=>{let v=x[R];return typeof v==="string"&&v.length>0}),W=D?x[D]:void 0,b=(a=(c=x[e])!==null&&c!==void 0?c:W)!==null&&a!==void 0?a:"";u=`${e.replace(/:/g,"\\:")}:${b.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let d=(x)=>/^--/.test(x),m=(x)=>/^[^0-9]$/.test(x),p=!d(n)&&m(e)?"-":"--";if(t.push(p+u),o)t.push(p+"no-"+u)}customCompletion(e,t,n,o){if(gt(this.customCompletionFunction,null,this.shim),Jd(this.customCompletionFunction)){let i=this.customCompletionFunction(n,t);if(Je(i))return i.then((r)=>{this.shim.process.nextTick(()=>{o(null,r)})}).catch((r)=>{this.shim.process.nextTick(()=>{o(r,void 0)})});return o(null,i)}else if(zd(this.customCompletionFunction))return this.customCompletionFunction(n,t,(i=o)=>this.defaultCompletion(e,t,n,i),(i)=>{o(null,i)});else return this.customCompletionFunction(n,t,(i)=>{o(null,i)})}getCompletion(e,t){let n=e.length?e[e.length-1]:"",o=this.yargs.parse(e,!0),i=this.customCompletionFunction?(r)=>this.customCompletion(e,r,n,t):(r)=>this.defaultCompletion(e,r,n,t);return Je(o)?o.then(i):i(o)}generateCompletionScript(e,t){let n=this.zshShell?Oc:Rc,o=this.shim.path.basename(e);if(e.match(/\.js$/))e=`./${e}`;return n=n.replace(/{{app_name}}/g,o),n=n.replace(/{{completion_command}}/g,t),n.replace(/{{app_path}}/g,e)}registerFunction(e){this.customCompletionFunction=e}setParsed(e){this.aliases=e.aliases}}function kc(e,t,n,o){return new vc(e,t,n,o)}function Jd(e){return e.length<3}function zd(e){return e.length>3}function Ec(e,t){if(e.length===0)return t.length;if(t.length===0)return e.length;let n=[],o;for(o=0;o<=t.length;o++)n[o]=[o];let i;for(i=0;i<=e.length;i++)n[0][i]=i;for(o=1;o<=t.length;o++)for(i=1;i<=e.length;i++)if(t.charAt(o-1)===e.charAt(i-1))n[o][i]=n[o-1][i-1];else if(o>1&&i>1&&t.charAt(o-2)===e.charAt(i-1)&&t.charAt(o-1)===e.charAt(i-2))n[o][i]=n[o-2][i-2]+1;else n[o][i]=Math.min(n[o-1][i-1]+1,Math.min(n[o][i-1]+1,n[o-1][i]+1));return n[t.length][e.length]}var Dc=["$0","--","_"];function Fc(e,t,n){let o=n.y18n.__,i=n.y18n.__n,r={};r.nonOptionCount=function(p){let x=e.getDemandedCommands(),W=p._.length+(p["--"]?p["--"].length:0)-e.getInternalMethods().getContext().commands.length;if(x._&&(W<x._.min||W>x._.max)){if(W<x._.min)if(x._.minMsg!==void 0)t.fail(x._.minMsg?x._.minMsg.replace(/\$0/g,W.toString()).replace(/\$1/,x._.min.toString()):null);else t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",W,W.toString(),x._.min.toString()));else if(W>x._.max)if(x._.maxMsg!==void 0)t.fail(x._.maxMsg?x._.maxMsg.replace(/\$0/g,W.toString()).replace(/\$1/,x._.max.toString()):null);else t.fail(i("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",W,W.toString(),x._.max.toString()))}},r.positionalCount=function(p,x){if(x<p)t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",x,x+"",p+""))},r.requiredArguments=function(p,x){let D=null;for(let W of Object.keys(x))if(!Object.prototype.hasOwnProperty.call(p,W)||typeof p[W]>"u")D=D||{},D[W]=x[W];if(D){let W=[];for(let R of Object.keys(D)){let v=D[R];if(v&&W.indexOf(v)<0)W.push(v)}let b=W.length?`
220
220
  ${W.join(`
221
- `)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(A).length,Object.keys(A).join(", ")+y))}},s.unknownArguments=function(p,w,A,W,y=!0){var C;let k=e.getInternalMethods().getCommandInstance().getCommands(),F=[],x=e.getInternalMethods().getContext();if(Object.keys(p).forEach((S)=>{if(!Sc.includes(S)&&!Object.prototype.hasOwnProperty.call(A,S)&&!Object.prototype.hasOwnProperty.call(e.getInternalMethods().getParseContext(),S)&&!s.isValidAndSomeAliasIsNotNew(S,w))F.push(S)}),y&&(x.commands.length>0||k.length>0||W))p._.slice(x.commands.length).forEach((S)=>{if(!k.includes(""+S))F.push(""+S)});if(y){let O=((C=e.getDemandedCommands()._)===null||C===void 0?void 0:C.max)||0,G=x.commands.length+O;if(G<p._.length)p._.slice(G).forEach((I)=>{if(I=String(I),!x.commands.includes(I)&&!F.includes(I))F.push(I)})}if(F.length)t.fail(i("Unknown argument: %s","Unknown arguments: %s",F.length,F.map((S)=>S.trim()?S:`"${S}"`).join(", ")))},s.unknownCommands=function(p){let w=e.getInternalMethods().getCommandInstance().getCommands(),A=[],W=e.getInternalMethods().getContext();if(W.commands.length>0||w.length>0)p._.slice(W.commands.length).forEach((y)=>{if(!w.includes(""+y))A.push(""+y)});if(A.length>0)return t.fail(i("Unknown command: %s","Unknown commands: %s",A.length,A.join(", "))),!0;else return!1},s.isValidAndSomeAliasIsNotNew=function(p,w){if(!Object.prototype.hasOwnProperty.call(w,p))return!1;let A=e.parsed.newAliases;return[p,...w[p]].some((W)=>!Object.prototype.hasOwnProperty.call(A,W)||!A[p])},s.limitedChoices=function(p){let w=e.getOptions(),A={};if(!Object.keys(w.choices).length)return;Object.keys(p).forEach((C)=>{if(Sc.indexOf(C)===-1&&Object.prototype.hasOwnProperty.call(w.choices,C))[].concat(p[C]).forEach((k)=>{if(w.choices[C].indexOf(k)===-1&&k!==void 0)A[C]=(A[C]||[]).concat(k)})});let W=Object.keys(A);if(!W.length)return;let y=o("Invalid values:");W.forEach((C)=>{y+=`
222
- ${o("Argument: %s, Given: %s, Choices: %s",C,t.stringifiedValues(A[C]),t.stringifiedValues(w.choices[C]))}`}),t.fail(y)};let c={};s.implies=function(p,w){if(xe("<string|object> [array|number|string]",[p,w],arguments.length),typeof p==="object")Object.keys(p).forEach((A)=>{s.implies(A,p[A])});else{if(e.global(p),!c[p])c[p]=[];if(Array.isArray(w))w.forEach((A)=>s.implies(p,A));else wt(w,void 0,n),c[p].push(w)}},s.getImplied=function(){return c};function a(m,p){let w=Number(p);if(p=isNaN(w)?p:w,typeof p==="number")p=m._.length>=p;else if(p.match(/^--no-.+/))p=p.match(/^--no-(.+)/)[1],p=!Object.prototype.hasOwnProperty.call(m,p);else p=Object.prototype.hasOwnProperty.call(m,p);return p}s.implications=function(p){let w=[];if(Object.keys(c).forEach((A)=>{let W=A;(c[A]||[]).forEach((y)=>{let C=W,k=y;if(C=a(p,C),y=a(p,y),C&&!y)w.push(` ${W} -> ${k}`)})}),w.length){let A=`${o("Implications failed:")}
223
- `;w.forEach((W)=>{A+=W}),t.fail(A)}};let u={};s.conflicts=function(p,w){if(xe("<string|object> [array|string]",[p,w],arguments.length),typeof p==="object")Object.keys(p).forEach((A)=>{s.conflicts(A,p[A])});else{if(e.global(p),!u[p])u[p]=[];if(Array.isArray(w))w.forEach((A)=>s.conflicts(p,A));else u[p].push(w)}},s.getConflicting=()=>u,s.conflicting=function(p){if(Object.keys(p).forEach((w)=>{if(u[w])u[w].forEach((A)=>{if(A&&p[w]!==void 0&&p[A]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",w,A))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(u).forEach((w)=>{u[w].forEach((A)=>{if(A&&p[n.Parser.camelCase(w)]!==void 0&&p[n.Parser.camelCase(A)]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",w,A))})})},s.recommendCommands=function(p,w){w=w.sort((C,k)=>k.length-C.length);let W=null,y=1/0;for(let C=0,k;(k=w[C])!==void 0;C++){let F=yc(p,k);if(F<=3&&F<y)y=F,W=k}if(W)t.fail(o("Did you mean %s?",W))},s.reset=function(p){return c=Cn(c,(w)=>!p[w]),u=Cn(u,(w)=>!p[w]),s};let h=[];return s.freeze=function(){h.push({implied:c,conflicting:u})},s.unfreeze=function(){let p=h.pop();wt(p,void 0,n),{implied:c,conflicting:u}=p},s}var yi=[],Ho;function Ko(e,t,n,o){Ho=o;let i={};if(Object.prototype.hasOwnProperty.call(e,"extends")){if(typeof e.extends!=="string")return i;let s=/\.json|\..*rc$/.test(e.extends),c=null;if(!s)try{c=cn.resolve(e.extends)}catch(a){return e}else c=Fd(t,e.extends);Ed(c),yi.push(c),i=s?JSON.parse(Ho.readFileSync(c,"utf8")):cn(e.extends),delete e.extends,i=Ko(i,Ho.path.dirname(c),n,Ho)}return yi=[],n?Rc(i,e):Object.assign({},i,e)}function Ed(e){if(yi.indexOf(e)>-1)throw new Je(`Circular extended configurations: '${e}'.`)}function Fd(e,t){return Ho.path.resolve(e,t)}function Rc(e,t){let n={};function o(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(o(t[i])&&o(n[i]))n[i]=Rc(e[i],t[i]);else n[i]=t[i];return n}var ye=function(e,t,n,o,i){if(o==="m")throw TypeError("Private method is not writable");if(o==="a"&&!i)throw TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!i:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},R=function(e,t,n,o){if(n==="a"&&!o)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?o:n==="a"?o.call(e):o?o.value:t.get(e)},tt,Gn,Go,jt,kt,lr,On,Un,fr,Lt,ur,It,Nt,Et,Bt,dr,co,lt,ve,hr,mr,Ft,Tn,ao,Jn,vn,pr,De,zn,qn,Xn,Me,gr,$t,$e;function Tc(e){return(t=[],n=e.process.cwd(),o)=>{let i=new Jc(t,n,o,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var Oc=Symbol("copyDoubleDash"),vc=Symbol("copyDoubleDash"),Si=Symbol("deleteFromParserHintObject"),kc=Symbol("emitWarning"),Ec=Symbol("freeze"),Fc=Symbol("getDollarZero"),Yn=Symbol("getParserConfiguration"),Dc=Symbol("getUsageConfiguration"),Ci=Symbol("guessLocale"),Mc=Symbol("guessVersion"),Pc=Symbol("parsePositionalNumbers"),Ri=Symbol("pkgUp"),kn=Symbol("populateParserHintArray"),lo=Symbol("populateParserHintSingleValueDictionary"),Oi=Symbol("populateParserHintArrayDictionary"),vi=Symbol("populateParserHintDictionary"),ki=Symbol("sanitizeKey"),Ei=Symbol("setKey"),Fi=Symbol("unfreeze"),Ac=Symbol("validateAsync"),Wc=Symbol("getCommandInstance"),jc=Symbol("getContext"),Lc=Symbol("getHasOutput"),Ic=Symbol("getLoggerInstance"),Bc=Symbol("getParseContext"),Vc=Symbol("getUsageInstance"),Hc=Symbol("getValidationInstance"),br=Symbol("hasParseCallback"),Kc=Symbol("isGlobalContext"),Zn=Symbol("postProcess"),Gc=Symbol("rebase"),Di=Symbol("reset"),Uo=Symbol("runYargsParserAndExecuteCommands"),Mi=Symbol("runValidation"),Uc=Symbol("setHasOutput"),Qn=Symbol("kTrackManuallySetKeys");class Jc{constructor(e=[],t,n,o){this.customScriptName=!1,this.parsed=!1,tt.set(this,void 0),Gn.set(this,void 0),Go.set(this,{commands:[],fullCommands:[]}),jt.set(this,null),kt.set(this,null),lr.set(this,"show-hidden"),On.set(this,null),Un.set(this,!0),fr.set(this,{}),Lt.set(this,!0),ur.set(this,[]),It.set(this,void 0),Nt.set(this,{}),Et.set(this,!1),Bt.set(this,null),dr.set(this,!0),co.set(this,void 0),lt.set(this,""),ve.set(this,void 0),hr.set(this,void 0),mr.set(this,{}),Ft.set(this,null),Tn.set(this,null),ao.set(this,{}),Jn.set(this,{}),vn.set(this,void 0),pr.set(this,!1),De.set(this,void 0),zn.set(this,!1),qn.set(this,!1),Xn.set(this,!1),Me.set(this,void 0),gr.set(this,{}),$t.set(this,null),$e.set(this,void 0),ye(this,De,o,"f"),ye(this,vn,e,"f"),ye(this,Gn,t,"f"),ye(this,hr,n,"f"),ye(this,It,new bi(this),"f"),this.$0=this[Fc](),this[Di](),ye(this,tt,R(this,tt,"f"),"f"),ye(this,Me,R(this,Me,"f"),"f"),ye(this,$e,R(this,$e,"f"),"f"),ye(this,ve,R(this,ve,"f"),"f"),R(this,ve,"f").showHiddenOpt=R(this,lr,"f"),ye(this,co,this[vc](),"f")}addHelpOpt(e,t){if(xe("[string|boolean] [string]",[e,t],arguments.length),R(this,Bt,"f"))this[Si](R(this,Bt,"f")),ye(this,Bt,null,"f");if(e===!1&&t===void 0)return this;return ye(this,Bt,typeof e==="string"?e:"help","f"),this.boolean(R(this,Bt,"f")),this.describe(R(this,Bt,"f"),t||R(this,Me,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(xe("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:R(this,lr,"f");return this.boolean(n),this.describe(n,t||R(this,Me,"f").deferY18nLookup("Show hidden options")),R(this,ve,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return xe("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.alias.bind(this),"alias",e,t),this}array(e){return xe("<array|string>",[e],arguments.length),this[kn]("array",e),this[Qn](e),this}boolean(e){return xe("<array|string>",[e],arguments.length),this[kn]("boolean",e),this[Qn](e),this}check(e,t){return xe("<function> [boolean]",[e,t],arguments.length),this.middleware((n,o)=>{return Kn(()=>{return e(n,o.getOptions())},(i)=>{if(!i)R(this,Me,"f").fail(R(this,De,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)R(this,Me,"f").fail(i.toString(),i);return n},(i)=>{return R(this,Me,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return xe("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(xe("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Je("coerce callback must be provided");for(let n of e)this.coerce(n,t);return this}else if(typeof e==="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new Je("coerce callback must be provided");return R(this,ve,"f").key[e]=!0,R(this,It,"f").addCoerceMiddleware((n,o)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Kn(()=>{return i=o.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=o.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let u of i[e])n[u]=c;return n},(c)=>{throw new Je(c.message)})},e),this}conflicts(e,t){return xe("<string|object> [string|array]",[e,t],arguments.length),R(this,$e,"f").conflicts(e,t),this}config(e="config",t,n){if(xe("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=Ko(e,R(this,Gn,"f"),this[Yn]()["deep-merge-config"]||!1,R(this,De,"f")),R(this,ve,"f").configObjects=(R(this,ve,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||R(this,Me,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((o)=>{R(this,ve,"f").config[o]=n||!0}),this}completion(e,t,n){if(xe("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(ye(this,kt,e||R(this,kt,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command(R(this,kt,"f"),t),n)R(this,jt,"f").registerFunction(n);return this}command(e,t,n,o,i,s){return xe("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,o,i,s],arguments.length),R(this,tt,"f").addHandler(e,t,n,o,i,s),this}commands(e,t,n,o,i,s){return this.command(e,t,n,o,i,s)}commandDir(e,t){xe("<string> [object]",[e,t],arguments.length);let n=R(this,hr,"f")||R(this,De,"f").require;return R(this,tt,"f").addDirectory(e,n,R(this,De,"f").getCallerFile(),t),this}count(e){return xe("<array|string>",[e],arguments.length),this[kn]("count",e),this[Qn](e),this}default(e,t,n){if(xe("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)gi(e,R(this,De,"f")),R(this,ve,"f").defaultDescription[e]=n;if(typeof t==="function"){if(gi(e,R(this,De,"f")),!R(this,ve,"f").defaultDescription[e])R(this,ve,"f").defaultDescription[e]=R(this,Me,"f").functionDescription(t);t=t.call()}return this[lo](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,o){if(xe("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,o],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),R(this,ve,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:o},this}demand(e,t,n){if(Array.isArray(t))t.forEach((o)=>{wt(n,!0,R(this,De,"f")),this.demandOption(o,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")wt(n,!0,R(this,De,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((o)=>{wt(n,!0,R(this,De,"f")),this.demandOption(o,n)});else if(typeof n==="string")this.demandOption(e,n);else if(n===!0||typeof n>"u")this.demandOption(e);return this}demandOption(e,t){return xe("<object|string|array> [string]",[e,t],arguments.length),this[lo](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return xe("<string> [string|boolean]",[e,t],arguments.length),R(this,ve,"f").deprecatedOptions[e]=t,this}describe(e,t){return xe("<object|string|array> [string]",[e,t],arguments.length),this[Ei](e,!0),R(this,Me,"f").describe(e,t),this}detectLocale(e){return xe("<boolean>",[e],arguments.length),ye(this,Un,e,"f"),this}env(e){if(xe("[string|boolean]",[e],arguments.length),e===!1)delete R(this,ve,"f").envPrefix;else R(this,ve,"f").envPrefix=e||"";return this}epilogue(e){return xe("<string>",[e],arguments.length),R(this,Me,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(xe("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else R(this,Me,"f").example(e,t);return this}exit(e,t){if(ye(this,Et,!0,"f"),ye(this,On,t,"f"),R(this,Lt,"f"))R(this,De,"f").process.exit(e)}exitProcess(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,Lt,e,"f"),this}fail(e){if(xe("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Je("Invalid first argument. Expected function or boolean 'false'");return R(this,Me,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(xe("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,o)=>{R(this,jt,"f").getCompletion(e,(i,s)=>{if(i)o(i);else n(s)})});else return R(this,jt,"f").getCompletion(e,t)}getDemandedOptions(){return xe([],0),R(this,ve,"f").demandedOptions}getDemandedCommands(){return xe([],0),R(this,ve,"f").demandedCommands}getDeprecatedOptions(){return xe([],0),R(this,ve,"f").deprecatedOptions}getDetectLocale(){return R(this,Un,"f")}getExitProcess(){return R(this,Lt,"f")}getGroups(){return Object.assign({},R(this,Nt,"f"),R(this,Jn,"f"))}getHelp(){if(ye(this,Et,!0,"f"),!R(this,Me,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Uo](R(this,vn,"f"),void 0,void 0,0,!0);if(ze(t))return t.then(()=>{return R(this,Me,"f").help()})}let e=R(this,tt,"f").runDefaultBuilderOn(this);if(ze(e))return e.then(()=>{return R(this,Me,"f").help()})}return Promise.resolve(R(this,Me,"f").help())}getOptions(){return R(this,ve,"f")}getStrict(){return R(this,zn,"f")}getStrictCommands(){return R(this,qn,"f")}getStrictOptions(){return R(this,Xn,"f")}global(e,t){if(xe("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)R(this,ve,"f").local=R(this,ve,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!R(this,ve,"f").local.includes(n))R(this,ve,"f").local.push(n)});return this}group(e,t){xe("<string|array> <string>",[e,t],arguments.length);let n=R(this,Jn,"f")[t]||R(this,Nt,"f")[t];if(R(this,Jn,"f")[t])delete R(this,Jn,"f")[t];let o={};return R(this,Nt,"f")[t]=(n||[]).concat(e).filter((i)=>{if(o[i])return!1;return o[i]=!0}),this}hide(e){return xe("<string>",[e],arguments.length),R(this,ve,"f").hiddenOptions.push(e),this}implies(e,t){return xe("<string|object> [number|string|array]",[e,t],arguments.length),R(this,$e,"f").implies(e,t),this}locale(e){if(xe("[string]",[e],arguments.length),e===void 0)return this[Ci](),R(this,De,"f").y18n.getLocale();return ye(this,Un,!1,"f"),R(this,De,"f").y18n.setLocale(e),this}middleware(e,t,n){return R(this,It,"f").addMiddleware(e,!!t,n)}nargs(e,t){return xe("<string|object|array> [number]",[e,t],arguments.length),this[lo](this.nargs.bind(this),"narg",e,t),this}normalize(e){return xe("<array|string>",[e],arguments.length),this[kn]("normalize",e),this}number(e){return xe("<array|string>",[e],arguments.length),this[kn]("number",e),this[Qn](e),this}option(e,t){if(xe("<string|object> [object]",[e,t],arguments.length),typeof e==="object")Object.keys(e).forEach((n)=>{this.options(n,e[n])});else{if(typeof t!=="object")t={};if(this[Qn](e),R(this,$t,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[kc](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
224
- `),void 0,"versionWarning");if(R(this,ve,"f").key[e]=!0,t.alias)this.alias(e,t.alias);let n=t.deprecate||t.deprecated;if(n)this.deprecateOption(e,n);let o=t.demand||t.required||t.require;if(o)this.demand(e,o);if(t.demandOption)this.demandOption(e,typeof t.demandOption==="string"?t.demandOption:void 0);if(t.conflicts)this.conflicts(e,t.conflicts);if("default"in t)this.default(e,t.default);if(t.implies!==void 0)this.implies(e,t.implies);if(t.nargs!==void 0)this.nargs(e,t.nargs);if(t.config)this.config(e,t.configParser);if(t.normalize)this.normalize(e);if(t.choices)this.choices(e,t.choices);if(t.coerce)this.coerce(e,t.coerce);if(t.group)this.group(e,t.group);if(t.boolean||t.type==="boolean"){if(this.boolean(e),t.alias)this.boolean(t.alias)}if(t.array||t.type==="array"){if(this.array(e),t.alias)this.array(t.alias)}if(t.number||t.type==="number"){if(this.number(e),t.alias)this.number(t.alias)}if(t.string||t.type==="string"){if(this.string(e),t.alias)this.string(t.alias)}if(t.count||t.type==="count")this.count(e);if(typeof t.global==="boolean")this.global(e,t.global);if(t.defaultDescription)R(this,ve,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,s=R(this,Me,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(s,e)||typeof i==="string")this.describe(e,i);if(t.hidden)this.hide(e);if(t.requiresArg)this.requiresArg(e)}return this}options(e,t){return this.option(e,t)}parse(e,t,n){if(xe("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[Ec](),typeof e>"u")e=R(this,vn,"f");if(typeof t==="object")ye(this,Tn,t,"f"),t=n;if(typeof t==="function")ye(this,Ft,t,"f"),t=!1;if(!t)ye(this,vn,e,"f");if(R(this,Ft,"f"))ye(this,Lt,!1,"f");let o=this[Uo](e,!!t),i=this.parsed;if(R(this,jt,"f").setParsed(this.parsed),ze(o))return o.then((s)=>{if(R(this,Ft,"f"))R(this,Ft,"f").call(this,R(this,On,"f"),s,R(this,lt,"f"));return s}).catch((s)=>{if(R(this,Ft,"f"))R(this,Ft,"f")(s,this.parsed.argv,R(this,lt,"f"));throw s}).finally(()=>{this[Fi](),this.parsed=i});else{if(R(this,Ft,"f"))R(this,Ft,"f").call(this,R(this,On,"f"),o,R(this,lt,"f"));this[Fi](),this.parsed=i}return o}parseAsync(e,t,n){let o=this.parse(e,t,n);return!ze(o)?Promise.resolve(o):o}parseSync(e,t,n){let o=this.parse(e,t,n);if(ze(o))throw new Je(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return o}parserConfiguration(e){return xe("<object>",[e],arguments.length),ye(this,mr,e,"f"),this}pkgConf(e,t){xe("<string> [string]",[e,t],arguments.length);let n=null,o=this[Ri](t||R(this,Gn,"f"));if(o[e]&&typeof o[e]==="object")n=Ko(o[e],t||R(this,Gn,"f"),this[Yn]()["deep-merge-config"]||!1,R(this,De,"f")),R(this,ve,"f").configObjects=(R(this,ve,"f").configObjects||[]).concat(n);return this}positional(e,t){xe("<string> <object>",[e,t],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];t=Cn(t,(s,c)=>{if(s==="type"&&!["string","number","boolean"].includes(c))return!1;return n.includes(s)});let o=R(this,Go,"f").fullCommands[R(this,Go,"f").fullCommands.length-1],i=o?R(this,tt,"f").cmdToParseOptions(o):{array:[],alias:{},default:{},demand:{}};return io(i).forEach((s)=>{let c=i[s];if(Array.isArray(c)){if(c.indexOf(e)!==-1)t[s]=!0}else if(c[e]&&!(s in t))t[s]=c[e]}),this.group(e,R(this,Me,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,pr,e,"f"),this}required(e,t,n){return this.demand(e,t,n)}require(e,t,n){return this.demand(e,t,n)}requiresArg(e){if(xe("<array|string|object> [number]",[e],arguments.length),typeof e==="string"&&R(this,ve,"f").narg[e])return this;else this[lo](this.requiresArg.bind(this),"narg",e,NaN);return this}showCompletionScript(e,t){return xe("[string] [string]",[e,t],arguments.length),e=e||this.$0,R(this,co,"f").log(R(this,jt,"f").generateCompletionScript(e,t||R(this,kt,"f")||"completion")),this}showHelp(e){if(xe("[string|function]",[e],arguments.length),ye(this,Et,!0,"f"),!R(this,Me,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Uo](R(this,vn,"f"),void 0,void 0,0,!0);if(ze(n))return n.then(()=>{R(this,Me,"f").showHelp(e)}),this}let t=R(this,tt,"f").runDefaultBuilderOn(this);if(ze(t))return t.then(()=>{R(this,Me,"f").showHelp(e)}),this}return R(this,Me,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return xe("[boolean|string] [string]",[e,t],arguments.length),R(this,Me,"f").showHelpOnFail(e,t),this}showVersion(e){return xe("[string|function]",[e],arguments.length),R(this,Me,"f").showVersion(e),this}skipValidation(e){return xe("<array|string>",[e],arguments.length),this[kn]("skipValidation",e),this}strict(e){return xe("[boolean]",[e],arguments.length),ye(this,zn,e!==!1,"f"),this}strictCommands(e){return xe("[boolean]",[e],arguments.length),ye(this,qn,e!==!1,"f"),this}strictOptions(e){return xe("[boolean]",[e],arguments.length),ye(this,Xn,e!==!1,"f"),this}string(e){return xe("<array|string>",[e],arguments.length),this[kn]("string",e),this[Qn](e),this}terminalWidth(){return xe([],0),R(this,De,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return xe("<object>",[e],arguments.length),ye(this,Un,!1,"f"),R(this,De,"f").y18n.updateLocale(e),this}usage(e,t,n,o){if(xe("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,o],arguments.length),t!==void 0)if(wt(e,null,R(this,De,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,o);else throw new Je(".usage() description must start with $0 if being used as alias for .command()");else return R(this,Me,"f").usage(e),this}usageConfiguration(e){return xe("<object>",[e],arguments.length),ye(this,gr,e,"f"),this}version(e,t,n){if(xe("[boolean|string] [string] [string]",[e,t,n],arguments.length),R(this,$t,"f"))this[Si](R(this,$t,"f")),R(this,Me,"f").version(void 0),ye(this,$t,null,"f");if(arguments.length===0)n=this[Mc](),e="version";else if(arguments.length===1){if(e===!1)return this;n=e,e="version"}else if(arguments.length===2)n=t,t=void 0;return ye(this,$t,typeof e==="string"?e:"version","f"),t=t||R(this,Me,"f").deferY18nLookup("Show version number"),R(this,Me,"f").version(n||void 0),this.boolean(R(this,$t,"f")),this.describe(R(this,$t,"f"),t),this}wrap(e){return xe("<number|null|undefined>",[e],arguments.length),R(this,Me,"f").wrap(e),this}[(tt=new WeakMap,Gn=new WeakMap,Go=new WeakMap,jt=new WeakMap,kt=new WeakMap,lr=new WeakMap,On=new WeakMap,Un=new WeakMap,fr=new WeakMap,Lt=new WeakMap,ur=new WeakMap,It=new WeakMap,Nt=new WeakMap,Et=new WeakMap,Bt=new WeakMap,dr=new WeakMap,co=new WeakMap,lt=new WeakMap,ve=new WeakMap,hr=new WeakMap,mr=new WeakMap,Ft=new WeakMap,Tn=new WeakMap,ao=new WeakMap,Jn=new WeakMap,vn=new WeakMap,pr=new WeakMap,De=new WeakMap,zn=new WeakMap,qn=new WeakMap,Xn=new WeakMap,Me=new WeakMap,gr=new WeakMap,$t=new WeakMap,$e=new WeakMap,Oc)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch(t){}return e}[vc](){return{log:(...e)=>{if(!this[br]())console.log(...e);if(ye(this,Et,!0,"f"),R(this,lt,"f").length)ye(this,lt,R(this,lt,"f")+`
225
- `,"f");ye(this,lt,R(this,lt,"f")+e.join(" "),"f")},error:(...e)=>{if(!this[br]())console.error(...e);if(ye(this,Et,!0,"f"),R(this,lt,"f").length)ye(this,lt,R(this,lt,"f")+`
226
- `,"f");ye(this,lt,R(this,lt,"f")+e.join(" "),"f")}}}[Si](e){io(R(this,ve,"f")).forEach((t)=>{if(((o)=>o==="configObjects")(t))return;let n=R(this,ve,"f")[t];if(Array.isArray(n)){if(n.includes(e))n.splice(n.indexOf(e),1)}else if(typeof n==="object")delete n[e]}),delete R(this,Me,"f").getDescriptions()[e]}[kc](e,t,n){if(!R(this,fr,"f")[n])R(this,De,"f").process.emitWarning(e,t),R(this,fr,"f")[n]=!0}[Ec](){R(this,ur,"f").push({options:R(this,ve,"f"),configObjects:R(this,ve,"f").configObjects.slice(0),exitProcess:R(this,Lt,"f"),groups:R(this,Nt,"f"),strict:R(this,zn,"f"),strictCommands:R(this,qn,"f"),strictOptions:R(this,Xn,"f"),completionCommand:R(this,kt,"f"),output:R(this,lt,"f"),exitError:R(this,On,"f"),hasOutput:R(this,Et,"f"),parsed:this.parsed,parseFn:R(this,Ft,"f"),parseContext:R(this,Tn,"f")}),R(this,Me,"f").freeze(),R(this,$e,"f").freeze(),R(this,tt,"f").freeze(),R(this,It,"f").freeze()}[Fc](){let e="",t;if(/\b(node|iojs|electron)(\.exe)?$/.test(R(this,De,"f").process.argv()[0]))t=R(this,De,"f").process.argv().slice(1,2);else t=R(this,De,"f").process.argv().slice(0,1);if(e=t.map((n)=>{let o=this[Gc](R(this,Gn,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),R(this,De,"f").getEnv("_")&&R(this,De,"f").getProcessArgvBin()===R(this,De,"f").getEnv("_"))e=R(this,De,"f").getEnv("_").replace(`${R(this,De,"f").path.dirname(R(this,De,"f").process.execPath())}/`,"");return e}[Yn](){return R(this,mr,"f")}[Dc](){return R(this,gr,"f")}[Ci](){if(!R(this,Un,"f"))return;let e=R(this,De,"f").getEnv("LC_ALL")||R(this,De,"f").getEnv("LC_MESSAGES")||R(this,De,"f").getEnv("LANG")||R(this,De,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Mc](){return this[Ri]().version||"unknown"}[Pc](e){let t=e["--"]?e["--"]:e._;for(let n=0,o;(o=t[n])!==void 0;n++)if(R(this,De,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`))))t[n]=Number(o);return e}[Ri](e){let t=e||"*";if(R(this,ao,"f")[t])return R(this,ao,"f")[t];let n={};try{let o=e||R(this,De,"f").mainFilename;if(!e&&R(this,De,"f").path.extname(o))o=R(this,De,"f").path.dirname(o);let i=R(this,De,"f").findUp(o,(s,c)=>{if(c.includes("package.json"))return"package.json";else return});wt(i,void 0,R(this,De,"f")),n=JSON.parse(R(this,De,"f").readFileSync(i,"utf8"))}catch(o){}return R(this,ao,"f")[t]=n||{},R(this,ao,"f")[t]}[kn](e,t){t=[].concat(t),t.forEach((n)=>{n=this[ki](n),R(this,ve,"f")[e].push(n)})}[lo](e,t,n,o){this[vi](e,t,n,o,(i,s,c)=>{R(this,ve,"f")[i][s]=c})}[Oi](e,t,n,o){this[vi](e,t,n,o,(i,s,c)=>{R(this,ve,"f")[i][s]=(R(this,ve,"f")[i][s]||[]).concat(c)})}[vi](e,t,n,o,i){if(Array.isArray(n))n.forEach((s)=>{e(s,o)});else if(((s)=>typeof s==="object")(n))for(let s of io(n))e(s,n[s]);else i(t,this[ki](n),o)}[ki](e){if(e==="__proto__")return"___proto___";return e}[Ei](e,t){return this[lo](this[Ei].bind(this),"key",e,t),this}[Fi](){var e,t,n,o,i,s,c,a,u,h,m,p;let w=R(this,ur,"f").pop();wt(w,void 0,R(this,De,"f"));let A;e=this,t=this,n=this,o=this,i=this,s=this,c=this,a=this,u=this,h=this,m=this,p=this,{options:{set value(W){ye(e,ve,W,"f")}}.value,configObjects:A,exitProcess:{set value(W){ye(t,Lt,W,"f")}}.value,groups:{set value(W){ye(n,Nt,W,"f")}}.value,output:{set value(W){ye(o,lt,W,"f")}}.value,exitError:{set value(W){ye(i,On,W,"f")}}.value,hasOutput:{set value(W){ye(s,Et,W,"f")}}.value,parsed:this.parsed,strict:{set value(W){ye(c,zn,W,"f")}}.value,strictCommands:{set value(W){ye(a,qn,W,"f")}}.value,strictOptions:{set value(W){ye(u,Xn,W,"f")}}.value,completionCommand:{set value(W){ye(h,kt,W,"f")}}.value,parseFn:{set value(W){ye(m,Ft,W,"f")}}.value,parseContext:{set value(W){ye(p,Tn,W,"f")}}.value}=w,R(this,ve,"f").configObjects=A,R(this,Me,"f").unfreeze(),R(this,$e,"f").unfreeze(),R(this,tt,"f").unfreeze(),R(this,It,"f").unfreeze()}[Ac](e,t){return Kn(t,(n)=>{return e(n),n})}getInternalMethods(){return{getCommandInstance:this[Wc].bind(this),getContext:this[jc].bind(this),getHasOutput:this[Lc].bind(this),getLoggerInstance:this[Ic].bind(this),getParseContext:this[Bc].bind(this),getParserConfiguration:this[Yn].bind(this),getUsageConfiguration:this[Dc].bind(this),getUsageInstance:this[Vc].bind(this),getValidationInstance:this[Hc].bind(this),hasParseCallback:this[br].bind(this),isGlobalContext:this[Kc].bind(this),postProcess:this[Zn].bind(this),reset:this[Di].bind(this),runValidation:this[Mi].bind(this),runYargsParserAndExecuteCommands:this[Uo].bind(this),setHasOutput:this[Uc].bind(this)}}[Wc](){return R(this,tt,"f")}[jc](){return R(this,Go,"f")}[Lc](){return R(this,Et,"f")}[Ic](){return R(this,co,"f")}[Bc](){return R(this,Tn,"f")||{}}[Vc](){return R(this,Me,"f")}[Hc](){return R(this,$e,"f")}[br](){return!!R(this,Ft,"f")}[Kc](){return R(this,dr,"f")}[Zn](e,t,n,o){if(n)return e;if(ze(e))return e;if(!t)e=this[Oc](e);if(this[Yn]()["parse-positional-numbers"]||this[Yn]()["parse-positional-numbers"]===void 0)e=this[Pc](e);if(o)e=Hn(e,this,R(this,It,"f").getMiddleware(),!1);return e}[Di](e={}){ye(this,ve,R(this,ve,"f")||{},"f");let t={};t.local=R(this,ve,"f").local||[],t.configObjects=R(this,ve,"f").configObjects||[];let n={};t.local.forEach((s)=>{n[s]=!0,(e[s]||[]).forEach((c)=>{n[c]=!0})}),Object.assign(R(this,Jn,"f"),Object.keys(R(this,Nt,"f")).reduce((s,c)=>{let a=R(this,Nt,"f")[c].filter((u)=>!(u in n));if(a.length>0)s[c]=a;return s},{})),ye(this,Nt,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],i=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(o.forEach((s)=>{t[s]=(R(this,ve,"f")[s]||[]).filter((c)=>!n[c])}),i.forEach((s)=>{t[s]=Cn(R(this,ve,"f")[s],(c)=>!n[c])}),t.envPrefix=R(this,ve,"f").envPrefix,ye(this,ve,t,"f"),ye(this,Me,R(this,Me,"f")?R(this,Me,"f").reset(n):pc(this,R(this,De,"f")),"f"),ye(this,$e,R(this,$e,"f")?R(this,$e,"f").reset(n):Cc(this,R(this,Me,"f"),R(this,De,"f")),"f"),ye(this,tt,R(this,tt,"f")?R(this,tt,"f").reset():dc(R(this,Me,"f"),R(this,$e,"f"),R(this,It,"f"),R(this,De,"f")),"f"),!R(this,jt,"f"))ye(this,jt,xc(this,R(this,Me,"f"),R(this,tt,"f"),R(this,De,"f")),"f");return R(this,It,"f").reset(),ye(this,kt,null,"f"),ye(this,lt,"","f"),ye(this,On,null,"f"),ye(this,Et,!1,"f"),this.parsed=!1,this}[Gc](e,t){return R(this,De,"f").path.relative(e,t)}[Uo](e,t,n,o=0,i=!1){let s=!!n||i;e=e||R(this,vn,"f"),R(this,ve,"f").__=R(this,De,"f").y18n.__,R(this,ve,"f").configuration=this[Yn]();let c=!!R(this,ve,"f").configuration["populate--"],a=Object.assign({},R(this,ve,"f").configuration,{"populate--":!0}),u=R(this,De,"f").Parser.detailed(e,Object.assign({},R(this,ve,"f"),{configuration:{"parse-positional-numbers":!1,...a}})),h=Object.assign(u.argv,R(this,Tn,"f")),m=void 0,p=u.aliases,w=!1,A=!1;if(Object.keys(h).forEach((W)=>{if(W===R(this,Bt,"f")&&h[W])w=!0;else if(W===R(this,$t,"f")&&h[W])A=!0}),h.$0=this.$0,this.parsed=u,o===0)R(this,Me,"f").clearCachedHelpMessage();try{if(this[Ci](),t)return this[Zn](h,c,!!n,!1);if(R(this,Bt,"f")){if([R(this,Bt,"f")].concat(p[R(this,Bt,"f")]||[]).filter((F)=>F.length>1).includes(""+h._[h._.length-1]))h._.pop(),w=!0}ye(this,dr,!1,"f");let W=R(this,tt,"f").getCommands(),y=R(this,jt,"f").completionKey in h,C=w||y||i;if(h._.length){if(W.length){let k;for(let F=o||0,x;h._[F]!==void 0;F++)if(x=String(h._[F]),W.includes(x)&&x!==R(this,kt,"f")){let S=R(this,tt,"f").runCommand(x,this,u,F+1,i,w||A||i);return this[Zn](S,c,!!n,!1)}else if(!k&&x!==R(this,kt,"f")){k=x;break}if(!R(this,tt,"f").hasDefaultCommand()&&R(this,pr,"f")&&k&&!C)R(this,$e,"f").recommendCommands(k,W)}if(R(this,kt,"f")&&h._.includes(R(this,kt,"f"))&&!y){if(R(this,Lt,"f"))Rn(!0);this.showCompletionScript(),this.exit(0)}}if(R(this,tt,"f").hasDefaultCommand()&&!C){let k=R(this,tt,"f").runCommand(null,this,u,0,i,w||A||i);return this[Zn](k,c,!!n,!1)}if(y){if(R(this,Lt,"f"))Rn(!0);e=[].concat(e);let k=e.slice(e.indexOf(`--${R(this,jt,"f").completionKey}`)+1);return R(this,jt,"f").getCompletion(k,(F,x)=>{if(F)throw new Je(F.message);(x||[]).forEach((S)=>{R(this,co,"f").log(S)}),this.exit(0)}),this[Zn](h,!c,!!n,!1)}if(!R(this,Et,"f")){if(w){if(R(this,Lt,"f"))Rn(!0);s=!0,this.showHelp("log"),this.exit(0)}else if(A){if(R(this,Lt,"f"))Rn(!0);s=!0,R(this,Me,"f").showVersion("log"),this.exit(0)}}if(!s&&R(this,ve,"f").skipValidation.length>0)s=Object.keys(h).some((k)=>R(this,ve,"f").skipValidation.indexOf(k)>=0&&h[k]===!0);if(!s){if(u.error)throw new Je(u.error.message);if(!y){let k=this[Mi](p,{},u.error);if(!n)m=Hn(h,this,R(this,It,"f").getMiddleware(),!0);if(m=this[Ac](k,m!==null&&m!==void 0?m:h),ze(m)&&!n)m=m.then(()=>{return Hn(h,this,R(this,It,"f").getMiddleware(),!1)})}}}catch(W){if(W instanceof Je)R(this,Me,"f").fail(W.message,W);else throw W}return this[Zn](m!==null&&m!==void 0?m:h,c,!!n,!0)}[Mi](e,t,n,o){let i={...this.getDemandedOptions()};return(s)=>{if(n)throw new Je(n.message);R(this,$e,"f").nonOptionCount(s),R(this,$e,"f").requiredArguments(s,i);let c=!1;if(R(this,qn,"f"))c=R(this,$e,"f").unknownCommands(s);if(R(this,zn,"f")&&!c)R(this,$e,"f").unknownArguments(s,e,t,!!o);else if(R(this,Xn,"f"))R(this,$e,"f").unknownArguments(s,e,{},!1,!1);R(this,$e,"f").limitedChoices(s),R(this,$e,"f").implications(s),R(this,$e,"f").conflicting(s)}}[Uc](){ye(this,Et,!0,"f")}[Qn](e){if(typeof e==="string")R(this,ve,"f").key[e]=!0;else for(let t of e)R(this,ve,"f").key[t]=!0}}function hc(e){return!!e&&typeof e.getInternalMethods==="function"}var Dd=Tc(pi),zc=Dd;qe();import{readFileSync as Lu}from"fs";import{join as Vs}from"path";function Kb(){let e=import.meta.dir;for(let t=0;t<5;t++){let n=Vs(e,"package.json");try{return Lu(n,"utf-8"),n}catch{}e=Vs(e,"..")}return Vs(import.meta.dir,"../../package.json")}var Gb=JSON.parse(Lu(Kb(),"utf-8")),Ub=process.argv[2]==="init";if(!Ub)try{let e=oa();if(e.created&&process.stdout.isTTY)process.stderr.write(`copse: created default config at ${e.path}
227
- `)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (df(),uf));await e()}else{let[e,t,n,o,i,s,c,a,u,h,m,p,w,A,W,y,C,k,F,x]=await Promise.all([Promise.resolve().then(() => (pf(),mf)),Promise.resolve().then(() => (bf(),gf)),Promise.resolve().then(() => (yf(),xf)),Promise.resolve().then(() => (Cf(),Sf)),Promise.resolve().then(() => (Ef(),kf)),Promise.resolve().then(() => (Lf(),jf)),Promise.resolve().then(() => (Bf(),If)),Promise.resolve().then(() => (Gf(),Kf)),Promise.resolve().then(() => (Jf(),Tf)),Promise.resolve().then(() => (Yf(),Xf)),Promise.resolve().then(() => (Nf(),Qf)),Promise.resolve().then(() => (_f(),$f)),Promise.resolve().then(() => (tu(),eu)),Promise.resolve().then(() => (ou(),nu)),Promise.resolve().then(() => (hu(),du)),Promise.resolve().then(() => (pu(),mu)),Promise.resolve().then(() => (bu(),gu)),Promise.resolve().then(() => (Ou(),Ru)),Promise.resolve().then(() => (ku(),vu)),Promise.resolve().then(() => (ju(),Wu))]);zc(mi(process.argv)).locale("en").scriptName("copse").version(`copse v${Gb.version}`).alias("version","v").help("help").alias("help","h").option("no-color",{type:"boolean",description:"Disable color output"}).command(e.default).command(t.default).command(n.default).command(o.default).command(i.default).command(s.default).command(c.default).command(a.default).command(u.default).command(h.default).command(m.default).command(p.default).command(w.default).command(A.default).command(W.default).command(y.default).command(C.default).command(k.default).command(F.default).command(x.default).completion("completion","Generate shell completion script").demandCommand(1,"Please specify a command. Run --help to see available commands.").strict().parse()}
221
+ `)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(D).length,Object.keys(D).join(", ")+b))}},r.unknownArguments=function(p,x,D,W,b=!0){var R;let v=e.getInternalMethods().getCommandInstance().getCommands(),k=[],S=e.getInternalMethods().getContext();if(Object.keys(p).forEach((y)=>{if(!Dc.includes(y)&&!Object.prototype.hasOwnProperty.call(D,y)&&!Object.prototype.hasOwnProperty.call(e.getInternalMethods().getParseContext(),y)&&!r.isValidAndSomeAliasIsNotNew(y,x))k.push(y)}),b&&(S.commands.length>0||v.length>0||W))p._.slice(S.commands.length).forEach((y)=>{if(!v.includes(""+y))k.push(""+y)});if(b){let O=((R=e.getDemandedCommands()._)===null||R===void 0?void 0:R.max)||0,B=S.commands.length+O;if(B<p._.length)p._.slice(B).forEach((I)=>{if(I=String(I),!S.commands.includes(I)&&!k.includes(I))k.push(I)})}if(k.length)t.fail(i("Unknown argument: %s","Unknown arguments: %s",k.length,k.map((y)=>y.trim()?y:`"${y}"`).join(", ")))},r.unknownCommands=function(p){let x=e.getInternalMethods().getCommandInstance().getCommands(),D=[],W=e.getInternalMethods().getContext();if(W.commands.length>0||x.length>0)p._.slice(W.commands.length).forEach((b)=>{if(!x.includes(""+b))D.push(""+b)});if(D.length>0)return t.fail(i("Unknown command: %s","Unknown commands: %s",D.length,D.join(", "))),!0;else return!1},r.isValidAndSomeAliasIsNotNew=function(p,x){if(!Object.prototype.hasOwnProperty.call(x,p))return!1;let D=e.parsed.newAliases;return[p,...x[p]].some((W)=>!Object.prototype.hasOwnProperty.call(D,W)||!D[p])},r.limitedChoices=function(p){let x=e.getOptions(),D={};if(!Object.keys(x.choices).length)return;Object.keys(p).forEach((R)=>{if(Dc.indexOf(R)===-1&&Object.prototype.hasOwnProperty.call(x.choices,R))[].concat(p[R]).forEach((v)=>{if(x.choices[R].indexOf(v)===-1&&v!==void 0)D[R]=(D[R]||[]).concat(v)})});let W=Object.keys(D);if(!W.length)return;let b=o("Invalid values:");W.forEach((R)=>{b+=`
222
+ ${o("Argument: %s, Given: %s, Choices: %s",R,t.stringifiedValues(D[R]),t.stringifiedValues(x.choices[R]))}`}),t.fail(b)};let c={};r.implies=function(p,x){if(ge("<string|object> [array|number|string]",[p,x],arguments.length),typeof p==="object")Object.keys(p).forEach((D)=>{r.implies(D,p[D])});else{if(e.global(p),!c[p])c[p]=[];if(Array.isArray(x))x.forEach((D)=>r.implies(p,D));else gt(x,void 0,n),c[p].push(x)}},r.getImplied=function(){return c};function a(m,p){let x=Number(p);if(p=isNaN(x)?p:x,typeof p==="number")p=m._.length>=p;else if(p.match(/^--no-.+/))p=p.match(/^--no-(.+)/)[1],p=!Object.prototype.hasOwnProperty.call(m,p);else p=Object.prototype.hasOwnProperty.call(m,p);return p}r.implications=function(p){let x=[];if(Object.keys(c).forEach((D)=>{let W=D;(c[D]||[]).forEach((b)=>{let R=W,v=b;if(R=a(p,R),b=a(p,b),R&&!b)x.push(` ${W} -> ${v}`)})}),x.length){let D=`${o("Implications failed:")}
223
+ `;x.forEach((W)=>{D+=W}),t.fail(D)}};let u={};r.conflicts=function(p,x){if(ge("<string|object> [array|string]",[p,x],arguments.length),typeof p==="object")Object.keys(p).forEach((D)=>{r.conflicts(D,p[D])});else{if(e.global(p),!u[p])u[p]=[];if(Array.isArray(x))x.forEach((D)=>r.conflicts(p,D));else u[p].push(x)}},r.getConflicting=()=>u,r.conflicting=function(p){if(Object.keys(p).forEach((x)=>{if(u[x])u[x].forEach((D)=>{if(D&&p[x]!==void 0&&p[D]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",x,D))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(u).forEach((x)=>{u[x].forEach((D)=>{if(D&&p[n.Parser.camelCase(x)]!==void 0&&p[n.Parser.camelCase(D)]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",x,D))})})},r.recommendCommands=function(p,x){x=x.sort((R,v)=>v.length-R.length);let W=null,b=1/0;for(let R=0,v;(v=x[R])!==void 0;R++){let k=Ec(p,v);if(k<=3&&k<b)b=k,W=v}if(W)t.fail(o("Did you mean %s?",W))},r.reset=function(p){return c=Rn(c,(x)=>!p[x]),u=Rn(u,(x)=>!p[x]),r};let d=[];return r.freeze=function(){d.push({implied:c,conflicting:u})},r.unfreeze=function(){let p=d.pop();gt(p,void 0,n),{implied:c,conflicting:u}=p},r}var yi=[],Bo;function Vo(e,t,n,o){Bo=o;let i={};if(Object.prototype.hasOwnProperty.call(e,"extends")){if(typeof e.extends!=="string")return i;let r=/\.json|\..*rc$/.test(e.extends),c=null;if(!r)try{c=cn.resolve(e.extends)}catch(a){return e}else c=Xd(t,e.extends);qd(c),yi.push(c),i=r?JSON.parse(Bo.readFileSync(c,"utf8")):cn(e.extends),delete e.extends,i=Vo(i,Bo.path.dirname(c),n,Bo)}return yi=[],n?Pc(i,e):Object.assign({},i,e)}function qd(e){if(yi.indexOf(e)>-1)throw new Ue(`Circular extended configurations: '${e}'.`)}function Xd(e,t){return Bo.path.resolve(e,t)}function Pc(e,t){let n={};function o(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(o(t[i])&&o(n[i]))n[i]=Pc(e[i],t[i]);else n[i]=t[i];return n}var be=function(e,t,n,o,i){if(o==="m")throw TypeError("Private method is not writable");if(o==="a"&&!i)throw TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!i:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},C=function(e,t,n,o){if(n==="a"&&!o)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?o:n==="a"?o.call(e):o?o.value:t.get(e)},et,zn,Ko,jt,Et,lr,vn,qn,fr,Tt,ur,Ht,$t,Dt,Bt,dr,uo,ct,Ce,hr,mr,Ft,Xn,ho,Yn,kn,pr,ve,Zn,Qn,Nn,Ee,gr,_t,Qe;function Qc(e){return(t=[],n=e.process.cwd(),o)=>{let i=new Nc(t,n,o,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var Mc=Symbol("copyDoubleDash"),Ac=Symbol("copyDoubleDash"),Si=Symbol("deleteFromParserHintObject"),Wc=Symbol("emitWarning"),Lc=Symbol("freeze"),Ic=Symbol("getDollarZero"),$n=Symbol("getParserConfiguration"),jc=Symbol("getUsageConfiguration"),Ci=Symbol("guessLocale"),Tc=Symbol("guessVersion"),Hc=Symbol("parsePositionalNumbers"),Ri=Symbol("pkgUp"),En=Symbol("populateParserHintArray"),mo=Symbol("populateParserHintSingleValueDictionary"),Oi=Symbol("populateParserHintArrayDictionary"),vi=Symbol("populateParserHintDictionary"),ki=Symbol("sanitizeKey"),Ei=Symbol("setKey"),Di=Symbol("unfreeze"),Bc=Symbol("validateAsync"),Vc=Symbol("getCommandInstance"),Kc=Symbol("getContext"),Gc=Symbol("getHasOutput"),Uc=Symbol("getLoggerInstance"),Jc=Symbol("getParseContext"),zc=Symbol("getUsageInstance"),qc=Symbol("getValidationInstance"),br=Symbol("hasParseCallback"),Xc=Symbol("isGlobalContext"),_n=Symbol("postProcess"),Yc=Symbol("rebase"),Fi=Symbol("reset"),Go=Symbol("runYargsParserAndExecuteCommands"),Pi=Symbol("runValidation"),Zc=Symbol("setHasOutput"),eo=Symbol("kTrackManuallySetKeys");class Nc{constructor(e=[],t,n,o){this.customScriptName=!1,this.parsed=!1,et.set(this,void 0),zn.set(this,void 0),Ko.set(this,{commands:[],fullCommands:[]}),jt.set(this,null),Et.set(this,null),lr.set(this,"show-hidden"),vn.set(this,null),qn.set(this,!0),fr.set(this,{}),Tt.set(this,!0),ur.set(this,[]),Ht.set(this,void 0),$t.set(this,{}),Dt.set(this,!1),Bt.set(this,null),dr.set(this,!0),uo.set(this,void 0),ct.set(this,""),Ce.set(this,void 0),hr.set(this,void 0),mr.set(this,{}),Ft.set(this,null),Xn.set(this,null),ho.set(this,{}),Yn.set(this,{}),kn.set(this,void 0),pr.set(this,!1),ve.set(this,void 0),Zn.set(this,!1),Qn.set(this,!1),Nn.set(this,!1),Ee.set(this,void 0),gr.set(this,{}),_t.set(this,null),Qe.set(this,void 0),be(this,ve,o,"f"),be(this,kn,e,"f"),be(this,zn,t,"f"),be(this,hr,n,"f"),be(this,Ht,new bi(this),"f"),this.$0=this[Ic](),this[Fi](),be(this,et,C(this,et,"f"),"f"),be(this,Ee,C(this,Ee,"f"),"f"),be(this,Qe,C(this,Qe,"f"),"f"),be(this,Ce,C(this,Ce,"f"),"f"),C(this,Ce,"f").showHiddenOpt=C(this,lr,"f"),be(this,uo,this[Ac](),"f")}addHelpOpt(e,t){if(ge("[string|boolean] [string]",[e,t],arguments.length),C(this,Bt,"f"))this[Si](C(this,Bt,"f")),be(this,Bt,null,"f");if(e===!1&&t===void 0)return this;return be(this,Bt,typeof e==="string"?e:"help","f"),this.boolean(C(this,Bt,"f")),this.describe(C(this,Bt,"f"),t||C(this,Ee,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(ge("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:C(this,lr,"f");return this.boolean(n),this.describe(n,t||C(this,Ee,"f").deferY18nLookup("Show hidden options")),C(this,Ce,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return ge("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.alias.bind(this),"alias",e,t),this}array(e){return ge("<array|string>",[e],arguments.length),this[En]("array",e),this[eo](e),this}boolean(e){return ge("<array|string>",[e],arguments.length),this[En]("boolean",e),this[eo](e),this}check(e,t){return ge("<function> [boolean]",[e,t],arguments.length),this.middleware((n,o)=>{return Jn(()=>{return e(n,o.getOptions())},(i)=>{if(!i)C(this,Ee,"f").fail(C(this,ve,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)C(this,Ee,"f").fail(i.toString(),i);return n},(i)=>{return C(this,Ee,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return ge("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(ge("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Ue("coerce callback must be provided");for(let n of e)this.coerce(n,t);return this}else if(typeof e==="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new Ue("coerce callback must be provided");return C(this,Ce,"f").key[e]=!0,C(this,Ht,"f").addCoerceMiddleware((n,o)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Jn(()=>{return i=o.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=o.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let u of i[e])n[u]=c;return n},(c)=>{throw new Ue(c.message)})},e),this}conflicts(e,t){return ge("<string|object> [string|array]",[e,t],arguments.length),C(this,Qe,"f").conflicts(e,t),this}config(e="config",t,n){if(ge("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=Vo(e,C(this,zn,"f"),this[$n]()["deep-merge-config"]||!1,C(this,ve,"f")),C(this,Ce,"f").configObjects=(C(this,Ce,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||C(this,Ee,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((o)=>{C(this,Ce,"f").config[o]=n||!0}),this}completion(e,t,n){if(ge("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(be(this,Et,e||C(this,Et,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command(C(this,Et,"f"),t),n)C(this,jt,"f").registerFunction(n);return this}command(e,t,n,o,i,r){return ge("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,o,i,r],arguments.length),C(this,et,"f").addHandler(e,t,n,o,i,r),this}commands(e,t,n,o,i,r){return this.command(e,t,n,o,i,r)}commandDir(e,t){ge("<string> [object]",[e,t],arguments.length);let n=C(this,hr,"f")||C(this,ve,"f").require;return C(this,et,"f").addDirectory(e,n,C(this,ve,"f").getCallerFile(),t),this}count(e){return ge("<array|string>",[e],arguments.length),this[En]("count",e),this[eo](e),this}default(e,t,n){if(ge("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)gi(e,C(this,ve,"f")),C(this,Ce,"f").defaultDescription[e]=n;if(typeof t==="function"){if(gi(e,C(this,ve,"f")),!C(this,Ce,"f").defaultDescription[e])C(this,Ce,"f").defaultDescription[e]=C(this,Ee,"f").functionDescription(t);t=t.call()}return this[mo](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,o){if(ge("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,o],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),C(this,Ce,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:o},this}demand(e,t,n){if(Array.isArray(t))t.forEach((o)=>{gt(n,!0,C(this,ve,"f")),this.demandOption(o,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")gt(n,!0,C(this,ve,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((o)=>{gt(n,!0,C(this,ve,"f")),this.demandOption(o,n)});else if(typeof n==="string")this.demandOption(e,n);else if(n===!0||typeof n>"u")this.demandOption(e);return this}demandOption(e,t){return ge("<object|string|array> [string]",[e,t],arguments.length),this[mo](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return ge("<string> [string|boolean]",[e,t],arguments.length),C(this,Ce,"f").deprecatedOptions[e]=t,this}describe(e,t){return ge("<object|string|array> [string]",[e,t],arguments.length),this[Ei](e,!0),C(this,Ee,"f").describe(e,t),this}detectLocale(e){return ge("<boolean>",[e],arguments.length),be(this,qn,e,"f"),this}env(e){if(ge("[string|boolean]",[e],arguments.length),e===!1)delete C(this,Ce,"f").envPrefix;else C(this,Ce,"f").envPrefix=e||"";return this}epilogue(e){return ge("<string>",[e],arguments.length),C(this,Ee,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(ge("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else C(this,Ee,"f").example(e,t);return this}exit(e,t){if(be(this,Dt,!0,"f"),be(this,vn,t,"f"),C(this,Tt,"f"))C(this,ve,"f").process.exit(e)}exitProcess(e=!0){return ge("[boolean]",[e],arguments.length),be(this,Tt,e,"f"),this}fail(e){if(ge("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Ue("Invalid first argument. Expected function or boolean 'false'");return C(this,Ee,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(ge("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,o)=>{C(this,jt,"f").getCompletion(e,(i,r)=>{if(i)o(i);else n(r)})});else return C(this,jt,"f").getCompletion(e,t)}getDemandedOptions(){return ge([],0),C(this,Ce,"f").demandedOptions}getDemandedCommands(){return ge([],0),C(this,Ce,"f").demandedCommands}getDeprecatedOptions(){return ge([],0),C(this,Ce,"f").deprecatedOptions}getDetectLocale(){return C(this,qn,"f")}getExitProcess(){return C(this,Tt,"f")}getGroups(){return Object.assign({},C(this,$t,"f"),C(this,Yn,"f"))}getHelp(){if(be(this,Dt,!0,"f"),!C(this,Ee,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Go](C(this,kn,"f"),void 0,void 0,0,!0);if(Je(t))return t.then(()=>{return C(this,Ee,"f").help()})}let e=C(this,et,"f").runDefaultBuilderOn(this);if(Je(e))return e.then(()=>{return C(this,Ee,"f").help()})}return Promise.resolve(C(this,Ee,"f").help())}getOptions(){return C(this,Ce,"f")}getStrict(){return C(this,Zn,"f")}getStrictCommands(){return C(this,Qn,"f")}getStrictOptions(){return C(this,Nn,"f")}global(e,t){if(ge("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)C(this,Ce,"f").local=C(this,Ce,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!C(this,Ce,"f").local.includes(n))C(this,Ce,"f").local.push(n)});return this}group(e,t){ge("<string|array> <string>",[e,t],arguments.length);let n=C(this,Yn,"f")[t]||C(this,$t,"f")[t];if(C(this,Yn,"f")[t])delete C(this,Yn,"f")[t];let o={};return C(this,$t,"f")[t]=(n||[]).concat(e).filter((i)=>{if(o[i])return!1;return o[i]=!0}),this}hide(e){return ge("<string>",[e],arguments.length),C(this,Ce,"f").hiddenOptions.push(e),this}implies(e,t){return ge("<string|object> [number|string|array]",[e,t],arguments.length),C(this,Qe,"f").implies(e,t),this}locale(e){if(ge("[string]",[e],arguments.length),e===void 0)return this[Ci](),C(this,ve,"f").y18n.getLocale();return be(this,qn,!1,"f"),C(this,ve,"f").y18n.setLocale(e),this}middleware(e,t,n){return C(this,Ht,"f").addMiddleware(e,!!t,n)}nargs(e,t){return ge("<string|object|array> [number]",[e,t],arguments.length),this[mo](this.nargs.bind(this),"narg",e,t),this}normalize(e){return ge("<array|string>",[e],arguments.length),this[En]("normalize",e),this}number(e){return ge("<array|string>",[e],arguments.length),this[En]("number",e),this[eo](e),this}option(e,t){if(ge("<string|object> [object]",[e,t],arguments.length),typeof e==="object")Object.keys(e).forEach((n)=>{this.options(n,e[n])});else{if(typeof t!=="object")t={};if(this[eo](e),C(this,_t,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[Wc](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
224
+ `),void 0,"versionWarning");if(C(this,Ce,"f").key[e]=!0,t.alias)this.alias(e,t.alias);let n=t.deprecate||t.deprecated;if(n)this.deprecateOption(e,n);let o=t.demand||t.required||t.require;if(o)this.demand(e,o);if(t.demandOption)this.demandOption(e,typeof t.demandOption==="string"?t.demandOption:void 0);if(t.conflicts)this.conflicts(e,t.conflicts);if("default"in t)this.default(e,t.default);if(t.implies!==void 0)this.implies(e,t.implies);if(t.nargs!==void 0)this.nargs(e,t.nargs);if(t.config)this.config(e,t.configParser);if(t.normalize)this.normalize(e);if(t.choices)this.choices(e,t.choices);if(t.coerce)this.coerce(e,t.coerce);if(t.group)this.group(e,t.group);if(t.boolean||t.type==="boolean"){if(this.boolean(e),t.alias)this.boolean(t.alias)}if(t.array||t.type==="array"){if(this.array(e),t.alias)this.array(t.alias)}if(t.number||t.type==="number"){if(this.number(e),t.alias)this.number(t.alias)}if(t.string||t.type==="string"){if(this.string(e),t.alias)this.string(t.alias)}if(t.count||t.type==="count")this.count(e);if(typeof t.global==="boolean")this.global(e,t.global);if(t.defaultDescription)C(this,Ce,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,r=C(this,Ee,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(r,e)||typeof i==="string")this.describe(e,i);if(t.hidden)this.hide(e);if(t.requiresArg)this.requiresArg(e)}return this}options(e,t){return this.option(e,t)}parse(e,t,n){if(ge("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[Lc](),typeof e>"u")e=C(this,kn,"f");if(typeof t==="object")be(this,Xn,t,"f"),t=n;if(typeof t==="function")be(this,Ft,t,"f"),t=!1;if(!t)be(this,kn,e,"f");if(C(this,Ft,"f"))be(this,Tt,!1,"f");let o=this[Go](e,!!t),i=this.parsed;if(C(this,jt,"f").setParsed(this.parsed),Je(o))return o.then((r)=>{if(C(this,Ft,"f"))C(this,Ft,"f").call(this,C(this,vn,"f"),r,C(this,ct,"f"));return r}).catch((r)=>{if(C(this,Ft,"f"))C(this,Ft,"f")(r,this.parsed.argv,C(this,ct,"f"));throw r}).finally(()=>{this[Di](),this.parsed=i});else{if(C(this,Ft,"f"))C(this,Ft,"f").call(this,C(this,vn,"f"),o,C(this,ct,"f"));this[Di](),this.parsed=i}return o}parseAsync(e,t,n){let o=this.parse(e,t,n);return!Je(o)?Promise.resolve(o):o}parseSync(e,t,n){let o=this.parse(e,t,n);if(Je(o))throw new Ue(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return o}parserConfiguration(e){return ge("<object>",[e],arguments.length),be(this,mr,e,"f"),this}pkgConf(e,t){ge("<string> [string]",[e,t],arguments.length);let n=null,o=this[Ri](t||C(this,zn,"f"));if(o[e]&&typeof o[e]==="object")n=Vo(o[e],t||C(this,zn,"f"),this[$n]()["deep-merge-config"]||!1,C(this,ve,"f")),C(this,Ce,"f").configObjects=(C(this,Ce,"f").configObjects||[]).concat(n);return this}positional(e,t){ge("<string> <object>",[e,t],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];t=Rn(t,(r,c)=>{if(r==="type"&&!["string","number","boolean"].includes(c))return!1;return n.includes(r)});let o=C(this,Ko,"f").fullCommands[C(this,Ko,"f").fullCommands.length-1],i=o?C(this,et,"f").cmdToParseOptions(o):{array:[],alias:{},default:{},demand:{}};return lo(i).forEach((r)=>{let c=i[r];if(Array.isArray(c)){if(c.indexOf(e)!==-1)t[r]=!0}else if(c[e]&&!(r in t))t[r]=c[e]}),this.group(e,C(this,Ee,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return ge("[boolean]",[e],arguments.length),be(this,pr,e,"f"),this}required(e,t,n){return this.demand(e,t,n)}require(e,t,n){return this.demand(e,t,n)}requiresArg(e){if(ge("<array|string|object> [number]",[e],arguments.length),typeof e==="string"&&C(this,Ce,"f").narg[e])return this;else this[mo](this.requiresArg.bind(this),"narg",e,NaN);return this}showCompletionScript(e,t){return ge("[string] [string]",[e,t],arguments.length),e=e||this.$0,C(this,uo,"f").log(C(this,jt,"f").generateCompletionScript(e,t||C(this,Et,"f")||"completion")),this}showHelp(e){if(ge("[string|function]",[e],arguments.length),be(this,Dt,!0,"f"),!C(this,Ee,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Go](C(this,kn,"f"),void 0,void 0,0,!0);if(Je(n))return n.then(()=>{C(this,Ee,"f").showHelp(e)}),this}let t=C(this,et,"f").runDefaultBuilderOn(this);if(Je(t))return t.then(()=>{C(this,Ee,"f").showHelp(e)}),this}return C(this,Ee,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return ge("[boolean|string] [string]",[e,t],arguments.length),C(this,Ee,"f").showHelpOnFail(e,t),this}showVersion(e){return ge("[string|function]",[e],arguments.length),C(this,Ee,"f").showVersion(e),this}skipValidation(e){return ge("<array|string>",[e],arguments.length),this[En]("skipValidation",e),this}strict(e){return ge("[boolean]",[e],arguments.length),be(this,Zn,e!==!1,"f"),this}strictCommands(e){return ge("[boolean]",[e],arguments.length),be(this,Qn,e!==!1,"f"),this}strictOptions(e){return ge("[boolean]",[e],arguments.length),be(this,Nn,e!==!1,"f"),this}string(e){return ge("<array|string>",[e],arguments.length),this[En]("string",e),this[eo](e),this}terminalWidth(){return ge([],0),C(this,ve,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return ge("<object>",[e],arguments.length),be(this,qn,!1,"f"),C(this,ve,"f").y18n.updateLocale(e),this}usage(e,t,n,o){if(ge("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,o],arguments.length),t!==void 0)if(gt(e,null,C(this,ve,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,o);else throw new Ue(".usage() description must start with $0 if being used as alias for .command()");else return C(this,Ee,"f").usage(e),this}usageConfiguration(e){return ge("<object>",[e],arguments.length),be(this,gr,e,"f"),this}version(e,t,n){if(ge("[boolean|string] [string] [string]",[e,t,n],arguments.length),C(this,_t,"f"))this[Si](C(this,_t,"f")),C(this,Ee,"f").version(void 0),be(this,_t,null,"f");if(arguments.length===0)n=this[Tc](),e="version";else if(arguments.length===1){if(e===!1)return this;n=e,e="version"}else if(arguments.length===2)n=t,t=void 0;return be(this,_t,typeof e==="string"?e:"version","f"),t=t||C(this,Ee,"f").deferY18nLookup("Show version number"),C(this,Ee,"f").version(n||void 0),this.boolean(C(this,_t,"f")),this.describe(C(this,_t,"f"),t),this}wrap(e){return ge("<number|null|undefined>",[e],arguments.length),C(this,Ee,"f").wrap(e),this}[(et=new WeakMap,zn=new WeakMap,Ko=new WeakMap,jt=new WeakMap,Et=new WeakMap,lr=new WeakMap,vn=new WeakMap,qn=new WeakMap,fr=new WeakMap,Tt=new WeakMap,ur=new WeakMap,Ht=new WeakMap,$t=new WeakMap,Dt=new WeakMap,Bt=new WeakMap,dr=new WeakMap,uo=new WeakMap,ct=new WeakMap,Ce=new WeakMap,hr=new WeakMap,mr=new WeakMap,Ft=new WeakMap,Xn=new WeakMap,ho=new WeakMap,Yn=new WeakMap,kn=new WeakMap,pr=new WeakMap,ve=new WeakMap,Zn=new WeakMap,Qn=new WeakMap,Nn=new WeakMap,Ee=new WeakMap,gr=new WeakMap,_t=new WeakMap,Qe=new WeakMap,Mc)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch(t){}return e}[Ac](){return{log:(...e)=>{if(!this[br]())console.log(...e);if(be(this,Dt,!0,"f"),C(this,ct,"f").length)be(this,ct,C(this,ct,"f")+`
225
+ `,"f");be(this,ct,C(this,ct,"f")+e.join(" "),"f")},error:(...e)=>{if(!this[br]())console.error(...e);if(be(this,Dt,!0,"f"),C(this,ct,"f").length)be(this,ct,C(this,ct,"f")+`
226
+ `,"f");be(this,ct,C(this,ct,"f")+e.join(" "),"f")}}}[Si](e){lo(C(this,Ce,"f")).forEach((t)=>{if(((o)=>o==="configObjects")(t))return;let n=C(this,Ce,"f")[t];if(Array.isArray(n)){if(n.includes(e))n.splice(n.indexOf(e),1)}else if(typeof n==="object")delete n[e]}),delete C(this,Ee,"f").getDescriptions()[e]}[Wc](e,t,n){if(!C(this,fr,"f")[n])C(this,ve,"f").process.emitWarning(e,t),C(this,fr,"f")[n]=!0}[Lc](){C(this,ur,"f").push({options:C(this,Ce,"f"),configObjects:C(this,Ce,"f").configObjects.slice(0),exitProcess:C(this,Tt,"f"),groups:C(this,$t,"f"),strict:C(this,Zn,"f"),strictCommands:C(this,Qn,"f"),strictOptions:C(this,Nn,"f"),completionCommand:C(this,Et,"f"),output:C(this,ct,"f"),exitError:C(this,vn,"f"),hasOutput:C(this,Dt,"f"),parsed:this.parsed,parseFn:C(this,Ft,"f"),parseContext:C(this,Xn,"f")}),C(this,Ee,"f").freeze(),C(this,Qe,"f").freeze(),C(this,et,"f").freeze(),C(this,Ht,"f").freeze()}[Ic](){let e="",t;if(/\b(node|iojs|electron)(\.exe)?$/.test(C(this,ve,"f").process.argv()[0]))t=C(this,ve,"f").process.argv().slice(1,2);else t=C(this,ve,"f").process.argv().slice(0,1);if(e=t.map((n)=>{let o=this[Yc](C(this,zn,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),C(this,ve,"f").getEnv("_")&&C(this,ve,"f").getProcessArgvBin()===C(this,ve,"f").getEnv("_"))e=C(this,ve,"f").getEnv("_").replace(`${C(this,ve,"f").path.dirname(C(this,ve,"f").process.execPath())}/`,"");return e}[$n](){return C(this,mr,"f")}[jc](){return C(this,gr,"f")}[Ci](){if(!C(this,qn,"f"))return;let e=C(this,ve,"f").getEnv("LC_ALL")||C(this,ve,"f").getEnv("LC_MESSAGES")||C(this,ve,"f").getEnv("LANG")||C(this,ve,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Tc](){return this[Ri]().version||"unknown"}[Hc](e){let t=e["--"]?e["--"]:e._;for(let n=0,o;(o=t[n])!==void 0;n++)if(C(this,ve,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`))))t[n]=Number(o);return e}[Ri](e){let t=e||"*";if(C(this,ho,"f")[t])return C(this,ho,"f")[t];let n={};try{let o=e||C(this,ve,"f").mainFilename;if(!e&&C(this,ve,"f").path.extname(o))o=C(this,ve,"f").path.dirname(o);let i=C(this,ve,"f").findUp(o,(r,c)=>{if(c.includes("package.json"))return"package.json";else return});gt(i,void 0,C(this,ve,"f")),n=JSON.parse(C(this,ve,"f").readFileSync(i,"utf8"))}catch(o){}return C(this,ho,"f")[t]=n||{},C(this,ho,"f")[t]}[En](e,t){t=[].concat(t),t.forEach((n)=>{n=this[ki](n),C(this,Ce,"f")[e].push(n)})}[mo](e,t,n,o){this[vi](e,t,n,o,(i,r,c)=>{C(this,Ce,"f")[i][r]=c})}[Oi](e,t,n,o){this[vi](e,t,n,o,(i,r,c)=>{C(this,Ce,"f")[i][r]=(C(this,Ce,"f")[i][r]||[]).concat(c)})}[vi](e,t,n,o,i){if(Array.isArray(n))n.forEach((r)=>{e(r,o)});else if(((r)=>typeof r==="object")(n))for(let r of lo(n))e(r,n[r]);else i(t,this[ki](n),o)}[ki](e){if(e==="__proto__")return"___proto___";return e}[Ei](e,t){return this[mo](this[Ei].bind(this),"key",e,t),this}[Di](){var e,t,n,o,i,r,c,a,u,d,m,p;let x=C(this,ur,"f").pop();gt(x,void 0,C(this,ve,"f"));let D;e=this,t=this,n=this,o=this,i=this,r=this,c=this,a=this,u=this,d=this,m=this,p=this,{options:{set value(W){be(e,Ce,W,"f")}}.value,configObjects:D,exitProcess:{set value(W){be(t,Tt,W,"f")}}.value,groups:{set value(W){be(n,$t,W,"f")}}.value,output:{set value(W){be(o,ct,W,"f")}}.value,exitError:{set value(W){be(i,vn,W,"f")}}.value,hasOutput:{set value(W){be(r,Dt,W,"f")}}.value,parsed:this.parsed,strict:{set value(W){be(c,Zn,W,"f")}}.value,strictCommands:{set value(W){be(a,Qn,W,"f")}}.value,strictOptions:{set value(W){be(u,Nn,W,"f")}}.value,completionCommand:{set value(W){be(d,Et,W,"f")}}.value,parseFn:{set value(W){be(m,Ft,W,"f")}}.value,parseContext:{set value(W){be(p,Xn,W,"f")}}.value}=x,C(this,Ce,"f").configObjects=D,C(this,Ee,"f").unfreeze(),C(this,Qe,"f").unfreeze(),C(this,et,"f").unfreeze(),C(this,Ht,"f").unfreeze()}[Bc](e,t){return Jn(t,(n)=>{return e(n),n})}getInternalMethods(){return{getCommandInstance:this[Vc].bind(this),getContext:this[Kc].bind(this),getHasOutput:this[Gc].bind(this),getLoggerInstance:this[Uc].bind(this),getParseContext:this[Jc].bind(this),getParserConfiguration:this[$n].bind(this),getUsageConfiguration:this[jc].bind(this),getUsageInstance:this[zc].bind(this),getValidationInstance:this[qc].bind(this),hasParseCallback:this[br].bind(this),isGlobalContext:this[Xc].bind(this),postProcess:this[_n].bind(this),reset:this[Fi].bind(this),runValidation:this[Pi].bind(this),runYargsParserAndExecuteCommands:this[Go].bind(this),setHasOutput:this[Zc].bind(this)}}[Vc](){return C(this,et,"f")}[Kc](){return C(this,Ko,"f")}[Gc](){return C(this,Dt,"f")}[Uc](){return C(this,uo,"f")}[Jc](){return C(this,Xn,"f")||{}}[zc](){return C(this,Ee,"f")}[qc](){return C(this,Qe,"f")}[br](){return!!C(this,Ft,"f")}[Xc](){return C(this,dr,"f")}[_n](e,t,n,o){if(n)return e;if(Je(e))return e;if(!t)e=this[Mc](e);if(this[$n]()["parse-positional-numbers"]||this[$n]()["parse-positional-numbers"]===void 0)e=this[Hc](e);if(o)e=Un(e,this,C(this,Ht,"f").getMiddleware(),!1);return e}[Fi](e={}){be(this,Ce,C(this,Ce,"f")||{},"f");let t={};t.local=C(this,Ce,"f").local||[],t.configObjects=C(this,Ce,"f").configObjects||[];let n={};t.local.forEach((r)=>{n[r]=!0,(e[r]||[]).forEach((c)=>{n[c]=!0})}),Object.assign(C(this,Yn,"f"),Object.keys(C(this,$t,"f")).reduce((r,c)=>{let a=C(this,$t,"f")[c].filter((u)=>!(u in n));if(a.length>0)r[c]=a;return r},{})),be(this,$t,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],i=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(o.forEach((r)=>{t[r]=(C(this,Ce,"f")[r]||[]).filter((c)=>!n[c])}),i.forEach((r)=>{t[r]=Rn(C(this,Ce,"f")[r],(c)=>!n[c])}),t.envPrefix=C(this,Ce,"f").envPrefix,be(this,Ce,t,"f"),be(this,Ee,C(this,Ee,"f")?C(this,Ee,"f").reset(n):Cc(this,C(this,ve,"f")),"f"),be(this,Qe,C(this,Qe,"f")?C(this,Qe,"f").reset(n):Fc(this,C(this,Ee,"f"),C(this,ve,"f")),"f"),be(this,et,C(this,et,"f")?C(this,et,"f").reset():xc(C(this,Ee,"f"),C(this,Qe,"f"),C(this,Ht,"f"),C(this,ve,"f")),"f"),!C(this,jt,"f"))be(this,jt,kc(this,C(this,Ee,"f"),C(this,et,"f"),C(this,ve,"f")),"f");return C(this,Ht,"f").reset(),be(this,Et,null,"f"),be(this,ct,"","f"),be(this,vn,null,"f"),be(this,Dt,!1,"f"),this.parsed=!1,this}[Yc](e,t){return C(this,ve,"f").path.relative(e,t)}[Go](e,t,n,o=0,i=!1){let r=!!n||i;e=e||C(this,kn,"f"),C(this,Ce,"f").__=C(this,ve,"f").y18n.__,C(this,Ce,"f").configuration=this[$n]();let c=!!C(this,Ce,"f").configuration["populate--"],a=Object.assign({},C(this,Ce,"f").configuration,{"populate--":!0}),u=C(this,ve,"f").Parser.detailed(e,Object.assign({},C(this,Ce,"f"),{configuration:{"parse-positional-numbers":!1,...a}})),d=Object.assign(u.argv,C(this,Xn,"f")),m=void 0,p=u.aliases,x=!1,D=!1;if(Object.keys(d).forEach((W)=>{if(W===C(this,Bt,"f")&&d[W])x=!0;else if(W===C(this,_t,"f")&&d[W])D=!0}),d.$0=this.$0,this.parsed=u,o===0)C(this,Ee,"f").clearCachedHelpMessage();try{if(this[Ci](),t)return this[_n](d,c,!!n,!1);if(C(this,Bt,"f")){if([C(this,Bt,"f")].concat(p[C(this,Bt,"f")]||[]).filter((k)=>k.length>1).includes(""+d._[d._.length-1]))d._.pop(),x=!0}be(this,dr,!1,"f");let W=C(this,et,"f").getCommands(),b=C(this,jt,"f").completionKey in d,R=x||b||i;if(d._.length){if(W.length){let v;for(let k=o||0,S;d._[k]!==void 0;k++)if(S=String(d._[k]),W.includes(S)&&S!==C(this,Et,"f")){let y=C(this,et,"f").runCommand(S,this,u,k+1,i,x||D||i);return this[_n](y,c,!!n,!1)}else if(!v&&S!==C(this,Et,"f")){v=S;break}if(!C(this,et,"f").hasDefaultCommand()&&C(this,pr,"f")&&v&&!R)C(this,Qe,"f").recommendCommands(v,W)}if(C(this,Et,"f")&&d._.includes(C(this,Et,"f"))&&!b){if(C(this,Tt,"f"))On(!0);this.showCompletionScript(),this.exit(0)}}if(C(this,et,"f").hasDefaultCommand()&&!R){let v=C(this,et,"f").runCommand(null,this,u,0,i,x||D||i);return this[_n](v,c,!!n,!1)}if(b){if(C(this,Tt,"f"))On(!0);e=[].concat(e);let v=e.slice(e.indexOf(`--${C(this,jt,"f").completionKey}`)+1);return C(this,jt,"f").getCompletion(v,(k,S)=>{if(k)throw new Ue(k.message);(S||[]).forEach((y)=>{C(this,uo,"f").log(y)}),this.exit(0)}),this[_n](d,!c,!!n,!1)}if(!C(this,Dt,"f")){if(x){if(C(this,Tt,"f"))On(!0);r=!0,this.showHelp("log"),this.exit(0)}else if(D){if(C(this,Tt,"f"))On(!0);r=!0,C(this,Ee,"f").showVersion("log"),this.exit(0)}}if(!r&&C(this,Ce,"f").skipValidation.length>0)r=Object.keys(d).some((v)=>C(this,Ce,"f").skipValidation.indexOf(v)>=0&&d[v]===!0);if(!r){if(u.error)throw new Ue(u.error.message);if(!b){let v=this[Pi](p,{},u.error);if(!n)m=Un(d,this,C(this,Ht,"f").getMiddleware(),!0);if(m=this[Bc](v,m!==null&&m!==void 0?m:d),Je(m)&&!n)m=m.then(()=>{return Un(d,this,C(this,Ht,"f").getMiddleware(),!1)})}}}catch(W){if(W instanceof Ue)C(this,Ee,"f").fail(W.message,W);else throw W}return this[_n](m!==null&&m!==void 0?m:d,c,!!n,!0)}[Pi](e,t,n,o){let i={...this.getDemandedOptions()};return(r)=>{if(n)throw new Ue(n.message);C(this,Qe,"f").nonOptionCount(r),C(this,Qe,"f").requiredArguments(r,i);let c=!1;if(C(this,Qn,"f"))c=C(this,Qe,"f").unknownCommands(r);if(C(this,Zn,"f")&&!c)C(this,Qe,"f").unknownArguments(r,e,t,!!o);else if(C(this,Nn,"f"))C(this,Qe,"f").unknownArguments(r,e,{},!1,!1);C(this,Qe,"f").limitedChoices(r),C(this,Qe,"f").implications(r),C(this,Qe,"f").conflicting(r)}}[Zc](){be(this,Dt,!0,"f")}[eo](e){if(typeof e==="string")C(this,Ce,"f").key[e]=!0;else for(let t of e)C(this,Ce,"f").key[t]=!0}}function yc(e){return!!e&&typeof e.getInternalMethods==="function"}var Yd=Qc(pi),$c=Yd;ze();import{readFileSync as ed}from"fs";import{join as Us}from"path";function iw(){let e=import.meta.dir;for(let t=0;t<5;t++){let n=Us(e,"package.json");try{return ed(n,"utf-8"),n}catch{}e=Us(e,"..")}return Us(import.meta.dir,"../../package.json")}var sw=JSON.parse(ed(iw(),"utf-8")),cw=process.argv[2]==="init";if(!cw)try{let e=fa();if(e.created&&process.stdout.isTTY)process.stderr.write(`copse: created default config at ${e.path}
227
+ `)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (Uf(),Gf));await e()}else{let[e,t,n,o,i,r,c,a,u,d,m,p,x,D,W,b,R,v,k,S]=await Promise.all([Promise.resolve().then(() => (qf(),zf)),Promise.resolve().then(() => (Yf(),Xf)),Promise.resolve().then(() => (Nf(),Qf)),Promise.resolve().then(() => (_f(),$f)),Promise.resolve().then(() => (ru(),ou)),Promise.resolve().then(() => (du(),uu)),Promise.resolve().then(() => (mu(),hu)),Promise.resolve().then(() => (wu(),bu)),Promise.resolve().then(() => (Su(),yu)),Promise.resolve().then(() => (vu(),Ou)),Promise.resolve().then(() => (Du(),Eu)),Promise.resolve().then(() => (Pu(),Fu)),Promise.resolve().then(() => (Au(),Mu)),Promise.resolve().then(() => (Lu(),Wu)),Promise.resolve().then(() => (Tu(),ju)),Promise.resolve().then(() => (Bu(),Hu)),Promise.resolve().then(() => (Ku(),Vu)),Promise.resolve().then(() => (Uu(),Gu)),Promise.resolve().then(() => (zu(),Ju)),Promise.resolve().then(() => (_u(),$u))]);$c(mi(process.argv)).locale("en").scriptName("copse").version(`copse v${sw.version}`).alias("version","v").help("help").alias("help","h").option("no-color",{type:"boolean",description:"Disable color output"}).command(e.default).command(t.default).command(n.default).command(o.default).command(i.default).command(r.default).command(c.default).command(a.default).command(u.default).command(d.default).command(m.default).command(p.default).command(x.default).command(D.default).command(W.default).command(b.default).command(R.default).command(v.default).command(k.default).command(S.default).completion("completion","Generate shell completion script").demandCommand(1,"Please specify a command. Run --help to see available commands.").strict().parse()}