@getsolaris/copse 1.0.3 → 1.1.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/README.ko.md +31 -0
- package/README.md +31 -0
- package/dist/copse.js +62 -58
- package/package.json +1 -1
package/dist/copse.js
CHANGED
|
@@ -1,35 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var Ru=Object.defineProperty;var ku=(e)=>e;function Ou(e,t){this[e]=ku.bind(null,t)}var qe=(e,t)=>{for(var n in t)Ru(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Ou.bind(t,n)})};var we=(e,t)=>()=>(e&&(t=e(e=0)),t);var on=import.meta.require;import{existsSync as ki,readdirSync as yd,statSync as Kc}from"fs";import{join as Oi,resolve as $d}from"path";function Cd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Hc(e){return $d(Cd(e))}function Sd(e){let t=Oi(e,".git");if(!ki(t))return!1;try{return Kc(t).isDirectory()}catch{return!1}}function Ed(e){return ki(Oi(e,".git"))}function Rd(e){if(!ki(e))return!1;try{return Kc(e).isDirectory()}catch{return!1}}function kd(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((r)=>r.match(n))}function Od(e,t=Gc,n=[]){let r=Math.max(1,Math.min(t,Pd)),i=Hc(e);if(!Rd(i))return[];let s=kd(n),c=new Set,a=(d,h)=>{let p;try{p=yd(d,{withFileTypes:!0})}catch{return}for(let m of p){if(!m.isDirectory()||s(m.name))continue;let b=Oi(d,m.name);if(Ed(b)){if(Sd(b))c.add(b);continue}if(h<r)a(b,h+1)}};return a(i,1),[...c].sort((d,h)=>d.localeCompare(h))}function Uc(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>Hc(i.path))),r=[];for(let i of t){let s=i.depth??Gc,c=i.exclude??[],a=Od(i.path,s,c);for(let d of a){if(n.has(d))continue;n.add(d),r.push({path:d,...i.defaults??{}})}}if(r.length===0)return e;return{...e,repos:[...e.repos??[],...r]}}var Gc=1,Pd=3;var Jc=()=>{};import{join as Fi,resolve as wo}from"path";import*as cn from"fs";function Nt(e,t,n){if(!Array.isArray(e)||e.some((r)=>typeof r!=="string"))n.push({field:t,message:"Must be an array of strings"})}function Yc(){let t=Bun.env.XDG_CONFIG_HOME??Fi(Bun.env.HOME??"~",".config");return Fi(t,"copse")}function yt(){return Fi(Yc(),"config.json")}function Zn(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 r of Object.keys(n))if(!Md.has(r))t.push({field:r,message:`Unknown field '${r}'`});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 r=n.defaults;for(let i of Object.keys(r))if(!zc.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in r&&typeof r.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in r&&typeof r.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in r)Nt(r[i],`defaults.${i}`,t);if("sharedDeps"in r&&r.sharedDeps!==void 0)if(typeof r.sharedDeps!=="object"||r.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Mi(r.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 r=0;r<n.repos.length;r++){let i=n.repos[r],s=`repos[${r}]`;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(!Fd.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"});for(let a of["copyFiles","linkFiles","postCreate","postRemove"])if(a in c)Nt(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 Mi(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 d of Object.keys(a))if(!Ad.has(d))t.push({field:`${s}.monorepo.${d}`,message:`Unknown field '${d}'`});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)Nt(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 d=0;d<a.hooks.length;d++){let h=a.hooks[d];if(typeof h!=="object"||h===null){t.push({field:`${s}.monorepo.hooks[${d}]`,message:"Must be an object"});continue}if(!("glob"in h)||typeof h.glob!=="string")t.push({field:`${s}.monorepo.hooks[${d}].glob`,message:"Required string field"});if("copyFiles"in h&&h.copyFiles!==void 0)Nt(h.copyFiles,`${s}.monorepo.hooks[${d}].copyFiles`,t);if("linkFiles"in h&&h.linkFiles!==void 0)Nt(h.linkFiles,`${s}.monorepo.hooks[${d}].linkFiles`,t);if("postCreate"in h&&h.postCreate!==void 0)Nt(h.postCreate,`${s}.monorepo.hooks[${d}].postCreate`,t);if("postRemove"in h&&h.postRemove!==void 0)Nt(h.postRemove,`${s}.monorepo.hooks[${d}].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 r=0;r<n.workspaces.length;r++){let i=n.workspaces[r],s=`workspaces[${r}]`;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(!Dd.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)Nt(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 d of Object.keys(a))if(!zc.has(d))t.push({field:`${s}.defaults.${d}`,message:`Unknown field '${d}'`});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"});for(let d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${s}.defaults.${d}`,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 Mi(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 r=n.templates;for(let[i,s]of Object.entries(r)){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 d of Object.keys(a))if(!Wd.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`});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 d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${c}.${d}`,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 r=n.lifecycle;for(let i of Object.keys(r))if(!Id.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in r&&typeof r.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in r&&(typeof r.staleAfterDays!=="number"||r.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in r&&(typeof r.maxWorktrees!=="number"||r.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 r=n.sessions;for(let i of Object.keys(r))if(!Td.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in r&&typeof r[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in r&&typeof r.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in r&&typeof r.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in r&&r.layouts!==void 0)if(typeof r.layouts!=="object"||r.layouts===null||Array.isArray(r.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=r.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 d=c;if(!("windows"in d)||!Array.isArray(d.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let h=0;h<d.windows.length;h++){let p=d.windows[h];if(typeof p!=="object"||p===null){t.push({field:`${a}.windows[${h}]`,message:"Must be an object"});continue}if(!("name"in p)||typeof p.name!=="string")t.push({field:`${a}.windows[${h}].name`,message:"Required string field"});if("command"in p&&typeof p.command!=="string")t.push({field:`${a}.windows[${h}].command`,message:"Must be a string"})}}}if("defaultLayout"in r&&typeof r.defaultLayout==="string"&&"layouts"in r&&typeof r.layouts==="object"&&r.layouts!==null){let i=r.layouts;if(!(r.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${r.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 r=n.profiles;for(let[i,s]of Object.entries(r)){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 d of Object.keys(a))if(!Bd.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`})}}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 r=n.profiles;if(!(n.activeProfile in r))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 Mi(e,t,n){let r=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!r.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)Nt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Nt(e.invalidateOn,`${t}.invalidateOn`,n)}function Kr(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Yn(e){if(Array.isArray(e))return e.map((t)=>Yn(t));if(Kr(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=Yn(r);return t}return e}function Zc(e,t){if(t===void 0)return Yn(e);if(Array.isArray(t))return t.map((i)=>Yn(i));if(!Kr(t))return Yn(t);let n=Kr(e)?e:{},r={};for(let[i,s]of Object.entries(n))r[i]=Yn(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(Kr(c)&&Kr(s)){r[i]=Zc(c,s);continue}r[i]=Yn(s)}return r}function Nd(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 Zc(e,t)}function Qc(e){let t=e??yt();if(!cn.existsSync(t))return structuredClone(Xc);let n;try{let c=bo.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 r=Zn(n);if(r.length>0){let c=r.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=Nd(n),s=Zn(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 De(e){return Uc(Qc(e))}function Di(e){return Qc(e)}function wt(e,t){let n=wo(t),r=e.repos?.find((i)=>wo(i.path)===n);return{worktreeDir:r?.worktreeDir??e.defaults?.worktreeDir??ar.worktreeDir,copyFiles:r?.copyFiles??e.defaults?.copyFiles??ar.copyFiles,linkFiles:r?.linkFiles??e.defaults?.linkFiles??ar.linkFiles,postCreate:r?.postCreate??e.defaults?.postCreate??ar.postCreate,postRemove:r?.postRemove??e.defaults?.postRemove??ar.postRemove,autoUpstream:r?.autoUpstream??e.defaults?.autoUpstream??ar.autoUpstream,monorepo:r?.monorepo,sharedDeps:r?.sharedDeps??e.defaults?.sharedDeps}}function En(e){return(e.repos??[]).map((t)=>wo(t.path))}function vo(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function jt(e){let t=e??yt(),n=e?wo(t,".."):Yc();if(!cn.existsSync(n))bo.mkdirSync(n,{recursive:!0,mode:448});if(cn.existsSync(t))return t;return Qn(t,`${JSON.stringify(Xc,null,2)}
|
|
4
|
-
`),t}function _c(e){let t=e??yt(),n=cn.existsSync(t);return{path:jt(e),created:!n}}function yo(e,t){return e.templates?.[t]}function $o(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}}function Rn(e){return e.sessions??{}}function Po(e,t){let n=e.sessions;if(!n?.layouts)return;let r=t??n.defaultLayout;if(!r)return;return n.layouts[r]}function ea(e,t,n){if(t.length===0)return;let r=e;for(let s=0;s<t.length-1;s++){let c=t[s],a=t[s+1],d=r[c];if(d===void 0||d===null)r[c]=typeof a==="number"?[]:{};r=r[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(r)&&typeof i==="number")r.splice(i,1);else delete r[i];return}r[i]=n}function Qn(e,t){let n=`${e}.tmp.${Date.now()}`;try{cn.writeFileSync(n,t,{encoding:"utf-8",mode:384});let r=JSON.parse(t),i=Zn(r);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);bo.renameSync(n,e)}catch(r){if(cn.existsSync(n))bo.unlinkSync(n);throw r}}var bo,qc="~/.copse/worktrees/{repo}-{branch}",Xc,ar,Md,zc,Fd,Dd,Ad,Wd,Id,Td,Bd;var Ye=we(()=>{Jc();bo=cn,Xc={version:1,defaults:{worktreeDir:qc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},ar={worktreeDir:qc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0};Md=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),zc=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps"]),Fd=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps"]),Dd=new Set(["path","depth","exclude","defaults"]),Ad=new Set(["autoDetect","extraPatterns","hooks"]),Wd=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),Id=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),Td=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),Bd=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function ta(e){let t=String(e),n=t.length-1;return Ze.context.id+(n?String.fromCharCode(96+n):"")+t}function Ii(e){Ze.context=e}function jd(){return{...Ze.context,id:Ze.getNextContextId(),count:0}}function Gr(e,t){let n=Be,r=Ae,i=e.length===0,s=t===void 0?r:t,c=i?la:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>$t(()=>kn(c)));Ae=c,Be=null;try{return kt(a,!0)}finally{Be=n,Ae=r}}function ue(e,t){t=t?Object.assign({},Eo,t):Eo;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},r=(i)=>{if(typeof i==="function")if(fe&&fe.running&&fe.sources.has(n))i=i(n.tValue);else i=i(n.value);return da(n,i)};return[ua.bind(n),r]}function ra(e,t,n){let r=Oo(e,t,!0,Ot);if(fr&&fe&&fe.running)tt.push(r);else ur(r)}function Qt(e,t,n){let r=Oo(e,t,!1,Ot);if(fr&&fe&&fe.running)tt.push(r);else ur(r)}function Mt(e,t,n){aa=Yd;let r=Oo(e,t,!1,Ot),i=Ur&&Lt(Ur);if(i)r.suspense=i;if(!n||!n.render)r.user=!0;ut?ut.push(r):ur(r)}function He(e,t,n){n=n?Object.assign({},Eo,n):Eo;let r=Oo(e,t,!0,0);if(r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,fr&&fe&&fe.running)r.tState=Ot,tt.push(r);else ur(r);return ua.bind(r)}function Hd(e){return e&&typeof e==="object"&&"then"in e}function fa(e,t,n){let r,i,s;if(typeof t==="function")r=e,i=t,s=n||{};else r=!0,i=e,s=t||{};let c=null,a=Ai,d=null,h=!1,p=!1,m="initialValue"in s,b=typeof r==="function"&&He(r),A=new Set,[F,v]=(s.storage||ue)(s.initialValue),[S,D]=ue(void 0),[M,w]=ue(void 0,{equals:!1}),[y,P]=ue(m?"ready":"unresolved");if(Ze.context){if(d=Ze.getNextContextId(),s.ssrLoadFrom==="initial")a=s.initialValue;else if(Ze.load&&Ze.has(d))a=Ze.load(d)}function K(U,J,q,re){if(c===U){if(c=null,re!==void 0&&(m=!0),(U===a||J===a)&&s.onHydrated)queueMicrotask(()=>s.onHydrated(re,{value:J}));if(a=Ai,fe&&U&&h)fe.promises.delete(U),h=!1,kt(()=>{fe.running=!0,T(J,q)},!1);else T(J,q)}return J}function T(U,J){kt(()=>{if(J===void 0)v(()=>U);P(J!==void 0?"errored":m?"ready":"unresolved"),D(J);for(let q of A.keys())q.decrement();A.clear()},!1)}function G(){let U=Ur&&Lt(Ur),J=F(),q=S();if(q!==void 0&&!c)throw q;if(Be&&!Be.user&&U)ra(()=>{if(M(),c){if(U.resolved&&fe&&h)fe.promises.add(c);else if(!A.has(U))U.increment(),A.add(U)}});return J}function X(U=!0){if(U!==!1&&p)return;p=!1;let J=b?b():r;if(h=fe&&fe.running,J==null||J===!1){K(c,$t(F));return}if(fe&&c)fe.promises.delete(c);let q,re=a!==Ai?a:$t(()=>{try{return i(J,{value:F(),refetching:U})}catch(he){q=he}});if(q!==void 0){K(c,void 0,So(q),J);return}else if(!Hd(re))return K(c,re,void 0,J),re;if(c=re,"v"in re){if(re.s===1)K(c,re.v,void 0,J);else K(c,void 0,So(re.v),J);return re}return p=!0,queueMicrotask(()=>p=!1),kt(()=>{P(m?"refreshing":"pending"),w()},!1),re.then((he)=>K(re,he,void 0,J),(he)=>K(re,void 0,So(he),J))}Object.defineProperties(G,{state:{get:()=>y()},error:{get:()=>S()},loading:{get(){let U=y();return U==="pending"||U==="refreshing"}},latest:{get(){if(!m)return G();let U=S();if(U&&!c)throw U;return F()}}});let H=Ae;if(b)ra(()=>(H=Ae,X(!1)));else X(!1);return[G,{refetch:(U)=>Ud(H,()=>X(U)),mutate:v}]}function $t(e){if(!lr&&Be===null)return e();let t=Be;Be=null;try{if(lr)return lr.untrack(e);return e()}finally{Be=t}}function _t(e,t,n){let r=Array.isArray(e),i,s=n&&n.defer;return(c)=>{let a;if(r){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 d=$t(()=>t(a,i,c));return i=a,d}}function an(e){Mt(()=>$t(e))}function it(e){if(Ae===null);else if(Ae.cleanups===null)Ae.cleanups=[e];else Ae.cleanups.push(e);return e}function Ud(e,t){let n=Ae,r=Be;Ae=e,Be=null;try{return kt(t,!0)}catch(i){Mo(i)}finally{Ae=n,Be=r}}function Jd(e){if(fe&&fe.running)return e(),fe.done;let t=Be,n=Ae;return Promise.resolve().then(()=>{Be=t,Ae=n;let r;if(fr||Ur)r=fe||(fe={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise((i)=>r.resolve=i)),r.running=!0;return kt(e,!1),Be=Ae=null,r?r.done:void 0})}function On(e,t){let n=Symbol("context");return{id:n,Provider:Zd(n),defaultValue:e}}function Lt(e){let t;return Ae&&Ae.context&&(t=Ae.context[e.id])!==void 0?t:e.defaultValue}function zd(e){let t=He(e),n=He(()=>Bi(t()));return n.toArray=()=>{let r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}function ua(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Ot)ur(this);else{let t=tt;tt=null,kt(()=>Ro(this),!1),tt=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&&fe.sources.has(this))return this.tValue;return this.value}function da(e,t,n){let r=fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,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)kt(()=>{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)tt.push(s);else ut.push(s);if(s.observers)ma(s)}if(!c)s.state=Ot;else s.tState=Ot}if(tt.length>1e6)throw tt=[],Error()},!1)}return t}function ur(e){if(!e.fn)return;kn(e);let t=ko;if(ia(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{kt(()=>{fe&&(fe.running=!0),Be=Ae=e,ia(e,e.tValue,t),Be=Ae=null},!1)})}function ia(e,t,n){let r,i=Ae,s=Be;Be=Ae=e;try{r=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Ot,e.tOwned&&e.tOwned.forEach(kn),e.tOwned=void 0;else e.state=Ot,e.owned&&e.owned.forEach(kn),e.owned=null;return e.updatedAt=n+1,Mo(c)}finally{Be=s,Ae=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)da(e,r,!0);else if(fe&&fe.running&&e.pure){if(!fe.sources.has(e))e.value=r;fe.sources.add(e),e.tValue=r}else e.value=r;e.updatedAt=n}}function Oo(e,t,n,r=Ot,i){let s={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Ae,context:Ae?Ae.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=r;if(Ae===null);else if(Ae!==la)if(fe&&fe.running&&Ae.pure)if(!Ae.tOwned)Ae.tOwned=[s];else Ae.tOwned.push(s);else if(!Ae.owned)Ae.owned=[s];else Ae.owned.push(s);if(lr&&s.fn){let c=s.fn,[a,d]=ue(void 0,{equals:!1}),h=lr.factory(c,d);it(()=>h.dispose());let p,m=()=>Jd(d).then(()=>{if(p)p.dispose(),p=void 0});s.fn=(b)=>{if(a(),fe&&fe.running){if(!p)p=lr.factory(c,m);return p.track(b)}return h.track(b)}}return s}function Jr(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===Hr)return Ro(e);if(e.suspense&&$t(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<ko)){if(t&&fe.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let i=e,s=n[r+1];while((i=i.owner)&&i!==s)if(fe.disposed.has(i))return}if((t?e.tState:e.state)===Ot)ur(e);else if((t?e.tState:e.state)===Hr){let i=tt;tt=null,kt(()=>Ro(e,n[0]),!1),tt=i}}}function kt(e,t){if(tt)return e();let n=!1;if(!t)tt=[];if(ut)n=!0;else ut=[];ko++;try{let r=e();return qd(n),r}catch(r){if(!n)ut=null;tt=null,Mo(r)}}function qd(e){if(tt){if(fr&&fe&&fe.running)Xd(tt);else ha(tt);tt=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:r,disposed:i}=fe;ut.push.apply(ut,fe.effects),t=fe.resolve;for(let s of ut)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,kt(()=>{for(let s of i)kn(s);for(let s of r){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)kn(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}oa(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,ut),ut=null,oa(!0);return}}let n=ut;if(ut=null,n.length)kt(()=>aa(n),!1);if(t)t()}function ha(e){for(let t=0;t<e.length;t++)Jr(e[t])}function Xd(e){for(let t=0;t<e.length;t++){let n=e[t],r=fe.queue;if(!r.has(n))r.add(n),fr(()=>{r.delete(n),kt(()=>{fe.running=!0,Jr(n)},!1),fe&&(fe.running=!1)})}}function Yd(e){let t,n=0;for(t=0;t<e.length;t++){let r=e[t];if(!r.user)Jr(r);else e[n++]=r}if(Ze.context){if(Ze.count){Ze.effects||(Ze.effects=[]),Ze.effects.push(...e.slice(0,n));return}Ii()}if(Ze.effects&&(Ze.done||!Ze.count))e=[...Ze.effects,...e],n+=Ze.effects.length,delete Ze.effects;for(t=0;t<n;t++)Jr(e[t])}function Ro(e,t){let n=fe&&fe.running;if(n)e.tState=0;else e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let s=n?i.tState:i.state;if(s===Ot){if(i!==t&&(!i.updatedAt||i.updatedAt<ko))Jr(i)}else if(s===Hr)Ro(i,t)}}}function ma(e){let t=fe&&fe.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];if(t?!r.tState:!r.state){if(t)r.tState=Hr;else r.state=Hr;if(r.pure)tt.push(r);else ut.push(r);r.observers&&ma(r)}}}function kn(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),r=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let s=i.pop(),c=n.observerSlots.pop();if(r<i.length)s.sourceSlots[c]=r,i[r]=s,n.observerSlots[r]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)kn(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)pa(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)kn(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 pa(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)pa(e.owned[n])}function So(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function sa(e,t,n){try{for(let r of t)r(e)}catch(r){Mo(r,n&&n.owner||null)}}function Mo(e,t=Ae){let n=na&&t&&t.context&&t.context[na],r=So(e);if(!n)throw r;if(ut)ut.push({fn(){sa(r,n,t)},state:Ot});else sa(r,n,t)}function Bi(e){if(typeof e==="function"&&!e.length)return Bi(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=Bi(e[n]);Array.isArray(r)?t.push.apply(t,r):t.push(r)}return t}return e}function Zd(e,t){return function(r){let i;return Qt(()=>i=$t(()=>{return Ae.context={...Ae.context,[e]:r.value},zd(()=>r.children)}),void 0),i}}function ca(e){for(let t=0;t<e.length;t++)e[t]()}function _d(e,t,n={}){let r=[],i=[],s=[],c=0,a=t.length>1?[]:null;return it(()=>ca(s)),()=>{let d=e()||[],h=d.length,p,m;return d[Gd],$t(()=>{let A,F,v,S,D,M,w,y,P;if(h===0){if(c!==0)ca(s),s=[],r=[],i=[],c=0,a&&(a=[]);if(n.fallback)r=[Qd],i[0]=Gr((K)=>{return s[0]=K,n.fallback()}),c=1}else if(c===0){i=Array(h);for(m=0;m<h;m++)r[m]=d[m],i[m]=Gr(b);c=h}else{v=Array(h),S=Array(h),a&&(D=Array(h));for(M=0,w=Math.min(c,h);M<w&&r[M]===d[M];M++);for(w=c-1,y=h-1;w>=M&&y>=M&&r[w]===d[y];w--,y--)v[y]=i[w],S[y]=s[w],a&&(D[y]=a[w]);A=new Map,F=Array(y+1);for(m=y;m>=M;m--)P=d[m],p=A.get(P),F[m]=p===void 0?-1:p,A.set(P,m);for(p=M;p<=w;p++)if(P=r[p],m=A.get(P),m!==void 0&&m!==-1)v[m]=i[p],S[m]=s[p],a&&(D[m]=a[p]),m=F[m],A.set(P,m);else s[p]();for(m=M;m<h;m++)if(m in v){if(i[m]=v[m],s[m]=S[m],a)a[m]=D[m],a[m](m)}else i[m]=Gr(b);i=i.slice(0,c=h),r=d.slice(0)}return i});function b(A){if(s[m]=A,a){let[F,v]=ue(m);return a[m]=v,t(d[m],F)}return t(d[m])}}}function ga(e,t){if(eh){if(Ze.context){let n=Ze.context;Ii(jd());let r=$t(()=>e(t||{}));return Ii(n),r}}return $t(()=>e(t||{}))}function Co(){return!0}function Wi(e){return!(e=typeof e==="function"?e():e)?{}:e}function nh(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Fo(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Ti in a,e[c]=typeof a==="function"?(t=!0,He(a)):a}if(Kd&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let d=Wi(e[a])[c];if(d!==void 0)return d}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Wi(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Wi(e[a])));return[...new Set(c)]}},th);let n={},r=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let d=Object.getOwnPropertyNames(a);for(let h=d.length-1;h>=0;h--){let p=d[h];if(p==="__proto__"||p==="constructor")continue;let m=Object.getOwnPropertyDescriptor(a,p);if(!r[p])r[p]=m.get?{enumerable:!0,configurable:!0,get:nh.bind(n[p]=[m.get.bind(a)])}:m.value!==void 0?m:void 0;else{let b=n[p];if(b){if(m.get)b.push(m.get.bind(a));else if(m.value!==void 0)b.push(()=>m.value)}}}}let i={},s=Object.keys(r);for(let c=s.length-1;c>=0;c--){let a=s[c],d=r[a];if(d&&d.get)Object.defineProperty(i,a,d);else i[a]=d?d.value:void 0}return i}function et(e){let t="fallback"in e&&{fallback:()=>e.fallback};return He(_d(()=>e.each,e.children,t||void 0))}function ie(e){let t=e.keyed,n=He(()=>e.when,void 0,void 0),r=t?n:He(n,void 0,{equals:(i,s)=>!i===!s});return He(()=>{let i=r();if(i){let s=e.children;return typeof s==="function"&&s.length>0?$t(()=>s(t?i:()=>{if(!$t(r))throw rh("Show");return n()})):s}return e.fallback},void 0,void 0)}var Ze,Ld=!1,Vd=(e,t)=>e===t,Ti,Kd,Gd,N1,Eo,na=null,aa,Ot=1,Hr=2,la,Ai,Ae=null,fe=null,fr=null,lr=null,Be=null,tt=null,ut=null,ko=0,j1,oa,Ur,Qd,eh=!1,th,rh=(e)=>`Stale read from <${e}>.`;var Ue=we(()=>{Ze={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return ta(this.context.count)},getNextContextId(){return ta(this.context.count++)}};Ti=Symbol("solid-proxy"),Kd=typeof Proxy==="function",Gd=Symbol("solid-track"),N1=Symbol("solid-dev-component"),Eo={equals:Vd},aa=ha,la={owned:null,cleanups:null,context:null,owner:null},Ai={};[j1,oa]=ue(!1);Qd=Symbol("fallback");th={get(e,t,n){if(t===Ti)return n;return e.get(t)},has(e,t){if(t===Ti)return!0;return e.has(t)},set:Co,deleteProperty:Co,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Co,deleteProperty:Co}},ownKeys(e){return e.keys()}}});function wa(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=oh.get(e))!==null&&t!==void 0?t:e}var Ni,oh,xa;var ba=we(()=>{oh=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]]),xa=(Ni=String.fromCodePoint)!==null&&Ni!==void 0?Ni:(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 va(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,r=new Uint16Array(n/2);for(let i=0,s=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);r[s++]=c|a<<8}return r}var ya;var $a=we(()=>{ya=va("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 dt;var Pa=we(()=>{(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"})(dt||(dt={}))});function Li(e){return e>=Je.ZERO&&e<=Je.NINE}function ih(e){return e>=Je.UPPER_A&&e<=Je.UPPER_F||e>=Je.LOWER_A&&e<=Je.LOWER_F}function sh(e){return e>=Je.UPPER_A&&e<=Je.UPPER_Z||e>=Je.LOWER_A&&e<=Je.LOWER_Z||Li(e)}function ch(e){return e===Je.EQUALS||sh(e)}class Vi{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=ln.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)===Je.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)|Ca)===Je.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(Li(n)||ih(n)){let r=n<=Je.NINE?n-Je.ZERO:(n|Ca)-Je.LOWER_A+10;this.result=this.result*16+r,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Li(n))this.result=this.result*10+(n-Je.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===Je.SEMI)this.consumed+=1;else if(this.decodeMode===ln.Strict)return 0;if(this.emitCodePoint(wa(this.result),this.consumed),this.errors){if(e!==Je.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&dt.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(r&dt.FLAG13)!==0){let c=(r&dt.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=r&dt.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,d=n[this.treeIndex+1+(a>>1)],h=a%2===0?d&255:d>>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),r=n[this.treeIndex],i=(r&dt.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Je.SEMI&&i!==0&&(r&dt.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=lh(n,r,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===ln.Attribute&&(i===0||ch(s))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&dt.VALUE_LENGTH)>>14,i!==0){if(s===Je.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==ln.Strict&&(r&dt.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,r=(n[t]&dt.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;if(this.emitCodePoint(t===1?r[e]&~(dt.VALUE_LENGTH|dt.FLAG13):r[e+1],n),t===3)this.emitCodePoint(r[e+2],n);return n}end(){var e;switch(this.state){case at.NamedEntity:return this.result!==0&&(this.decodeMode!==ln.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 ah(e){let t="",n=new Vi(e,(r)=>t+=xa(r));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 d=t+i.slice(c);return t="",d}}function lh(e,t,n,r){let i=(t&dt.BRANCH_LENGTH)>>7,s=t&dt.JUMP_TABLE;if(i===0)return s!==0&&r===s?n:-1;if(s){let h=r-s;return h<0||h>=i?-1:e[n+h]-1}let c=i+1>>1,a=0,d=i-1;while(a<=d){let h=a+d>>>1,p=h>>1,b=e[n+p]>>(h&1)*8&255;if(b<r)a=h+1;else if(b>r)d=h-1;else return e[n+c+h]}return-1}function _n(e,t=ln.Legacy){return fh(e,t)}var Je,Ca=32,at,ln,fh;var Sa=we(()=>{ba();$a();Pa();(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"})(Je||(Je={}));(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"})(ln||(ln={}));fh=ah(ya)});var Ea,Ra;var Oa=we(()=>{Sa();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ea||(Ea={}));(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"})(Ra||(Ra={}))});import{CliRenderer as dh,createCliRenderer as hh,engine as mh}from"@opentui/core";import{createTestRenderer as tb}from"@opentui/core/testing";import{ASCIIFontRenderable as ph,BoxRenderable as gh,CodeRenderable as xh,DiffRenderable as wh,InputRenderable as bh,LineNumberRenderable as vh,MarkdownRenderable as yh,ScrollBoxRenderable as $h,SelectRenderable as Ph,TabSelectRenderable as Ch,TextareaRenderable as Sh,TextAttributes as Ki,TextNodeRenderable as Eh,TextRenderable as Rh}from"@opentui/core";import{engine as ob,Timeline as ib}from"@opentui/core";import{BaseRenderable as Ta,createTextAttributes as Oh,InputRenderable as Gi,InputRenderableEvents as zr,isTextNodeRenderable as Ji,parseColor as Ma,Renderable as Mh,RootTextNodeRenderable as Fh,ScrollBoxRenderable as Dh,SelectRenderable as Fa,SelectRenderableEvents as Hi,TabSelectRenderable as Da,TabSelectRenderableEvents as Ui,TextNodeRenderable as Ah,TextRenderable as Ba}from"@opentui/core";import{BaseRenderable as Gh,isTextNodeRenderable as Hh,TextNodeRenderable as Uh,TextRenderable as Jh,Yoga as Wa}from"@opentui/core";import{TimeToFirstDrawRenderable as Xh}from"@opentui/core";import{createSlotRegistry as xb}from"@opentui/core";function Ih({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:r,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:d,getFirstChild:h,getNextSibling:p}){function m(w,y,P,K){if(P!==void 0&&!K)K=[];if(typeof y!=="function")return b(w,y,K,P);Qt((T)=>b(w,y(),T,P),K)}function b(w,y,P,K,T){while(typeof P==="function")P=P();if(y===P)return P;let G=typeof y,X=K!==void 0;if(G==="string"||G==="number"){if(G==="number")y=y.toString();if(X){let H=P[0];if(H&&r(H))i(H,y);else H=t(y);P=v(w,P,K,H)}else if(P!==""&&typeof P==="string")i(h(w),P=y);else v(w,P,K,t(y)),P=y}else if(y==null||G==="boolean")P=v(w,P,K);else if(G==="function")return Qt(()=>{let H=y();while(typeof H==="function")H=H();P=b(w,H,P,K)}),()=>P;else if(Array.isArray(y)){let H=[];if(A(H,y,T))return Qt(()=>P=b(w,H,P,K,!0)),()=>P;if(H.length===0){let U=v(w,P,K);if(X)return P=U}else if(Array.isArray(P))if(P.length===0)S(w,H,K);else F(w,P,H);else if(P==null||P==="")S(w,H);else F(w,X&&P||[h(w)],H);P=H}else{if(Array.isArray(P)){if(X)return P=v(w,P,K,y);v(w,P,null,y)}else if(P==null||P===""||!h(w))s(w,y);else D(w,y,h(w));P=y}return P}function A(w,y,P){let K=!1;for(let T=0,G=y.length;T<G;T++){let X=y[T],H;if(X==null||X===!0||X===!1);else if(Array.isArray(X))K=A(w,X)||K;else if((H=typeof X)==="string"||H==="number")w.push(t(X));else if(H==="function")if(P){while(typeof X==="function")X=X();K=A(w,Array.isArray(X)?X:[X])||K}else w.push(X),K=!0;else w.push(X)}return K}function F(w,y,P){let K=P.length,T=y.length,G=K,X=0,H=0,U=p(y[T-1]),J=null;while(X<T||H<G){if(y[X]===P[H]){X++,H++;continue}while(y[T-1]===P[G-1])T--,G--;if(T===X){let q=G<K?H?p(P[H-1]):P[G-H]:U;while(H<G)s(w,P[H++],q)}else if(G===H)while(X<T){if(!J||!J.has(y[X]))c(w,y[X]);X++}else if(y[X]===P[G-1]&&P[H]===y[T-1]){let q=p(y[--T]);s(w,P[H++],p(y[X++])),s(w,P[--G],q),y[T]=P[G]}else{if(!J){J=new Map;let re=H;while(re<G)J.set(P[re],re++)}let q=J.get(y[X]);if(q!=null)if(H<q&&q<G){let re=X,he=1,_;while(++re<T&&re<G){if((_=J.get(y[re]))==null||_!==q+he)break;he++}if(he>q-H){let me=y[X];while(H<q)s(w,P[H++],me)}else D(w,P[H++],y[X++])}else X++;else c(w,y[X++])}}}function v(w,y,P,K){if(P===void 0){let G;while(G=h(w))c(w,G);return K&&s(w,K),K??""}let T=K||n();if(y.length){let G=!1;for(let X=y.length-1;X>=0;X--){let H=y[X];if(T!==H){let U=d(H)===w;if(!G&&!X)U?D(w,T,H):s(w,T,P);else U&&c(w,H)}else G=!0}}else s(w,T,P);return[T]}function S(w,y,P){for(let K=0,T=y.length;K<T;K++)s(w,y[K],P)}function D(w,y,P){s(w,y,P),c(w,P)}function M(w,y,P={},K){if(y||(y={}),!K)Qt(()=>P.children=b(w,y.children,P.children));return Qt(()=>y.ref&&y.ref(w)),Qt(()=>{for(let T in y){if(T==="children"||T==="ref")continue;let G=y[T];if(G===P[T])continue;a(w,T,G,P[T]),P[T]=G}}),P}return{render(w,y){let P;return Gr((K)=>{P=K,m(y,w())}),P},insert:m,spread(w,y,P){if(typeof y==="function")Qt((K)=>M(w,y(),K,P));else M(w,y,void 0,P)},createElement:e,createTextNode:t,insertNode:s,setProp(w,y,P,K){return a(w,y,P,K),P},mergeProps:Fo,effect:Qt,memo:Wh,createComponent:ga,use(w,y,P){return $t(()=>w(y,P))}}}function Th(e){let t=Ih(e);return t.mergeProps=Fo,t}function Zi(e){if(!Do.has(e))Do.set(e,0);let t=Do.get(e)+1;return Do.set(e,t),`${e}-${t}`}function Bh(e,t,n){if(lt("Inserting node:",st(t),"into parent:",st(e),"with anchor:",st(n),t instanceof dr),t instanceof qr)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof qr)n=n.getSlotChild(e);if(Ji(t)){if(!(e instanceof Ba)&&!Ji(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 Ta))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 r=zi(e),i=r.findIndex((s)=>s.id===n.id);if(i===-1)lt("[INSERT]","Could not find anchor",st(e),st(n),"[children]",...r.map((s)=>s.id));e.add(t,i)}function Nh(e,t){if(lt("Removing node:",st(t),"from parent:",st(e)),t instanceof qr)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ta&&!t.parent){t.destroyRecursively();return}})}function jh(e){lt("Creating text node:",e);let t=Zi("text-node");if(typeof e==="number")e=e.toString();return dr.fromString(_n(e),{id:t})}function Lh(){let e=Zi("slot-node");return lt("Creating slot node",e),new qr(e)}function Aa(e){lt("Getting parent of node:",st(e));let t=e.parent??void 0;if(t instanceof Fh)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof Dh&&n.content===t)t=n;return t}function _i(e){Object.assign(Ga,e)}function qh(){return Ga}var Yi,fn=()=>{let e=Lt(Yi);if(!e)throw Error("No renderer found");return e},kh=(e)=>{let t=fn();an(()=>{t.on("resize",e)}),it(()=>{t.off("resize",e)})},nt=()=>{let e=fn(),[t,n]=ue({width:e.width,height:e.height});return kh((i,s)=>{n({width:i,height:s})}),t},rt=(e,t)=>{let r=fn().keyInput;an(()=>{if(r.on("keypress",e),t?.release)r.on("keyrelease",e)}),it(()=>{if(r.off("keypress",e),t?.release)r.off("keyrelease",e)})},hr=(e)=>{let n=fn().keyInput;an(()=>{n.on("paste",e)}),it(()=>{n.off("paste",e)})},Ia=(e)=>{let t=fn();an(()=>{t.on("selection",e)}),it(()=>{t.off("selection",e)})},Wh=(e)=>He(()=>e()),Do,lt=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},dr,st=(e)=>{if(!e)return;return e.id},zi=(e)=>{let t;if(e instanceof Ba)t=e.getTextChildren();else t=e.getChildren();return t},Vh,L,We,z,l,B,f,j,Kh,o,db,hb,Qi,Na,ja,qr,Xr,Ao,qi,Xi,La,Va,Ka,zh,Ga,Yh=(e,t)=>{let n,r=!1,i=!1,s=!0,c=!1,a=e.destroy.bind(e),d=()=>{if(i)return;if(!n){r=!0;return}i=!0,n()};e.once("destroy",d),e.destroy=()=>{if(s){c=!0;return}a()};try{n=Vh(()=>z(Yi.Provider,{get value(){return e},get children(){return z(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(r)d();if(c)a()},Ha=async(e,t={})=>{let n=t instanceof dh?t:await hh({...t,onDestroy:()=>{t.onDestroy?.()}});mh.attach(n),Yh(n,e)};var te=we(()=>{Ue();Oa();Ue();Ue();Ue();Yi=On();Do=new Map;dr=class dr extends Ah{static fromString(e,t={}){let n=new dr(t);return n.add(e),n}};({render:Vh,effect:L,memo:We,createComponent:z,createElement:l,createTextNode:B,insertNode:f,insert:j,spread:Kh,setProp:o,mergeProps:db,use:hb}=Th({createElement(e){lt("Creating element:",e);let t=Zi(e),n=Lt(Yi);if(!n)throw Error("No renderer found");let r=qh();if(!r[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new r[e](n,{id:t});return lt("Element created with id:",t),i},createTextNode:jh,createSlotNode:Lh,replaceText(e,t){if(lt("Replacing text:",t,"in node:",st(e)),!(e instanceof dr))return;e.replace(_n(t),0)},setProperty(e,t,n,r){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(r)e.off(i,r);return}if(Ji(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Oh(n),e.fg=n.fg?Ma(n.fg):e.fg,e.bg=n.bg?Ma(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 Mh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof Fa)i=Hi.SELECTION_CHANGED;else if(e instanceof Da)i=Ui.SELECTION_CHANGED;else if(e instanceof Gi)i=zr.CHANGE;if(!i)break;if(n)e.on(i,n);if(r)e.off(i,r);break;case"onInput":if(e instanceof Gi){if(n)e.on(zr.INPUT,n);if(r)e.off(zr.INPUT,r)}break;case"onSubmit":if(e instanceof Gi){if(n)e.on(zr.ENTER,n);if(r)e.off(zr.ENTER,r)}else e[t]=n;break;case"onSelect":if(e instanceof Fa){if(n)e.on(Hi.ITEM_SELECTED,n);if(r)e.off(Hi.ITEM_SELECTED,r)}else if(e instanceof Da){if(n)e.on(Ui.ITEM_SELECTED,n);if(r)e.off(Ui.ITEM_SELECTED,r)}break;case"style":for(let s in n){let c=n[s];if(r!==void 0&&c===r[s])continue;e[s]=c}break;case"text":case"content":{let s=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=_n(s);break}default:e[t]=n}},isTextNode(e){return e instanceof dr},insertNode:Bh,removeNode:Nh,getParentNode:Aa,getFirstChild(e){lt("Getting first child of node:",st(e));let t=zi(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=Aa(e);if(!t){lt("No parent found for node:",st(e));return}let n=zi(t),r=n.indexOf(e);if(r===-1||r===n.length-1){lt("No next sibling found for node:",st(e));return}let i=n[r+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}}));Qi=class Qi extends Gh{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}};Na=class Na extends Uh{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()}};ja=class ja extends Qi{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Wa.default.Node.create(),this.yogaNode.setDisplay(Wa.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};qr=class qr extends Qi{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(Hh(e)||e instanceof Jh){if(!this.textNode)this.textNode=new Na(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new ja(`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()}};Xr=class Xr extends Eh{_ctx;constructor(e,t){super(t);this._ctx=e}};Ao=class Ao extends Xr{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|Ki.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|Ki.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|Ki.UNDERLINE}};qi=class qi extends Ao{constructor(e){super(e,"b")}};Xi=class Xi extends Ao{constructor(e){super(e,"i")}};La=class La extends Ao{constructor(e){super(e,"u")}};Va=class Va extends Xr{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
-
`)}};Ka=class Ka extends Xr{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};zh={box:gh,text:Rh,input:bh,select:Ph,textarea:Sh,ascii_font:ph,tab_select:Ch,scrollbox:$h,code:xh,diff:wh,line_number:vh,markdown:yh,span:Xr,strong:qi,b:qi,em:Xi,i:Xi,u:La,br:Va,a:Ka},Ga={...zh};_i({time_to_first_draw:Xh})});function Ua(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function Ja(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function es(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 ts(t.loading);default:return""}}function ts(e){if(Ua(e))return e.frames[0]??"\u25CC";return e}function ns(e){return Ua(e)?e:null}var Zh,za;var qa=we(()=>{Zh={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},za={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:Zh,close:"\xD7"}});import{BoxRenderable as Io,TextAttributes as Qh,TextRenderable as Yr,parseColor as _h}from"@opentui/core";function om(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function lm(e,t={}){let[n,r]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??Wo.top;else i.bottom=t.bottom??Wo.bottom;if(r==="left")i.left=t.left??Wo.left,i.alignItems="flex-start";else if(r==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??Wo.right,i.alignItems="flex-end";return i}function fm(e){return e.includes("center")}function um(e){return e.startsWith("top")}function dm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:r,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??r??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??r??n??t.left}}function hm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function Xa(e,t,n){let r=rs.style,i=rs[e]?.style,s=t?.style,c=t?.[e]?.style,a=hm(r,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function Ya(e,t,n){if(n!==void 0)return n;let r=t?.[e]?.duration;if(r!==void 0)return r;if(t?.duration!==void 0)return t.duration;return rs.duration}var em,tm=200,Za=60,Wo,nm,rs,rm=1,im=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,r=typeof e.id==="number"||e.id&&e.id.length>0?e.id:rm++,i=this.toasts.find((c)=>c.id===r),s=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(r))this.dismissedToasts.delete(r);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===r)return this.publish({...c,...e,id:r,title:t}),{...c,...e,id:r,dismissible:s,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:s,id:r,type:e.type??"default"});return r};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 r=e instanceof Function?e():e,i=n!==void 0,s,c=r.then(async(d)=>{if(s=["resolve",d],om(d)&&!d.ok){i=!1;let h=typeof t.error==="function"?await t.error(`HTTP error! status: ${d.status}`):t.error,p=typeof t.description==="function"?await t.description(`HTTP error! status: ${d.status}`):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(d instanceof Error){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(t.success!==void 0){i=!1;let h=typeof t.success==="function"?await t.success(d):t.success,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"success",description:p,...m})}}).catch(async(d)=>{if(s=["reject",d],t.error!==void 0){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((d,h)=>c.then(()=>s[0]==="reject"?h(s[1]):d(s[1])).catch(h));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Pt,sm=(e,t)=>Pt.message(e,t),cm=()=>Pt.toasts,am=()=>Pt.getActiveToasts(),er,mm,Qa;var _a=we(()=>{qa();em={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Wo={top:1,right:2,bottom:1,left:2},nm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},rs={style:nm,duration:em.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"}}};Pt=new im,er=Object.assign(sm,{success:Pt.success,info:Pt.info,warning:Pt.warning,error:Pt.error,message:Pt.message,promise:Pt.promise,dismiss:Pt.dismiss,loading:Pt.loading},{getHistory:cm,getToasts:am});mm=class extends Io{_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=Xa(t.toast.type,t.toastOptions,t.toast.style),r=Ya(t.toast.type,t.toastOptions,t.toast.duration),i=dm(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??Za,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:{...za,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=r,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,r=this._icons,i=n.iconColor??n.borderColor,s=t.type==="loading";if(s&&r!==!1)this._spinnerConfig=ns(r.loading);let c=t.icon??(r===!1?void 0:s?ts(r.loading):es(t.type,r));if(c)this._iconText=new Yr(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new Io(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 Yr(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:Qh.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let d=typeof t.description==="function"?t.description():t.description;if(d)this._descriptionText=new Yr(e,{id:`${this.id}-description`,content:d,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new Io(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&Ja(t.action)){let h=new Yr(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=r===!1?"\xD7":r.close,p=new Yr(e,{id:`${this.id}-close`,content:h,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(p)}}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),Pt.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},tm)}updateToast(e){this._toast=e;let t=Xa(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:es(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=_h(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 r=this._spinnerHandle!==null,i=e.type==="loading";if(r&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!r&&i){if(this._icons!==!1)this._spinnerConfig=ns(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=Ya(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()}},Qa=class extends Io{_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=lm(e,this._options.offset??{}),n=fm(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??Za}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=Pt.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[r]of this._toastRenderables)this.removeToast(r);else{let r=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=r){let s=i-r+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<s;a++){let d=c[a];if(d!==void 0)this.removeToast(d)}}}let n=new mm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(r)=>this.handleToastRemoved(r)});if(this._toastRenderables.set(e.id,n),um(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 os=we(()=>{_a();te();_i({toaster:Qa})});function tl(e){let[t,n]=ue("list"),[r,i]=ue(0),[s,c]=ue(null),[a,d]=ue(!1),[h,p]=ue(!1),[m,b]=ue(!1),[A,F]=ue(!1),[v,S]=ue(new Set),[D,M]=ue(!1),[w,y]=ue(null),P=(X)=>{let H=new Set(v());if(H.has(X))H.delete(X);else H.add(X);S(H)},K=(X)=>{S(new Set(X))},T=(X)=>{let H=new Set(X),U=v(),J=new Set;for(let q of U)if(H.has(q))J.add(q);if(J.size!==U.size)S(J)},G=()=>{S(new Set)};return z(el.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:r,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:d,showCommandPalette:h,setShowCommandPalette:p,showDetailView:m,setShowDetailView:b,inputFocused:A,setInputFocused:F,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:v,toggleWorktreeSelection:P,selectAllNonMain:K,pruneSelectedWorktrees:T,clearSelection:G,showBulkActions:D,setShowBulkActions:M,focusPickerData:w,setFocusPickerData:y},get children(){return e.children}})}function ot(){let e=Lt(el);if(!e)throw Error("useApp must be used within AppProvider");return e}var el;var Jt=we(()=>{te();Ue();el=On()});var Ft,Zr,is,Qr;var zt=we(()=>{Ft=class Ft extends Error{exitCode;stderr;command;constructor(e,t,n,r){super(e);this.exitCode=t;this.stderr=n;this.command=r;this.name="GitError"}};Zr=class Zr 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"}};is=class is extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};Qr=class Qr 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 r=Array(e.length),i=0;async function s(){while(i<e.length){let a=i++;r[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(c),r}import{resolve as nl,dirname as pm}from"path";import{mkdirSync as gm,existsSync as xm}from"fs";function _r(e){let t=To.get(e);if(!t)return;if(Date.now()>t.expires){To.delete(e);return}return t.data}function en(e,t,n=wm){return To.set(e,{data:t,expires:Date.now()+n}),t}function ht(){To.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"}}),[r,i,s]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(s!==0)throw new Ft(`git ${e[0]} failed: ${i.trim()}`,s,i.trim(),`git ${e.join(" ")}`);return r.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,r]=t.map(Number);if(n<2||n===2&&r<17)throw new Zr(`${n}.${r}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),r=`list:${n}`,i=_r(r);if(i)return i;let s=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,s,n),d=await qt(a,10,async(h)=>({...h,isDirty:await this.isDirty(h.path).catch(()=>!1)}));return en(r,d)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=nl(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 r=e.trim();if(!r)return[];return r.split(/\n\n+/).filter(Boolean).map((s,c)=>{let a=s.split(`
|
|
6
|
-
`),d=a.find((
|
|
7
|
-
`).filter(Boolean).length)}catch{return
|
|
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 r=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${r}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,r=
|
|
3
|
+
var ku=Object.defineProperty;var Ou=(e)=>e;function Mu(e,t){this[e]=Ou.bind(null,t)}var qe=(e,t)=>{for(var n in t)ku(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Mu.bind(t,n)})};var xe=(e,t)=>()=>(e&&(t=e(e=0)),t);var sn=import.meta.require;import{existsSync as Oi,readdirSync as $d,statSync as Gc}from"fs";import{join as Mi,resolve as Cd}from"path";function Pd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Uc(e){return Cd(Pd(e))}function Ed(e){let t=Mi(e,".git");if(!Oi(t))return!1;try{return Gc(t).isDirectory()}catch{return!1}}function Rd(e){return Oi(Mi(e,".git"))}function kd(e){if(!Oi(e))return!1;try{return Gc(e).isDirectory()}catch{return!1}}function Od(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((r)=>r.match(n))}function Md(e,t=Hc,n=[]){let r=Math.max(1,Math.min(t,Sd)),i=Uc(e);if(!kd(i))return[];let s=Od(n),c=new Set,a=(d,h)=>{let p;try{p=$d(d,{withFileTypes:!0})}catch{return}for(let m of p){if(!m.isDirectory()||s(m.name))continue;let b=Mi(d,m.name);if(Rd(b)){if(Ed(b))c.add(b);continue}if(h<r)a(b,h+1)}};return a(i,1),[...c].sort((d,h)=>d.localeCompare(h))}function Jc(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>Uc(i.path))),r=[];for(let i of t){let s=i.depth??Hc,c=i.exclude??[],a=Md(i.path,s,c);for(let d of a){if(n.has(d))continue;n.add(d),r.push({path:d,...i.defaults??{}})}}if(r.length===0)return e;return{...e,repos:[...e.repos??[],...r]}}var Hc=1,Sd=3;var zc=()=>{};import{join as Di,resolve as vo}from"path";import*as an from"fs";function Nt(e,t,n){if(!Array.isArray(e)||e.some((r)=>typeof r!=="string"))n.push({field:t,message:"Must be an array of strings"})}function Zc(){let t=Bun.env.XDG_CONFIG_HOME??Di(Bun.env.HOME??"~",".config");return Di(t,"copse")}function yt(){return Di(Zc(),"config.json")}function Qn(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 r of Object.keys(n))if(!Fd.has(r))t.push({field:r,message:`Unknown field '${r}'`});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 r=n.defaults;for(let i of Object.keys(r))if(!qc.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in r&&typeof r.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in r&&typeof r.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});if("base"in r&&typeof r.base!=="string")t.push({field:"defaults.base",message:"Must be a string"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in r)Nt(r[i],`defaults.${i}`,t);if("sharedDeps"in r&&r.sharedDeps!==void 0)if(typeof r.sharedDeps!=="object"||r.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Fi(r.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 r=0;r<n.repos.length;r++){let i=n.repos[r],s=`repos[${r}]`;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(!Dd.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)Nt(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 Fi(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 d of Object.keys(a))if(!Wd.has(d))t.push({field:`${s}.monorepo.${d}`,message:`Unknown field '${d}'`});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)Nt(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 d=0;d<a.hooks.length;d++){let h=a.hooks[d];if(typeof h!=="object"||h===null){t.push({field:`${s}.monorepo.hooks[${d}]`,message:"Must be an object"});continue}if(!("glob"in h)||typeof h.glob!=="string")t.push({field:`${s}.monorepo.hooks[${d}].glob`,message:"Required string field"});if("copyFiles"in h&&h.copyFiles!==void 0)Nt(h.copyFiles,`${s}.monorepo.hooks[${d}].copyFiles`,t);if("linkFiles"in h&&h.linkFiles!==void 0)Nt(h.linkFiles,`${s}.monorepo.hooks[${d}].linkFiles`,t);if("postCreate"in h&&h.postCreate!==void 0)Nt(h.postCreate,`${s}.monorepo.hooks[${d}].postCreate`,t);if("postRemove"in h&&h.postRemove!==void 0)Nt(h.postRemove,`${s}.monorepo.hooks[${d}].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 r=0;r<n.workspaces.length;r++){let i=n.workspaces[r],s=`workspaces[${r}]`;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(!Ad.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)Nt(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 d of Object.keys(a))if(!qc.has(d))t.push({field:`${s}.defaults.${d}`,message:`Unknown field '${d}'`});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 d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${s}.defaults.${d}`,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 Fi(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 r=n.templates;for(let[i,s]of Object.entries(r)){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 d of Object.keys(a))if(!Id.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`});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 d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${c}.${d}`,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 r=n.lifecycle;for(let i of Object.keys(r))if(!Td.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in r&&typeof r.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in r&&(typeof r.staleAfterDays!=="number"||r.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in r&&(typeof r.maxWorktrees!=="number"||r.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 r=n.sessions;for(let i of Object.keys(r))if(!Bd.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in r&&typeof r[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in r&&typeof r.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in r&&typeof r.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in r&&r.layouts!==void 0)if(typeof r.layouts!=="object"||r.layouts===null||Array.isArray(r.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=r.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 d=c;if(!("windows"in d)||!Array.isArray(d.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let h=0;h<d.windows.length;h++){let p=d.windows[h];if(typeof p!=="object"||p===null){t.push({field:`${a}.windows[${h}]`,message:"Must be an object"});continue}if(!("name"in p)||typeof p.name!=="string")t.push({field:`${a}.windows[${h}].name`,message:"Required string field"});if("command"in p&&typeof p.command!=="string")t.push({field:`${a}.windows[${h}].command`,message:"Must be a string"})}}}if("defaultLayout"in r&&typeof r.defaultLayout==="string"&&"layouts"in r&&typeof r.layouts==="object"&&r.layouts!==null){let i=r.layouts;if(!(r.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${r.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 r=n.profiles;for(let[i,s]of Object.entries(r)){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 d of Object.keys(a))if(!Nd.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`})}}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 r=n.profiles;if(!(n.activeProfile in r))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 Fi(e,t,n){let r=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!r.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)Nt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Nt(e.invalidateOn,`${t}.invalidateOn`,n)}function Ur(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Zn(e){if(Array.isArray(e))return e.map((t)=>Zn(t));if(Ur(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=Zn(r);return t}return e}function Qc(e,t){if(t===void 0)return Zn(e);if(Array.isArray(t))return t.map((i)=>Zn(i));if(!Ur(t))return Zn(t);let n=Ur(e)?e:{},r={};for(let[i,s]of Object.entries(n))r[i]=Zn(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(Ur(c)&&Ur(s)){r[i]=Qc(c,s);continue}r[i]=Zn(s)}return r}function jd(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 Qc(e,t)}function _c(e){let t=e??yt();if(!an.existsSync(t))return structuredClone(Yc);let n;try{let c=yo.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 r=Qn(n);if(r.length>0){let c=r.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=jd(n),s=Qn(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 De(e){return Jc(_c(e))}function Ai(e){return _c(e)}function bt(e,t){let n=vo(t),r=e.repos?.find((i)=>vo(i.path)===n);return{worktreeDir:r?.worktreeDir??e.defaults?.worktreeDir??lr.worktreeDir,copyFiles:r?.copyFiles??e.defaults?.copyFiles??lr.copyFiles,linkFiles:r?.linkFiles??e.defaults?.linkFiles??lr.linkFiles,postCreate:r?.postCreate??e.defaults?.postCreate??lr.postCreate,postRemove:r?.postRemove??e.defaults?.postRemove??lr.postRemove,autoUpstream:r?.autoUpstream??e.defaults?.autoUpstream??lr.autoUpstream,monorepo:r?.monorepo,sharedDeps:r?.sharedDeps??e.defaults?.sharedDeps,base:r?.base??e.defaults?.base}}function kn(e){return(e.repos??[]).map((t)=>vo(t.path))}function $o(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function jt(e){let t=e??yt(),n=e?vo(t,".."):Zc();if(!an.existsSync(n))yo.mkdirSync(n,{recursive:!0,mode:448});if(an.existsSync(t))return t;return _n(t,`${JSON.stringify(Yc,null,2)}
|
|
4
|
+
`),t}function ea(e){let t=e??yt(),n=an.existsSync(t);return{path:jt(e),created:!n}}function Co(e,t){return e.templates?.[t]}function So(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 _t(e){return e.sessions??{}}function fr(e,t){let n=e.sessions;if(!n?.layouts)return;let r=t??n.defaultLayout;if(!r)return;return n.layouts[r]}function ta(e,t,n){if(t.length===0)return;let r=e;for(let s=0;s<t.length-1;s++){let c=t[s],a=t[s+1],d=r[c];if(d===void 0||d===null)r[c]=typeof a==="number"?[]:{};r=r[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(r)&&typeof i==="number")r.splice(i,1);else delete r[i];return}r[i]=n}function _n(e,t){let n=`${e}.tmp.${Date.now()}`;try{an.writeFileSync(n,t,{encoding:"utf-8",mode:384});let r=JSON.parse(t),i=Qn(r);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);yo.renameSync(n,e)}catch(r){if(an.existsSync(n))yo.unlinkSync(n);throw r}}var yo,Xc="~/.copse/worktrees/{repo}-{branch}",Yc,lr,Fd,qc,Dd,Ad,Wd,Id,Td,Bd,Nd;var Ye=xe(()=>{zc();yo=an,Yc={version:1,defaults:{worktreeDir:Xc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},lr={worktreeDir:Xc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};Fd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),qc=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),Dd=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),Ad=new Set(["path","depth","exclude","defaults"]),Wd=new Set(["autoDetect","extraPatterns","hooks"]),Id=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),Td=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),Bd=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),Nd=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function na(e){let t=String(e),n=t.length-1;return Ze.context.id+(n?String.fromCharCode(96+n):"")+t}function Ti(e){Ze.context=e}function Ld(){return{...Ze.context,id:Ze.getNextContextId(),count:0}}function Jr(e,t){let n=Be,r=Ae,i=e.length===0,s=t===void 0?r:t,c=i?fa:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>$t(()=>On(c)));Ae=c,Be=null;try{return Ot(a,!0)}finally{Be=n,Ae=r}}function ue(e,t){t=t?Object.assign({},Ro,t):Ro;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},r=(i)=>{if(typeof i==="function")if(fe&&fe.running&&fe.sources.has(n))i=i(n.tValue);else i=i(n.value);return ha(n,i)};return[da.bind(n),r]}function oa(e,t,n){let r=Mo(e,t,!0,Mt);if(dr&&fe&&fe.running)tt.push(r);else hr(r)}function en(e,t,n){let r=Mo(e,t,!1,Mt);if(dr&&fe&&fe.running)tt.push(r);else hr(r)}function Ft(e,t,n){la=Zd;let r=Mo(e,t,!1,Mt),i=qr&&Lt(qr);if(i)r.suspense=i;if(!n||!n.render)r.user=!0;dt?dt.push(r):hr(r)}function He(e,t,n){n=n?Object.assign({},Ro,n):Ro;let r=Mo(e,t,!0,0);if(r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,dr&&fe&&fe.running)r.tState=Mt,tt.push(r);else hr(r);return da.bind(r)}function Ud(e){return e&&typeof e==="object"&&"then"in e}function ua(e,t,n){let r,i,s;if(typeof t==="function")r=e,i=t,s=n||{};else r=!0,i=e,s=t||{};let c=null,a=Wi,d=null,h=!1,p=!1,m="initialValue"in s,b=typeof r==="function"&&He(r),D=new Set,[T,v]=(s.storage||ue)(s.initialValue),[E,k]=ue(void 0),[O,w]=ue(void 0,{equals:!1}),[y,S]=ue(m?"ready":"unresolved");if(Ze.context){if(d=Ze.getNextContextId(),s.ssrLoadFrom==="initial")a=s.initialValue;else if(Ze.load&&Ze.has(d))a=Ze.load(d)}function B(U,J,X,re){if(c===U){if(c=null,re!==void 0&&(m=!0),(U===a||J===a)&&s.onHydrated)queueMicrotask(()=>s.onHydrated(re,{value:J}));if(a=Wi,fe&&U&&h)fe.promises.delete(U),h=!1,Ot(()=>{fe.running=!0,A(J,X)},!1);else A(J,X)}return J}function A(U,J){Ot(()=>{if(J===void 0)v(()=>U);S(J!==void 0?"errored":m?"ready":"unresolved"),k(J);for(let X of D.keys())X.decrement();D.clear()},!1)}function V(){let U=qr&&Lt(qr),J=T(),X=E();if(X!==void 0&&!c)throw X;if(Be&&!Be.user&&U)oa(()=>{if(O(),c){if(U.resolved&&fe&&h)fe.promises.add(c);else if(!D.has(U))U.increment(),D.add(U)}});return J}function q(U=!0){if(U!==!1&&p)return;p=!1;let J=b?b():r;if(h=fe&&fe.running,J==null||J===!1){B(c,$t(T));return}if(fe&&c)fe.promises.delete(c);let X,re=a!==Wi?a:$t(()=>{try{return i(J,{value:T(),refetching:U})}catch(he){X=he}});if(X!==void 0){B(c,void 0,Eo(X),J);return}else if(!Ud(re))return B(c,re,void 0,J),re;if(c=re,"v"in re){if(re.s===1)B(c,re.v,void 0,J);else B(c,void 0,Eo(re.v),J);return re}return p=!0,queueMicrotask(()=>p=!1),Ot(()=>{S(m?"refreshing":"pending"),w()},!1),re.then((he)=>B(re,he,void 0,J),(he)=>B(re,void 0,Eo(he),J))}Object.defineProperties(V,{state:{get:()=>y()},error:{get:()=>E()},loading:{get(){let U=y();return U==="pending"||U==="refreshing"}},latest:{get(){if(!m)return V();let U=E();if(U&&!c)throw U;return T()}}});let H=Ae;if(b)oa(()=>(H=Ae,q(!1)));else q(!1);return[V,{refetch:(U)=>Jd(H,()=>q(U)),mutate:v}]}function $t(e){if(!ur&&Be===null)return e();let t=Be;Be=null;try{if(ur)return ur.untrack(e);return e()}finally{Be=t}}function tn(e,t,n){let r=Array.isArray(e),i,s=n&&n.defer;return(c)=>{let a;if(r){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 d=$t(()=>t(a,i,c));return i=a,d}}function ln(e){Ft(()=>$t(e))}function it(e){if(Ae===null);else if(Ae.cleanups===null)Ae.cleanups=[e];else Ae.cleanups.push(e);return e}function Jd(e,t){let n=Ae,r=Be;Ae=e,Be=null;try{return Ot(t,!0)}catch(i){Fo(i)}finally{Ae=n,Be=r}}function zd(e){if(fe&&fe.running)return e(),fe.done;let t=Be,n=Ae;return Promise.resolve().then(()=>{Be=t,Ae=n;let r;if(dr||qr)r=fe||(fe={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise((i)=>r.resolve=i)),r.running=!0;return Ot(e,!1),Be=Ae=null,r?r.done:void 0})}function Mn(e,t){let n=Symbol("context");return{id:n,Provider:Qd(n),defaultValue:e}}function Lt(e){let t;return Ae&&Ae.context&&(t=Ae.context[e.id])!==void 0?t:e.defaultValue}function qd(e){let t=He(e),n=He(()=>Ni(t()));return n.toArray=()=>{let r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}function da(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)hr(this);else{let t=tt;tt=null,Ot(()=>ko(this),!1),tt=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&&fe.sources.has(this))return this.tValue;return this.value}function ha(e,t,n){let r=fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,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)Ot(()=>{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)tt.push(s);else dt.push(s);if(s.observers)pa(s)}if(!c)s.state=Mt;else s.tState=Mt}if(tt.length>1e6)throw tt=[],Error()},!1)}return t}function hr(e){if(!e.fn)return;On(e);let t=Oo;if(sa(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{Ot(()=>{fe&&(fe.running=!0),Be=Ae=e,sa(e,e.tValue,t),Be=Ae=null},!1)})}function sa(e,t,n){let r,i=Ae,s=Be;Be=Ae=e;try{r=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(On),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(On),e.owned=null;return e.updatedAt=n+1,Fo(c)}finally{Be=s,Ae=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)ha(e,r,!0);else if(fe&&fe.running&&e.pure){if(!fe.sources.has(e))e.value=r;fe.sources.add(e),e.tValue=r}else e.value=r;e.updatedAt=n}}function Mo(e,t,n,r=Mt,i){let s={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Ae,context:Ae?Ae.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=r;if(Ae===null);else if(Ae!==fa)if(fe&&fe.running&&Ae.pure)if(!Ae.tOwned)Ae.tOwned=[s];else Ae.tOwned.push(s);else if(!Ae.owned)Ae.owned=[s];else Ae.owned.push(s);if(ur&&s.fn){let c=s.fn,[a,d]=ue(void 0,{equals:!1}),h=ur.factory(c,d);it(()=>h.dispose());let p,m=()=>zd(d).then(()=>{if(p)p.dispose(),p=void 0});s.fn=(b)=>{if(a(),fe&&fe.running){if(!p)p=ur.factory(c,m);return p.track(b)}return h.track(b)}}return s}function Xr(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===zr)return ko(e);if(e.suspense&&$t(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Oo)){if(t&&fe.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let i=e,s=n[r+1];while((i=i.owner)&&i!==s)if(fe.disposed.has(i))return}if((t?e.tState:e.state)===Mt)hr(e);else if((t?e.tState:e.state)===zr){let i=tt;tt=null,Ot(()=>ko(e,n[0]),!1),tt=i}}}function Ot(e,t){if(tt)return e();let n=!1;if(!t)tt=[];if(dt)n=!0;else dt=[];Oo++;try{let r=e();return Xd(n),r}catch(r){if(!n)dt=null;tt=null,Fo(r)}}function Xd(e){if(tt){if(dr&&fe&&fe.running)Yd(tt);else ma(tt);tt=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:r,disposed:i}=fe;dt.push.apply(dt,fe.effects),t=fe.resolve;for(let s of dt)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,Ot(()=>{for(let s of i)On(s);for(let s of r){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)On(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}ia(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,dt),dt=null,ia(!0);return}}let n=dt;if(dt=null,n.length)Ot(()=>la(n),!1);if(t)t()}function ma(e){for(let t=0;t<e.length;t++)Xr(e[t])}function Yd(e){for(let t=0;t<e.length;t++){let n=e[t],r=fe.queue;if(!r.has(n))r.add(n),dr(()=>{r.delete(n),Ot(()=>{fe.running=!0,Xr(n)},!1),fe&&(fe.running=!1)})}}function Zd(e){let t,n=0;for(t=0;t<e.length;t++){let r=e[t];if(!r.user)Xr(r);else e[n++]=r}if(Ze.context){if(Ze.count){Ze.effects||(Ze.effects=[]),Ze.effects.push(...e.slice(0,n));return}Ti()}if(Ze.effects&&(Ze.done||!Ze.count))e=[...Ze.effects,...e],n+=Ze.effects.length,delete Ze.effects;for(t=0;t<n;t++)Xr(e[t])}function ko(e,t){let n=fe&&fe.running;if(n)e.tState=0;else e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let s=n?i.tState:i.state;if(s===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<Oo))Xr(i)}else if(s===zr)ko(i,t)}}}function pa(e){let t=fe&&fe.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];if(t?!r.tState:!r.state){if(t)r.tState=zr;else r.state=zr;if(r.pure)tt.push(r);else dt.push(r);r.observers&&pa(r)}}}function On(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),r=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let s=i.pop(),c=n.observerSlots.pop();if(r<i.length)s.sourceSlots[c]=r,i[r]=s,n.observerSlots[r]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)On(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)ga(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)On(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 ga(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)ga(e.owned[n])}function Eo(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function ca(e,t,n){try{for(let r of t)r(e)}catch(r){Fo(r,n&&n.owner||null)}}function Fo(e,t=Ae){let n=ra&&t&&t.context&&t.context[ra],r=Eo(e);if(!n)throw r;if(dt)dt.push({fn(){ca(r,n,t)},state:Mt});else ca(r,n,t)}function Ni(e){if(typeof e==="function"&&!e.length)return Ni(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=Ni(e[n]);Array.isArray(r)?t.push.apply(t,r):t.push(r)}return t}return e}function Qd(e,t){return function(r){let i;return en(()=>i=$t(()=>{return Ae.context={...Ae.context,[e]:r.value},qd(()=>r.children)}),void 0),i}}function aa(e){for(let t=0;t<e.length;t++)e[t]()}function eh(e,t,n={}){let r=[],i=[],s=[],c=0,a=t.length>1?[]:null;return it(()=>aa(s)),()=>{let d=e()||[],h=d.length,p,m;return d[Hd],$t(()=>{let D,T,v,E,k,O,w,y,S;if(h===0){if(c!==0)aa(s),s=[],r=[],i=[],c=0,a&&(a=[]);if(n.fallback)r=[_d],i[0]=Jr((B)=>{return s[0]=B,n.fallback()}),c=1}else if(c===0){i=Array(h);for(m=0;m<h;m++)r[m]=d[m],i[m]=Jr(b);c=h}else{v=Array(h),E=Array(h),a&&(k=Array(h));for(O=0,w=Math.min(c,h);O<w&&r[O]===d[O];O++);for(w=c-1,y=h-1;w>=O&&y>=O&&r[w]===d[y];w--,y--)v[y]=i[w],E[y]=s[w],a&&(k[y]=a[w]);D=new Map,T=Array(y+1);for(m=y;m>=O;m--)S=d[m],p=D.get(S),T[m]=p===void 0?-1:p,D.set(S,m);for(p=O;p<=w;p++)if(S=r[p],m=D.get(S),m!==void 0&&m!==-1)v[m]=i[p],E[m]=s[p],a&&(k[m]=a[p]),m=T[m],D.set(S,m);else s[p]();for(m=O;m<h;m++)if(m in v){if(i[m]=v[m],s[m]=E[m],a)a[m]=k[m],a[m](m)}else i[m]=Jr(b);i=i.slice(0,c=h),r=d.slice(0)}return i});function b(D){if(s[m]=D,a){let[T,v]=ue(m);return a[m]=v,t(d[m],T)}return t(d[m])}}}function xa(e,t){if(th){if(Ze.context){let n=Ze.context;Ti(Ld());let r=$t(()=>e(t||{}));return Ti(n),r}}return $t(()=>e(t||{}))}function Po(){return!0}function Ii(e){return!(e=typeof e==="function"?e():e)?{}:e}function rh(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Do(...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,He(a)):a}if(Gd&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let d=Ii(e[a])[c];if(d!==void 0)return d}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Ii(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Ii(e[a])));return[...new Set(c)]}},nh);let n={},r=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let d=Object.getOwnPropertyNames(a);for(let h=d.length-1;h>=0;h--){let p=d[h];if(p==="__proto__"||p==="constructor")continue;let m=Object.getOwnPropertyDescriptor(a,p);if(!r[p])r[p]=m.get?{enumerable:!0,configurable:!0,get:rh.bind(n[p]=[m.get.bind(a)])}:m.value!==void 0?m:void 0;else{let b=n[p];if(b){if(m.get)b.push(m.get.bind(a));else if(m.value!==void 0)b.push(()=>m.value)}}}}let i={},s=Object.keys(r);for(let c=s.length-1;c>=0;c--){let a=s[c],d=r[a];if(d&&d.get)Object.defineProperty(i,a,d);else i[a]=d?d.value:void 0}return i}function et(e){let t="fallback"in e&&{fallback:()=>e.fallback};return He(eh(()=>e.each,e.children,t||void 0))}function ie(e){let t=e.keyed,n=He(()=>e.when,void 0,void 0),r=t?n:He(n,void 0,{equals:(i,s)=>!i===!s});return He(()=>{let i=r();if(i){let s=e.children;return typeof s==="function"&&s.length>0?$t(()=>s(t?i:()=>{if(!$t(r))throw oh("Show");return n()})):s}return e.fallback},void 0,void 0)}var Ze,Vd=!1,Kd=(e,t)=>e===t,Bi,Gd,Hd,jw,Ro,ra=null,la,Mt=1,zr=2,fa,Wi,Ae=null,fe=null,dr=null,ur=null,Be=null,tt=null,dt=null,Oo=0,Lw,ia,qr,_d,th=!1,nh,oh=(e)=>`Stale read from <${e}>.`;var Ue=xe(()=>{Ze={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return na(this.context.count)},getNextContextId(){return na(this.context.count++)}};Bi=Symbol("solid-proxy"),Gd=typeof Proxy==="function",Hd=Symbol("solid-track"),jw=Symbol("solid-dev-component"),Ro={equals:Kd},la=ma,fa={owned:null,cleanups:null,context:null,owner:null},Wi={};[Lw,ia]=ue(!1);_d=Symbol("fallback");nh={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:Po,deleteProperty:Po,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Po,deleteProperty:Po}},ownKeys(e){return e.keys()}}});function wa(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=ih.get(e))!==null&&t!==void 0?t:e}var ji,ih,ba;var va=xe(()=>{ih=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]]),ba=(ji=String.fromCodePoint)!==null&&ji!==void 0?ji:(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 ya(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,r=new Uint16Array(n/2);for(let i=0,s=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);r[s++]=c|a<<8}return r}var $a;var Ca=xe(()=>{$a=ya("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 Sa=xe(()=>{(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 Vi(e){return e>=Je.ZERO&&e<=Je.NINE}function sh(e){return e>=Je.UPPER_A&&e<=Je.UPPER_F||e>=Je.LOWER_A&&e<=Je.LOWER_F}function ch(e){return e>=Je.UPPER_A&&e<=Je.UPPER_Z||e>=Je.LOWER_A&&e<=Je.LOWER_Z||Vi(e)}function ah(e){return e===Je.EQUALS||ch(e)}class Ki{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=fn.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)===Je.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)|Pa)===Je.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(Vi(n)||sh(n)){let r=n<=Je.NINE?n-Je.ZERO:(n|Pa)-Je.LOWER_A+10;this.result=this.result*16+r,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Vi(n))this.result=this.result*10+(n-Je.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===Je.SEMI)this.consumed+=1;else if(this.decodeMode===fn.Strict)return 0;if(this.emitCodePoint(wa(this.result),this.consumed),this.errors){if(e!==Je.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(r&ht.FLAG13)!==0){let c=(r&ht.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=r&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,d=n[this.treeIndex+1+(a>>1)],h=a%2===0?d&255:d>>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),r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Je.SEMI&&i!==0&&(r&ht.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=fh(n,r,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===fn.Attribute&&(i===0||ah(s))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14,i!==0){if(s===Je.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==fn.Strict&&(r&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,r=(n[t]&ht.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;if(this.emitCodePoint(t===1?r[e]&~(ht.VALUE_LENGTH|ht.FLAG13):r[e+1],n),t===3)this.emitCodePoint(r[e+2],n);return n}end(){var e;switch(this.state){case at.NamedEntity:return this.result!==0&&(this.decodeMode!==fn.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 lh(e){let t="",n=new Ki(e,(r)=>t+=ba(r));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 d=t+i.slice(c);return t="",d}}function fh(e,t,n,r){let i=(t&ht.BRANCH_LENGTH)>>7,s=t&ht.JUMP_TABLE;if(i===0)return s!==0&&r===s?n:-1;if(s){let h=r-s;return h<0||h>=i?-1:e[n+h]-1}let c=i+1>>1,a=0,d=i-1;while(a<=d){let h=a+d>>>1,p=h>>1,b=e[n+p]>>(h&1)*8&255;if(b<r)a=h+1;else if(b>r)d=h-1;else return e[n+c+h]}return-1}function er(e,t=fn.Legacy){return uh(e,t)}var Je,Pa=32,at,fn,uh;var Ea=xe(()=>{va();Ca();Sa();(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"})(Je||(Je={}));(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"})(fn||(fn={}));uh=lh($a)});var Ra,ka;var Ma=xe(()=>{Ea();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ra||(Ra={}));(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"})(ka||(ka={}))});import{CliRenderer as hh,createCliRenderer as mh,engine as ph}from"@opentui/core";import{createTestRenderer as n1}from"@opentui/core/testing";import{ASCIIFontRenderable as gh,BoxRenderable as xh,CodeRenderable as bh,DiffRenderable as wh,InputRenderable as vh,LineNumberRenderable as yh,MarkdownRenderable as $h,ScrollBoxRenderable as Ch,SelectRenderable as Sh,TabSelectRenderable as Ph,TextareaRenderable as Eh,TextAttributes as Gi,TextNodeRenderable as Rh,TextRenderable as kh}from"@opentui/core";import{engine as i1,Timeline as s1}from"@opentui/core";import{BaseRenderable as Ba,createTextAttributes as Mh,InputRenderable as Hi,InputRenderableEvents as Yr,isTextNodeRenderable as zi,parseColor as Fa,Renderable as Fh,RootTextNodeRenderable as Dh,ScrollBoxRenderable as Ah,SelectRenderable as Da,SelectRenderableEvents as Ui,TabSelectRenderable as Aa,TabSelectRenderableEvents as Ji,TextNodeRenderable as Wh,TextRenderable as Na}from"@opentui/core";import{BaseRenderable as Hh,isTextNodeRenderable as Uh,TextNodeRenderable as Jh,TextRenderable as zh,Yoga as Ia}from"@opentui/core";import{TimeToFirstDrawRenderable as Yh}from"@opentui/core";import{createSlotRegistry as b1}from"@opentui/core";function Th({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:r,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:d,getFirstChild:h,getNextSibling:p}){function m(w,y,S,B){if(S!==void 0&&!B)B=[];if(typeof y!=="function")return b(w,y,B,S);en((A)=>b(w,y(),A,S),B)}function b(w,y,S,B,A){while(typeof S==="function")S=S();if(y===S)return S;let V=typeof y,q=B!==void 0;if(V==="string"||V==="number"){if(V==="number")y=y.toString();if(q){let H=S[0];if(H&&r(H))i(H,y);else H=t(y);S=v(w,S,B,H)}else if(S!==""&&typeof S==="string")i(h(w),S=y);else v(w,S,B,t(y)),S=y}else if(y==null||V==="boolean")S=v(w,S,B);else if(V==="function")return en(()=>{let H=y();while(typeof H==="function")H=H();S=b(w,H,S,B)}),()=>S;else if(Array.isArray(y)){let H=[];if(D(H,y,A))return en(()=>S=b(w,H,S,B,!0)),()=>S;if(H.length===0){let U=v(w,S,B);if(q)return S=U}else if(Array.isArray(S))if(S.length===0)E(w,H,B);else T(w,S,H);else if(S==null||S==="")E(w,H);else T(w,q&&S||[h(w)],H);S=H}else{if(Array.isArray(S)){if(q)return S=v(w,S,B,y);v(w,S,null,y)}else if(S==null||S===""||!h(w))s(w,y);else k(w,y,h(w));S=y}return S}function D(w,y,S){let B=!1;for(let A=0,V=y.length;A<V;A++){let q=y[A],H;if(q==null||q===!0||q===!1);else if(Array.isArray(q))B=D(w,q)||B;else if((H=typeof q)==="string"||H==="number")w.push(t(q));else if(H==="function")if(S){while(typeof q==="function")q=q();B=D(w,Array.isArray(q)?q:[q])||B}else w.push(q),B=!0;else w.push(q)}return B}function T(w,y,S){let B=S.length,A=y.length,V=B,q=0,H=0,U=p(y[A-1]),J=null;while(q<A||H<V){if(y[q]===S[H]){q++,H++;continue}while(y[A-1]===S[V-1])A--,V--;if(A===q){let X=V<B?H?p(S[H-1]):S[V-H]:U;while(H<V)s(w,S[H++],X)}else if(V===H)while(q<A){if(!J||!J.has(y[q]))c(w,y[q]);q++}else if(y[q]===S[V-1]&&S[H]===y[A-1]){let X=p(y[--A]);s(w,S[H++],p(y[q++])),s(w,S[--V],X),y[A]=S[V]}else{if(!J){J=new Map;let re=H;while(re<V)J.set(S[re],re++)}let X=J.get(y[q]);if(X!=null)if(H<X&&X<V){let re=q,he=1,_;while(++re<A&&re<V){if((_=J.get(y[re]))==null||_!==X+he)break;he++}if(he>X-H){let me=y[q];while(H<X)s(w,S[H++],me)}else k(w,S[H++],y[q++])}else q++;else c(w,y[q++])}}}function v(w,y,S,B){if(S===void 0){let V;while(V=h(w))c(w,V);return B&&s(w,B),B??""}let A=B||n();if(y.length){let V=!1;for(let q=y.length-1;q>=0;q--){let H=y[q];if(A!==H){let U=d(H)===w;if(!V&&!q)U?k(w,A,H):s(w,A,S);else U&&c(w,H)}else V=!0}}else s(w,A,S);return[A]}function E(w,y,S){for(let B=0,A=y.length;B<A;B++)s(w,y[B],S)}function k(w,y,S){s(w,y,S),c(w,S)}function O(w,y,S={},B){if(y||(y={}),!B)en(()=>S.children=b(w,y.children,S.children));return en(()=>y.ref&&y.ref(w)),en(()=>{for(let A in y){if(A==="children"||A==="ref")continue;let V=y[A];if(V===S[A])continue;a(w,A,V,S[A]),S[A]=V}}),S}return{render(w,y){let S;return Jr((B)=>{S=B,m(y,w())}),S},insert:m,spread(w,y,S){if(typeof y==="function")en((B)=>O(w,y(),B,S));else O(w,y,void 0,S)},createElement:e,createTextNode:t,insertNode:s,setProp(w,y,S,B){return a(w,y,S,B),S},mergeProps:Do,effect:en,memo:Ih,createComponent:xa,use(w,y,S){return $t(()=>w(y,S))}}}function Bh(e){let t=Th(e);return t.mergeProps=Do,t}function Qi(e){if(!Ao.has(e))Ao.set(e,0);let t=Ao.get(e)+1;return Ao.set(e,t),`${e}-${t}`}function Nh(e,t,n){if(lt("Inserting node:",st(t),"into parent:",st(e),"with anchor:",st(n),t instanceof mr),t instanceof Zr)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Zr)n=n.getSlotChild(e);if(zi(t)){if(!(e instanceof Na)&&!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 Ba))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 r=qi(e),i=r.findIndex((s)=>s.id===n.id);if(i===-1)lt("[INSERT]","Could not find anchor",st(e),st(n),"[children]",...r.map((s)=>s.id));e.add(t,i)}function jh(e,t){if(lt("Removing node:",st(t),"from parent:",st(e)),t instanceof Zr)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ba&&!t.parent){t.destroyRecursively();return}})}function Lh(e){lt("Creating text node:",e);let t=Qi("text-node");if(typeof e==="number")e=e.toString();return mr.fromString(er(e),{id:t})}function Vh(){let e=Qi("slot-node");return lt("Creating slot node",e),new Zr(e)}function Wa(e){lt("Getting parent of node:",st(e));let t=e.parent??void 0;if(t instanceof Dh)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof Ah&&n.content===t)t=n;return t}function es(e){Object.assign(Ha,e)}function Xh(){return Ha}var Zi,un=()=>{let e=Lt(Zi);if(!e)throw Error("No renderer found");return e},Oh=(e)=>{let t=un();ln(()=>{t.on("resize",e)}),it(()=>{t.off("resize",e)})},nt=()=>{let e=un(),[t,n]=ue({width:e.width,height:e.height});return Oh((i,s)=>{n({width:i,height:s})}),t},rt=(e,t)=>{let r=un().keyInput;ln(()=>{if(r.on("keypress",e),t?.release)r.on("keyrelease",e)}),it(()=>{if(r.off("keypress",e),t?.release)r.off("keyrelease",e)})},pr=(e)=>{let n=un().keyInput;ln(()=>{n.on("paste",e)}),it(()=>{n.off("paste",e)})},Ta=(e)=>{let t=un();ln(()=>{t.on("selection",e)}),it(()=>{t.off("selection",e)})},Ih=(e)=>He(()=>e()),Ao,lt=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},mr,st=(e)=>{if(!e)return;return e.id},qi=(e)=>{let t;if(e instanceof Na)t=e.getTextChildren();else t=e.getChildren();return t},Kh,K,We,z,l,j,f,L,Gh,o,h1,m1,_i,ja,La,Zr,Qr,Wo,Xi,Yi,Va,Ka,Ga,qh,Ha,Zh=(e,t)=>{let n,r=!1,i=!1,s=!0,c=!1,a=e.destroy.bind(e),d=()=>{if(i)return;if(!n){r=!0;return}i=!0,n()};e.once("destroy",d),e.destroy=()=>{if(s){c=!0;return}a()};try{n=Kh(()=>z(Zi.Provider,{get value(){return e},get children(){return z(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(r)d();if(c)a()},Ua=async(e,t={})=>{let n=t instanceof hh?t:await mh({...t,onDestroy:()=>{t.onDestroy?.()}});ph.attach(n),Zh(n,e)};var te=xe(()=>{Ue();Ma();Ue();Ue();Ue();Zi=Mn();Ao=new Map;mr=class mr extends Wh{static fromString(e,t={}){let n=new mr(t);return n.add(e),n}};({render:Kh,effect:K,memo:We,createComponent:z,createElement:l,createTextNode:j,insertNode:f,insert:L,spread:Gh,setProp:o,mergeProps:h1,use:m1}=Bh({createElement(e){lt("Creating element:",e);let t=Qi(e),n=Lt(Zi);if(!n)throw Error("No renderer found");let r=Xh();if(!r[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new r[e](n,{id:t});return lt("Element created with id:",t),i},createTextNode:Lh,createSlotNode:Vh,replaceText(e,t){if(lt("Replacing text:",t,"in node:",st(e)),!(e instanceof mr))return;e.replace(er(t),0)},setProperty(e,t,n,r){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(r)e.off(i,r);return}if(zi(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Mh(n),e.fg=n.fg?Fa(n.fg):e.fg,e.bg=n.bg?Fa(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 Fh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof Da)i=Ui.SELECTION_CHANGED;else if(e instanceof Aa)i=Ji.SELECTION_CHANGED;else if(e instanceof Hi)i=Yr.CHANGE;if(!i)break;if(n)e.on(i,n);if(r)e.off(i,r);break;case"onInput":if(e instanceof Hi){if(n)e.on(Yr.INPUT,n);if(r)e.off(Yr.INPUT,r)}break;case"onSubmit":if(e instanceof Hi){if(n)e.on(Yr.ENTER,n);if(r)e.off(Yr.ENTER,r)}else e[t]=n;break;case"onSelect":if(e instanceof Da){if(n)e.on(Ui.ITEM_SELECTED,n);if(r)e.off(Ui.ITEM_SELECTED,r)}else if(e instanceof Aa){if(n)e.on(Ji.ITEM_SELECTED,n);if(r)e.off(Ji.ITEM_SELECTED,r)}break;case"style":for(let s in n){let c=n[s];if(r!==void 0&&c===r[s])continue;e[s]=c}break;case"text":case"content":{let s=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=er(s);break}default:e[t]=n}},isTextNode(e){return e instanceof mr},insertNode:Nh,removeNode:jh,getParentNode:Wa,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=Wa(e);if(!t){lt("No parent found for node:",st(e));return}let n=qi(t),r=n.indexOf(e);if(r===-1||r===n.length-1){lt("No next sibling found for node:",st(e));return}let i=n[r+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}}));_i=class _i extends Hh{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}};ja=class ja extends Jh{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()}};La=class La extends _i{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Ia.default.Node.create(),this.yogaNode.setDisplay(Ia.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};Zr=class Zr extends _i{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(Uh(e)||e instanceof zh){if(!this.textNode)this.textNode=new ja(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new La(`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()}};Qr=class Qr extends Rh{_ctx;constructor(e,t){super(t);this._ctx=e}};Wo=class Wo extends Qr{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|Gi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|Gi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|Gi.UNDERLINE}};Xi=class Xi extends Wo{constructor(e){super(e,"b")}};Yi=class Yi extends Wo{constructor(e){super(e,"i")}};Va=class Va extends Wo{constructor(e){super(e,"u")}};Ka=class Ka extends Qr{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
+
`)}};Ga=class Ga extends Qr{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};qh={box:xh,text:kh,input:vh,select:Sh,textarea:Eh,ascii_font:gh,tab_select:Ph,scrollbox:Ch,code:bh,diff:wh,line_number:yh,markdown:$h,span:Qr,strong:Xi,b:Xi,em:Yi,i:Yi,u:Va,br:Ka,a:Ga},Ha={...qh};es({time_to_first_draw:Yh})});function Ja(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function za(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function ts(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 ns(t.loading);default:return""}}function ns(e){if(Ja(e))return e.frames[0]??"\u25CC";return e}function rs(e){return Ja(e)?e:null}var Qh,qa;var Xa=xe(()=>{Qh={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},qa={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:Qh,close:"\xD7"}});import{BoxRenderable as To,TextAttributes as _h,TextRenderable as _r,parseColor as em}from"@opentui/core";function im(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function fm(e,t={}){let[n,r]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??Io.top;else i.bottom=t.bottom??Io.bottom;if(r==="left")i.left=t.left??Io.left,i.alignItems="flex-start";else if(r==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??Io.right,i.alignItems="flex-end";return i}function um(e){return e.includes("center")}function dm(e){return e.startsWith("top")}function hm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:r,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??r??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??r??n??t.left}}function mm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function Ya(e,t,n){let r=os.style,i=os[e]?.style,s=t?.style,c=t?.[e]?.style,a=mm(r,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function Za(e,t,n){if(n!==void 0)return n;let r=t?.[e]?.duration;if(r!==void 0)return r;if(t?.duration!==void 0)return t.duration;return os.duration}var tm,nm=200,Qa=60,Io,rm,os,om=1,sm=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,r=typeof e.id==="number"||e.id&&e.id.length>0?e.id:om++,i=this.toasts.find((c)=>c.id===r),s=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(r))this.dismissedToasts.delete(r);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===r)return this.publish({...c,...e,id:r,title:t}),{...c,...e,id:r,dismissible:s,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:s,id:r,type:e.type??"default"});return r};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 r=e instanceof Function?e():e,i=n!==void 0,s,c=r.then(async(d)=>{if(s=["resolve",d],im(d)&&!d.ok){i=!1;let h=typeof t.error==="function"?await t.error(`HTTP error! status: ${d.status}`):t.error,p=typeof t.description==="function"?await t.description(`HTTP error! status: ${d.status}`):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(d instanceof Error){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(t.success!==void 0){i=!1;let h=typeof t.success==="function"?await t.success(d):t.success,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"success",description:p,...m})}}).catch(async(d)=>{if(s=["reject",d],t.error!==void 0){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((d,h)=>c.then(()=>s[0]==="reject"?h(s[1]):d(s[1])).catch(h));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ct,cm=(e,t)=>Ct.message(e,t),am=()=>Ct.toasts,lm=()=>Ct.getActiveToasts(),tr,pm,_a;var el=xe(()=>{Xa();tm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Io={top:1,right:2,bottom:1,left:2},rm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},os={style:rm,duration:tm.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"}}};Ct=new sm,tr=Object.assign(cm,{success:Ct.success,info:Ct.info,warning:Ct.warning,error:Ct.error,message:Ct.message,promise:Ct.promise,dismiss:Ct.dismiss,loading:Ct.loading},{getHistory:am,getToasts:lm});pm=class extends To{_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=Ya(t.toast.type,t.toastOptions,t.toast.style),r=Za(t.toast.type,t.toastOptions,t.toast.duration),i=hm(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??Qa,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:{...qa,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=r,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,r=this._icons,i=n.iconColor??n.borderColor,s=t.type==="loading";if(s&&r!==!1)this._spinnerConfig=rs(r.loading);let c=t.icon??(r===!1?void 0:s?ns(r.loading):ts(t.type,r));if(c)this._iconText=new _r(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new To(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 _r(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:_h.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let d=typeof t.description==="function"?t.description():t.description;if(d)this._descriptionText=new _r(e,{id:`${this.id}-description`,content:d,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new To(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&za(t.action)){let h=new _r(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=r===!1?"\xD7":r.close,p=new _r(e,{id:`${this.id}-close`,content:h,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(p)}}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),Ct.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},nm)}updateToast(e){this._toast=e;let t=Ya(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:ts(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=em(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 r=this._spinnerHandle!==null,i=e.type==="loading";if(r&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!r&&i){if(this._icons!==!1)this._spinnerConfig=rs(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=Za(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()}},_a=class extends To{_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=fm(e,this._options.offset??{}),n=um(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??Qa}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=Ct.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[r]of this._toastRenderables)this.removeToast(r);else{let r=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=r){let s=i-r+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<s;a++){let d=c[a];if(d!==void 0)this.removeToast(d)}}}let n=new pm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(r)=>this.handleToastRemoved(r)});if(this._toastRenderables.set(e.id,n),dm(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 is=xe(()=>{el();te();es({toaster:_a})});function nl(e){let[t,n]=ue("list"),[r,i]=ue(0),[s,c]=ue(null),[a,d]=ue(!1),[h,p]=ue(!1),[m,b]=ue(!1),[D,T]=ue(!1),[v,E]=ue(new Set),[k,O]=ue(!1),[w,y]=ue(null),S=(q)=>{let H=new Set(v());if(H.has(q))H.delete(q);else H.add(q);E(H)},B=(q)=>{E(new Set(q))},A=(q)=>{let H=new Set(q),U=v(),J=new Set;for(let X of U)if(H.has(X))J.add(X);if(J.size!==U.size)E(J)},V=()=>{E(new Set)};return z(tl.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:r,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:d,showCommandPalette:h,setShowCommandPalette:p,showDetailView:m,setShowDetailView:b,inputFocused:D,setInputFocused:T,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:v,toggleWorktreeSelection:S,selectAllNonMain:B,pruneSelectedWorktrees:A,clearSelection:V,showBulkActions:k,setShowBulkActions:O,focusPickerData:w,setFocusPickerData:y},get children(){return e.children}})}function ot(){let e=Lt(tl);if(!e)throw Error("useApp must be used within AppProvider");return e}var tl;var zt=xe(()=>{te();Ue();tl=Mn()});var St,eo,ss,to;var qt=xe(()=>{St=class St extends Error{exitCode;stderr;command;constructor(e,t,n,r){super(e);this.exitCode=t;this.stderr=n;this.command=r;this.name="GitError"}};eo=class eo 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"}};ss=class ss extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};to=class to extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Xt(e,t,n){let r=Array(e.length),i=0;async function s(){while(i<e.length){let a=i++;r[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(c),r}import{resolve as rl,dirname as gm}from"path";import{mkdirSync as xm,existsSync as bm}from"fs";function gr(e){let t=Bo.get(e);if(!t)return;if(Date.now()>t.expires){Bo.delete(e);return}return t.data}function Vt(e,t,n=wm){return Bo.set(e,{data:t,expires:Date.now()+n}),t}function ft(){Bo.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"}}),[r,i,s]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(s!==0)throw new St(`git ${e[0]} failed: ${i.trim()}`,s,i.trim(),`git ${e.join(" ")}`);return r.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,r]=t.map(Number);if(n<2||n===2&&r<17)throw new eo(`${n}.${r}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),r=`list:${n}`,i=gr(r);if(i)return i;let s=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,s,n),d=await Xt(a,10,async(h)=>({...h,isDirty:await this.isDirty(h.path).catch(()=>!1)}));return Vt(r,d)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=rl(i);if(!t.has(s))t.add(s),n.push(s)}return(await Xt(n,5,async(i)=>{try{return await this.list(i)}catch{return[]}})).flat()}static parsePorcelain(e,t,n){let r=e.trim();if(!r)return[];return r.split(/\n\n+/).filter(Boolean).map((s,c)=>{let a=s.split(`
|
|
6
|
+
`),d=a.find((E)=>E.startsWith("worktree ")),h=a.find((E)=>E.startsWith("HEAD ")),p=a.find((E)=>E.startsWith("branch ")),m=a.find((E)=>E.startsWith("locked")),b=d?.slice(9)??"",D=h?.slice(5)??"",T=null;if(p)T=p.slice(7).replace(/^refs\/heads\//,"");let v=m&&m.startsWith("locked ")?m.slice(7):void 0;return{path:b,branch:T,head:D,isMain:c===0,isDirty:!1,isLocked:Boolean(m),lockReason:v,repoName:t,repoPath:n}})}static async add(e,t,n,r){await this.checkVersion();let i=gm(t);if(!bm(i))xm(i,{recursive:!0});let c=!await this.localBranchExists(e,r),a=["worktree","add",t,e];if(c)a=["worktree","add","-b",e,t,n?.base??"HEAD"];await this.run(a,r),ft()}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 r=["worktree","remove",e];if(t?.force)r.push("--force");await this.run(r,n),ft()}static async move(e,t,n){await this.checkVersion(),await this.run(["worktree","move",e,t],n),ft()}static async prune(e){await this.checkVersion(),await this.run(["worktree","prune"],e),ft()}static async isWorktree(e){let t=e??Bun.cwd;try{let n=await this.run(["rev-parse","--git-dir"],t),r=await this.run(["rev-parse","--git-common-dir"],t);return n!==r&&!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),r=rl(t,n);return r.endsWith("/.git")?r.slice(0,-5):r}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,r=`ahead-behind:${n}:${e}`,i=gr(r);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,d]=c.split(/\s+/).map(Number);return Vt(r,{ahead:d??0,behind:a??0})}catch{return Vt(r,{ahead:0,behind:0})}}static async getLastCommit(e){let t=e??Bun.cwd,n=`last-commit:${t}`,r=gr(n);if(r!==void 0)return r;try{let i=await this.run(["log","-1","--format=%h\x1F%s\x1F%cr"],t);if(!i)return Vt(n,null);let[s,c,a]=i.split("\x1F");return Vt(n,{hash:s??"",message:c??"",relativeDate:a??""})}catch{return Vt(n,null)}}static async getDirtyCount(e){let t=e??Bun.cwd,n=`dirty-count:${t}`,r=gr(n);if(r!==void 0)return r;try{let i=await this.run(["status","--porcelain"],t);if(!i)return Vt(n,0);return Vt(n,i.split(`
|
|
7
|
+
`).filter(Boolean).length)}catch{return Vt(n,0)}}static async unlock(e,t){await this.checkVersion(),await this.run(["worktree","unlock",e],t),ft()}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 r=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${r}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,r=gr(n);if(r)return r;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
9
|
`).filter(Boolean)){let[d,h]=a.split("\x1F");c.push({name:d??"",isRemote:!1,lastCommitDate:h??""})}for(let a of s.split(`
|
|
10
|
-
`).filter(Boolean)){let[d,h]=a.split("\x1F");if(!d||d.endsWith("/HEAD"))continue;let p=d.replace(/^[^/]+\//,"");if(c.some((m)=>m.name===p))continue;c.push({name:p,isRemote:!0,lastCommitDate:h??""})}return
|
|
11
|
-
`),{
|
|
12
|
-
`).filter(Boolean).filter((r)=>r.startsWith(`${t}_`)||r.startsWith(`${t}:`)).map((r)=>{let[i,s,c,a]=r.split("|");return{name:i??"",windows:parseInt(s??"0",10),attached:c==="1",created:a??""}})}catch{return[]}}async function Vo(e,t,n){let r=Fn(e,n?.prefix),i=n?.attach??!0;if(await hn(r)){if(i)await Lo(r);return r}if(await Im(r,t,n?.layout),Wm(t,{name:r,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Lo(r);return r}async function Ko(e,t,n){let r=Fn(e,n),i=await hn(r);if(i)await ds(r);return fs(t),i}var gr,cl="copse";var Dn=we(()=>{Mn();gr=class gr extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function ll(e){let[t,n]=ue([]),r=(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((d)=>[...d,{...s,id:c}].slice(-5)),setTimeout(()=>{r(c)},a)};return z(al.Provider,{value:{toasts:t,addToast:i,removeToast:r},get children(){return e.children}})}function nn(){let e=Lt(al);if(!e)throw Error("useToast must be used within ToastProvider");return e}var al;var tr=we(()=>{te();Ue();al=On()});function wr(e){let[t,n]=ue(0),r=setInterval(()=>{n((i)=>(i+1)%fl.length)},80);return it(()=>clearInterval(r)),(()=>{var i=l("box"),s=l("text");return f(i,s),o(i,"flexDirection","row"),o(i,"gap",1),j(s,()=>fl[t()]),j(i,(()=>{var c=We(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return j(a,()=>e.label),L((d)=>o(a,"fg",g.text.secondary,d)),a})()})(),null),L((c)=>o(s,"fg",e.color??g.text.accent,c)),i})()}var fl;var Go=we(()=>{te();te();te();te();te();te();Ue();bt();fl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function ul(e){let t=mt(),n=nn(),r=fn(),i=nt(),s=()=>i().width,c=()=>i().height,[a,d]=ue(null),[h,p]=ue(!0),[m,b]=ue("");Ia((y)=>{let P=y.getSelectedText();if(!P)return;r.copyToClipboardOSC52(P),n.addToast({type:"info",message:"Copied to clipboard"})});let A;it(()=>{if(A)clearTimeout(A)});let F=()=>{return(t.worktrees()??[]).find((K)=>K.isMain)?.branch??"main"};Mt(_t(()=>e.worktree.path,(y)=>{if(A)clearTimeout(A);if(!y){d(null),b(""),p(!1);return}d(null),b(""),p(!0),A=setTimeout(async()=>{if(e.worktree.path!==y)return;try{let[P,[K,T],G]=await Promise.all([Bm(y),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(F(),e.worktree.branch,{stat:!0},y).catch(()=>""),se.diffBetween(F(),e.worktree.branch,void 0,y).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?se.getAheadBehind(e.worktree.branch,y):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==y)return;let X=null;try{X=Vt(y)}catch{}let H=null,U=Kt(y);if(U){let J=await hn(U.name).catch(()=>!1);H={meta:U,active:J}}if(e.worktree.path!==y)return;d({commits:P,diffStat:K,fullDiff:T,aheadBehind:G,focus:X,session:H}),b("")}catch(P){if(e.worktree.path!==y)return;d(null),b(P.message)}finally{if(e.worktree.path===y)p(!1)}},Tm)}));let v=()=>{let y=e.worktree;if(y.isLocked)return"\uD83D\uDD12 locked";if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"},S=()=>{let y=e.worktree;if(y.isLocked)return g.text.warning;if(y.isDirty)return g.text.error;return g.text.success},D=()=>{let y=a();if(!y)return"";let P=[];if(y.aheadBehind.ahead>0)P.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)P.push(`\u2193${y.aheadBehind.behind}`);return P.length>0?P.join(" "):"\u2713 up to date"},M=()=>{let y=a();if(!y)return g.text.secondary;return y.aheadBehind.ahead||y.aheadBehind.behind?g.text.warning:g.text.success},w=()=>"\u2500".repeat(Math.max(s()-7,10));return(()=>{var y=l("box"),P=l("scrollbox"),K=l("box"),T=l("text"),G=l("text"),X=l("box"),H=l("text"),U=l("box"),J=l("box"),q=l("box"),re=l("text"),he=l("text"),_=l("box"),me=l("box"),Re=l("text"),E=l("text"),O=l("box"),V=l("box"),N=l("text"),I=l("text"),ee=l("box"),de=l("box"),ne=l("text"),ge=l("text"),Se=l("box"),pe=l("box"),ve=l("text"),Me=l("box"),Ee=l("text");return f(y,P),o(y,"x",0),o(y,"y",0),f(P,K),f(P,X),f(P,U),f(P,J),f(P,_),f(P,O),f(P,ee),f(P,Se),f(P,pe),f(P,Me),o(P,"x",2),o(P,"y",1),f(K,T),f(K,G),o(K,"height",1),f(T,B("Worktree Detail")),o(T,"x",0),o(T,"y",0),o(T,"bold",!0),o(T,"selectable",!0),f(G,B("(Esc to close)")),o(G,"x",17),o(G,"y",0),o(G,"selectable",!0),f(X,H),o(X,"height",1),o(H,"x",0),o(H,"y",0),o(H,"selectable",!0),j(H,w),o(U,"height",1),f(J,q),f(J,he),o(J,"height",1),o(J,"flexDirection","row"),f(q,re),o(q,"width",16),o(q,"height",1),f(re,B("Branch")),o(re,"x",0),o(re,"y",0),o(re,"selectable",!0),o(he,"selectable",!0),j(he,()=>e.worktree.branch??"(detached)"),f(_,me),f(_,E),o(_,"height",1),o(_,"flexDirection","row"),f(me,Re),o(me,"width",16),o(me,"height",1),f(Re,B("Path")),o(Re,"x",0),o(Re,"y",0),o(Re,"selectable",!0),o(E,"selectable",!0),j(E,()=>e.worktree.path),f(O,V),f(O,I),o(O,"height",1),o(O,"flexDirection","row"),f(V,N),o(V,"width",16),o(V,"height",1),f(N,B("Status")),o(N,"x",0),o(N,"y",0),o(N,"selectable",!0),o(I,"selectable",!0),j(I,v),f(ee,de),f(ee,ge),o(ee,"height",1),o(ee,"flexDirection","row"),f(de,ne),o(de,"width",16),o(de,"height",1),f(ne,B("HEAD")),o(ne,"x",0),o(ne,"y",0),o(ne,"selectable",!0),o(ge,"selectable",!0),j(ge,()=>e.worktree.head?.slice(0,8)),j(P,z(ie,{get when(){return h()},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box");return o(W,"height",1),j(W,z(wr,{label:"Loading details..."})),W})()]}}),Se),j(P,z(ie,{get when(){return We(()=>!h())()&&!!m()},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,()=>`Failed to load details: ${m()}`),L((x)=>o(u,"fg",g.text.error,x)),W})()]}}),Se),j(P,z(ie,{get when(){return We(()=>!h()&&!m())()&&!!a()},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("Upstream")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.accent,x)),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,w),L((x)=>o(u,"fg",g.border.subtle,x)),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Sync")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,D),L((R)=>{var C=g.text.secondary,Q=M();return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W})(),z(ie,{get when(){return a().aheadBehind.ahead>0},get children(){var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Ahead")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,()=>`${a().aheadBehind.ahead} commit(s)`),L((R)=>{var C=g.text.secondary,Q=g.text.warning;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W}}),z(ie,{get when(){return a().aheadBehind.behind>0},get children(){var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Behind")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,()=>`${a().aheadBehind.behind} commit(s)`),L((R)=>{var C=g.text.secondary,Q=g.text.warning;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W}}),(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("Recent Commits")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.accent,x)),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,w),L((x)=>o(u,"fg",g.border.subtle,x)),W})(),z(ie,{get when(){return a().commits.length>0},get fallback(){return(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("No commits found")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.secondary,x)),W})()},get children(){return z(et,{get each(){return a().commits},children:(W)=>(()=>{var u=l("box"),x=l("text");return f(u,x),o(u,"height",1),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),j(x,W),L((k)=>o(x,"fg",g.text.primary,k)),u})()})}}),z(ie,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),j(u,()=>`Diff vs ${F()}`),L((x)=>o(u,"fg",g.text.accent,x)),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,w),L((x)=>o(u,"fg",g.border.subtle,x)),W})(),z(ie,{get when(){return a().diffStat.length>0},get children(){var W=l("code");return o(W,"language","diff"),L((u)=>o(W,"code",a().diffStat,u)),W}}),(()=>{var W=l("box");return o(W,"height",1),W})(),z(ie,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("No changes")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.secondary,x)),W})()},get children(){var W=l("scrollbox"),u=l("diff");return f(W,u),o(W,"height",15),o(u,"view","unified"),L((x)=>{var k=s()-3,R=a().fullDiff;return k!==x.e&&(x.e=o(W,"width",k,x.e)),R!==x.t&&(x.t=o(u,"diff",R,x.t)),x},{e:void 0,t:void 0}),W}})]}}),z(ie,{get when(){return We(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("Focus Paths")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.accent,x)),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,w),L((x)=>o(u,"fg",g.border.subtle,x)),W})(),z(et,{get each(){return a().focus},children:(W)=>(()=>{var u=l("box"),x=l("text");return f(u,x),o(u,"height",1),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),j(x,` \u2022 ${W}`),L((k)=>o(x,"fg",g.text.primary,k)),u})()})]}}),z(ie,{get when(){return a().session},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),f(u,B("Session")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L((x)=>o(u,"fg",g.text.accent,x)),W})(),(()=>{var W=l("box"),u=l("text");return f(W,u),o(W,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),j(u,w),L((x)=>o(u,"fg",g.border.subtle,x)),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Name")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,()=>a().session.meta.name),L((R)=>{var C=g.text.secondary,Q=g.text.primary;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Status")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,()=>a().session.active?"\u25CF active":"\u25CB inactive"),L((R)=>{var C=g.text.secondary,Q=a().session.active?g.text.success:g.text.error;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W})(),z(ie,{get when(){return a().session.meta.layout},get children(){var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Layout")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(k,"selectable",!0),j(k,()=>a().session.meta.layout),L((R)=>{var C=g.text.secondary,Q=g.text.primary;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W}})]}}),z(ie,{get when(){return e.worktree.isMain},get children(){return[(()=>{var W=l("box");return o(W,"height",1),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),k=l("text");return f(W,u),f(W,k),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,B("Type")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),f(k,B("main worktree")),o(k,"selectable",!0),L((R)=>{var C=g.text.secondary,Q=g.text.accent;return C!==R.e&&(R.e=o(x,"fg",C,R.e)),Q!==R.t&&(R.t=o(k,"fg",Q,R.t)),R},{e:void 0,t:void 0}),W})()]}})]}}),Se),o(Se,"height",1),f(pe,ve),o(pe,"height",1),o(ve,"x",0),o(ve,"y",0),o(ve,"selectable",!0),j(ve,w),f(Me,Ee),o(Me,"height",1),f(Ee,B("Esc:back d:delete o:open r:refresh")),o(Ee,"x",0),o(Ee,"y",0),o(Ee,"selectable",!0),L((W)=>{var u=s(),x=c(),k=g.bg.base,R=s()-3,C=c()-3,Q=g.text.accent,oe=g.text.secondary,xe=g.border.subtle,le=g.text.secondary,Ie=g.text.accent,Z=g.text.secondary,ae=g.text.primary,ce=g.text.secondary,Y=S(),Pe=g.text.secondary,$e=g.text.secondary,Ve=g.border.subtle,Ne=g.text.secondary;return u!==W.e&&(W.e=o(y,"width",u,W.e)),x!==W.t&&(W.t=o(y,"height",x,W.t)),k!==W.a&&(W.a=o(y,"backgroundColor",k,W.a)),R!==W.o&&(W.o=o(P,"width",R,W.o)),C!==W.i&&(W.i=o(P,"height",C,W.i)),Q!==W.n&&(W.n=o(T,"fg",Q,W.n)),oe!==W.s&&(W.s=o(G,"fg",oe,W.s)),xe!==W.h&&(W.h=o(H,"fg",xe,W.h)),le!==W.r&&(W.r=o(re,"fg",le,W.r)),Ie!==W.d&&(W.d=o(he,"fg",Ie,W.d)),Z!==W.l&&(W.l=o(Re,"fg",Z,W.l)),ae!==W.u&&(W.u=o(E,"fg",ae,W.u)),ce!==W.c&&(W.c=o(N,"fg",ce,W.c)),Y!==W.w&&(W.w=o(I,"fg",Y,W.w)),Pe!==W.m&&(W.m=o(ne,"fg",Pe,W.m)),$e!==W.f&&(W.f=o(ge,"fg",$e,W.f)),Ve!==W.y&&(W.y=o(ve,"fg",Ve,W.y)),Ne!==W.g&&(W.g=o(Ee,"fg",Ne,W.g)),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,m:void 0,f:void 0,y:void 0,g:void 0}),y})()}async function Bm(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(`
|
|
13
|
-
`).filter(Boolean)}catch{return[]}}var Tm=150;var dl=we(()=>{te();te();te();te();te();te();te();te();Ue();te();un();tr();bt();Xt();Dn();je();Go()});function hl(){let e=ot(),t=mt(),n=nt(),r=()=>{let v=t.worktrees()??[],S=e.selectedWorktreePath();if(S){let D=v.find((M)=>M.path===S);if(D)return D}return v[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[d,h]=ue(!1),[p,m]=ue(""),b;it(()=>{if(b)clearTimeout(b)}),Mt(_t(()=>r()?.path,(v)=>{if(b)clearTimeout(b);if(!v){a(null),h(!1),m("");return}a(null),h(!0),m(""),b=setTimeout(async()=>{let S=r();if(!S||S.path!==v)return;try{let[D,M,w]=await Promise.all([S.branch?se.getAheadBehind(S.branch,S.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(S.path),se.getDirtyCount(S.path)]);if(r()?.path===v)a({aheadBehind:D,lastCommit:M,dirtyCount:w}),m("")}catch(D){if(r()?.path===v)a(null),m(D.message)}finally{if(r()?.path===v)h(!1)}},Nm)}));let A=()=>{if(d())return"Loading...";if(p())return"Unavailable";let v=c();if(!v)return"";let S=[];if(v.aheadBehind.ahead>0)S.push(`\u2191${v.aheadBehind.ahead}`);if(v.aheadBehind.behind>0)S.push(`\u2193${v.aheadBehind.behind}`);return S.length>0?S.join(" "):"\u2713 up to date"},F=()=>{let v=r();if(!v)return"";if(v.isLocked)return"\uD83D\uDD12 locked";let S=c();if(S&&S.dirtyCount>0)return`\u25CF ${S.dirtyCount} file(s) dirty`;if(v.isDirty)return"\u25CF dirty";return"\u2713 clean"};return rt((v)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let S=v.name;if(S==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(S==="return"&&!e.showDetailView()&&r()){e.setShowDetailView(!0);return}if(S==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var v=l("box");return o(v,"width","100%"),o(v,"height","100%"),j(v,z(ie,{get when(){return We(()=>!!e.showDetailView())()&&!!r()},get children(){return z(ul,{get worktree(){return r()}})}}),null),j(v,z(ie,{get when(){return!e.showDetailView()},get children(){return[z(ie,{get when(){return t.loading()},get children(){return z(wr,{label:"Loading worktrees..."})}}),z(ie,{get when(){return We(()=>!t.loading())()&&!!t.error()},get children(){var S=l("box"),D=l("text"),M=l("text"),w=l("text"),y=l("text"),P=l("text"),K=l("text"),T=l("text"),G=l("text"),X=l("text");return f(S,D),f(S,M),f(S,w),f(S,y),f(S,P),f(S,K),f(S,T),f(S,G),f(S,X),o(S,"flexDirection","column"),o(S,"paddingX",2),o(S,"paddingY",1),o(S,"gap",0),f(D,B("Unable to list worktrees")),f(M,B(" ")),j(w,()=>t.error()?.message),f(y,B(" ")),f(P,B("copse needs a git repository to manage worktrees.")),f(K,B(" \xB7 cd into a git repository and relaunch copse, or")),f(T,B(" \xB7 configure repos in ~/.config/copse/config.json")),f(G,B(" ")),f(X,B("Press q to quit, or ^P to open the command palette.")),L((H)=>{var U=g.text.error,J=g.text.secondary,q=g.text.secondary,re=g.text.secondary,he=g.text.secondary,_=g.text.secondary,me=g.text.secondary,Re=g.text.secondary,E=g.text.accent;return U!==H.e&&(H.e=o(D,"fg",U,H.e)),J!==H.t&&(H.t=o(M,"fg",J,H.t)),q!==H.a&&(H.a=o(w,"fg",q,H.a)),re!==H.o&&(H.o=o(y,"fg",re,H.o)),he!==H.i&&(H.i=o(P,"fg",he,H.i)),_!==H.n&&(H.n=o(K,"fg",_,H.n)),me!==H.s&&(H.s=o(T,"fg",me,H.s)),Re!==H.h&&(H.h=o(G,"fg",Re,H.h)),E!==H.r&&(H.r=o(X,"fg",E,H.r)),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}),S}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!!r()},get children(){var S=l("box"),D=l("box"),M=l("text"),w=l("box"),y=l("text"),P=l("box"),K=l("box"),T=l("text"),G=l("text"),X=l("box"),H=l("box"),U=l("text"),J=l("text"),q=l("box"),re=l("box"),he=l("text"),_=l("text"),me=l("box"),Re=l("box"),E=l("text"),O=l("text"),V=l("box"),N=l("box"),I=l("text"),ee=l("text"),de=l("box"),ne=l("text"),ge=l("box"),Se=l("text"),pe=l("text"),ve=l("text"),Me=l("text"),Ee=l("text"),W=l("text");return f(S,D),f(S,w),f(S,P),f(S,X),f(S,q),f(S,me),f(S,V),f(S,de),f(S,ge),o(S,"width","100%"),o(S,"height","100%"),o(S,"flexDirection","column"),o(S,"paddingX",2),o(S,"paddingY",1),f(D,M),o(D,"height",1),o(D,"flexDirection","row"),f(M,B("Worktree Details")),f(w,y),o(w,"height",1),j(y,()=>"\u2500".repeat(Math.max(i()-38,10))),j(S,z(ie,{get when(){return t.isMultiRepo()},get children(){var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),f(k,B("Repo")),j(R,()=>r()?.repoName),L((C)=>{var Q=g.text.secondary,oe=g.text.warning;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),P),f(P,K),f(P,G),o(P,"height",1),o(P,"flexDirection","row"),f(K,T),o(K,"width",14),o(K,"height",1),f(T,B("Branch")),j(G,()=>r()?.branch??"(detached)"),f(X,H),f(X,J),o(X,"height",1),o(X,"flexDirection","row"),f(H,U),o(H,"width",14),o(H,"height",1),f(U,B("Path")),j(J,()=>r()?.path),f(q,re),f(q,_),o(q,"height",1),o(q,"flexDirection","row"),f(re,he),o(re,"width",14),o(re,"height",1),f(he,B("Status")),j(_,F),f(me,Re),f(me,O),o(me,"height",1),o(me,"flexDirection","row"),f(Re,E),o(Re,"width",14),o(Re,"height",1),f(E,B("Sync")),j(O,A),f(V,N),f(V,ee),o(V,"height",1),o(V,"flexDirection","row"),f(N,I),o(N,"width",14),o(N,"height",1),f(I,B("HEAD")),j(ee,()=>r()?.head?.slice(0,8)),j(S,z(ie,{get when(){return c()?.lastCommit},get children(){return[(()=>{var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),f(k,B("Last Commit")),j(R,()=>c().lastCommit.relativeDate),L((C)=>{var Q=g.text.secondary,oe=g.text.primary;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})(),(()=>{var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),j(R,(()=>{var C=We(()=>c().lastCommit.message.length>50);return()=>C()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),L((C)=>{var Q=g.text.secondary,oe=g.text.secondary;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})()]}}),de),j(S,z(ie,{get when(){let u=Vt(r()?.path??"");return u&&u.length>0},get children(){var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),f(k,B("Focus")),j(R,()=>Vt(r()?.path??"")?.join(", ")??""),L((C)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),j(S,z(ie,{get when(){return!!Kt(r()?.path??"")},get children(){var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),f(k,B("Session")),j(R,()=>{let C=Kt(r()?.path??"");if(!C)return"";return C.layout?`${C.name} [${C.layout}]`:C.name}),L((C)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),j(S,z(ie,{get when(){return r()?.isMain},get children(){var u=l("box"),x=l("box"),k=l("text"),R=l("text");return f(u,x),f(u,R),o(u,"height",1),o(u,"flexDirection","row"),f(x,k),o(x,"width",14),o(x,"height",1),f(k,B("Type")),f(R,B("main worktree")),L((C)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==C.e&&(C.e=o(k,"fg",Q,C.e)),oe!==C.t&&(C.t=o(R,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),f(de,ne),o(de,"height",1),j(ne,()=>"\u2500".repeat(Math.max(i()-38,10))),f(ge,Se),f(ge,pe),f(ge,ve),f(ge,Me),f(ge,Ee),f(ge,W),o(ge,"height",1),o(ge,"flexDirection","row"),o(ge,"gap",2),f(Se,B("Enter:detail")),f(pe,B("d:delete")),f(ve,B("a:add")),f(Me,B("o:open")),f(Ee,B("r:refresh")),f(W,B("^P:commands")),L((u)=>{var x=g.bg.surface,k=g.text.accent,R=g.border.subtle,C=g.text.secondary,Q=g.text.accent,oe=g.text.secondary,xe=g.text.primary,le=g.text.secondary,Ie=r()?.isDirty?g.text.error:r()?.isLocked?g.text.warning:g.text.success,Z=g.text.secondary,ae=p()?g.text.error:d()?g.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?g.text.warning:g.text.success,ce=g.text.secondary,Y=g.text.secondary,Pe=g.border.subtle,$e=g.text.secondary,Ve=g.text.secondary,Ne=g.text.secondary,ze=g.text.secondary,ft=g.text.secondary,Fe=g.text.secondary;return x!==u.e&&(u.e=o(S,"backgroundColor",x,u.e)),k!==u.t&&(u.t=o(M,"fg",k,u.t)),R!==u.a&&(u.a=o(y,"fg",R,u.a)),C!==u.o&&(u.o=o(T,"fg",C,u.o)),Q!==u.i&&(u.i=o(G,"fg",Q,u.i)),oe!==u.n&&(u.n=o(U,"fg",oe,u.n)),xe!==u.s&&(u.s=o(J,"fg",xe,u.s)),le!==u.h&&(u.h=o(he,"fg",le,u.h)),Ie!==u.r&&(u.r=o(_,"fg",Ie,u.r)),Z!==u.d&&(u.d=o(E,"fg",Z,u.d)),ae!==u.l&&(u.l=o(O,"fg",ae,u.l)),ce!==u.u&&(u.u=o(I,"fg",ce,u.u)),Y!==u.c&&(u.c=o(ee,"fg",Y,u.c)),Pe!==u.w&&(u.w=o(ne,"fg",Pe,u.w)),$e!==u.m&&(u.m=o(Se,"fg",$e,u.m)),Ve!==u.f&&(u.f=o(pe,"fg",Ve,u.f)),Ne!==u.y&&(u.y=o(ve,"fg",Ne,u.y)),ze!==u.g&&(u.g=o(Me,"fg",ze,u.g)),ft!==u.p&&(u.p=o(Ee,"fg",ft,u.p)),Fe!==u.b&&(u.b=o(W,"fg",Fe,u.b)),u},{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}),S}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!r()},get children(){var S=l("box"),D=l("text"),M=l("text");return f(S,D),f(S,M),o(S,"flexDirection","column"),o(S,"gap",1),f(D,B("No worktree selected.")),f(M,B("Press 'a' to create one.")),L((w)=>{var y=g.text.secondary,P=g.text.accent;return y!==w.e&&(w.e=o(D,"fg",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),S}})]}}),null),L((S)=>o(v,"backgroundColor",g.bg.base,S)),v})()}var Nm=150;var ml=we(()=>{te();te();te();te();te();te();te();te();Ue();Jt();un();te();bt();Xt();Dn();je();dl();Go()});import*as jm from"fs";import{join as An,resolve as mn,dirname as to}from"path";function vr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=An(mn(e),i),c=An(mn(t),i);if(!pn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(pn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{br(to(c),{recursive:!0}),gl(s,c),r.copied.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return r}function yr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=mn(An(mn(e),i)),c=An(mn(t),i);if(!pn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(pn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{br(to(c),{recursive:!0}),xl(s,c),r.linked.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return r}function wl(e,t,n=0){let r=0,i=[];if(n>Gm)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=mn(e),c=mn(t);if(!pn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Km(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return br(to(c),{recursive:!0}),pl(s,c),{linked:1,errors:[]}}catch(d){return{linked:0,errors:[`Failed to hardlink ${e}: ${d.message}`]}}if(!pn(c))br(c,{recursive:!0});try{let d=Vm(s,{withFileTypes:!0});for(let h of d){let p=An(s,h.name),m=An(c,h.name);if(h.isDirectory()){let b=wl(p,m,n+1);if(r+=b.linked,b.errors.length>0)i.push(...b.errors)}else if(h.isFile()){if(pn(m))continue;try{pl(p,m),r++}catch(b){try{gl(p,m),r++}catch(A){i.push(`Failed to link/copy ${h.name}: ${A.message}`)}}}}}catch(d){i.push(`Failed to read directory ${e}: ${d.message}`)}return{linked:r,errors:i}}function bl(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=An(mn(e),c),d=An(mn(t),c);if(!pn(a)){r.skipped.push(c),r.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(pn(d)){r.skipped.push(c);continue}try{if(s==="symlink")br(to(d),{recursive:!0}),xl(a,d),r.linked.push(c);else if(s==="hardlink"){let h=wl(a,d);if(h.linked>0)r.linked.push(c);for(let p of h.errors)r.warnings.push(p)}else br(to(d),{recursive:!0}),Lm(a,d,{recursive:!0}),r.copied.push(c)}catch(h){r.skipped.push(c),r.warnings.push(`Failed to share dep ${c}: ${h.message}`)}}return r}var gl,Lm,pn,xl,Q0,pl,Vm,Km,br,Gm=30;var Ho=we(()=>{({copyFileSync:gl,cpSync:Lm,existsSync:pn,symlinkSync:xl,unlinkSync:Q0,linkSync:pl,readdirSync:Vm,statSync:Km,mkdirSync:br}=jm)});import{existsSync as Hm,mkdirSync as Um}from"fs";async function pt(e,t){let n=t.timeout??30000;for(let r of e)await Jm(r,t.cwd,n,t.env??{},t.onOutput)}async function Jm(e,t,n,r,i){if(!Hm(t))Um(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}catch(h){if(h.code!=="ENOENT")throw h;s=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,s.kill()},n),d=s.stderr?new Response(s.stderr).text():Promise.resolve("");try{if(i&&s.stdout){let p=s.stdout.getReader(),m=new TextDecoder,b=[];while(!0){let{done:F,value:v}=await p.read();if(F)break;let D=m.decode(v,{stream:!0}).split(`
|
|
14
|
-
`);if(D.length===1)b.push(D[0]);else{b.push(D[0]);let M=b.join("");if(b.length=0,M)i(M);for(let y=1;y<D.length-1;y++)if(D[y])i(D[y]);let w=D[D.length-1];if(w)b.push(w)}}let A=b.join("")+m.decode();if(A)i(A)}let h=await s.exited;if(c)throw new Pr(e,n);if(h!==0){let p=(await d).trim();throw new $r(e,h,p)}}finally{clearTimeout(a)}}var $r,Pr;var gn=we(()=>{$r=class $r extends Error{command;exitCode;stderr;constructor(e,t,n){super(`Hook command failed (exit ${t}): ${e}
|
|
15
|
-
${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};Pr=class Pr 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{existsSync as zm,readdirSync as rv,readFileSync as ov,statSync as qm}from"fs";import{join as Xm,relative as sv}from"path";function Uo(e,t){let n=[],r=[];for(let i of t){let s=i.trim();if(!s){r.push(s);continue}let c=Xm(e,s);try{if(zm(c)&&qm(c).isDirectory())n.push(s);else r.push(s)}catch{r.push(s)}}return{valid:n,invalid:r}}var ms=()=>{};function nr(e,t){return e.map((n)=>{let r=new Bun.Glob(n.glob),i=t.filter((s)=>r.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 Ym(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function Cr(e,t,n){for(let r of e){let i=r[t],s=t==="postCreate"&&r.copyFiles.length>0,c=t==="postCreate"&&r.linkFiles.length>0,a=i.length>0;if(!s&&!c&&!a)continue;for(let d of r.matchedPaths){let{join:h}=await import("path"),p=h(n.mainRepoPath,d),m=h(n.cwd,d);if(s){let b=vr(p,m,r.copyFiles);for(let A of b.copied)n.onOutput?.(`Copied ${d}/${A}`);for(let A of b.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(c){let b=yr(p,m,r.linkFiles);for(let A of b.linked)n.onOutput?.(`Linked ${d}/${A}`);for(let A of b.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(a){let b=i.map((F)=>Ym(F,{packagePath:d,repo:n.repo,branch:n.branch})),A={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:d};await pt(b,{cwd:n.cwd,timeout:n.timeout,env:A,onOutput:n.onOutput})}}}}var Jo=we(()=>{gn();Ho()});function rn(e){let t=nt(),n=()=>Math.max(0,Math.floor((t().width-e.width)/2)),r=()=>Math.max(0,Math.floor((t().height-e.height)/2)),i=()=>(()=>{var s=l("box");return o(s,"border",!0),o(s,"borderStyle","rounded"),o(s,"flexDirection","column"),o(s,"paddingX",1),o(s,"paddingY",1),o(s,"titleAlignment","left"),o(s,"position","absolute"),j(s,()=>e.children,null),j(s,z(ie,{get when(){return e.footer},get children(){return e.footer}}),null),L((c)=>{var a=n(),d=r(),h=e.width,p=e.height,m=e.borderColor??g.border.active,b=e.backgroundColor??g.bg.surface,A=e.gap??0,F=e.title;return a!==c.e&&(c.e=o(s,"x",a,c.e)),d!==c.t&&(c.t=o(s,"y",d,c.t)),h!==c.a&&(c.a=o(s,"width",h,c.a)),p!==c.o&&(c.o=o(s,"height",p,c.o)),m!==c.i&&(c.i=o(s,"borderColor",m,c.i)),b!==c.n&&(c.n=o(s,"backgroundColor",b,c.n)),A!==c.s&&(c.s=o(s,"gap",A,c.s)),F!==c.h&&(c.h=o(s,"title",F,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 z(ie,{get when(){return e.backdrop},get fallback(){return i()},get children(){var s=l("box");return o(s,"x",0),o(s,"y",0),o(s,"position","absolute"),j(s,i),L((c)=>{var a=t().width,d=t().height,h=e.backdropColor??g.bg.overlay;return a!==c.e&&(c.e=o(s,"width",a,c.e)),d!==c.t&&(c.t=o(s,"height",d,c.t)),h!==c.a&&(c.a=o(s,"backgroundColor",h,c.a)),c},{e:void 0,t:void 0,a:void 0}),s}})}var Sr=we(()=>{te();te();te();te();te();Ue();te();bt()});import{decodePasteBytes as Zm}from"@opentui/core";import{basename as vl,resolve as Qm}from"path";function yl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue("input"),[s,c]=ue(""),[a,d]=ue(""),[h,p]=ue("branch"),[m,b]=ue(""),[A,F]=ue([]),[v,S]=ue(""),[D,M]=ue([]),[w,y]=ue(-1),[P,K]=ue(!1),T=()=>{let E=s().toLowerCase();if(!E)return D().slice(0,10);return D().filter((O)=>O.name.toLowerCase().includes(E)).slice(0,10)};Mt(_t(()=>X(),async()=>{try{let E=X(),O=await se.listBranches(E);M(O)}catch{M([])}})),an(()=>{queueMicrotask(()=>{c(""),d("")})}),Mt(_t(s,()=>{y(-1),K(s().length>0&&T().length>0)})),Mt(_t(r,(E)=>{e.setInputFocused(E==="input")})),it(()=>{e.setInputFocused(!1)});let G=(E,O)=>{F((V)=>V.map((N,I)=>I===E?{...N,...O}:N))},X=()=>{let E=t.worktrees()??[],O=e.selectedWorktreePath();return(O?E.find((N)=>N.path===O)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},H=()=>{let E=t.worktrees()??[],O=e.selectedWorktreePath();return(O?E.find((N)=>N.path===O)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},U=()=>{let E=s();if(!E)return"";let O=X(),V=De(),N=wt(V,O),I=E.replace(/\//g,"-"),ee=vl(O);return Qm(vo(N.worktreeDir,{repo:ee,branch:I}))};rt(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let O=E.name;if(O==="escape"){if(r()==="preview"){i("input");return}e.setActiveTab("list"),c(""),d(""),p("branch"),i("input");return}if(r()==="input"){if(O==="tab"){if(P()&&h()==="branch")K(!1),y(-1);p((V)=>V==="branch"?"focus":"branch");return}if(h()==="branch"&&P()&&T().length>0){if(O==="down"||E.sequence==="\x1B[B"){y((V)=>Math.min(V+1,T().length-1));return}if(O==="up"||E.sequence==="\x1B[A"){y((V)=>Math.max(V-1,-1));return}}if(O==="return"||O==="enter"){if(h()==="branch"&&w()>=0){let V=T()[w()];if(V){c(V.name),K(!1),y(-1);return}}if(!s())return;K(!1),b(U()),i("preview");return}}if(r()==="preview"){if(O==="return"||O==="enter"){i("creating");let V=s(),N=m(),I=X(),ee=vl(I);try{let de=De(),ne=wt(de,I),ge=[{label:"Creating worktree",status:"pending"}];if(ne.autoUpstream)ge.push({label:"Setting upstream",status:"pending"});if(ne.copyFiles.length>0)ge.push({label:"Copying files",status:"pending"});if(ne.linkFiles.length>0)ge.push({label:"Creating symlinks",status:"pending"});if(ne.postCreate.length>0)ge.push({label:"Running hooks",status:"pending"});let Se=a(),pe=[];if(Se)pe=Se.split(/[,\s]+/).map((Ee)=>Ee.trim()).filter(Boolean);if(pe.length>0)ge.push({label:"Setting focus",status:"pending"});if(pe.length>0&&ne.monorepo?.hooks&&ne.monorepo.hooks.length>0){if(nr(ne.monorepo.hooks,pe).length>0)ge.push({label:"Running monorepo hooks",status:"pending"})}F(ge);let ve=0;if(G(ve,{status:"running"}),await se.add(V,N,{createBranch:!0},I),G(ve,{status:"done"}),ve++,ne.autoUpstream){G(ve,{status:"running"});try{let Ee=await se.getDefaultRemote(I);if(await se.remoteBranchExists(V,Ee,I))await se.setUpstream(V,Ee,I),G(ve,{status:"done",message:`\u2192 ${Ee}/${V}`});else G(ve,{status:"done",message:"no remote branch"})}catch(Ee){G(ve,{status:"error",message:Ee.message})}ve++}if(ne.copyFiles.length>0)G(ve,{status:"running"}),vr(I,N,ne.copyFiles),G(ve,{status:"done"}),ve++;if(ne.linkFiles.length>0)G(ve,{status:"running"}),yr(I,N,ne.linkFiles),G(ve,{status:"done"}),ve++;let Me={COPSE_BRANCH:V,COPSE_WORKTREE_PATH:N,COPSE_REPO_PATH:I};if(ne.postCreate.length>0)G(ve,{status:"running"}),await pt(ne.postCreate,{cwd:N,env:Me,onOutput:(Ee)=>G(ve,{message:Ee})}),G(ve,{status:"done"}),ve++;if(pe.length>0){G(ve,{status:"running"});let{valid:Ee}=Uo(N,pe);if(pe=Ee,Ee.length>0)pr(N,Ee),Me.COPSE_FOCUS_PATHS=Ee.join(",");G(ve,{status:"done"}),ve++}if(pe.length>0&&ne.monorepo?.hooks&&ne.monorepo.hooks.length>0){G(ve,{status:"running"});let Ee=nr(ne.monorepo.hooks,pe);if(Ee.length>0)await Cr(Ee,"postCreate",{cwd:N,env:Me,repo:ee,branch:V,focusPaths:pe,mainRepoPath:I,onOutput:(W)=>G(ve,{message:W})});G(ve,{status:"done"}),ve++}S("Worktree created successfully!"),i("done"),er.success(`Worktree created: ${V}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),d(""),p("branch"),i("input")},1500)}catch(de){er.error(de.message);let ge=A().findIndex((Se)=>Se.status==="running");if(ge>=0)G(ge,{status:"error",message:de.message});S(`${de.message}`),i("error")}return}}if(r()==="error"){if(O==="escape"||O==="return"||O==="enter")i("input"),S("")}}),hr((E)=>{if(!e.inputFocused())return;let O=Zm(E.bytes).replace(/\r?\n/g,"");if(!O)return;if(h()==="branch"){c((V)=>V+O);return}if(h()==="focus")d((V)=>V+O)});let J=()=>n().width,q=()=>n().height,re=()=>Math.max(50,Math.min(80,J()-4)),he=4,_=()=>{if(r()==="input"){let E=P()&&h()==="branch"?T().length*2:0,O=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+E+O,q()-4))}if(r()==="preview")return Math.max(13+he,Math.min((a().length>0?15:13)+he,q()-4));if(r()==="creating")return Math.max(9+he,Math.min(A().length*2+7+he,q()-4));if(r()==="done")return Math.max(11+he,Math.min((a().length>0?15:13)+he,q()-4));return Math.max(11+he,Math.min(11+he,q()-4))},me=()=>Math.max(re()-4,10),Re=()=>Math.max(me(),20);return z(rn,{get width(){return re()},get height(){return _()},get borderColor(){return We(()=>r()==="done")()?g.text.success:We(()=>r()==="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"),O=l("text");return f(E,O),o(E,"height",1),j(O,()=>"\u2500".repeat(Math.max(me(),1))),L((V)=>{var N=me(),I=g.border.subtle;return N!==V.e&&(V.e=o(E,"width",N,V.e)),I!==V.t&&(V.t=o(O,"fg",I,V.t)),V},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return r()==="input"},get children(){var E=l("box"),O=l("text"),V=l("text"),N=l("text"),I=l("text");return f(E,O),f(E,V),f(E,N),f(E,I),o(E,"flexDirection","row"),o(E,"gap",2),f(O,B("Tab:switch")),f(V,B("\u2191\u2193:pick")),f(N,B("Enter:confirm")),f(I,B("Esc:cancel")),L((ee)=>{var de=g.text.secondary,ne=g.text.secondary,ge=g.text.secondary,Se=g.text.secondary;return de!==ee.e&&(ee.e=o(O,"fg",de,ee.e)),ne!==ee.t&&(ee.t=o(V,"fg",ne,ee.t)),ge!==ee.a&&(ee.a=o(N,"fg",ge,ee.a)),Se!==ee.o&&(ee.o=o(I,"fg",Se,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),E}}),z(ie,{get when(){return r()==="preview"},get children(){var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"flexDirection","row"),o(E,"gap",2),f(O,B("Enter:create")),f(V,B("Esc:back")),L((N)=>{var I=g.text.secondary,ee=g.text.secondary;return I!==N.e&&(N.e=o(O,"fg",I,N.e)),ee!==N.t&&(N.t=o(V,"fg",ee,N.t)),N},{e:void 0,t:void 0}),E}}),z(ie,{get when(){return r()==="creating"},get children(){var E=l("text");return f(E,B("Creating worktree...")),L((O)=>o(E,"fg",g.text.secondary,O)),E}}),z(ie,{get when(){return r()==="done"},get children(){var E=l("text");return f(E,B("\u2713 Done \u2014 returning to list")),L((O)=>o(E,"fg",g.text.secondary,O)),E}}),z(ie,{get when(){return r()==="error"},get children(){var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"flexDirection","row"),o(E,"gap",2),f(O,B("Enter:retry")),f(V,B("Esc:back")),L((N)=>{var I=g.text.secondary,ee=g.text.secondary;return I!==N.e&&(N.e=o(O,"fg",I,N.e)),ee!==N.t&&(N.t=o(V,"fg",ee,N.t)),N},{e:void 0,t:void 0}),E}})]},get children(){return[z(ie,{get when(){return r()==="input"},get children(){return[(()=>{var E=l("box"),O=l("text"),V=l("text"),N=l("text");return f(E,O),f(E,V),f(E,N),o(E,"height",1),f(O,B(">")),o(O,"x",1),o(O,"y",0),f(V,B("New Worktree")),o(V,"x",3),o(V,"y",0),o(N,"x",17),o(N,"y",0),j(N,H),L((I)=>{var ee=me(),de=g.bg.elevated,ne=g.text.accent,ge=g.text.primary,Se=g.text.secondary;return ee!==I.e&&(I.e=o(E,"width",ee,I.e)),de!==I.t&&(I.t=o(E,"backgroundColor",de,I.t)),ne!==I.a&&(I.a=o(O,"fg",ne,I.a)),ge!==I.o&&(I.o=o(V,"fg",ge,I.o)),Se!==I.i&&(I.i=o(N,"fg",Se,I.i)),I},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return j(E,()=>"\u2500".repeat(me())),L((O)=>o(E,"fg",g.border.subtle,O)),E})(),(()=>{var E=l("text");return f(E,B("Branch name")),L((O)=>o(E,"fg",h()==="branch"?g.text.accent:g.text.secondary,O)),E})(),(()=>{var E=l("input");return o(E,"onInput",(O)=>c(O)),o(E,"placeholder","Branch name or search..."),L((O)=>{var V=s(),N=h()==="branch",I=Re(),ee=g.bg.elevated,de=g.text.accent;return V!==O.e&&(O.e=o(E,"value",V,O.e)),N!==O.t&&(O.t=o(E,"focused",N,O.t)),I!==O.a&&(O.a=o(E,"width",I,O.a)),ee!==O.o&&(O.o=o(E,"backgroundColor",ee,O.o)),de!==O.i&&(O.i=o(E,"cursorColor",de,O.i)),O},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),z(ie,{get when(){return We(()=>!!(P()&&h()==="branch"))()&&T().length>0},get children(){return z(et,{get each(){return T()},children:(E,O)=>(()=>{var V=l("box"),N=l("text"),I=l("text");return f(V,N),f(V,I),o(V,"height",1),o(N,"x",1),o(N,"y",0),j(N,()=>O()===w()?"\u25B8 ":" ",null),j(N,()=>E.name,null),o(I,"y",0),j(I,()=>E.isRemote?"(remote) ":"",null),j(I,()=>E.lastCommitDate,null),L((ee)=>{var de=me(),ne=O()===w()?g.select.focusedBg:g.bg.surface,ge=O()===w()?g.tab.active:g.text.primary,Se=Math.max(1+E.name.length+4,27),pe=g.text.secondary;return de!==ee.e&&(ee.e=o(V,"width",de,ee.e)),ne!==ee.t&&(ee.t=o(V,"backgroundColor",ne,ee.t)),ge!==ee.a&&(ee.a=o(N,"fg",ge,ee.a)),Se!==ee.o&&(ee.o=o(I,"x",Se,ee.o)),pe!==ee.i&&(ee.i=o(I,"fg",pe,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),V})()})}}),(()=>{var E=l("text");return f(E,B("Tab to switch fields \xB7 \u2191\u2193 to select branch")),L((O)=>o(E,"fg",g.text.secondary,O)),E})(),(()=>{var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"width","100%"),o(E,"height",1),o(E,"flexDirection","row"),f(O,B("Focus ")),f(V,B("(optional)")),L((N)=>{var I=h()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return I!==N.e&&(N.e=o(O,"fg",I,N.e)),ee!==N.t&&(N.t=o(V,"fg",ee,N.t)),N},{e:void 0,t:void 0}),E})(),(()=>{var E=l("input");return o(E,"onInput",(O)=>d(O)),o(E,"placeholder","apps/web,apps/api (optional)"),L((O)=>{var V=a(),N=h()==="focus",I=Re(),ee=g.bg.elevated,de=g.text.accent;return V!==O.e&&(O.e=o(E,"value",V,O.e)),N!==O.t&&(O.t=o(E,"focused",N,O.t)),I!==O.a&&(O.a=o(E,"width",I,O.a)),ee!==O.o&&(O.o=o(E,"backgroundColor",ee,O.o)),de!==O.i&&(O.i=o(E,"cursorColor",de,O.i)),O},{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")),L((O)=>o(E,"fg",g.text.secondary,O)),E})(),z(ie,{get when(){return s().length>0},get children(){return[(()=>{var E=l("text");return f(E,B("Target path")),L((O)=>o(E,"fg",g.text.secondary,O)),E})(),(()=>{var E=l("text");return j(E,U),L((O)=>o(E,"fg",g.text.primary,O)),E})()]}}),(()=>{var E=l("text");return f(E,B("Type a branch name, e.g. feature/my-feature")),L((O)=>o(E,"fg",g.text.primary,O)),E})()]}}),z(ie,{get when(){return r()==="preview"},get children(){return[(()=>{var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"height",1),f(O,B(">")),o(O,"x",1),o(O,"y",0),f(V,B("Confirm Worktree")),o(V,"x",3),o(V,"y",0),L((N)=>{var I=me(),ee=g.bg.elevated,de=g.text.accent,ne=g.text.primary;return I!==N.e&&(N.e=o(E,"width",I,N.e)),ee!==N.t&&(N.t=o(E,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(O,"fg",de,N.a)),ne!==N.o&&(N.o=o(V,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return j(E,()=>"\u2500".repeat(me())),L((O)=>o(E,"fg",g.border.subtle,O)),E})(),(()=>{var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Branch")),j(N,s),L((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Path")),j(N,m),L((I)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return a().length>0},get children(){var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Focus")),j(N,a),L((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,B("\u2713 Ready to create. Press Enter to confirm.")),L((O)=>o(E,"fg",g.text.success,O)),E})()]}}),z(ie,{get when(){return r()==="creating"},get children(){return[(()=>{var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"height",1),f(O,B(">")),o(O,"x",1),o(O,"y",0),f(V,B("Creating Worktree")),o(V,"x",3),o(V,"y",0),L((N)=>{var I=me(),ee=g.bg.elevated,de=g.text.accent,ne=g.text.primary;return I!==N.e&&(N.e=o(E,"width",I,N.e)),ee!==N.t&&(N.t=o(E,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(O,"fg",de,N.a)),ne!==N.o&&(N.o=o(V,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return j(E,()=>"\u2500".repeat(me())),L((O)=>o(E,"fg",g.border.subtle,O)),E})(),z(et,{get each(){return A()},children:(E)=>(()=>{var O=l("box"),V=l("text"),N=B(" ");return f(O,V),o(O,"height",1),f(V,N),j(V,(()=>{var I=We(()=>E.status==="done");return()=>I()?"\u2713":We(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),N),j(V,()=>E.label,null),j(O,z(ie,{get when(){return E.message},get children(){var I=l("text");return o(I,"y",0),j(I,()=>E.message),L((ee)=>{var de=E.label.length+4,ne=g.text.secondary;return de!==ee.e&&(ee.e=o(I,"x",de,ee.e)),ne!==ee.t&&(ee.t=o(I,"fg",ne,ee.t)),ee},{e:void 0,t:void 0}),I}}),null),L((I)=>o(V,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,I)),O})()})]}}),z(ie,{get when(){return r()==="done"},get children(){return[(()=>{var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"height",1),f(O,B(">")),o(O,"x",1),o(O,"y",0),f(V,B("Worktree Created")),o(V,"x",3),o(V,"y",0),L((N)=>{var I=me(),ee=g.bg.elevated,de=g.text.success,ne=g.text.primary;return I!==N.e&&(N.e=o(E,"width",I,N.e)),ee!==N.t&&(N.t=o(E,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(O,"fg",de,N.a)),ne!==N.o&&(N.o=o(V,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return j(E,()=>"\u2500".repeat(me())),L((O)=>o(E,"fg",g.border.subtle,O)),E})(),(()=>{var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Branch")),j(N,s),L((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Path")),j(N,m),L((I)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return a().length>0},get children(){var E=l("box"),O=l("box"),V=l("text"),N=l("text");return f(E,O),f(E,N),o(E,"height",1),o(E,"flexDirection","row"),f(O,V),o(O,"width",14),o(O,"height",1),f(V,B("Focus")),j(N,a),L((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=o(V,"fg",ee,I.e)),de!==I.t&&(I.t=o(N,"fg",de,I.t)),I},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),O=B("\u2713 ");return f(E,O),j(E,v,null),L((V)=>o(E,"fg",g.text.success,V)),E})()]}}),z(ie,{get when(){return r()==="error"},get children(){return[(()=>{var E=l("box"),O=l("text"),V=l("text");return f(E,O),f(E,V),o(E,"height",1),f(O,B(">")),o(O,"x",1),o(O,"y",0),f(V,B("Error")),o(V,"x",3),o(V,"y",0),L((N)=>{var I=me(),ee=g.bg.elevated,de=g.text.error,ne=g.text.primary;return I!==N.e&&(N.e=o(E,"width",I,N.e)),ee!==N.t&&(N.t=o(E,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(O,"fg",de,N.a)),ne!==N.o&&(N.o=o(V,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return j(E,()=>"\u2500".repeat(me())),L((O)=>o(E,"fg",g.border.subtle,O)),E})(),(()=>{var E=l("text");return f(E,B("\u2717 Failed")),L((O)=>o(E,"fg",g.text.error,O)),E})(),(()=>{var E=l("box"),O=l("text");return f(E,O),o(E,"height",1),o(O,"x",1),o(O,"y",0),j(O,()=>v().slice(0,Math.max(Re()-3,10))),L((V)=>{var N=Re(),I=g.bg.elevated,ee=g.text.primary;return N!==V.e&&(V.e=o(E,"width",N,V.e)),I!==V.t&&(V.t=o(E,"backgroundColor",I,V.t)),ee!==V.a&&(V.a=o(O,"fg",ee,V.a)),V},{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")),L((O)=>o(E,"fg",g.text.secondary,O)),E})()]}})]}})}var $l=we(()=>{te();te();te();te();te();te();te();te();Ue();Jt();un();je();Ye();Ho();gn();Xt();ms();Jo();te();os();bt();Sr()});function Pl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(!1),[s,c]=ue(""),[a,d]=ue(!1),h=()=>{let v=t.worktrees()??[],S=e.selectedWorktreePath();if(S){let D=v.find((M)=>M.path===S);if(D)return D}return v[e.selectedWorktreeIndex()]},p=()=>{e.setShowRemove(!1),i(!1),c(""),d(!1)},m=async(v)=>{let S=h();if(!S){p();return}if(!v){if(await se.isDirty(S.path)){c("Worktree has changes. Press Enter to force remove."),d(!0);return}}i(!0),c("Removing...");try{let D=De(),M=wt(D,S.repoPath);if(M.postRemove.length>0)c("Running postRemove hooks..."),await pt(M.postRemove,{cwd:S.path,env:{COPSE_BRANCH:S.branch??"",COPSE_WORKTREE_PATH:S.path,COPSE_REPO_PATH:S.repoPath}}).catch(()=>{});await se.remove(S.path,{force:v},S.repoPath),c("Removed successfully!"),er.success("Worktree removed");let w=t.worktrees()??[],y=e.selectedWorktreeIndex(),P=w[y-1]??w[y+1]??null;if(y>0)e.setSelectedWorktreeIndex(y-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(P?.path??null),t.refetch(),setTimeout(p,1000)}catch(D){let M=D.message;c(`Failed: ${M}`),i(!1),er.error(`Failed: ${M}`)}};rt(async(v)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let S=v.name;if(S==="escape"){p();return}if(a()&&(S==="return"||S==="enter")){d(!1),await m(!0);return}if((S==="return"||S==="enter")&&!r())await m(!1)});let b=()=>h(),A=()=>Math.max(50,Math.min(80,n().width-4)),F=()=>10;return z(rn,{get width(){return A()},get height(){return F()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var v=l("box");return o(v,"flexDirection","column"),j(v,z(ie,{get when(){return We(()=>!r())()&&!a()},get children(){var S=l("box"),D=l("text"),M=l("text");return f(S,D),f(S,M),o(S,"height",1),o(S,"flexDirection","row"),o(S,"gap",2),f(D,B("[Enter] Confirm")),f(M,B("[Esc] Cancel")),L((w)=>{var y=g.text.secondary,P=g.text.secondary;return y!==w.e&&(w.e=o(D,"fg",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),S}}),null),j(v,z(ie,{get when(){return a()},get children(){var S=l("box"),D=l("text"),M=l("text");return f(S,D),f(S,M),o(S,"height",1),o(S,"flexDirection","row"),o(S,"gap",2),f(D,B("[Enter] Force remove")),f(M,B("[Esc] Cancel")),L((w)=>{var y=g.text.secondary,P=g.text.secondary;return y!==w.e&&(w.e=o(D,"fg",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),S}}),null),v})()},get children(){return[z(ie,{get when(){return!!b()},get children(){return[(()=>{var v=l("box"),S=l("box"),D=l("text"),M=l("text");return f(v,S),f(v,M),o(v,"height",1),o(v,"flexDirection","row"),f(S,D),o(S,"width",10),o(S,"height",1),f(D,B("Branch")),j(M,()=>b()?.branch??"(detached)"),L((w)=>{var y=g.text.secondary,P=g.text.accent;return y!==w.e&&(w.e=o(D,"fg",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box"),S=l("box"),D=l("text"),M=l("text");return f(v,S),f(v,M),o(v,"height",1),o(v,"flexDirection","row"),f(S,D),o(S,"width",10),o(S,"height",1),f(D,B("Path")),j(M,()=>b()?.path),L((w)=>{var y=g.text.secondary,P=g.text.primary;return y!==w.e&&(w.e=o(D,"fg",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),v})(),z(ie,{get when(){return a()},get children(){var v=l("text");return j(v,s),L((S)=>o(v,"fg",g.text.warning,S)),v}}),z(ie,{get when(){return r()},get children(){var v=l("text");return j(v,s),L((S)=>o(v,"fg",s().startsWith("Failed")?g.text.error:g.text.success,S)),v}})]}}),z(ie,{get when(){return!b()},get children(){var v=l("text");return f(v,B("No worktree selected.")),L((S)=>o(v,"fg",g.text.secondary,S)),v}})]}})}var Cl=we(()=>{te();te();te();te();te();te();te();te();Ue();Jt();un();je();Ye();gn();te();os();bt();Sr()});function Sl(e){let t=ot(),n=mt(),r=nn(),[i,s]=ue("confirming"),[c,a]=ue(""),[d,h]=ue(0),p=()=>{let F=n.worktrees()??[],v=t.selectedWorktrees(),S=[];for(let D of v){let M=F.find((w)=>w.path===D);if(M&&!M.isMain)S.push({branch:M.branch??"(detached)",path:M.path,repoPath:M.repoPath})}return S},m=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},b=async()=>{let F=p();if(F.length===0){m();return}s("executing"),h(0);let v=[],S=[],D=0;for(let M=0;M<F.length;M++){let w=F[M];a(`Removing ${w.branch} (${M+1}/${F.length})...`),h(M);try{if(await se.isDirty(w.path)){S.push(w.branch);continue}let P=De(),K=wt(P,w.repoPath);if(K.postRemove.length>0)await pt(K.postRemove,{cwd:w.path,env:{COPSE_BRANCH:w.branch,COPSE_WORKTREE_PATH:w.path,COPSE_REPO_PATH:w.repoPath}}).catch(()=>{});await se.remove(w.path,{force:!1},w.repoPath),D++}catch(y){v.push(`${w.branch}: ${y.message}`)}}if(ht(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),v.length>0){s("error");let M=[`Failed: ${v.join("; ")}`];if(S.length>0)M.push(`Skipped ${S.length} dirty worktree(s)`);a(M.join(". ")),r.addToast({message:`Failed to remove ${v.length} worktree(s)`,type:"error"}),setTimeout(m,3000)}else if(S.length>0)s("done"),a(`Removed ${D}, skipped ${S.length} dirty: ${S.join(", ")}`),r.addToast({message:`Removed ${D}, skipped ${S.length} dirty`,type:"warning"}),setTimeout(m,2000);else s("done"),a(`Removed ${F.length} worktree(s) successfully!`),r.addToast({message:`Removed ${F.length} worktrees`,type:"success"}),setTimeout(m,1500)};rt(async(F)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let v=F.name;if(i()==="executing")return;if(v==="escape"){m();return}if((v==="return"||v==="enter")&&i()==="confirming")await b()});let A=()=>p().length;return(()=>{var F=l("box"),v=l("box"),S=l("box"),D=l("text"),M=l("box"),w=l("text"),y=l("box");return f(F,v),o(F,"x",0),o(F,"y",0),f(v,S),f(v,M),f(v,y),o(v,"x",2),o(v,"y",1),o(v,"flexDirection","column"),f(S,D),o(S,"height",1),f(D,B("Bulk Delete Worktrees")),o(D,"x",0),o(D,"y",0),f(M,w),o(M,"height",1),o(w,"x",0),o(w,"y",0),j(w,()=>"\u2500".repeat(Math.max(e.w-5,10))),o(y,"height",1),j(v,z(ie,{get when(){return i()==="confirming"},get children(){return[(()=>{var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",0),o(K,"y",0),j(K,()=>`Delete ${A()} worktree(s)?`),L((T)=>o(K,"fg",g.text.warning,T)),P})(),(()=>{var P=l("box");return o(P,"height",1),P})(),z(et,{get each(){return p().slice(0,Math.max(e.h-10,5))},children:(P)=>(()=>{var K=l("box"),T=l("text");return f(K,T),o(K,"height",1),o(T,"x",2),o(T,"y",0),j(T,()=>`\u2022 ${P.branch}`),L((G)=>o(T,"fg",g.text.accent,G)),K})()}),z(ie,{get when(){return A()>Math.max(e.h-10,5)},get children(){var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",2),o(K,"y",0),j(K,()=>`... and ${A()-Math.max(e.h-10,5)} more`),L((T)=>o(K,"fg",g.text.secondary,T)),P}}),(()=>{var P=l("box");return o(P,"height",1),P})(),(()=>{var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),f(K,B("Enter:delete all Esc:cancel")),o(K,"x",0),o(K,"y",0),L((T)=>o(K,"fg",g.text.secondary,T)),P})()]}}),null),j(v,z(ie,{get when(){return i()==="executing"},get children(){return[(()=>{var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",0),o(K,"y",0),j(K,c),L((T)=>o(K,"fg",g.text.warning,T)),P})(),(()=>{var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",0),o(K,"y",0),j(K,()=>`Progress: ${d()+1}/${A()}`),L((T)=>o(K,"fg",g.text.secondary,T)),P})()]}}),null),j(v,z(ie,{get when(){return i()==="done"},get children(){var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",0),o(K,"y",0),j(K,c),L((T)=>o(K,"fg",g.text.success,T)),P}}),null),j(v,z(ie,{get when(){return i()==="error"},get children(){var P=l("box"),K=l("text");return f(P,K),o(P,"height",1),o(K,"x",0),o(K,"y",0),j(K,c),L((T)=>o(K,"fg",g.text.error,T)),P}}),null),L((P)=>{var{w:K,h:T}=e,G=g.bg.base,X=e.w-3,H=e.h-2,U=g.bg.base,J=g.text.error,q=g.border.subtle;return K!==P.e&&(P.e=o(F,"width",K,P.e)),T!==P.t&&(P.t=o(F,"height",T,P.t)),G!==P.a&&(P.a=o(F,"backgroundColor",G,P.a)),X!==P.o&&(P.o=o(v,"width",X,P.o)),H!==P.i&&(P.i=o(v,"height",H,P.i)),U!==P.n&&(P.n=o(v,"backgroundColor",U,P.n)),J!==P.s&&(P.s=o(D,"fg",J,P.s)),q!==P.h&&(P.h=o(w,"fg",q,P.h)),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),F})()}var El=we(()=>{te();te();te();te();te();te();te();Ue();Jt();tr();un();je();Ye();gn();te();bt()});import{decodePasteBytes as _m}from"@opentui/core";import{spawnSync as ep}from"child_process";function xn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function fp(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function vt(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function xs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function up(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:ps}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:vt(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:zo}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:vt(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:qo}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:vt(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:gs}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:vt(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:Xo}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:xs(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:cp}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:vt(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:vt(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:lp});let r=e.workspaces??[];if(r.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${r.length})`,depth:0}),r.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:vt(s.exclude),rawValue:s.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[wn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let d=s.defaults;if(d)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:d.worktreeDir??"(inherits)",rawValue:d.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:ps}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:vt(d.copyFiles),rawValue:d.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:zo}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:vt(d.linkFiles),rawValue:d.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:qo}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:vt(d.postCreate),rawValue:d.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:gs}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:vt(d.postRemove),rawValue:d.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:Xo}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:xs(d.autoUpstream),rawValue:d.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<r.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:ps}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:vt(s.copyFiles),rawValue:s.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:zo}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:vt(s.linkFiles),rawValue:s.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:qo}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:vt(s.postCreate),rawValue:s.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:gs}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:vt(s.postRemove),rawValue:s.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:Xo}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:xs(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:xn(s.monorepo.extraPatterns),rawValue:s.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:rp});let d=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${d.length})`,depth:3}),d.forEach((h,p)=>{t.push({key:`r${c}.h${p}.header`,kind:"section",label:`[${p}] ${h.glob}`,depth:4}),t.push({key:`r${c}.h${p}.glob`,kind:"field",label:"glob",value:h.glob,rawValue:h.glob,path:["repos",c,"monorepo","hooks",p,"glob"],editKind:"string",depth:5,suggestions:op}),t.push({key:`r${c}.h${p}.copyFiles`,kind:"field",label:"copyFiles",value:xn(h.copyFiles),rawValue:h.copyFiles,path:["repos",c,"monorepo","hooks",p,"copyFiles"],editKind:"strArray",depth:5,suggestions:zo}),t.push({key:`r${c}.h${p}.linkFiles`,kind:"field",label:"linkFiles",value:xn(h.linkFiles),rawValue:h.linkFiles,path:["repos",c,"monorepo","hooks",p,"linkFiles"],editKind:"strArray",depth:5,suggestions:qo}),t.push({key:`r${c}.h${p}.postCreate`,kind:"field",label:"postCreate",value:xn(h.postCreate),rawValue:h.postCreate,path:["repos",c,"monorepo","hooks",p,"postCreate"],editKind:"strArray",depth:5,suggestions:ip}),t.push({key:`r${c}.h${p}.postRemove`,kind:"field",label:"postRemove",value:xn(h.postRemove),rawValue:h.postRemove,path:["repos",c,"monorepo","hooks",p,"postRemove"],editKind:"strArray",depth:5,suggestions:Xo})})}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:xn(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:xn(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:xn(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:xn(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:sp});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 Rl(){let e=ot(),t=nt(),n=yt(),r=()=>{try{return{cfg:Di(),error:""}}catch(x){return{cfg:null,error:x.message}}},i=r(),[s,c]=ue(i.cfg),[a,d]=ue(i.error),[h,p]=ue(""),[m,b]=ue("info"),[A,F]=ue(0),[v,S]=ue(0),[D,M]=ue(!1),[w,y]=ue(null),[P,K]=ue(null),[T,G]=ue(""),[X,H]=ue(!1),[U,J]=ue(0),[q,re]=ue([]),[he,_]=ue(-1),[me,Re]=ue(0),E=He(()=>up(s())),O=He(()=>{let x=[],k=E();for(let R=0;R<k.length;R++){let C=k[R];if(C.kind==="field"&&C.editKind!==null)x.push(R)}return x}),V=()=>{let x=O();if(x.length===0)return-1;let k=Math.max(0,Math.min(A(),x.length-1));return x[k]??-1},N=()=>{let x=V();if(x<0)return null;return E()[x]??null},I=(x,k="info")=>{p(x),b(k)},ee=()=>{let x=r();c(x.cfg),d(x.error)},de=()=>{let x=N();if(!x||!x.editKind||!x.path){I("Field is read-only (press 'e' to edit the file directly)","info");return}let k=x.suggestions??[];if(y(x.editKind),K(x.path),re(k),e.setInputFocused(!0),x.editKind==="string"){let R=typeof x.rawValue==="string"?x.rawValue:"";G(R),_(k.indexOf(R))}else if(x.editKind==="strArray"){let R=Array.isArray(x.rawValue)?x.rawValue:[],C=JSON.stringify(R);G(C),_(k.indexOf(C))}else if(x.editKind==="boolean")H(x.rawValue===!0),_(-1);else if(x.editKind==="theme"){let R=typeof x.rawValue==="string"?x.rawValue:"opencode",C=Dt.indexOf(R);J(C>=0?C:0),_(-1)}else if(x.editKind==="enum"){let R=x.suggestions??[],C=typeof x.rawValue==="string"?x.rawValue:"",Q=R.indexOf(C);Re(Q>=0?Q:0),_(-1)}M(!0)},ne=()=>{M(!1),K(null),y(null),G(""),re([]),_(-1),e.setInputFocused(!1)},ge=(x)=>{let k=q();if(k.length===0)return;let R=(he()+x+k.length)%k.length;_(R);let C=k[R]??"",Q=w();if(Q==="string"||Q==="strArray")G(C)},Se=()=>{let x=P(),k=w();if(!x||!k){ne();return}let R;if(k==="string"){let C=T();R=C.length===0?void 0:C}else if(k==="strArray"){let C=T().trim();if(C.length===0)R=[];else try{let Q=JSON.parse(C);if(!Array.isArray(Q)||Q.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");R=Q}catch(Q){I(`Invalid JSON: ${Q.message}`,"error");return}}else if(k==="boolean")R=X();else if(k==="theme")R=Dt[U()];else if(k==="enum")R=q()[me()];try{jt();let C=Di();ea(C,x,R);let Q=Zn(C);if(Q.length>0){let oe=Q[0];I(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(Qn(n,`${JSON.stringify(C,null,2)}
|
|
16
|
-
`),k==="theme"&&typeof R==="string"&&Dt.includes(R))mr(R);ee(),I("Saved","success"),M(!1),K(null),y(null),G(""),re([]),_(-1),e.setInputFocused(!1)}catch(C){I(`Save failed: ${C.message}`,"error")}};rt((x)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let k=x.name;if(D()){if(k==="escape"){ne();return}let R=w();if(R==="string"||R==="strArray"){if(k==="tab"){ge(x.shift?-1:1);return}if(k==="return"||k==="enter")Se();return}if(R==="boolean"){if(k==="space"||k==="tab"||k==="left"||k==="right"||k==="h"||k==="l"){H((C)=>!C);return}if(k==="return"||k==="enter")Se();return}if(R==="theme"){if(k==="left"||k==="up"||k==="h"||k==="k"||k==="tab"&&x.shift){J((C)=>(C-1+Dt.length)%Dt.length);return}if(k==="right"||k==="down"||k==="l"||k==="j"||k==="tab"){J((C)=>(C+1)%Dt.length);return}if(k==="return"||k==="enter")Se();return}if(R==="enum"){let C=q();if(C.length===0)return;if(k==="left"||k==="up"||k==="h"||k==="k"||k==="tab"&&x.shift){Re((Q)=>(Q-1+C.length)%C.length);return}if(k==="right"||k==="down"||k==="l"||k==="j"||k==="tab"){Re((Q)=>(Q+1)%C.length);return}if(k==="return"||k==="enter")Se();return}return}if(e.inputFocused())return;if(k==="j"||k==="down"){F((R)=>Math.min(R+1,O().length-1));return}if(k==="k"||k==="up"){F((R)=>Math.max(R-1,0));return}if(k==="g"){F(0);return}if(k==="G"){F(Math.max(O().length-1,0));return}if(k==="return"||k==="enter"){de();return}if(k==="e"){let R=process.env.EDITOR??process.env.VISUAL??"vi";jt(),ep(R,[n],{stdio:"inherit"}),ee(),I("Config reloaded","info");return}if(k==="r"){ee(),I("Reloaded","info");return}if(k==="i"){jt(),ee(),I("Initialized","info");return}}),hr((x)=>{if(!D())return;let k=w();if(k!=="string"&&k!=="strArray")return;let R=_m(x.bytes).replace(/\r?\n/g,"");if(!R)return;G((C)=>C+R)});let pe=()=>Math.max(t().height-10,5);Mt(_t([A,E],()=>{let x=V();if(x<0)return;let k=pe();if(x<v())S(x);else if(x>=v()+k)S(x-k+1)})),it(()=>{e.setInputFocused(!1)});let ve=He(()=>{let x=v();return E().slice(x,x+pe()).map((k,R)=>({row:k,globalIdx:x+R}))}),Me=()=>O().length,Ee=()=>{let x=E().length;if(x<=pe())return"";let k=Math.min(v()+pe(),x);return`${v()+1}-${k}/${x}`},W=()=>t().width,u=()=>Math.max(W()-4-np-4,20);return(()=>{var x=l("box"),k=l("box"),R=l("box"),C=l("text"),Q=l("b"),oe=l("box"),xe=l("text"),le=l("text"),Ie=l("box");return f(x,k),f(x,Ie),o(x,"x",0),o(x,"y",0),o(x,"width","100%"),o(x,"height","100%"),o(x,"flexDirection","column"),f(k,R),f(k,oe),o(k,"width","100%"),o(k,"height","100%"),o(k,"flexDirection","column"),o(k,"paddingX",2),o(k,"paddingY",1),f(R,C),o(R,"height",1),o(R,"flexDirection","row"),f(C,Q),f(Q,B("Configuration")),j(R,z(ie,{get when(){return!!Ee()},get children(){var Z=l("text"),ae=B(" ");return f(Z,ae),j(Z,()=>` \xB7 ${Ee()}`,null),L((ce)=>o(Z,"fg",g.text.secondary,ce)),Z}}),null),j(R,z(ie,{get when(){return Me()>0},get children(){var Z=l("text"),ae=B(" ");return f(Z,ae),j(Z,()=>` \xB7 ${A()+1}/${Me()}`,null),L((ce)=>o(Z,"fg",g.text.secondary,ce)),Z}}),null),f(oe,xe),f(oe,le),o(oe,"height",1),o(oe,"flexDirection","row"),o(oe,"gap",1),f(xe,B("Path:")),j(le,n),j(k,z(ie,{get when(){return!!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"height",1),o(Z,"flexDirection","row"),o(Z,"gap",1),f(ae,B("Load error:")),j(ce,a),L((Y)=>{var Pe=g.text.error,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),null),j(k,z(ie,{get when(){return We(()=>!s())()&&!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("box"),Y=l("text"),Pe=l("text"),$e=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","column"),o(Z,"gap",1),f(ae,B("No config file found.")),f(ce,Y),f(ce,Pe),f(ce,$e),o(ce,"flexDirection","row"),o(ce,"gap",1),f(Y,B("Press")),f(Pe,B("i")),f($e,B("to initialize with defaults.")),L((Ve)=>{var Ne=g.text.warning,ze=g.text.secondary,ft=g.text.accent,Fe=g.text.secondary;return Ne!==Ve.e&&(Ve.e=o(ae,"fg",Ne,Ve.e)),ze!==Ve.t&&(Ve.t=o(Y,"fg",ze,Ve.t)),ft!==Ve.a&&(Ve.a=o(Pe,"fg",ft,Ve.a)),Fe!==Ve.o&&(Ve.o=o($e,"fg",Fe,Ve.o)),Ve},{e:void 0,t:void 0,a:void 0,o:void 0}),Z}}),null),j(k,z(ie,{get when(){return!!s()},get children(){return[(()=>{var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),j(ae,()=>"\u2500".repeat(Math.max(W()-34,10))),L((ce)=>o(ae,"fg",g.border.subtle,ce)),Z})(),(()=>{var Z=l("box");return o(Z,"flexDirection","column"),j(Z,z(et,{get each(){return ve()},children:(ae)=>{let ce=ae.row,Y=()=>ae.globalIdx===V(),Pe=()=>D()&&Y(),$e=" ".repeat(ce.depth*tp);if(ce.kind==="spacer")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),f(ze,B(" ")),L((ft)=>o(ze,"fg",g.text.secondary,ft)),Ne})();if(ce.kind==="section")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),j(ze,$e,null),j(ze,()=>ce.label,null),L((ft)=>o(ze,"fg",g.text.accent,ft)),Ne})();let Ve=()=>{let Ne=Y()?"\u25B8 ":" ";return`${$e}${Ne}${ce.label}`};return(()=>{var Ne=l("box"),ze=l("box"),ft=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),f(ze,ft),o(ze,"width",30),o(ze,"height",1),j(ft,Ve),j(Ne,z(ie,{get when(){return Pe()},get fallback(){return(()=>{var Fe=l("text");return j(Fe,()=>ce.value??""),L((Te)=>o(Fe,"fg",fp(ce.value)?g.text.secondary:g.text.primary,Te)),Fe})()},get children(){return[z(ie,{get when(){return w()==="string"||w()==="strArray"},get children(){var Fe=l("input");return o(Fe,"onInput",(Te)=>G(Te)),o(Fe,"focused",!0),L((Te)=>{var bn=T(),Dr=u(),Ar=g.bg.elevated,Wr=g.text.accent,Ir=w()==="strArray"?'["a", "b"]':"";return bn!==Te.e&&(Te.e=o(Fe,"value",bn,Te.e)),Dr!==Te.t&&(Te.t=o(Fe,"width",Dr,Te.t)),Ar!==Te.a&&(Te.a=o(Fe,"backgroundColor",Ar,Te.a)),Wr!==Te.o&&(Te.o=o(Fe,"cursorColor",Wr,Te.o)),Ir!==Te.i&&(Te.i=o(Fe,"placeholder",Ir,Te.i)),Te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Fe}}),z(ie,{get when(){return w()==="boolean"},get children(){var Fe=l("text");return j(Fe,()=>X()?"[x] true":"[ ] false"),L((Te)=>o(Fe,"fg",X()?g.text.success:g.text.secondary,Te)),Fe}}),z(ie,{get when(){return w()==="theme"},get children(){var Fe=l("text");return j(Fe,()=>`\u25C2 ${Bo[Dt[U()]??"opencode"]} (${Dt[U()]??"opencode"}) \u25B8`),L((Te)=>o(Fe,"fg",g.text.accent,Te)),Fe}}),z(ie,{get when(){return w()==="enum"},get children(){var Fe=l("text");return j(Fe,()=>`\u25C2 ${q()[me()]??""} \u25B8`),L((Te)=>o(Fe,"fg",g.text.accent,Te)),Fe}})]}}),null),L((Fe)=>{var Te=Y()?g.select.focusedBg:void 0,bn=Y()?g.text.accent:g.text.secondary;return Te!==Fe.e&&(Fe.e=o(Ne,"backgroundColor",Te,Fe.e)),bn!==Fe.t&&(Fe.t=o(ft,"fg",bn,Fe.t)),Fe},{e:void 0,t:void 0}),Ne})()}})),L((ae)=>o(Z,"height",pe(),ae)),Z})()]}}),null),j(k,z(ie,{get when(){return!!h()},get children(){var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),j(ae,h),L((ce)=>o(ae,"fg",m()==="error"?g.text.error:m()==="success"?g.text.success:g.text.accent,ce)),Z}}),null),o(Ie,"width","100%"),o(Ie,"height",1),o(Ie,"flexDirection","row"),o(Ie,"gap",2),j(Ie,z(ie,{get when(){return!D()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("j/k")),f(ce,B(":nav")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("g/G")),f(ce,B(":top/bot")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":edit")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("e")),f(ce,B(":$EDITOR")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("r")),f(ce,B(":reload")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("i")),f(ce,B(":init")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})()]}}),null),j(Ie,z(ie,{get when(){return D()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":save")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Esc")),f(ce,B(":cancel")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z})(),z(ie,{get when(){return w()==="boolean"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Space/Tab")),f(ce,B(":toggle")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="theme"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="strArray"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("JSON")),f(ce,B(":array")),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return We(()=>w()==="string"||w()==="strArray")()&&q().length>0},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B("Tab")),j(ce,()=>`:preset (${he()+1}/${q().length})`),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,B(" ")),j(ce,()=>`(${me()+1}/${q().length})`),L((Y)=>{var Pe=g.text.secondary,$e=g.text.primary;return Pe!==Y.e&&(Y.e=o(ae,"fg",Pe,Y.e)),$e!==Y.t&&(Y.t=o(ce,"fg",$e,Y.t)),Y},{e:void 0,t:void 0}),Z}})]}}),null),L((Z)=>{var ae=g.bg.base,ce=g.bg.surface,Y=g.text.accent,Pe=g.text.secondary,$e=g.text.primary,Ve=g.bg.base;return ae!==Z.e&&(Z.e=o(x,"backgroundColor",ae,Z.e)),ce!==Z.t&&(Z.t=o(k,"backgroundColor",ce,Z.t)),Y!==Z.a&&(Z.a=o(C,"fg",Y,Z.a)),Pe!==Z.o&&(Z.o=o(xe,"fg",Pe,Z.o)),$e!==Z.i&&(Z.i=o(le,"fg",$e,Z.i)),Ve!==Z.n&&(Z.n=o(Ie,"backgroundColor",Ve,Z.n)),Z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),x})()}var tp=2,np=30,ps,wn="[]",zo,qo,gs,Xo,rp,op,ip,sp,cp,ap,lp;var kl=we(()=>{te();te();te();te();te();te();te();te();Ue();Jt();Ye();te();bt();ps=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],zo=[wn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],qo=[wn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],gs=[wn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],Xo=[wn,'["echo removed"]'],rp=[wn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],op=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],ip=[wn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],sp=["copse","wt"],cp=["hardlink","symlink","copy"],ap=[wn,'["node_modules"]','["node_modules", ".next"]'],lp=[wn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Rr,readdirSync as dp,rmSync as hp}from"fs";import{basename as ws,dirname as bs,join as mp,resolve as Er}from"path";function pp(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Ol(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Fl(e){if(!Rr(yt()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=De(),r=Er(t.path),i=ws(r);return[n.repos?.find((a)=>Er(a.path)===r)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>pp(a)).filter((a)=>!bs(a).includes("{")&&ws(a).includes("{")).map((a)=>{let d=ws(a),h=`^${Ol(d).replace(/\\\{repo\\\}/g,Ol(i)).replace(/\\\{branch\\\}/g,".+")}$`,p=new RegExp(h);return{path:Er(bs(a)),matches:(m)=>p.test(m)}})}function Dl(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Er(bs(n.path)));return[...t]}function Ml(e,t,n,r){if(!Rr(e))return;let i=dp(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(r&&!r(s.name))continue;let c=Er(mp(e,s.name));if(!t.has(c))n.add(c)}}function Al(e){let t=new Set(e.map((i)=>Er(i.path))),n=new Set,r=new Set;for(let i of Fl(e))r.add(i.path),Ml(i.path,t,n,i.matches);for(let i of Dl(e)){if(r.has(i))continue;Ml(i,t,n)}return[...n]}function gp(e){return Fl(e).some((t)=>Rr(t.path))||Dl(e).some((t)=>Rr(t))}async function xp(){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 wp(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await xp()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof Zr)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function bp(){try{let n=(De().repos??[]).map((r)=>r.path).filter((r)=>!Rr(r));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 vp(e){let n=e.map((r)=>r.path).filter((r)=>!Rr(r));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 yp(e){try{let n=Al(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:gp(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 $p(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 Pp(e){let n=e.filter((r)=>r.isDirty&&!r.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((r)=>`${r.branch??"detached"} - ${r.path}`)}}async function kr(e){let t=await se.list(e).catch(()=>[]),n=[await wp(),await bp(),vp(t),yp(t),$p(t),Pp(t)];return{checks:n,healthy:n.every((r)=>r.status==="pass")}}async function Cp(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 Sp(e){let t=[];try{let n=Al(await se.list(e).catch(()=>[]));for(let r of n)try{hp(r,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:r})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${r}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Ep(e){let t=[];try{let r=(await se.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of r)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 Yo(e){let t=[];return t.push(await Cp(e)),t.push(...await Sp(e)),t.push(...await Ep(e)),t}var vs=we(()=>{Ye();je();zt()});function Wl(){let e=ot(),t=nt(),[n,r]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[d,h]=ue(!1),[p,m]=ue([]),b=async()=>{s(!0),a(""),m([]);try{let T=await kr();r(T)}catch(T){a(T.message)}s(!1)},A=async()=>{if(n()?.healthy)return;h(!0);try{let T=await Yo();m(T);let G=await kr();r(G)}catch(T){a(T.message)}h(!1)};b(),rt((T)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let G=T.name;if(G==="r")b();if(G==="f"&&!i()&&!d()&&!n()?.healthy)A()});let F=()=>t().width,v=()=>t().height,S=()=>Math.max(50,Math.min(80,F()-4)),D=()=>{let T=P()+K()+8+(K()>0?2:0);return Math.max(12,Math.min(T,v()-4))},M=()=>Math.max(S()-4,10),w=(T)=>{if(T==="pass")return"\u2713";if(T==="warn")return"\u26A0";return"\u2717"},y=(T)=>{if(T==="pass")return g.text.success;if(T==="warn")return g.text.warning;return g.text.error},P=()=>n()?.checks.length??0,K=()=>p().length;return z(rn,{get width(){return S()},get height(){return D()},get borderColor(){return We(()=>!!n()?.healthy)()?g.text.success:We(()=>!!n())()?g.text.warning:g.border.default},get backgroundColor(){return g.bg.surface},title:" Doctor ",get footer(){return[(()=>{var T=l("box"),G=l("text");return f(T,G),o(T,"height",1),j(G,()=>"\u2500".repeat(Math.max(M(),1))),L((X)=>{var H=M(),U=g.border.subtle;return H!==X.e&&(X.e=o(T,"width",H,X.e)),U!==X.t&&(X.t=o(G,"fg",U,X.t)),X},{e:void 0,t:void 0}),T})(),(()=>{var T=l("box"),G=l("text"),X=l("text");return f(T,G),f(T,X),o(T,"flexDirection","row"),o(T,"gap",2),f(G,B("r:recheck")),j(T,z(ie,{get when(){return!n()?.healthy},get children(){var H=l("text");return f(H,B("f:fix")),L((U)=>o(H,"fg",g.text.secondary,U)),H}}),X),f(X,B("Esc:back")),L((H)=>{var U=g.text.secondary,J=g.text.secondary;return U!==H.e&&(H.e=o(G,"fg",U,H.e)),J!==H.t&&(H.t=o(X,"fg",J,H.t)),H},{e:void 0,t:void 0}),T})()]},get children(){return[z(ie,{get when(){return i()},get children(){return z(wr,{label:"Running checks..."})}}),z(ie,{get when(){return d()},get children(){var T=l("text");return f(T,B("Running auto-fix...")),L((G)=>o(T,"fg",g.text.accent,G)),T}}),z(ie,{get when(){return We(()=>!i()&&!d())()&&!!c()},get children(){var T=l("text"),G=B("Error: ");return f(T,G),j(T,c,null),L((X)=>o(T,"fg",g.text.error,X)),T}}),z(ie,{get when(){return We(()=>!i()&&!d()&&!c())()&&!!n()},get children(){return[(()=>{var T=l("text");return f(T,B("Health Checks")),L((G)=>o(T,"fg",g.text.accent,G)),T})(),(()=>{var T=l("text");return j(T,()=>"\u2500".repeat(M())),L((G)=>o(T,"fg",g.border.subtle,G)),T})(),z(et,{get each(){return n().checks},children:(T)=>{return(()=>{var G=l("box"),X=l("text"),H=l("text"),U=B(":"),J=l("text");return f(G,X),f(G,H),f(G,J),o(G,"width","100%"),o(G,"height",1),o(G,"flexDirection","row"),j(X,()=>w(T.status)),f(H,U),o(H,"x",2),o(H,"y",0),j(H,()=>T.name,U),o(J,"y",0),j(J,()=>T.message),L((q)=>{var re=y(T.status),he=g.text.primary,_=T.name.length+4,me=g.text.secondary;return re!==q.e&&(q.e=o(X,"fg",re,q.e)),he!==q.t&&(q.t=o(H,"fg",he,q.t)),_!==q.a&&(q.a=o(J,"x",_,q.a)),me!==q.o&&(q.o=o(J,"fg",me,q.o)),q},{e:void 0,t:void 0,a:void 0,o:void 0}),G})()}}),(()=>{var T=l("text");return j(T,()=>"\u2500".repeat(M())),L((G)=>o(T,"fg",g.border.subtle,G)),T})(),(()=>{var T=l("text");return j(T,(()=>{var G=We(()=>!!n().healthy);return()=>G()?"\u2713 All checks passed":`${n().checks.filter((X)=>X.status==="fail").length} error(s), ${n().checks.filter((X)=>X.status==="warn").length} warning(s) found`})()),L((G)=>o(T,"fg",n().healthy?g.text.success:g.text.warning,G)),T})(),z(ie,{get when(){return K()>0},get children(){return[(()=>{var T=l("text");return f(T,B("Fix Results")),L((G)=>o(T,"fg",g.text.accent,G)),T})(),(()=>{var T=l("text");return j(T,()=>"\u2500".repeat(M())),L((G)=>o(T,"fg",g.border.subtle,G)),T})(),z(et,{get each(){return p()},children:(T)=>{return(()=>{var G=l("box"),X=l("text"),H=l("text");return f(G,X),f(G,H),o(G,"width","100%"),o(G,"height",1),o(G,"flexDirection","row"),j(X,()=>T.success?"\u2713":"\u2717"),o(H,"x",2),o(H,"y",0),j(H,()=>T.action),j(G,z(ie,{get when(){return!!T.detail},get children(){var U=l("text"),J=B("("),q=B(")");return f(U,J),f(U,q),o(U,"y",0),j(U,()=>T.detail,q),L((re)=>{var he=T.action.length+3,_=g.text.secondary;return he!==re.e&&(re.e=o(U,"x",he,re.e)),_!==re.t&&(re.t=o(U,"fg",_,re.t)),re},{e:void 0,t:void 0}),U}}),null),L((U)=>{var J=T.success?g.text.success:g.text.error,q=g.text.primary;return J!==U.e&&(U.e=o(X,"fg",J,U.e)),q!==U.t&&(U.t=o(H,"fg",q,U.t)),U},{e:void 0,t:void 0}),G})()}})]}})]}})]}})}var Il=we(()=>{te();te();te();te();te();te();te();te();Ue();Jt();vs();te();bt();Sr();Go()});var Nl={};qe(Nl,{writePin:()=>$s,removePin:()=>Ps,readPin:()=>ro,listPinnedWorktrees:()=>Cs,isPinned:()=>Wn});import{readFileSync as Tl,writeFileSync as Rp,unlinkSync as kp,mkdirSync as Op,existsSync as ys}from"fs";import{join as Mp,dirname as Bl}from"path";function no(e){return tn(e,"copse-pin")}function Fp(e){let t=no(e),n=Bl(t),r=Mp(n,"HEAD"),i=Tl(r,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function $s(e,t){let n=no(e),r={branch:Fp(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};Op(Bl(n),{recursive:!0}),Rp(n,JSON.stringify(r),{encoding:"utf-8",mode:384})}function ro(e){let t=no(e);if(!ys(t))return null;return JSON.parse(Tl(t,"utf-8"))}function Ps(e){let t=no(e);if(!ys(t))return;kp(t)}function Wn(e){return ys(no(e))}function Cs(e){return e.filter((t)=>Wn(t.path))}var Or=we(()=>{Mn()});function jl(){let e=ot(),t=mt(),n=()=>t.worktrees()??[],r=()=>e.selectedWorktreeIndex(),i=(p)=>{let m=Math.max(0,Math.min(p,Math.max(n().length-1,0))),b=n()[m];e.setSelectedWorktreeIndex(m),e.setSelectedWorktreePath(b?.path??null)},s=He(()=>{let p=n(),m=[],b=new Map;for(let v of p){let S=b.get(v.repoName);if(S)S.push(v);else b.set(v.repoName,[v])}let A=0,F=!0;for(let[v,S]of b){if(!F)m.push({type:"separator"});F=!1,m.push({type:"header",repoName:v});for(let D of S)m.push({type:"worktree",wt:D,flatIdx:A}),A++}return m}),c=()=>e.selectedWorktrees().size;rt((p)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let m=p.name,b=n();if(m==="j"||m==="down")i(Math.min(r()+1,b.length-1));if(m==="k"||m==="up")i(Math.max(r()-1,0));if(m==="space"){let A=r(),F=b[A];if(F&&!F.isMain)e.toggleWorktreeSelection(F.path)}if(p.ctrl&&m==="a")e.selectAllNonMain(b.filter((A)=>!A.isMain).map((A)=>A.path))});let a=(p)=>{if(p.isLocked)return"\uD83D\uDD12";if(p.isDirty)return"\u25CF";return"\u2713"},d=(p)=>{if(p.isLocked)return g.text.warning;if(p.isDirty)return g.text.error;return g.text.success},h=(p,m)=>{let b=p.branch??"(detached)",A=Math.max(8,Ss-(m?9:7));return b.length>A?b.slice(0,A-1)+"\u2026":b};return(()=>{var p=l("box");return o(p,"x",0),o(p,"y",0),o(p,"width","100%"),o(p,"height","100%"),o(p,"flexDirection","column"),o(p,"paddingX",1),o(p,"paddingY",1),o(p,"gap",0),j(p,z(ie,{get when(){return t.loading()},get children(){var m=l("text");return f(m,B("Loading...")),L((b)=>o(m,"fg",g.text.secondary,b)),m}}),null),j(p,z(ie,{get when(){return!t.loading()},get children(){return[z(et,{get each(){return s()},children:(m)=>{if(m.type==="header")return(()=>{var v=l("box"),S=l("text"),D=l("b");return f(v,S),o(v,"width","100%"),o(v,"height",1),f(S,D),j(D,()=>m.repoName),L((M)=>o(S,"fg",g.text.accent,M)),v})();if(m.type==="separator")return(()=>{var v=l("box"),S=l("text");return f(v,S),o(v,"width","100%"),o(v,"height",1),f(S,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")),L((D)=>o(S,"fg",g.border.subtle,D)),v})();let b=m.wt,A=()=>m.flatIdx===r(),F=()=>e.selectedWorktrees().has(b.path);return(()=>{var v=l("box"),S=l("text"),D=l("text");return f(v,S),f(v,D),o(v,"width","100%"),o(v,"height",1),o(v,"paddingX",1),o(v,"onMouseDown",()=>i(m.flatIdx)),o(S,"x",0),o(S,"y",0),j(S,()=>a(b)),o(D,"x",2),o(D,"y",0),j(D,()=>h(b,!1)),j(v,z(ie,{get when(){return F()},get children(){var M=l("text");return f(M,B("\u2713")),o(M,"x",23),o(M,"y",0),L((w)=>o(M,"fg",g.text.accent,w)),M}}),null),j(v,z(ie,{get when(){return!!Kt(b.path)},get children(){var M=l("text");return f(M,B("S")),o(M,"y",0),L((w)=>{var y=Ss-(F()?3:1),P=g.text.accent;return y!==w.e&&(w.e=o(M,"x",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),M}}),null),j(v,z(ie,{get when(){return Wn(b.path)},get children(){var M=l("text");return f(M,B("P")),o(M,"y",0),L((w)=>{var y=Ss-(F()?5:3)+(Kt(b.path)?0:2),P=g.text.warning;return y!==w.e&&(w.e=o(M,"x",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),M}}),null),L((M)=>{var w=A()?g.select.focusedBg:F()?g.bg.elevated:g.bg.surface,y=d(b),P=A()?g.tab.active:g.text.primary;return w!==M.e&&(M.e=o(v,"backgroundColor",w,M.e)),y!==M.t&&(M.t=o(S,"fg",y,M.t)),P!==M.a&&(M.a=o(D,"fg",P,M.a)),M},{e:void 0,t:void 0,a:void 0}),v})()}}),z(ie,{get when(){return c()>0},get children(){var m=l("box"),b=l("text");return f(m,b),o(m,"width","100%"),o(m,"height",1),j(b,()=>`Selected: ${c()}`),L((A)=>o(b,"fg",g.text.accent,A)),m}})]}}),null),L((m)=>o(p,"backgroundColor",g.bg.surface,m)),p})()}var Ss=24;var Ll=we(()=>{te();te();te();te();te();te();te();Ue();Jt();un();te();bt();Or();Dn()});import{decodePasteBytes as Dp}from"@opentui/core";function Vl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(""),[s,c]=ue(0);an(()=>{e.setInputFocused(!0)}),it(()=>{e.setInputFocused(!1)});let a=()=>{let D=t.worktrees()??[],M=e.selectedWorktreePath();if(M){let w=D.find((y)=>y.path===M);if(w)return w}return D[e.selectedWorktreeIndex()]},d=()=>{let D=process.env.VISUAL||process.env.EDITOR;if(D)return D;let M=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let w of M)try{if(Bun.spawnSync(["which",w],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return w}catch{}return null},h=He(()=>[{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 D=a();if(!D||D.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let D=a();if(!D)return;let M=d();if(!M)return;e.setShowCommandPalette(!1),Bun.spawn([M,D.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)}},...Dt.map((D)=>({id:`theme:${D}`,label:`Theme: ${Bo[D]}`,description:"Switch color theme",action:()=>{mr(D);try{let M=yt(),w={...De()};w.theme=D,Qn(M,JSON.stringify(w,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),p=He(()=>{let D=r().toLowerCase();if(!D)return h();return h().filter((M)=>M.label.toLowerCase().includes(D)||M.description.toLowerCase().includes(D))});rt((D)=>{if(!e.showCommandPalette())return;let M=D.name;if(M==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(M==="return"||M==="enter"){let w=p()[s()];if(w)w.action();i(""),c(0);return}if(M==="down"||M==="j"){c((w)=>Math.min(w+1,p().length-1));return}if(M==="up"||M==="k"){c((w)=>Math.max(w-1,0));return}}),hr((D)=>{if(!e.inputFocused())return;let M=Dp(D.bytes).replace(/\r?\n/g,"");if(!M)return;i((w)=>w+M),c(0)});let m=(D)=>{i(D),c(0)},b=()=>Math.max(50,Math.min(80,n().width-4)),A=()=>Math.max(10,Math.min(p().length+8,n().height-4)),F=()=>b()-4,v=()=>Math.max(F()-2,1),S=()=>A()-8;return z(rn,{get width(){return b()},get height(){return A()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var D=l("box"),M=l("text");return f(D,M),o(D,"height",1),j(M,()=>"\u2500".repeat(Math.max(F(),1))),L((w)=>{var y=F(),P=g.border.subtle;return y!==w.e&&(w.e=o(D,"width",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),D})(),(()=>{var D=l("box"),M=l("text"),w=l("text"),y=l("text");return f(D,M),f(D,w),f(D,y),o(D,"flexDirection","row"),o(D,"gap",2),f(M,B("\u2191\u2193:navigate")),f(w,B("Enter:run")),f(y,B("Esc:close")),L((P)=>{var K=g.text.secondary,T=g.text.secondary,G=g.text.secondary;return K!==P.e&&(P.e=o(M,"fg",K,P.e)),T!==P.t&&(P.t=o(w,"fg",T,P.t)),G!==P.a&&(P.a=o(y,"fg",G,P.a)),P},{e:void 0,t:void 0,a:void 0}),D})()]},get children(){return[(()=>{var D=l("box"),M=l("text"),w=l("input");return f(D,M),f(D,w),o(D,"height",1),o(D,"flexDirection","row"),f(M,B("> ")),o(w,"onInput",m),o(w,"placeholder","Search commands..."),o(w,"focused",!0),L((y)=>{var P=F(),K=g.bg.elevated,T=g.text.accent,G=r(),X=v(),H=g.bg.elevated,U=g.text.primary,J=g.text.secondary,q=g.text.accent,re=g.bg.elevated;return P!==y.e&&(y.e=o(D,"width",P,y.e)),K!==y.t&&(y.t=o(D,"backgroundColor",K,y.t)),T!==y.a&&(y.a=o(M,"fg",T,y.a)),G!==y.o&&(y.o=o(w,"value",G,y.o)),X!==y.i&&(y.i=o(w,"width",X,y.i)),H!==y.n&&(y.n=o(w,"backgroundColor",H,y.n)),U!==y.s&&(y.s=o(w,"textColor",U,y.s)),J!==y.h&&(y.h=o(w,"placeholderColor",J,y.h)),q!==y.r&&(y.r=o(w,"cursorColor",q,y.r)),re!==y.d&&(y.d=o(w,"focusedBackgroundColor",re,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}),D})(),(()=>{var D=l("box"),M=l("text");return f(D,M),o(D,"height",1),j(M,()=>"\u2500".repeat(Math.max(F(),1))),L((w)=>{var y=F(),P=g.border.subtle;return y!==w.e&&(w.e=o(D,"width",y,w.e)),P!==w.t&&(w.t=o(M,"fg",P,w.t)),w},{e:void 0,t:void 0}),D})(),(()=>{var D=l("box");return o(D,"flexDirection","column"),j(D,z(et,{get each(){return p().slice(0,S())},children:(M,w)=>{let y=()=>w()===s();return(()=>{var P=l("box"),K=l("text"),T=l("text");return f(P,K),f(P,T),o(P,"height",1),o(P,"onMouseDown",()=>{c(w()),M.action()}),o(K,"x",2),o(K,"y",0),j(K,()=>M.label),o(T,"y",0),j(T,()=>M.description),L((G)=>{var X=F(),H=y()?g.select.focusedBg:g.bg.surface,U=y()?g.tab.active:g.text.primary,J=Math.max(25,M.label.length+4),q=g.text.secondary;return X!==G.e&&(G.e=o(P,"width",X,G.e)),H!==G.t&&(G.t=o(P,"backgroundColor",H,G.t)),U!==G.a&&(G.a=o(K,"fg",U,G.a)),J!==G.o&&(G.o=o(T,"x",J,G.o)),q!==G.i&&(G.i=o(T,"fg",q,G.i)),G},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),P})()}}),null),j(D,z(ie,{get when(){return p().length===0},get children(){var M=l("box"),w=l("text");return f(M,w),o(M,"height",1),f(w,B("No commands found")),o(w,"x",2),o(w,"y",0),L((y)=>o(w,"fg",g.text.secondary,y)),M}}),null),L((M)=>{var w=F(),y=S(),P=g.bg.surface;return w!==M.e&&(M.e=o(D,"width",w,M.e)),y!==M.t&&(M.t=o(D,"height",y,M.t)),P!==M.a&&(M.a=o(D,"backgroundColor",P,M.a)),M},{e:void 0,t:void 0,a:void 0}),D})()]}})}var Kl=we(()=>{te();te();te();te();te();te();te();Ue();Jt();un();te();bt();Sr();Ye()});import{join as Ap}from"path";import{existsSync as Wp}from"fs";function Gl(e){let t=ot(),n=nn(),[r,i]=ue(0),s=()=>t.focusPickerData(),c=He(()=>{let p=s();if(!p)return[];return[...p.focusPaths.map((m)=>({label:m,value:m})),{label:"Worktree root",value:Es}]}),a=()=>{t.setFocusPickerData(null),i(0)},d=(p)=>{let m=e.detectEditor();if(!m){n.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"}),a();return}if(!Wp(p)){n.addToast({message:`Path does not exist: ${p}`,type:"error"}),a();return}Bun.spawn([m,p],{stdout:"inherit",stderr:"inherit"}),a()},h=()=>{let p=s(),m=c();if(!p||m.length===0)return;let b=m[r()];if(!b)return;if(b.value===Es)d(p.worktreePath);else d(Ap(p.worktreePath,b.value))};return rt((p)=>{if(!s())return;let m=p.name;if(m==="escape"){a();return}let b=c();if(m==="down"||m==="j"||p.sequence==="\x1B[B"){i((A)=>Math.min(A+1,b.length-1));return}if(m==="up"||m==="k"||p.sequence==="\x1B[A"){i((A)=>Math.max(A-1,0));return}if(m==="return"||m==="enter"){h();return}}),z(ie,{get when(){return s()},get children(){return z(rn,{title:" Open Focus ",width:50,get height(){return Math.min(c().length+6,14)},backdrop:!0,get children(){return[(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,B("Multiple focus paths set. Pick one to open:")),L((b)=>o(m,"fg",g.text.secondary,b)),p})(),(()=>{var p=l("box");return o(p,"height",1),p})(),z(et,{get each(){return c()},children:(p,m)=>(()=>{var b=l("box"),A=l("text");return f(b,A),o(b,"height",1),o(b,"flexDirection","row"),j(A,()=>m()===r()?"\u276F ":" ",null),j(A,()=>p.label,null),L((F)=>o(A,"fg",m()===r()?g.text.accent:p.value===Es?g.text.secondary:g.text.primary,F)),b})()}),(()=>{var p=l("box");return o(p,"height",1),p})(),(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,B("j/k:nav enter:open esc:cancel")),L((b)=>o(m,"fg",g.text.secondary,b)),p})()]}})}})}var Es="__root__";var Hl=we(()=>{te();te();te();te();te();te();te();te();Ue();te();Jt();tr();bt();Sr()});function Ip(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function Tp(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 Ul(){let e=nt(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var r=l("box");return o(r,"y",1),o(r,"height",5),o(r,"flexDirection","column"),j(r,z(et,{get each(){return nn().toasts()},children:(i,s)=>(()=>{var c=l("box"),a=l("text");return f(c,a),o(c,"x",0),o(c,"height",1),o(a,"x",1),o(a,"y",0),j(a,()=>`${Ip(i.type)} ${i.message}`),L((d)=>{var h=s(),p=t(),m=g.bg.elevated,b=Tp(i.type);return h!==d.e&&(d.e=o(c,"y",h,d.e)),p!==d.t&&(d.t=o(c,"width",p,d.t)),m!==d.a&&(d.a=o(c,"backgroundColor",m,d.a)),b!==d.o&&(d.o=o(a,"fg",b,d.o)),d},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),L((i)=>{var s=n(),c=t();return s!==i.e&&(i.e=o(r,"x",s,i.e)),c!==i.t&&(i.t=o(r,"width",c,i.t)),i},{e:void 0,t:void 0}),r})()}var Jl=we(()=>{te();te();te();te();te();te();Ue();te();tr();bt()});var Xl={};qe(Xl,{launchTUI:()=>Lp});import{existsSync as Bp}from"fs";import{resolve as zl}from"path";function ql(){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 jp(e){let t=ot(),n=mt(),r=nn(),i=fn(),[s,c]=ue(!1),a=nt(),d=()=>{let S=n.worktrees()??[],D=t.selectedWorktreePath();if(D){let M=S.find((w)=>w.path===D);if(M)return M}return S[t.selectedWorktreeIndex()]};Mt(()=>{let S=n.worktrees()??[],D=S.map((P)=>P.path);if(t.pruneSelectedWorktrees(D),S.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let M=t.selectedWorktreePath();if(M){let P=S.findIndex((K)=>K.path===M);if(P>=0){if(P!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(P);return}}let w=Math.min(t.selectedWorktreeIndex(),S.length-1),y=S[w]?.path??null;if(w!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(w);if(y!==t.selectedWorktreePath())t.setSelectedWorktreePath(y)}),rt((S)=>{let D=S.name;if(D==="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(S.ctrl&&D==="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(D==="a"){t.setActiveTab("add");return}if(D==="r"){n.refetch();return}if(D==="d"){let M=d();if(M&&!M.isMain)t.setShowRemove(!0);return}if(D==="o"){let M=d();if(!M)return;let w=jo(M.path);if(w.kind==="multiple"){t.setFocusPickerData({worktreePath:M.path,focusPaths:w.focusPaths});return}let y=process.env.VISUAL||process.env.EDITOR||ql();if(!y){r.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!Bp(w.path)){r.addToast({message:`Path does not exist: ${w.path}`,type:"error"});return}Bun.spawn([y,w.path],{stdout:"inherit",stderr:"inherit"});return}}if(D==="h"){t.setActiveTab("doctor");return}if(D==="q"||D==="Q")i.destroy();if(D==="?")c((M)=>!M)});let h=()=>a().width,p=()=>a().height,m=()=>e.repoPath.split("/").pop()??"",b=()=>{let S=n.repoNames();if(S.length<=1)return m();return`${S.length} repos`},A=()=>{let S=n.worktrees()??[];return`${m()} \xB7 ${S.length} worktrees`},F=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},v=()=>h()-Np-1;return(()=>{var S=l("box"),D=l("box"),M=l("text"),w=l("text"),y=l("box"),P=l("box"),K=l("box"),T=l("text"),G=l("b"),X=l("box"),H=l("box"),U=l("toaster"),J=l("box"),q=l("text"),re=l("box"),he=l("text");return f(S,D),f(S,y),f(S,U),f(S,J),f(S,re),o(S,"flexDirection","column"),f(D,M),f(D,w),o(D,"height",1),f(M,B("\uD83C\uDF33 copse")),o(M,"x",1),o(M,"y",0),o(w,"y",0),j(w,b),f(y,P),f(y,X),f(y,H),o(y,"flexGrow",1),o(y,"flexDirection","row"),f(P,K),o(P,"width",28),o(P,"flexShrink",0),o(P,"flexDirection","column"),f(K,T),o(K,"height",1),o(K,"paddingX",1),f(T,G),j(G,F),j(P,z(jl,{}),null),o(X,"width",1),o(H,"flexGrow",1),j(H,z(ie,{get when(){return We(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return z(hl,{})}}),null),j(H,z(ie,{get when(){return We(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return z(Sl,{get w(){return v()},get h(){return p()-3}})}}),null),j(H,z(ie,{get when(){return t.activeTab()==="config"},get children(){return z(Rl,{})}}),null),j(S,z(Ul,{}),U),o(U,"position","bottom-right"),f(J,q),o(J,"height",1),o(q,"x",0),o(q,"y",0),j(q,()=>"\u2500".repeat(h())),f(re,he),o(re,"height",1),f(he,B("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),o(he,"x",1),o(he,"y",0),j(S,z(ie,{get when(){return We(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),Re=l("text"),E=l("text"),O=l("box"),V=l("text"),N=l("text"),I=l("box"),ee=l("text"),de=l("text"),ne=l("box"),ge=l("text"),Se=l("text"),pe=l("box"),ve=l("text"),Me=l("text"),Ee=l("box"),W=l("box"),u=l("text"),x=l("text"),k=l("box"),R=l("text"),C=l("text"),Q=l("box"),oe=l("box"),xe=l("text");return f(_,me),f(_,O),f(_,I),f(_,ne),f(_,pe),f(_,Ee),f(_,W),f(_,k),f(_,Q),f(_,oe),o(_,"height",14),o(_,"border",!0),o(_,"borderStyle","rounded"),o(_,"title"," Keyboard Shortcuts "),o(_,"titleAlignment","left"),o(_,"flexDirection","column"),o(_,"paddingX",1),o(_,"paddingY",1),o(_,"position","absolute"),f(me,Re),f(me,E),o(me,"height",1),f(Re,B("q")),o(Re,"x",1),f(E,B("Quit")),o(E,"x",8),f(O,V),f(O,N),o(O,"height",1),f(V,B("j/k")),o(V,"x",1),f(N,B("Navigate list")),o(N,"x",8),f(I,ee),f(I,de),o(I,"height",1),f(ee,B("a")),o(ee,"x",1),f(de,B("Add worktree")),o(de,"x",8),f(ne,ge),f(ne,Se),o(ne,"height",1),f(ge,B("d")),o(ge,"x",1),f(Se,B("Delete worktree")),o(Se,"x",8),f(pe,ve),f(pe,Me),o(pe,"height",1),f(ve,B("r")),o(ve,"x",1),f(Me,B("Refresh list")),o(Me,"x",8),o(Ee,"height",1),f(W,u),f(W,x),o(W,"height",1),f(u,B("Ctrl+P")),o(u,"x",1),f(x,B("Command palette")),o(x,"x",8),f(k,R),f(k,C),o(k,"height",1),f(R,B("?")),o(R,"x",1),f(C,B("Toggle help")),o(C,"x",8),o(Q,"height",1),f(oe,xe),o(oe,"height",1),f(xe,B("Press ? to close")),o(xe,"x",1),L((le)=>{var Ie=Math.max(0,Math.floor((h()-Math.max(40,Math.min(60,h()-4)))/2)),Z=Math.max(0,Math.floor((p()-14)/2)),ae=Math.max(40,Math.min(60,h()-4)),ce=g.border.active,Y=g.bg.elevated,Pe=g.text.secondary,$e=g.text.primary,Ve=g.text.secondary,Ne=g.text.primary,ze=g.text.secondary,ft=g.text.primary,Fe=g.text.secondary,Te=g.text.primary,bn=g.text.secondary,Dr=g.text.primary,Ar=g.text.secondary,Wr=g.text.primary,Ir=g.text.secondary,Is=g.text.primary,Ts=g.text.accent;return Ie!==le.e&&(le.e=o(_,"x",Ie,le.e)),Z!==le.t&&(le.t=o(_,"y",Z,le.t)),ae!==le.a&&(le.a=o(_,"width",ae,le.a)),ce!==le.o&&(le.o=o(_,"borderColor",ce,le.o)),Y!==le.i&&(le.i=o(_,"backgroundColor",Y,le.i)),Pe!==le.n&&(le.n=o(Re,"fg",Pe,le.n)),$e!==le.s&&(le.s=o(E,"fg",$e,le.s)),Ve!==le.h&&(le.h=o(V,"fg",Ve,le.h)),Ne!==le.r&&(le.r=o(N,"fg",Ne,le.r)),ze!==le.d&&(le.d=o(ee,"fg",ze,le.d)),ft!==le.l&&(le.l=o(de,"fg",ft,le.l)),Fe!==le.u&&(le.u=o(ge,"fg",Fe,le.u)),Te!==le.c&&(le.c=o(Se,"fg",Te,le.c)),bn!==le.w&&(le.w=o(ve,"fg",bn,le.w)),Dr!==le.m&&(le.m=o(Me,"fg",Dr,le.m)),Ar!==le.f&&(le.f=o(u,"fg",Ar,le.f)),Wr!==le.y&&(le.y=o(x,"fg",Wr,le.y)),Ir!==le.g&&(le.g=o(R,"fg",Ir,le.g)),Is!==le.p&&(le.p=o(C,"fg",Is,le.p)),Ts!==le.b&&(le.b=o(xe,"fg",Ts,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),j(S,z(ie,{get when(){return t.activeTab()==="add"},get children(){return z(yl,{})}}),null),j(S,z(ie,{get when(){return t.activeTab()==="doctor"},get children(){return z(Wl,{})}}),null),j(S,z(ie,{get when(){return t.showRemove()},get children(){return z(Pl,{})}}),null),j(S,z(ie,{get when(){return t.showCommandPalette()},get children(){return z(Vl,{})}}),null),j(S,z(Gl,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||ql()}),null),L((_)=>{var me=h(),Re=p(),E=g.bg.base,O=g.bg.overlay,V=g.text.accent,N=h()-b().length-2,I=g.text.secondary,ee=g.bg.surface,de=g.text.accent,ne=g.bg.base,ge=g.bg.overlay,Se=g.border.subtle,pe=g.bg.overlay,ve=g.text.secondary;return me!==_.e&&(_.e=o(S,"width",me,_.e)),Re!==_.t&&(_.t=o(S,"height",Re,_.t)),E!==_.a&&(_.a=o(S,"backgroundColor",E,_.a)),O!==_.o&&(_.o=o(D,"backgroundColor",O,_.o)),V!==_.i&&(_.i=o(M,"fg",V,_.i)),N!==_.n&&(_.n=o(w,"x",N,_.n)),I!==_.s&&(_.s=o(w,"fg",I,_.s)),ee!==_.h&&(_.h=o(P,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=o(T,"fg",de,_.r)),ne!==_.d&&(_.d=o(H,"backgroundColor",ne,_.d)),ge!==_.l&&(_.l=o(J,"backgroundColor",ge,_.l)),Se!==_.u&&(_.u=o(q,"fg",Se,_.u)),pe!==_.c&&(_.c=o(re,"backgroundColor",pe,_.c)),ve!==_.w&&(_.w=o(he,"fg",ve,_.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}),S})()}async function Lp(){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={...De()};if(t=En(c),typeof c.theme==="string")n=c.theme}catch{}let r=e??t[0]??process.cwd(),i=[r],s=new Set([zl(r)]);for(let c of t){let a=zl(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&Dt.includes(n))mr(n);await Ha(()=>z(tl,{repoPath:r,repoPaths:i,get children(){return z(ol,{repoPaths:i,get children(){return z(ll,{get children(){return z(jp,{repoPath:r})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var Np=28;var Yl=we(()=>{te();te();te();te();te();te();te();te();Ue();te();Jt();un();je();ml();$l();Cl();El();kl();Il();Ll();bt();Kl();Hl();tr();Jl();tr();Ye();Xt()});import*as Zl from"readline";async function In(e){let t=Zl.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(r)=>{t.close(),n(r.toLowerCase()==="y"||r.toLowerCase()==="yes")})})}async function Le(){return se.getMainRepoPath().catch(()=>process.cwd())}function Gt(e,t){let n=e.find((r)=>r.branch===t||r.path===t||r.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function Qe(e){if(e instanceof Ft)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var gt=we(()=>{je();zt()});import{mkdirSync as Vp,writeFileSync as Kp}from"fs";import{dirname as Gp}from"path";function Hp(e){return tn(e,"copse-pr")}function Ql(e,t){let n=Hp(e);Vp(Gp(n),{recursive:!0}),Kp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var _l=we(()=>{Mn()});import{appendFileSync as Up,existsSync as Jp,mkdirSync as zp,readFileSync as ef,rmSync as qp,statSync as Xp,writeFileSync as Yp}from"fs";import{dirname as Zp}from"path";function Rs(e){return tn(e,"copse-activity.log")}function Ht(e,t){let n=Rs(e);zp(Zp(n),{recursive:!0}),Up(n,`${JSON.stringify(t)}
|
|
17
|
-
|
|
10
|
+
`).filter(Boolean)){let[d,h]=a.split("\x1F");if(!d||d.endsWith("/HEAD"))continue;let p=d.replace(/^[^/]+\//,"");if(c.some((m)=>m.name===p))continue;c.push({name:p,isRemote:!0,lastCommitDate:h??""})}return Vt(n,c)}static async diffBetween(e,t,n,r){let i=["diff"];if(n?.stat)i.push("--stat");if(n?.nameOnly)i.push("--name-only");return i.push(e,t),this.run(i,r)}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 r=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=${r}/${e}`,e],i)}static async getRemotes(e){let t=e??Bun.cwd,n=`remotes:${t}`,r=gr(n);if(r)return r;try{let s=(await this.run(["remote"],t)).split(`
|
|
11
|
+
`).map((c)=>c.trim()).filter(Boolean);return Vt(n,s)}catch{return Vt(n,[])}}static async fetchRemote(e,t,n){let r=t?["fetch",e,t]:["fetch",e];await this.run(r,n),ft()}}function No(e,t){if(!e||e.startsWith("refs/"))return null;let n=e.indexOf("/");if(n<=0)return null;let r=e.slice(0,n),i=e.slice(n+1);if(!i)return null;if(!t.includes(r))return null;return{remote:r,branch:i}}var wm=3000,Bo;var je=xe(()=>{qt();Bo=new Map});function il(e){let[t,{refetch:n}]=ua(async()=>{try{if(e.repoPaths.length<=1)return await se.list(e.repoPaths[0]);return await se.listAll(e.repoPaths)}catch(a){throw a}}),r=()=>{ft(),n()},i=()=>{if(t.error)return;try{return t()}catch{return}},s=He(()=>{let a=i()??[],d=new Set,h=[];for(let p of a)if(!d.has(p.repoName))d.add(p.repoName),h.push(p.repoName);return h}),c=He(()=>s().length>1);return z(ol.Provider,{value:{worktrees:i,refetch:r,loading:()=>t.loading,error:()=>t.error,repoNames:s,isMultiRepo:c},get children(){return e.children}})}function mt(){let e=Lt(ol);if(!e)throw Error("useGit must be used within GitProvider");return e}var ol;var dn=xe(()=>{te();Ue();je();ol=Mn()});var vm,Dt,jo,ym,xr,x;var wt=xe(()=>{Ue();vm={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"}}},Dt=["opencode","tokyo-night","dracula","nord","catppuccin","github-dark","one-dark","monokai","github-light"],jo={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"},[ym,xr]=ue("opencode"),x=new Proxy({},{get(e,t){return new Proxy({},{get(n,r){return vm[ym()][t]?.[r]}})}})});import{readFileSync as $m,statSync as Cm}from"fs";import{join as sl,resolve as Sm}from"path";function no(e){let t=sl(e,".git"),n=Cm(t,{throwIfNoEntry:!1});if(!n||n.isDirectory())return t;let i=$m(t,"utf-8").trim().replace(/^gitdir:\s*/,"").trim();return Sm(e,i)}function nn(e,t){return sl(no(e),t)}var Fn=()=>{};import{existsSync as Pm,mkdirSync as Em,readFileSync as Rm,writeFileSync as km}from"fs";import{dirname as Om,join as cs}from"path";function cl(e){return nn(e,"copse-focus")}function br(e,t){let n=cl(e);Em(Om(n),{recursive:!0}),km(n,t.join(`
|
|
12
|
+
`),{encoding:"utf-8",mode:384})}function Kt(e){let t=cl(e);if(!Pm(t))return null;return Rm(t,"utf-8").split(/\r?\n/).filter(Boolean)}function Vo(e,t){if(t?.forceRoot)return{kind:"root",path:e};let n=Kt(e)??[];if(t?.explicitFocus){if(!n.includes(t.explicitFocus))throw new Lo(t.explicitFocus,n);return{kind:"single",path:cs(e,t.explicitFocus),focus:t.explicitFocus}}if(n.length===0)return{kind:"root",path:e};if(n.length===1)return{kind:"single",path:cs(e,n[0]),focus:n[0]};return{kind:"multiple",focusPaths:n,resolvedPaths:n.map((r)=>cs(e,r))}}var Lo;var Yt=xe(()=>{Fn();Lo=class Lo 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 ls,mkdirSync as Mm,readFileSync as Fm,writeFileSync as Dm,unlinkSync as Am}from"fs";import{dirname as Wm}from"path";function as(e){return e.replace(/\//g,"-").replace(/[^a-zA-Z0-9._-]/g,"_")}async function hn(e){let t=Bun.spawn(["tmux",...e],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C"}}),[n,r,i]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);if(i!==0)throw new wr(`tmux ${e[0]} failed: ${r.trim()}`,r.trim());return n.trim()}function Dn(e,t){let n=as(t??al),r=as(e);return`${n}_${r}`}function fs(e){return nn(e,"copse-session")}function Im(e,t){let n=fs(e);Mm(Wm(n),{recursive:!0}),Dm(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}function Gt(e){let t=fs(e);if(!ls(t))return null;try{return JSON.parse(Fm(t,"utf-8"))}catch{return null}}function us(e){let t=fs(e);if(ls(t))Am(t)}async function An(){try{return await Bun.spawn(["tmux","-V"],{stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}function ds(){return Boolean(Bun.env.TMUX)}async function mn(e){try{return await hn(["has-session","-t",e]),!0}catch{return!1}}async function Tm(e,t,n){if(await mn(e))throw new wr(`Session '${e}' already exists`,"session_exists");if(!ls(t))throw new wr(`Worktree path does not exist: ${t}`,"path_not_found");let r=n?.windows??[],i=r[0],s=["new-session","-d","-s",e,"-c",t];if(i)s.push("-n",i.name);if(await hn(s),i?.command)await hn(["send-keys","-t",`${e}:${i.name}`,i.command,"Enter"]);for(let c=1;c<r.length;c++){let a=r[c];if(await hn(["new-window","-t",e,"-n",a.name,"-c",t]),a.command)await hn(["send-keys","-t",`${e}:${a.name}`,a.command,"Enter"])}if(r.length>0)await hn(["select-window","-t",`${e}:${r[0].name}`])}async function hs(e){if(!await mn(e))return;await hn(["kill-session","-t",e])}async function Ko(e){if(!await mn(e))throw new wr(`Session '${e}' does not exist`,"session_not_found");if(ds())await hn(["switch-client","-t",e]);else if(await Bun.spawn(["tmux","attach-session","-t",e],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited!==0)throw new wr(`Failed to attach to session '${e}'`,"attach_failed")}async function ms(e){let t=as(e??al);try{let n=await hn(["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}|#{session_created}"]);if(!n)return[];return n.split(`
|
|
13
|
+
`).filter(Boolean).filter((r)=>r.startsWith(`${t}_`)||r.startsWith(`${t}:`)).map((r)=>{let[i,s,c,a]=r.split("|");return{name:i??"",windows:parseInt(s??"0",10),attached:c==="1",created:a??""}})}catch{return[]}}async function vr(e,t,n){let r=Dn(e,n?.prefix),i=n?.attach??!0;if(await mn(r)){if(i)await Ko(r);return r}if(await Tm(r,t,n?.layout),Im(t,{name:r,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Ko(r);return r}async function Go(e,t,n){let r=Dn(e,n),i=await mn(r);if(i)await hs(r);return us(t),i}var wr,al="copse";var pn=xe(()=>{Fn();wr=class wr extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function fl(e){let[t,n]=ue([]),r=(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((d)=>[...d,{...s,id:c}].slice(-5)),setTimeout(()=>{r(c)},a)};return z(ll.Provider,{value:{toasts:t,addToast:i,removeToast:r},get children(){return e.children}})}function rn(){let e=Lt(ll);if(!e)throw Error("useToast must be used within ToastProvider");return e}var ll;var nr=xe(()=>{te();Ue();ll=Mn()});function yr(e){let[t,n]=ue(0),r=setInterval(()=>{n((i)=>(i+1)%ul.length)},80);return it(()=>clearInterval(r)),(()=>{var i=l("box"),s=l("text");return f(i,s),o(i,"flexDirection","row"),o(i,"gap",1),L(s,()=>ul[t()]),L(i,(()=>{var c=We(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return L(a,()=>e.label),K((d)=>o(a,"fg",x.text.secondary,d)),a})()})(),null),K((c)=>o(s,"fg",e.color??x.text.accent,c)),i})()}var ul;var Ho=xe(()=>{te();te();te();te();te();te();Ue();wt();ul=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function dl(e){let t=mt(),n=rn(),r=un(),i=nt(),s=()=>i().width,c=()=>i().height,[a,d]=ue(null),[h,p]=ue(!0),[m,b]=ue("");Ta((y)=>{let S=y.getSelectedText();if(!S)return;r.copyToClipboardOSC52(S),n.addToast({type:"info",message:"Copied to clipboard"})});let D;it(()=>{if(D)clearTimeout(D)});let T=()=>{return(t.worktrees()??[]).find((B)=>B.isMain)?.branch??"main"};Ft(tn(()=>e.worktree.path,(y)=>{if(D)clearTimeout(D);if(!y){d(null),b(""),p(!1);return}d(null),b(""),p(!0),D=setTimeout(async()=>{if(e.worktree.path!==y)return;try{let[S,[B,A],V]=await Promise.all([Nm(y),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(T(),e.worktree.branch,{stat:!0},y).catch(()=>""),se.diffBetween(T(),e.worktree.branch,void 0,y).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?se.getAheadBehind(e.worktree.branch,y):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==y)return;let q=null;try{q=Kt(y)}catch{}let H=null,U=Gt(y);if(U){let J=await mn(U.name).catch(()=>!1);H={meta:U,active:J}}if(e.worktree.path!==y)return;d({commits:S,diffStat:B,fullDiff:A,aheadBehind:V,focus:q,session:H}),b("")}catch(S){if(e.worktree.path!==y)return;d(null),b(S.message)}finally{if(e.worktree.path===y)p(!1)}},Bm)}));let v=()=>{let y=e.worktree;if(y.isLocked)return"\uD83D\uDD12 locked";if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"},E=()=>{let y=e.worktree;if(y.isLocked)return x.text.warning;if(y.isDirty)return x.text.error;return x.text.success},k=()=>{let y=a();if(!y)return"";let S=[];if(y.aheadBehind.ahead>0)S.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)S.push(`\u2193${y.aheadBehind.behind}`);return S.length>0?S.join(" "):"\u2713 up to date"},O=()=>{let y=a();if(!y)return x.text.secondary;return y.aheadBehind.ahead||y.aheadBehind.behind?x.text.warning:x.text.success},w=()=>"\u2500".repeat(Math.max(s()-7,10));return(()=>{var y=l("box"),S=l("scrollbox"),B=l("box"),A=l("text"),V=l("text"),q=l("box"),H=l("text"),U=l("box"),J=l("box"),X=l("box"),re=l("text"),he=l("text"),_=l("box"),me=l("box"),Pe=l("text"),R=l("text"),F=l("box"),G=l("box"),N=l("text"),W=l("text"),ee=l("box"),de=l("box"),ne=l("text"),pe=l("text"),Se=l("box"),be=l("box"),ke=l("text"),Fe=l("box"),Re=l("text");return f(y,S),o(y,"x",0),o(y,"y",0),f(S,B),f(S,q),f(S,U),f(S,J),f(S,_),f(S,F),f(S,ee),f(S,Se),f(S,be),f(S,Fe),o(S,"x",2),o(S,"y",1),f(B,A),f(B,V),o(B,"height",1),f(A,j("Worktree Detail")),o(A,"x",0),o(A,"y",0),o(A,"bold",!0),o(A,"selectable",!0),f(V,j("(Esc to close)")),o(V,"x",17),o(V,"y",0),o(V,"selectable",!0),f(q,H),o(q,"height",1),o(H,"x",0),o(H,"y",0),o(H,"selectable",!0),L(H,w),o(U,"height",1),f(J,X),f(J,he),o(J,"height",1),o(J,"flexDirection","row"),f(X,re),o(X,"width",16),o(X,"height",1),f(re,j("Branch")),o(re,"x",0),o(re,"y",0),o(re,"selectable",!0),o(he,"selectable",!0),L(he,()=>e.worktree.branch??"(detached)"),f(_,me),f(_,R),o(_,"height",1),o(_,"flexDirection","row"),f(me,Pe),o(me,"width",16),o(me,"height",1),f(Pe,j("Path")),o(Pe,"x",0),o(Pe,"y",0),o(Pe,"selectable",!0),o(R,"selectable",!0),L(R,()=>e.worktree.path),f(F,G),f(F,W),o(F,"height",1),o(F,"flexDirection","row"),f(G,N),o(G,"width",16),o(G,"height",1),f(N,j("Status")),o(N,"x",0),o(N,"y",0),o(N,"selectable",!0),o(W,"selectable",!0),L(W,v),f(ee,de),f(ee,pe),o(ee,"height",1),o(ee,"flexDirection","row"),f(de,ne),o(de,"width",16),o(de,"height",1),f(ne,j("HEAD")),o(ne,"x",0),o(ne,"y",0),o(ne,"selectable",!0),o(pe,"selectable",!0),L(pe,()=>e.worktree.head?.slice(0,8)),L(S,z(ie,{get when(){return h()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box");return o(I,"height",1),L(I,z(yr,{label:"Loading details..."})),I})()]}}),Se),L(S,z(ie,{get when(){return We(()=>!h())()&&!!m()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,()=>`Failed to load details: ${m()}`),K((g)=>o(u,"fg",x.text.error,g)),I})()]}}),Se),L(S,z(ie,{get when(){return We(()=>!h()&&!m())()&&!!a()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Upstream")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Sync")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,k),K((P)=>{var C=x.text.secondary,Q=O();return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),z(ie,{get when(){return a().aheadBehind.ahead>0},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Ahead")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.ahead} commit(s)`),K((P)=>{var C=x.text.secondary,Q=x.text.warning;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}}),z(ie,{get when(){return a().aheadBehind.behind>0},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Behind")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.behind} commit(s)`),K((P)=>{var C=x.text.secondary,Q=x.text.warning;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}}),(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Recent Commits")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(ie,{get when(){return a().commits.length>0},get fallback(){return(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("No commits found")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.secondary,g)),I})()},get children(){return z(et,{get each(){return a().commits},children:(I)=>(()=>{var u=l("box"),g=l("text");return f(u,g),o(u,"height",1),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),L(g,I),K((M)=>o(g,"fg",x.text.primary,M)),u})()})}}),z(ie,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L(u,()=>`Diff vs ${T()}`),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(ie,{get when(){return a().diffStat.length>0},get children(){var I=l("code");return o(I,"language","diff"),K((u)=>o(I,"code",a().diffStat,u)),I}}),(()=>{var I=l("box");return o(I,"height",1),I})(),z(ie,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("No changes")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.secondary,g)),I})()},get children(){var I=l("scrollbox"),u=l("diff");return f(I,u),o(I,"height",15),o(u,"view","unified"),K((g)=>{var M=s()-3,P=a().fullDiff;return M!==g.e&&(g.e=o(I,"width",M,g.e)),P!==g.t&&(g.t=o(u,"diff",P,g.t)),g},{e:void 0,t:void 0}),I}})]}}),z(ie,{get when(){return We(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Focus Paths")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(et,{get each(){return a().focus},children:(I)=>(()=>{var u=l("box"),g=l("text");return f(u,g),o(u,"height",1),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),L(g,` \u2022 ${I}`),K((M)=>o(g,"fg",x.text.primary,M)),u})()})]}}),z(ie,{get when(){return a().session},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Session")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Name")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.name),K((P)=>{var C=x.text.secondary,Q=x.text.primary;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Status")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.active?"\u25CF active":"\u25CB inactive"),K((P)=>{var C=x.text.secondary,Q=a().session.active?x.text.success:x.text.error;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),z(ie,{get when(){return a().session.meta.layout},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Layout")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.layout),K((P)=>{var C=x.text.secondary,Q=x.text.primary;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}})]}}),z(ie,{get when(){return e.worktree.isMain},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Type")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),f(M,j("main worktree")),o(M,"selectable",!0),K((P)=>{var C=x.text.secondary,Q=x.text.accent;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})()]}})]}}),Se),o(Se,"height",1),f(be,ke),o(be,"height",1),o(ke,"x",0),o(ke,"y",0),o(ke,"selectable",!0),L(ke,w),f(Fe,Re),o(Fe,"height",1),f(Re,j("Esc:back d:delete o:open r:refresh")),o(Re,"x",0),o(Re,"y",0),o(Re,"selectable",!0),K((I)=>{var u=s(),g=c(),M=x.bg.base,P=s()-3,C=c()-3,Q=x.text.accent,oe=x.text.secondary,ge=x.border.subtle,le=x.text.secondary,Ie=x.text.accent,Z=x.text.secondary,ae=x.text.primary,ce=x.text.secondary,Y=E(),$e=x.text.secondary,ye=x.text.secondary,Ve=x.border.subtle,Ne=x.text.secondary;return u!==I.e&&(I.e=o(y,"width",u,I.e)),g!==I.t&&(I.t=o(y,"height",g,I.t)),M!==I.a&&(I.a=o(y,"backgroundColor",M,I.a)),P!==I.o&&(I.o=o(S,"width",P,I.o)),C!==I.i&&(I.i=o(S,"height",C,I.i)),Q!==I.n&&(I.n=o(A,"fg",Q,I.n)),oe!==I.s&&(I.s=o(V,"fg",oe,I.s)),ge!==I.h&&(I.h=o(H,"fg",ge,I.h)),le!==I.r&&(I.r=o(re,"fg",le,I.r)),Ie!==I.d&&(I.d=o(he,"fg",Ie,I.d)),Z!==I.l&&(I.l=o(Pe,"fg",Z,I.l)),ae!==I.u&&(I.u=o(R,"fg",ae,I.u)),ce!==I.c&&(I.c=o(N,"fg",ce,I.c)),Y!==I.w&&(I.w=o(W,"fg",Y,I.w)),$e!==I.m&&(I.m=o(ne,"fg",$e,I.m)),ye!==I.f&&(I.f=o(pe,"fg",ye,I.f)),Ve!==I.y&&(I.y=o(ke,"fg",Ve,I.y)),Ne!==I.g&&(I.g=o(Re,"fg",Ne,I.g)),I},{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 Nm(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 Bm=150;var hl=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();dn();nr();wt();Yt();pn();je();Ho()});function ml(){let e=ot(),t=mt(),n=nt(),r=()=>{let v=t.worktrees()??[],E=e.selectedWorktreePath();if(E){let k=v.find((O)=>O.path===E);if(k)return k}return v[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[d,h]=ue(!1),[p,m]=ue(""),b;it(()=>{if(b)clearTimeout(b)}),Ft(tn(()=>r()?.path,(v)=>{if(b)clearTimeout(b);if(!v){a(null),h(!1),m("");return}a(null),h(!0),m(""),b=setTimeout(async()=>{let E=r();if(!E||E.path!==v)return;try{let[k,O,w]=await Promise.all([E.branch?se.getAheadBehind(E.branch,E.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(E.path),se.getDirtyCount(E.path)]);if(r()?.path===v)a({aheadBehind:k,lastCommit:O,dirtyCount:w}),m("")}catch(k){if(r()?.path===v)a(null),m(k.message)}finally{if(r()?.path===v)h(!1)}},jm)}));let D=()=>{if(d())return"Loading...";if(p())return"Unavailable";let v=c();if(!v)return"";let E=[];if(v.aheadBehind.ahead>0)E.push(`\u2191${v.aheadBehind.ahead}`);if(v.aheadBehind.behind>0)E.push(`\u2193${v.aheadBehind.behind}`);return E.length>0?E.join(" "):"\u2713 up to date"},T=()=>{let v=r();if(!v)return"";if(v.isLocked)return"\uD83D\uDD12 locked";let E=c();if(E&&E.dirtyCount>0)return`\u25CF ${E.dirtyCount} file(s) dirty`;if(v.isDirty)return"\u25CF dirty";return"\u2713 clean"};return rt((v)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let E=v.name;if(E==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(E==="return"&&!e.showDetailView()&&r()){e.setShowDetailView(!0);return}if(E==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var v=l("box");return o(v,"width","100%"),o(v,"height","100%"),L(v,z(ie,{get when(){return We(()=>!!e.showDetailView())()&&!!r()},get children(){return z(dl,{get worktree(){return r()}})}}),null),L(v,z(ie,{get when(){return!e.showDetailView()},get children(){return[z(ie,{get when(){return t.loading()},get children(){return z(yr,{label:"Loading worktrees..."})}}),z(ie,{get when(){return We(()=>!t.loading())()&&!!t.error()},get children(){var E=l("box"),k=l("text"),O=l("text"),w=l("text"),y=l("text"),S=l("text"),B=l("text"),A=l("text"),V=l("text"),q=l("text");return f(E,k),f(E,O),f(E,w),f(E,y),f(E,S),f(E,B),f(E,A),f(E,V),f(E,q),o(E,"flexDirection","column"),o(E,"paddingX",2),o(E,"paddingY",1),o(E,"gap",0),f(k,j("Unable to list worktrees")),f(O,j(" ")),L(w,()=>t.error()?.message),f(y,j(" ")),f(S,j("copse needs a git repository to manage worktrees.")),f(B,j(" \xB7 cd into a git repository and relaunch copse, or")),f(A,j(" \xB7 configure repos in ~/.config/copse/config.json")),f(V,j(" ")),f(q,j("Press q to quit, or ^P to open the command palette.")),K((H)=>{var U=x.text.error,J=x.text.secondary,X=x.text.secondary,re=x.text.secondary,he=x.text.secondary,_=x.text.secondary,me=x.text.secondary,Pe=x.text.secondary,R=x.text.accent;return U!==H.e&&(H.e=o(k,"fg",U,H.e)),J!==H.t&&(H.t=o(O,"fg",J,H.t)),X!==H.a&&(H.a=o(w,"fg",X,H.a)),re!==H.o&&(H.o=o(y,"fg",re,H.o)),he!==H.i&&(H.i=o(S,"fg",he,H.i)),_!==H.n&&(H.n=o(B,"fg",_,H.n)),me!==H.s&&(H.s=o(A,"fg",me,H.s)),Pe!==H.h&&(H.h=o(V,"fg",Pe,H.h)),R!==H.r&&(H.r=o(q,"fg",R,H.r)),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}),E}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!!r()},get children(){var E=l("box"),k=l("box"),O=l("text"),w=l("box"),y=l("text"),S=l("box"),B=l("box"),A=l("text"),V=l("text"),q=l("box"),H=l("box"),U=l("text"),J=l("text"),X=l("box"),re=l("box"),he=l("text"),_=l("text"),me=l("box"),Pe=l("box"),R=l("text"),F=l("text"),G=l("box"),N=l("box"),W=l("text"),ee=l("text"),de=l("box"),ne=l("text"),pe=l("box"),Se=l("text"),be=l("text"),ke=l("text"),Fe=l("text"),Re=l("text"),I=l("text");return f(E,k),f(E,w),f(E,S),f(E,q),f(E,X),f(E,me),f(E,G),f(E,de),f(E,pe),o(E,"width","100%"),o(E,"height","100%"),o(E,"flexDirection","column"),o(E,"paddingX",2),o(E,"paddingY",1),f(k,O),o(k,"height",1),o(k,"flexDirection","row"),f(O,j("Worktree Details")),f(w,y),o(w,"height",1),L(y,()=>"\u2500".repeat(Math.max(i()-38,10))),L(E,z(ie,{get when(){return t.isMultiRepo()},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Repo")),L(P,()=>r()?.repoName),K((C)=>{var Q=x.text.secondary,oe=x.text.warning;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),S),f(S,B),f(S,V),o(S,"height",1),o(S,"flexDirection","row"),f(B,A),o(B,"width",14),o(B,"height",1),f(A,j("Branch")),L(V,()=>r()?.branch??"(detached)"),f(q,H),f(q,J),o(q,"height",1),o(q,"flexDirection","row"),f(H,U),o(H,"width",14),o(H,"height",1),f(U,j("Path")),L(J,()=>r()?.path),f(X,re),f(X,_),o(X,"height",1),o(X,"flexDirection","row"),f(re,he),o(re,"width",14),o(re,"height",1),f(he,j("Status")),L(_,T),f(me,Pe),f(me,F),o(me,"height",1),o(me,"flexDirection","row"),f(Pe,R),o(Pe,"width",14),o(Pe,"height",1),f(R,j("Sync")),L(F,D),f(G,N),f(G,ee),o(G,"height",1),o(G,"flexDirection","row"),f(N,W),o(N,"width",14),o(N,"height",1),f(W,j("HEAD")),L(ee,()=>r()?.head?.slice(0,8)),L(E,z(ie,{get when(){return c()?.lastCommit},get children(){return[(()=>{var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Last Commit")),L(P,()=>c().lastCommit.relativeDate),K((C)=>{var Q=x.text.secondary,oe=x.text.primary;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})(),(()=>{var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),L(P,(()=>{var C=We(()=>c().lastCommit.message.length>50);return()=>C()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),K((C)=>{var Q=x.text.secondary,oe=x.text.secondary;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})()]}}),de),L(E,z(ie,{get when(){let u=Kt(r()?.path??"");return u&&u.length>0},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Focus")),L(P,()=>Kt(r()?.path??"")?.join(", ")??""),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),L(E,z(ie,{get when(){return!!Gt(r()?.path??"")},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Session")),L(P,()=>{let C=Gt(r()?.path??"");if(!C)return"";return C.layout?`${C.name} [${C.layout}]`:C.name}),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),L(E,z(ie,{get when(){return r()?.isMain},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Type")),f(P,j("main worktree")),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),f(de,ne),o(de,"height",1),L(ne,()=>"\u2500".repeat(Math.max(i()-38,10))),f(pe,Se),f(pe,be),f(pe,ke),f(pe,Fe),f(pe,Re),f(pe,I),o(pe,"height",1),o(pe,"flexDirection","row"),o(pe,"gap",2),f(Se,j("Enter:detail")),f(be,j("d:delete")),f(ke,j("a:add")),f(Fe,j("o:open")),f(Re,j("r:refresh")),f(I,j("^P:commands")),K((u)=>{var g=x.bg.surface,M=x.text.accent,P=x.border.subtle,C=x.text.secondary,Q=x.text.accent,oe=x.text.secondary,ge=x.text.primary,le=x.text.secondary,Ie=r()?.isDirty?x.text.error:r()?.isLocked?x.text.warning:x.text.success,Z=x.text.secondary,ae=p()?x.text.error:d()?x.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?x.text.warning:x.text.success,ce=x.text.secondary,Y=x.text.secondary,$e=x.border.subtle,ye=x.text.secondary,Ve=x.text.secondary,Ne=x.text.secondary,ze=x.text.secondary,ut=x.text.secondary,Me=x.text.secondary;return g!==u.e&&(u.e=o(E,"backgroundColor",g,u.e)),M!==u.t&&(u.t=o(O,"fg",M,u.t)),P!==u.a&&(u.a=o(y,"fg",P,u.a)),C!==u.o&&(u.o=o(A,"fg",C,u.o)),Q!==u.i&&(u.i=o(V,"fg",Q,u.i)),oe!==u.n&&(u.n=o(U,"fg",oe,u.n)),ge!==u.s&&(u.s=o(J,"fg",ge,u.s)),le!==u.h&&(u.h=o(he,"fg",le,u.h)),Ie!==u.r&&(u.r=o(_,"fg",Ie,u.r)),Z!==u.d&&(u.d=o(R,"fg",Z,u.d)),ae!==u.l&&(u.l=o(F,"fg",ae,u.l)),ce!==u.u&&(u.u=o(W,"fg",ce,u.u)),Y!==u.c&&(u.c=o(ee,"fg",Y,u.c)),$e!==u.w&&(u.w=o(ne,"fg",$e,u.w)),ye!==u.m&&(u.m=o(Se,"fg",ye,u.m)),Ve!==u.f&&(u.f=o(be,"fg",Ve,u.f)),Ne!==u.y&&(u.y=o(ke,"fg",Ne,u.y)),ze!==u.g&&(u.g=o(Fe,"fg",ze,u.g)),ut!==u.p&&(u.p=o(Re,"fg",ut,u.p)),Me!==u.b&&(u.b=o(I,"fg",Me,u.b)),u},{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}),E}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!r()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"flexDirection","column"),o(E,"gap",1),f(k,j("No worktree selected.")),f(O,j("Press 'a' to create one.")),K((w)=>{var y=x.text.secondary,S=x.text.accent;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}})]}}),null),K((E)=>o(v,"backgroundColor",x.bg.base,E)),v})()}var jm=150;var pl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();te();wt();Yt();pn();je();hl();Ho()});import*as Lm from"fs";import{join as Wn,resolve as gn,dirname as ro}from"path";function Cr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=Wn(gn(e),i),c=Wn(gn(t),i);if(!xn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(xn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{$r(ro(c),{recursive:!0}),xl(s,c),r.copied.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return r}function Sr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=gn(Wn(gn(e),i)),c=Wn(gn(t),i);if(!xn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(xn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{$r(ro(c),{recursive:!0}),bl(s,c),r.linked.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return r}function wl(e,t,n=0){let r=0,i=[];if(n>Hm)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=gn(e),c=gn(t);if(!xn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Gm(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return $r(ro(c),{recursive:!0}),gl(s,c),{linked:1,errors:[]}}catch(d){return{linked:0,errors:[`Failed to hardlink ${e}: ${d.message}`]}}if(!xn(c))$r(c,{recursive:!0});try{let d=Km(s,{withFileTypes:!0});for(let h of d){let p=Wn(s,h.name),m=Wn(c,h.name);if(h.isDirectory()){let b=wl(p,m,n+1);if(r+=b.linked,b.errors.length>0)i.push(...b.errors)}else if(h.isFile()){if(xn(m))continue;try{gl(p,m),r++}catch(b){try{xl(p,m),r++}catch(D){i.push(`Failed to link/copy ${h.name}: ${D.message}`)}}}}}catch(d){i.push(`Failed to read directory ${e}: ${d.message}`)}return{linked:r,errors:i}}function vl(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=Wn(gn(e),c),d=Wn(gn(t),c);if(!xn(a)){r.skipped.push(c),r.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(xn(d)){r.skipped.push(c);continue}try{if(s==="symlink")$r(ro(d),{recursive:!0}),bl(a,d),r.linked.push(c);else if(s==="hardlink"){let h=wl(a,d);if(h.linked>0)r.linked.push(c);for(let p of h.errors)r.warnings.push(p)}else $r(ro(d),{recursive:!0}),Vm(a,d,{recursive:!0}),r.copied.push(c)}catch(h){r.skipped.push(c),r.warnings.push(`Failed to share dep ${c}: ${h.message}`)}}return r}var xl,Vm,xn,bl,_0,gl,Km,Gm,$r,Hm=30;var Uo=xe(()=>{({copyFileSync:xl,cpSync:Vm,existsSync:xn,symlinkSync:bl,unlinkSync:_0,linkSync:gl,readdirSync:Km,statSync:Gm,mkdirSync:$r}=Lm)});import{existsSync as Um,mkdirSync as Jm}from"fs";async function pt(e,t){let n=t.timeout??30000;for(let r of e)await zm(r,t.cwd,n,t.env??{},t.onOutput)}async function zm(e,t,n,r,i){if(!Um(t))Jm(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}catch(h){if(h.code!=="ENOENT")throw h;s=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,s.kill()},n),d=s.stderr?new Response(s.stderr).text():Promise.resolve("");try{if(i&&s.stdout){let p=s.stdout.getReader(),m=new TextDecoder,b=[];while(!0){let{done:T,value:v}=await p.read();if(T)break;let k=m.decode(v,{stream:!0}).split(`
|
|
15
|
+
`);if(k.length===1)b.push(k[0]);else{b.push(k[0]);let O=b.join("");if(b.length=0,O)i(O);for(let y=1;y<k.length-1;y++)if(k[y])i(k[y]);let w=k[k.length-1];if(w)b.push(w)}}let D=b.join("")+m.decode();if(D)i(D)}let h=await s.exited;if(c)throw new Er(e,n);if(h!==0){let p=(await d).trim();throw new Pr(e,h,p)}}finally{clearTimeout(a)}}var Pr,Er;var bn=xe(()=>{Pr=class Pr 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"}};Er=class Er 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{existsSync as qm,readdirSync as ov,readFileSync as iv,statSync as Xm}from"fs";import{join as Ym,relative as cv}from"path";function Jo(e,t){let n=[],r=[];for(let i of t){let s=i.trim();if(!s){r.push(s);continue}let c=Ym(e,s);try{if(qm(c)&&Xm(c).isDirectory())n.push(s);else r.push(s)}catch{r.push(s)}}return{valid:n,invalid:r}}var ps=()=>{};function rr(e,t){return e.map((n)=>{let r=new Bun.Glob(n.glob),i=t.filter((s)=>r.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 Zm(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function Rr(e,t,n){for(let r of e){let i=r[t],s=t==="postCreate"&&r.copyFiles.length>0,c=t==="postCreate"&&r.linkFiles.length>0,a=i.length>0;if(!s&&!c&&!a)continue;for(let d of r.matchedPaths){let{join:h}=await import("path"),p=h(n.mainRepoPath,d),m=h(n.cwd,d);if(s){let b=Cr(p,m,r.copyFiles);for(let D of b.copied)n.onOutput?.(`Copied ${d}/${D}`);for(let D of b.warnings)n.onOutput?.(`\u26A0 ${D}`)}if(c){let b=Sr(p,m,r.linkFiles);for(let D of b.linked)n.onOutput?.(`Linked ${d}/${D}`);for(let D of b.warnings)n.onOutput?.(`\u26A0 ${D}`)}if(a){let b=i.map((T)=>Zm(T,{packagePath:d,repo:n.repo,branch:n.branch})),D={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:d};await pt(b,{cwd:n.cwd,timeout:n.timeout,env:D,onOutput:n.onOutput})}}}}var zo=xe(()=>{bn();Uo()});function on(e){let t=nt(),n=()=>Math.max(0,Math.floor((t().width-e.width)/2)),r=()=>Math.max(0,Math.floor((t().height-e.height)/2)),i=()=>(()=>{var s=l("box");return o(s,"border",!0),o(s,"borderStyle","rounded"),o(s,"flexDirection","column"),o(s,"paddingX",1),o(s,"paddingY",1),o(s,"titleAlignment","left"),o(s,"position","absolute"),L(s,()=>e.children,null),L(s,z(ie,{get when(){return e.footer},get children(){return e.footer}}),null),K((c)=>{var a=n(),d=r(),h=e.width,p=e.height,m=e.borderColor??x.border.active,b=e.backgroundColor??x.bg.surface,D=e.gap??0,T=e.title;return a!==c.e&&(c.e=o(s,"x",a,c.e)),d!==c.t&&(c.t=o(s,"y",d,c.t)),h!==c.a&&(c.a=o(s,"width",h,c.a)),p!==c.o&&(c.o=o(s,"height",p,c.o)),m!==c.i&&(c.i=o(s,"borderColor",m,c.i)),b!==c.n&&(c.n=o(s,"backgroundColor",b,c.n)),D!==c.s&&(c.s=o(s,"gap",D,c.s)),T!==c.h&&(c.h=o(s,"title",T,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 z(ie,{get when(){return e.backdrop},get fallback(){return i()},get children(){var s=l("box");return o(s,"x",0),o(s,"y",0),o(s,"position","absolute"),L(s,i),K((c)=>{var a=t().width,d=t().height,h=e.backdropColor??x.bg.overlay;return a!==c.e&&(c.e=o(s,"width",a,c.e)),d!==c.t&&(c.t=o(s,"height",d,c.t)),h!==c.a&&(c.a=o(s,"backgroundColor",h,c.a)),c},{e:void 0,t:void 0,a:void 0}),s}})}var kr=xe(()=>{te();te();te();te();te();Ue();te();wt()});import{decodePasteBytes as Qm}from"@opentui/core";import{basename as yl,resolve as _m}from"path";function $l(){let e=ot(),t=mt(),n=nt(),[r,i]=ue("input"),[s,c]=ue(""),[a,d]=ue(""),[h,p]=ue("branch"),[m,b]=ue(""),[D,T]=ue([]),[v,E]=ue(""),[k,O]=ue([]),[w,y]=ue(-1),[S,B]=ue(!1),A=()=>{let R=s().toLowerCase();if(!R)return k().slice(0,10);return k().filter((F)=>F.name.toLowerCase().includes(R)).slice(0,10)};Ft(tn(()=>q(),async()=>{try{let R=q(),F=await se.listBranches(R);O(F)}catch{O([])}})),ln(()=>{queueMicrotask(()=>{c(""),d("")})}),Ft(tn(s,()=>{y(-1),B(s().length>0&&A().length>0)})),Ft(tn(r,(R)=>{e.setInputFocused(R==="input")})),it(()=>{e.setInputFocused(!1)});let V=(R,F)=>{T((G)=>G.map((N,W)=>W===R?{...N,...F}:N))},q=()=>{let R=t.worktrees()??[],F=e.selectedWorktreePath();return(F?R.find((N)=>N.path===F)??R[e.selectedWorktreeIndex()]:R[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},H=()=>{let R=t.worktrees()??[],F=e.selectedWorktreePath();return(F?R.find((N)=>N.path===F)??R[e.selectedWorktreeIndex()]:R[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},U=()=>{let R=s();if(!R)return"";let F=q(),G=De(),N=bt(G,F),W=R.replace(/\//g,"-"),ee=yl(F);return _m($o(N.worktreeDir,{repo:ee,branch:W}))};rt(async(R)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let F=R.name;if(F==="escape"){if(r()==="preview"){i("input");return}e.setActiveTab("list"),c(""),d(""),p("branch"),i("input");return}if(r()==="input"){if(F==="tab"){if(S()&&h()==="branch")B(!1),y(-1);p((G)=>G==="branch"?"focus":"branch");return}if(h()==="branch"&&S()&&A().length>0){if(F==="down"||R.sequence==="\x1B[B"){y((G)=>Math.min(G+1,A().length-1));return}if(F==="up"||R.sequence==="\x1B[A"){y((G)=>Math.max(G-1,-1));return}}if(F==="return"||F==="enter"){if(h()==="branch"&&w()>=0){let G=A()[w()];if(G){c(G.name),B(!1),y(-1);return}}if(!s())return;B(!1),b(U()),i("preview");return}}if(r()==="preview"){if(F==="return"||F==="enter"){i("creating");let G=s(),N=m(),W=q(),ee=yl(W);try{let de=De(),ne=bt(de,W),pe=_t(de),Se=ne.base,be=await se.localBranchExists(G,W),ke=null;if(Se&&!be){let P=await se.getRemotes(W);ke=No(Se,P)}let Fe=pe.autoCreate?await An():!1,Re=[];if(ke)Re.push({label:`Fetching ${ke.remote}/${ke.branch}`,status:"pending"});if(Re.push({label:"Creating worktree",status:"pending"}),ne.autoUpstream)Re.push({label:"Setting upstream",status:"pending"});if(ne.copyFiles.length>0)Re.push({label:"Copying files",status:"pending"});if(ne.linkFiles.length>0)Re.push({label:"Creating symlinks",status:"pending"});if(ne.postCreate.length>0)Re.push({label:"Running hooks",status:"pending"});let I=a(),u=[];if(I)u=I.split(/[,\s]+/).map((P)=>P.trim()).filter(Boolean);if(u.length>0)Re.push({label:"Setting focus",status:"pending"});if(u.length>0&&ne.monorepo?.hooks&&ne.monorepo.hooks.length>0){if(rr(ne.monorepo.hooks,u).length>0)Re.push({label:"Running monorepo hooks",status:"pending"})}if(pe.autoCreate&&Fe)Re.push({label:"Creating session",status:"pending"});T(Re);let g=0;if(ke){V(g,{status:"running"});try{await se.fetchRemote(ke.remote,ke.branch,W),V(g,{status:"done"})}catch(P){let C=P.message.split(`
|
|
17
|
+
`)[0];V(g,{status:"error",message:`${C} \u2014 continuing with local ref`})}g++}if(V(g,{status:"running"}),await se.add(G,N,{createBranch:!0,base:Se},W),V(g,{status:"done"}),g++,ne.autoUpstream){V(g,{status:"running"});try{let P=await se.getDefaultRemote(W);if(await se.remoteBranchExists(G,P,W))await se.setUpstream(G,P,W),V(g,{status:"done",message:`\u2192 ${P}/${G}`});else V(g,{status:"done",message:"no remote branch"})}catch(P){V(g,{status:"error",message:P.message})}g++}if(ne.copyFiles.length>0)V(g,{status:"running"}),Cr(W,N,ne.copyFiles),V(g,{status:"done"}),g++;if(ne.linkFiles.length>0)V(g,{status:"running"}),Sr(W,N,ne.linkFiles),V(g,{status:"done"}),g++;let M={COPSE_BRANCH:G,COPSE_WORKTREE_PATH:N,COPSE_REPO_PATH:W};if(ne.postCreate.length>0)V(g,{status:"running"}),await pt(ne.postCreate,{cwd:N,env:M,onOutput:(P)=>V(g,{message:P})}),V(g,{status:"done"}),g++;if(u.length>0){V(g,{status:"running"});let{valid:P}=Jo(N,u);if(u=P,P.length>0)br(N,P),M.COPSE_FOCUS_PATHS=P.join(",");V(g,{status:"done"}),g++}if(u.length>0&&ne.monorepo?.hooks&&ne.monorepo.hooks.length>0){V(g,{status:"running"});let P=rr(ne.monorepo.hooks,u);if(P.length>0)await Rr(P,"postCreate",{cwd:N,env:M,repo:ee,branch:G,focusPaths:u,mainRepoPath:W,onOutput:(C)=>V(g,{message:C})});V(g,{status:"done"}),g++}if(pe.autoCreate&&Fe){V(g,{status:"running"});try{let P=pe.defaultLayout,C=fr(de,P),Q=await vr(G,N,{layout:C,prefix:pe.prefix,attach:!1,layoutName:P});V(g,{status:"done",message:Q})}catch(P){V(g,{status:"error",message:P.message.split(`
|
|
18
|
+
`)[0]})}g++}E("Worktree created successfully!"),i("done"),tr.success(`Worktree created: ${G}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),d(""),p("branch"),i("input")},1500)}catch(de){tr.error(de.message);let pe=D().findIndex((Se)=>Se.status==="running");if(pe>=0)V(pe,{status:"error",message:de.message});E(`${de.message}`),i("error")}return}}if(r()==="error"){if(F==="escape"||F==="return"||F==="enter")i("input"),E("")}}),pr((R)=>{if(!e.inputFocused())return;let F=Qm(R.bytes).replace(/\r?\n/g,"");if(!F)return;if(h()==="branch"){c((G)=>G+F);return}if(h()==="focus")d((G)=>G+F)});let J=()=>n().width,X=()=>n().height,re=()=>Math.max(50,Math.min(80,J()-4)),he=4,_=()=>{if(r()==="input"){let R=S()&&h()==="branch"?A().length*2:0,F=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+R+F,X()-4))}if(r()==="preview")return Math.max(13+he,Math.min((a().length>0?15:13)+he,X()-4));if(r()==="creating")return Math.max(9+he,Math.min(D().length*2+7+he,X()-4));if(r()==="done")return Math.max(11+he,Math.min((a().length>0?15:13)+he,X()-4));return Math.max(11+he,Math.min(11+he,X()-4))},me=()=>Math.max(re()-4,10),Pe=()=>Math.max(me(),20);return z(on,{get width(){return re()},get height(){return _()},get borderColor(){return We(()=>r()==="done")()?x.text.success:We(()=>r()==="error")()?x.text.error:x.border.active},get backgroundColor(){return x.bg.surface},gap:1,title:" Create Worktree ",get footer(){return[(()=>{var R=l("box"),F=l("text");return f(R,F),o(R,"height",1),L(F,()=>"\u2500".repeat(Math.max(me(),1))),K((G)=>{var N=me(),W=x.border.subtle;return N!==G.e&&(G.e=o(R,"width",N,G.e)),W!==G.t&&(G.t=o(F,"fg",W,G.t)),G},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return r()==="input"},get children(){var R=l("box"),F=l("text"),G=l("text"),N=l("text"),W=l("text");return f(R,F),f(R,G),f(R,N),f(R,W),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Tab:switch")),f(G,j("\u2191\u2193:pick")),f(N,j("Enter:confirm")),f(W,j("Esc:cancel")),K((ee)=>{var de=x.text.secondary,ne=x.text.secondary,pe=x.text.secondary,Se=x.text.secondary;return de!==ee.e&&(ee.e=o(F,"fg",de,ee.e)),ne!==ee.t&&(ee.t=o(G,"fg",ne,ee.t)),pe!==ee.a&&(ee.a=o(N,"fg",pe,ee.a)),Se!==ee.o&&(ee.o=o(W,"fg",Se,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),R}}),z(ie,{get when(){return r()==="preview"},get children(){var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Enter:create")),f(G,j("Esc:back")),K((N)=>{var W=x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R}}),z(ie,{get when(){return r()==="creating"},get children(){var R=l("text");return f(R,j("Creating worktree...")),K((F)=>o(R,"fg",x.text.secondary,F)),R}}),z(ie,{get when(){return r()==="done"},get children(){var R=l("text");return f(R,j("\u2713 Done \u2014 returning to list")),K((F)=>o(R,"fg",x.text.secondary,F)),R}}),z(ie,{get when(){return r()==="error"},get children(){var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Enter:retry")),f(G,j("Esc:back")),K((N)=>{var W=x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R}})]},get children(){return[z(ie,{get when(){return r()==="input"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text"),N=l("text");return f(R,F),f(R,G),f(R,N),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("New Worktree")),o(G,"x",3),o(G,"y",0),o(N,"x",17),o(N,"y",0),L(N,H),K((W)=>{var ee=me(),de=x.bg.elevated,ne=x.text.accent,pe=x.text.primary,Se=x.text.secondary;return ee!==W.e&&(W.e=o(R,"width",ee,W.e)),de!==W.t&&(W.t=o(R,"backgroundColor",de,W.t)),ne!==W.a&&(W.a=o(F,"fg",ne,W.a)),pe!==W.o&&(W.o=o(G,"fg",pe,W.o)),Se!==W.i&&(W.i=o(N,"fg",Se,W.i)),W},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("text");return f(R,j("Branch name")),K((F)=>o(R,"fg",h()==="branch"?x.text.accent:x.text.secondary,F)),R})(),(()=>{var R=l("input");return o(R,"onInput",(F)=>c(F)),o(R,"placeholder","Branch name or search..."),K((F)=>{var G=s(),N=h()==="branch",W=Pe(),ee=x.bg.elevated,de=x.text.accent;return G!==F.e&&(F.e=o(R,"value",G,F.e)),N!==F.t&&(F.t=o(R,"focused",N,F.t)),W!==F.a&&(F.a=o(R,"width",W,F.a)),ee!==F.o&&(F.o=o(R,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(R,"cursorColor",de,F.i)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),z(ie,{get when(){return We(()=>!!(S()&&h()==="branch"))()&&A().length>0},get children(){return z(et,{get each(){return A()},children:(R,F)=>(()=>{var G=l("box"),N=l("text"),W=l("text");return f(G,N),f(G,W),o(G,"height",1),o(N,"x",1),o(N,"y",0),L(N,()=>F()===w()?"\u25B8 ":" ",null),L(N,()=>R.name,null),o(W,"y",0),L(W,()=>R.isRemote?"(remote) ":"",null),L(W,()=>R.lastCommitDate,null),K((ee)=>{var de=me(),ne=F()===w()?x.select.focusedBg:x.bg.surface,pe=F()===w()?x.tab.active:x.text.primary,Se=Math.max(1+R.name.length+4,27),be=x.text.secondary;return de!==ee.e&&(ee.e=o(G,"width",de,ee.e)),ne!==ee.t&&(ee.t=o(G,"backgroundColor",ne,ee.t)),pe!==ee.a&&(ee.a=o(N,"fg",pe,ee.a)),Se!==ee.o&&(ee.o=o(W,"x",Se,ee.o)),be!==ee.i&&(ee.i=o(W,"fg",be,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),G})()})}}),(()=>{var R=l("text");return f(R,j("Tab to switch fields \xB7 \u2191\u2193 to select branch")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"width","100%"),o(R,"height",1),o(R,"flexDirection","row"),f(F,j("Focus ")),f(G,j("(optional)")),K((N)=>{var W=h()==="focus"?x.text.accent:x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R})(),(()=>{var R=l("input");return o(R,"onInput",(F)=>d(F)),o(R,"placeholder","apps/web,apps/api (optional)"),K((F)=>{var G=a(),N=h()==="focus",W=Pe(),ee=x.bg.elevated,de=x.text.accent;return G!==F.e&&(F.e=o(R,"value",G,F.e)),N!==F.t&&(F.t=o(R,"focused",N,F.t)),W!==F.a&&(F.a=o(R,"width",W,F.a)),ee!==F.o&&(F.o=o(R,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(R,"cursorColor",de,F.i)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),(()=>{var R=l("text");return f(R,j("comma-separated paths, e.g. apps/web,apps/api")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),z(ie,{get when(){return s().length>0},get children(){return[(()=>{var R=l("text");return f(R,j("Target path")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),(()=>{var R=l("text");return L(R,U),K((F)=>o(R,"fg",x.text.primary,F)),R})()]}}),(()=>{var R=l("text");return f(R,j("Type a branch name, e.g. feature/my-feature")),K((F)=>o(R,"fg",x.text.primary,F)),R})()]}}),z(ie,{get when(){return r()==="preview"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Confirm Worktree")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.accent,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Branch")),L(N,s),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Path")),L(N,m),K((W)=>{var ee=x.text.secondary,de=x.text.primary;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return a().length>0},get children(){var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Focus")),L(N,a),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R}}),(()=>{var R=l("text");return f(R,j("\u2713 Ready to create. Press Enter to confirm.")),K((F)=>o(R,"fg",x.text.success,F)),R})()]}}),z(ie,{get when(){return r()==="creating"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Creating Worktree")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.accent,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),z(et,{get each(){return D()},children:(R)=>(()=>{var F=l("box"),G=l("text"),N=j(" ");return f(F,G),o(F,"height",1),f(G,N),L(G,(()=>{var W=We(()=>R.status==="done");return()=>W()?"\u2713":We(()=>R.status==="running")()?"\u27F3":R.status==="error"?"\u2717":"\u25CB"})(),N),L(G,()=>R.label,null),L(F,z(ie,{get when(){return R.message},get children(){var W=l("text");return o(W,"y",0),L(W,()=>R.message),K((ee)=>{var de=R.label.length+4,ne=x.text.secondary;return de!==ee.e&&(ee.e=o(W,"x",de,ee.e)),ne!==ee.t&&(ee.t=o(W,"fg",ne,ee.t)),ee},{e:void 0,t:void 0}),W}}),null),K((W)=>o(G,"fg",R.status==="done"?x.text.success:R.status==="running"?x.text.accent:R.status==="error"?x.text.error:x.text.secondary,W)),F})()})]}}),z(ie,{get when(){return r()==="done"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Worktree Created")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.success,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Branch")),L(N,s),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Path")),L(N,m),K((W)=>{var ee=x.text.secondary,de=x.text.primary;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return a().length>0},get children(){var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Focus")),L(N,a),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R}}),(()=>{var R=l("text"),F=j("\u2713 ");return f(R,F),L(R,v,null),K((G)=>o(R,"fg",x.text.success,G)),R})()]}}),z(ie,{get when(){return r()==="error"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Error")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.error,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("text");return f(R,j("\u2717 Failed")),K((F)=>o(R,"fg",x.text.error,F)),R})(),(()=>{var R=l("box"),F=l("text");return f(R,F),o(R,"height",1),o(F,"x",1),o(F,"y",0),L(F,()=>v().slice(0,Math.max(Pe()-3,10))),K((G)=>{var N=Pe(),W=x.bg.elevated,ee=x.text.primary;return N!==G.e&&(G.e=o(R,"width",N,G.e)),W!==G.t&&(G.t=o(R,"backgroundColor",W,G.t)),ee!==G.a&&(G.a=o(F,"fg",ee,G.a)),G},{e:void 0,t:void 0,a:void 0}),R})(),(()=>{var R=l("text");return f(R,j("Press Enter or Escape to try again")),K((F)=>o(R,"fg",x.text.secondary,F)),R})()]}})]}})}var Cl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();je();Ye();Uo();bn();Yt();ps();zo();pn();te();is();wt();kr()});function Sl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(!1),[s,c]=ue(""),[a,d]=ue(!1),h=()=>{let v=t.worktrees()??[],E=e.selectedWorktreePath();if(E){let k=v.find((O)=>O.path===E);if(k)return k}return v[e.selectedWorktreeIndex()]},p=()=>{e.setShowRemove(!1),i(!1),c(""),d(!1)},m=async(v)=>{let E=h();if(!E){p();return}if(!v){if(await se.isDirty(E.path)){c("Worktree has changes. Press Enter to force remove."),d(!0);return}}i(!0),c("Removing...");try{let k=De(),O=bt(k,E.repoPath);if(O.postRemove.length>0)c("Running postRemove hooks..."),await pt(O.postRemove,{cwd:E.path,env:{COPSE_BRANCH:E.branch??"",COPSE_WORKTREE_PATH:E.path,COPSE_REPO_PATH:E.repoPath}}).catch(()=>{});await se.remove(E.path,{force:v},E.repoPath),c("Removed successfully!"),tr.success("Worktree removed");let w=t.worktrees()??[],y=e.selectedWorktreeIndex(),S=w[y-1]??w[y+1]??null;if(y>0)e.setSelectedWorktreeIndex(y-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(S?.path??null),t.refetch(),setTimeout(p,1000)}catch(k){let O=k.message;c(`Failed: ${O}`),i(!1),tr.error(`Failed: ${O}`)}};rt(async(v)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let E=v.name;if(E==="escape"){p();return}if(a()&&(E==="return"||E==="enter")){d(!1),await m(!0);return}if((E==="return"||E==="enter")&&!r())await m(!1)});let b=()=>h(),D=()=>Math.max(50,Math.min(80,n().width-4)),T=()=>10;return z(on,{get width(){return D()},get height(){return T()},get borderColor(){return x.border.active},get backgroundColor(){return x.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var v=l("box");return o(v,"flexDirection","column"),L(v,z(ie,{get when(){return We(()=>!r())()&&!a()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"height",1),o(E,"flexDirection","row"),o(E,"gap",2),f(k,j("[Enter] Confirm")),f(O,j("[Esc] Cancel")),K((w)=>{var y=x.text.secondary,S=x.text.secondary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}}),null),L(v,z(ie,{get when(){return a()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"height",1),o(E,"flexDirection","row"),o(E,"gap",2),f(k,j("[Enter] Force remove")),f(O,j("[Esc] Cancel")),K((w)=>{var y=x.text.secondary,S=x.text.secondary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}}),null),v})()},get children(){return[z(ie,{get when(){return!!b()},get children(){return[(()=>{var v=l("box"),E=l("box"),k=l("text"),O=l("text");return f(v,E),f(v,O),o(v,"height",1),o(v,"flexDirection","row"),f(E,k),o(E,"width",10),o(E,"height",1),f(k,j("Branch")),L(O,()=>b()?.branch??"(detached)"),K((w)=>{var y=x.text.secondary,S=x.text.accent;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box"),E=l("box"),k=l("text"),O=l("text");return f(v,E),f(v,O),o(v,"height",1),o(v,"flexDirection","row"),f(E,k),o(E,"width",10),o(E,"height",1),f(k,j("Path")),L(O,()=>b()?.path),K((w)=>{var y=x.text.secondary,S=x.text.primary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),v})(),z(ie,{get when(){return a()},get children(){var v=l("text");return L(v,s),K((E)=>o(v,"fg",x.text.warning,E)),v}}),z(ie,{get when(){return r()},get children(){var v=l("text");return L(v,s),K((E)=>o(v,"fg",s().startsWith("Failed")?x.text.error:x.text.success,E)),v}})]}}),z(ie,{get when(){return!b()},get children(){var v=l("text");return f(v,j("No worktree selected.")),K((E)=>o(v,"fg",x.text.secondary,E)),v}})]}})}var Pl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();je();Ye();bn();te();is();wt();kr()});function El(e){let t=ot(),n=mt(),r=rn(),[i,s]=ue("confirming"),[c,a]=ue(""),[d,h]=ue(0),p=()=>{let T=n.worktrees()??[],v=t.selectedWorktrees(),E=[];for(let k of v){let O=T.find((w)=>w.path===k);if(O&&!O.isMain)E.push({branch:O.branch??"(detached)",path:O.path,repoPath:O.repoPath})}return E},m=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},b=async()=>{let T=p();if(T.length===0){m();return}s("executing"),h(0);let v=[],E=[],k=0;for(let O=0;O<T.length;O++){let w=T[O];a(`Removing ${w.branch} (${O+1}/${T.length})...`),h(O);try{if(await se.isDirty(w.path)){E.push(w.branch);continue}let S=De(),B=bt(S,w.repoPath);if(B.postRemove.length>0)await pt(B.postRemove,{cwd:w.path,env:{COPSE_BRANCH:w.branch,COPSE_WORKTREE_PATH:w.path,COPSE_REPO_PATH:w.repoPath}}).catch(()=>{});await se.remove(w.path,{force:!1},w.repoPath),k++}catch(y){v.push(`${w.branch}: ${y.message}`)}}if(ft(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),v.length>0){s("error");let O=[`Failed: ${v.join("; ")}`];if(E.length>0)O.push(`Skipped ${E.length} dirty worktree(s)`);a(O.join(". ")),r.addToast({message:`Failed to remove ${v.length} worktree(s)`,type:"error"}),setTimeout(m,3000)}else if(E.length>0)s("done"),a(`Removed ${k}, skipped ${E.length} dirty: ${E.join(", ")}`),r.addToast({message:`Removed ${k}, skipped ${E.length} dirty`,type:"warning"}),setTimeout(m,2000);else s("done"),a(`Removed ${T.length} worktree(s) successfully!`),r.addToast({message:`Removed ${T.length} worktrees`,type:"success"}),setTimeout(m,1500)};rt(async(T)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let v=T.name;if(i()==="executing")return;if(v==="escape"){m();return}if((v==="return"||v==="enter")&&i()==="confirming")await b()});let D=()=>p().length;return(()=>{var T=l("box"),v=l("box"),E=l("box"),k=l("text"),O=l("box"),w=l("text"),y=l("box");return f(T,v),o(T,"x",0),o(T,"y",0),f(v,E),f(v,O),f(v,y),o(v,"x",2),o(v,"y",1),o(v,"flexDirection","column"),f(E,k),o(E,"height",1),f(k,j("Bulk Delete Worktrees")),o(k,"x",0),o(k,"y",0),f(O,w),o(O,"height",1),o(w,"x",0),o(w,"y",0),L(w,()=>"\u2500".repeat(Math.max(e.w-5,10))),o(y,"height",1),L(v,z(ie,{get when(){return i()==="confirming"},get children(){return[(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Delete ${D()} worktree(s)?`),K((A)=>o(B,"fg",x.text.warning,A)),S})(),(()=>{var S=l("box");return o(S,"height",1),S})(),z(et,{get each(){return p().slice(0,Math.max(e.h-10,5))},children:(S)=>(()=>{var B=l("box"),A=l("text");return f(B,A),o(B,"height",1),o(A,"x",2),o(A,"y",0),L(A,()=>`\u2022 ${S.branch}`),K((V)=>o(A,"fg",x.text.accent,V)),B})()}),z(ie,{get when(){return D()>Math.max(e.h-10,5)},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",2),o(B,"y",0),L(B,()=>`... and ${D()-Math.max(e.h-10,5)} more`),K((A)=>o(B,"fg",x.text.secondary,A)),S}}),(()=>{var S=l("box");return o(S,"height",1),S})(),(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),f(B,j("Enter:delete all Esc:cancel")),o(B,"x",0),o(B,"y",0),K((A)=>o(B,"fg",x.text.secondary,A)),S})()]}}),null),L(v,z(ie,{get when(){return i()==="executing"},get children(){return[(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.warning,A)),S})(),(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Progress: ${d()+1}/${D()}`),K((A)=>o(B,"fg",x.text.secondary,A)),S})()]}}),null),L(v,z(ie,{get when(){return i()==="done"},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.success,A)),S}}),null),L(v,z(ie,{get when(){return i()==="error"},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.error,A)),S}}),null),K((S)=>{var{w:B,h:A}=e,V=x.bg.base,q=e.w-3,H=e.h-2,U=x.bg.base,J=x.text.error,X=x.border.subtle;return B!==S.e&&(S.e=o(T,"width",B,S.e)),A!==S.t&&(S.t=o(T,"height",A,S.t)),V!==S.a&&(S.a=o(T,"backgroundColor",V,S.a)),q!==S.o&&(S.o=o(v,"width",q,S.o)),H!==S.i&&(S.i=o(v,"height",H,S.i)),U!==S.n&&(S.n=o(v,"backgroundColor",U,S.n)),J!==S.s&&(S.s=o(k,"fg",J,S.s)),X!==S.h&&(S.h=o(w,"fg",X,S.h)),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}),T})()}var Rl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();nr();dn();je();Ye();bn();te();wt()});import{decodePasteBytes as ep}from"@opentui/core";import{spawnSync as tp}from"child_process";function wn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function up(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function vt(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function bs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function dp(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:gs}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:vt(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:qo}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:vt(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:Xo}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:vt(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:xs}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:vt(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:Yo}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:bs(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:ap}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:vt(n.sharedDeps.paths),rawValue:n.sharedDeps.paths,path:["defaults","sharedDeps","paths"],editKind:"strArray",depth:2,suggestions:lp}),t.push({key:"d.sharedDeps.invalidateOn",kind:"field",label:"invalidateOn",value:vt(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:fp});let r=e.workspaces??[];if(r.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${r.length})`,depth:0}),r.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:vt(s.exclude),rawValue:s.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[vn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let d=s.defaults;if(d)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:d.worktreeDir??"(inherits)",rawValue:d.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:gs}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:vt(d.copyFiles),rawValue:d.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:qo}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:vt(d.linkFiles),rawValue:d.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:Xo}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:vt(d.postCreate),rawValue:d.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:xs}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:vt(d.postRemove),rawValue:d.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:Yo}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:bs(d.autoUpstream),rawValue:d.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<r.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:gs}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:vt(s.copyFiles),rawValue:s.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:qo}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:vt(s.linkFiles),rawValue:s.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:Xo}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:vt(s.postCreate),rawValue:s.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:xs}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:vt(s.postRemove),rawValue:s.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:Yo}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:bs(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:op});let d=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${d.length})`,depth:3}),d.forEach((h,p)=>{t.push({key:`r${c}.h${p}.header`,kind:"section",label:`[${p}] ${h.glob}`,depth:4}),t.push({key:`r${c}.h${p}.glob`,kind:"field",label:"glob",value:h.glob,rawValue:h.glob,path:["repos",c,"monorepo","hooks",p,"glob"],editKind:"string",depth:5,suggestions:ip}),t.push({key:`r${c}.h${p}.copyFiles`,kind:"field",label:"copyFiles",value:wn(h.copyFiles),rawValue:h.copyFiles,path:["repos",c,"monorepo","hooks",p,"copyFiles"],editKind:"strArray",depth:5,suggestions:qo}),t.push({key:`r${c}.h${p}.linkFiles`,kind:"field",label:"linkFiles",value:wn(h.linkFiles),rawValue:h.linkFiles,path:["repos",c,"monorepo","hooks",p,"linkFiles"],editKind:"strArray",depth:5,suggestions:Xo}),t.push({key:`r${c}.h${p}.postCreate`,kind:"field",label:"postCreate",value:wn(h.postCreate),rawValue:h.postCreate,path:["repos",c,"monorepo","hooks",p,"postCreate"],editKind:"strArray",depth:5,suggestions:sp}),t.push({key:`r${c}.h${p}.postRemove`,kind:"field",label:"postRemove",value:wn(h.postRemove),rawValue:h.postRemove,path:["repos",c,"monorepo","hooks",p,"postRemove"],editKind:"strArray",depth:5,suggestions:Yo})})}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:cp});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 kl(){let e=ot(),t=nt(),n=yt(),r=()=>{try{return{cfg:Ai(),error:""}}catch(g){return{cfg:null,error:g.message}}},i=r(),[s,c]=ue(i.cfg),[a,d]=ue(i.error),[h,p]=ue(""),[m,b]=ue("info"),[D,T]=ue(0),[v,E]=ue(0),[k,O]=ue(!1),[w,y]=ue(null),[S,B]=ue(null),[A,V]=ue(""),[q,H]=ue(!1),[U,J]=ue(0),[X,re]=ue([]),[he,_]=ue(-1),[me,Pe]=ue(0),R=He(()=>dp(s())),F=He(()=>{let g=[],M=R();for(let P=0;P<M.length;P++){let C=M[P];if(C.kind==="field"&&C.editKind!==null)g.push(P)}return g}),G=()=>{let g=F();if(g.length===0)return-1;let M=Math.max(0,Math.min(D(),g.length-1));return g[M]??-1},N=()=>{let g=G();if(g<0)return null;return R()[g]??null},W=(g,M="info")=>{p(g),b(M)},ee=()=>{let g=r();c(g.cfg),d(g.error)},de=()=>{let g=N();if(!g||!g.editKind||!g.path){W("Field is read-only (press 'e' to edit the file directly)","info");return}let M=g.suggestions??[];if(y(g.editKind),B(g.path),re(M),e.setInputFocused(!0),g.editKind==="string"){let P=typeof g.rawValue==="string"?g.rawValue:"";V(P),_(M.indexOf(P))}else if(g.editKind==="strArray"){let P=Array.isArray(g.rawValue)?g.rawValue:[],C=JSON.stringify(P);V(C),_(M.indexOf(C))}else if(g.editKind==="boolean")H(g.rawValue===!0),_(-1);else if(g.editKind==="theme"){let P=typeof g.rawValue==="string"?g.rawValue:"opencode",C=Dt.indexOf(P);J(C>=0?C:0),_(-1)}else if(g.editKind==="enum"){let P=g.suggestions??[],C=typeof g.rawValue==="string"?g.rawValue:"",Q=P.indexOf(C);Pe(Q>=0?Q:0),_(-1)}O(!0)},ne=()=>{O(!1),B(null),y(null),V(""),re([]),_(-1),e.setInputFocused(!1)},pe=(g)=>{let M=X();if(M.length===0)return;let P=(he()+g+M.length)%M.length;_(P);let C=M[P]??"",Q=w();if(Q==="string"||Q==="strArray")V(C)},Se=()=>{let g=S(),M=w();if(!g||!M){ne();return}let P;if(M==="string"){let C=A();P=C.length===0?void 0:C}else if(M==="strArray"){let C=A().trim();if(C.length===0)P=[];else try{let Q=JSON.parse(C);if(!Array.isArray(Q)||Q.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");P=Q}catch(Q){W(`Invalid JSON: ${Q.message}`,"error");return}}else if(M==="boolean")P=q();else if(M==="theme")P=Dt[U()];else if(M==="enum")P=X()[me()];try{jt();let C=Ai();ta(C,g,P);let Q=Qn(C);if(Q.length>0){let oe=Q[0];W(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(_n(n,`${JSON.stringify(C,null,2)}
|
|
19
|
+
`),M==="theme"&&typeof P==="string"&&Dt.includes(P))xr(P);ee(),W("Saved","success"),O(!1),B(null),y(null),V(""),re([]),_(-1),e.setInputFocused(!1)}catch(C){W(`Save failed: ${C.message}`,"error")}};rt((g)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let M=g.name;if(k()){if(M==="escape"){ne();return}let P=w();if(P==="string"||P==="strArray"){if(M==="tab"){pe(g.shift?-1:1);return}if(M==="return"||M==="enter")Se();return}if(P==="boolean"){if(M==="space"||M==="tab"||M==="left"||M==="right"||M==="h"||M==="l"){H((C)=>!C);return}if(M==="return"||M==="enter")Se();return}if(P==="theme"){if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&g.shift){J((C)=>(C-1+Dt.length)%Dt.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){J((C)=>(C+1)%Dt.length);return}if(M==="return"||M==="enter")Se();return}if(P==="enum"){let C=X();if(C.length===0)return;if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&g.shift){Pe((Q)=>(Q-1+C.length)%C.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){Pe((Q)=>(Q+1)%C.length);return}if(M==="return"||M==="enter")Se();return}return}if(e.inputFocused())return;if(M==="j"||M==="down"){T((P)=>Math.min(P+1,F().length-1));return}if(M==="k"||M==="up"){T((P)=>Math.max(P-1,0));return}if(M==="g"){T(0);return}if(M==="G"){T(Math.max(F().length-1,0));return}if(M==="return"||M==="enter"){de();return}if(M==="e"){let P=process.env.EDITOR??process.env.VISUAL??"vi";jt(),tp(P,[n],{stdio:"inherit"}),ee(),W("Config reloaded","info");return}if(M==="r"){ee(),W("Reloaded","info");return}if(M==="i"){jt(),ee(),W("Initialized","info");return}}),pr((g)=>{if(!k())return;let M=w();if(M!=="string"&&M!=="strArray")return;let P=ep(g.bytes).replace(/\r?\n/g,"");if(!P)return;V((C)=>C+P)});let be=()=>Math.max(t().height-10,5);Ft(tn([D,R],()=>{let g=G();if(g<0)return;let M=be();if(g<v())E(g);else if(g>=v()+M)E(g-M+1)})),it(()=>{e.setInputFocused(!1)});let ke=He(()=>{let g=v();return R().slice(g,g+be()).map((M,P)=>({row:M,globalIdx:g+P}))}),Fe=()=>F().length,Re=()=>{let g=R().length;if(g<=be())return"";let M=Math.min(v()+be(),g);return`${v()+1}-${M}/${g}`},I=()=>t().width,u=()=>Math.max(I()-4-rp-4,20);return(()=>{var g=l("box"),M=l("box"),P=l("box"),C=l("text"),Q=l("b"),oe=l("box"),ge=l("text"),le=l("text"),Ie=l("box");return f(g,M),f(g,Ie),o(g,"x",0),o(g,"y",0),o(g,"width","100%"),o(g,"height","100%"),o(g,"flexDirection","column"),f(M,P),f(M,oe),o(M,"width","100%"),o(M,"height","100%"),o(M,"flexDirection","column"),o(M,"paddingX",2),o(M,"paddingY",1),f(P,C),o(P,"height",1),o(P,"flexDirection","row"),f(C,Q),f(Q,j("Configuration")),L(P,z(ie,{get when(){return!!Re()},get children(){var Z=l("text"),ae=j(" ");return f(Z,ae),L(Z,()=>` \xB7 ${Re()}`,null),K((ce)=>o(Z,"fg",x.text.secondary,ce)),Z}}),null),L(P,z(ie,{get when(){return Fe()>0},get children(){var Z=l("text"),ae=j(" ");return f(Z,ae),L(Z,()=>` \xB7 ${D()+1}/${Fe()}`,null),K((ce)=>o(Z,"fg",x.text.secondary,ce)),Z}}),null),f(oe,ge),f(oe,le),o(oe,"height",1),o(oe,"flexDirection","row"),o(oe,"gap",1),f(ge,j("Path:")),L(le,n),L(M,z(ie,{get when(){return!!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"height",1),o(Z,"flexDirection","row"),o(Z,"gap",1),f(ae,j("Load error:")),L(ce,a),K((Y)=>{var $e=x.text.error,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),null),L(M,z(ie,{get when(){return We(()=>!s())()&&!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("box"),Y=l("text"),$e=l("text"),ye=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","column"),o(Z,"gap",1),f(ae,j("No config file found.")),f(ce,Y),f(ce,$e),f(ce,ye),o(ce,"flexDirection","row"),o(ce,"gap",1),f(Y,j("Press")),f($e,j("i")),f(ye,j("to initialize with defaults.")),K((Ve)=>{var Ne=x.text.warning,ze=x.text.secondary,ut=x.text.accent,Me=x.text.secondary;return Ne!==Ve.e&&(Ve.e=o(ae,"fg",Ne,Ve.e)),ze!==Ve.t&&(Ve.t=o(Y,"fg",ze,Ve.t)),ut!==Ve.a&&(Ve.a=o($e,"fg",ut,Ve.a)),Me!==Ve.o&&(Ve.o=o(ye,"fg",Me,Ve.o)),Ve},{e:void 0,t:void 0,a:void 0,o:void 0}),Z}}),null),L(M,z(ie,{get when(){return!!s()},get children(){return[(()=>{var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),L(ae,()=>"\u2500".repeat(Math.max(I()-34,10))),K((ce)=>o(ae,"fg",x.border.subtle,ce)),Z})(),(()=>{var Z=l("box");return o(Z,"flexDirection","column"),L(Z,z(et,{get each(){return ke()},children:(ae)=>{let ce=ae.row,Y=()=>ae.globalIdx===G(),$e=()=>k()&&Y(),ye=" ".repeat(ce.depth*np);if(ce.kind==="spacer")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),f(ze,j(" ")),K((ut)=>o(ze,"fg",x.text.secondary,ut)),Ne})();if(ce.kind==="section")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),L(ze,ye,null),L(ze,()=>ce.label,null),K((ut)=>o(ze,"fg",x.text.accent,ut)),Ne})();let Ve=()=>{let Ne=Y()?"\u25B8 ":" ";return`${ye}${Ne}${ce.label}`};return(()=>{var Ne=l("box"),ze=l("box"),ut=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),f(ze,ut),o(ze,"width",30),o(ze,"height",1),L(ut,Ve),L(Ne,z(ie,{get when(){return $e()},get fallback(){return(()=>{var Me=l("text");return L(Me,()=>ce.value??""),K((Te)=>o(Me,"fg",up(ce.value)?x.text.secondary:x.text.primary,Te)),Me})()},get children(){return[z(ie,{get when(){return w()==="string"||w()==="strArray"},get children(){var Me=l("input");return o(Me,"onInput",(Te)=>V(Te)),o(Me,"focused",!0),K((Te)=>{var yn=A(),Ir=u(),Tr=x.bg.elevated,Br=x.text.accent,Nr=w()==="strArray"?'["a", "b"]':"";return yn!==Te.e&&(Te.e=o(Me,"value",yn,Te.e)),Ir!==Te.t&&(Te.t=o(Me,"width",Ir,Te.t)),Tr!==Te.a&&(Te.a=o(Me,"backgroundColor",Tr,Te.a)),Br!==Te.o&&(Te.o=o(Me,"cursorColor",Br,Te.o)),Nr!==Te.i&&(Te.i=o(Me,"placeholder",Nr,Te.i)),Te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Me}}),z(ie,{get when(){return w()==="boolean"},get children(){var Me=l("text");return L(Me,()=>q()?"[x] true":"[ ] false"),K((Te)=>o(Me,"fg",q()?x.text.success:x.text.secondary,Te)),Me}}),z(ie,{get when(){return w()==="theme"},get children(){var Me=l("text");return L(Me,()=>`\u25C2 ${jo[Dt[U()]??"opencode"]} (${Dt[U()]??"opencode"}) \u25B8`),K((Te)=>o(Me,"fg",x.text.accent,Te)),Me}}),z(ie,{get when(){return w()==="enum"},get children(){var Me=l("text");return L(Me,()=>`\u25C2 ${X()[me()]??""} \u25B8`),K((Te)=>o(Me,"fg",x.text.accent,Te)),Me}})]}}),null),K((Me)=>{var Te=Y()?x.select.focusedBg:void 0,yn=Y()?x.text.accent:x.text.secondary;return Te!==Me.e&&(Me.e=o(Ne,"backgroundColor",Te,Me.e)),yn!==Me.t&&(Me.t=o(ut,"fg",yn,Me.t)),Me},{e:void 0,t:void 0}),Ne})()}})),K((ae)=>o(Z,"height",be(),ae)),Z})()]}}),null),L(M,z(ie,{get when(){return!!h()},get children(){var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),L(ae,h),K((ce)=>o(ae,"fg",m()==="error"?x.text.error:m()==="success"?x.text.success:x.text.accent,ce)),Z}}),null),o(Ie,"width","100%"),o(Ie,"height",1),o(Ie,"flexDirection","row"),o(Ie,"gap",2),L(Ie,z(ie,{get when(){return!k()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("j/k")),f(ce,j(":nav")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("g/G")),f(ce,j(":top/bot")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Enter")),f(ce,j(":edit")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("e")),f(ce,j(":$EDITOR")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("r")),f(ce,j(":reload")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("i")),f(ce,j(":init")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})()]}}),null),L(Ie,z(ie,{get when(){return k()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Enter")),f(ce,j(":save")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Esc")),f(ce,j(":cancel")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),z(ie,{get when(){return w()==="boolean"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Space/Tab")),f(ce,j(":toggle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="theme"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab/\u2190\u2192")),f(ce,j(":cycle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab/\u2190\u2192")),f(ce,j(":cycle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="strArray"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("JSON")),f(ce,j(":array")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return We(()=>w()==="string"||w()==="strArray")()&&X().length>0},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab")),L(ce,()=>`:preset (${he()+1}/${X().length})`),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j(" ")),L(ce,()=>`(${me()+1}/${X().length})`),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}})]}}),null),K((Z)=>{var ae=x.bg.base,ce=x.bg.surface,Y=x.text.accent,$e=x.text.secondary,ye=x.text.primary,Ve=x.bg.base;return ae!==Z.e&&(Z.e=o(g,"backgroundColor",ae,Z.e)),ce!==Z.t&&(Z.t=o(M,"backgroundColor",ce,Z.t)),Y!==Z.a&&(Z.a=o(C,"fg",Y,Z.a)),$e!==Z.o&&(Z.o=o(ge,"fg",$e,Z.o)),ye!==Z.i&&(Z.i=o(le,"fg",ye,Z.i)),Ve!==Z.n&&(Z.n=o(Ie,"backgroundColor",Ve,Z.n)),Z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),g})()}var np=2,rp=30,gs,vn="[]",qo,Xo,xs,Yo,op,ip,sp,cp,ap,lp,fp;var Ol=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();Ye();te();wt();gs=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],qo=[vn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],Xo=[vn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],xs=[vn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],Yo=[vn,'["echo removed"]'],op=[vn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],ip=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],sp=[vn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],cp=["copse","wt"],ap=["hardlink","symlink","copy"],lp=[vn,'["node_modules"]','["node_modules", ".next"]'],fp=[vn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Mr,readdirSync as hp,rmSync as mp}from"fs";import{basename as ws,dirname as vs,join as pp,resolve as Or}from"path";function gp(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Ml(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dl(e){if(!Mr(yt()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=De(),r=Or(t.path),i=ws(r);return[n.repos?.find((a)=>Or(a.path)===r)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>gp(a)).filter((a)=>!vs(a).includes("{")&&ws(a).includes("{")).map((a)=>{let d=ws(a),h=`^${Ml(d).replace(/\\\{repo\\\}/g,Ml(i)).replace(/\\\{branch\\\}/g,".+")}$`,p=new RegExp(h);return{path:Or(vs(a)),matches:(m)=>p.test(m)}})}function Al(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Or(vs(n.path)));return[...t]}function Fl(e,t,n,r){if(!Mr(e))return;let i=hp(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(r&&!r(s.name))continue;let c=Or(pp(e,s.name));if(!t.has(c))n.add(c)}}function Wl(e){let t=new Set(e.map((i)=>Or(i.path))),n=new Set,r=new Set;for(let i of Dl(e))r.add(i.path),Fl(i.path,t,n,i.matches);for(let i of Al(e)){if(r.has(i))continue;Fl(i,t,n)}return[...n]}function xp(e){return Dl(e).some((t)=>Mr(t.path))||Al(e).some((t)=>Mr(t))}async function bp(){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 wp(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await bp()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof eo)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function vp(){try{let n=(De().repos??[]).map((r)=>r.path).filter((r)=>!Mr(r));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 yp(e){let n=e.map((r)=>r.path).filter((r)=>!Mr(r));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 $p(e){try{let n=Wl(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:xp(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 Cp(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 Sp(e){let n=e.filter((r)=>r.isDirty&&!r.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((r)=>`${r.branch??"detached"} - ${r.path}`)}}async function Fr(e){let t=await se.list(e).catch(()=>[]),n=[await wp(),await vp(),yp(t),$p(t),Cp(t),Sp(t)];return{checks:n,healthy:n.every((r)=>r.status==="pass")}}async function Pp(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 Ep(e){let t=[];try{let n=Wl(await se.list(e).catch(()=>[]));for(let r of n)try{mp(r,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:r})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${r}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Rp(e){let t=[];try{let r=(await se.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of r)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 Zo(e){let t=[];return t.push(await Pp(e)),t.push(...await Ep(e)),t.push(...await Rp(e)),t}var ys=xe(()=>{Ye();je();qt()});function Il(){let e=ot(),t=nt(),[n,r]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[d,h]=ue(!1),[p,m]=ue([]),b=async()=>{s(!0),a(""),m([]);try{let A=await Fr();r(A)}catch(A){a(A.message)}s(!1)},D=async()=>{if(n()?.healthy)return;h(!0);try{let A=await Zo();m(A);let V=await Fr();r(V)}catch(A){a(A.message)}h(!1)};b(),rt((A)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let V=A.name;if(V==="r")b();if(V==="f"&&!i()&&!d()&&!n()?.healthy)D()});let T=()=>t().width,v=()=>t().height,E=()=>Math.max(50,Math.min(80,T()-4)),k=()=>{let A=S()+B()+8+(B()>0?2:0);return Math.max(12,Math.min(A,v()-4))},O=()=>Math.max(E()-4,10),w=(A)=>{if(A==="pass")return"\u2713";if(A==="warn")return"\u26A0";return"\u2717"},y=(A)=>{if(A==="pass")return x.text.success;if(A==="warn")return x.text.warning;return x.text.error},S=()=>n()?.checks.length??0,B=()=>p().length;return z(on,{get width(){return E()},get height(){return k()},get borderColor(){return We(()=>!!n()?.healthy)()?x.text.success:We(()=>!!n())()?x.text.warning:x.border.default},get backgroundColor(){return x.bg.surface},title:" Doctor ",get footer(){return[(()=>{var A=l("box"),V=l("text");return f(A,V),o(A,"height",1),L(V,()=>"\u2500".repeat(Math.max(O(),1))),K((q)=>{var H=O(),U=x.border.subtle;return H!==q.e&&(q.e=o(A,"width",H,q.e)),U!==q.t&&(q.t=o(V,"fg",U,q.t)),q},{e:void 0,t:void 0}),A})(),(()=>{var A=l("box"),V=l("text"),q=l("text");return f(A,V),f(A,q),o(A,"flexDirection","row"),o(A,"gap",2),f(V,j("r:recheck")),L(A,z(ie,{get when(){return!n()?.healthy},get children(){var H=l("text");return f(H,j("f:fix")),K((U)=>o(H,"fg",x.text.secondary,U)),H}}),q),f(q,j("Esc:back")),K((H)=>{var U=x.text.secondary,J=x.text.secondary;return U!==H.e&&(H.e=o(V,"fg",U,H.e)),J!==H.t&&(H.t=o(q,"fg",J,H.t)),H},{e:void 0,t:void 0}),A})()]},get children(){return[z(ie,{get when(){return i()},get children(){return z(yr,{label:"Running checks..."})}}),z(ie,{get when(){return d()},get children(){var A=l("text");return f(A,j("Running auto-fix...")),K((V)=>o(A,"fg",x.text.accent,V)),A}}),z(ie,{get when(){return We(()=>!i()&&!d())()&&!!c()},get children(){var A=l("text"),V=j("Error: ");return f(A,V),L(A,c,null),K((q)=>o(A,"fg",x.text.error,q)),A}}),z(ie,{get when(){return We(()=>!i()&&!d()&&!c())()&&!!n()},get children(){return[(()=>{var A=l("text");return f(A,j("Health Checks")),K((V)=>o(A,"fg",x.text.accent,V)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),z(et,{get each(){return n().checks},children:(A)=>{return(()=>{var V=l("box"),q=l("text"),H=l("text"),U=j(":"),J=l("text");return f(V,q),f(V,H),f(V,J),o(V,"width","100%"),o(V,"height",1),o(V,"flexDirection","row"),L(q,()=>w(A.status)),f(H,U),o(H,"x",2),o(H,"y",0),L(H,()=>A.name,U),o(J,"y",0),L(J,()=>A.message),K((X)=>{var re=y(A.status),he=x.text.primary,_=A.name.length+4,me=x.text.secondary;return re!==X.e&&(X.e=o(q,"fg",re,X.e)),he!==X.t&&(X.t=o(H,"fg",he,X.t)),_!==X.a&&(X.a=o(J,"x",_,X.a)),me!==X.o&&(X.o=o(J,"fg",me,X.o)),X},{e:void 0,t:void 0,a:void 0,o:void 0}),V})()}}),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),(()=>{var A=l("text");return L(A,(()=>{var V=We(()=>!!n().healthy);return()=>V()?"\u2713 All checks passed":`${n().checks.filter((q)=>q.status==="fail").length} error(s), ${n().checks.filter((q)=>q.status==="warn").length} warning(s) found`})()),K((V)=>o(A,"fg",n().healthy?x.text.success:x.text.warning,V)),A})(),z(ie,{get when(){return B()>0},get children(){return[(()=>{var A=l("text");return f(A,j("Fix Results")),K((V)=>o(A,"fg",x.text.accent,V)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),z(et,{get each(){return p()},children:(A)=>{return(()=>{var V=l("box"),q=l("text"),H=l("text");return f(V,q),f(V,H),o(V,"width","100%"),o(V,"height",1),o(V,"flexDirection","row"),L(q,()=>A.success?"\u2713":"\u2717"),o(H,"x",2),o(H,"y",0),L(H,()=>A.action),L(V,z(ie,{get when(){return!!A.detail},get children(){var U=l("text"),J=j("("),X=j(")");return f(U,J),f(U,X),o(U,"y",0),L(U,()=>A.detail,X),K((re)=>{var he=A.action.length+3,_=x.text.secondary;return he!==re.e&&(re.e=o(U,"x",he,re.e)),_!==re.t&&(re.t=o(U,"fg",_,re.t)),re},{e:void 0,t:void 0}),U}}),null),K((U)=>{var J=A.success?x.text.success:x.text.error,X=x.text.primary;return J!==U.e&&(U.e=o(q,"fg",J,U.e)),X!==U.t&&(U.t=o(H,"fg",X,U.t)),U},{e:void 0,t:void 0}),V})()}})]}})]}})]}})}var Tl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();ys();te();wt();kr();Ho()});var jl={};qe(jl,{writePin:()=>Cs,removePin:()=>Ss,readPin:()=>io,listPinnedWorktrees:()=>Ps,isPinned:()=>In});import{readFileSync as Bl,writeFileSync as kp,unlinkSync as Op,mkdirSync as Mp,existsSync as $s}from"fs";import{join as Fp,dirname as Nl}from"path";function oo(e){return nn(e,"copse-pin")}function Dp(e){let t=oo(e),n=Nl(t),r=Fp(n,"HEAD"),i=Bl(r,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function Cs(e,t){let n=oo(e),r={branch:Dp(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};Mp(Nl(n),{recursive:!0}),kp(n,JSON.stringify(r),{encoding:"utf-8",mode:384})}function io(e){let t=oo(e);if(!$s(t))return null;return JSON.parse(Bl(t,"utf-8"))}function Ss(e){let t=oo(e);if(!$s(t))return;Op(t)}function In(e){return $s(oo(e))}function Ps(e){return e.filter((t)=>In(t.path))}var Dr=xe(()=>{Fn()});function Ll(){let e=ot(),t=mt(),n=()=>t.worktrees()??[],r=()=>e.selectedWorktreeIndex(),i=(p)=>{let m=Math.max(0,Math.min(p,Math.max(n().length-1,0))),b=n()[m];e.setSelectedWorktreeIndex(m),e.setSelectedWorktreePath(b?.path??null)},s=He(()=>{let p=n(),m=[],b=new Map;for(let v of p){let E=b.get(v.repoName);if(E)E.push(v);else b.set(v.repoName,[v])}let D=0,T=!0;for(let[v,E]of b){if(!T)m.push({type:"separator"});T=!1,m.push({type:"header",repoName:v});for(let k of E)m.push({type:"worktree",wt:k,flatIdx:D}),D++}return m}),c=()=>e.selectedWorktrees().size;rt((p)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let m=p.name,b=n();if(m==="j"||m==="down")i(Math.min(r()+1,b.length-1));if(m==="k"||m==="up")i(Math.max(r()-1,0));if(m==="space"){let D=r(),T=b[D];if(T&&!T.isMain)e.toggleWorktreeSelection(T.path)}if(p.ctrl&&m==="a")e.selectAllNonMain(b.filter((D)=>!D.isMain).map((D)=>D.path))});let a=(p)=>{if(p.isLocked)return"\uD83D\uDD12";if(p.isDirty)return"\u25CF";return"\u2713"},d=(p)=>{if(p.isLocked)return x.text.warning;if(p.isDirty)return x.text.error;return x.text.success},h=(p,m)=>{let b=p.branch??"(detached)",D=Math.max(8,Es-(m?9:7));return b.length>D?b.slice(0,D-1)+"\u2026":b};return(()=>{var p=l("box");return o(p,"x",0),o(p,"y",0),o(p,"width","100%"),o(p,"height","100%"),o(p,"flexDirection","column"),o(p,"paddingX",1),o(p,"paddingY",1),o(p,"gap",0),L(p,z(ie,{get when(){return t.loading()},get children(){var m=l("text");return f(m,j("Loading...")),K((b)=>o(m,"fg",x.text.secondary,b)),m}}),null),L(p,z(ie,{get when(){return!t.loading()},get children(){return[z(et,{get each(){return s()},children:(m)=>{if(m.type==="header")return(()=>{var v=l("box"),E=l("text"),k=l("b");return f(v,E),o(v,"width","100%"),o(v,"height",1),f(E,k),L(k,()=>m.repoName),K((O)=>o(E,"fg",x.text.accent,O)),v})();if(m.type==="separator")return(()=>{var v=l("box"),E=l("text");return f(v,E),o(v,"width","100%"),o(v,"height",1),f(E,j("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),K((k)=>o(E,"fg",x.border.subtle,k)),v})();let b=m.wt,D=()=>m.flatIdx===r(),T=()=>e.selectedWorktrees().has(b.path);return(()=>{var v=l("box"),E=l("text"),k=l("text");return f(v,E),f(v,k),o(v,"width","100%"),o(v,"height",1),o(v,"paddingX",1),o(v,"onMouseDown",()=>i(m.flatIdx)),o(E,"x",0),o(E,"y",0),L(E,()=>a(b)),o(k,"x",2),o(k,"y",0),L(k,()=>h(b,!1)),L(v,z(ie,{get when(){return T()},get children(){var O=l("text");return f(O,j("\u2713")),o(O,"x",23),o(O,"y",0),K((w)=>o(O,"fg",x.text.accent,w)),O}}),null),L(v,z(ie,{get when(){return!!Gt(b.path)},get children(){var O=l("text");return f(O,j("S")),o(O,"y",0),K((w)=>{var y=Es-(T()?3:1),S=x.text.accent;return y!==w.e&&(w.e=o(O,"x",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),O}}),null),L(v,z(ie,{get when(){return In(b.path)},get children(){var O=l("text");return f(O,j("P")),o(O,"y",0),K((w)=>{var y=Es-(T()?5:3)+(Gt(b.path)?0:2),S=x.text.warning;return y!==w.e&&(w.e=o(O,"x",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),O}}),null),K((O)=>{var w=D()?x.select.focusedBg:T()?x.bg.elevated:x.bg.surface,y=d(b),S=D()?x.tab.active:x.text.primary;return w!==O.e&&(O.e=o(v,"backgroundColor",w,O.e)),y!==O.t&&(O.t=o(E,"fg",y,O.t)),S!==O.a&&(O.a=o(k,"fg",S,O.a)),O},{e:void 0,t:void 0,a:void 0}),v})()}}),z(ie,{get when(){return c()>0},get children(){var m=l("box"),b=l("text");return f(m,b),o(m,"width","100%"),o(m,"height",1),L(b,()=>`Selected: ${c()}`),K((D)=>o(b,"fg",x.text.accent,D)),m}})]}}),null),K((m)=>o(p,"backgroundColor",x.bg.surface,m)),p})()}var Es=24;var Vl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();dn();te();wt();Dr();pn()});import{decodePasteBytes as Ap}from"@opentui/core";function Kl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(""),[s,c]=ue(0);ln(()=>{e.setInputFocused(!0)}),it(()=>{e.setInputFocused(!1)});let a=()=>{let k=t.worktrees()??[],O=e.selectedWorktreePath();if(O){let w=k.find((y)=>y.path===O);if(w)return w}return k[e.selectedWorktreeIndex()]},d=()=>{let k=process.env.VISUAL||process.env.EDITOR;if(k)return k;let O=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let w of O)try{if(Bun.spawnSync(["which",w],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return w}catch{}return null},h=He(()=>[{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 O=d();if(!O)return;e.setShowCommandPalette(!1),Bun.spawn([O,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)}},...Dt.map((k)=>({id:`theme:${k}`,label:`Theme: ${jo[k]}`,description:"Switch color theme",action:()=>{xr(k);try{let O=yt(),w={...De()};w.theme=k,_n(O,JSON.stringify(w,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),p=He(()=>{let k=r().toLowerCase();if(!k)return h();return h().filter((O)=>O.label.toLowerCase().includes(k)||O.description.toLowerCase().includes(k))});rt((k)=>{if(!e.showCommandPalette())return;let O=k.name;if(O==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(O==="return"||O==="enter"){let w=p()[s()];if(w)w.action();i(""),c(0);return}if(O==="down"||O==="j"){c((w)=>Math.min(w+1,p().length-1));return}if(O==="up"||O==="k"){c((w)=>Math.max(w-1,0));return}}),pr((k)=>{if(!e.inputFocused())return;let O=Ap(k.bytes).replace(/\r?\n/g,"");if(!O)return;i((w)=>w+O),c(0)});let m=(k)=>{i(k),c(0)},b=()=>Math.max(50,Math.min(80,n().width-4)),D=()=>Math.max(10,Math.min(p().length+8,n().height-4)),T=()=>b()-4,v=()=>Math.max(T()-2,1),E=()=>D()-8;return z(on,{get width(){return b()},get height(){return D()},get borderColor(){return x.border.active},get backgroundColor(){return x.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var k=l("box"),O=l("text");return f(k,O),o(k,"height",1),L(O,()=>"\u2500".repeat(Math.max(T(),1))),K((w)=>{var y=T(),S=x.border.subtle;return y!==w.e&&(w.e=o(k,"width",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box"),O=l("text"),w=l("text"),y=l("text");return f(k,O),f(k,w),f(k,y),o(k,"flexDirection","row"),o(k,"gap",2),f(O,j("\u2191\u2193:navigate")),f(w,j("Enter:run")),f(y,j("Esc:close")),K((S)=>{var B=x.text.secondary,A=x.text.secondary,V=x.text.secondary;return B!==S.e&&(S.e=o(O,"fg",B,S.e)),A!==S.t&&(S.t=o(w,"fg",A,S.t)),V!==S.a&&(S.a=o(y,"fg",V,S.a)),S},{e:void 0,t:void 0,a:void 0}),k})()]},get children(){return[(()=>{var k=l("box"),O=l("text"),w=l("input");return f(k,O),f(k,w),o(k,"height",1),o(k,"flexDirection","row"),f(O,j("> ")),o(w,"onInput",m),o(w,"placeholder","Search commands..."),o(w,"focused",!0),K((y)=>{var S=T(),B=x.bg.elevated,A=x.text.accent,V=r(),q=v(),H=x.bg.elevated,U=x.text.primary,J=x.text.secondary,X=x.text.accent,re=x.bg.elevated;return S!==y.e&&(y.e=o(k,"width",S,y.e)),B!==y.t&&(y.t=o(k,"backgroundColor",B,y.t)),A!==y.a&&(y.a=o(O,"fg",A,y.a)),V!==y.o&&(y.o=o(w,"value",V,y.o)),q!==y.i&&(y.i=o(w,"width",q,y.i)),H!==y.n&&(y.n=o(w,"backgroundColor",H,y.n)),U!==y.s&&(y.s=o(w,"textColor",U,y.s)),J!==y.h&&(y.h=o(w,"placeholderColor",J,y.h)),X!==y.r&&(y.r=o(w,"cursorColor",X,y.r)),re!==y.d&&(y.d=o(w,"focusedBackgroundColor",re,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}),k})(),(()=>{var k=l("box"),O=l("text");return f(k,O),o(k,"height",1),L(O,()=>"\u2500".repeat(Math.max(T(),1))),K((w)=>{var y=T(),S=x.border.subtle;return y!==w.e&&(w.e=o(k,"width",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box");return o(k,"flexDirection","column"),L(k,z(et,{get each(){return p().slice(0,E())},children:(O,w)=>{let y=()=>w()===s();return(()=>{var S=l("box"),B=l("text"),A=l("text");return f(S,B),f(S,A),o(S,"height",1),o(S,"onMouseDown",()=>{c(w()),O.action()}),o(B,"x",2),o(B,"y",0),L(B,()=>O.label),o(A,"y",0),L(A,()=>O.description),K((V)=>{var q=T(),H=y()?x.select.focusedBg:x.bg.surface,U=y()?x.tab.active:x.text.primary,J=Math.max(25,O.label.length+4),X=x.text.secondary;return q!==V.e&&(V.e=o(S,"width",q,V.e)),H!==V.t&&(V.t=o(S,"backgroundColor",H,V.t)),U!==V.a&&(V.a=o(B,"fg",U,V.a)),J!==V.o&&(V.o=o(A,"x",J,V.o)),X!==V.i&&(V.i=o(A,"fg",X,V.i)),V},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),S})()}}),null),L(k,z(ie,{get when(){return p().length===0},get children(){var O=l("box"),w=l("text");return f(O,w),o(O,"height",1),f(w,j("No commands found")),o(w,"x",2),o(w,"y",0),K((y)=>o(w,"fg",x.text.secondary,y)),O}}),null),K((O)=>{var w=T(),y=E(),S=x.bg.surface;return w!==O.e&&(O.e=o(k,"width",w,O.e)),y!==O.t&&(O.t=o(k,"height",y,O.t)),S!==O.a&&(O.a=o(k,"backgroundColor",S,O.a)),O},{e:void 0,t:void 0,a:void 0}),k})()]}})}var Gl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();dn();te();wt();kr();Ye()});import{join as Wp}from"path";import{existsSync as Ip}from"fs";function Hl(e){let t=ot(),n=rn(),[r,i]=ue(0),s=()=>t.focusPickerData(),c=He(()=>{let p=s();if(!p)return[];return[...p.focusPaths.map((m)=>({label:m,value:m})),{label:"Worktree root",value:Rs}]}),a=()=>{t.setFocusPickerData(null),i(0)},d=(p)=>{let m=e.detectEditor();if(!m){n.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"}),a();return}if(!Ip(p)){n.addToast({message:`Path does not exist: ${p}`,type:"error"}),a();return}Bun.spawn([m,p],{stdout:"inherit",stderr:"inherit"}),a()},h=()=>{let p=s(),m=c();if(!p||m.length===0)return;let b=m[r()];if(!b)return;if(b.value===Rs)d(p.worktreePath);else d(Wp(p.worktreePath,b.value))};return rt((p)=>{if(!s())return;let m=p.name;if(m==="escape"){a();return}let b=c();if(m==="down"||m==="j"||p.sequence==="\x1B[B"){i((D)=>Math.min(D+1,b.length-1));return}if(m==="up"||m==="k"||p.sequence==="\x1B[A"){i((D)=>Math.max(D-1,0));return}if(m==="return"||m==="enter"){h();return}}),z(ie,{get when(){return s()},get children(){return z(on,{title:" Open Focus ",width:50,get height(){return Math.min(c().length+6,14)},backdrop:!0,get children(){return[(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,j("Multiple focus paths set. Pick one to open:")),K((b)=>o(m,"fg",x.text.secondary,b)),p})(),(()=>{var p=l("box");return o(p,"height",1),p})(),z(et,{get each(){return c()},children:(p,m)=>(()=>{var b=l("box"),D=l("text");return f(b,D),o(b,"height",1),o(b,"flexDirection","row"),L(D,()=>m()===r()?"\u276F ":" ",null),L(D,()=>p.label,null),K((T)=>o(D,"fg",m()===r()?x.text.accent:p.value===Rs?x.text.secondary:x.text.primary,T)),b})()}),(()=>{var p=l("box");return o(p,"height",1),p})(),(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,j("j/k:nav enter:open esc:cancel")),K((b)=>o(m,"fg",x.text.secondary,b)),p})()]}})}})}var Rs="__root__";var Ul=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();nr();wt();kr()});function Tp(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function Bp(e){if(e==="success")return x.text.success;if(e==="warning")return x.text.warning;if(e==="error")return x.text.error;return x.text.primary}function Jl(){let e=nt(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var r=l("box");return o(r,"y",1),o(r,"height",5),o(r,"flexDirection","column"),L(r,z(et,{get each(){return rn().toasts()},children:(i,s)=>(()=>{var c=l("box"),a=l("text");return f(c,a),o(c,"x",0),o(c,"height",1),o(a,"x",1),o(a,"y",0),L(a,()=>`${Tp(i.type)} ${i.message}`),K((d)=>{var h=s(),p=t(),m=x.bg.elevated,b=Bp(i.type);return h!==d.e&&(d.e=o(c,"y",h,d.e)),p!==d.t&&(d.t=o(c,"width",p,d.t)),m!==d.a&&(d.a=o(c,"backgroundColor",m,d.a)),b!==d.o&&(d.o=o(a,"fg",b,d.o)),d},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),K((i)=>{var s=n(),c=t();return s!==i.e&&(i.e=o(r,"x",s,i.e)),c!==i.t&&(i.t=o(r,"width",c,i.t)),i},{e:void 0,t:void 0}),r})()}var zl=xe(()=>{te();te();te();te();te();te();Ue();te();nr();wt()});var Yl={};qe(Yl,{launchTUI:()=>Vp});import{existsSync as Np}from"fs";import{resolve as ql}from"path";function Xl(){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 Lp(e){let t=ot(),n=mt(),r=rn(),i=un(),[s,c]=ue(!1),a=nt(),d=()=>{let E=n.worktrees()??[],k=t.selectedWorktreePath();if(k){let O=E.find((w)=>w.path===k);if(O)return O}return E[t.selectedWorktreeIndex()]};Ft(()=>{let E=n.worktrees()??[],k=E.map((S)=>S.path);if(t.pruneSelectedWorktrees(k),E.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let O=t.selectedWorktreePath();if(O){let S=E.findIndex((B)=>B.path===O);if(S>=0){if(S!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(S);return}}let w=Math.min(t.selectedWorktreeIndex(),E.length-1),y=E[w]?.path??null;if(w!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(w);if(y!==t.selectedWorktreePath())t.setSelectedWorktreePath(y)}),rt((E)=>{let k=E.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(E.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 O=d();if(O&&!O.isMain)t.setShowRemove(!0);return}if(k==="o"){let O=d();if(!O)return;let w=Vo(O.path);if(w.kind==="multiple"){t.setFocusPickerData({worktreePath:O.path,focusPaths:w.focusPaths});return}let y=process.env.VISUAL||process.env.EDITOR||Xl();if(!y){r.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!Np(w.path)){r.addToast({message:`Path does not exist: ${w.path}`,type:"error"});return}Bun.spawn([y,w.path],{stdout:"inherit",stderr:"inherit"});return}}if(k==="h"){t.setActiveTab("doctor");return}if(k==="q"||k==="Q")i.destroy();if(k==="?")c((O)=>!O)});let h=()=>a().width,p=()=>a().height,m=()=>e.repoPath.split("/").pop()??"",b=()=>{let E=n.repoNames();if(E.length<=1)return m();return`${E.length} repos`},D=()=>{let E=n.worktrees()??[];return`${m()} \xB7 ${E.length} worktrees`},T=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},v=()=>h()-jp-1;return(()=>{var E=l("box"),k=l("box"),O=l("text"),w=l("text"),y=l("box"),S=l("box"),B=l("box"),A=l("text"),V=l("b"),q=l("box"),H=l("box"),U=l("toaster"),J=l("box"),X=l("text"),re=l("box"),he=l("text");return f(E,k),f(E,y),f(E,U),f(E,J),f(E,re),o(E,"flexDirection","column"),f(k,O),f(k,w),o(k,"height",1),f(O,j("\uD83C\uDF33 copse")),o(O,"x",1),o(O,"y",0),o(w,"y",0),L(w,b),f(y,S),f(y,q),f(y,H),o(y,"flexGrow",1),o(y,"flexDirection","row"),f(S,B),o(S,"width",28),o(S,"flexShrink",0),o(S,"flexDirection","column"),f(B,A),o(B,"height",1),o(B,"paddingX",1),f(A,V),L(V,T),L(S,z(Ll,{}),null),o(q,"width",1),o(H,"flexGrow",1),L(H,z(ie,{get when(){return We(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return z(ml,{})}}),null),L(H,z(ie,{get when(){return We(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return z(El,{get w(){return v()},get h(){return p()-3}})}}),null),L(H,z(ie,{get when(){return t.activeTab()==="config"},get children(){return z(kl,{})}}),null),L(E,z(Jl,{}),U),o(U,"position","bottom-right"),f(J,X),o(J,"height",1),o(X,"x",0),o(X,"y",0),L(X,()=>"\u2500".repeat(h())),f(re,he),o(re,"height",1),f(he,j("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),o(he,"x",1),o(he,"y",0),L(E,z(ie,{get when(){return We(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),Pe=l("text"),R=l("text"),F=l("box"),G=l("text"),N=l("text"),W=l("box"),ee=l("text"),de=l("text"),ne=l("box"),pe=l("text"),Se=l("text"),be=l("box"),ke=l("text"),Fe=l("text"),Re=l("box"),I=l("box"),u=l("text"),g=l("text"),M=l("box"),P=l("text"),C=l("text"),Q=l("box"),oe=l("box"),ge=l("text");return f(_,me),f(_,F),f(_,W),f(_,ne),f(_,be),f(_,Re),f(_,I),f(_,M),f(_,Q),f(_,oe),o(_,"height",14),o(_,"border",!0),o(_,"borderStyle","rounded"),o(_,"title"," Keyboard Shortcuts "),o(_,"titleAlignment","left"),o(_,"flexDirection","column"),o(_,"paddingX",1),o(_,"paddingY",1),o(_,"position","absolute"),f(me,Pe),f(me,R),o(me,"height",1),f(Pe,j("q")),o(Pe,"x",1),f(R,j("Quit")),o(R,"x",8),f(F,G),f(F,N),o(F,"height",1),f(G,j("j/k")),o(G,"x",1),f(N,j("Navigate list")),o(N,"x",8),f(W,ee),f(W,de),o(W,"height",1),f(ee,j("a")),o(ee,"x",1),f(de,j("Add worktree")),o(de,"x",8),f(ne,pe),f(ne,Se),o(ne,"height",1),f(pe,j("d")),o(pe,"x",1),f(Se,j("Delete worktree")),o(Se,"x",8),f(be,ke),f(be,Fe),o(be,"height",1),f(ke,j("r")),o(ke,"x",1),f(Fe,j("Refresh list")),o(Fe,"x",8),o(Re,"height",1),f(I,u),f(I,g),o(I,"height",1),f(u,j("Ctrl+P")),o(u,"x",1),f(g,j("Command palette")),o(g,"x",8),f(M,P),f(M,C),o(M,"height",1),f(P,j("?")),o(P,"x",1),f(C,j("Toggle help")),o(C,"x",8),o(Q,"height",1),f(oe,ge),o(oe,"height",1),f(ge,j("Press ? to close")),o(ge,"x",1),K((le)=>{var Ie=Math.max(0,Math.floor((h()-Math.max(40,Math.min(60,h()-4)))/2)),Z=Math.max(0,Math.floor((p()-14)/2)),ae=Math.max(40,Math.min(60,h()-4)),ce=x.border.active,Y=x.bg.elevated,$e=x.text.secondary,ye=x.text.primary,Ve=x.text.secondary,Ne=x.text.primary,ze=x.text.secondary,ut=x.text.primary,Me=x.text.secondary,Te=x.text.primary,yn=x.text.secondary,Ir=x.text.primary,Tr=x.text.secondary,Br=x.text.primary,Nr=x.text.secondary,Ts=x.text.primary,Bs=x.text.accent;return Ie!==le.e&&(le.e=o(_,"x",Ie,le.e)),Z!==le.t&&(le.t=o(_,"y",Z,le.t)),ae!==le.a&&(le.a=o(_,"width",ae,le.a)),ce!==le.o&&(le.o=o(_,"borderColor",ce,le.o)),Y!==le.i&&(le.i=o(_,"backgroundColor",Y,le.i)),$e!==le.n&&(le.n=o(Pe,"fg",$e,le.n)),ye!==le.s&&(le.s=o(R,"fg",ye,le.s)),Ve!==le.h&&(le.h=o(G,"fg",Ve,le.h)),Ne!==le.r&&(le.r=o(N,"fg",Ne,le.r)),ze!==le.d&&(le.d=o(ee,"fg",ze,le.d)),ut!==le.l&&(le.l=o(de,"fg",ut,le.l)),Me!==le.u&&(le.u=o(pe,"fg",Me,le.u)),Te!==le.c&&(le.c=o(Se,"fg",Te,le.c)),yn!==le.w&&(le.w=o(ke,"fg",yn,le.w)),Ir!==le.m&&(le.m=o(Fe,"fg",Ir,le.m)),Tr!==le.f&&(le.f=o(u,"fg",Tr,le.f)),Br!==le.y&&(le.y=o(g,"fg",Br,le.y)),Nr!==le.g&&(le.g=o(P,"fg",Nr,le.g)),Ts!==le.p&&(le.p=o(C,"fg",Ts,le.p)),Bs!==le.b&&(le.b=o(ge,"fg",Bs,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),L(E,z(ie,{get when(){return t.activeTab()==="add"},get children(){return z($l,{})}}),null),L(E,z(ie,{get when(){return t.activeTab()==="doctor"},get children(){return z(Il,{})}}),null),L(E,z(ie,{get when(){return t.showRemove()},get children(){return z(Sl,{})}}),null),L(E,z(ie,{get when(){return t.showCommandPalette()},get children(){return z(Kl,{})}}),null),L(E,z(Hl,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||Xl()}),null),K((_)=>{var me=h(),Pe=p(),R=x.bg.base,F=x.bg.overlay,G=x.text.accent,N=h()-b().length-2,W=x.text.secondary,ee=x.bg.surface,de=x.text.accent,ne=x.bg.base,pe=x.bg.overlay,Se=x.border.subtle,be=x.bg.overlay,ke=x.text.secondary;return me!==_.e&&(_.e=o(E,"width",me,_.e)),Pe!==_.t&&(_.t=o(E,"height",Pe,_.t)),R!==_.a&&(_.a=o(E,"backgroundColor",R,_.a)),F!==_.o&&(_.o=o(k,"backgroundColor",F,_.o)),G!==_.i&&(_.i=o(O,"fg",G,_.i)),N!==_.n&&(_.n=o(w,"x",N,_.n)),W!==_.s&&(_.s=o(w,"fg",W,_.s)),ee!==_.h&&(_.h=o(S,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=o(A,"fg",de,_.r)),ne!==_.d&&(_.d=o(H,"backgroundColor",ne,_.d)),pe!==_.l&&(_.l=o(J,"backgroundColor",pe,_.l)),Se!==_.u&&(_.u=o(X,"fg",Se,_.u)),be!==_.c&&(_.c=o(re,"backgroundColor",be,_.c)),ke!==_.w&&(_.w=o(he,"fg",ke,_.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}),E})()}async function Vp(){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={...De()};if(t=kn(c),typeof c.theme==="string")n=c.theme}catch{}let r=e??t[0]??process.cwd(),i=[r],s=new Set([ql(r)]);for(let c of t){let a=ql(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&Dt.includes(n))xr(n);await Ua(()=>z(nl,{repoPath:r,repoPaths:i,get children(){return z(il,{repoPaths:i,get children(){return z(fl,{get children(){return z(Lp,{repoPath:r})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var jp=28;var Zl=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();dn();je();pl();Cl();Pl();Rl();Ol();Tl();Vl();wt();Gl();Ul();nr();zl();nr();Ye();Yt()});import*as Ql from"readline";async function Tn(e){let t=Ql.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(r)=>{t.close(),n(r.toLowerCase()==="y"||r.toLowerCase()==="yes")})})}async function Le(){return se.getMainRepoPath().catch(()=>process.cwd())}function Ht(e,t){let n=e.find((r)=>r.branch===t||r.path===t||r.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function Qe(e){if(e instanceof St)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var gt=xe(()=>{je();qt()});import{mkdirSync as Kp,writeFileSync as Gp}from"fs";import{dirname as Hp}from"path";function Up(e){return nn(e,"copse-pr")}function _l(e,t){let n=Up(e);Kp(Hp(n),{recursive:!0}),Gp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var ef=xe(()=>{Fn()});import{appendFileSync as Jp,existsSync as zp,mkdirSync as qp,readFileSync as tf,rmSync as Xp,statSync as Yp,writeFileSync as Zp}from"fs";import{dirname as Qp}from"path";function ks(e){return nn(e,"copse-activity.log")}function Ut(e,t){let n=ks(e);qp(Qp(n),{recursive:!0}),Jp(n,`${JSON.stringify(t)}
|
|
20
|
+
`,{encoding:"utf-8",mode:384});let r=Yp(n,{throwIfNoEntry:!1});if(r&&r.size>eg){let i=tf(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>nf){let s=i.slice(-_p);Zp(n,`${s.join(`
|
|
18
21
|
`)}
|
|
19
|
-
`,{encoding:"utf-8",mode:384})}}}function
|
|
20
|
-
Worktree
|
|
21
|
-
|
|
22
|
-
`)}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
`,{encoding:"utf-8",mode:384})}}}function rf(e,t){let n=ks(e),r=t?.limit??50;if(!zp(n))return[];let s=tf(n,"utf-8").split(/\r?\n/).filter(Boolean),c=Math.max(0,s.length-r),a=[];for(let d=s.length-1;d>=c;d--)try{a.push(JSON.parse(s[d]))}catch{}return a}function of(e){Xp(ks(e),{force:!0})}var nf=1000,_p=500,eg;var Bn=xe(()=>{Fn();eg=80*nf});var sf={};qe(sf,{default:()=>ig});import{basename as tg,resolve as ng}from"path";import{existsSync as rg}from"fs";var og,ig;var cf=xe(()=>{je();qt();Ye();gt();bn();zo();Uo();Yt();ef();Bn();ps();pn();og={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,r=await Le(),i=tg(r);if(!t&&!n)console.error("Error: specify a branch or use --pr <number>."),process.exit(1);if(n)try{let k=Bun.spawn(["gh","pr","view",String(n),"--json","headRefName","--jq",".headRefName"],{cwd:r,stdout:"pipe",stderr:"pipe"}),[O,w,y]=await Promise.all([new Response(k.stdout).text(),new Response(k.stderr).text(),k.exited]);if(y!==0)console.error(`Error: failed to resolve PR #${n}: ${w.trim()}`),console.error("Make sure 'gh' CLI is installed and authenticated."),process.exit(1);if(t=O.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=De(),a=bt(c,r),d=e.template;if(d){let k=Co(c,d);if(!k){let O=Object.keys(c.templates??{});if(console.error(`Error: template '${d}' not found.`),O.length>0)console.error(`Available templates: ${O.join(", ")}`);else console.error("No templates configured. Add templates to your config file.");process.exit(1)}if(a=So(a,k),k.base&&!e.base)e.base=k.base;console.log(`Using template '${d}'`)}let h=e.path??a.worktreeDir,p=$o(h,{repo:i,branch:s}),m=ng(r,p);console.log(`Creating worktree for branch '${t}'...`),console.log(` Target: ${m}`);let D=(await se.list(r)).find((k)=>k.branch===t);if(D)console.error(`Error: branch '${t}' is already checked out in ${D.path}`),process.exit(1);if(rg(m))console.error(`Error: directory already exists: ${m}`),process.exit(1);let T=e.base??a.base,v=e.fetch!==!1,E=await se.localBranchExists(t,r);if(T&&v&&!E){let k=await se.getRemotes(r),O=No(T,k);if(O){console.log(` Fetching ${O.remote}/${O.branch}...`);try{await se.fetchRemote(O.remote,O.branch,r),console.log(` \u2713 Fetched ${O.remote}/${O.branch}`)}catch(w){let y=w instanceof St?w.stderr||w.message:w.message;console.log(` \u26A0 Fetch failed (${y.split(`
|
|
23
|
+
`)[0]}) \u2014 continuing with local ref`)}}}try{await se.add(t,m,{createBranch:Boolean(e.create),base:T},r),console.log(" \u2713 Worktree created");try{Ut(r,{timestamp:new Date().toISOString(),event:"create",branch:t,path:m})}catch{}if(n)_l(m,{number:n,branch:t,createdAt:new Date().toISOString()}),console.log(` \u2713 PR #${n} metadata saved`)}catch(k){if(k instanceof St)console.error(`Error creating worktree: ${k.stderr||k.message}`);else console.error(`Error: ${k.message}`);process.exit(1)}if(a.autoUpstream)try{let k=await se.getDefaultRemote(r);if(await se.remoteBranchExists(t,k,r))await se.setUpstream(t,k,r),console.log(` \u2713 Upstream tracking set \u2192 ${k}/${t}`);else console.log(" \u2139 No remote branch found \u2014 upstream tracking skipped")}catch(k){console.warn(` \u26A0 Could not set upstream tracking: ${k.message}`)}try{if(a.copyFiles.length>0){console.log(` Copying files: ${a.copyFiles.join(", ")}`);let B=Cr(r,m,a.copyFiles);for(let A of B.warnings)console.log(` \u26A0 ${A}`);if(B.copied.length>0)console.log(` \u2713 Copied: ${B.copied.join(", ")}`)}if(a.linkFiles.length>0){console.log(` Linking files: ${a.linkFiles.join(", ")}`);let B=Sr(r,m,a.linkFiles);for(let A of B.warnings)console.log(` \u26A0 ${A}`);if(B.linked.length>0)console.log(` \u2713 Linked: ${B.linked.join(", ")}`)}if(a.sharedDeps&&a.sharedDeps.paths&&a.sharedDeps.paths.length>0){let B=a.sharedDeps.strategy??"symlink";console.log(` Sharing dependencies (${B}): ${a.sharedDeps.paths.join(", ")}`);let A=vl(r,m,a.sharedDeps);for(let V of A.warnings)console.log(` \u26A0 ${V}`);if(A.linked.length>0)console.log(` \u2713 Shared (${B}): ${A.linked.join(", ")}`);if(A.copied.length>0)console.log(` \u2713 Copied: ${A.copied.join(", ")}`)}let k={COPSE_BRANCH:t,COPSE_WORKTREE_PATH:m,COPSE_REPO_PATH:r},O=e.focus,w=[];if(O&&O.length>0)w=O.flatMap((B)=>B.split(/[,\s]+/)).map((B)=>B.trim()).filter(Boolean);if(w.length>0){let{valid:B,invalid:A}=Jo(m,w);if(A.length>0)console.log(` \u26A0 Focus paths not found (will be skipped): ${A.join(", ")}`);if(B.length>0)br(m,B),console.log(` \u2713 Focus set: ${B.join(", ")}`);k.COPSE_FOCUS_PATHS=B.join(",")}if(a.postCreate.length>0)console.log(" Running postCreate hooks..."),await pt(a.postCreate,{cwd:m,env:k,onOutput:(B)=>console.log(` ${B}`)}),console.log(" \u2713 Hooks completed");if(w.length>0&&a.monorepo?.hooks&&a.monorepo.hooks.length>0){let B=rr(a.monorepo.hooks,w);if(B.length>0)console.log(" Running monorepo hooks..."),await Rr(B,"postCreate",{cwd:m,env:k,repo:i,branch:t,focusPaths:w,mainRepoPath:r,onOutput:(A)=>console.log(` ${A}`)}),console.log(" \u2713 Monorepo hooks completed")}let y=_t(c);if(e.session||y.autoCreate)if(await An()){let A=e.layout??y.defaultLayout,V=fr(c,A),q=await vr(t,m,{layout:V,prefix:y.prefix,attach:!1,layoutName:A});console.log(` \u2713 Session created: ${q}`)}else console.log(" \u26A0 tmux not found \u2014 session skipped");console.log(`
|
|
24
|
+
Worktree ready: ${m}`),process.exit(0)}catch(k){console.error(`
|
|
25
|
+
Setup failed, rolling back...`);try{await se.remove(m,{force:!0},r),console.error("Rolled back worktree.")}catch(O){console.error(`Warning: rollback failed: ${O.message}`)}if(k instanceof Er)console.error(`Error: hook timed out: ${k.command}`);else if(k instanceof Pr){if(console.error(`Error: hook failed (exit ${k.exitCode}): ${k.command}`),k.stderr)console.error(k.stderr)}else console.error(`Error: ${k.message}`);process.exit(1)}}},ig=og});var af={};qe(af,{default:()=>ag});import{relative as sg,resolve as Os}from"path";var cg,ag;var lf=xe(()=>{je();qt();Ye();Yt();gt();cg={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=De(),a=await Le(),d=kn(c),h=new Set([Os(a)]),p=[a];for(let m of d){let b=Os(m);if(!h.has(b))h.add(b),p.push(m)}t=await se.listAll(p)}else t=await se.list();let n=await Promise.all(t.map(async(c)=>({...c,focus:Kt(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 r=Os(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===r?c.path:sg(r,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((m)=>m.repo.length)),a=Math.max(6,...s.map((m)=>m.branch.length)),d=Math.max(4,...s.map((m)=>m.path.length)),h=Math.max(6,...s.map((m)=>m.status.length)),p=Math.max(5,...s.map((m)=>m.focus.length));console.log(`${"Repo".padEnd(c)} ${"Branch".padEnd(a)} ${"Path".padEnd(d)} ${"Status".padEnd(h)} ${"Focus".padEnd(p)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(d)} ${"-".repeat(h)} ${"-".repeat(p)}`);for(let m of s)console.log(`${m.repo.padEnd(c)} ${m.branch.padEnd(a)} ${m.path.padEnd(d)} ${m.status.padEnd(h)} ${m.focus.padEnd(p)}`)}else{let c=Math.max(6,...s.map((p)=>p.branch.length)),a=Math.max(4,...s.map((p)=>p.path.length)),d=Math.max(6,...s.map((p)=>p.status.length)),h=Math.max(5,...s.map((p)=>p.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(d)} ${"Focus".padEnd(h)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(d)} ${"-".repeat(h)}`);for(let p of s)console.log(`${p.branch.padEnd(c)} ${p.path.padEnd(a)} ${p.status.padEnd(d)} ${p.focus.padEnd(h)}`)}process.exit(0)}catch(t){if(t instanceof St)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)}}},ag=cg});var uf={};qe(uf,{default:()=>fg});import{basename as ff}from"path";var lg,fg;var df=xe(()=>{je();Ye();bn();Yt();zo();Bn();pn();gt();lg={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,r=!!e.yes;try{let i=await Le(),s=await se.list(i),c=Ht(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(!r){if(!await Tn(`Remove worktree '${c.branch??ff(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let d=De(),h=bt(d,i);if(h.postRemove.length>0)console.log("Running postRemove hooks..."),await pt(h.postRemove,{cwd:c.path,env:{COPSE_BRANCH:c.branch??"",COPSE_WORKTREE_PATH:c.path,COPSE_REPO_PATH:i},onOutput:(b)=>console.log(` ${b}`)}).catch((b)=>console.warn(`Warning: postRemove hook failed: ${b.message}`));let p=Kt(c.path)??[];if(p.length>0&&h.monorepo?.hooks&&h.monorepo.hooks.length>0){let b=rr(h.monorepo.hooks,p);if(b.length>0){let D=ff(i),T=c.branch??"unknown";console.log(" Running monorepo postRemove hooks..."),await Rr(b,"postRemove",{cwd:c.path,env:{COPSE_BRANCH:T,COPSE_WORKTREE_PATH:c.path,COPSE_REPO_PATH:i,COPSE_FOCUS_PATHS:p.join(",")},repo:D,branch:T,focusPaths:p,mainRepoPath:i,onOutput:(v)=>console.log(` ${v}`)}),console.log(" \u2713 Monorepo hooks completed")}}let m=_t(d);if(m.autoKill){if(await An()){let D=c.branch??t;if(await Go(D,c.path,m.prefix))console.log(" \u2713 Session killed")}}await se.remove(c.path,{force:n},i),console.log(`Removed worktree: ${c.path}`);try{Ut(i,{timestamp:new Date().toISOString(),event:"delete",branch:c.branch??t,path:c.path})}catch{}process.exit(0)}catch(i){Qe(i)}}},fg=lg});var hf={};qe(hf,{default:()=>hg});import{basename as ug}from"path";var dg,hg;var mf=xe(()=>{je();Bn();Ye();pn();gt();dg={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 Le(),r=await se.list(n),i=Ht(r,t);try{Ut(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let s=De(),c=_t(s);if(c.enabled&&ds()){let a=i.branch??ug(i.path),d=Dn(a,c.prefix);if(await mn(d))try{await Ko(d),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){Qe(n)}}},hg=dg});async function pf(e,t,n,r){let i=e.filter((p)=>!p.isMain),s=i.filter((p)=>In(p.path)),c=new Set(s.map((p)=>p.path)),a=[];if(t.autoCleanMerged){let p=i.filter((b)=>!c.has(b.path)&&b.branch);a=(await Xt(p,10,async(b)=>({wt:b,isMerged:await se.isMergedInto(b.branch,n,r)}))).filter((b)=>b.isMerged&&!b.wt.isDirty).map((b)=>b.wt)}let d=[];if(t.staleAfterDays&&t.staleAfterDays>0){let p=new Date,m=i.filter((D)=>!c.has(D.path));d=(await Xt(m,10,async(D)=>{let T=await se.getWorktreeLastActivity(D.path),v=T?Math.floor((p.getTime()-T.getTime())/86400000):1/0;return{wt:D,lastActivity:T,daysSince:v}})).filter((D)=>D.daysSince>=t.staleAfterDays).map((D)=>({worktree:D.wt,lastActivity:D.lastActivity,daysSinceActivity:D.daysSince===1/0?-1:D.daysSince}))}let h=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:d,pinProtected:s,overLimit:h,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function gf(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 r=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${r}`)}}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 xf=xe(()=>{je();Dr()});var bf={};qe(bf,{default:()=>pg});var mg,pg;var wf=xe(()=>{je();Ye();xf();Dr();gt();mg={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 r=await Le(),i=await se.list(r),c=(i.find((p)=>p.isMain)??i[0])?.branch??"main",a=i.filter((p)=>{if(p.isMain)return!1;if(In(p.path))return console.log(` Skipping (pinned): ${p.branch}`),!1;if(!p.branch)return!1;return!0}),d=await Xt(a,10,async(p)=>{let[m,b]=await Promise.all([se.isMergedInto(p.branch,c,r),se.isDirty(p.path)]);return{wt:p,merged:m,dirty:b}}),h=[];for(let{wt:p,merged:m,dirty:b}of d){if(!m)continue;if(b){console.log(` Skipping (dirty): ${p.branch}`);continue}h.push(p)}if(h.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let p of h)console.log(` ${p.branch} (${p.path})`)}if(!t&&h.length>0){if(!n){if(!await Tn(`
|
|
27
|
+
Remove ${h.length} worktree(s)? [y/N] `))console.log("Cancelled."),process.exit(0)}for(let p of h)await se.remove(p.path,{force:!1},r),console.log(` Removed: ${p.branch}`)}if(!t)await se.prune(r),console.log("Pruned stale worktree entries.");if(e.stale){let p=De();if(p.lifecycle){let m=await pf(i,p.lifecycle,c,r);console.log(),console.log(gf(m))}else console.log(`
|
|
28
|
+
No lifecycle config found. Add 'lifecycle' to your config to enable stale detection.`)}process.exit(0)}catch(r){Qe(r)}}},pg=mg});import{existsSync as gg,mkdirSync as xg,readFileSync as bg,writeFileSync as wg}from"fs";import{dirname as vg}from"path";function vf(){let e=yt();try{return De(e)}catch{if(!gg(e))throw Error("Failed to load config");let t=bg(e,"utf-8");return JSON.parse(t)}}function yf(e){let t=yt(),n=vg(t);xg(n,{recursive:!0,mode:448});let r=`${JSON.stringify(e,null,2)}
|
|
29
|
+
`;try{_n(t,r)}catch{wg(t,r,{encoding:"utf-8",mode:384})}}function Ms(e){return Object.keys(e.profiles??{})}function $f(e){let t=vf();yf({...t,activeProfile:e})}function Cf(e){return e.activeProfile??null}function Sf(e){let t=vf(),n={...t.profiles??{}};delete n[e],yf({...t,profiles:n,activeProfile:t.activeProfile===e?void 0:t.activeProfile})}var Pf=xe(()=>{Ye()});var Ef={};qe(Ef,{default:()=>Sg});import{spawnSync as yg}from"child_process";import{readFileSync as $g}from"fs";var Cg,Sg;var Rf=xe(()=>{Ye();Pf();Cg={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=yt();if(e.init){let n=jt();console.log(`Config initialized: ${n}`),process.exit(0)}if(e.path)console.log(t),process.exit(0);if(e.show){try{let n=De();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";jt();let r=yg(n,[t],{stdio:"inherit"});process.exit(r.status??0)}if(e.validate)try{let n=$g(t,"utf-8"),r;try{r=JSON.parse(n)}catch{console.error(`Error: invalid JSON in config file: ${t}`),process.exit(1)}let i=Qn(r);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=De(),r=Ms(n),i=Cf(n);for(let s of r)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=De(),r=e.profile;if(!Ms(n).includes(r))console.error(`Error: profile '${r}' does not exist.`),process.exit(1);$f(r)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.delete)Sf(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)}},Sg=Cg});var kf={};qe(kf,{default:()=>Eg});var Pg,Eg;var Of=xe(()=>{ys();Pg={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 Fr(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
|
|
26
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 r=n.checks.filter((s)=>s.status==="warn").length,i=n.checks.filter((s)=>s.status==="fail").length;if(n.healthy)console.log(`
|
|
27
31
|
All checks passed.`);else{let s=[];if(i>0)s.push(`${i} error(s)`);if(r>0)s.push(`${r} warning(s)`);console.log(`
|
|
28
32
|
${s.join(", ")} found.`)}if(e.fix){if(n.healthy)console.log(`
|
|
29
33
|
Nothing to fix.`),process.exit(0);console.log(`
|
|
30
34
|
Running auto-fix...
|
|
31
|
-
`);let s=await
|
|
32
|
-
Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await
|
|
35
|
+
`);let s=await Zo(t);if(s.length===0)console.log("No auto-fixable issues found.");else{for(let h of s){let p=h.success?"\u2713":"\u2717",m=h.detail?` (${h.detail})`:"";console.log(`${p} ${h.action}${m}`)}let a=s.filter((h)=>h.success).length,d=s.filter((h)=>!h.success).length;console.log(`
|
|
36
|
+
Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await Fr(t);if(c.healthy)console.log("All checks now pass.");process.exit(c.healthy?0:1)}process.exit(n.healthy?0:1)}},Eg=Pg});var Df={};qe(Df,{default:()=>Ag});function Rg(e){if(e?.includes("fish"))return"fish";if(e?.includes("bash"))return"bash";return"zsh"}function Mf(){return`copse() {
|
|
33
37
|
if [ "$1" = "switch" ] || [ "$1" = "sw" ]; then
|
|
34
38
|
local output
|
|
35
39
|
output=$(command copse "$@" 2>/dev/null)
|
|
@@ -47,7 +51,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await kr(t);if(c.healthy)c
|
|
|
47
51
|
else
|
|
48
52
|
command copse "$@"
|
|
49
53
|
fi
|
|
50
|
-
}`}function
|
|
54
|
+
}`}function Ff(){return`function copse
|
|
51
55
|
if test "$argv[1]" = "switch"; or test "$argv[1]" = "sw"
|
|
52
56
|
set output (command copse $argv 2>/dev/null)
|
|
53
57
|
set status_code $status
|
|
@@ -64,7 +68,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await kr(t);if(c.healthy)c
|
|
|
64
68
|
else
|
|
65
69
|
command copse $argv
|
|
66
70
|
end
|
|
67
|
-
end`}function
|
|
71
|
+
end`}function kg(){return`_copse_completions() {
|
|
68
72
|
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
69
73
|
local prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
70
74
|
local commands="add list remove switch clean config doctor pin log archive rename clone import exec diff open status shell-init"
|
|
@@ -88,7 +92,7 @@ end`}function Rg(){return`_copse_completions() {
|
|
|
88
92
|
;;
|
|
89
93
|
esac
|
|
90
94
|
}
|
|
91
|
-
complete -F _copse_completions copse`}function
|
|
95
|
+
complete -F _copse_completions copse`}function Og(){return`_copse() {
|
|
92
96
|
local -a commands
|
|
93
97
|
commands=(
|
|
94
98
|
'add:Add a new worktree'
|
|
@@ -125,7 +129,7 @@ complete -F _copse_completions copse`}function kg(){return`_copse() {
|
|
|
125
129
|
esac
|
|
126
130
|
fi
|
|
127
131
|
}
|
|
128
|
-
compdef _copse copse`}function
|
|
132
|
+
compdef _copse copse`}function Mg(){return`complete -c copse -f
|
|
129
133
|
complete -c copse -n '__fish_use_subcommand' -a 'add' -d 'Add a new worktree'
|
|
130
134
|
complete -c copse -n '__fish_use_subcommand' -a 'list' -d 'List worktrees'
|
|
131
135
|
complete -c copse -n '__fish_use_subcommand' -a 'remove' -d 'Remove a worktree'
|
|
@@ -143,29 +147,29 @@ complete -c copse -n '__fish_use_subcommand' -a 'exec' -d 'Run command'
|
|
|
143
147
|
complete -c copse -n '__fish_use_subcommand' -a 'diff' -d 'Show diff'
|
|
144
148
|
complete -c copse -n '__fish_use_subcommand' -a 'open' -d 'Open in editor'
|
|
145
149
|
complete -c copse -n '__fish_use_subcommand' -a 'status' -d 'Show status'
|
|
146
|
-
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function
|
|
147
|
-
`+c),process.exit(0)}if(i==="fish")console.log(
|
|
148
|
-
`);let c=async(h)=>{let p=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}}),[m,b,
|
|
149
|
-
`))console.log(` ${
|
|
150
|
-
`))console.log(` ${
|
|
151
|
-
`);
|
|
152
|
-
`);for(let b of m){let
|
|
153
|
-
Cloned: ${t} \u2192 ${i}`),process.exit(0)}},ax
|
|
154
|
-
`);for(let s of r){let c=i.find((m)=>{let b=m.branch??
|
|
155
|
-
Killed ${i} session${i!==1?"s":""}.`)}var
|
|
156
|
-
`)}function
|
|
157
|
-
`)}function
|
|
158
|
-
`))}let t=
|
|
159
|
-
`)}function $u(e){let t=bx(e),n=Fr(vu(t),"references"),r=Px(),i=Cx(),s=vu(t);if(!Ds(s))wu(s,{recursive:!0});if(!Ds(n))wu(n,{recursive:!0});let c=Ds(t);bu(t,r,"utf-8");for(let[a,d]of i.entries())bu(Fr(n,a),d,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var As,vx="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.",yx,yu;var Pu=we(()=>{As=["claude-code","codex","opencode"];yx=[{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."}],yu=[{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"}],examples:[["Create a feature branch worktree","copse add feature/auth --base 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."],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","`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 Cu={};qe(Cu,{default:()=>kx});import{dirname as Ex}from"path";var Rx,kx;var Su=we(()=>{Ye();Pu();Rx={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${As.join(", ")})`,choices:As}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=jt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=$u(t),r=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${r} \u2192 ${Ex(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)}}},kx=Rx});import{notStrictEqual as Zu,strictEqual as Qu}from"assert";var Mu={right:Au,center:Wu};class Ns{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(`
|
|
160
|
-
`).map((r)=>r.split("\t")),n=0;return t.forEach((r)=>{if(r.length>1&&
|
|
161
|
-
`)}rowToString(e,t){return this.rasterize(e).forEach((n,r)=>{let i="";n.forEach((s,c)=>{let{width:a}=e[c],d=this.negatePadding(e[c]),h=s;if(d>
|
|
150
|
+
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function Fg(e){switch(e){case"bash":return kg();case"zsh":return Og();case"fish":return Mg()}}var Dg,Ag;var Af=xe(()=>{Dg={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,r=e.completions,i=n??r??Rg(process.env.SHELL);if(t){let s=i==="fish"?Ff():Mf(),c=Fg(i);console.log(s+`
|
|
151
|
+
`+c),process.exit(0)}if(i==="fish")console.log(Ff()),process.exit(0);console.log(Mf()),process.exit(0)}},Ag=Dg});var If={};qe(If,{default:()=>Ig});import{resolve as Qo}from"path";function Wf(e,t){if(e.length<=t)return e;return e.slice(0,t-3)+"..."}var Wg,Ig;var Tf=xe(()=>{je();qt();Ye();Yt();gt();Wg={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=De(),d=await Le(),h=kn(a),p=new Set([Qo(d)]),m=[d];for(let b of h){let D=Qo(b);if(!p.has(D))p.add(D),m.push(b)}t=await se.listAll(m)}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[d,h,p,m]=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(Kt(a.path))]);return{...a,aheadBehind:d,lastCommit:h,dirtyCount:p,focus:m}}));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);let r=Qo(process.cwd()),i=e.all&&new Set(n.map((a)=>a.repoName)).size>1,s=n.map((a)=>{let h=(Qo(a.path)===r?"* ":" ")+(a.branch??"(detached)"),p;if(a.isLocked)p="locked";else if(a.dirtyCount>0)p=`${a.dirtyCount} dirty`;else p="clean";let m=[];if(a.aheadBehind.ahead>0)m.push(`+${a.aheadBehind.ahead}`);if(a.aheadBehind.behind>0)m.push(`-${a.aheadBehind.behind}`);let b=m.length>0?m.join(" "):"=",D=a.lastCommit?`${a.lastCommit.relativeDate} ${Wf(a.lastCommit.message,30)}`:"\u2014",T=a.focus&&a.focus.length>0?Wf(a.focus.join(", "),30):"\u2014";return{repo:a.repoName,branch:h,dirty:p,sync:b,lastCommit:D,focus:T}}),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)}`,d=`${"-".repeat(c.repo)} ${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(d);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)}`,d=`${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(d);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 St)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)}}};Ig=Wg});var jf={};qe(jf,{default:()=>Ng});import{existsSync as Bf}from"fs";function Tg(e){if(e)return e;let t=process.env.VISUAL||process.env.EDITOR;if(t)return t;for(let n of Nf)try{if(Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return n}catch{continue}return null}var Nf,Bg,Ng;var Lf=xe(()=>{je();Yt();gt();Nf=["code","cursor","vim","nvim","emacs","nano","subl","zed","idea","webstorm"];Bg={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 Nf)try{let r=Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"});if(r.exitCode===0){let i=new TextDecoder().decode(r.stdout).trim();console.log(` ${n}: ${i}`)}}catch{}process.exit(0)}try{let t=e["branch-or-path"],n=e.focus,r=Boolean(e.root),i;if(!t)i=process.cwd();else{let p=await Le(),m=await se.list(p);i=Ht(m,t).path}if(!Bf(i))console.error(`Error: worktree path does not exist: ${i}`),process.exit(1);let s;try{s=Vo(i,{explicitFocus:n,forceRoot:r})}catch(p){if(p instanceof Lo)console.error(`Error: ${p.message}`),process.exit(1);throw p}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,!Bf(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=Tg(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 d=s.kind==="single"?` [focus: ${s.focus}]`:"";console.log(`Opening ${c} with ${a}${d}...`),await Bun.spawn([a,c],{stdout:"inherit",stderr:"inherit",stdin:"inherit"}).exited,process.exit(0)}catch(t){Qe(t)}}},Ng=Bg});var Kf={};qe(Kf,{default:()=>Lg});import{resolve as Vf}from"path";var jg,Lg;var Gf=xe(()=>{je();Ye();gt();jg={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,r=!!e.json;try{let i;if(e.all){let h=De(),p=await Le(),m=kn(h),b=new Set([Vf(p)]),D=[p];for(let T of m){let v=Vf(T);if(!b.has(v))b.add(v),D.push(T)}i=await se.listAll(D)}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 Xt(s,10,async(p)=>{if(!p.branch)return{wt:p,behind:!1};let m=await se.getAheadBehind(p.branch,p.path);return{wt:p,behind:m.behind>0}})).filter((p)=>p.behind).map((p)=>p.wt);if(s.length===0)console.log("No matching worktrees found."),process.exit(0);if(!r)console.log(`Running '${t}' in ${s.length} worktree(s)...
|
|
152
|
+
`);let c=async(h)=>{let p=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}}),[m,b,D]=await Promise.all([new Response(p.stdout).text(),new Response(p.stderr).text(),p.exited]);return{branch:h.branch??"(detached)",path:h.path,exitCode:D,stdout:m.trim(),stderr:b.trim()}},a;if(n)a=await Xt(s,10,c);else{a=[];for(let h of s)a.push(await c(h))}if(r)console.log(JSON.stringify(a,null,2));else{for(let m of a){let b=m.exitCode===0?"\u2713":"\u2717";if(console.log(`${b} ${m.branch} (exit ${m.exitCode})`),m.stdout)for(let D of m.stdout.split(`
|
|
153
|
+
`))console.log(` ${D}`);if(m.stderr)for(let D of m.stderr.split(`
|
|
154
|
+
`))console.log(` ${D}`);console.log()}let h=a.filter((m)=>m.exitCode===0).length,p=a.length-h;console.log(`Done: ${h} passed, ${p} failed`)}let d=a.some((h)=>h.exitCode!==0);process.exit(d?1:0)}catch(i){Qe(i)}}},Lg=jg});var Hf={};qe(Hf,{default:()=>Kg});var Vg,Kg;var Uf=xe(()=>{je();gt();Vg={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",r=!!e.stat,i=!!e["name-only"];try{let s=await Le(),c=await se.list(s),a=(m)=>{return c.find((D)=>D.branch===m)?.branch??m},d=a(t),h=a(n),p=await se.diffBetween(d,h,{stat:r,nameOnly:i},s);if(!p)console.log(`No differences between ${t} and ${n==="HEAD"?"current HEAD":n}`);else console.log(p);process.exit(0)}catch(s){Qe(s)}}},Kg=Vg});var Jf={};qe(Jf,{default:()=>Hg});var Gg,Hg;var zf=xe(()=>{je();Dr();gt();Gg={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=Ps(n).map((b)=>({...b,pin:io(b.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 d=Math.max(6,...a.map((b)=>(b.branch??"(detached)").length)),h=Math.max(4,...a.map((b)=>b.path.length)),p=Math.max(6,...a.map((b)=>(b.pin?.reason??"\u2014").length)),m=Math.max(9,...a.map((b)=>(b.pin?.pinnedAt??"\u2014").length));console.log(`${"Branch".padEnd(d)} ${"Path".padEnd(h)} ${"Reason".padEnd(p)} ${"Pinned At".padEnd(m)}`),console.log(`${"-".repeat(d)} ${"-".repeat(h)} ${"-".repeat(p)} ${"-".repeat(m)}`);for(let b of a)console.log(`${(b.branch??"(detached)").padEnd(d)} ${b.path.padEnd(h)} ${(b.pin?.reason??"\u2014").padEnd(p)} ${(b.pin?.pinnedAt??"\u2014").padEnd(m)}`);process.exit(0)}let r=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(r){if(!io(s.path))console.warn(`Warning: worktree is not pinned: ${s.path}`),process.exit(0);Ss(s.path),console.log(`Unpinned worktree: ${s.path}`),process.exit(0)}if(io(s.path))console.warn(`Warning: worktree is already pinned: ${s.path}`),process.exit(0);let c=typeof t.reason==="string"?t.reason:void 0;Cs(s.path,c),console.log(`Pinned worktree: ${s.path}`),process.exit(0)}catch(t){Qe(t)}}},Hg=Gg});var qf={};qe(qf,{default:()=>zg});function Ug(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 Jg,zg;var Xf=xe(()=>{Bn();gt();Jg={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 Le();if(e.clear){if(!await Tn("Clear activity log? [y/N] "))console.log("Cancelled."),process.exit(0);of(t),console.log("Activity log cleared."),process.exit(0)}let n=typeof e.limit==="number"?e.limit:20,r=rf(t,{limit:n});if(e.json)console.log(JSON.stringify(r,null,2)),process.exit(0);for(let i of r){let s=Ug(i.event),c=i.branch??"(unknown)",a=i.details?Object.entries(i.details).map(([d,h])=>`${d}=${h}`).join(" "):"";console.log(`[${i.timestamp}] ${s} ${c}${a?` (${a})`:""}`)}process.exit(0)}catch(t){Qe(t)}}},zg=Jg});import{existsSync as Qf,mkdirSync as qg,readFileSync as _f,writeFileSync as Yf}from"fs";import{homedir as Xg}from"os";import{basename as Yg,join as _o}from"path";function Zg(e){let t=no(e),n=_o(t,"HEAD");if(!Qf(n))return null;let i=_f(n,"utf-8").trim().match(/^ref:\s+(.+)$/);if(!i)return null;return i[1]?.replace(/^refs\/heads\//,"")??null}async function Zf(e,t){return se.exec(e,t)}function eu(){let e=Bun.env.HOME??Xg();return _o(e,".copse","archives")}async function tu(e,t){let n=Yg(t),r=await se.getBranchForWorktree(e)??Zg(e)??"detached-head",i=r.replaceAll("/","-"),s=new Date().toISOString(),c=s.replaceAll(":","-"),a=_o(eu(),n);qg(a,{recursive:!0});let d=_o(a,`${i}-${c}`),h=`${d}.patch`,p=`${d}.json`;try{let[m,b,D]=await Promise.all([Zf(["diff"],e),Zf(["format-patch","-5","HEAD","--stdout"],e),se.getLastCommit(e)]),T=["# COP archive",`# repo: ${n}`,`# branch: ${r}`,`# archivedAt: ${s}`,"","# Uncommitted diff",m||"# (no uncommitted changes)","","# Recent commits (git format-patch -5 HEAD --stdout)",b||"# (no recent commits)"].join(`
|
|
155
|
+
`);Yf(h,T,"utf-8");let v={branch:r,repo:n,archivedAt:s,patchPath:h,commitHash:D?.hash??"",message:D?.message??""};return Yf(p,JSON.stringify(v,null,2),"utf-8"),v}catch(m){let b=m instanceof Error?m.message:"Unknown archive error";throw new ss(`Failed to archive worktree: ${b}`,r,"archive_failed")}}async function nu(e){let t=eu();if(!Qf(t))return[];let n=e?`${e}/*.json`:"**/*.json",r=new Bun.Glob(n),i=[];for await(let s of r.scan({cwd:t,absolute:!0}))try{let c=_f(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 ru=xe(()=>{je();qt();Fn()});var ou={};qe(ou,{default:()=>ex});import{basename as Qg}from"path";var _g,ex;var iu=xe(()=>{je();Bn();ru();Ye();bn();gt();_g={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,r=!!e.keep,i=!!e.list,s=!!e.json;try{if(i){let m=await nu();if(s)console.log(JSON.stringify(m,null,2));else if(m.length===0)console.log("No archives found.");else{console.log(`Archives:
|
|
156
|
+
`);for(let b of m){let D=new Date(b.archivedAt).toLocaleString();console.log(` ${b.repo}/${b.branch}`),console.log(` Date: ${D}`),console.log(` Commit: ${b.commitHash.slice(0,8)} ${b.message}`),console.log(` Patch: ${b.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 Le(),a=await se.list(c),d=Ht(a,t);if(d.isMain)console.error("Error: cannot archive the main worktree"),process.exit(1);let h=r?"Archive":"Archive and remove";if(!n){if(!await Tn(`${h} worktree '${d.branch??Qg(d.path)}'? [y/N] `))console.log("Cancelled."),process.exit(0)}let p=await tu(d.path,c);console.log(`Archived: ${p.patchPath}`);try{Ut(c,{timestamp:new Date().toISOString(),event:"archive",branch:p.branch,path:p.patchPath})}catch{}if(!r){let m=De(),b=bt(m,c);if(b.postRemove.length>0)console.log("Running postRemove hooks..."),await pt(b.postRemove,{cwd:d.path,env:{COPSE_BRANCH:d.branch??"",COPSE_WORKTREE_PATH:d.path,COPSE_REPO_PATH:c},onOutput:(D)=>console.log(` ${D}`)}).catch((D)=>console.warn(`Warning: postRemove hook failed: ${D.message}`));await se.remove(d.path,{force:!1},c),ft(),console.log(`Removed worktree: ${d.path}`)}process.exit(0)}catch(c){Qe(c)}}},ex=_g});var su={};qe(su,{default:()=>ix});import{dirname as tx,basename as nx,join as rx}from"path";var ox,ix;var cu=xe(()=>{je();Bn();gt();ox={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,r=!!e["move-path"];try{let i=await Le(),s=await se.list(i),c=Ht(s,t);if(c.isMain)console.error("Error: cannot rename the main worktree branch"),process.exit(1);if(s.find((d)=>d.branch===n))console.error(`Error: branch '${n}' already exists`),process.exit(1);if(await se.exec(["branch","-m",t,n],i),ft(),r){let d=n.replace(/\//g,"-"),h=tx(c.path),p=nx(c.path),m=t.replace(/\//g,"-"),b=p.replace(m,d),D=rx(h,b);if(D!==c.path)await se.move(c.path,D,i),ft(),console.log(`Moved worktree: ${c.path} \u2192 ${D}`)}console.log(`Renamed branch: ${t} \u2192 ${n}`);try{Ut(i,{timestamp:new Date().toISOString(),event:"rename",branch:n,details:{oldBranch:t}})}catch{}process.exit(0)}catch(i){Qe(i)}}},ix=ox});var au={};qe(au,{default:()=>lx});import{basename as sx,resolve as cx}from"path";var ax,lx;var lu=xe(()=>{je();qt();Ye();bn();ax={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,r=e["init-config"],i=e.path;if(!i)try{let s=new URL(t);i=sx(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 St)console.error(`Error: ${s.stderr||s.message}`);else console.error(`Error: ${s.message}`);process.exit(1)}if(r)try{let s=jt();console.log(` \u2713 Config initialized: ${s}`)}catch(s){console.warn(` \u26A0 Could not initialize config: ${s.message}`)}if(n)try{let s=De(),c=Co(s,n);if(!c){let p=Object.keys(s.templates??{});if(console.error(`Error: template '${n}' not found.`),p.length>0)console.error(`Available templates: ${p.join(", ")}`);else console.error("No templates configured. Add templates to your config file.");process.exit(1)}console.log(` Using template '${n}'`);let a=cx(i),d=bt(s,a),h=So(d,c);if(h.postCreate.length>0)console.log(" Running postCreate hooks..."),await pt(h.postCreate,{cwd:a,env:{COPSE_REPO_PATH:a},onOutput:(p)=>console.log(` ${p}`)}),console.log(" \u2713 Hooks completed");console.log(` \u2713 Template '${n}' applied`)}catch(s){if(s instanceof Er)console.error(`Error: hook timed out: ${s.command}`);else if(s instanceof Pr){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)}},lx=ax});import{existsSync as fu,readFileSync as uu,statSync as ei}from"fs";import{basename as fx,join as ti,resolve as Ar}from"path";async function Fs(e,t){return se.exec(e,t)}function ux(e){let t=ti(e,"HEAD");if(!fu(t))return null;let r=uu(t,"utf-8").trim().match(/^ref:\s+refs\/heads\/(.+)$/);return r?r[1]:null}function du(e){let t=Ar(e),n=ti(t,".git");if(!ei(n,{throwIfNoEntry:!1}))throw Error(`Missing .git at ${n}`);return no(t)}function Ds(e){let t=Ar(e),n=ei(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 r=ti(t,".git"),i=ei(r,{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=du(t)}catch{return{valid:!1,reason:`Cannot resolve gitdir from .git file: ${t}`}}if(!ei(s,{throwIfNoEntry:!1})?.isDirectory())return{valid:!1,reason:`Resolved gitdir does not exist: ${s}`};let a=ux(s);if(!a)return{valid:!1,reason:`Cannot resolve branch name from HEAD: ${t}`};return{valid:!0,branch:a}}async function hu(e,t){let n=Ar(e),r=Ds(n);if(!r.valid)throw new to(`Cannot import worktree: ${r.reason??"invalid target"}`,n,r.reason??"invalid target");let[i,s,c]=await Promise.all([Fs(["rev-parse","HEAD"],n),Fs(["status","--porcelain"],n),Fs(["rev-parse","--git-common-dir"],n)]),a=Ar(n,c),d=a.endsWith("/.git")||a.endsWith("\\.git")?a.slice(0,-5):a,h=fx(d),p=Ar(n)===Ar(d),m=du(n),b=ti(m,"locked"),D=fu(b),T=D?uu(b,"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(() => (Dr(),jl))).writePin(n)}catch(v){console.warn(`Warning: failed to pin worktree: ${v.message}`)}return{path:n,branch:r.branch??null,head:i,isMain:p,isDirty:s.length>0,isLocked:D,lockReason:T,repoName:h,repoPath:d}}var mu=xe(()=>{je();Yt();qt();Fn()});var pu={};qe(pu,{default:()=>mx});import{resolve as dx}from"path";var hx,mx;var gu=xe(()=>{mu();je();Bn();qt();gt();hx={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=dx(e.path),n=Ds(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 hu(t,{focus:i,pin:s});ft();let a=c.branch??n.branch??"unknown",d=c.repoPath??await Le();console.log(`Imported worktree: ${a} at ${c.path}`);try{Ut(d,{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 to)console.error(`Error: ${c.reason}`);else console.error(`Error: ${c.message}`);process.exit(1)}}},mx=hx});var xu={};qe(xu,{default:()=>bx});import{basename as ni}from"path";async function gx(e,t,n){let[r,i]=await Promise.all([ms(t),se.list(e)]);if(n){let s=r.map((c)=>{let a=i.find((h)=>{let p=h.branch??ni(h.path);return Dn(p,t)===c.name}),d=a?Gt(a.path):null;return{...c,branch:a?.branch??null,worktreePath:a?.path??null,layout:d?.layout??null}});console.log(JSON.stringify(s,null,2));return}if(r.length===0){console.log("No active copse sessions.");return}console.log(`Active sessions (${r.length}):
|
|
158
|
+
`);for(let s of r){let c=i.find((m)=>{let b=m.branch??ni(m.path);return Dn(b,t)===s.name}),a=c?Gt(c.path):null,d=s.attached?" (attached)":"",h=a?.layout?` [${a.layout}]`:"",p=c?.branch?` ${c.branch}`:"";console.log(` ${s.name}${p} ${s.windows} windows${h}${d}`)}}async function xx(e,t){let[n,r]=await Promise.all([ms(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=r.find((a)=>{let d=Gt(a.path),h=a.branch??ni(a.path);return d?.name===s.name||Dn(h,t)===s.name});if(await hs(s.name),c)us(c.path);i++,console.log(` \u2713 Killed ${s.name}`)}console.log(`
|
|
159
|
+
Killed ${i} session${i!==1?"s":""}.`)}var px,bx;var bu=xe(()=>{je();Ye();pn();gt();px={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,r=!!e.kill,i=!!e["kill-all"],s=e.layout,c=!!e.json;if(!await An())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 Le(),d=De(),h=_t(d);if(n)await gx(a,h.prefix,c),process.exit(0);if(i)await xx(a,h.prefix),process.exit(0);if(!t)console.error("Error: specify a branch or worktree path, or use --list."),process.exit(1);let p=await se.list(a),m=Ht(p,t),b=m.branch??ni(m.path);if(r){if(await Go(b,m.path,h.prefix))console.log(`Killed session for '${b}'`);else console.log(`No active session for '${b}'`);process.exit(0)}let D=fr(d,s),T=await vr(b,m.path,{layout:D,prefix:h.prefix,attach:!0,layoutName:s??h.defaultLayout});console.log(`Session: ${T}`),process.exit(0)}catch(a){Qe(a)}}};bx=px});import{existsSync as As,mkdirSync as wu,writeFileSync as vu}from"fs";import{dirname as yu,join as Wr}from"path";function wx(e){let t=process.env.HOME||process.env.USERPROFILE||"~";switch(e){case"claude-code":return Wr(t,".claude","skills","copse");case"codex":return Wr(t,".agents","skills","copse");case"opencode":return Wr(t,".config","opencode","skill","copse")}}function vx(e){return Wr(wx(e),"SKILL.md")}function Cx(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 Sx(){let e=$x.map((n)=>`| \`${n.command}\` | ${n.aliases} | ${n.description} |`),t=$u.map((n)=>`- [\`copse ${n.command}\`](references/${n.command}.md)`);return["---","name: copse",`description: ${yx}`,"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 Px(){let e=new Map;for(let n of $u){let r=[`# copse ${n.command}`,"",n.summary,"","## Synopsis","","```",n.synopsis,"```","","## Options","",Cx(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`,r.join(`
|
|
162
|
+
`))}let t=Ex();return e.set("config-schema.md",t),e}function Ex(){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 Cu(e){let t=vx(e),n=Wr(yu(t),"references"),r=Sx(),i=Px(),s=yu(t);if(!As(s))wu(s,{recursive:!0});if(!As(n))wu(n,{recursive:!0});let c=As(t);vu(t,r,"utf-8");for(let[a,d]of i.entries())vu(Wr(n,a),d,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Ws,yx="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.",$x,$u;var Su=xe(()=>{Ws=["claude-code","codex","opencode"];$x=[{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."}],$u=[{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 Pu={};qe(Pu,{default:()=>Ox});import{dirname as Rx}from"path";var kx,Ox;var Eu=xe(()=>{Ye();Su();kx={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Ws.join(", ")})`,choices:Ws}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=jt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Cu(t),r=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${r} \u2192 ${Rx(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)}}},Ox=kx});import{notStrictEqual as Qu,strictEqual as _u}from"assert";var Fu={right:Wu,center:Iu};class js{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((r)=>r.split("\t")),n=0;return t.forEach((r)=>{if(r.length>1&&Pt.stringWidth(r[0])>n)n=Math.min(Math.floor(this.width*0.5),Pt.stringWidth(r[0]))}),t.forEach((r)=>{this.div(...r.map((i,s)=>{return{text:i.trim(),padding:this.measurePadding(i),width:s===0&&r.length>1?n:void 0}}))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=Pt.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,r)=>{let i="";n.forEach((s,c)=>{let{width:a}=e[c],d=this.negatePadding(e[c]),h=s;if(d>Pt.stringWidth(s))h+=" ".repeat(d-Pt.stringWidth(s));if(e[c].align&&e[c].align!=="left"&&this.wrap){let m=Fu[e[c].align];if(h=m(h,d),Pt.stringWidth(h)<d)h+=" ".repeat((a||0)-Pt.stringWidth(h)-1)}let p=e[c].padding||[0,0,0,0];if(p[3])i+=" ".repeat(p[3]);if(i+=Ns(e[c],h,"| "),i+=h,i+=Ns(e[c],h," |"),p[1])i+=" ".repeat(p[1]);if(r===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(/^ */),r=n?n[0].length:0,i=t.text,s=Pt.stringWidth(i.trimRight());if(!t.span)return e;if(!this.wrap)return t.hidden=!0,i+e;if(r<s)return e;return t.hidden=!0,i.trimRight()+" ".repeat(r-s)+e.trimLeft()}rasterize(e){let t=[],n=this.columnWidths(e),r;return e.forEach((i,s)=>{if(i.width=n[s],this.wrap)r=Pt.wrap(i.text,this.negatePadding(i),{hard:!0}).split(`
|
|
162
166
|
`);else r=i.text.split(`
|
|
163
|
-
`);if(i.border)r.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),r.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)r.unshift(...Array(i.padding[0]||0).fill("")),r.push(...Array(i.padding[2]||0).fill(""));r.forEach((c,a)=>{if(!t[a])t.push([]);let d=t[a];for(let h=0;h<s;h++)if(d[h]===void 0)d.push("");d.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||
|
|
164
|
-
`;i+=e.charAt(s)}if(n&&r)i=`${n}${i}${r}`;return i}function ri(e){return js(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ni,wrap:Vs})}import{dirname as Ks,resolve as Gs}from"path";import{readdirSync as Iu,statSync as Tu}from"fs";function oi(e,t){let n=Gs(".",e),r;if(!Tu(n).isDirectory())n=Ks(n);while(!0){if(r=t(n,Iu(n)),r)return Gs(n,r);if(n=Ks(r=n),r===n)break}}import{inspect as _u}from"util";import{readFileSync as ed}from"fs";import{fileURLToPath as td}from"url";import{format as ju}from"util";import{normalize as Lu,resolve as Vu}from"path";function Bn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",r=!1,i=e.match(/^-+/);for(let s=i?i[0].length:0;s<e.length;s++){let c=e.charAt(s);if(r)r=!1,c=c.toUpperCase();if(s!==0&&(c==="-"||c==="_"))r=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function oo(e,t){let n=e.toLowerCase();t=t||"-";let r="";for(let i=0;i<e.length;i++){let s=n.charAt(i),c=e.charAt(i);if(s!==c&&i>0)r+=`${t}${n.charAt(i)}`;else r+=c}return r}function io(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 Hs(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,r=null,i=null,s=[];for(let c=0;c<e.length;c++){if(n=r,r=e.charAt(c),r===" "&&!i){if(n!==" ")t++;continue}if(r===i)i=null;else if((r==="'"||r==='"')&&!i)i=r;if(!s[t])s[t]="";s[t]+=r}return s}var At;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(At||(At={}));var sn;class si{constructor(e){sn=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),r=Hs(e),i=typeof e==="string",s=Bu(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),d=n.configObjects||[],h=n.envPrefix,p=c["populate--"],m=p?"--":"_",b=Object.create(null),A=Object.create(null),F=n.__||sn.format,v={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:[]},S=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,D=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(u){let x=typeof u==="object"?u.key:u,k=Object.keys(u).map(function(R){return{boolean:"bools",string:"strings",number:"numbers"}[R]}).filter(Boolean).pop();if(k)v[k][x]=!0;v.arrays[x]=!0,v.keys.push(x)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(u){v.bools[u]=!0,v.keys.push(u)}),[].concat(n.string||[]).filter(Boolean).forEach(function(u){v.strings[u]=!0,v.keys.push(u)}),[].concat(n.number||[]).filter(Boolean).forEach(function(u){v.numbers[u]=!0,v.keys.push(u)}),[].concat(n.count||[]).filter(Boolean).forEach(function(u){v.counts[u]=!0,v.keys.push(u)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(u){v.normalize[u]=!0,v.keys.push(u)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([u,x])=>{if(typeof x==="number")v.nargs[u]=x,v.keys.push(u)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([u,x])=>{if(typeof x==="function")v.coercions[u]=x,v.keys.push(u)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(u){v.configs[u]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([u,x])=>{if(typeof x==="boolean"||typeof x==="function")v.configs[u]=x})}N(n.key,s,n.default,v.arrays),Object.keys(a).forEach(function(u){(v.aliases[u]||[]).forEach(function(x){a[x]=a[u]})});let M=null;W();let w=[],y=Object.assign(Object.create(null),{_:[]}),P={};for(let u=0;u<r.length;u++){let x=r[u],k=x.replace(/^-{3,}/,"---"),R,C,Q,oe,xe,le;if(x!=="--"&&/^-/.test(x)&&ge(x))K(x);else if(k.match(/^---+(=|$)/)){K(x);continue}else if(x.match(/^--.+=/)||!c["short-option-groups"]&&x.match(/^-.+=/)){if(oe=x.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(I(oe[1],v.arrays))u=G(u,oe[1],r,oe[2]);else if(I(oe[1],v.nargs)!==!1)u=T(u,oe[1],r,oe[2]);else X(oe[1],oe[2],!0)}else if(x.match(D)&&c["boolean-negation"]){if(oe=x.match(D),oe!==null&&Array.isArray(oe)&&oe.length>=2)C=oe[1],X(C,I(C,v.arrays)?[!1]:!1)}else if(x.match(/^--.+/)||!c["short-option-groups"]&&x.match(/^-[^-]+/)){if(oe=x.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],I(C,v.arrays))u=G(u,C,r);else if(I(C,v.nargs)!==!1)u=T(u,C,r);else if(xe=r[u+1],xe!==void 0&&(!xe.match(/^-/)||xe.match(S))&&!I(C,v.bools)&&!I(C,v.counts))X(C,xe),u++;else if(/^(true|false)$/.test(xe))X(C,xe),u++;else X(C,pe(C))}else if(x.match(/^-.\..+=/)){if(oe=x.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)X(oe[1],oe[2])}else if(x.match(/^-.\..+/)&&!x.match(S)){if(xe=r[u+1],oe=x.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],xe!==void 0&&!xe.match(/^-/)&&!I(C,v.bools)&&!I(C,v.counts))X(C,xe),u++;else X(C,pe(C))}else if(x.match(/^-[^-]+/)&&!x.match(S)){Q=x.slice(1,-1).split(""),R=!1;for(let Ie=0;Ie<Q.length;Ie++){if(xe=x.slice(Ie+2),Q[Ie+1]&&Q[Ie+1]==="="){if(le=x.slice(Ie+3),C=Q[Ie],I(C,v.arrays))u=G(u,C,r,le);else if(I(C,v.nargs)!==!1)u=T(u,C,r,le);else X(C,le);R=!0;break}if(xe==="-"){X(Q[Ie],xe);continue}if(/[A-Za-z]/.test(Q[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(xe)&&I(xe,v.bools)===!1){X(Q[Ie],xe),R=!0;break}if(Q[Ie+1]&&Q[Ie+1].match(/\W/)){X(Q[Ie],xe),R=!0;break}else X(Q[Ie],pe(Q[Ie]))}if(C=x.slice(-1)[0],!R&&C!=="-")if(I(C,v.arrays))u=G(u,C,r);else if(I(C,v.nargs)!==!1)u=T(u,C,r);else if(xe=r[u+1],xe!==void 0&&(!/^(-|--)[^-]/.test(xe)||xe.match(S))&&!I(C,v.bools)&&!I(C,v.counts))X(C,xe),u++;else if(/^(true|false)$/.test(xe))X(C,xe),u++;else X(C,pe(C))}else if(x.match(/^-[0-9]$/)&&x.match(S)&&I(x.slice(1),v.bools))C=x.slice(1),X(C,pe(C));else if(x==="--"){w=r.slice(u+1);break}else if(c["halt-at-non-option"]){w=r.slice(u);break}else K(x)}if(_(y,!0),_(y,!1),q(y),he(),E(y,v.aliases,a,!0),me(y),c["set-placeholder-key"])Re(y);if(Object.keys(v.counts).forEach(function(u){if(!O(y,u.split(".")))X(u,0)}),p&&w.length)y[m]=[];if(w.forEach(function(u){y[m].push(u)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(y).filter((u)=>u!=="--"&&u.includes("-")).forEach((u)=>{delete y[u]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((u)=>s[u])).forEach((u)=>{if(c["camel-case-expansion"]&&u.includes("-"))delete y[u.split(".").map((x)=>Bn(x)).join(".")];delete y[u]});function K(u){let x=J("_",u);if(typeof x==="string"||typeof x==="number")y._.push(x)}function T(u,x,k,R){let C,Q=I(x,v.nargs);if(Q=typeof Q!=="number"||isNaN(Q)?1:Q,Q===0){if(!Ee(R))M=Error(F("Argument unexpected for: %s",x));return X(x,pe(x)),u}let oe=Ee(R)?0:1;if(c["nargs-eats-options"]){if(k.length-(u+1)+oe<Q)M=Error(F("Not enough arguments following: %s",x));oe=Q}else{for(C=u+1;C<k.length;C++)if(!k[C].match(/^-[^0-9]/)||k[C].match(S)||ge(k[C]))oe++;else break;if(oe<Q)M=Error(F("Not enough arguments following: %s",x))}let xe=Math.min(oe,Q);if(!Ee(R)&&xe>0)X(x,R),xe--;for(C=u+1;C<xe+u+1;C++)X(x,k[C]);return u+xe}function G(u,x,k,R){let C=[],Q=R||k[u+1],oe=I(x,v.nargs);if(I(x,v.bools)&&!/^(true|false)$/.test(Q))C.push(!0);else if(Ee(Q)||Ee(R)&&/^-/.test(Q)&&!S.test(Q)&&!ge(Q)){if(a[x]!==void 0){let xe=a[x];C=Array.isArray(xe)?xe:[xe]}}else{if(!Ee(R))C.push(U(x,R,!0));for(let xe=u+1;xe<k.length;xe++){if(!c["greedy-arrays"]&&C.length>0||oe&&typeof oe==="number"&&C.length>=oe)break;if(Q=k[xe],/^-/.test(Q)&&!S.test(Q)&&!ge(Q))break;u=xe,C.push(U(x,Q,i))}}if(typeof oe==="number"&&(oe&&C.length<oe||isNaN(oe)&&C.length===0))M=Error(F("Not enough arguments following: %s",x));return X(x,C),u}function X(u,x,k=i){if(/-/.test(u)&&c["camel-case-expansion"]){let Q=u.split(".").map(function(oe){return Bn(oe)}).join(".");H(u,Q)}let R=U(u,x,k),C=u.split(".");if(V(y,C,R),v.aliases[u])v.aliases[u].forEach(function(Q){let oe=Q.split(".");V(y,oe,R)});if(C.length>1&&c["dot-notation"])(v.aliases[C[0]]||[]).forEach(function(Q){let oe=Q.split("."),xe=[].concat(C);if(xe.shift(),oe=oe.concat(xe),!(v.aliases[u]||[]).includes(oe.join(".")))V(y,oe,R)});if(I(u,v.normalize)&&!I(u,v.arrays))[u].concat(v.aliases[u]||[]).forEach(function(oe){Object.defineProperty(P,oe,{enumerable:!0,get(){return x},set(xe){x=typeof xe==="string"?sn.normalize(xe):xe}})})}function H(u,x){if(!(v.aliases[u]&&v.aliases[u].length))v.aliases[u]=[x],b[x]=!0;if(!(v.aliases[x]&&v.aliases[x].length))H(x,u)}function U(u,x,k){if(k)x=Nu(x);if(I(u,v.bools)||I(u,v.counts)){if(typeof x==="string")x=x==="true"}let R=Array.isArray(x)?x.map(function(C){return J(u,C)}):J(u,x);if(I(u,v.counts)&&(Ee(R)||typeof R==="boolean"))R=ii();if(I(u,v.normalize)&&I(u,v.arrays))if(Array.isArray(x))R=x.map((C)=>{return sn.normalize(C)});else R=sn.normalize(x);return R}function J(u,x){if(!c["parse-positional-numbers"]&&u==="_")return x;if(!I(u,v.strings)&&!I(u,v.bools)&&!Array.isArray(x)){if(io(x)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${x}`)))||!Ee(x)&&I(u,v.numbers))x=Number(x)}return x}function q(u){let x=Object.create(null);E(x,v.aliases,a),Object.keys(v.configs).forEach(function(k){let R=u[k]||x[k];if(R)try{let C=null,Q=sn.resolve(sn.cwd(),R),oe=v.configs[k];if(typeof oe==="function"){try{C=oe(Q)}catch(xe){C=xe}if(C instanceof Error){M=C;return}}else C=sn.require(Q);re(C)}catch(C){if(C.name==="PermissionDenied")M=C;else if(u[k])M=Error(F("Invalid JSON config file: %s",R))}})}function re(u,x){Object.keys(u).forEach(function(k){let R=u[k],C=x?x+"."+k:k;if(typeof R==="object"&&R!==null&&!Array.isArray(R)&&c["dot-notation"])re(R,C);else if(!O(y,C.split("."))||I(C,v.arrays)&&c["combine-arrays"])X(C,R)})}function he(){if(typeof d<"u")d.forEach(function(u){re(u)})}function _(u,x){if(typeof h>"u")return;let k=typeof h==="string"?h:"",R=sn.env();Object.keys(R).forEach(function(C){if(k===""||C.lastIndexOf(k,0)===0){let Q=C.split("__").map(function(oe,xe){if(xe===0)oe=oe.substring(k.length);return Bn(oe)});if((x&&v.configs[Q.join(".")]||!x)&&!O(u,Q))X(Q.join("."),R[C])}})}function me(u){let x,k=new Set;Object.keys(u).forEach(function(R){if(!k.has(R)){if(x=I(R,v.coercions),typeof x==="function")try{let C=J(R,x(u[R]));[].concat(v.aliases[R]||[],R).forEach((Q)=>{k.add(Q),u[Q]=C})}catch(C){M=C}}})}function Re(u){return v.keys.forEach((x)=>{if(~x.indexOf("."))return;if(typeof u[x]>"u")u[x]=void 0}),u}function E(u,x,k,R=!1){Object.keys(k).forEach(function(C){if(!O(u,C.split("."))){if(V(u,C.split("."),k[C]),R)A[C]=!0;(x[C]||[]).forEach(function(Q){if(O(u,Q.split(".")))return;V(u,Q.split("."),k[C])})}})}function O(u,x){let k=u;if(!c["dot-notation"])x=[x.join(".")];x.slice(0,-1).forEach(function(C){k=k[C]||{}});let R=x[x.length-1];if(typeof k!=="object")return!1;else return R in k}function V(u,x,k){let R=u;if(!c["dot-notation"])x=[x.join(".")];x.slice(0,-1).forEach(function(le){if(le=Us(le),typeof R==="object"&&R[le]===void 0)R[le]={};if(typeof R[le]!=="object"||Array.isArray(R[le])){if(Array.isArray(R[le]))R[le].push({});else R[le]=[R[le],{}];R=R[le][R[le].length-1]}else R=R[le]});let C=Us(x[x.length-1]),Q=I(x.join("."),v.arrays),oe=Array.isArray(k),xe=c["duplicate-arguments-array"];if(!xe&&I(C,v.nargs)){if(xe=!0,!Ee(R[C])&&v.nargs[C]===1||Array.isArray(R[C])&&R[C].length===v.nargs[C])R[C]=void 0}if(k===ii())R[C]=ii(R[C]);else if(Array.isArray(R[C]))if(xe&&Q&&oe)R[C]=c["flatten-duplicate-arrays"]?R[C].concat(k):(Array.isArray(R[C][0])?R[C]:[R[C]]).concat([k]);else if(!xe&&Boolean(Q)===Boolean(oe))R[C]=k;else R[C]=R[C].concat([k]);else if(R[C]===void 0&&Q)R[C]=oe?k:[k];else if(xe&&!(R[C]===void 0||I(C,v.counts)||I(C,v.bools)))R[C]=[R[C],k];else R[C]=k}function N(...u){u.forEach(function(x){Object.keys(x||{}).forEach(function(k){if(v.aliases[k])return;v.aliases[k]=[].concat(s[k]||[]),v.aliases[k].concat(k).forEach(function(R){if(/-/.test(R)&&c["camel-case-expansion"]){let C=Bn(R);if(C!==k&&v.aliases[k].indexOf(C)===-1)v.aliases[k].push(C),b[C]=!0}}),v.aliases[k].concat(k).forEach(function(R){if(R.length>1&&/[A-Z]/.test(R)&&c["camel-case-expansion"]){let C=oo(R,"-");if(C!==k&&v.aliases[k].indexOf(C)===-1)v.aliases[k].push(C),b[C]=!0}}),v.aliases[k].forEach(function(R){v.aliases[R]=[k].concat(v.aliases[k].filter(function(C){return R!==C}))})})})}function I(u,x){let k=[].concat(v.aliases[u]||[],u),R=Object.keys(x),C=k.find((Q)=>R.includes(Q));return C?x[C]:!1}function ee(u){let x=Object.keys(v);return[].concat(x.map((R)=>v[R])).some(function(R){return Array.isArray(R)?R.includes(u):R[u]})}function de(u,...x){return[].concat(...x).some(function(R){let C=u.match(R);return C&&ee(C[1])})}function ne(u){if(u.match(S)||!u.match(/^-[^-]+/))return!1;let x=!0,k,R=u.slice(1).split("");for(let C=0;C<R.length;C++){if(k=u.slice(C+2),!ee(R[C])){x=!1;break}if(R[C+1]&&R[C+1]==="="||k==="-"||/[A-Za-z]/.test(R[C])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(k)||R[C+1]&&R[C+1].match(/\W/))break}return x}function ge(u){return c["unknown-options-as-args"]&&Se(u)}function Se(u){if(u=u.replace(/^-{3,}/,"--"),u.match(S))return!1;if(ne(u))return!1;return!de(u,/^-+([^=]+?)=[\s\S]*$/,D,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(u){if(!I(u,v.bools)&&!I(u,v.counts)&&`${u}`in a)return a[u];else return ve(Me(u))}function ve(u){return{[At.BOOLEAN]:!0,[At.STRING]:"",[At.NUMBER]:void 0,[At.ARRAY]:[]}[u]}function Me(u){let x=At.BOOLEAN;if(I(u,v.strings))x=At.STRING;else if(I(u,v.numbers))x=At.NUMBER;else if(I(u,v.bools))x=At.BOOLEAN;else if(I(u,v.arrays))x=At.ARRAY;return x}function Ee(u){return u===void 0}function W(){Object.keys(v.counts).find((u)=>{if(I(u,v.arrays))return M=Error(F("Invalid configuration: %s, opts.count excludes opts.array.",u)),!0;else if(I(u,v.nargs))return M=Error(F("Invalid configuration: %s, opts.count excludes opts.narg.",u)),!0;return!1})}return{aliases:Object.assign({},v.aliases),argv:Object.assign(P,y),configuration:c,defaulted:Object.assign({},A),error:M,newAliases:Object.assign({},b)}}}function Bu(e){let t=[],n=Object.create(null),r=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(r){r=!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),r=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,d){return d.indexOf(c)===a});let s=i.pop();if(s!==void 0&&typeof s==="string")n[s]=i}),n}function ii(e){return e!==void 0?e+1:1}function Us(e){if(e==="__proto__")return"___proto___";return e}function Nu(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var ci,ai,li,Js=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,zs=(ai=(ci=process===null||process===void 0?void 0:process.versions)===null||ci===void 0?void 0:ci.node)!==null&&ai!==void 0?ai:(li=process===null||process===void 0?void 0:process.version)===null||li===void 0?void 0:li.slice(1);if(zs){if(Number(zs.match(/^([^.]+)/)[1])<Js)throw Error(`yargs parser supports a minimum Node.js version of ${Js}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var Ku=process?process.env:{},qs=new si({cwd:process.cwd,env:()=>{return Ku},format:ju,normalize:Lu,resolve:Vu,require:(e)=>{return on(e)}}),Tr=function(t,n){return qs.parse(t.slice(),n).argv};Tr.detailed=function(e,t){return qs.parse(e.slice(),t)};Tr.camelCase=Bn;Tr.decamelize=oo;Tr.looksLikeNumber=io;var fi=Tr;import{basename as nd,dirname as rd,extname as od,relative as id,resolve as tc}from"path";function Xs(){if(Gu())return 0;return 1}function Gu(){return Hu()&&!process.defaultApp}function Hu(){return!!process.versions.electron}function ui(e){return e.slice(Xs()+1)}function Ys(){return process.argv[Xs()]}class Ke extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Ke)}}import{readFileSync as Uu,statSync as Ju,writeFile as zu}from"fs";import{format as qu}from"util";import{resolve as Xu}from"path";var Zs={fs:{readFileSync:Uu,writeFile:zu},format:qu,resolve:Xu,exists:(e)=>{try{return Ju(e).isFile()}catch(t){return!1}}};var Ut;class Qs{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 Ut.format.apply(Ut.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),r=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let s=r===1?t:n;if(this.cache[this.locale][t])s=this.cache[this.locale][t][r===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(r);return Ut.format.apply(Ut.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(r,i){let s=t[i+1];if(n+=r,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,r=t.locale,i=t.cb,s=this._resolveLocaleFile(n,r),c=JSON.stringify(this.cache[r],null,2);Ut.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(Ut.fs.readFileSync)e=JSON.parse(Ut.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=Ut.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let r=Ut.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(r))n=r}return n}_fileExistsSync(e){return Ut.exists(e)}}function _s(e,t){Ut=t;let n=new Qs(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 Yu=(e)=>{return _s(e,Zs)},ec=Yu;var sd="require is not supported by ESM",nc="loading a directory of commands is not supported yet for ESM",Br;try{Br=td(import.meta.url)}catch(e){Br=process.cwd()}var cd=Br.substring(0,Br.lastIndexOf("node_modules")),di={assert:{notStrictEqual:Zu,strictEqual:Qu},cliui:ri,findUp:oi,getEnv:(e)=>{return process.env[e]},inspect:_u,getCallerFile:()=>{throw new Ke(nc)},getProcessArgvBin:Ys,mainFilename:cd||process.cwd(),Parser:fi,path:{basename:nd,dirname:rd,extname:od,relative:id,resolve:tc},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:ed,require:()=>{throw new Ke(sd)},requireDirectory:()=>{throw new Ke(nc)},stringWidth:(e)=>{return[...e].length},y18n:ec({directory:tc(Br,"../../../locales"),updateFiles:!1})};function xt(e,t,n,r){n.assert.notStrictEqual(e,t,r)}function hi(e,t){t.assert.strictEqual(typeof e,"string")}function rr(e){return Object.keys(e)}function Ge(e){return!!e&&!!e.then&&typeof e.then==="function"}function vn(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),r=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let s={cmd:i.replace(r,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let d=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)d=!0;if(/^\[/.test(c))s.optional.push({cmd:c.replace(r,"").split("|"),variadic:d});else s.demanded.push({cmd:c.replace(r,"").split("|"),variadic:d})}),s}var ad=["first","second","third","fourth","fifth","sixth"];function be(e,t,n){function r(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[vn(`cmd ${e}`),t,n]}try{let i=0,[s,c,a]=r(),d=[].slice.call(c);while(d.length&&d[d.length-1]===void 0)d.pop();let h=a||d.length;if(h<s.demanded.length)throw new Ke(`Not enough arguments provided. Expected ${s.demanded.length} but received ${d.length}.`);let p=s.demanded.length+s.optional.length;if(h>p)throw new Ke(`Too many arguments provided. Expected max ${p} but received ${h}.`);s.demanded.forEach((m)=>{let b=d.shift(),A=rc(b);if(m.cmd.filter((v)=>v===A||v==="*").length===0)oc(A,m.cmd,i);i+=1}),s.optional.forEach((m)=>{if(d.length===0)return;let b=d.shift(),A=rc(b);if(m.cmd.filter((v)=>v===A||v==="*").length===0)oc(A,m.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function rc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function oc(e,t,n){throw new Ke(`Invalid ${ad[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class mi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,r=!1){if(be("<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=r,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((r)=>{let i=[...n[t]||[],t];if(!r.option)return!0;else return!i.includes(r.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 ic(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function Nn(e,t,n,r){return n.reduce((i,s)=>{if(s.applyBeforeValidation!==r)return i;if(s.mutates){if(s.applied)return i;s.applied=!0}if(Ge(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 Ge(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function jn(e,t,n=(r)=>{throw r}){try{let r=ld(e)?e():e;return Ge(r)?r.then((i)=>t(i)):t(r)}catch(r){return n(r)}}function ld(e){return typeof e==="function"}function pi(e){for(let t=0,n=Object.keys(on.cache),r;t<n.length;t++)if(r=on.cache[n[t]],r.exports===e)return r;return null}var or=/(^\*)|(^\$0)/;class cc{constructor(e,t,n,r){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=r,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,r){if(r=r||{},typeof r.recurse!=="boolean")r.recurse=!1;if(!Array.isArray(r.extensions))r.extensions=["js"];let i=typeof r.visit==="function"?r.visit:(s)=>s;r.visit=(s,c,a)=>{let d=i(s,c,a);if(d){if(this.requireCache.has(c))return d;else this.requireCache.add(c);this.addHandler(d)}return d},this.shim.requireDirectory({require:t,filename:n},e,r)}addHandler(e,t,n,r,i,s){let c=[],a=ic(i);if(r=r||(()=>{}),Array.isArray(e))if(fd(e))[e,...c]=e;else for(let d of e)this.addHandler(d);else if(dd(e)){let d=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)d=[].concat(d).concat(e.aliases);this.addHandler(d,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(sc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let d=vn(e);c=c.map((m)=>vn(m).cmd);let h=!1,p=[d.cmd].concat(c).filter((m)=>{if(or.test(m))return h=!0,!1;return!0});if(p.length===0&&h)p.push("$0");if(h)d.cmd=p[0],c=p.slice(1),e=e.replace(or,d.cmd);if(c.forEach((m)=>{this.aliasMap[m]=d.cmd}),t!==!1)this.usage.command(e,t,h,c,s);if(this.handlers[d.cmd]={original:e,description:t,handler:r,builder:n||{},middlewares:a,deprecated:s,demanded:d.demanded,optional:d.optional},h)this.defaultCommand=this.handlers[d.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,r,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),d=a.commands.slice(),h=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let p=this.applyBuilderUpdateUsageAndParse(h,c,t,n.aliases,d,r,i,s);return Ge(p)?p.then((m)=>this.applyMiddlewareAndGetResult(h,c,m.innerArgv,a,i,m.aliases,t)):this.applyMiddlewareAndGetResult(h,c,p.innerArgv,a,i,p.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,r,i,s,c,a){let d=t.builder,h=n;if(so(d)){n.getInternalMethods().getUsageInstance().freeze();let p=d(n.getInternalMethods().reset(r),a);if(Ge(p))return p.then((m)=>{return h=lc(m)?m:n,this.parseAndUpdateUsage(e,t,h,i,s,c)})}else if(ud(d))n.getInternalMethods().getUsageInstance().freeze(),h=n.getInternalMethods().reset(r),Object.keys(t.builder).forEach((p)=>{h.option(p,d[p])});return this.parseAndUpdateUsage(e,t,h,i,s,c)}parseAndUpdateUsage(e,t,n,r,i,s){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(r,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,s);return Ge(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=or.test(t.original)?t.original.replace(or,"").trim():t.original,r=e.filter((i)=>{return!or.test(i)});return r.push(n),`$0 ${r.join(" ")}`}handleValidationAndGetResult(e,t,n,r,i,s,c,a){if(!s.getInternalMethods().getHasOutput()){let d=s.getInternalMethods().runValidation(i,a,s.parsed.error,e);n=jn(n,(h)=>{return d(h),h})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let d=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,d,!1,!1),n=Nn(n,s,c,!1),n=jn(n,(h)=>{let p=t.handler(h);return Ge(p)?p.then(()=>h):h}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(Ge(n)&&!s.getInternalMethods().hasParseCallback())n.catch((h)=>{try{s.getInternalMethods().getUsageInstance().fail(null,h)}catch(p){}})}if(!e)r.commands.pop(),r.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,r,i,s,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,r,c);let d=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),h=Nn(n,c,d,!0);return Ge(h)?h.then((p)=>this.handleValidationAndGetResult(e,t,p,r,s,c,d,a)):this.handleValidationAndGetResult(e,t,h,r,s,c,d,a)}populatePositionals(e,t,n,r){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),r),c}populatePositional(e,t,n){let r=e.cmd[0];if(e.variadic)n[r]=t._.splice(0).map(String);else if(t._.length)n[r]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=vn(e);return n.demanded.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s,t.demand[i]=!0}),n.optional.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s}),t}postProcessPositionals(e,t,n,r){let i=Object.assign({},r.getOptions());i.default=Object.assign(n.default,i.default);for(let d of Object.keys(n.alias))i.alias[d]=(i.alias[d]||[]).concat(n.alias[d]);i.array=i.array.concat(n.array),i.config={};let s=[];if(Object.keys(t).forEach((d)=>{t[d].map((h)=>{if(i.configuration["unknown-options-as-args"])i.key[d]=!0;s.push(`--${d}`),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)r.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let d=Object.keys(t);Object.keys(t).forEach((h)=>{d.push(...a.aliases[h])}),Object.keys(a.argv).forEach((h)=>{if(d.includes(h)){if(!t[h])t[h]=a.argv[h];if(!this.isInConfigs(r,h)&&!this.isDefaulted(r,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((r)=>Object.prototype.hasOwnProperty.call(r,t))||n.some((r)=>Object.prototype.hasOwnProperty.call(r,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=or.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(so(t))return t(e,!0);else if(!sc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=pi(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 r of[e,t,n]){if(typeof r==="string"||r===!1)return r;xt(r,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();xt(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 ac(e,t,n,r){return new cc(e,t,n,r)}function sc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function fd(e){return e.every((t)=>typeof t==="string")}function so(e){return typeof e==="function"}function ud(e){return typeof e==="object"}function dd(e){return typeof e==="object"&&!Array.isArray(e)}function yn(e={},t=()=>!0){let n={};return rr(e).forEach((r)=>{if(t(r,e[r]))n[r]=e[r]}),n}function $n(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 hd(e){return typeof e==="boolean"}function uc(e,t){let n=t.y18n.__,r={},i=[];r.failFn=function(J){i.push(J)};let s=null,c=null,a=!0;r.showHelpOnFail=function(J=!0,q){let[re,he]=typeof J==="string"?[!0,J]:[J,q];if(e.getInternalMethods().isGlobalContext())c=he;return s=he,a=re,r};let d=!1;r.fail=function(J,q){let re=e.getInternalMethods().getLoggerInstance();if(i.length)for(let he=i.length-1;he>=0;--he){let _=i[he];if(hd(_)){if(q)throw q;else if(J)throw Error(J)}else _(J,q,r)}else{if(e.getExitProcess())$n(!0);if(!d){if(d=!0,a)e.showHelp("error"),re.error();if(J||q)re.error(J||q);let he=s||c;if(he){if(J||q)re.error("");re.error(he)}}if(q=q||new Ke(J),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,q);else throw q}};let h=[],p=!1;r.usage=(U,J)=>{if(U===null)return p=!0,h=[],r;return p=!1,h.push([U,J||""]),r},r.getUsage=()=>{return h},r.getUsageDisabled=()=>{return p},r.getPositionalGroupName=()=>{return n("Positionals:")};let m=[];r.example=(U,J)=>{m.push([U,J||""])};let b=[];r.command=function(J,q,re,he,_=!1){if(re)b=b.map((me)=>{return me[2]=!1,me});b.push([J,q||"",re,he,_])},r.getCommands=()=>b;let A={};r.describe=function(J,q){if(Array.isArray(J))J.forEach((re)=>{r.describe(re,q)});else if(typeof J==="object")Object.keys(J).forEach((re)=>{r.describe(re,J[re])});else A[J]=q},r.getDescriptions=()=>A;let F=[];r.epilog=(U)=>{F.push(U)};let v=!1,S;r.wrap=(U)=>{v=!0,S=U},r.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!v)S=G(),v=!0;return S};let D="__yargsString__:";r.deferY18nLookup=(U)=>D+U,r.help=function(){if(y)return y;w();let J=e.customScriptName?e.$0:t.path.basename(e.$0),q=e.getDemandedOptions(),re=e.getDemandedCommands(),he=e.getDeprecatedOptions(),_=e.getGroups(),me=e.getOptions(),Re=[];Re=Re.concat(Object.keys(A)),Re=Re.concat(Object.keys(q)),Re=Re.concat(Object.keys(re)),Re=Re.concat(Object.keys(me.default)),Re=Re.filter(K),Re=Object.keys(Re.reduce((ne,ge)=>{if(ge!=="_")ne[ge]=!0;return ne},{}));let E=r.getWrap(),O=t.cliui({width:E,wrap:!!E});if(!p){if(h.length)h.forEach((ne)=>{if(O.div({text:`${ne[0].replace(/\$0/g,J)}`}),ne[1])O.div({text:`${ne[1]}`,padding:[1,0,0,0]})}),O.div();else if(b.length){let ne=null;if(re._)ne=`${J} <${n("command")}>
|
|
167
|
+
`);if(i.border)r.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),r.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)r.unshift(...Array(i.padding[0]||0).fill("")),r.push(...Array(i.padding[2]||0).fill(""));r.forEach((c,a)=>{if(!t[a])t.push([]);let d=t[a];for(let h=0;h<s;h++)if(d[h]===void 0)d.push("");d.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||Pt.stringWidth(s.text)});let t=e.length,n=this.width,r=e.map((s)=>{if(s.width)return t--,n-=s.width,s.width;return}),i=t?Math.floor(n/t):0;return r.map((s,c)=>{if(s===void 0)return Math.max(i,Du(e[c]));return s})}}function Ns(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function Du(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function Au(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function Wu(e,t){e=e.trim();let n=Pt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function Iu(e,t){e=e.trim();let n=Pt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var Pt;function Ls(e,t){return Pt=t,new js({width:(e===null||e===void 0?void 0:e.width)||Au(),wrap:e===null||e===void 0?void 0:e.wrap})}var Vs=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function ri(e){return e.replace(Vs,"")}function Ks(e,t){let[n,r]=e.match(Vs)||["",""];e=ri(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&&r)i=`${n}${i}${r}`;return i}function oi(e){return Ls(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ri,wrap:Ks})}import{dirname as Gs,resolve as Hs}from"path";import{readdirSync as Tu,statSync as Bu}from"fs";function ii(e,t){let n=Hs(".",e),r;if(!Bu(n).isDirectory())n=Gs(n);while(!0){if(r=t(n,Tu(n)),r)return Hs(n,r);if(n=Gs(r=n),r===n)break}}import{inspect as ed}from"util";import{readFileSync as td}from"fs";import{fileURLToPath as nd}from"url";import{format as Lu}from"util";import{normalize as Vu,resolve as Ku}from"path";function Nn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",r=!1,i=e.match(/^-+/);for(let s=i?i[0].length:0;s<e.length;s++){let c=e.charAt(s);if(r)r=!1,c=c.toUpperCase();if(s!==0&&(c==="-"||c==="_"))r=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function so(e,t){let n=e.toLowerCase();t=t||"-";let r="";for(let i=0;i<e.length;i++){let s=n.charAt(i),c=e.charAt(i);if(s!==c&&i>0)r+=`${t}${n.charAt(i)}`;else r+=c}return r}function co(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 Us(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,r=null,i=null,s=[];for(let c=0;c<e.length;c++){if(n=r,r=e.charAt(c),r===" "&&!i){if(n!==" ")t++;continue}if(r===i)i=null;else if((r==="'"||r==='"')&&!i)i=r;if(!s[t])s[t]="";s[t]+=r}return s}var At;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(At||(At={}));var cn;class ci{constructor(e){cn=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),r=Us(e),i=typeof e==="string",s=Nu(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),d=n.configObjects||[],h=n.envPrefix,p=c["populate--"],m=p?"--":"_",b=Object.create(null),D=Object.create(null),T=n.__||cn.format,v={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:[]},E=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,k=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(u){let g=typeof u==="object"?u.key:u,M=Object.keys(u).map(function(P){return{boolean:"bools",string:"strings",number:"numbers"}[P]}).filter(Boolean).pop();if(M)v[M][g]=!0;v.arrays[g]=!0,v.keys.push(g)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(u){v.bools[u]=!0,v.keys.push(u)}),[].concat(n.string||[]).filter(Boolean).forEach(function(u){v.strings[u]=!0,v.keys.push(u)}),[].concat(n.number||[]).filter(Boolean).forEach(function(u){v.numbers[u]=!0,v.keys.push(u)}),[].concat(n.count||[]).filter(Boolean).forEach(function(u){v.counts[u]=!0,v.keys.push(u)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(u){v.normalize[u]=!0,v.keys.push(u)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([u,g])=>{if(typeof g==="number")v.nargs[u]=g,v.keys.push(u)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([u,g])=>{if(typeof g==="function")v.coercions[u]=g,v.keys.push(u)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(u){v.configs[u]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([u,g])=>{if(typeof g==="boolean"||typeof g==="function")v.configs[u]=g})}N(n.key,s,n.default,v.arrays),Object.keys(a).forEach(function(u){(v.aliases[u]||[]).forEach(function(g){a[g]=a[u]})});let O=null;I();let w=[],y=Object.assign(Object.create(null),{_:[]}),S={};for(let u=0;u<r.length;u++){let g=r[u],M=g.replace(/^-{3,}/,"---"),P,C,Q,oe,ge,le;if(g!=="--"&&/^-/.test(g)&&pe(g))B(g);else if(M.match(/^---+(=|$)/)){B(g);continue}else if(g.match(/^--.+=/)||!c["short-option-groups"]&&g.match(/^-.+=/)){if(oe=g.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(W(oe[1],v.arrays))u=V(u,oe[1],r,oe[2]);else if(W(oe[1],v.nargs)!==!1)u=A(u,oe[1],r,oe[2]);else q(oe[1],oe[2],!0)}else if(g.match(k)&&c["boolean-negation"]){if(oe=g.match(k),oe!==null&&Array.isArray(oe)&&oe.length>=2)C=oe[1],q(C,W(C,v.arrays)?[!1]:!1)}else if(g.match(/^--.+/)||!c["short-option-groups"]&&g.match(/^-[^-]+/)){if(oe=g.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],W(C,v.arrays))u=V(u,C,r);else if(W(C,v.nargs)!==!1)u=A(u,C,r);else if(ge=r[u+1],ge!==void 0&&(!ge.match(/^-/)||ge.match(E))&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else if(/^(true|false)$/.test(ge))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-.\..+=/)){if(oe=g.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)q(oe[1],oe[2])}else if(g.match(/^-.\..+/)&&!g.match(E)){if(ge=r[u+1],oe=g.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],ge!==void 0&&!ge.match(/^-/)&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-[^-]+/)&&!g.match(E)){Q=g.slice(1,-1).split(""),P=!1;for(let Ie=0;Ie<Q.length;Ie++){if(ge=g.slice(Ie+2),Q[Ie+1]&&Q[Ie+1]==="="){if(le=g.slice(Ie+3),C=Q[Ie],W(C,v.arrays))u=V(u,C,r,le);else if(W(C,v.nargs)!==!1)u=A(u,C,r,le);else q(C,le);P=!0;break}if(ge==="-"){q(Q[Ie],ge);continue}if(/[A-Za-z]/.test(Q[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(ge)&&W(ge,v.bools)===!1){q(Q[Ie],ge),P=!0;break}if(Q[Ie+1]&&Q[Ie+1].match(/\W/)){q(Q[Ie],ge),P=!0;break}else q(Q[Ie],be(Q[Ie]))}if(C=g.slice(-1)[0],!P&&C!=="-")if(W(C,v.arrays))u=V(u,C,r);else if(W(C,v.nargs)!==!1)u=A(u,C,r);else if(ge=r[u+1],ge!==void 0&&(!/^(-|--)[^-]/.test(ge)||ge.match(E))&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else if(/^(true|false)$/.test(ge))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-[0-9]$/)&&g.match(E)&&W(g.slice(1),v.bools))C=g.slice(1),q(C,be(C));else if(g==="--"){w=r.slice(u+1);break}else if(c["halt-at-non-option"]){w=r.slice(u);break}else B(g)}if(_(y,!0),_(y,!1),X(y),he(),R(y,v.aliases,a,!0),me(y),c["set-placeholder-key"])Pe(y);if(Object.keys(v.counts).forEach(function(u){if(!F(y,u.split(".")))q(u,0)}),p&&w.length)y[m]=[];if(w.forEach(function(u){y[m].push(u)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(y).filter((u)=>u!=="--"&&u.includes("-")).forEach((u)=>{delete y[u]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((u)=>s[u])).forEach((u)=>{if(c["camel-case-expansion"]&&u.includes("-"))delete y[u.split(".").map((g)=>Nn(g)).join(".")];delete y[u]});function B(u){let g=J("_",u);if(typeof g==="string"||typeof g==="number")y._.push(g)}function A(u,g,M,P){let C,Q=W(g,v.nargs);if(Q=typeof Q!=="number"||isNaN(Q)?1:Q,Q===0){if(!Re(P))O=Error(T("Argument unexpected for: %s",g));return q(g,be(g)),u}let oe=Re(P)?0:1;if(c["nargs-eats-options"]){if(M.length-(u+1)+oe<Q)O=Error(T("Not enough arguments following: %s",g));oe=Q}else{for(C=u+1;C<M.length;C++)if(!M[C].match(/^-[^0-9]/)||M[C].match(E)||pe(M[C]))oe++;else break;if(oe<Q)O=Error(T("Not enough arguments following: %s",g))}let ge=Math.min(oe,Q);if(!Re(P)&&ge>0)q(g,P),ge--;for(C=u+1;C<ge+u+1;C++)q(g,M[C]);return u+ge}function V(u,g,M,P){let C=[],Q=P||M[u+1],oe=W(g,v.nargs);if(W(g,v.bools)&&!/^(true|false)$/.test(Q))C.push(!0);else if(Re(Q)||Re(P)&&/^-/.test(Q)&&!E.test(Q)&&!pe(Q)){if(a[g]!==void 0){let ge=a[g];C=Array.isArray(ge)?ge:[ge]}}else{if(!Re(P))C.push(U(g,P,!0));for(let ge=u+1;ge<M.length;ge++){if(!c["greedy-arrays"]&&C.length>0||oe&&typeof oe==="number"&&C.length>=oe)break;if(Q=M[ge],/^-/.test(Q)&&!E.test(Q)&&!pe(Q))break;u=ge,C.push(U(g,Q,i))}}if(typeof oe==="number"&&(oe&&C.length<oe||isNaN(oe)&&C.length===0))O=Error(T("Not enough arguments following: %s",g));return q(g,C),u}function q(u,g,M=i){if(/-/.test(u)&&c["camel-case-expansion"]){let Q=u.split(".").map(function(oe){return Nn(oe)}).join(".");H(u,Q)}let P=U(u,g,M),C=u.split(".");if(G(y,C,P),v.aliases[u])v.aliases[u].forEach(function(Q){let oe=Q.split(".");G(y,oe,P)});if(C.length>1&&c["dot-notation"])(v.aliases[C[0]]||[]).forEach(function(Q){let oe=Q.split("."),ge=[].concat(C);if(ge.shift(),oe=oe.concat(ge),!(v.aliases[u]||[]).includes(oe.join(".")))G(y,oe,P)});if(W(u,v.normalize)&&!W(u,v.arrays))[u].concat(v.aliases[u]||[]).forEach(function(oe){Object.defineProperty(S,oe,{enumerable:!0,get(){return g},set(ge){g=typeof ge==="string"?cn.normalize(ge):ge}})})}function H(u,g){if(!(v.aliases[u]&&v.aliases[u].length))v.aliases[u]=[g],b[g]=!0;if(!(v.aliases[g]&&v.aliases[g].length))H(g,u)}function U(u,g,M){if(M)g=ju(g);if(W(u,v.bools)||W(u,v.counts)){if(typeof g==="string")g=g==="true"}let P=Array.isArray(g)?g.map(function(C){return J(u,C)}):J(u,g);if(W(u,v.counts)&&(Re(P)||typeof P==="boolean"))P=si();if(W(u,v.normalize)&&W(u,v.arrays))if(Array.isArray(g))P=g.map((C)=>{return cn.normalize(C)});else P=cn.normalize(g);return P}function J(u,g){if(!c["parse-positional-numbers"]&&u==="_")return g;if(!W(u,v.strings)&&!W(u,v.bools)&&!Array.isArray(g)){if(co(g)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${g}`)))||!Re(g)&&W(u,v.numbers))g=Number(g)}return g}function X(u){let g=Object.create(null);R(g,v.aliases,a),Object.keys(v.configs).forEach(function(M){let P=u[M]||g[M];if(P)try{let C=null,Q=cn.resolve(cn.cwd(),P),oe=v.configs[M];if(typeof oe==="function"){try{C=oe(Q)}catch(ge){C=ge}if(C instanceof Error){O=C;return}}else C=cn.require(Q);re(C)}catch(C){if(C.name==="PermissionDenied")O=C;else if(u[M])O=Error(T("Invalid JSON config file: %s",P))}})}function re(u,g){Object.keys(u).forEach(function(M){let P=u[M],C=g?g+"."+M:M;if(typeof P==="object"&&P!==null&&!Array.isArray(P)&&c["dot-notation"])re(P,C);else if(!F(y,C.split("."))||W(C,v.arrays)&&c["combine-arrays"])q(C,P)})}function he(){if(typeof d<"u")d.forEach(function(u){re(u)})}function _(u,g){if(typeof h>"u")return;let M=typeof h==="string"?h:"",P=cn.env();Object.keys(P).forEach(function(C){if(M===""||C.lastIndexOf(M,0)===0){let Q=C.split("__").map(function(oe,ge){if(ge===0)oe=oe.substring(M.length);return Nn(oe)});if((g&&v.configs[Q.join(".")]||!g)&&!F(u,Q))q(Q.join("."),P[C])}})}function me(u){let g,M=new Set;Object.keys(u).forEach(function(P){if(!M.has(P)){if(g=W(P,v.coercions),typeof g==="function")try{let C=J(P,g(u[P]));[].concat(v.aliases[P]||[],P).forEach((Q)=>{M.add(Q),u[Q]=C})}catch(C){O=C}}})}function Pe(u){return v.keys.forEach((g)=>{if(~g.indexOf("."))return;if(typeof u[g]>"u")u[g]=void 0}),u}function R(u,g,M,P=!1){Object.keys(M).forEach(function(C){if(!F(u,C.split("."))){if(G(u,C.split("."),M[C]),P)D[C]=!0;(g[C]||[]).forEach(function(Q){if(F(u,Q.split(".")))return;G(u,Q.split("."),M[C])})}})}function F(u,g){let M=u;if(!c["dot-notation"])g=[g.join(".")];g.slice(0,-1).forEach(function(C){M=M[C]||{}});let P=g[g.length-1];if(typeof M!=="object")return!1;else return P in M}function G(u,g,M){let P=u;if(!c["dot-notation"])g=[g.join(".")];g.slice(0,-1).forEach(function(le){if(le=Js(le),typeof P==="object"&&P[le]===void 0)P[le]={};if(typeof P[le]!=="object"||Array.isArray(P[le])){if(Array.isArray(P[le]))P[le].push({});else P[le]=[P[le],{}];P=P[le][P[le].length-1]}else P=P[le]});let C=Js(g[g.length-1]),Q=W(g.join("."),v.arrays),oe=Array.isArray(M),ge=c["duplicate-arguments-array"];if(!ge&&W(C,v.nargs)){if(ge=!0,!Re(P[C])&&v.nargs[C]===1||Array.isArray(P[C])&&P[C].length===v.nargs[C])P[C]=void 0}if(M===si())P[C]=si(P[C]);else if(Array.isArray(P[C]))if(ge&&Q&&oe)P[C]=c["flatten-duplicate-arrays"]?P[C].concat(M):(Array.isArray(P[C][0])?P[C]:[P[C]]).concat([M]);else if(!ge&&Boolean(Q)===Boolean(oe))P[C]=M;else P[C]=P[C].concat([M]);else if(P[C]===void 0&&Q)P[C]=oe?M:[M];else if(ge&&!(P[C]===void 0||W(C,v.counts)||W(C,v.bools)))P[C]=[P[C],M];else P[C]=M}function N(...u){u.forEach(function(g){Object.keys(g||{}).forEach(function(M){if(v.aliases[M])return;v.aliases[M]=[].concat(s[M]||[]),v.aliases[M].concat(M).forEach(function(P){if(/-/.test(P)&&c["camel-case-expansion"]){let C=Nn(P);if(C!==M&&v.aliases[M].indexOf(C)===-1)v.aliases[M].push(C),b[C]=!0}}),v.aliases[M].concat(M).forEach(function(P){if(P.length>1&&/[A-Z]/.test(P)&&c["camel-case-expansion"]){let C=so(P,"-");if(C!==M&&v.aliases[M].indexOf(C)===-1)v.aliases[M].push(C),b[C]=!0}}),v.aliases[M].forEach(function(P){v.aliases[P]=[M].concat(v.aliases[M].filter(function(C){return P!==C}))})})})}function W(u,g){let M=[].concat(v.aliases[u]||[],u),P=Object.keys(g),C=M.find((Q)=>P.includes(Q));return C?g[C]:!1}function ee(u){let g=Object.keys(v);return[].concat(g.map((P)=>v[P])).some(function(P){return Array.isArray(P)?P.includes(u):P[u]})}function de(u,...g){return[].concat(...g).some(function(P){let C=u.match(P);return C&&ee(C[1])})}function ne(u){if(u.match(E)||!u.match(/^-[^-]+/))return!1;let g=!0,M,P=u.slice(1).split("");for(let C=0;C<P.length;C++){if(M=u.slice(C+2),!ee(P[C])){g=!1;break}if(P[C+1]&&P[C+1]==="="||M==="-"||/[A-Za-z]/.test(P[C])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(M)||P[C+1]&&P[C+1].match(/\W/))break}return g}function pe(u){return c["unknown-options-as-args"]&&Se(u)}function Se(u){if(u=u.replace(/^-{3,}/,"--"),u.match(E))return!1;if(ne(u))return!1;return!de(u,/^-+([^=]+?)=[\s\S]*$/,k,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function be(u){if(!W(u,v.bools)&&!W(u,v.counts)&&`${u}`in a)return a[u];else return ke(Fe(u))}function ke(u){return{[At.BOOLEAN]:!0,[At.STRING]:"",[At.NUMBER]:void 0,[At.ARRAY]:[]}[u]}function Fe(u){let g=At.BOOLEAN;if(W(u,v.strings))g=At.STRING;else if(W(u,v.numbers))g=At.NUMBER;else if(W(u,v.bools))g=At.BOOLEAN;else if(W(u,v.arrays))g=At.ARRAY;return g}function Re(u){return u===void 0}function I(){Object.keys(v.counts).find((u)=>{if(W(u,v.arrays))return O=Error(T("Invalid configuration: %s, opts.count excludes opts.array.",u)),!0;else if(W(u,v.nargs))return O=Error(T("Invalid configuration: %s, opts.count excludes opts.narg.",u)),!0;return!1})}return{aliases:Object.assign({},v.aliases),argv:Object.assign(S,y),configuration:c,defaulted:Object.assign({},D),error:O,newAliases:Object.assign({},b)}}}function Nu(e){let t=[],n=Object.create(null),r=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(r){r=!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),r=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,d){return d.indexOf(c)===a});let s=i.pop();if(s!==void 0&&typeof s==="string")n[s]=i}),n}function si(e){return e!==void 0?e+1:1}function Js(e){if(e==="__proto__")return"___proto___";return e}function ju(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var ai,li,fi,zs=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,qs=(li=(ai=process===null||process===void 0?void 0:process.versions)===null||ai===void 0?void 0:ai.node)!==null&&li!==void 0?li:(fi=process===null||process===void 0?void 0:process.version)===null||fi===void 0?void 0:fi.slice(1);if(qs){if(Number(qs.match(/^([^.]+)/)[1])<zs)throw Error(`yargs parser supports a minimum Node.js version of ${zs}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var Gu=process?process.env:{},Xs=new ci({cwd:process.cwd,env:()=>{return Gu},format:Lu,normalize:Vu,resolve:Ku,require:(e)=>{return sn(e)}}),jr=function(t,n){return Xs.parse(t.slice(),n).argv};jr.detailed=function(e,t){return Xs.parse(e.slice(),t)};jr.camelCase=Nn;jr.decamelize=so;jr.looksLikeNumber=co;var ui=jr;import{basename as rd,dirname as od,extname as id,relative as sd,resolve as nc}from"path";function Ys(){if(Hu())return 0;return 1}function Hu(){return Uu()&&!process.defaultApp}function Uu(){return!!process.versions.electron}function di(e){return e.slice(Ys()+1)}function Zs(){return process.argv[Ys()]}class Ke extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Ke)}}import{readFileSync as Ju,statSync as zu,writeFile as qu}from"fs";import{format as Xu}from"util";import{resolve as Yu}from"path";var Qs={fs:{readFileSync:Ju,writeFile:qu},format:Xu,resolve:Yu,exists:(e)=>{try{return zu(e).isFile()}catch(t){return!1}}};var Jt;class _s{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 Jt.format.apply(Jt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),r=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let s=r===1?t:n;if(this.cache[this.locale][t])s=this.cache[this.locale][t][r===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(r);return Jt.format.apply(Jt.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(r,i){let s=t[i+1];if(n+=r,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,r=t.locale,i=t.cb,s=this._resolveLocaleFile(n,r),c=JSON.stringify(this.cache[r],null,2);Jt.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(Jt.fs.readFileSync)e=JSON.parse(Jt.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=Jt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let r=Jt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(r))n=r}return n}_fileExistsSync(e){return Jt.exists(e)}}function ec(e,t){Jt=t;let n=new _s(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 Zu=(e)=>{return ec(e,Qs)},tc=Zu;var cd="require is not supported by ESM",rc="loading a directory of commands is not supported yet for ESM",Lr;try{Lr=nd(import.meta.url)}catch(e){Lr=process.cwd()}var ad=Lr.substring(0,Lr.lastIndexOf("node_modules")),hi={assert:{notStrictEqual:Qu,strictEqual:_u},cliui:oi,findUp:ii,getEnv:(e)=>{return process.env[e]},inspect:ed,getCallerFile:()=>{throw new Ke(rc)},getProcessArgvBin:Zs,mainFilename:ad||process.cwd(),Parser:ui,path:{basename:rd,dirname:od,extname:id,relative:sd,resolve:nc},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:td,require:()=>{throw new Ke(cd)},requireDirectory:()=>{throw new Ke(rc)},stringWidth:(e)=>{return[...e].length},y18n:tc({directory:nc(Lr,"../../../locales"),updateFiles:!1})};function xt(e,t,n,r){n.assert.notStrictEqual(e,t,r)}function mi(e,t){t.assert.strictEqual(typeof e,"string")}function or(e){return Object.keys(e)}function Ge(e){return!!e&&!!e.then&&typeof e.then==="function"}function $n(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),r=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let s={cmd:i.replace(r,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let d=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)d=!0;if(/^\[/.test(c))s.optional.push({cmd:c.replace(r,"").split("|"),variadic:d});else s.demanded.push({cmd:c.replace(r,"").split("|"),variadic:d})}),s}var ld=["first","second","third","fourth","fifth","sixth"];function we(e,t,n){function r(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[$n(`cmd ${e}`),t,n]}try{let i=0,[s,c,a]=r(),d=[].slice.call(c);while(d.length&&d[d.length-1]===void 0)d.pop();let h=a||d.length;if(h<s.demanded.length)throw new Ke(`Not enough arguments provided. Expected ${s.demanded.length} but received ${d.length}.`);let p=s.demanded.length+s.optional.length;if(h>p)throw new Ke(`Too many arguments provided. Expected max ${p} but received ${h}.`);s.demanded.forEach((m)=>{let b=d.shift(),D=oc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)ic(D,m.cmd,i);i+=1}),s.optional.forEach((m)=>{if(d.length===0)return;let b=d.shift(),D=oc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)ic(D,m.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function oc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function ic(e,t,n){throw new Ke(`Invalid ${ld[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class pi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,r=!1){if(we("<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=r,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((r)=>{let i=[...n[t]||[],t];if(!r.option)return!0;else return!i.includes(r.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 sc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function jn(e,t,n,r){return n.reduce((i,s)=>{if(s.applyBeforeValidation!==r)return i;if(s.mutates){if(s.applied)return i;s.applied=!0}if(Ge(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 Ge(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function Ln(e,t,n=(r)=>{throw r}){try{let r=fd(e)?e():e;return Ge(r)?r.then((i)=>t(i)):t(r)}catch(r){return n(r)}}function fd(e){return typeof e==="function"}function gi(e){for(let t=0,n=Object.keys(sn.cache),r;t<n.length;t++)if(r=sn.cache[n[t]],r.exports===e)return r;return null}var ir=/(^\*)|(^\$0)/;class ac{constructor(e,t,n,r){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=r,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,r){if(r=r||{},typeof r.recurse!=="boolean")r.recurse=!1;if(!Array.isArray(r.extensions))r.extensions=["js"];let i=typeof r.visit==="function"?r.visit:(s)=>s;r.visit=(s,c,a)=>{let d=i(s,c,a);if(d){if(this.requireCache.has(c))return d;else this.requireCache.add(c);this.addHandler(d)}return d},this.shim.requireDirectory({require:t,filename:n},e,r)}addHandler(e,t,n,r,i,s){let c=[],a=sc(i);if(r=r||(()=>{}),Array.isArray(e))if(ud(e))[e,...c]=e;else for(let d of e)this.addHandler(d);else if(hd(e)){let d=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)d=[].concat(d).concat(e.aliases);this.addHandler(d,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(cc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let d=$n(e);c=c.map((m)=>$n(m).cmd);let h=!1,p=[d.cmd].concat(c).filter((m)=>{if(ir.test(m))return h=!0,!1;return!0});if(p.length===0&&h)p.push("$0");if(h)d.cmd=p[0],c=p.slice(1),e=e.replace(ir,d.cmd);if(c.forEach((m)=>{this.aliasMap[m]=d.cmd}),t!==!1)this.usage.command(e,t,h,c,s);if(this.handlers[d.cmd]={original:e,description:t,handler:r,builder:n||{},middlewares:a,deprecated:s,demanded:d.demanded,optional:d.optional},h)this.defaultCommand=this.handlers[d.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,r,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),d=a.commands.slice(),h=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let p=this.applyBuilderUpdateUsageAndParse(h,c,t,n.aliases,d,r,i,s);return Ge(p)?p.then((m)=>this.applyMiddlewareAndGetResult(h,c,m.innerArgv,a,i,m.aliases,t)):this.applyMiddlewareAndGetResult(h,c,p.innerArgv,a,i,p.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,r,i,s,c,a){let d=t.builder,h=n;if(ao(d)){n.getInternalMethods().getUsageInstance().freeze();let p=d(n.getInternalMethods().reset(r),a);if(Ge(p))return p.then((m)=>{return h=fc(m)?m:n,this.parseAndUpdateUsage(e,t,h,i,s,c)})}else if(dd(d))n.getInternalMethods().getUsageInstance().freeze(),h=n.getInternalMethods().reset(r),Object.keys(t.builder).forEach((p)=>{h.option(p,d[p])});return this.parseAndUpdateUsage(e,t,h,i,s,c)}parseAndUpdateUsage(e,t,n,r,i,s){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(r,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,s);return Ge(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=ir.test(t.original)?t.original.replace(ir,"").trim():t.original,r=e.filter((i)=>{return!ir.test(i)});return r.push(n),`$0 ${r.join(" ")}`}handleValidationAndGetResult(e,t,n,r,i,s,c,a){if(!s.getInternalMethods().getHasOutput()){let d=s.getInternalMethods().runValidation(i,a,s.parsed.error,e);n=Ln(n,(h)=>{return d(h),h})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let d=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,d,!1,!1),n=jn(n,s,c,!1),n=Ln(n,(h)=>{let p=t.handler(h);return Ge(p)?p.then(()=>h):h}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(Ge(n)&&!s.getInternalMethods().hasParseCallback())n.catch((h)=>{try{s.getInternalMethods().getUsageInstance().fail(null,h)}catch(p){}})}if(!e)r.commands.pop(),r.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,r,i,s,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,r,c);let d=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),h=jn(n,c,d,!0);return Ge(h)?h.then((p)=>this.handleValidationAndGetResult(e,t,p,r,s,c,d,a)):this.handleValidationAndGetResult(e,t,h,r,s,c,d,a)}populatePositionals(e,t,n,r){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),r),c}populatePositional(e,t,n){let r=e.cmd[0];if(e.variadic)n[r]=t._.splice(0).map(String);else if(t._.length)n[r]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=$n(e);return n.demanded.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s,t.demand[i]=!0}),n.optional.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s}),t}postProcessPositionals(e,t,n,r){let i=Object.assign({},r.getOptions());i.default=Object.assign(n.default,i.default);for(let d of Object.keys(n.alias))i.alias[d]=(i.alias[d]||[]).concat(n.alias[d]);i.array=i.array.concat(n.array),i.config={};let s=[];if(Object.keys(t).forEach((d)=>{t[d].map((h)=>{if(i.configuration["unknown-options-as-args"])i.key[d]=!0;s.push(`--${d}`),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)r.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let d=Object.keys(t);Object.keys(t).forEach((h)=>{d.push(...a.aliases[h])}),Object.keys(a.argv).forEach((h)=>{if(d.includes(h)){if(!t[h])t[h]=a.argv[h];if(!this.isInConfigs(r,h)&&!this.isDefaulted(r,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((r)=>Object.prototype.hasOwnProperty.call(r,t))||n.some((r)=>Object.prototype.hasOwnProperty.call(r,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=ir.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(ao(t))return t(e,!0);else if(!cc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=gi(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 r of[e,t,n]){if(typeof r==="string"||r===!1)return r;xt(r,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();xt(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 lc(e,t,n,r){return new ac(e,t,n,r)}function cc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function ud(e){return e.every((t)=>typeof t==="string")}function ao(e){return typeof e==="function"}function dd(e){return typeof e==="object"}function hd(e){return typeof e==="object"&&!Array.isArray(e)}function Cn(e={},t=()=>!0){let n={};return or(e).forEach((r)=>{if(t(r,e[r]))n[r]=e[r]}),n}function Sn(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 md(e){return typeof e==="boolean"}function dc(e,t){let n=t.y18n.__,r={},i=[];r.failFn=function(J){i.push(J)};let s=null,c=null,a=!0;r.showHelpOnFail=function(J=!0,X){let[re,he]=typeof J==="string"?[!0,J]:[J,X];if(e.getInternalMethods().isGlobalContext())c=he;return s=he,a=re,r};let d=!1;r.fail=function(J,X){let re=e.getInternalMethods().getLoggerInstance();if(i.length)for(let he=i.length-1;he>=0;--he){let _=i[he];if(md(_)){if(X)throw X;else if(J)throw Error(J)}else _(J,X,r)}else{if(e.getExitProcess())Sn(!0);if(!d){if(d=!0,a)e.showHelp("error"),re.error();if(J||X)re.error(J||X);let he=s||c;if(he){if(J||X)re.error("");re.error(he)}}if(X=X||new Ke(J),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,X);else throw X}};let h=[],p=!1;r.usage=(U,J)=>{if(U===null)return p=!0,h=[],r;return p=!1,h.push([U,J||""]),r},r.getUsage=()=>{return h},r.getUsageDisabled=()=>{return p},r.getPositionalGroupName=()=>{return n("Positionals:")};let m=[];r.example=(U,J)=>{m.push([U,J||""])};let b=[];r.command=function(J,X,re,he,_=!1){if(re)b=b.map((me)=>{return me[2]=!1,me});b.push([J,X||"",re,he,_])},r.getCommands=()=>b;let D={};r.describe=function(J,X){if(Array.isArray(J))J.forEach((re)=>{r.describe(re,X)});else if(typeof J==="object")Object.keys(J).forEach((re)=>{r.describe(re,J[re])});else D[J]=X},r.getDescriptions=()=>D;let T=[];r.epilog=(U)=>{T.push(U)};let v=!1,E;r.wrap=(U)=>{v=!0,E=U},r.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!v)E=V(),v=!0;return E};let k="__yargsString__:";r.deferY18nLookup=(U)=>k+U,r.help=function(){if(y)return y;w();let J=e.customScriptName?e.$0:t.path.basename(e.$0),X=e.getDemandedOptions(),re=e.getDemandedCommands(),he=e.getDeprecatedOptions(),_=e.getGroups(),me=e.getOptions(),Pe=[];Pe=Pe.concat(Object.keys(D)),Pe=Pe.concat(Object.keys(X)),Pe=Pe.concat(Object.keys(re)),Pe=Pe.concat(Object.keys(me.default)),Pe=Pe.filter(B),Pe=Object.keys(Pe.reduce((ne,pe)=>{if(pe!=="_")ne[pe]=!0;return ne},{}));let R=r.getWrap(),F=t.cliui({width:R,wrap:!!R});if(!p){if(h.length)h.forEach((ne)=>{if(F.div({text:`${ne[0].replace(/\$0/g,J)}`}),ne[1])F.div({text:`${ne[1]}`,padding:[1,0,0,0]})}),F.div();else if(b.length){let ne=null;if(re._)ne=`${J} <${n("command")}>
|
|
165
169
|
`;else ne=`${J} [${n("command")}]
|
|
166
|
-
`;
|
|
167
|
-
`);
|
|
168
|
-
`)}return
|
|
170
|
+
`;F.div(`${ne}`)}}if(b.length>1||b.length===1&&!b[0][2]){F.div(n("Commands:"));let ne=e.getInternalMethods().getContext(),pe=ne.commands.length?`${ne.commands.join(" ")} `:"";if(e.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)b=b.sort((be,ke)=>be[0].localeCompare(ke[0]));let Se=J?`${J} `:"";b.forEach((be)=>{let ke=`${Se}${pe}${be[0].replace(/^\$0 ?/,"")}`;F.span({text:ke,padding:[0,2,0,2],width:O(b,R,`${J}${pe}`)+4},{text:be[1]});let Fe=[];if(be[2])Fe.push(`[${n("default")}]`);if(be[3]&&be[3].length)Fe.push(`[${n("aliases:")} ${be[3].join(", ")}]`);if(be[4])if(typeof be[4]==="string")Fe.push(`[${n("deprecated: %s",be[4])}]`);else Fe.push(`[${n("deprecated")}]`);if(Fe.length)F.div({text:Fe.join(" "),padding:[0,0,0,2],align:"right"});else F.div()}),F.div()}let G=(Object.keys(me.alias)||[]).concat(Object.keys(e.parsed.newAliases)||[]);Pe=Pe.filter((ne)=>!e.parsed.newAliases[ne]&&G.every((pe)=>(me.alias[pe]||[]).indexOf(ne)===-1));let N=n("Options:");if(!_[N])_[N]=[];S(Pe,me.alias,_,N);let W=(ne)=>/^--/.test(lo(ne)),ee=Object.keys(_).filter((ne)=>_[ne].length>0).map((ne)=>{let pe=_[ne].filter(B).map((Se)=>{if(G.includes(Se))return Se;for(let be=0,ke;(ke=G[be])!==void 0;be++)if((me.alias[ke]||[]).includes(Se))return ke;return Se});return{groupName:ne,normalizedKeys:pe}}).filter(({normalizedKeys:ne})=>ne.length>0).map(({groupName:ne,normalizedKeys:pe})=>{let Se=pe.reduce((be,ke)=>{return be[ke]=[ke].concat(me.alias[ke]||[]).map((Fe)=>{if(ne===r.getPositionalGroupName())return Fe;else return(/^[0-9]$/.test(Fe)?me.boolean.includes(ke)?"-":"--":Fe.length>1?"--":"-")+Fe}).sort((Fe,Re)=>W(Fe)===W(Re)?0:W(Fe)?1:-1).join(", "),be},{});return{groupName:ne,normalizedKeys:pe,switches:Se}});if(ee.filter(({groupName:ne})=>ne!==r.getPositionalGroupName()).some(({normalizedKeys:ne,switches:pe})=>!ne.every((Se)=>W(pe[Se]))))ee.filter(({groupName:ne})=>ne!==r.getPositionalGroupName()).forEach(({normalizedKeys:ne,switches:pe})=>{ne.forEach((Se)=>{if(W(pe[Se]))pe[Se]=pd(pe[Se],4)})});if(ee.forEach(({groupName:ne,normalizedKeys:pe,switches:Se})=>{F.div(ne),pe.forEach((be)=>{let ke=Se[be],Fe=D[be]||"",Re=null;if(Fe.includes(k))Fe=n(Fe.substring(k.length));if(me.boolean.includes(be))Re=`[${n("boolean")}]`;if(me.count.includes(be))Re=`[${n("count")}]`;if(me.string.includes(be))Re=`[${n("string")}]`;if(me.normalize.includes(be))Re=`[${n("string")}]`;if(me.array.includes(be))Re=`[${n("array")}]`;if(me.number.includes(be))Re=`[${n("number")}]`;let I=(M)=>typeof M==="string"?`[${n("deprecated: %s",M)}]`:`[${n("deprecated")}]`,u=[be in he?I(he[be]):null,Re,be in X?`[${n("required")}]`:null,me.choices&&me.choices[be]?`[${n("choices:")} ${r.stringifiedValues(me.choices[be])}]`:null,A(me.default[be],me.defaultDescription[be])].filter(Boolean).join(" ");F.span({text:lo(ke),padding:[0,2,0,2+uc(ke)],width:O(Se,R)+4},Fe);let g=e.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(u&&!g)F.div({text:u,padding:[0,0,0,2],align:"right"});else F.div()}),F.div()}),m.length)F.div(n("Examples:")),m.forEach((ne)=>{ne[0]=ne[0].replace(/\$0/g,J)}),m.forEach((ne)=>{if(ne[1]==="")F.div({text:ne[0],padding:[0,2,0,2]});else F.div({text:ne[0],padding:[0,2,0,2],width:O(m,R)+4},{text:ne[1]})}),F.div();if(T.length>0){let ne=T.map((pe)=>pe.replace(/\$0/g,J)).join(`
|
|
171
|
+
`);F.div(`${ne}
|
|
172
|
+
`)}return F.toString().replace(/\s*$/,"")};function O(U,J,X){let re=0;if(!Array.isArray(U))U=Object.values(U).map((he)=>[he]);if(U.forEach((he)=>{re=Math.max(t.stringWidth(X?`${X} ${lo(he[0])}`:lo(he[0]))+uc(he[0]),re)}),J)re=Math.min(re,parseInt((J*0.5).toString(),10));return re}function w(){let U=e.getDemandedOptions(),J=e.getOptions();(Object.keys(J.alias)||[]).forEach((X)=>{J.alias[X].forEach((re)=>{if(D[re])r.describe(X,D[re]);if(re in U)e.demandOption(X,U[re]);if(J.boolean.includes(re))e.boolean(X);if(J.count.includes(re))e.count(X);if(J.string.includes(re))e.string(X);if(J.normalize.includes(re))e.normalize(X);if(J.array.includes(re))e.array(X);if(J.number.includes(re))e.number(X)})})}let y;r.cacheHelpMessage=function(){y=this.help()},r.clearCachedHelpMessage=function(){y=void 0},r.hasCachedHelpMessage=function(){return!!y};function S(U,J,X,re){let he=[],_=null;return Object.keys(X).forEach((me)=>{he=he.concat(X[me])}),U.forEach((me)=>{if(_=[me].concat(J[me]),!_.some((Pe)=>he.indexOf(Pe)!==-1))X[re].push(me)}),he}function B(U){return e.getOptions().hiddenOptions.indexOf(U)<0||e.parsed.argv[e.getOptions().showHiddenOpt]}r.showHelp=(U)=>{let J=e.getInternalMethods().getLoggerInstance();if(!U)U="error";(typeof U==="function"?U:J[U])(r.help())},r.functionDescription=(U)=>{return["(",U.name?t.Parser.decamelize(U.name,"-"):n("generated-value"),")"].join("")},r.stringifiedValues=function(J,X){let re="",he=X||", ",_=[].concat(J);if(!J||!_.length)return re;return _.forEach((me)=>{if(re.length)re+=he;re+=JSON.stringify(me)}),re};function A(U,J){let X=`[${n("default:")} `;if(U===void 0&&!J)return null;if(J)X+=J;else switch(typeof U){case"string":X+=`"${U}"`;break;case"object":X+=JSON.stringify(U);break;default:X+=U}return`${X}]`}function V(){if(t.process.stdColumns)return Math.min(80,t.process.stdColumns);else return 80}let q=null;r.version=(U)=>{q=U},r.showVersion=(U)=>{let J=e.getInternalMethods().getLoggerInstance();if(!U)U="error";(typeof U==="function"?U:J[U])(q)},r.reset=function(J){return s=null,d=!1,h=[],p=!1,T=[],m=[],b=[],D=Cn(D,(X)=>!J[X]),r};let H=[];return r.freeze=function(){H.push({failMessage:s,failureOutput:d,usages:h,usageDisabled:p,epilogs:T,examples:m,commands:b,descriptions:D})},r.unfreeze=function(J=!1){let X=H.pop();if(!X)return;if(J)D={...X.descriptions,...D},b=[...X.commands,...b],h=[...X.usages,...h],m=[...X.examples,...m],T=[...X.epilogs,...T];else({failMessage:s,failureOutput:d,usages:h,usageDisabled:p,epilogs:T,examples:m,commands:b,descriptions:D}=X)},r}function xi(e){return typeof e==="object"}function pd(e,t){return xi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function uc(e){return xi(e)?e.indentation:0}function lo(e){return xi(e)?e.text:e}var hc=`###-begin-{{app_name}}-completions-###
|
|
169
173
|
#
|
|
170
174
|
# yargs command completion script
|
|
171
175
|
#
|
|
@@ -193,7 +197,7 @@ _{{app_name}}_yargs_completions()
|
|
|
193
197
|
}
|
|
194
198
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
195
199
|
###-end-{{app_name}}-completions-###
|
|
196
|
-
`,
|
|
200
|
+
`,mc=`#compdef {{app_name}}
|
|
197
201
|
###-begin-{{app_name}}-completions-###
|
|
198
202
|
#
|
|
199
203
|
# yargs command completion script
|
|
@@ -212,12 +216,12 @@ _{{app_name}}_yargs_completions()
|
|
|
212
216
|
}
|
|
213
217
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
214
218
|
###-end-{{app_name}}-completions-###
|
|
215
|
-
`;class
|
|
216
|
-
${
|
|
217
|
-
`)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(
|
|
218
|
-
${r("Argument: %s, Given: %s, Choices: %s",
|
|
219
|
-
`;b.forEach((F)=>{A+=F}),t.fail(A)}};let d={};s.conflicts=function(m,b){if(be("<string|object> [array|string]",[m,b],arguments.length),typeof m==="object")Object.keys(m).forEach((A)=>{s.conflicts(A,m[A])});else{if(e.global(m),!d[m])d[m]=[];if(Array.isArray(b))b.forEach((A)=>s.conflicts(m,A));else d[m].push(b)}},s.getConflicting=()=>d,s.conflicting=function(m){if(Object.keys(m).forEach((b)=>{if(d[b])d[b].forEach((A)=>{if(A&&m[b]!==void 0&&m[A]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,A))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(d).forEach((b)=>{d[b].forEach((A)=>{if(A&&m[n.Parser.camelCase(b)]!==void 0&&m[n.Parser.camelCase(A)]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,A))})})},s.recommendCommands=function(m,b){b=b.sort((S,D)=>D.length-S.length);let F=null,v=1/0;for(let S=0,D;(D=b[S])!==void 0;S++){let M=gc(m,D);if(M<=3&&M<v)v=M,F=D}if(F)t.fail(r("Did you mean %s?",F))},s.reset=function(m){return c=yn(c,(b)=>!m[b]),d=yn(d,(b)=>!m[b]),s};let h=[];return s.freeze=function(){h.push({implied:c,conflicting:d})},s.unfreeze=function(){let m=h.pop();xt(m,void 0,n),{implied:c,conflicting:d}=m},s}var xi=[],Nr;function jr(e,t,n,r){Nr=r;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=on.resolve(e.extends)}catch(a){return e}else c=bd(t,e.extends);wd(c),xi.push(c),i=s?JSON.parse(Nr.readFileSync(c,"utf8")):on(e.extends),delete e.extends,i=jr(i,Nr.path.dirname(c),n,Nr)}return xi=[],n?bc(i,e):Object.assign({},i,e)}function wd(e){if(xi.indexOf(e)>-1)throw new Ke(`Circular extended configurations: '${e}'.`)}function bd(e,t){return Nr.path.resolve(e,t)}function bc(e,t){let n={};function r(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(r(t[i])&&r(n[i]))n[i]=bc(e[i],t[i]);else n[i]=t[i];return n}var ye=function(e,t,n,r,i){if(r==="m")throw TypeError("Private method is not writable");if(r==="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 r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},$=function(e,t,n,r){if(n==="a"&&!r)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)},_e,Ln,Lr,Wt,St,ao,Pn,Vn,lo,It,fo,Tt,Yt,Et,Bt,uo,ir,ct,Ce,ho,mo,Rt,Kn,sr,Gn,Cn,po,ke,Hn,Un,Jn,Oe,go,Zt,Xe;function jc(e){return(t=[],n=e.process.cwd(),r)=>{let i=new Lc(t,n,r,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var vc=Symbol("copyDoubleDash"),yc=Symbol("copyDoubleDash"),wi=Symbol("deleteFromParserHintObject"),$c=Symbol("emitWarning"),Pc=Symbol("freeze"),Cc=Symbol("getDollarZero"),zn=Symbol("getParserConfiguration"),Sc=Symbol("getUsageConfiguration"),bi=Symbol("guessLocale"),Ec=Symbol("guessVersion"),Rc=Symbol("parsePositionalNumbers"),vi=Symbol("pkgUp"),Sn=Symbol("populateParserHintArray"),cr=Symbol("populateParserHintSingleValueDictionary"),yi=Symbol("populateParserHintArrayDictionary"),$i=Symbol("populateParserHintDictionary"),Pi=Symbol("sanitizeKey"),Ci=Symbol("setKey"),Si=Symbol("unfreeze"),kc=Symbol("validateAsync"),Oc=Symbol("getCommandInstance"),Mc=Symbol("getContext"),Fc=Symbol("getHasOutput"),Dc=Symbol("getLoggerInstance"),Ac=Symbol("getParseContext"),Wc=Symbol("getUsageInstance"),Ic=Symbol("getValidationInstance"),xo=Symbol("hasParseCallback"),Tc=Symbol("isGlobalContext"),qn=Symbol("postProcess"),Bc=Symbol("rebase"),Ei=Symbol("reset"),Vr=Symbol("runYargsParserAndExecuteCommands"),Ri=Symbol("runValidation"),Nc=Symbol("setHasOutput"),Xn=Symbol("kTrackManuallySetKeys");class Lc{constructor(e=[],t,n,r){this.customScriptName=!1,this.parsed=!1,_e.set(this,void 0),Ln.set(this,void 0),Lr.set(this,{commands:[],fullCommands:[]}),Wt.set(this,null),St.set(this,null),ao.set(this,"show-hidden"),Pn.set(this,null),Vn.set(this,!0),lo.set(this,{}),It.set(this,!0),fo.set(this,[]),Tt.set(this,void 0),Yt.set(this,{}),Et.set(this,!1),Bt.set(this,null),uo.set(this,!0),ir.set(this,void 0),ct.set(this,""),Ce.set(this,void 0),ho.set(this,void 0),mo.set(this,{}),Rt.set(this,null),Kn.set(this,null),sr.set(this,{}),Gn.set(this,{}),Cn.set(this,void 0),po.set(this,!1),ke.set(this,void 0),Hn.set(this,!1),Un.set(this,!1),Jn.set(this,!1),Oe.set(this,void 0),go.set(this,{}),Zt.set(this,null),Xe.set(this,void 0),ye(this,ke,r,"f"),ye(this,Cn,e,"f"),ye(this,Ln,t,"f"),ye(this,ho,n,"f"),ye(this,Tt,new mi(this),"f"),this.$0=this[Cc](),this[Ei](),ye(this,_e,$(this,_e,"f"),"f"),ye(this,Oe,$(this,Oe,"f"),"f"),ye(this,Xe,$(this,Xe,"f"),"f"),ye(this,Ce,$(this,Ce,"f"),"f"),$(this,Ce,"f").showHiddenOpt=$(this,ao,"f"),ye(this,ir,this[yc](),"f")}addHelpOpt(e,t){if(be("[string|boolean] [string]",[e,t],arguments.length),$(this,Bt,"f"))this[wi]($(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($(this,Bt,"f")),this.describe($(this,Bt,"f"),t||$(this,Oe,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(be("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:$(this,ao,"f");return this.boolean(n),this.describe(n,t||$(this,Oe,"f").deferY18nLookup("Show hidden options")),$(this,Ce,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return be("<object|string|array> [string|array]",[e,t],arguments.length),this[yi](this.alias.bind(this),"alias",e,t),this}array(e){return be("<array|string>",[e],arguments.length),this[Sn]("array",e),this[Xn](e),this}boolean(e){return be("<array|string>",[e],arguments.length),this[Sn]("boolean",e),this[Xn](e),this}check(e,t){return be("<function> [boolean]",[e,t],arguments.length),this.middleware((n,r)=>{return jn(()=>{return e(n,r.getOptions())},(i)=>{if(!i)$(this,Oe,"f").fail($(this,ke,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)$(this,Oe,"f").fail(i.toString(),i);return n},(i)=>{return $(this,Oe,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return be("<object|string|array> [string|array]",[e,t],arguments.length),this[yi](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(be("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Ke("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 Ke("coerce callback must be provided");return $(this,Ce,"f").key[e]=!0,$(this,Tt,"f").addCoerceMiddleware((n,r)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return jn(()=>{return i=r.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=r.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let d of i[e])n[d]=c;return n},(c)=>{throw new Ke(c.message)})},e),this}conflicts(e,t){return be("<string|object> [string|array]",[e,t],arguments.length),$(this,Xe,"f").conflicts(e,t),this}config(e="config",t,n){if(be("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=jr(e,$(this,Ln,"f"),this[zn]()["deep-merge-config"]||!1,$(this,ke,"f")),$(this,Ce,"f").configObjects=($(this,Ce,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||$(this,Oe,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((r)=>{$(this,Ce,"f").config[r]=n||!0}),this}completion(e,t,n){if(be("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(ye(this,St,e||$(this,St,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command($(this,St,"f"),t),n)$(this,Wt,"f").registerFunction(n);return this}command(e,t,n,r,i,s){return be("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,r,i,s],arguments.length),$(this,_e,"f").addHandler(e,t,n,r,i,s),this}commands(e,t,n,r,i,s){return this.command(e,t,n,r,i,s)}commandDir(e,t){be("<string> [object]",[e,t],arguments.length);let n=$(this,ho,"f")||$(this,ke,"f").require;return $(this,_e,"f").addDirectory(e,n,$(this,ke,"f").getCallerFile(),t),this}count(e){return be("<array|string>",[e],arguments.length),this[Sn]("count",e),this[Xn](e),this}default(e,t,n){if(be("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)hi(e,$(this,ke,"f")),$(this,Ce,"f").defaultDescription[e]=n;if(typeof t==="function"){if(hi(e,$(this,ke,"f")),!$(this,Ce,"f").defaultDescription[e])$(this,Ce,"f").defaultDescription[e]=$(this,Oe,"f").functionDescription(t);t=t.call()}return this[cr](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,r){if(be("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,r],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),$(this,Ce,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:r},this}demand(e,t,n){if(Array.isArray(t))t.forEach((r)=>{xt(n,!0,$(this,ke,"f")),this.demandOption(r,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")xt(n,!0,$(this,ke,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((r)=>{xt(n,!0,$(this,ke,"f")),this.demandOption(r,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 be("<object|string|array> [string]",[e,t],arguments.length),this[cr](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return be("<string> [string|boolean]",[e,t],arguments.length),$(this,Ce,"f").deprecatedOptions[e]=t,this}describe(e,t){return be("<object|string|array> [string]",[e,t],arguments.length),this[Ci](e,!0),$(this,Oe,"f").describe(e,t),this}detectLocale(e){return be("<boolean>",[e],arguments.length),ye(this,Vn,e,"f"),this}env(e){if(be("[string|boolean]",[e],arguments.length),e===!1)delete $(this,Ce,"f").envPrefix;else $(this,Ce,"f").envPrefix=e||"";return this}epilogue(e){return be("<string>",[e],arguments.length),$(this,Oe,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(be("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else $(this,Oe,"f").example(e,t);return this}exit(e,t){if(ye(this,Et,!0,"f"),ye(this,Pn,t,"f"),$(this,It,"f"))$(this,ke,"f").process.exit(e)}exitProcess(e=!0){return be("[boolean]",[e],arguments.length),ye(this,It,e,"f"),this}fail(e){if(be("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Ke("Invalid first argument. Expected function or boolean 'false'");return $(this,Oe,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(be("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,r)=>{$(this,Wt,"f").getCompletion(e,(i,s)=>{if(i)r(i);else n(s)})});else return $(this,Wt,"f").getCompletion(e,t)}getDemandedOptions(){return be([],0),$(this,Ce,"f").demandedOptions}getDemandedCommands(){return be([],0),$(this,Ce,"f").demandedCommands}getDeprecatedOptions(){return be([],0),$(this,Ce,"f").deprecatedOptions}getDetectLocale(){return $(this,Vn,"f")}getExitProcess(){return $(this,It,"f")}getGroups(){return Object.assign({},$(this,Yt,"f"),$(this,Gn,"f"))}getHelp(){if(ye(this,Et,!0,"f"),!$(this,Oe,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Vr]($(this,Cn,"f"),void 0,void 0,0,!0);if(Ge(t))return t.then(()=>{return $(this,Oe,"f").help()})}let e=$(this,_e,"f").runDefaultBuilderOn(this);if(Ge(e))return e.then(()=>{return $(this,Oe,"f").help()})}return Promise.resolve($(this,Oe,"f").help())}getOptions(){return $(this,Ce,"f")}getStrict(){return $(this,Hn,"f")}getStrictCommands(){return $(this,Un,"f")}getStrictOptions(){return $(this,Jn,"f")}global(e,t){if(be("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)$(this,Ce,"f").local=$(this,Ce,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!$(this,Ce,"f").local.includes(n))$(this,Ce,"f").local.push(n)});return this}group(e,t){be("<string|array> <string>",[e,t],arguments.length);let n=$(this,Gn,"f")[t]||$(this,Yt,"f")[t];if($(this,Gn,"f")[t])delete $(this,Gn,"f")[t];let r={};return $(this,Yt,"f")[t]=(n||[]).concat(e).filter((i)=>{if(r[i])return!1;return r[i]=!0}),this}hide(e){return be("<string>",[e],arguments.length),$(this,Ce,"f").hiddenOptions.push(e),this}implies(e,t){return be("<string|object> [number|string|array]",[e,t],arguments.length),$(this,Xe,"f").implies(e,t),this}locale(e){if(be("[string]",[e],arguments.length),e===void 0)return this[bi](),$(this,ke,"f").y18n.getLocale();return ye(this,Vn,!1,"f"),$(this,ke,"f").y18n.setLocale(e),this}middleware(e,t,n){return $(this,Tt,"f").addMiddleware(e,!!t,n)}nargs(e,t){return be("<string|object|array> [number]",[e,t],arguments.length),this[cr](this.nargs.bind(this),"narg",e,t),this}normalize(e){return be("<array|string>",[e],arguments.length),this[Sn]("normalize",e),this}number(e){return be("<array|string>",[e],arguments.length),this[Sn]("number",e),this[Xn](e),this}option(e,t){if(be("<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[Xn](e),$(this,Zt,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[$c](['"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(`
|
|
220
|
-
`),void 0,"versionWarning");if($(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 r=t.demand||t.required||t.require;if(r)this.demand(e,r);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)$(this,Ce,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,s=$(this,Oe,"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(
|
|
221
|
-
`,"f");
|
|
222
|
-
`,"f");
|
|
223
|
-
`)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (
|
|
219
|
+
`;class pc{constructor(e,t,n,r){var i,s,c;this.yargs=e,this.usage=t,this.command=n,this.shim=r,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,r){let i=this.command.getCommandHandlers();for(let c=0,a=e.length;c<a;++c)if(i[e[c]]&&i[e[c]].builder){let d=i[e[c]].builder;if(ao(d)){this.indexAfterLastReset=c+1;let h=this.yargs.getInternalMethods().reset();return d(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),r(null,s)}commandCompletions(e,t,n){let r=this.yargs.getInternalMethods().getContext().commands;if(!n.match(/^-/)&&r[r.length-1]!==n&&!this.previousArgHasChoices(t))this.usage.getCommands().forEach((i)=>{let s=$n(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,r){if((r.match(/^-/)||r===""&&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,r,a&&!!i.default[c])})}}choicesFromOptionsCompletions(e,t,n,r){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,r){if(r===""&&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 d of a)if(d.startsWith(r))e.push(d.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 r=t.replace(/^-+/,""),i=this.yargs.getOptions(),s=[r,...this.yargs.getAliases()[r]||[]],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 r=(i)=>e.indexOf((/^[^0-9]$/.test(i)?"-":"--")+i)!==-1;if(r(t))return!0;if(n&&r(`no-${t}`))return!0;if(this.aliases){for(let i of this.aliases[t])if(r(i))return!0}return!1}completeOptionKey(e,t,n,r){var i,s,c,a;let d=e;if(this.zshShell){let b=this.usage.getDescriptions(),D=(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((E)=>{let k=b[E];return typeof k==="string"&&k.length>0}),T=D?b[D]:void 0,v=(a=(c=b[e])!==null&&c!==void 0?c:T)!==null&&a!==void 0?a:"";d=`${e.replace(/:/g,"\\:")}:${v.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let h=(b)=>/^--/.test(b),p=(b)=>/^[^0-9]$/.test(b),m=!h(n)&&p(e)?"-":"--";if(t.push(m+d),r)t.push(m+"no-"+d)}customCompletion(e,t,n,r){if(xt(this.customCompletionFunction,null,this.shim),xd(this.customCompletionFunction)){let i=this.customCompletionFunction(n,t);if(Ge(i))return i.then((s)=>{this.shim.process.nextTick(()=>{r(null,s)})}).catch((s)=>{this.shim.process.nextTick(()=>{r(s,void 0)})});return r(null,i)}else if(bd(this.customCompletionFunction))return this.customCompletionFunction(n,t,(i=r)=>this.defaultCompletion(e,t,n,i),(i)=>{r(null,i)});else return this.customCompletionFunction(n,t,(i)=>{r(null,i)})}getCompletion(e,t){let n=e.length?e[e.length-1]:"",r=this.yargs.parse(e,!0),i=this.customCompletionFunction?(s)=>this.customCompletion(e,s,n,t):(s)=>this.defaultCompletion(e,s,n,t);return Ge(r)?r.then(i):i(r)}generateCompletionScript(e,t){let n=this.zshShell?mc:hc,r=this.shim.path.basename(e);if(e.match(/\.js$/))e=`./${e}`;return n=n.replace(/{{app_name}}/g,r),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 gc(e,t,n,r){return new pc(e,t,n,r)}function xd(e){return e.length<3}function bd(e){return e.length>3}function xc(e,t){if(e.length===0)return t.length;if(t.length===0)return e.length;let n=[],r;for(r=0;r<=t.length;r++)n[r]=[r];let i;for(i=0;i<=e.length;i++)n[0][i]=i;for(r=1;r<=t.length;r++)for(i=1;i<=e.length;i++)if(t.charAt(r-1)===e.charAt(i-1))n[r][i]=n[r-1][i-1];else if(r>1&&i>1&&t.charAt(r-2)===e.charAt(i-1)&&t.charAt(r-1)===e.charAt(i-2))n[r][i]=n[r-2][i-2]+1;else n[r][i]=Math.min(n[r-1][i-1]+1,Math.min(n[r][i-1]+1,n[r-1][i]+1));return n[t.length][e.length]}var bc=["$0","--","_"];function wc(e,t,n){let r=n.y18n.__,i=n.y18n.__n,s={};s.nonOptionCount=function(m){let b=e.getDemandedCommands(),T=m._.length+(m["--"]?m["--"].length:0)-e.getInternalMethods().getContext().commands.length;if(b._&&(T<b._.min||T>b._.max)){if(T<b._.min)if(b._.minMsg!==void 0)t.fail(b._.minMsg?b._.minMsg.replace(/\$0/g,T.toString()).replace(/\$1/,b._.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",T,T.toString(),b._.min.toString()));else if(T>b._.max)if(b._.maxMsg!==void 0)t.fail(b._.maxMsg?b._.maxMsg.replace(/\$0/g,T.toString()).replace(/\$1/,b._.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",T,T.toString(),b._.max.toString()))}},s.positionalCount=function(m,b){if(b<m)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",b,b+"",m+""))},s.requiredArguments=function(m,b){let D=null;for(let T of Object.keys(b))if(!Object.prototype.hasOwnProperty.call(m,T)||typeof m[T]>"u")D=D||{},D[T]=b[T];if(D){let T=[];for(let E of Object.keys(D)){let k=D[E];if(k&&T.indexOf(k)<0)T.push(k)}let v=T.length?`
|
|
220
|
+
${T.join(`
|
|
221
|
+
`)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(D).length,Object.keys(D).join(", ")+v))}},s.unknownArguments=function(m,b,D,T,v=!0){var E;let k=e.getInternalMethods().getCommandInstance().getCommands(),O=[],w=e.getInternalMethods().getContext();if(Object.keys(m).forEach((y)=>{if(!bc.includes(y)&&!Object.prototype.hasOwnProperty.call(D,y)&&!Object.prototype.hasOwnProperty.call(e.getInternalMethods().getParseContext(),y)&&!s.isValidAndSomeAliasIsNotNew(y,b))O.push(y)}),v&&(w.commands.length>0||k.length>0||T))m._.slice(w.commands.length).forEach((y)=>{if(!k.includes(""+y))O.push(""+y)});if(v){let S=((E=e.getDemandedCommands()._)===null||E===void 0?void 0:E.max)||0,B=w.commands.length+S;if(B<m._.length)m._.slice(B).forEach((A)=>{if(A=String(A),!w.commands.includes(A)&&!O.includes(A))O.push(A)})}if(O.length)t.fail(i("Unknown argument: %s","Unknown arguments: %s",O.length,O.map((y)=>y.trim()?y:`"${y}"`).join(", ")))},s.unknownCommands=function(m){let b=e.getInternalMethods().getCommandInstance().getCommands(),D=[],T=e.getInternalMethods().getContext();if(T.commands.length>0||b.length>0)m._.slice(T.commands.length).forEach((v)=>{if(!b.includes(""+v))D.push(""+v)});if(D.length>0)return t.fail(i("Unknown command: %s","Unknown commands: %s",D.length,D.join(", "))),!0;else return!1},s.isValidAndSomeAliasIsNotNew=function(m,b){if(!Object.prototype.hasOwnProperty.call(b,m))return!1;let D=e.parsed.newAliases;return[m,...b[m]].some((T)=>!Object.prototype.hasOwnProperty.call(D,T)||!D[m])},s.limitedChoices=function(m){let b=e.getOptions(),D={};if(!Object.keys(b.choices).length)return;Object.keys(m).forEach((E)=>{if(bc.indexOf(E)===-1&&Object.prototype.hasOwnProperty.call(b.choices,E))[].concat(m[E]).forEach((k)=>{if(b.choices[E].indexOf(k)===-1&&k!==void 0)D[E]=(D[E]||[]).concat(k)})});let T=Object.keys(D);if(!T.length)return;let v=r("Invalid values:");T.forEach((E)=>{v+=`
|
|
222
|
+
${r("Argument: %s, Given: %s, Choices: %s",E,t.stringifiedValues(D[E]),t.stringifiedValues(b.choices[E]))}`}),t.fail(v)};let c={};s.implies=function(m,b){if(we("<string|object> [array|number|string]",[m,b],arguments.length),typeof m==="object")Object.keys(m).forEach((D)=>{s.implies(D,m[D])});else{if(e.global(m),!c[m])c[m]=[];if(Array.isArray(b))b.forEach((D)=>s.implies(m,D));else xt(b,void 0,n),c[m].push(b)}},s.getImplied=function(){return c};function a(p,m){let b=Number(m);if(m=isNaN(b)?m:b,typeof m==="number")m=p._.length>=m;else if(m.match(/^--no-.+/))m=m.match(/^--no-(.+)/)[1],m=!Object.prototype.hasOwnProperty.call(p,m);else m=Object.prototype.hasOwnProperty.call(p,m);return m}s.implications=function(m){let b=[];if(Object.keys(c).forEach((D)=>{let T=D;(c[D]||[]).forEach((v)=>{let E=T,k=v;if(E=a(m,E),v=a(m,v),E&&!v)b.push(` ${T} -> ${k}`)})}),b.length){let D=`${r("Implications failed:")}
|
|
223
|
+
`;b.forEach((T)=>{D+=T}),t.fail(D)}};let d={};s.conflicts=function(m,b){if(we("<string|object> [array|string]",[m,b],arguments.length),typeof m==="object")Object.keys(m).forEach((D)=>{s.conflicts(D,m[D])});else{if(e.global(m),!d[m])d[m]=[];if(Array.isArray(b))b.forEach((D)=>s.conflicts(m,D));else d[m].push(b)}},s.getConflicting=()=>d,s.conflicting=function(m){if(Object.keys(m).forEach((b)=>{if(d[b])d[b].forEach((D)=>{if(D&&m[b]!==void 0&&m[D]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,D))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(d).forEach((b)=>{d[b].forEach((D)=>{if(D&&m[n.Parser.camelCase(b)]!==void 0&&m[n.Parser.camelCase(D)]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,D))})})},s.recommendCommands=function(m,b){b=b.sort((E,k)=>k.length-E.length);let T=null,v=1/0;for(let E=0,k;(k=b[E])!==void 0;E++){let O=xc(m,k);if(O<=3&&O<v)v=O,T=k}if(T)t.fail(r("Did you mean %s?",T))},s.reset=function(m){return c=Cn(c,(b)=>!m[b]),d=Cn(d,(b)=>!m[b]),s};let h=[];return s.freeze=function(){h.push({implied:c,conflicting:d})},s.unfreeze=function(){let m=h.pop();xt(m,void 0,n),{implied:c,conflicting:d}=m},s}var bi=[],Vr;function Kr(e,t,n,r){Vr=r;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=sn.resolve(e.extends)}catch(a){return e}else c=vd(t,e.extends);wd(c),bi.push(c),i=s?JSON.parse(Vr.readFileSync(c,"utf8")):sn(e.extends),delete e.extends,i=Kr(i,Vr.path.dirname(c),n,Vr)}return bi=[],n?vc(i,e):Object.assign({},i,e)}function wd(e){if(bi.indexOf(e)>-1)throw new Ke(`Circular extended configurations: '${e}'.`)}function vd(e,t){return Vr.path.resolve(e,t)}function vc(e,t){let n={};function r(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(r(t[i])&&r(n[i]))n[i]=vc(e[i],t[i]);else n[i]=t[i];return n}var ve=function(e,t,n,r,i){if(r==="m")throw TypeError("Private method is not writable");if(r==="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 r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},$=function(e,t,n,r){if(n==="a"&&!r)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)},_e,Vn,Gr,Wt,Et,fo,Pn,Kn,uo,It,ho,Tt,Zt,Rt,Bt,mo,sr,ct,Ce,po,go,kt,Gn,cr,Hn,En,xo,Ee,Un,Jn,zn,Oe,bo,Qt,Xe;function Lc(e){return(t=[],n=e.process.cwd(),r)=>{let i=new Vc(t,n,r,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var yc=Symbol("copyDoubleDash"),$c=Symbol("copyDoubleDash"),wi=Symbol("deleteFromParserHintObject"),Cc=Symbol("emitWarning"),Sc=Symbol("freeze"),Pc=Symbol("getDollarZero"),qn=Symbol("getParserConfiguration"),Ec=Symbol("getUsageConfiguration"),vi=Symbol("guessLocale"),Rc=Symbol("guessVersion"),kc=Symbol("parsePositionalNumbers"),yi=Symbol("pkgUp"),Rn=Symbol("populateParserHintArray"),ar=Symbol("populateParserHintSingleValueDictionary"),$i=Symbol("populateParserHintArrayDictionary"),Ci=Symbol("populateParserHintDictionary"),Si=Symbol("sanitizeKey"),Pi=Symbol("setKey"),Ei=Symbol("unfreeze"),Oc=Symbol("validateAsync"),Mc=Symbol("getCommandInstance"),Fc=Symbol("getContext"),Dc=Symbol("getHasOutput"),Ac=Symbol("getLoggerInstance"),Wc=Symbol("getParseContext"),Ic=Symbol("getUsageInstance"),Tc=Symbol("getValidationInstance"),wo=Symbol("hasParseCallback"),Bc=Symbol("isGlobalContext"),Xn=Symbol("postProcess"),Nc=Symbol("rebase"),Ri=Symbol("reset"),Hr=Symbol("runYargsParserAndExecuteCommands"),ki=Symbol("runValidation"),jc=Symbol("setHasOutput"),Yn=Symbol("kTrackManuallySetKeys");class Vc{constructor(e=[],t,n,r){this.customScriptName=!1,this.parsed=!1,_e.set(this,void 0),Vn.set(this,void 0),Gr.set(this,{commands:[],fullCommands:[]}),Wt.set(this,null),Et.set(this,null),fo.set(this,"show-hidden"),Pn.set(this,null),Kn.set(this,!0),uo.set(this,{}),It.set(this,!0),ho.set(this,[]),Tt.set(this,void 0),Zt.set(this,{}),Rt.set(this,!1),Bt.set(this,null),mo.set(this,!0),sr.set(this,void 0),ct.set(this,""),Ce.set(this,void 0),po.set(this,void 0),go.set(this,{}),kt.set(this,null),Gn.set(this,null),cr.set(this,{}),Hn.set(this,{}),En.set(this,void 0),xo.set(this,!1),Ee.set(this,void 0),Un.set(this,!1),Jn.set(this,!1),zn.set(this,!1),Oe.set(this,void 0),bo.set(this,{}),Qt.set(this,null),Xe.set(this,void 0),ve(this,Ee,r,"f"),ve(this,En,e,"f"),ve(this,Vn,t,"f"),ve(this,po,n,"f"),ve(this,Tt,new pi(this),"f"),this.$0=this[Pc](),this[Ri](),ve(this,_e,$(this,_e,"f"),"f"),ve(this,Oe,$(this,Oe,"f"),"f"),ve(this,Xe,$(this,Xe,"f"),"f"),ve(this,Ce,$(this,Ce,"f"),"f"),$(this,Ce,"f").showHiddenOpt=$(this,fo,"f"),ve(this,sr,this[$c](),"f")}addHelpOpt(e,t){if(we("[string|boolean] [string]",[e,t],arguments.length),$(this,Bt,"f"))this[wi]($(this,Bt,"f")),ve(this,Bt,null,"f");if(e===!1&&t===void 0)return this;return ve(this,Bt,typeof e==="string"?e:"help","f"),this.boolean($(this,Bt,"f")),this.describe($(this,Bt,"f"),t||$(this,Oe,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(we("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:$(this,fo,"f");return this.boolean(n),this.describe(n,t||$(this,Oe,"f").deferY18nLookup("Show hidden options")),$(this,Ce,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return we("<object|string|array> [string|array]",[e,t],arguments.length),this[$i](this.alias.bind(this),"alias",e,t),this}array(e){return we("<array|string>",[e],arguments.length),this[Rn]("array",e),this[Yn](e),this}boolean(e){return we("<array|string>",[e],arguments.length),this[Rn]("boolean",e),this[Yn](e),this}check(e,t){return we("<function> [boolean]",[e,t],arguments.length),this.middleware((n,r)=>{return Ln(()=>{return e(n,r.getOptions())},(i)=>{if(!i)$(this,Oe,"f").fail($(this,Ee,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)$(this,Oe,"f").fail(i.toString(),i);return n},(i)=>{return $(this,Oe,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return we("<object|string|array> [string|array]",[e,t],arguments.length),this[$i](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(we("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Ke("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 Ke("coerce callback must be provided");return $(this,Ce,"f").key[e]=!0,$(this,Tt,"f").addCoerceMiddleware((n,r)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Ln(()=>{return i=r.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=r.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let d of i[e])n[d]=c;return n},(c)=>{throw new Ke(c.message)})},e),this}conflicts(e,t){return we("<string|object> [string|array]",[e,t],arguments.length),$(this,Xe,"f").conflicts(e,t),this}config(e="config",t,n){if(we("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=Kr(e,$(this,Vn,"f"),this[qn]()["deep-merge-config"]||!1,$(this,Ee,"f")),$(this,Ce,"f").configObjects=($(this,Ce,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||$(this,Oe,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((r)=>{$(this,Ce,"f").config[r]=n||!0}),this}completion(e,t,n){if(we("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(ve(this,Et,e||$(this,Et,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command($(this,Et,"f"),t),n)$(this,Wt,"f").registerFunction(n);return this}command(e,t,n,r,i,s){return we("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,r,i,s],arguments.length),$(this,_e,"f").addHandler(e,t,n,r,i,s),this}commands(e,t,n,r,i,s){return this.command(e,t,n,r,i,s)}commandDir(e,t){we("<string> [object]",[e,t],arguments.length);let n=$(this,po,"f")||$(this,Ee,"f").require;return $(this,_e,"f").addDirectory(e,n,$(this,Ee,"f").getCallerFile(),t),this}count(e){return we("<array|string>",[e],arguments.length),this[Rn]("count",e),this[Yn](e),this}default(e,t,n){if(we("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)mi(e,$(this,Ee,"f")),$(this,Ce,"f").defaultDescription[e]=n;if(typeof t==="function"){if(mi(e,$(this,Ee,"f")),!$(this,Ce,"f").defaultDescription[e])$(this,Ce,"f").defaultDescription[e]=$(this,Oe,"f").functionDescription(t);t=t.call()}return this[ar](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,r){if(we("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,r],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),$(this,Ce,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:r},this}demand(e,t,n){if(Array.isArray(t))t.forEach((r)=>{xt(n,!0,$(this,Ee,"f")),this.demandOption(r,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")xt(n,!0,$(this,Ee,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((r)=>{xt(n,!0,$(this,Ee,"f")),this.demandOption(r,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 we("<object|string|array> [string]",[e,t],arguments.length),this[ar](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return we("<string> [string|boolean]",[e,t],arguments.length),$(this,Ce,"f").deprecatedOptions[e]=t,this}describe(e,t){return we("<object|string|array> [string]",[e,t],arguments.length),this[Pi](e,!0),$(this,Oe,"f").describe(e,t),this}detectLocale(e){return we("<boolean>",[e],arguments.length),ve(this,Kn,e,"f"),this}env(e){if(we("[string|boolean]",[e],arguments.length),e===!1)delete $(this,Ce,"f").envPrefix;else $(this,Ce,"f").envPrefix=e||"";return this}epilogue(e){return we("<string>",[e],arguments.length),$(this,Oe,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(we("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else $(this,Oe,"f").example(e,t);return this}exit(e,t){if(ve(this,Rt,!0,"f"),ve(this,Pn,t,"f"),$(this,It,"f"))$(this,Ee,"f").process.exit(e)}exitProcess(e=!0){return we("[boolean]",[e],arguments.length),ve(this,It,e,"f"),this}fail(e){if(we("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Ke("Invalid first argument. Expected function or boolean 'false'");return $(this,Oe,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(we("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,r)=>{$(this,Wt,"f").getCompletion(e,(i,s)=>{if(i)r(i);else n(s)})});else return $(this,Wt,"f").getCompletion(e,t)}getDemandedOptions(){return we([],0),$(this,Ce,"f").demandedOptions}getDemandedCommands(){return we([],0),$(this,Ce,"f").demandedCommands}getDeprecatedOptions(){return we([],0),$(this,Ce,"f").deprecatedOptions}getDetectLocale(){return $(this,Kn,"f")}getExitProcess(){return $(this,It,"f")}getGroups(){return Object.assign({},$(this,Zt,"f"),$(this,Hn,"f"))}getHelp(){if(ve(this,Rt,!0,"f"),!$(this,Oe,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Hr]($(this,En,"f"),void 0,void 0,0,!0);if(Ge(t))return t.then(()=>{return $(this,Oe,"f").help()})}let e=$(this,_e,"f").runDefaultBuilderOn(this);if(Ge(e))return e.then(()=>{return $(this,Oe,"f").help()})}return Promise.resolve($(this,Oe,"f").help())}getOptions(){return $(this,Ce,"f")}getStrict(){return $(this,Un,"f")}getStrictCommands(){return $(this,Jn,"f")}getStrictOptions(){return $(this,zn,"f")}global(e,t){if(we("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)$(this,Ce,"f").local=$(this,Ce,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!$(this,Ce,"f").local.includes(n))$(this,Ce,"f").local.push(n)});return this}group(e,t){we("<string|array> <string>",[e,t],arguments.length);let n=$(this,Hn,"f")[t]||$(this,Zt,"f")[t];if($(this,Hn,"f")[t])delete $(this,Hn,"f")[t];let r={};return $(this,Zt,"f")[t]=(n||[]).concat(e).filter((i)=>{if(r[i])return!1;return r[i]=!0}),this}hide(e){return we("<string>",[e],arguments.length),$(this,Ce,"f").hiddenOptions.push(e),this}implies(e,t){return we("<string|object> [number|string|array]",[e,t],arguments.length),$(this,Xe,"f").implies(e,t),this}locale(e){if(we("[string]",[e],arguments.length),e===void 0)return this[vi](),$(this,Ee,"f").y18n.getLocale();return ve(this,Kn,!1,"f"),$(this,Ee,"f").y18n.setLocale(e),this}middleware(e,t,n){return $(this,Tt,"f").addMiddleware(e,!!t,n)}nargs(e,t){return we("<string|object|array> [number]",[e,t],arguments.length),this[ar](this.nargs.bind(this),"narg",e,t),this}normalize(e){return we("<array|string>",[e],arguments.length),this[Rn]("normalize",e),this}number(e){return we("<array|string>",[e],arguments.length),this[Rn]("number",e),this[Yn](e),this}option(e,t){if(we("<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[Yn](e),$(this,Qt,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[Cc](['"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($(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 r=t.demand||t.required||t.require;if(r)this.demand(e,r);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)$(this,Ce,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,s=$(this,Oe,"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(we("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[Sc](),typeof e>"u")e=$(this,En,"f");if(typeof t==="object")ve(this,Gn,t,"f"),t=n;if(typeof t==="function")ve(this,kt,t,"f"),t=!1;if(!t)ve(this,En,e,"f");if($(this,kt,"f"))ve(this,It,!1,"f");let r=this[Hr](e,!!t),i=this.parsed;if($(this,Wt,"f").setParsed(this.parsed),Ge(r))return r.then((s)=>{if($(this,kt,"f"))$(this,kt,"f").call(this,$(this,Pn,"f"),s,$(this,ct,"f"));return s}).catch((s)=>{if($(this,kt,"f"))$(this,kt,"f")(s,this.parsed.argv,$(this,ct,"f"));throw s}).finally(()=>{this[Ei](),this.parsed=i});else{if($(this,kt,"f"))$(this,kt,"f").call(this,$(this,Pn,"f"),r,$(this,ct,"f"));this[Ei](),this.parsed=i}return r}parseAsync(e,t,n){let r=this.parse(e,t,n);return!Ge(r)?Promise.resolve(r):r}parseSync(e,t,n){let r=this.parse(e,t,n);if(Ge(r))throw new Ke(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return r}parserConfiguration(e){return we("<object>",[e],arguments.length),ve(this,go,e,"f"),this}pkgConf(e,t){we("<string> [string]",[e,t],arguments.length);let n=null,r=this[yi](t||$(this,Vn,"f"));if(r[e]&&typeof r[e]==="object")n=Kr(r[e],t||$(this,Vn,"f"),this[qn]()["deep-merge-config"]||!1,$(this,Ee,"f")),$(this,Ce,"f").configObjects=($(this,Ce,"f").configObjects||[]).concat(n);return this}positional(e,t){we("<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 r=$(this,Gr,"f").fullCommands[$(this,Gr,"f").fullCommands.length-1],i=r?$(this,_e,"f").cmdToParseOptions(r):{array:[],alias:{},default:{},demand:{}};return or(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,$(this,Oe,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return we("[boolean]",[e],arguments.length),ve(this,xo,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(we("<array|string|object> [number]",[e],arguments.length),typeof e==="string"&&$(this,Ce,"f").narg[e])return this;else this[ar](this.requiresArg.bind(this),"narg",e,NaN);return this}showCompletionScript(e,t){return we("[string] [string]",[e,t],arguments.length),e=e||this.$0,$(this,sr,"f").log($(this,Wt,"f").generateCompletionScript(e,t||$(this,Et,"f")||"completion")),this}showHelp(e){if(we("[string|function]",[e],arguments.length),ve(this,Rt,!0,"f"),!$(this,Oe,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Hr]($(this,En,"f"),void 0,void 0,0,!0);if(Ge(n))return n.then(()=>{$(this,Oe,"f").showHelp(e)}),this}let t=$(this,_e,"f").runDefaultBuilderOn(this);if(Ge(t))return t.then(()=>{$(this,Oe,"f").showHelp(e)}),this}return $(this,Oe,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return we("[boolean|string] [string]",[e,t],arguments.length),$(this,Oe,"f").showHelpOnFail(e,t),this}showVersion(e){return we("[string|function]",[e],arguments.length),$(this,Oe,"f").showVersion(e),this}skipValidation(e){return we("<array|string>",[e],arguments.length),this[Rn]("skipValidation",e),this}strict(e){return we("[boolean]",[e],arguments.length),ve(this,Un,e!==!1,"f"),this}strictCommands(e){return we("[boolean]",[e],arguments.length),ve(this,Jn,e!==!1,"f"),this}strictOptions(e){return we("[boolean]",[e],arguments.length),ve(this,zn,e!==!1,"f"),this}string(e){return we("<array|string>",[e],arguments.length),this[Rn]("string",e),this[Yn](e),this}terminalWidth(){return we([],0),$(this,Ee,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return we("<object>",[e],arguments.length),ve(this,Kn,!1,"f"),$(this,Ee,"f").y18n.updateLocale(e),this}usage(e,t,n,r){if(we("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,r],arguments.length),t!==void 0)if(xt(e,null,$(this,Ee,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,r);else throw new Ke(".usage() description must start with $0 if being used as alias for .command()");else return $(this,Oe,"f").usage(e),this}usageConfiguration(e){return we("<object>",[e],arguments.length),ve(this,bo,e,"f"),this}version(e,t,n){if(we("[boolean|string] [string] [string]",[e,t,n],arguments.length),$(this,Qt,"f"))this[wi]($(this,Qt,"f")),$(this,Oe,"f").version(void 0),ve(this,Qt,null,"f");if(arguments.length===0)n=this[Rc](),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 ve(this,Qt,typeof e==="string"?e:"version","f"),t=t||$(this,Oe,"f").deferY18nLookup("Show version number"),$(this,Oe,"f").version(n||void 0),this.boolean($(this,Qt,"f")),this.describe($(this,Qt,"f"),t),this}wrap(e){return we("<number|null|undefined>",[e],arguments.length),$(this,Oe,"f").wrap(e),this}[(_e=new WeakMap,Vn=new WeakMap,Gr=new WeakMap,Wt=new WeakMap,Et=new WeakMap,fo=new WeakMap,Pn=new WeakMap,Kn=new WeakMap,uo=new WeakMap,It=new WeakMap,ho=new WeakMap,Tt=new WeakMap,Zt=new WeakMap,Rt=new WeakMap,Bt=new WeakMap,mo=new WeakMap,sr=new WeakMap,ct=new WeakMap,Ce=new WeakMap,po=new WeakMap,go=new WeakMap,kt=new WeakMap,Gn=new WeakMap,cr=new WeakMap,Hn=new WeakMap,En=new WeakMap,xo=new WeakMap,Ee=new WeakMap,Un=new WeakMap,Jn=new WeakMap,zn=new WeakMap,Oe=new WeakMap,bo=new WeakMap,Qt=new WeakMap,Xe=new WeakMap,yc)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch(t){}return e}[$c](){return{log:(...e)=>{if(!this[wo]())console.log(...e);if(ve(this,Rt,!0,"f"),$(this,ct,"f").length)ve(this,ct,$(this,ct,"f")+`
|
|
225
|
+
`,"f");ve(this,ct,$(this,ct,"f")+e.join(" "),"f")},error:(...e)=>{if(!this[wo]())console.error(...e);if(ve(this,Rt,!0,"f"),$(this,ct,"f").length)ve(this,ct,$(this,ct,"f")+`
|
|
226
|
+
`,"f");ve(this,ct,$(this,ct,"f")+e.join(" "),"f")}}}[wi](e){or($(this,Ce,"f")).forEach((t)=>{if(((r)=>r==="configObjects")(t))return;let n=$(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 $(this,Oe,"f").getDescriptions()[e]}[Cc](e,t,n){if(!$(this,uo,"f")[n])$(this,Ee,"f").process.emitWarning(e,t),$(this,uo,"f")[n]=!0}[Sc](){$(this,ho,"f").push({options:$(this,Ce,"f"),configObjects:$(this,Ce,"f").configObjects.slice(0),exitProcess:$(this,It,"f"),groups:$(this,Zt,"f"),strict:$(this,Un,"f"),strictCommands:$(this,Jn,"f"),strictOptions:$(this,zn,"f"),completionCommand:$(this,Et,"f"),output:$(this,ct,"f"),exitError:$(this,Pn,"f"),hasOutput:$(this,Rt,"f"),parsed:this.parsed,parseFn:$(this,kt,"f"),parseContext:$(this,Gn,"f")}),$(this,Oe,"f").freeze(),$(this,Xe,"f").freeze(),$(this,_e,"f").freeze(),$(this,Tt,"f").freeze()}[Pc](){let e="",t;if(/\b(node|iojs|electron)(\.exe)?$/.test($(this,Ee,"f").process.argv()[0]))t=$(this,Ee,"f").process.argv().slice(1,2);else t=$(this,Ee,"f").process.argv().slice(0,1);if(e=t.map((n)=>{let r=this[Nc]($(this,Vn,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&r.length<n.length?r:n}).join(" ").trim(),$(this,Ee,"f").getEnv("_")&&$(this,Ee,"f").getProcessArgvBin()===$(this,Ee,"f").getEnv("_"))e=$(this,Ee,"f").getEnv("_").replace(`${$(this,Ee,"f").path.dirname($(this,Ee,"f").process.execPath())}/`,"");return e}[qn](){return $(this,go,"f")}[Ec](){return $(this,bo,"f")}[vi](){if(!$(this,Kn,"f"))return;let e=$(this,Ee,"f").getEnv("LC_ALL")||$(this,Ee,"f").getEnv("LC_MESSAGES")||$(this,Ee,"f").getEnv("LANG")||$(this,Ee,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Rc](){return this[yi]().version||"unknown"}[kc](e){let t=e["--"]?e["--"]:e._;for(let n=0,r;(r=t[n])!==void 0;n++)if($(this,Ee,"f").Parser.looksLikeNumber(r)&&Number.isSafeInteger(Math.floor(parseFloat(`${r}`))))t[n]=Number(r);return e}[yi](e){let t=e||"*";if($(this,cr,"f")[t])return $(this,cr,"f")[t];let n={};try{let r=e||$(this,Ee,"f").mainFilename;if(!e&&$(this,Ee,"f").path.extname(r))r=$(this,Ee,"f").path.dirname(r);let i=$(this,Ee,"f").findUp(r,(s,c)=>{if(c.includes("package.json"))return"package.json";else return});xt(i,void 0,$(this,Ee,"f")),n=JSON.parse($(this,Ee,"f").readFileSync(i,"utf8"))}catch(r){}return $(this,cr,"f")[t]=n||{},$(this,cr,"f")[t]}[Rn](e,t){t=[].concat(t),t.forEach((n)=>{n=this[Si](n),$(this,Ce,"f")[e].push(n)})}[ar](e,t,n,r){this[Ci](e,t,n,r,(i,s,c)=>{$(this,Ce,"f")[i][s]=c})}[$i](e,t,n,r){this[Ci](e,t,n,r,(i,s,c)=>{$(this,Ce,"f")[i][s]=($(this,Ce,"f")[i][s]||[]).concat(c)})}[Ci](e,t,n,r,i){if(Array.isArray(n))n.forEach((s)=>{e(s,r)});else if(((s)=>typeof s==="object")(n))for(let s of or(n))e(s,n[s]);else i(t,this[Si](n),r)}[Si](e){if(e==="__proto__")return"___proto___";return e}[Pi](e,t){return this[ar](this[Pi].bind(this),"key",e,t),this}[Ei](){var e,t,n,r,i,s,c,a,d,h,p,m;let b=$(this,ho,"f").pop();xt(b,void 0,$(this,Ee,"f"));let D;e=this,t=this,n=this,r=this,i=this,s=this,c=this,a=this,d=this,h=this,p=this,m=this,{options:{set value(T){ve(e,Ce,T,"f")}}.value,configObjects:D,exitProcess:{set value(T){ve(t,It,T,"f")}}.value,groups:{set value(T){ve(n,Zt,T,"f")}}.value,output:{set value(T){ve(r,ct,T,"f")}}.value,exitError:{set value(T){ve(i,Pn,T,"f")}}.value,hasOutput:{set value(T){ve(s,Rt,T,"f")}}.value,parsed:this.parsed,strict:{set value(T){ve(c,Un,T,"f")}}.value,strictCommands:{set value(T){ve(a,Jn,T,"f")}}.value,strictOptions:{set value(T){ve(d,zn,T,"f")}}.value,completionCommand:{set value(T){ve(h,Et,T,"f")}}.value,parseFn:{set value(T){ve(p,kt,T,"f")}}.value,parseContext:{set value(T){ve(m,Gn,T,"f")}}.value}=b,$(this,Ce,"f").configObjects=D,$(this,Oe,"f").unfreeze(),$(this,Xe,"f").unfreeze(),$(this,_e,"f").unfreeze(),$(this,Tt,"f").unfreeze()}[Oc](e,t){return Ln(t,(n)=>{return e(n),n})}getInternalMethods(){return{getCommandInstance:this[Mc].bind(this),getContext:this[Fc].bind(this),getHasOutput:this[Dc].bind(this),getLoggerInstance:this[Ac].bind(this),getParseContext:this[Wc].bind(this),getParserConfiguration:this[qn].bind(this),getUsageConfiguration:this[Ec].bind(this),getUsageInstance:this[Ic].bind(this),getValidationInstance:this[Tc].bind(this),hasParseCallback:this[wo].bind(this),isGlobalContext:this[Bc].bind(this),postProcess:this[Xn].bind(this),reset:this[Ri].bind(this),runValidation:this[ki].bind(this),runYargsParserAndExecuteCommands:this[Hr].bind(this),setHasOutput:this[jc].bind(this)}}[Mc](){return $(this,_e,"f")}[Fc](){return $(this,Gr,"f")}[Dc](){return $(this,Rt,"f")}[Ac](){return $(this,sr,"f")}[Wc](){return $(this,Gn,"f")||{}}[Ic](){return $(this,Oe,"f")}[Tc](){return $(this,Xe,"f")}[wo](){return!!$(this,kt,"f")}[Bc](){return $(this,mo,"f")}[Xn](e,t,n,r){if(n)return e;if(Ge(e))return e;if(!t)e=this[yc](e);if(this[qn]()["parse-positional-numbers"]||this[qn]()["parse-positional-numbers"]===void 0)e=this[kc](e);if(r)e=jn(e,this,$(this,Tt,"f").getMiddleware(),!1);return e}[Ri](e={}){ve(this,Ce,$(this,Ce,"f")||{},"f");let t={};t.local=$(this,Ce,"f").local||[],t.configObjects=$(this,Ce,"f").configObjects||[];let n={};t.local.forEach((s)=>{n[s]=!0,(e[s]||[]).forEach((c)=>{n[c]=!0})}),Object.assign($(this,Hn,"f"),Object.keys($(this,Zt,"f")).reduce((s,c)=>{let a=$(this,Zt,"f")[c].filter((d)=>!(d in n));if(a.length>0)s[c]=a;return s},{})),ve(this,Zt,{},"f");let r=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],i=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(r.forEach((s)=>{t[s]=($(this,Ce,"f")[s]||[]).filter((c)=>!n[c])}),i.forEach((s)=>{t[s]=Cn($(this,Ce,"f")[s],(c)=>!n[c])}),t.envPrefix=$(this,Ce,"f").envPrefix,ve(this,Ce,t,"f"),ve(this,Oe,$(this,Oe,"f")?$(this,Oe,"f").reset(n):dc(this,$(this,Ee,"f")),"f"),ve(this,Xe,$(this,Xe,"f")?$(this,Xe,"f").reset(n):wc(this,$(this,Oe,"f"),$(this,Ee,"f")),"f"),ve(this,_e,$(this,_e,"f")?$(this,_e,"f").reset():lc($(this,Oe,"f"),$(this,Xe,"f"),$(this,Tt,"f"),$(this,Ee,"f")),"f"),!$(this,Wt,"f"))ve(this,Wt,gc(this,$(this,Oe,"f"),$(this,_e,"f"),$(this,Ee,"f")),"f");return $(this,Tt,"f").reset(),ve(this,Et,null,"f"),ve(this,ct,"","f"),ve(this,Pn,null,"f"),ve(this,Rt,!1,"f"),this.parsed=!1,this}[Nc](e,t){return $(this,Ee,"f").path.relative(e,t)}[Hr](e,t,n,r=0,i=!1){let s=!!n||i;e=e||$(this,En,"f"),$(this,Ce,"f").__=$(this,Ee,"f").y18n.__,$(this,Ce,"f").configuration=this[qn]();let c=!!$(this,Ce,"f").configuration["populate--"],a=Object.assign({},$(this,Ce,"f").configuration,{"populate--":!0}),d=$(this,Ee,"f").Parser.detailed(e,Object.assign({},$(this,Ce,"f"),{configuration:{"parse-positional-numbers":!1,...a}})),h=Object.assign(d.argv,$(this,Gn,"f")),p=void 0,m=d.aliases,b=!1,D=!1;if(Object.keys(h).forEach((T)=>{if(T===$(this,Bt,"f")&&h[T])b=!0;else if(T===$(this,Qt,"f")&&h[T])D=!0}),h.$0=this.$0,this.parsed=d,r===0)$(this,Oe,"f").clearCachedHelpMessage();try{if(this[vi](),t)return this[Xn](h,c,!!n,!1);if($(this,Bt,"f")){if([$(this,Bt,"f")].concat(m[$(this,Bt,"f")]||[]).filter((O)=>O.length>1).includes(""+h._[h._.length-1]))h._.pop(),b=!0}ve(this,mo,!1,"f");let T=$(this,_e,"f").getCommands(),v=$(this,Wt,"f").completionKey in h,E=b||v||i;if(h._.length){if(T.length){let k;for(let O=r||0,w;h._[O]!==void 0;O++)if(w=String(h._[O]),T.includes(w)&&w!==$(this,Et,"f")){let y=$(this,_e,"f").runCommand(w,this,d,O+1,i,b||D||i);return this[Xn](y,c,!!n,!1)}else if(!k&&w!==$(this,Et,"f")){k=w;break}if(!$(this,_e,"f").hasDefaultCommand()&&$(this,xo,"f")&&k&&!E)$(this,Xe,"f").recommendCommands(k,T)}if($(this,Et,"f")&&h._.includes($(this,Et,"f"))&&!v){if($(this,It,"f"))Sn(!0);this.showCompletionScript(),this.exit(0)}}if($(this,_e,"f").hasDefaultCommand()&&!E){let k=$(this,_e,"f").runCommand(null,this,d,0,i,b||D||i);return this[Xn](k,c,!!n,!1)}if(v){if($(this,It,"f"))Sn(!0);e=[].concat(e);let k=e.slice(e.indexOf(`--${$(this,Wt,"f").completionKey}`)+1);return $(this,Wt,"f").getCompletion(k,(O,w)=>{if(O)throw new Ke(O.message);(w||[]).forEach((y)=>{$(this,sr,"f").log(y)}),this.exit(0)}),this[Xn](h,!c,!!n,!1)}if(!$(this,Rt,"f")){if(b){if($(this,It,"f"))Sn(!0);s=!0,this.showHelp("log"),this.exit(0)}else if(D){if($(this,It,"f"))Sn(!0);s=!0,$(this,Oe,"f").showVersion("log"),this.exit(0)}}if(!s&&$(this,Ce,"f").skipValidation.length>0)s=Object.keys(h).some((k)=>$(this,Ce,"f").skipValidation.indexOf(k)>=0&&h[k]===!0);if(!s){if(d.error)throw new Ke(d.error.message);if(!v){let k=this[ki](m,{},d.error);if(!n)p=jn(h,this,$(this,Tt,"f").getMiddleware(),!0);if(p=this[Oc](k,p!==null&&p!==void 0?p:h),Ge(p)&&!n)p=p.then(()=>{return jn(h,this,$(this,Tt,"f").getMiddleware(),!1)})}}}catch(T){if(T instanceof Ke)$(this,Oe,"f").fail(T.message,T);else throw T}return this[Xn](p!==null&&p!==void 0?p:h,c,!!n,!0)}[ki](e,t,n,r){let i={...this.getDemandedOptions()};return(s)=>{if(n)throw new Ke(n.message);$(this,Xe,"f").nonOptionCount(s),$(this,Xe,"f").requiredArguments(s,i);let c=!1;if($(this,Jn,"f"))c=$(this,Xe,"f").unknownCommands(s);if($(this,Un,"f")&&!c)$(this,Xe,"f").unknownArguments(s,e,t,!!r);else if($(this,zn,"f"))$(this,Xe,"f").unknownArguments(s,e,{},!1,!1);$(this,Xe,"f").limitedChoices(s),$(this,Xe,"f").implications(s),$(this,Xe,"f").conflicting(s)}}[jc](){ve(this,Rt,!0,"f")}[Yn](e){if(typeof e==="string")$(this,Ce,"f").key[e]=!0;else for(let t of e)$(this,Ce,"f").key[t]=!0}}function fc(e){return!!e&&typeof e.getInternalMethods==="function"}var yd=Lc(hi),Kc=yd;Ye();import{readFileSync as Ru}from"fs";import{join as Is}from"path";function Mx(){let e=import.meta.dir;for(let t=0;t<5;t++){let n=Is(e,"package.json");try{return Ru(n,"utf-8"),n}catch{}e=Is(e,"..")}return Is(import.meta.dir,"../../package.json")}var Fx=JSON.parse(Ru(Mx(),"utf-8")),Dx=process.argv[2]==="init";if(!Dx)try{let e=ea();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(() => (Zl(),Yl));await e()}else{let[e,t,n,r,i,s,c,a,d,h,p,m,b,D,T,v,E,k,O,w]=await Promise.all([Promise.resolve().then(() => (cf(),sf)),Promise.resolve().then(() => (lf(),af)),Promise.resolve().then(() => (df(),uf)),Promise.resolve().then(() => (mf(),hf)),Promise.resolve().then(() => (wf(),bf)),Promise.resolve().then(() => (Rf(),Ef)),Promise.resolve().then(() => (Of(),kf)),Promise.resolve().then(() => (Af(),Df)),Promise.resolve().then(() => (Tf(),If)),Promise.resolve().then(() => (Lf(),jf)),Promise.resolve().then(() => (Gf(),Kf)),Promise.resolve().then(() => (Uf(),Hf)),Promise.resolve().then(() => (zf(),Jf)),Promise.resolve().then(() => (Xf(),qf)),Promise.resolve().then(() => (iu(),ou)),Promise.resolve().then(() => (cu(),su)),Promise.resolve().then(() => (lu(),au)),Promise.resolve().then(() => (gu(),pu)),Promise.resolve().then(() => (bu(),xu)),Promise.resolve().then(() => (Eu(),Pu))]);Kc(di(process.argv)).locale("en").scriptName("copse").version(`copse v${Fx.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(r.default).command(i.default).command(s.default).command(c.default).command(a.default).command(d.default).command(h.default).command(p.default).command(m.default).command(b.default).command(D.default).command(T.default).command(v.default).command(E.default).command(k.default).command(O.default).command(w.default).completion("completion","Generate shell completion script").demandCommand(1,"Please specify a command. Run --help to see available commands.").strict().parse()}
|