@getsolaris/copse 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/copse.js +67 -65
- package/package.json +1 -1
package/dist/copse.js
CHANGED
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
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 be=(e,t)=>()=>(e&&(t=e(e=0)),t);var on=import.meta.require;import{existsSync as ki,readdirSync as $d,statSync as Kc}from"fs";import{join as Oi,resolve as Pd}from"path";function Cd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Hc(e){return Pd(Cd(e))}function Ed(e){let t=Oi(e,".git");if(!ki(t))return!1;try{return Kc(t).isDirectory()}catch{return!1}}function Rd(e){return ki(Oi(e,".git"))}function kd(e){if(!ki(e))return!1;try{return Kc(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=Gc,n=[]){let r=Math.max(1,Math.min(t,Sd)),i=Hc(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=Oi(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 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=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 Gc=1,Sd=3;var Jc=()=>{};import{join as Fi,resolve as bo}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(!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(!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"});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 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(!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 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(!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(!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"});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 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(!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 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 Gr(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Yn(e){if(Array.isArray(e))return e.map((t)=>Yn(t));if(Gr(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(!Gr(t))return Yn(t);let n=Gr(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(Gr(c)&&Gr(s)){r[i]=Zc(c,s);continue}r[i]=Yn(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 Zc(e,t)}function Qc(e){let t=e??yt();if(!cn.existsSync(t))return structuredClone(Xc);let n;try{let c=wo.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=jd(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 bt(e,t){let n=bo(t),r=e.repos?.find((i)=>bo(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,base:r?.base??e.defaults?.base}}function En(e){return(e.repos??[]).map((t)=>bo(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?bo(t,".."):Yc();if(!cn.existsSync(n))wo.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,base:t.base??e.base}}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("; ")}`);wo.renameSync(n,e)}catch(r){if(cn.existsSync(n))wo.unlinkSync(n);throw r}}var wo,qc="~/.copse/worktrees/{repo}-{branch}",Xc,ar,Fd,zc,Dd,Ad,Wd,Id,Td,Bd,Nd;var Ye=be(()=>{Jc();wo=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,base:void 0};Fd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),zc=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 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 Ld(){return{...Ze.context,id:Ze.getNextContextId(),count:0}}function Hr(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 Ot(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,Mt);if(fr&&fe&&fe.running)tt.push(r);else ur(r)}function _t(e,t,n){let r=Oo(e,t,!1,Mt);if(fr&&fe&&fe.running)tt.push(r);else ur(r)}function Ft(e,t,n){aa=Zd;let r=Oo(e,t,!1,Mt),i=Jr&&Lt(Jr);if(i)r.suspense=i;if(!n||!n.render)r.user=!0;dt?dt.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=Mt,tt.push(r);else ur(r);return ua.bind(r)}function Ud(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),D=new Set,[I,v]=(s.storage||ue)(s.initialValue),[C,R]=ue(void 0),[k,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 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=Ai,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);P(J!==void 0?"errored":m?"ready":"unresolved"),R(J);for(let X of D.keys())X.decrement();D.clear()},!1)}function K(){let U=Jr&&Lt(Jr),J=I(),X=C();if(X!==void 0&&!c)throw X;if(Be&&!Be.user&&U)ra(()=>{if(k(),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(I));return}if(fe&&c)fe.promises.delete(c);let X,re=a!==Ai?a:$t(()=>{try{return i(J,{value:I(),refetching:U})}catch(he){X=he}});if(X!==void 0){B(c,void 0,Co(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,Co(re.v),J);return re}return p=!0,queueMicrotask(()=>p=!1),Ot(()=>{P(m?"refreshing":"pending"),w()},!1),re.then((he)=>B(re,he,void 0,J),(he)=>B(re,void 0,Co(he),J))}Object.defineProperties(K,{state:{get:()=>y()},error:{get:()=>C()},loading:{get(){let U=y();return U==="pending"||U==="refreshing"}},latest:{get(){if(!m)return K();let U=C();if(U&&!c)throw U;return I()}}});let H=Ae;if(b)ra(()=>(H=Ae,q(!1)));else q(!1);return[K,{refetch:(U)=>Jd(H,()=>q(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 en(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){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){Mo(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(fr||Jr)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 On(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(()=>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)===Mt)ur(this);else{let t=tt;tt=null,Ot(()=>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)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)ma(s)}if(!c)s.state=Mt;else s.tState=Mt}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(()=>{Ot(()=>{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=Mt,e.tOwned&&e.tOwned.forEach(kn),e.tOwned=void 0;else e.state=Mt,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=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!==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=()=>zd(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 zr(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===Ur)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)===Mt)ur(e);else if((t?e.tState:e.state)===Ur){let i=tt;tt=null,Ot(()=>Ro(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=[];ko++;try{let r=e();return Xd(n),r}catch(r){if(!n)dt=null;tt=null,Mo(r)}}function Xd(e){if(tt){if(fr&&fe&&fe.running)Yd(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;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)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,dt),dt=null,oa(!0);return}}let n=dt;if(dt=null,n.length)Ot(()=>aa(n),!1);if(t)t()}function ha(e){for(let t=0;t<e.length;t++)zr(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),fr(()=>{r.delete(n),Ot(()=>{fe.running=!0,zr(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)zr(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++)zr(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===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<ko))zr(i)}else if(s===Ur)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=Ur;else r.state=Ur;if(r.pure)tt.push(r);else dt.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 Co(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=Co(e);if(!n)throw r;if(dt)dt.push({fn(){sa(r,n,t)},state:Mt});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 Qd(e,t){return function(r){let i;return _t(()=>i=$t(()=>{return Ae.context={...Ae.context,[e]:r.value},qd(()=>r.children)}),void 0),i}}function ca(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(()=>ca(s)),()=>{let d=e()||[],h=d.length,p,m;return d[Hd],$t(()=>{let D,I,v,C,R,k,w,y,P;if(h===0){if(c!==0)ca(s),s=[],r=[],i=[],c=0,a&&(a=[]);if(n.fallback)r=[_d],i[0]=Hr((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]=Hr(b);c=h}else{v=Array(h),C=Array(h),a&&(R=Array(h));for(k=0,w=Math.min(c,h);k<w&&r[k]===d[k];k++);for(w=c-1,y=h-1;w>=k&&y>=k&&r[w]===d[y];w--,y--)v[y]=i[w],C[y]=s[w],a&&(R[y]=a[w]);D=new Map,I=Array(y+1);for(m=y;m>=k;m--)P=d[m],p=D.get(P),I[m]=p===void 0?-1:p,D.set(P,m);for(p=k;p<=w;p++)if(P=r[p],m=D.get(P),m!==void 0&&m!==-1)v[m]=i[p],C[m]=s[p],a&&(R[m]=a[p]),m=I[m],D.set(P,m);else s[p]();for(m=k;m<h;m++)if(m in v){if(i[m]=v[m],s[m]=C[m],a)a[m]=R[m],a[m](m)}else i[m]=Hr(b);i=i.slice(0,c=h),r=d.slice(0)}return i});function b(D){if(s[m]=D,a){let[I,v]=ue(m);return a[m]=v,t(d[m],I)}return t(d[m])}}}function ga(e,t){if(th){if(Ze.context){let n=Ze.context;Ii(Ld());let r=$t(()=>e(t||{}));return Ii(n),r}}return $t(()=>e(t||{}))}function So(){return!0}function Wi(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 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(Gd&&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)]}},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,Ti,Gd,Hd,jw,Eo,na=null,aa,Mt=1,Ur=2,la,Ai,Ae=null,fe=null,fr=null,lr=null,Be=null,tt=null,dt=null,ko=0,Lw,oa,Jr,_d,th=!1,nh,oh=(e)=>`Stale read from <${e}>.`;var Ue=be(()=>{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"),Gd=typeof Proxy==="function",Hd=Symbol("solid-track"),jw=Symbol("solid-dev-component"),Eo={equals:Kd},aa=ha,la={owned:null,cleanups:null,context:null,owner:null},Ai={};[Lw,oa]=ue(!1);_d=Symbol("fallback");nh={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:So,deleteProperty:So,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:So,deleteProperty:So}},ownKeys(e){return e.keys()}}});function ba(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=ih.get(e))!==null&&t!==void 0?t:e}var Ni,ih,xa;var wa=be(()=>{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]]),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=be(()=>{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 ht;var Pa=be(()=>{(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 Li(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||Li(e)}function ah(e){return e===Je.EQUALS||ch(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)|Sa)===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)||sh(n)){let r=n<=Je.NINE?n-Je.ZERO:(n|Sa)-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(ba(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===ln.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!==ln.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!==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 lh(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 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 _n(e,t=ln.Legacy){return uh(e,t)}var Je,Sa=32,at,ln,uh;var Ca=be(()=>{wa();$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={}));uh=lh(ya)});var Ea,Ra;var Oa=be(()=>{Ca();(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 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 Ph,SelectRenderable as Sh,TabSelectRenderable as Ch,TextareaRenderable as Eh,TextAttributes as Ki,TextNodeRenderable as Rh,TextRenderable as kh}from"@opentui/core";import{engine as i1,Timeline as s1}from"@opentui/core";import{BaseRenderable as Ta,createTextAttributes as Mh,InputRenderable as Gi,InputRenderableEvents as qr,isTextNodeRenderable as Ji,parseColor as Ma,Renderable as Fh,RootTextNodeRenderable as Dh,ScrollBoxRenderable as Ah,SelectRenderable as Fa,SelectRenderableEvents as Hi,TabSelectRenderable as Da,TabSelectRenderableEvents as Ui,TextNodeRenderable as Wh,TextRenderable as Ba}from"@opentui/core";import{BaseRenderable as Hh,isTextNodeRenderable as Uh,TextNodeRenderable as Jh,TextRenderable as zh,Yoga as Wa}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,P,B){if(P!==void 0&&!B)B=[];if(typeof y!=="function")return b(w,y,B,P);_t((A)=>b(w,y(),A,P),B)}function b(w,y,P,B,A){while(typeof P==="function")P=P();if(y===P)return P;let K=typeof y,q=B!==void 0;if(K==="string"||K==="number"){if(K==="number")y=y.toString();if(q){let H=P[0];if(H&&r(H))i(H,y);else H=t(y);P=v(w,P,B,H)}else if(P!==""&&typeof P==="string")i(h(w),P=y);else v(w,P,B,t(y)),P=y}else if(y==null||K==="boolean")P=v(w,P,B);else if(K==="function")return _t(()=>{let H=y();while(typeof H==="function")H=H();P=b(w,H,P,B)}),()=>P;else if(Array.isArray(y)){let H=[];if(D(H,y,A))return _t(()=>P=b(w,H,P,B,!0)),()=>P;if(H.length===0){let U=v(w,P,B);if(q)return P=U}else if(Array.isArray(P))if(P.length===0)C(w,H,B);else I(w,P,H);else if(P==null||P==="")C(w,H);else I(w,q&&P||[h(w)],H);P=H}else{if(Array.isArray(P)){if(q)return P=v(w,P,B,y);v(w,P,null,y)}else if(P==null||P===""||!h(w))s(w,y);else R(w,y,h(w));P=y}return P}function D(w,y,P){let B=!1;for(let A=0,K=y.length;A<K;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(P){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 I(w,y,P){let B=P.length,A=y.length,K=B,q=0,H=0,U=p(y[A-1]),J=null;while(q<A||H<K){if(y[q]===P[H]){q++,H++;continue}while(y[A-1]===P[K-1])A--,K--;if(A===q){let X=K<B?H?p(P[H-1]):P[K-H]:U;while(H<K)s(w,P[H++],X)}else if(K===H)while(q<A){if(!J||!J.has(y[q]))c(w,y[q]);q++}else if(y[q]===P[K-1]&&P[H]===y[A-1]){let X=p(y[--A]);s(w,P[H++],p(y[q++])),s(w,P[--K],X),y[A]=P[K]}else{if(!J){J=new Map;let re=H;while(re<K)J.set(P[re],re++)}let X=J.get(y[q]);if(X!=null)if(H<X&&X<K){let re=q,he=1,_;while(++re<A&&re<K){if((_=J.get(y[re]))==null||_!==X+he)break;he++}if(he>X-H){let me=y[q];while(H<X)s(w,P[H++],me)}else R(w,P[H++],y[q++])}else q++;else c(w,y[q++])}}}function v(w,y,P,B){if(P===void 0){let K;while(K=h(w))c(w,K);return B&&s(w,B),B??""}let A=B||n();if(y.length){let K=!1;for(let q=y.length-1;q>=0;q--){let H=y[q];if(A!==H){let U=d(H)===w;if(!K&&!q)U?R(w,A,H):s(w,A,P);else U&&c(w,H)}else K=!0}}else s(w,A,P);return[A]}function C(w,y,P){for(let B=0,A=y.length;B<A;B++)s(w,y[B],P)}function R(w,y,P){s(w,y,P),c(w,P)}function k(w,y,P={},B){if(y||(y={}),!B)_t(()=>P.children=b(w,y.children,P.children));return _t(()=>y.ref&&y.ref(w)),_t(()=>{for(let A in y){if(A==="children"||A==="ref")continue;let K=y[A];if(K===P[A])continue;a(w,A,K,P[A]),P[A]=K}}),P}return{render(w,y){let P;return Hr((B)=>{P=B,m(y,w())}),P},insert:m,spread(w,y,P){if(typeof y==="function")_t((B)=>k(w,y(),B,P));else k(w,y,void 0,P)},createElement:e,createTextNode:t,insertNode:s,setProp(w,y,P,B){return a(w,y,P,B),P},mergeProps:Fo,effect:_t,memo:Ih,createComponent:ga,use(w,y,P){return $t(()=>w(y,P))}}}function Bh(e){let t=Th(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 Nh(e,t,n){if(lt("Inserting node:",st(t),"into parent:",st(e),"with anchor:",st(n),t instanceof dr),t instanceof Xr)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Xr)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 jh(e,t){if(lt("Removing node:",st(t),"from parent:",st(e)),t instanceof Xr)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ta&&!t.parent){t.destroyRecursively();return}})}function Lh(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 Vh(){let e=Zi("slot-node");return lt("Creating slot node",e),new Xr(e)}function Aa(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 _i(e){Object.assign(Ga,e)}function Xh(){return Ga}var Yi,fn=()=>{let e=Lt(Yi);if(!e)throw Error("No renderer found");return e},Oh=(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 Oh((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)})},Ih=(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},Kh,V,We,z,l,N,f,L,Gh,o,h1,m1,Qi,Na,ja,Xr,Yr,Ao,qi,Xi,La,Va,Ka,qh,Ga,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(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 hh?t:await mh({...t,onDestroy:()=>{t.onDestroy?.()}});ph.attach(n),Zh(n,e)};var te=be(()=>{Ue();Oa();Ue();Ue();Ue();Yi=On();Do=new Map;dr=class dr extends Wh{static fromString(e,t={}){let n=new dr(t);return n.add(e),n}};({render:Kh,effect:V,memo:We,createComponent:z,createElement:l,createTextNode:N,insertNode:f,insert:L,spread:Gh,setProp:o,mergeProps:h1,use:m1}=Bh({createElement(e){lt("Creating element:",e);let t=Zi(e),n=Lt(Yi);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 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|=Mh(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 Fh))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=qr.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(qr.INPUT,n);if(r)e.off(qr.INPUT,r)}break;case"onSubmit":if(e instanceof Gi){if(n)e.on(qr.ENTER,n);if(r)e.off(qr.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:Nh,removeNode:jh,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 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}};Na=class Na 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()}};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()}};Xr=class Xr extends Qi{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 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()}};Yr=class Yr extends Rh{_ctx;constructor(e,t){super(t);this._ctx=e}};Ao=class Ao extends Yr{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 Yr{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
-
`)}};Ka=class Ka extends Yr{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:Ch,scrollbox:Ph,code:bh,diff:wh,line_number:yh,markdown:$h,span:Yr,strong:qi,b:qi,em:Xi,i:Xi,u:La,br:Va,a:Ka},Ga={...qh};_i({time_to_first_draw:Yh})});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 Qh,za;var qa=be(()=>{Qh={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},za={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:Qh,close:"\xD7"}});import{BoxRenderable as Io,TextAttributes as _h,TextRenderable as Zr,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??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 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 Xa(e,t,n){let r=rs.style,i=rs[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 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 tm,nm=200,Za=60,Wo,rm,rs,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}},Pt,cm=(e,t)=>Pt.message(e,t),am=()=>Pt.toasts,lm=()=>Pt.getActiveToasts(),er,pm,Qa;var _a=be(()=>{qa();tm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Wo={top:1,right:2,bottom:1,left:2},rm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},rs={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"}}};Pt=new sm,er=Object.assign(cm,{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:am,getToasts:lm});pm=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=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??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 Zr(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 Zr(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 Zr(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 Zr(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 Zr(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)},nm)}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=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=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=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??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 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 os=be(()=>{_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),[D,I]=ue(!1),[v,C]=ue(new Set),[R,k]=ue(!1),[w,y]=ue(null),P=(q)=>{let H=new Set(v());if(H.has(q))H.delete(q);else H.add(q);C(H)},B=(q)=>{C(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)C(J)},K=()=>{C(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:D,setInputFocused:I,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:v,toggleWorktreeSelection:P,selectAllNonMain:B,pruneSelectedWorktrees:A,clearSelection:K,showBulkActions:R,setShowBulkActions:k,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 zt=be(()=>{te();Ue();el=On()});var St,Qr,is,_r;var qt=be(()=>{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"}};Qr=class Qr 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"}};_r=class _r 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 nl,dirname as gm}from"path";import{mkdirSync as xm,existsSync as bm}from"fs";function mr(e){let t=To.get(e);if(!t)return;if(Date.now()>t.expires){To.delete(e);return}return t.data}function Vt(e,t,n=wm){return To.set(e,{data:t,expires:Date.now()+n}),t}function ft(){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 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 Qr(`${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=mr(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=nl(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
|
-
`),
|
|
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
|
|
9
|
-
`).filter(Boolean)){let[
|
|
10
|
-
`).filter(Boolean)){let[
|
|
11
|
-
`).map((c)=>c.trim()).filter(Boolean);return
|
|
12
|
-
`),{encoding:"utf-8",mode:384})}function
|
|
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 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 Tm(r,t,n?.layout),Im(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 xr,al="copse";var Dn=be(()=>{Mn();xr=class xr 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 nn(){let e=Lt(ll);if(!e)throw Error("useToast must be used within ToastProvider");return e}var ll;var tr=be(()=>{te();Ue();ll=On()});function wr(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),V((d)=>o(a,"fg",g.text.secondary,d)),a})()})(),null),V((c)=>o(s,"fg",e.color??g.text.accent,c)),i})()}var ul;var Go=be(()=>{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=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 D;it(()=>{if(D)clearTimeout(D)});let I=()=>{return(t.worktrees()??[]).find((B)=>B.isMain)?.branch??"main"};Ft(en(()=>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[P,[B,A],K]=await Promise.all([Nm(y),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(I(),e.worktree.branch,{stat:!0},y).catch(()=>""),se.diffBetween(I(),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 hn(U.name).catch(()=>!1);H={meta:U,active:J}}if(e.worktree.path!==y)return;d({commits:P,diffStat:B,fullDiff:A,aheadBehind:K,focus:q,session:H}),b("")}catch(P){if(e.worktree.path!==y)return;d(null),b(P.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"},C=()=>{let y=e.worktree;if(y.isLocked)return g.text.warning;if(y.isDirty)return g.text.error;return g.text.success},R=()=>{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"},k=()=>{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"),B=l("box"),A=l("text"),K=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"),Re=l("text"),E=l("text"),F=l("box"),G=l("box"),j=l("text"),T=l("text"),ee=l("box"),de=l("box"),ne=l("text"),ge=l("text"),Ce=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,B),f(P,q),f(P,U),f(P,J),f(P,_),f(P,F),f(P,ee),f(P,Ce),f(P,pe),f(P,Me),o(P,"x",2),o(P,"y",1),f(B,A),f(B,K),o(B,"height",1),f(A,N("Worktree Detail")),o(A,"x",0),o(A,"y",0),o(A,"bold",!0),o(A,"selectable",!0),f(K,N("(Esc to close)")),o(K,"x",17),o(K,"y",0),o(K,"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,N("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(_,E),o(_,"height",1),o(_,"flexDirection","row"),f(me,Re),o(me,"width",16),o(me,"height",1),f(Re,N("Path")),o(Re,"x",0),o(Re,"y",0),o(Re,"selectable",!0),o(E,"selectable",!0),L(E,()=>e.worktree.path),f(F,G),f(F,T),o(F,"height",1),o(F,"flexDirection","row"),f(G,j),o(G,"width",16),o(G,"height",1),f(j,N("Status")),o(j,"x",0),o(j,"y",0),o(j,"selectable",!0),o(T,"selectable",!0),L(T,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,N("HEAD")),o(ne,"x",0),o(ne,"y",0),o(ne,"selectable",!0),o(ge,"selectable",!0),L(ge,()=>e.worktree.head?.slice(0,8)),L(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),L(W,z(wr,{label:"Loading details..."})),W})()]}}),Ce),L(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),L(u,()=>`Failed to load details: ${m()}`),V((x)=>o(u,"fg",g.text.error,x)),W})()]}}),Ce),L(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,N("Upstream")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),V((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),L(u,w),V((x)=>o(u,"fg",g.border.subtle,x)),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Sync")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,R),V((O)=>{var S=g.text.secondary,Q=k();return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{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"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Ahead")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.ahead} commit(s)`),V((O)=>{var S=g.text.secondary,Q=g.text.warning;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{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"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Behind")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.behind} commit(s)`),V((O)=>{var S=g.text.secondary,Q=g.text.warning;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{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,N("Recent Commits")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),V((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),L(u,w),V((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,N("No commits found")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),V((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),L(x,W),V((M)=>o(x,"fg",g.text.primary,M)),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),L(u,()=>`Diff vs ${I()}`),V((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),L(u,w),V((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"),V((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,N("No changes")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),V((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"),V((x)=>{var M=s()-3,O=a().fullDiff;return M!==x.e&&(x.e=o(W,"width",M,x.e)),O!==x.t&&(x.t=o(u,"diff",O,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,N("Focus Paths")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),V((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),L(u,w),V((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),L(x,` \u2022 ${W}`),V((M)=>o(x,"fg",g.text.primary,M)),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,N("Session")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),V((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),L(u,w),V((x)=>o(u,"fg",g.border.subtle,x)),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Name")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.name),V((O)=>{var S=g.text.secondary,Q=g.text.primary;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{e:void 0,t:void 0}),W})(),(()=>{var W=l("box"),u=l("box"),x=l("text"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Status")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.active?"\u25CF active":"\u25CB inactive"),V((O)=>{var S=g.text.secondary,Q=a().session.active?g.text.success:g.text.error;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{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"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Layout")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.layout),V((O)=>{var S=g.text.secondary,Q=g.text.primary;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{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"),M=l("text");return f(W,u),f(W,M),o(W,"height",1),o(W,"flexDirection","row"),f(u,x),o(u,"width",16),o(u,"height",1),f(x,N("Type")),o(x,"x",0),o(x,"y",0),o(x,"selectable",!0),f(M,N("main worktree")),o(M,"selectable",!0),V((O)=>{var S=g.text.secondary,Q=g.text.accent;return S!==O.e&&(O.e=o(x,"fg",S,O.e)),Q!==O.t&&(O.t=o(M,"fg",Q,O.t)),O},{e:void 0,t:void 0}),W})()]}})]}}),Ce),o(Ce,"height",1),f(pe,ve),o(pe,"height",1),o(ve,"x",0),o(ve,"y",0),o(ve,"selectable",!0),L(ve,w),f(Me,Ee),o(Me,"height",1),f(Ee,N("Esc:back d:delete o:open r:refresh")),o(Ee,"x",0),o(Ee,"y",0),o(Ee,"selectable",!0),V((W)=>{var u=s(),x=c(),M=g.bg.base,O=s()-3,S=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=C(),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)),M!==W.a&&(W.a=o(y,"backgroundColor",M,W.a)),O!==W.o&&(W.o=o(P,"width",O,W.o)),S!==W.i&&(W.i=o(P,"height",S,W.i)),Q!==W.n&&(W.n=o(A,"fg",Q,W.n)),oe!==W.s&&(W.s=o(K,"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(j,"fg",ce,W.c)),Y!==W.w&&(W.w=o(T,"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 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=be(()=>{te();te();te();te();te();te();te();te();Ue();te();un();tr();wt();Yt();Dn();je();Go()});function ml(){let e=ot(),t=mt(),n=nt(),r=()=>{let v=t.worktrees()??[],C=e.selectedWorktreePath();if(C){let R=v.find((k)=>k.path===C);if(R)return R}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(en(()=>r()?.path,(v)=>{if(b)clearTimeout(b);if(!v){a(null),h(!1),m("");return}a(null),h(!0),m(""),b=setTimeout(async()=>{let C=r();if(!C||C.path!==v)return;try{let[R,k,w]=await Promise.all([C.branch?se.getAheadBehind(C.branch,C.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(C.path),se.getDirtyCount(C.path)]);if(r()?.path===v)a({aheadBehind:R,lastCommit:k,dirtyCount:w}),m("")}catch(R){if(r()?.path===v)a(null),m(R.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 C=[];if(v.aheadBehind.ahead>0)C.push(`\u2191${v.aheadBehind.ahead}`);if(v.aheadBehind.behind>0)C.push(`\u2193${v.aheadBehind.behind}`);return C.length>0?C.join(" "):"\u2713 up to date"},I=()=>{let v=r();if(!v)return"";if(v.isLocked)return"\uD83D\uDD12 locked";let C=c();if(C&&C.dirtyCount>0)return`\u25CF ${C.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 C=v.name;if(C==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(C==="return"&&!e.showDetailView()&&r()){e.setShowDetailView(!0);return}if(C==="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(wr,{label:"Loading worktrees..."})}}),z(ie,{get when(){return We(()=>!t.loading())()&&!!t.error()},get children(){var C=l("box"),R=l("text"),k=l("text"),w=l("text"),y=l("text"),P=l("text"),B=l("text"),A=l("text"),K=l("text"),q=l("text");return f(C,R),f(C,k),f(C,w),f(C,y),f(C,P),f(C,B),f(C,A),f(C,K),f(C,q),o(C,"flexDirection","column"),o(C,"paddingX",2),o(C,"paddingY",1),o(C,"gap",0),f(R,N("Unable to list worktrees")),f(k,N(" ")),L(w,()=>t.error()?.message),f(y,N(" ")),f(P,N("copse needs a git repository to manage worktrees.")),f(B,N(" \xB7 cd into a git repository and relaunch copse, or")),f(A,N(" \xB7 configure repos in ~/.config/copse/config.json")),f(K,N(" ")),f(q,N("Press q to quit, or ^P to open the command palette.")),V((H)=>{var U=g.text.error,J=g.text.secondary,X=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(R,"fg",U,H.e)),J!==H.t&&(H.t=o(k,"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(P,"fg",he,H.i)),_!==H.n&&(H.n=o(B,"fg",_,H.n)),me!==H.s&&(H.s=o(A,"fg",me,H.s)),Re!==H.h&&(H.h=o(K,"fg",Re,H.h)),E!==H.r&&(H.r=o(q,"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}),C}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!!r()},get children(){var C=l("box"),R=l("box"),k=l("text"),w=l("box"),y=l("text"),P=l("box"),B=l("box"),A=l("text"),K=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"),Re=l("box"),E=l("text"),F=l("text"),G=l("box"),j=l("box"),T=l("text"),ee=l("text"),de=l("box"),ne=l("text"),ge=l("box"),Ce=l("text"),pe=l("text"),ve=l("text"),Me=l("text"),Ee=l("text"),W=l("text");return f(C,R),f(C,w),f(C,P),f(C,q),f(C,X),f(C,me),f(C,G),f(C,de),f(C,ge),o(C,"width","100%"),o(C,"height","100%"),o(C,"flexDirection","column"),o(C,"paddingX",2),o(C,"paddingY",1),f(R,k),o(R,"height",1),o(R,"flexDirection","row"),f(k,N("Worktree Details")),f(w,y),o(w,"height",1),L(y,()=>"\u2500".repeat(Math.max(i()-38,10))),L(C,z(ie,{get when(){return t.isMultiRepo()},get children(){var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),f(M,N("Repo")),L(O,()=>r()?.repoName),V((S)=>{var Q=g.text.secondary,oe=g.text.warning;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{e:void 0,t:void 0}),u}}),P),f(P,B),f(P,K),o(P,"height",1),o(P,"flexDirection","row"),f(B,A),o(B,"width",14),o(B,"height",1),f(A,N("Branch")),L(K,()=>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,N("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,N("Status")),L(_,I),f(me,Re),f(me,F),o(me,"height",1),o(me,"flexDirection","row"),f(Re,E),o(Re,"width",14),o(Re,"height",1),f(E,N("Sync")),L(F,D),f(G,j),f(G,ee),o(G,"height",1),o(G,"flexDirection","row"),f(j,T),o(j,"width",14),o(j,"height",1),f(T,N("HEAD")),L(ee,()=>r()?.head?.slice(0,8)),L(C,z(ie,{get when(){return c()?.lastCommit},get children(){return[(()=>{var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),f(M,N("Last Commit")),L(O,()=>c().lastCommit.relativeDate),V((S)=>{var Q=g.text.secondary,oe=g.text.primary;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{e:void 0,t:void 0}),u})(),(()=>{var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),L(O,(()=>{var S=We(()=>c().lastCommit.message.length>50);return()=>S()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),V((S)=>{var Q=g.text.secondary,oe=g.text.secondary;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{e:void 0,t:void 0}),u})()]}}),de),L(C,z(ie,{get when(){let u=Kt(r()?.path??"");return u&&u.length>0},get children(){var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),f(M,N("Focus")),L(O,()=>Kt(r()?.path??"")?.join(", ")??""),V((S)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{e:void 0,t:void 0}),u}}),de),L(C,z(ie,{get when(){return!!Gt(r()?.path??"")},get children(){var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),f(M,N("Session")),L(O,()=>{let S=Gt(r()?.path??"");if(!S)return"";return S.layout?`${S.name} [${S.layout}]`:S.name}),V((S)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{e:void 0,t:void 0}),u}}),de),L(C,z(ie,{get when(){return r()?.isMain},get children(){var u=l("box"),x=l("box"),M=l("text"),O=l("text");return f(u,x),f(u,O),o(u,"height",1),o(u,"flexDirection","row"),f(x,M),o(x,"width",14),o(x,"height",1),f(M,N("Type")),f(O,N("main worktree")),V((S)=>{var Q=g.text.secondary,oe=g.text.accent;return Q!==S.e&&(S.e=o(M,"fg",Q,S.e)),oe!==S.t&&(S.t=o(O,"fg",oe,S.t)),S},{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(ge,Ce),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(Ce,N("Enter:detail")),f(pe,N("d:delete")),f(ve,N("a:add")),f(Me,N("o:open")),f(Ee,N("r:refresh")),f(W,N("^P:commands")),V((u)=>{var x=g.bg.surface,M=g.text.accent,O=g.border.subtle,S=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,ut=g.text.secondary,Fe=g.text.secondary;return x!==u.e&&(u.e=o(C,"backgroundColor",x,u.e)),M!==u.t&&(u.t=o(k,"fg",M,u.t)),O!==u.a&&(u.a=o(y,"fg",O,u.a)),S!==u.o&&(u.o=o(A,"fg",S,u.o)),Q!==u.i&&(u.i=o(K,"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(F,"fg",ae,u.l)),ce!==u.u&&(u.u=o(T,"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(Ce,"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)),ut!==u.p&&(u.p=o(Ee,"fg",ut,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}),C}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!r()},get children(){var C=l("box"),R=l("text"),k=l("text");return f(C,R),f(C,k),o(C,"flexDirection","column"),o(C,"gap",1),f(R,N("No worktree selected.")),f(k,N("Press 'a' to create one.")),V((w)=>{var y=g.text.secondary,P=g.text.accent;return y!==w.e&&(w.e=o(R,"fg",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),C}})]}}),null),V((C)=>o(v,"backgroundColor",g.bg.base,C)),v})()}var jm=150;var pl=be(()=>{te();te();te();te();te();te();te();te();Ue();zt();un();te();wt();Yt();Dn();je();hl();Go()});import*as Lm from"fs";import{join as An,resolve as mn,dirname as to}from"path";function yr(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{vr(to(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 $r(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{vr(to(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=mn(e),c=mn(t);if(!pn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Gm(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return vr(to(c),{recursive:!0}),gl(s,c),{linked:1,errors:[]}}catch(d){return{linked:0,errors:[`Failed to hardlink ${e}: ${d.message}`]}}if(!pn(c))vr(c,{recursive:!0});try{let d=Km(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{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=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")vr(to(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 vr(to(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,pn,bl,_0,gl,Km,Gm,vr,Hm=30;var Ho=be(()=>{({copyFileSync:xl,cpSync:Vm,existsSync:pn,symlinkSync:bl,unlinkSync:_0,linkSync:gl,readdirSync:Km,statSync:Gm,mkdirSync:vr}=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:I,value:v}=await p.read();if(I)break;let R=m.decode(v,{stream:!0}).split(`
|
|
15
|
-
`);if(
|
|
16
|
-
${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};Sr=class Sr 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 Uo(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 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 Zm(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=yr(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=$r(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((I)=>Zm(I,{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 Jo=be(()=>{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"),L(s,()=>e.children,null),L(s,z(ie,{get when(){return e.footer},get children(){return e.footer}}),null),V((c)=>{var a=n(),d=r(),h=e.width,p=e.height,m=e.borderColor??g.border.active,b=e.backgroundColor??g.bg.surface,D=e.gap??0,I=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)),I!==c.h&&(c.h=o(s,"title",I,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),V((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 Er=be(()=>{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,I]=ue([]),[v,C]=ue(""),[R,k]=ue([]),[w,y]=ue(-1),[P,B]=ue(!1),A=()=>{let E=s().toLowerCase();if(!E)return R().slice(0,10);return R().filter((F)=>F.name.toLowerCase().includes(E)).slice(0,10)};Ft(en(()=>q(),async()=>{try{let E=q(),F=await se.listBranches(E);k(F)}catch{k([])}})),an(()=>{queueMicrotask(()=>{c(""),d("")})}),Ft(en(s,()=>{y(-1),B(s().length>0&&A().length>0)})),Ft(en(r,(E)=>{e.setInputFocused(E==="input")})),it(()=>{e.setInputFocused(!1)});let K=(E,F)=>{I((G)=>G.map((j,T)=>T===E?{...j,...F}:j))},q=()=>{let E=t.worktrees()??[],F=e.selectedWorktreePath();return(F?E.find((j)=>j.path===F)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},H=()=>{let E=t.worktrees()??[],F=e.selectedWorktreePath();return(F?E.find((j)=>j.path===F)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},U=()=>{let E=s();if(!E)return"";let F=q(),G=De(),j=bt(G,F),T=E.replace(/\//g,"-"),ee=yl(F);return _m(vo(j.worktreeDir,{repo:ee,branch:T}))};rt(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let F=E.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(P()&&h()==="branch")B(!1),y(-1);p((G)=>G==="branch"?"focus":"branch");return}if(h()==="branch"&&P()&&A().length>0){if(F==="down"||E.sequence==="\x1B[B"){y((G)=>Math.min(G+1,A().length-1));return}if(F==="up"||E.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(),j=m(),T=q(),ee=yl(T);try{let de=De(),ne=bt(de,T),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 Ce=a(),pe=[];if(Ce)pe=Ce.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"})}I(ge);let ve=0;if(K(ve,{status:"running"}),await se.add(G,j,{createBranch:!0},T),K(ve,{status:"done"}),ve++,ne.autoUpstream){K(ve,{status:"running"});try{let Ee=await se.getDefaultRemote(T);if(await se.remoteBranchExists(G,Ee,T))await se.setUpstream(G,Ee,T),K(ve,{status:"done",message:`\u2192 ${Ee}/${G}`});else K(ve,{status:"done",message:"no remote branch"})}catch(Ee){K(ve,{status:"error",message:Ee.message})}ve++}if(ne.copyFiles.length>0)K(ve,{status:"running"}),yr(T,j,ne.copyFiles),K(ve,{status:"done"}),ve++;if(ne.linkFiles.length>0)K(ve,{status:"running"}),$r(T,j,ne.linkFiles),K(ve,{status:"done"}),ve++;let Me={COPSE_BRANCH:G,COPSE_WORKTREE_PATH:j,COPSE_REPO_PATH:T};if(ne.postCreate.length>0)K(ve,{status:"running"}),await pt(ne.postCreate,{cwd:j,env:Me,onOutput:(Ee)=>K(ve,{message:Ee})}),K(ve,{status:"done"}),ve++;if(pe.length>0){K(ve,{status:"running"});let{valid:Ee}=Uo(j,pe);if(pe=Ee,Ee.length>0)gr(j,Ee),Me.COPSE_FOCUS_PATHS=Ee.join(",");K(ve,{status:"done"}),ve++}if(pe.length>0&&ne.monorepo?.hooks&&ne.monorepo.hooks.length>0){K(ve,{status:"running"});let Ee=nr(ne.monorepo.hooks,pe);if(Ee.length>0)await Cr(Ee,"postCreate",{cwd:j,env:Me,repo:ee,branch:G,focusPaths:pe,mainRepoPath:T,onOutput:(W)=>K(ve,{message:W})});K(ve,{status:"done"}),ve++}C("Worktree created successfully!"),i("done"),er.success(`Worktree created: ${G}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),d(""),p("branch"),i("input")},1500)}catch(de){er.error(de.message);let ge=D().findIndex((Ce)=>Ce.status==="running");if(ge>=0)K(ge,{status:"error",message:de.message});C(`${de.message}`),i("error")}return}}if(r()==="error"){if(F==="escape"||F==="return"||F==="enter")i("input"),C("")}}),hr((E)=>{if(!e.inputFocused())return;let F=Qm(E.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 E=P()&&h()==="branch"?A().length*2:0,F=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+E+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),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"),F=l("text");return f(E,F),o(E,"height",1),L(F,()=>"\u2500".repeat(Math.max(me(),1))),V((G)=>{var j=me(),T=g.border.subtle;return j!==G.e&&(G.e=o(E,"width",j,G.e)),T!==G.t&&(G.t=o(F,"fg",T,G.t)),G},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return r()==="input"},get children(){var E=l("box"),F=l("text"),G=l("text"),j=l("text"),T=l("text");return f(E,F),f(E,G),f(E,j),f(E,T),o(E,"flexDirection","row"),o(E,"gap",2),f(F,N("Tab:switch")),f(G,N("\u2191\u2193:pick")),f(j,N("Enter:confirm")),f(T,N("Esc:cancel")),V((ee)=>{var de=g.text.secondary,ne=g.text.secondary,ge=g.text.secondary,Ce=g.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)),ge!==ee.a&&(ee.a=o(j,"fg",ge,ee.a)),Ce!==ee.o&&(ee.o=o(T,"fg",Ce,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"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"flexDirection","row"),o(E,"gap",2),f(F,N("Enter:create")),f(G,N("Esc:back")),V((j)=>{var T=g.text.secondary,ee=g.text.secondary;return T!==j.e&&(j.e=o(F,"fg",T,j.e)),ee!==j.t&&(j.t=o(G,"fg",ee,j.t)),j},{e:void 0,t:void 0}),E}}),z(ie,{get when(){return r()==="creating"},get children(){var E=l("text");return f(E,N("Creating worktree...")),V((F)=>o(E,"fg",g.text.secondary,F)),E}}),z(ie,{get when(){return r()==="done"},get children(){var E=l("text");return f(E,N("\u2713 Done \u2014 returning to list")),V((F)=>o(E,"fg",g.text.secondary,F)),E}}),z(ie,{get when(){return r()==="error"},get children(){var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"flexDirection","row"),o(E,"gap",2),f(F,N("Enter:retry")),f(G,N("Esc:back")),V((j)=>{var T=g.text.secondary,ee=g.text.secondary;return T!==j.e&&(j.e=o(F,"fg",T,j.e)),ee!==j.t&&(j.t=o(G,"fg",ee,j.t)),j},{e:void 0,t:void 0}),E}})]},get children(){return[z(ie,{get when(){return r()==="input"},get children(){return[(()=>{var E=l("box"),F=l("text"),G=l("text"),j=l("text");return f(E,F),f(E,G),f(E,j),o(E,"height",1),f(F,N(">")),o(F,"x",1),o(F,"y",0),f(G,N("New Worktree")),o(G,"x",3),o(G,"y",0),o(j,"x",17),o(j,"y",0),L(j,H),V((T)=>{var ee=me(),de=g.bg.elevated,ne=g.text.accent,ge=g.text.primary,Ce=g.text.secondary;return ee!==T.e&&(T.e=o(E,"width",ee,T.e)),de!==T.t&&(T.t=o(E,"backgroundColor",de,T.t)),ne!==T.a&&(T.a=o(F,"fg",ne,T.a)),ge!==T.o&&(T.o=o(G,"fg",ge,T.o)),Ce!==T.i&&(T.i=o(j,"fg",Ce,T.i)),T},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return L(E,()=>"\u2500".repeat(me())),V((F)=>o(E,"fg",g.border.subtle,F)),E})(),(()=>{var E=l("text");return f(E,N("Branch name")),V((F)=>o(E,"fg",h()==="branch"?g.text.accent:g.text.secondary,F)),E})(),(()=>{var E=l("input");return o(E,"onInput",(F)=>c(F)),o(E,"placeholder","Branch name or search..."),V((F)=>{var G=s(),j=h()==="branch",T=Re(),ee=g.bg.elevated,de=g.text.accent;return G!==F.e&&(F.e=o(E,"value",G,F.e)),j!==F.t&&(F.t=o(E,"focused",j,F.t)),T!==F.a&&(F.a=o(E,"width",T,F.a)),ee!==F.o&&(F.o=o(E,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(E,"cursorColor",de,F.i)),F},{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"))()&&A().length>0},get children(){return z(et,{get each(){return A()},children:(E,F)=>(()=>{var G=l("box"),j=l("text"),T=l("text");return f(G,j),f(G,T),o(G,"height",1),o(j,"x",1),o(j,"y",0),L(j,()=>F()===w()?"\u25B8 ":" ",null),L(j,()=>E.name,null),o(T,"y",0),L(T,()=>E.isRemote?"(remote) ":"",null),L(T,()=>E.lastCommitDate,null),V((ee)=>{var de=me(),ne=F()===w()?g.select.focusedBg:g.bg.surface,ge=F()===w()?g.tab.active:g.text.primary,Ce=Math.max(1+E.name.length+4,27),pe=g.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)),ge!==ee.a&&(ee.a=o(j,"fg",ge,ee.a)),Ce!==ee.o&&(ee.o=o(T,"x",Ce,ee.o)),pe!==ee.i&&(ee.i=o(T,"fg",pe,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),G})()})}}),(()=>{var E=l("text");return f(E,N("Tab to switch fields \xB7 \u2191\u2193 to select branch")),V((F)=>o(E,"fg",g.text.secondary,F)),E})(),(()=>{var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"width","100%"),o(E,"height",1),o(E,"flexDirection","row"),f(F,N("Focus ")),f(G,N("(optional)")),V((j)=>{var T=h()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return T!==j.e&&(j.e=o(F,"fg",T,j.e)),ee!==j.t&&(j.t=o(G,"fg",ee,j.t)),j},{e:void 0,t:void 0}),E})(),(()=>{var E=l("input");return o(E,"onInput",(F)=>d(F)),o(E,"placeholder","apps/web,apps/api (optional)"),V((F)=>{var G=a(),j=h()==="focus",T=Re(),ee=g.bg.elevated,de=g.text.accent;return G!==F.e&&(F.e=o(E,"value",G,F.e)),j!==F.t&&(F.t=o(E,"focused",j,F.t)),T!==F.a&&(F.a=o(E,"width",T,F.a)),ee!==F.o&&(F.o=o(E,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(E,"cursorColor",de,F.i)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return f(E,N("comma-separated paths, e.g. apps/web,apps/api")),V((F)=>o(E,"fg",g.text.secondary,F)),E})(),z(ie,{get when(){return s().length>0},get children(){return[(()=>{var E=l("text");return f(E,N("Target path")),V((F)=>o(E,"fg",g.text.secondary,F)),E})(),(()=>{var E=l("text");return L(E,U),V((F)=>o(E,"fg",g.text.primary,F)),E})()]}}),(()=>{var E=l("text");return f(E,N("Type a branch name, e.g. feature/my-feature")),V((F)=>o(E,"fg",g.text.primary,F)),E})()]}}),z(ie,{get when(){return r()==="preview"},get children(){return[(()=>{var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"height",1),f(F,N(">")),o(F,"x",1),o(F,"y",0),f(G,N("Confirm Worktree")),o(G,"x",3),o(G,"y",0),V((j)=>{var T=me(),ee=g.bg.elevated,de=g.text.accent,ne=g.text.primary;return T!==j.e&&(j.e=o(E,"width",T,j.e)),ee!==j.t&&(j.t=o(E,"backgroundColor",ee,j.t)),de!==j.a&&(j.a=o(F,"fg",de,j.a)),ne!==j.o&&(j.o=o(G,"fg",ne,j.o)),j},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return L(E,()=>"\u2500".repeat(me())),V((F)=>o(E,"fg",g.border.subtle,F)),E})(),(()=>{var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Branch")),L(j,s),V((T)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Path")),L(j,m),V((T)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return a().length>0},get children(){var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Focus")),L(j,a),V((T)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,N("\u2713 Ready to create. Press Enter to confirm.")),V((F)=>o(E,"fg",g.text.success,F)),E})()]}}),z(ie,{get when(){return r()==="creating"},get children(){return[(()=>{var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"height",1),f(F,N(">")),o(F,"x",1),o(F,"y",0),f(G,N("Creating Worktree")),o(G,"x",3),o(G,"y",0),V((j)=>{var T=me(),ee=g.bg.elevated,de=g.text.accent,ne=g.text.primary;return T!==j.e&&(j.e=o(E,"width",T,j.e)),ee!==j.t&&(j.t=o(E,"backgroundColor",ee,j.t)),de!==j.a&&(j.a=o(F,"fg",de,j.a)),ne!==j.o&&(j.o=o(G,"fg",ne,j.o)),j},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return L(E,()=>"\u2500".repeat(me())),V((F)=>o(E,"fg",g.border.subtle,F)),E})(),z(et,{get each(){return D()},children:(E)=>(()=>{var F=l("box"),G=l("text"),j=N(" ");return f(F,G),o(F,"height",1),f(G,j),L(G,(()=>{var T=We(()=>E.status==="done");return()=>T()?"\u2713":We(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),j),L(G,()=>E.label,null),L(F,z(ie,{get when(){return E.message},get children(){var T=l("text");return o(T,"y",0),L(T,()=>E.message),V((ee)=>{var de=E.label.length+4,ne=g.text.secondary;return de!==ee.e&&(ee.e=o(T,"x",de,ee.e)),ne!==ee.t&&(ee.t=o(T,"fg",ne,ee.t)),ee},{e:void 0,t:void 0}),T}}),null),V((T)=>o(G,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,T)),F})()})]}}),z(ie,{get when(){return r()==="done"},get children(){return[(()=>{var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"height",1),f(F,N(">")),o(F,"x",1),o(F,"y",0),f(G,N("Worktree Created")),o(G,"x",3),o(G,"y",0),V((j)=>{var T=me(),ee=g.bg.elevated,de=g.text.success,ne=g.text.primary;return T!==j.e&&(j.e=o(E,"width",T,j.e)),ee!==j.t&&(j.t=o(E,"backgroundColor",ee,j.t)),de!==j.a&&(j.a=o(F,"fg",de,j.a)),ne!==j.o&&(j.o=o(G,"fg",ne,j.o)),j},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return L(E,()=>"\u2500".repeat(me())),V((F)=>o(E,"fg",g.border.subtle,F)),E})(),(()=>{var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Branch")),L(j,s),V((T)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Path")),L(j,m),V((T)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E})(),z(ie,{get when(){return a().length>0},get children(){var E=l("box"),F=l("box"),G=l("text"),j=l("text");return f(E,F),f(E,j),o(E,"height",1),o(E,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,N("Focus")),L(j,a),V((T)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==T.e&&(T.e=o(G,"fg",ee,T.e)),de!==T.t&&(T.t=o(j,"fg",de,T.t)),T},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),F=N("\u2713 ");return f(E,F),L(E,v,null),V((G)=>o(E,"fg",g.text.success,G)),E})()]}}),z(ie,{get when(){return r()==="error"},get children(){return[(()=>{var E=l("box"),F=l("text"),G=l("text");return f(E,F),f(E,G),o(E,"height",1),f(F,N(">")),o(F,"x",1),o(F,"y",0),f(G,N("Error")),o(G,"x",3),o(G,"y",0),V((j)=>{var T=me(),ee=g.bg.elevated,de=g.text.error,ne=g.text.primary;return T!==j.e&&(j.e=o(E,"width",T,j.e)),ee!==j.t&&(j.t=o(E,"backgroundColor",ee,j.t)),de!==j.a&&(j.a=o(F,"fg",de,j.a)),ne!==j.o&&(j.o=o(G,"fg",ne,j.o)),j},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return L(E,()=>"\u2500".repeat(me())),V((F)=>o(E,"fg",g.border.subtle,F)),E})(),(()=>{var E=l("text");return f(E,N("\u2717 Failed")),V((F)=>o(E,"fg",g.text.error,F)),E})(),(()=>{var E=l("box"),F=l("text");return f(E,F),o(E,"height",1),o(F,"x",1),o(F,"y",0),L(F,()=>v().slice(0,Math.max(Re()-3,10))),V((G)=>{var j=Re(),T=g.bg.elevated,ee=g.text.primary;return j!==G.e&&(G.e=o(E,"width",j,G.e)),T!==G.t&&(G.t=o(E,"backgroundColor",T,G.t)),ee!==G.a&&(G.a=o(F,"fg",ee,G.a)),G},{e:void 0,t:void 0,a:void 0}),E})(),(()=>{var E=l("text");return f(E,N("Press Enter or Escape to try again")),V((F)=>o(E,"fg",g.text.secondary,F)),E})()]}})]}})}var Pl=be(()=>{te();te();te();te();te();te();te();te();Ue();zt();un();je();Ye();Ho();gn();Yt();ms();Jo();te();os();wt();Er()});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()??[],C=e.selectedWorktreePath();if(C){let R=v.find((k)=>k.path===C);if(R)return R}return v[e.selectedWorktreeIndex()]},p=()=>{e.setShowRemove(!1),i(!1),c(""),d(!1)},m=async(v)=>{let C=h();if(!C){p();return}if(!v){if(await se.isDirty(C.path)){c("Worktree has changes. Press Enter to force remove."),d(!0);return}}i(!0),c("Removing...");try{let R=De(),k=bt(R,C.repoPath);if(k.postRemove.length>0)c("Running postRemove hooks..."),await pt(k.postRemove,{cwd:C.path,env:{COPSE_BRANCH:C.branch??"",COPSE_WORKTREE_PATH:C.path,COPSE_REPO_PATH:C.repoPath}}).catch(()=>{});await se.remove(C.path,{force:v},C.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(R){let k=R.message;c(`Failed: ${k}`),i(!1),er.error(`Failed: ${k}`)}};rt(async(v)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let C=v.name;if(C==="escape"){p();return}if(a()&&(C==="return"||C==="enter")){d(!1),await m(!0);return}if((C==="return"||C==="enter")&&!r())await m(!1)});let b=()=>h(),D=()=>Math.max(50,Math.min(80,n().width-4)),I=()=>10;return z(rn,{get width(){return D()},get height(){return I()},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"),L(v,z(ie,{get when(){return We(()=>!r())()&&!a()},get children(){var C=l("box"),R=l("text"),k=l("text");return f(C,R),f(C,k),o(C,"height",1),o(C,"flexDirection","row"),o(C,"gap",2),f(R,N("[Enter] Confirm")),f(k,N("[Esc] Cancel")),V((w)=>{var y=g.text.secondary,P=g.text.secondary;return y!==w.e&&(w.e=o(R,"fg",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),C}}),null),L(v,z(ie,{get when(){return a()},get children(){var C=l("box"),R=l("text"),k=l("text");return f(C,R),f(C,k),o(C,"height",1),o(C,"flexDirection","row"),o(C,"gap",2),f(R,N("[Enter] Force remove")),f(k,N("[Esc] Cancel")),V((w)=>{var y=g.text.secondary,P=g.text.secondary;return y!==w.e&&(w.e=o(R,"fg",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),C}}),null),v})()},get children(){return[z(ie,{get when(){return!!b()},get children(){return[(()=>{var v=l("box"),C=l("box"),R=l("text"),k=l("text");return f(v,C),f(v,k),o(v,"height",1),o(v,"flexDirection","row"),f(C,R),o(C,"width",10),o(C,"height",1),f(R,N("Branch")),L(k,()=>b()?.branch??"(detached)"),V((w)=>{var y=g.text.secondary,P=g.text.accent;return y!==w.e&&(w.e=o(R,"fg",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box"),C=l("box"),R=l("text"),k=l("text");return f(v,C),f(v,k),o(v,"height",1),o(v,"flexDirection","row"),f(C,R),o(C,"width",10),o(C,"height",1),f(R,N("Path")),L(k,()=>b()?.path),V((w)=>{var y=g.text.secondary,P=g.text.primary;return y!==w.e&&(w.e=o(R,"fg",y,w.e)),P!==w.t&&(w.t=o(k,"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 L(v,s),V((C)=>o(v,"fg",g.text.warning,C)),v}}),z(ie,{get when(){return r()},get children(){var v=l("text");return L(v,s),V((C)=>o(v,"fg",s().startsWith("Failed")?g.text.error:g.text.success,C)),v}})]}}),z(ie,{get when(){return!b()},get children(){var v=l("text");return f(v,N("No worktree selected.")),V((C)=>o(v,"fg",g.text.secondary,C)),v}})]}})}var Cl=be(()=>{te();te();te();te();te();te();te();te();Ue();zt();un();je();Ye();gn();te();os();wt();Er()});function El(e){let t=ot(),n=mt(),r=nn(),[i,s]=ue("confirming"),[c,a]=ue(""),[d,h]=ue(0),p=()=>{let I=n.worktrees()??[],v=t.selectedWorktrees(),C=[];for(let R of v){let k=I.find((w)=>w.path===R);if(k&&!k.isMain)C.push({branch:k.branch??"(detached)",path:k.path,repoPath:k.repoPath})}return C},m=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},b=async()=>{let I=p();if(I.length===0){m();return}s("executing"),h(0);let v=[],C=[],R=0;for(let k=0;k<I.length;k++){let w=I[k];a(`Removing ${w.branch} (${k+1}/${I.length})...`),h(k);try{if(await se.isDirty(w.path)){C.push(w.branch);continue}let P=De(),B=bt(P,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),R++}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 k=[`Failed: ${v.join("; ")}`];if(C.length>0)k.push(`Skipped ${C.length} dirty worktree(s)`);a(k.join(". ")),r.addToast({message:`Failed to remove ${v.length} worktree(s)`,type:"error"}),setTimeout(m,3000)}else if(C.length>0)s("done"),a(`Removed ${R}, skipped ${C.length} dirty: ${C.join(", ")}`),r.addToast({message:`Removed ${R}, skipped ${C.length} dirty`,type:"warning"}),setTimeout(m,2000);else s("done"),a(`Removed ${I.length} worktree(s) successfully!`),r.addToast({message:`Removed ${I.length} worktrees`,type:"success"}),setTimeout(m,1500)};rt(async(I)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let v=I.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 I=l("box"),v=l("box"),C=l("box"),R=l("text"),k=l("box"),w=l("text"),y=l("box");return f(I,v),o(I,"x",0),o(I,"y",0),f(v,C),f(v,k),f(v,y),o(v,"x",2),o(v,"y",1),o(v,"flexDirection","column"),f(C,R),o(C,"height",1),f(R,N("Bulk Delete Worktrees")),o(R,"x",0),o(R,"y",0),f(k,w),o(k,"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 P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Delete ${D()} worktree(s)?`),V((A)=>o(B,"fg",g.text.warning,A)),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 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 ${P.branch}`),V((K)=>o(A,"fg",g.text.accent,K)),B})()}),z(ie,{get when(){return D()>Math.max(e.h-10,5)},get children(){var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",2),o(B,"y",0),L(B,()=>`... and ${D()-Math.max(e.h-10,5)} more`),V((A)=>o(B,"fg",g.text.secondary,A)),P}}),(()=>{var P=l("box");return o(P,"height",1),P})(),(()=>{var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),f(B,N("Enter:delete all Esc:cancel")),o(B,"x",0),o(B,"y",0),V((A)=>o(B,"fg",g.text.secondary,A)),P})()]}}),null),L(v,z(ie,{get when(){return i()==="executing"},get children(){return[(()=>{var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),V((A)=>o(B,"fg",g.text.warning,A)),P})(),(()=>{var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Progress: ${d()+1}/${D()}`),V((A)=>o(B,"fg",g.text.secondary,A)),P})()]}}),null),L(v,z(ie,{get when(){return i()==="done"},get children(){var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),V((A)=>o(B,"fg",g.text.success,A)),P}}),null),L(v,z(ie,{get when(){return i()==="error"},get children(){var P=l("box"),B=l("text");return f(P,B),o(P,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),V((A)=>o(B,"fg",g.text.error,A)),P}}),null),V((P)=>{var{w:B,h:A}=e,K=g.bg.base,q=e.w-3,H=e.h-2,U=g.bg.base,J=g.text.error,X=g.border.subtle;return B!==P.e&&(P.e=o(I,"width",B,P.e)),A!==P.t&&(P.t=o(I,"height",A,P.t)),K!==P.a&&(P.a=o(I,"backgroundColor",K,P.a)),q!==P.o&&(P.o=o(v,"width",q,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(R,"fg",J,P.s)),X!==P.h&&(P.h=o(w,"fg",X,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}),I})()}var Rl=be(()=>{te();te();te();te();te();te();te();Ue();zt();tr();un();je();Ye();gn();te();wt()});import{decodePasteBytes as ep}from"@opentui/core";import{spawnSync as tp}from"child_process";function xn(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 xs(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: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: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:[bn,'["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: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: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:sp}),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: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: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"),[D,I]=ue(0),[v,C]=ue(0),[R,k]=ue(!1),[w,y]=ue(null),[P,B]=ue(null),[A,K]=ue(""),[q,H]=ue(!1),[U,J]=ue(0),[X,re]=ue([]),[he,_]=ue(-1),[me,Re]=ue(0),E=He(()=>dp(s())),F=He(()=>{let x=[],M=E();for(let O=0;O<M.length;O++){let S=M[O];if(S.kind==="field"&&S.editKind!==null)x.push(O)}return x}),G=()=>{let x=F();if(x.length===0)return-1;let M=Math.max(0,Math.min(D(),x.length-1));return x[M]??-1},j=()=>{let x=G();if(x<0)return null;return E()[x]??null},T=(x,M="info")=>{p(x),b(M)},ee=()=>{let x=r();c(x.cfg),d(x.error)},de=()=>{let x=j();if(!x||!x.editKind||!x.path){T("Field is read-only (press 'e' to edit the file directly)","info");return}let M=x.suggestions??[];if(y(x.editKind),B(x.path),re(M),e.setInputFocused(!0),x.editKind==="string"){let O=typeof x.rawValue==="string"?x.rawValue:"";K(O),_(M.indexOf(O))}else if(x.editKind==="strArray"){let O=Array.isArray(x.rawValue)?x.rawValue:[],S=JSON.stringify(O);K(S),_(M.indexOf(S))}else if(x.editKind==="boolean")H(x.rawValue===!0),_(-1);else if(x.editKind==="theme"){let O=typeof x.rawValue==="string"?x.rawValue:"opencode",S=Dt.indexOf(O);J(S>=0?S:0),_(-1)}else if(x.editKind==="enum"){let O=x.suggestions??[],S=typeof x.rawValue==="string"?x.rawValue:"",Q=O.indexOf(S);Re(Q>=0?Q:0),_(-1)}k(!0)},ne=()=>{k(!1),B(null),y(null),K(""),re([]),_(-1),e.setInputFocused(!1)},ge=(x)=>{let M=X();if(M.length===0)return;let O=(he()+x+M.length)%M.length;_(O);let S=M[O]??"",Q=w();if(Q==="string"||Q==="strArray")K(S)},Ce=()=>{let x=P(),M=w();if(!x||!M){ne();return}let O;if(M==="string"){let S=A();O=S.length===0?void 0:S}else if(M==="strArray"){let S=A().trim();if(S.length===0)O=[];else try{let Q=JSON.parse(S);if(!Array.isArray(Q)||Q.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");O=Q}catch(Q){T(`Invalid JSON: ${Q.message}`,"error");return}}else if(M==="boolean")O=q();else if(M==="theme")O=Dt[U()];else if(M==="enum")O=X()[me()];try{jt();let S=Di();ea(S,x,O);let Q=Zn(S);if(Q.length>0){let oe=Q[0];T(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(Qn(n,`${JSON.stringify(S,null,2)}
|
|
17
|
-
`),M==="theme"&&typeof O==="string"&&Dt.includes(O))pr(O);ee(),T("Saved","success"),k(!1),B(null),y(null),K(""),re([]),_(-1),e.setInputFocused(!1)}catch(S){T(`Save failed: ${S.message}`,"error")}};rt((x)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let M=x.name;if(R()){if(M==="escape"){ne();return}let O=w();if(O==="string"||O==="strArray"){if(M==="tab"){ge(x.shift?-1:1);return}if(M==="return"||M==="enter")Ce();return}if(O==="boolean"){if(M==="space"||M==="tab"||M==="left"||M==="right"||M==="h"||M==="l"){H((S)=>!S);return}if(M==="return"||M==="enter")Ce();return}if(O==="theme"){if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&x.shift){J((S)=>(S-1+Dt.length)%Dt.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){J((S)=>(S+1)%Dt.length);return}if(M==="return"||M==="enter")Ce();return}if(O==="enum"){let S=X();if(S.length===0)return;if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&x.shift){Re((Q)=>(Q-1+S.length)%S.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){Re((Q)=>(Q+1)%S.length);return}if(M==="return"||M==="enter")Ce();return}return}if(e.inputFocused())return;if(M==="j"||M==="down"){I((O)=>Math.min(O+1,F().length-1));return}if(M==="k"||M==="up"){I((O)=>Math.max(O-1,0));return}if(M==="g"){I(0);return}if(M==="G"){I(Math.max(F().length-1,0));return}if(M==="return"||M==="enter"){de();return}if(M==="e"){let O=process.env.EDITOR??process.env.VISUAL??"vi";jt(),tp(O,[n],{stdio:"inherit"}),ee(),T("Config reloaded","info");return}if(M==="r"){ee(),T("Reloaded","info");return}if(M==="i"){jt(),ee(),T("Initialized","info");return}}),hr((x)=>{if(!R())return;let M=w();if(M!=="string"&&M!=="strArray")return;let O=ep(x.bytes).replace(/\r?\n/g,"");if(!O)return;K((S)=>S+O)});let pe=()=>Math.max(t().height-10,5);Ft(en([D,E],()=>{let x=G();if(x<0)return;let M=pe();if(x<v())C(x);else if(x>=v()+M)C(x-M+1)})),it(()=>{e.setInputFocused(!1)});let ve=He(()=>{let x=v();return E().slice(x,x+pe()).map((M,O)=>({row:M,globalIdx:x+O}))}),Me=()=>F().length,Ee=()=>{let x=E().length;if(x<=pe())return"";let M=Math.min(v()+pe(),x);return`${v()+1}-${M}/${x}`},W=()=>t().width,u=()=>Math.max(W()-4-rp-4,20);return(()=>{var x=l("box"),M=l("box"),O=l("box"),S=l("text"),Q=l("b"),oe=l("box"),xe=l("text"),le=l("text"),Ie=l("box");return f(x,M),f(x,Ie),o(x,"x",0),o(x,"y",0),o(x,"width","100%"),o(x,"height","100%"),o(x,"flexDirection","column"),f(M,O),f(M,oe),o(M,"width","100%"),o(M,"height","100%"),o(M,"flexDirection","column"),o(M,"paddingX",2),o(M,"paddingY",1),f(O,S),o(O,"height",1),o(O,"flexDirection","row"),f(S,Q),f(Q,N("Configuration")),L(O,z(ie,{get when(){return!!Ee()},get children(){var Z=l("text"),ae=N(" ");return f(Z,ae),L(Z,()=>` \xB7 ${Ee()}`,null),V((ce)=>o(Z,"fg",g.text.secondary,ce)),Z}}),null),L(O,z(ie,{get when(){return Me()>0},get children(){var Z=l("text"),ae=N(" ");return f(Z,ae),L(Z,()=>` \xB7 ${D()+1}/${Me()}`,null),V((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,N("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,N("Load error:")),L(ce,a),V((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),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"),Pe=l("text"),$e=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","column"),o(Z,"gap",1),f(ae,N("No config file found.")),f(ce,Y),f(ce,Pe),f(ce,$e),o(ce,"flexDirection","row"),o(ce,"gap",1),f(Y,N("Press")),f(Pe,N("i")),f($e,N("to initialize with defaults.")),V((Ve)=>{var Ne=g.text.warning,ze=g.text.secondary,ut=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)),ut!==Ve.a&&(Ve.a=o(Pe,"fg",ut,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),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(W()-34,10))),V((ce)=>o(ae,"fg",g.border.subtle,ce)),Z})(),(()=>{var Z=l("box");return o(Z,"flexDirection","column"),L(Z,z(et,{get each(){return ve()},children:(ae)=>{let ce=ae.row,Y=()=>ae.globalIdx===G(),Pe=()=>R()&&Y(),$e=" ".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,N(" ")),V((ut)=>o(ze,"fg",g.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,$e,null),L(ze,()=>ce.label,null),V((ut)=>o(ze,"fg",g.text.accent,ut)),Ne})();let Ve=()=>{let Ne=Y()?"\u25B8 ":" ";return`${$e}${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 Pe()},get fallback(){return(()=>{var Fe=l("text");return L(Fe,()=>ce.value??""),V((Te)=>o(Fe,"fg",up(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)=>K(Te)),o(Fe,"focused",!0),V((Te)=>{var wn=A(),Ar=u(),Wr=g.bg.elevated,Ir=g.text.accent,Tr=w()==="strArray"?'["a", "b"]':"";return wn!==Te.e&&(Te.e=o(Fe,"value",wn,Te.e)),Ar!==Te.t&&(Te.t=o(Fe,"width",Ar,Te.t)),Wr!==Te.a&&(Te.a=o(Fe,"backgroundColor",Wr,Te.a)),Ir!==Te.o&&(Te.o=o(Fe,"cursorColor",Ir,Te.o)),Tr!==Te.i&&(Te.i=o(Fe,"placeholder",Tr,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 L(Fe,()=>q()?"[x] true":"[ ] false"),V((Te)=>o(Fe,"fg",q()?g.text.success:g.text.secondary,Te)),Fe}}),z(ie,{get when(){return w()==="theme"},get children(){var Fe=l("text");return L(Fe,()=>`\u25C2 ${Bo[Dt[U()]??"opencode"]} (${Dt[U()]??"opencode"}) \u25B8`),V((Te)=>o(Fe,"fg",g.text.accent,Te)),Fe}}),z(ie,{get when(){return w()==="enum"},get children(){var Fe=l("text");return L(Fe,()=>`\u25C2 ${X()[me()]??""} \u25B8`),V((Te)=>o(Fe,"fg",g.text.accent,Te)),Fe}})]}}),null),V((Fe)=>{var Te=Y()?g.select.focusedBg:void 0,wn=Y()?g.text.accent:g.text.secondary;return Te!==Fe.e&&(Fe.e=o(Ne,"backgroundColor",Te,Fe.e)),wn!==Fe.t&&(Fe.t=o(ut,"fg",wn,Fe.t)),Fe},{e:void 0,t:void 0}),Ne})()}})),V((ae)=>o(Z,"height",pe(),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),V((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),L(Ie,z(ie,{get when(){return!R()},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,N("j/k")),f(ce,N(":nav")),V((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,N("g/G")),f(ce,N(":top/bot")),V((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,N("Enter")),f(ce,N(":edit")),V((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,N("e")),f(ce,N(":$EDITOR")),V((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,N("r")),f(ce,N(":reload")),V((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,N("i")),f(ce,N(":init")),V((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(Ie,z(ie,{get when(){return R()},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,N("Enter")),f(ce,N(":save")),V((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,N("Esc")),f(ce,N(":cancel")),V((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,N("Space/Tab")),f(ce,N(":toggle")),V((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,N("Tab/\u2190\u2192")),f(ce,N(":cycle")),V((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,N("Tab/\u2190\u2192")),f(ce,N(":cycle")),V((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,N("JSON")),f(ce,N(":array")),V((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")()&&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,N("Tab")),L(ce,()=>`:preset (${he()+1}/${X().length})`),V((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,N(" ")),L(ce,()=>`(${me()+1}/${X().length})`),V((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),V((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(M,"backgroundColor",ce,Z.t)),Y!==Z.a&&(Z.a=o(S,"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 np=2,rp=30,ps,bn="[]",zo,qo,gs,Xo,op,ip,sp,cp,ap,lp,fp;var Ol=be(()=>{te();te();te();te();te();te();te();te();Ue();zt();Ye();te();wt();ps=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],zo=[bn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],qo=[bn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],gs=[bn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],Xo=[bn,'["echo removed"]'],op=[bn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],ip=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],sp=[bn,'["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=[bn,'["node_modules"]','["node_modules", ".next"]'],fp=[bn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as kr,readdirSync as hp,rmSync as mp}from"fs";import{basename as bs,dirname as ws,join as pp,resolve as Rr}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(!kr(yt()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=De(),r=Rr(t.path),i=bs(r);return[n.repos?.find((a)=>Rr(a.path)===r)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>gp(a)).filter((a)=>!ws(a).includes("{")&&bs(a).includes("{")).map((a)=>{let d=bs(a),h=`^${Ml(d).replace(/\\\{repo\\\}/g,Ml(i)).replace(/\\\{branch\\\}/g,".+")}$`,p=new RegExp(h);return{path:Rr(ws(a)),matches:(m)=>p.test(m)}})}function Al(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Rr(ws(n.path)));return[...t]}function Fl(e,t,n,r){if(!kr(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=Rr(pp(e,s.name));if(!t.has(c))n.add(c)}}function Wl(e){let t=new Set(e.map((i)=>Rr(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)=>kr(t.path))||Al(e).some((t)=>kr(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 Qr)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)=>!kr(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)=>!kr(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 Pp(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 Or(e){let t=await se.list(e).catch(()=>[]),n=[await wp(),await vp(),yp(t),$p(t),Pp(t),Sp(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 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 Yo(e){let t=[];return t.push(await Cp(e)),t.push(...await Ep(e)),t.push(...await Rp(e)),t}var vs=be(()=>{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 Or();r(A)}catch(A){a(A.message)}s(!1)},D=async()=>{if(n()?.healthy)return;h(!0);try{let A=await Yo();m(A);let K=await Or();r(K)}catch(A){a(A.message)}h(!1)};b(),rt((A)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let K=A.name;if(K==="r")b();if(K==="f"&&!i()&&!d()&&!n()?.healthy)D()});let I=()=>t().width,v=()=>t().height,C=()=>Math.max(50,Math.min(80,I()-4)),R=()=>{let A=P()+B()+8+(B()>0?2:0);return Math.max(12,Math.min(A,v()-4))},k=()=>Math.max(C()-4,10),w=(A)=>{if(A==="pass")return"\u2713";if(A==="warn")return"\u26A0";return"\u2717"},y=(A)=>{if(A==="pass")return g.text.success;if(A==="warn")return g.text.warning;return g.text.error},P=()=>n()?.checks.length??0,B=()=>p().length;return z(rn,{get width(){return C()},get height(){return R()},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 A=l("box"),K=l("text");return f(A,K),o(A,"height",1),L(K,()=>"\u2500".repeat(Math.max(k(),1))),V((q)=>{var H=k(),U=g.border.subtle;return H!==q.e&&(q.e=o(A,"width",H,q.e)),U!==q.t&&(q.t=o(K,"fg",U,q.t)),q},{e:void 0,t:void 0}),A})(),(()=>{var A=l("box"),K=l("text"),q=l("text");return f(A,K),f(A,q),o(A,"flexDirection","row"),o(A,"gap",2),f(K,N("r:recheck")),L(A,z(ie,{get when(){return!n()?.healthy},get children(){var H=l("text");return f(H,N("f:fix")),V((U)=>o(H,"fg",g.text.secondary,U)),H}}),q),f(q,N("Esc:back")),V((H)=>{var U=g.text.secondary,J=g.text.secondary;return U!==H.e&&(H.e=o(K,"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(wr,{label:"Running checks..."})}}),z(ie,{get when(){return d()},get children(){var A=l("text");return f(A,N("Running auto-fix...")),V((K)=>o(A,"fg",g.text.accent,K)),A}}),z(ie,{get when(){return We(()=>!i()&&!d())()&&!!c()},get children(){var A=l("text"),K=N("Error: ");return f(A,K),L(A,c,null),V((q)=>o(A,"fg",g.text.error,q)),A}}),z(ie,{get when(){return We(()=>!i()&&!d()&&!c())()&&!!n()},get children(){return[(()=>{var A=l("text");return f(A,N("Health Checks")),V((K)=>o(A,"fg",g.text.accent,K)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(k())),V((K)=>o(A,"fg",g.border.subtle,K)),A})(),z(et,{get each(){return n().checks},children:(A)=>{return(()=>{var K=l("box"),q=l("text"),H=l("text"),U=N(":"),J=l("text");return f(K,q),f(K,H),f(K,J),o(K,"width","100%"),o(K,"height",1),o(K,"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),V((X)=>{var re=y(A.status),he=g.text.primary,_=A.name.length+4,me=g.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}),K})()}}),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(k())),V((K)=>o(A,"fg",g.border.subtle,K)),A})(),(()=>{var A=l("text");return L(A,(()=>{var K=We(()=>!!n().healthy);return()=>K()?"\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`})()),V((K)=>o(A,"fg",n().healthy?g.text.success:g.text.warning,K)),A})(),z(ie,{get when(){return B()>0},get children(){return[(()=>{var A=l("text");return f(A,N("Fix Results")),V((K)=>o(A,"fg",g.text.accent,K)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(k())),V((K)=>o(A,"fg",g.border.subtle,K)),A})(),z(et,{get each(){return p()},children:(A)=>{return(()=>{var K=l("box"),q=l("text"),H=l("text");return f(K,q),f(K,H),o(K,"width","100%"),o(K,"height",1),o(K,"flexDirection","row"),L(q,()=>A.success?"\u2713":"\u2717"),o(H,"x",2),o(H,"y",0),L(H,()=>A.action),L(K,z(ie,{get when(){return!!A.detail},get children(){var U=l("text"),J=N("("),X=N(")");return f(U,J),f(U,X),o(U,"y",0),L(U,()=>A.detail,X),V((re)=>{var he=A.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),V((U)=>{var J=A.success?g.text.success:g.text.error,X=g.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}),K})()}})]}})]}})]}})}var Tl=be(()=>{te();te();te();te();te();te();te();te();Ue();zt();vs();te();wt();Er();Go()});var jl={};qe(jl,{writePin:()=>$s,removePin:()=>Ps,readPin:()=>ro,listPinnedWorktrees:()=>Ss,isPinned:()=>Wn});import{readFileSync as Bl,writeFileSync as kp,unlinkSync as Op,mkdirSync as Mp,existsSync as ys}from"fs";import{join as Fp,dirname as Nl}from"path";function no(e){return tn(e,"copse-pin")}function Dp(e){let t=no(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 $s(e,t){let n=no(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 ro(e){let t=no(e);if(!ys(t))return null;return JSON.parse(Bl(t,"utf-8"))}function Ps(e){let t=no(e);if(!ys(t))return;Op(t)}function Wn(e){return ys(no(e))}function Ss(e){return e.filter((t)=>Wn(t.path))}var Mr=be(()=>{Mn()});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 C=b.get(v.repoName);if(C)C.push(v);else b.set(v.repoName,[v])}let D=0,I=!0;for(let[v,C]of b){if(!I)m.push({type:"separator"});I=!1,m.push({type:"header",repoName:v});for(let R of C)m.push({type:"worktree",wt:R,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(),I=b[D];if(I&&!I.isMain)e.toggleWorktreeSelection(I.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 g.text.warning;if(p.isDirty)return g.text.error;return g.text.success},h=(p,m)=>{let b=p.branch??"(detached)",D=Math.max(8,Cs-(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,N("Loading...")),V((b)=>o(m,"fg",g.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"),C=l("text"),R=l("b");return f(v,C),o(v,"width","100%"),o(v,"height",1),f(C,R),L(R,()=>m.repoName),V((k)=>o(C,"fg",g.text.accent,k)),v})();if(m.type==="separator")return(()=>{var v=l("box"),C=l("text");return f(v,C),o(v,"width","100%"),o(v,"height",1),f(C,N("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),V((R)=>o(C,"fg",g.border.subtle,R)),v})();let b=m.wt,D=()=>m.flatIdx===r(),I=()=>e.selectedWorktrees().has(b.path);return(()=>{var v=l("box"),C=l("text"),R=l("text");return f(v,C),f(v,R),o(v,"width","100%"),o(v,"height",1),o(v,"paddingX",1),o(v,"onMouseDown",()=>i(m.flatIdx)),o(C,"x",0),o(C,"y",0),L(C,()=>a(b)),o(R,"x",2),o(R,"y",0),L(R,()=>h(b,!1)),L(v,z(ie,{get when(){return I()},get children(){var k=l("text");return f(k,N("\u2713")),o(k,"x",23),o(k,"y",0),V((w)=>o(k,"fg",g.text.accent,w)),k}}),null),L(v,z(ie,{get when(){return!!Gt(b.path)},get children(){var k=l("text");return f(k,N("S")),o(k,"y",0),V((w)=>{var y=Cs-(I()?3:1),P=g.text.accent;return y!==w.e&&(w.e=o(k,"x",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),k}}),null),L(v,z(ie,{get when(){return Wn(b.path)},get children(){var k=l("text");return f(k,N("P")),o(k,"y",0),V((w)=>{var y=Cs-(I()?5:3)+(Gt(b.path)?0:2),P=g.text.warning;return y!==w.e&&(w.e=o(k,"x",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),k}}),null),V((k)=>{var w=D()?g.select.focusedBg:I()?g.bg.elevated:g.bg.surface,y=d(b),P=D()?g.tab.active:g.text.primary;return w!==k.e&&(k.e=o(v,"backgroundColor",w,k.e)),y!==k.t&&(k.t=o(C,"fg",y,k.t)),P!==k.a&&(k.a=o(R,"fg",P,k.a)),k},{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()}`),V((D)=>o(b,"fg",g.text.accent,D)),m}})]}}),null),V((m)=>o(p,"backgroundColor",g.bg.surface,m)),p})()}var Cs=24;var Vl=be(()=>{te();te();te();te();te();te();te();Ue();zt();un();te();wt();Mr();Dn()});import{decodePasteBytes as Ap}from"@opentui/core";function Kl(){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 R=t.worktrees()??[],k=e.selectedWorktreePath();if(k){let w=R.find((y)=>y.path===k);if(w)return w}return R[e.selectedWorktreeIndex()]},d=()=>{let R=process.env.VISUAL||process.env.EDITOR;if(R)return R;let k=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let w of k)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 R=a();if(!R||R.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let R=a();if(!R)return;let k=d();if(!k)return;e.setShowCommandPalette(!1),Bun.spawn([k,R.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((R)=>({id:`theme:${R}`,label:`Theme: ${Bo[R]}`,description:"Switch color theme",action:()=>{pr(R);try{let k=yt(),w={...De()};w.theme=R,Qn(k,JSON.stringify(w,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),p=He(()=>{let R=r().toLowerCase();if(!R)return h();return h().filter((k)=>k.label.toLowerCase().includes(R)||k.description.toLowerCase().includes(R))});rt((R)=>{if(!e.showCommandPalette())return;let k=R.name;if(k==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(k==="return"||k==="enter"){let w=p()[s()];if(w)w.action();i(""),c(0);return}if(k==="down"||k==="j"){c((w)=>Math.min(w+1,p().length-1));return}if(k==="up"||k==="k"){c((w)=>Math.max(w-1,0));return}}),hr((R)=>{if(!e.inputFocused())return;let k=Ap(R.bytes).replace(/\r?\n/g,"");if(!k)return;i((w)=>w+k),c(0)});let m=(R)=>{i(R),c(0)},b=()=>Math.max(50,Math.min(80,n().width-4)),D=()=>Math.max(10,Math.min(p().length+8,n().height-4)),I=()=>b()-4,v=()=>Math.max(I()-2,1),C=()=>D()-8;return z(rn,{get width(){return b()},get height(){return D()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var R=l("box"),k=l("text");return f(R,k),o(R,"height",1),L(k,()=>"\u2500".repeat(Math.max(I(),1))),V((w)=>{var y=I(),P=g.border.subtle;return y!==w.e&&(w.e=o(R,"width",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box"),k=l("text"),w=l("text"),y=l("text");return f(R,k),f(R,w),f(R,y),o(R,"flexDirection","row"),o(R,"gap",2),f(k,N("\u2191\u2193:navigate")),f(w,N("Enter:run")),f(y,N("Esc:close")),V((P)=>{var B=g.text.secondary,A=g.text.secondary,K=g.text.secondary;return B!==P.e&&(P.e=o(k,"fg",B,P.e)),A!==P.t&&(P.t=o(w,"fg",A,P.t)),K!==P.a&&(P.a=o(y,"fg",K,P.a)),P},{e:void 0,t:void 0,a:void 0}),R})()]},get children(){return[(()=>{var R=l("box"),k=l("text"),w=l("input");return f(R,k),f(R,w),o(R,"height",1),o(R,"flexDirection","row"),f(k,N("> ")),o(w,"onInput",m),o(w,"placeholder","Search commands..."),o(w,"focused",!0),V((y)=>{var P=I(),B=g.bg.elevated,A=g.text.accent,K=r(),q=v(),H=g.bg.elevated,U=g.text.primary,J=g.text.secondary,X=g.text.accent,re=g.bg.elevated;return P!==y.e&&(y.e=o(R,"width",P,y.e)),B!==y.t&&(y.t=o(R,"backgroundColor",B,y.t)),A!==y.a&&(y.a=o(k,"fg",A,y.a)),K!==y.o&&(y.o=o(w,"value",K,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}),R})(),(()=>{var R=l("box"),k=l("text");return f(R,k),o(R,"height",1),L(k,()=>"\u2500".repeat(Math.max(I(),1))),V((w)=>{var y=I(),P=g.border.subtle;return y!==w.e&&(w.e=o(R,"width",y,w.e)),P!==w.t&&(w.t=o(k,"fg",P,w.t)),w},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box");return o(R,"flexDirection","column"),L(R,z(et,{get each(){return p().slice(0,C())},children:(k,w)=>{let y=()=>w()===s();return(()=>{var P=l("box"),B=l("text"),A=l("text");return f(P,B),f(P,A),o(P,"height",1),o(P,"onMouseDown",()=>{c(w()),k.action()}),o(B,"x",2),o(B,"y",0),L(B,()=>k.label),o(A,"y",0),L(A,()=>k.description),V((K)=>{var q=I(),H=y()?g.select.focusedBg:g.bg.surface,U=y()?g.tab.active:g.text.primary,J=Math.max(25,k.label.length+4),X=g.text.secondary;return q!==K.e&&(K.e=o(P,"width",q,K.e)),H!==K.t&&(K.t=o(P,"backgroundColor",H,K.t)),U!==K.a&&(K.a=o(B,"fg",U,K.a)),J!==K.o&&(K.o=o(A,"x",J,K.o)),X!==K.i&&(K.i=o(A,"fg",X,K.i)),K},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),P})()}}),null),L(R,z(ie,{get when(){return p().length===0},get children(){var k=l("box"),w=l("text");return f(k,w),o(k,"height",1),f(w,N("No commands found")),o(w,"x",2),o(w,"y",0),V((y)=>o(w,"fg",g.text.secondary,y)),k}}),null),V((k)=>{var w=I(),y=C(),P=g.bg.surface;return w!==k.e&&(k.e=o(R,"width",w,k.e)),y!==k.t&&(k.t=o(R,"height",y,k.t)),P!==k.a&&(k.a=o(R,"backgroundColor",P,k.a)),k},{e:void 0,t:void 0,a:void 0}),R})()]}})}var Gl=be(()=>{te();te();te();te();te();te();te();Ue();zt();un();te();wt();Er();Ye()});import{join as Wp}from"path";import{existsSync as Ip}from"fs";function Hl(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(!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===Es)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(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,N("Multiple focus paths set. Pick one to open:")),V((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"),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),V((I)=>o(D,"fg",m()===r()?g.text.accent:p.value===Es?g.text.secondary:g.text.primary,I)),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,N("j/k:nav enter:open esc:cancel")),V((b)=>o(m,"fg",g.text.secondary,b)),p})()]}})}})}var Es="__root__";var Ul=be(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();tr();wt();Er()});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 g.text.success;if(e==="warning")return g.text.warning;if(e==="error")return g.text.error;return g.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 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),L(a,()=>`${Tp(i.type)} ${i.message}`),V((d)=>{var h=s(),p=t(),m=g.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})()})),V((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=be(()=>{te();te();te();te();te();te();Ue();te();tr();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=nn(),i=fn(),[s,c]=ue(!1),a=nt(),d=()=>{let C=n.worktrees()??[],R=t.selectedWorktreePath();if(R){let k=C.find((w)=>w.path===R);if(k)return k}return C[t.selectedWorktreeIndex()]};Ft(()=>{let C=n.worktrees()??[],R=C.map((P)=>P.path);if(t.pruneSelectedWorktrees(R),C.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let k=t.selectedWorktreePath();if(k){let P=C.findIndex((B)=>B.path===k);if(P>=0){if(P!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(P);return}}let w=Math.min(t.selectedWorktreeIndex(),C.length-1),y=C[w]?.path??null;if(w!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(w);if(y!==t.selectedWorktreePath())t.setSelectedWorktreePath(y)}),rt((C)=>{let R=C.name;if(R==="escape"){if(t.focusPickerData()){t.setFocusPickerData(null);return}if(t.showBulkActions()){t.setShowBulkActions(!1);return}if(t.showDetailView()){t.setShowDetailView(!1);return}if(t.showRemove()){t.setShowRemove(!1);return}if(s()){c(!1);return}if(t.inputFocused())return;if(t.activeTab()!=="list"){t.setActiveTab("list");return}}if(C.ctrl&&R==="p"){t.setShowCommandPalette(!0);return}if(t.focusPickerData())return;if(t.inputFocused())return;if(t.showCommandPalette())return;if(t.showBulkActions())return;if(t.showRemove())return;if(t.activeTab()==="add")return;if(t.activeTab()==="list"){if(t.showDetailView())return;if(R==="a"){t.setActiveTab("add");return}if(R==="r"){n.refetch();return}if(R==="d"){let k=d();if(k&&!k.isMain)t.setShowRemove(!0);return}if(R==="o"){let k=d();if(!k)return;let w=jo(k.path);if(w.kind==="multiple"){t.setFocusPickerData({worktreePath:k.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(R==="h"){t.setActiveTab("doctor");return}if(R==="q"||R==="Q")i.destroy();if(R==="?")c((k)=>!k)});let h=()=>a().width,p=()=>a().height,m=()=>e.repoPath.split("/").pop()??"",b=()=>{let C=n.repoNames();if(C.length<=1)return m();return`${C.length} repos`},D=()=>{let C=n.worktrees()??[];return`${m()} \xB7 ${C.length} worktrees`},I=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},v=()=>h()-jp-1;return(()=>{var C=l("box"),R=l("box"),k=l("text"),w=l("text"),y=l("box"),P=l("box"),B=l("box"),A=l("text"),K=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(C,R),f(C,y),f(C,U),f(C,J),f(C,re),o(C,"flexDirection","column"),f(R,k),f(R,w),o(R,"height",1),f(k,N("\uD83C\uDF33 copse")),o(k,"x",1),o(k,"y",0),o(w,"y",0),L(w,b),f(y,P),f(y,q),f(y,H),o(y,"flexGrow",1),o(y,"flexDirection","row"),f(P,B),o(P,"width",28),o(P,"flexShrink",0),o(P,"flexDirection","column"),f(B,A),o(B,"height",1),o(B,"paddingX",1),f(A,K),L(K,I),L(P,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(C,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,N("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),o(he,"x",1),o(he,"y",0),L(C,z(ie,{get when(){return We(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),Re=l("text"),E=l("text"),F=l("box"),G=l("text"),j=l("text"),T=l("box"),ee=l("text"),de=l("text"),ne=l("box"),ge=l("text"),Ce=l("text"),pe=l("box"),ve=l("text"),Me=l("text"),Ee=l("box"),W=l("box"),u=l("text"),x=l("text"),M=l("box"),O=l("text"),S=l("text"),Q=l("box"),oe=l("box"),xe=l("text");return f(_,me),f(_,F),f(_,T),f(_,ne),f(_,pe),f(_,Ee),f(_,W),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,Re),f(me,E),o(me,"height",1),f(Re,N("q")),o(Re,"x",1),f(E,N("Quit")),o(E,"x",8),f(F,G),f(F,j),o(F,"height",1),f(G,N("j/k")),o(G,"x",1),f(j,N("Navigate list")),o(j,"x",8),f(T,ee),f(T,de),o(T,"height",1),f(ee,N("a")),o(ee,"x",1),f(de,N("Add worktree")),o(de,"x",8),f(ne,ge),f(ne,Ce),o(ne,"height",1),f(ge,N("d")),o(ge,"x",1),f(Ce,N("Delete worktree")),o(Ce,"x",8),f(pe,ve),f(pe,Me),o(pe,"height",1),f(ve,N("r")),o(ve,"x",1),f(Me,N("Refresh list")),o(Me,"x",8),o(Ee,"height",1),f(W,u),f(W,x),o(W,"height",1),f(u,N("Ctrl+P")),o(u,"x",1),f(x,N("Command palette")),o(x,"x",8),f(M,O),f(M,S),o(M,"height",1),f(O,N("?")),o(O,"x",1),f(S,N("Toggle help")),o(S,"x",8),o(Q,"height",1),f(oe,xe),o(oe,"height",1),f(xe,N("Press ? to close")),o(xe,"x",1),V((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,ut=g.text.primary,Fe=g.text.secondary,Te=g.text.primary,wn=g.text.secondary,Ar=g.text.primary,Wr=g.text.secondary,Ir=g.text.primary,Tr=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(G,"fg",Ve,le.h)),Ne!==le.r&&(le.r=o(j,"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)),Fe!==le.u&&(le.u=o(ge,"fg",Fe,le.u)),Te!==le.c&&(le.c=o(Ce,"fg",Te,le.c)),wn!==le.w&&(le.w=o(ve,"fg",wn,le.w)),Ar!==le.m&&(le.m=o(Me,"fg",Ar,le.m)),Wr!==le.f&&(le.f=o(u,"fg",Wr,le.f)),Ir!==le.y&&(le.y=o(x,"fg",Ir,le.y)),Tr!==le.g&&(le.g=o(O,"fg",Tr,le.g)),Is!==le.p&&(le.p=o(S,"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),L(C,z(ie,{get when(){return t.activeTab()==="add"},get children(){return z($l,{})}}),null),L(C,z(ie,{get when(){return t.activeTab()==="doctor"},get children(){return z(Il,{})}}),null),L(C,z(ie,{get when(){return t.showRemove()},get children(){return z(Sl,{})}}),null),L(C,z(ie,{get when(){return t.showCommandPalette()},get children(){return z(Kl,{})}}),null),L(C,z(Hl,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||Xl()}),null),V((_)=>{var me=h(),Re=p(),E=g.bg.base,F=g.bg.overlay,G=g.text.accent,j=h()-b().length-2,T=g.text.secondary,ee=g.bg.surface,de=g.text.accent,ne=g.bg.base,ge=g.bg.overlay,Ce=g.border.subtle,pe=g.bg.overlay,ve=g.text.secondary;return me!==_.e&&(_.e=o(C,"width",me,_.e)),Re!==_.t&&(_.t=o(C,"height",Re,_.t)),E!==_.a&&(_.a=o(C,"backgroundColor",E,_.a)),F!==_.o&&(_.o=o(R,"backgroundColor",F,_.o)),G!==_.i&&(_.i=o(k,"fg",G,_.i)),j!==_.n&&(_.n=o(w,"x",j,_.n)),T!==_.s&&(_.s=o(w,"fg",T,_.s)),ee!==_.h&&(_.h=o(P,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=o(A,"fg",de,_.r)),ne!==_.d&&(_.d=o(H,"backgroundColor",ne,_.d)),ge!==_.l&&(_.l=o(J,"backgroundColor",ge,_.l)),Ce!==_.u&&(_.u=o(X,"fg",Ce,_.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}),C})()}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=En(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))pr(n);await Ha(()=>z(tl,{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=be(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();un();je();pl();Pl();Cl();Rl();Ol();Tl();Vl();wt();Gl();Ul();tr();zl();tr();Ye();Yt()});import*as Ql from"readline";async function In(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=be(()=>{je();qt()});import{mkdirSync as Kp,writeFileSync as Gp}from"fs";import{dirname as Hp}from"path";function Up(e){return tn(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=be(()=>{Mn()});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 Rs(e){return tn(e,"copse-activity.log")}function Ut(e,t){let n=Rs(e);qp(Qp(n),{recursive:!0}),Jp(n,`${JSON.stringify(t)}
|
|
18
|
-
`,{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(`
|
|
3
|
+
var Iu=Object.defineProperty;var Bu=(e)=>e;function Vu(e,t){this[e]=Bu.bind(null,t)}var Ne=(e,t)=>{for(var n in t)Iu(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Vu.bind(t,n)})};var ge=(e,t)=>()=>(e&&(t=e(e=0)),t);var cn=import.meta.require;import{existsSync as Pi,readdirSync as Md,statSync as qc}from"fs";import{join as Ai,resolve as Pd}from"path";function Wd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Yc(e){return Pd(Wd(e))}function jd(e){let t=Ai(e,".git");if(!Pi(t))return!1;try{return qc(t).isDirectory()}catch{return!1}}function Ld(e){return Pi(Ai(e,".git"))}function Id(e){if(!Pi(e))return!1;try{return qc(e).isDirectory()}catch{return!1}}function Bd(e){let t=e.map((n)=>n.trim()).filter(Boolean).map((n)=>new Bun.Glob(n));if(t.length===0)return()=>!1;return(n)=>t.some((o)=>o.match(n))}function Vd(e,t=Xc,n=[]){let o=Math.max(1,Math.min(t,Ad)),i=Yc(e);if(!Id(i))return[];let s=Bd(n),c=new Set,a=(u,h)=>{let m;try{m=Md(u,{withFileTypes:!0})}catch{return}for(let p of m){if(!p.isDirectory()||s(p.name))continue;let w=Ai(u,p.name);if(Ld(w)){if(jd(w))c.add(w);continue}if(h<o)a(w,h+1)}};return a(i,1),[...c].sort((u,h)=>u.localeCompare(h))}function Zc(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>Yc(i.path))),o=[];for(let i of t){let s=i.depth??Xc,c=i.exclude??[],a=Vd(i.path,s,c);for(let u of a){if(n.has(u))continue;n.add(u),o.push({path:u,...i.defaults??{}})}}if(o.length===0)return e;return{...e,repos:[...e.repos??[],...o]}}var Xc=1,Ad=3;var Qc=()=>{};import{join as ji,resolve as wr}from"path";import*as ln from"fs";function Vt(e,t,n){if(!Array.isArray(e)||e.some((o)=>typeof o!=="string"))n.push({field:t,message:"Must be an array of strings"})}function ea(){let t=Bun.env.XDG_CONFIG_HOME??ji(Bun.env.HOME??"~",".config");return ji(t,"copse")}function Ct(){return ji(ea(),"config.json")}function $n(e){let t=[];if(typeof e!=="object"||e===null)return t.push({field:"root",message:"Config must be a JSON object"}),t;let n=e;if(!("version"in n))t.push({field:"version",message:"Required field 'version' is missing"});else if(n.version!==1)t.push({field:"version",message:`Expected version 1, got ${JSON.stringify(n.version)}`});for(let o of Object.keys(n))if(!Hd.has(o))t.push({field:o,message:`Unknown field '${o}'`});if("defaults"in n&&n.defaults!==void 0)if(typeof n.defaults!=="object"||n.defaults===null)t.push({field:"defaults",message:"Must be an object"});else{let o=n.defaults;for(let i of Object.keys(o))if(!Nc.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in o&&typeof o.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in o&&typeof o.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});if("base"in o&&typeof o.base!=="string")t.push({field:"defaults.base",message:"Must be a string"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in o)Vt(o[i],`defaults.${i}`,t);if("sharedDeps"in o&&o.sharedDeps!==void 0)if(typeof o.sharedDeps!=="object"||o.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Wi(o.sharedDeps,"defaults.sharedDeps",t)}if("repos"in n&&n.repos!==void 0)if(!Array.isArray(n.repos))t.push({field:"repos",message:"Must be an array"});else for(let o=0;o<n.repos.length;o++){let i=n.repos[o],s=`repos[${o}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Kd.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("worktreeDir"in c&&typeof c.worktreeDir!=="string")t.push({field:`${s}.worktreeDir`,message:"Must be a string"});if("autoUpstream"in c&&typeof c.autoUpstream!=="boolean")t.push({field:`${s}.autoUpstream`,message:"Must be a boolean"});if("base"in c&&typeof c.base!=="string")t.push({field:`${s}.base`,message:"Must be a string"});for(let a of["copyFiles","linkFiles","postCreate","postRemove"])if(a in c)Vt(c[a],`${s}.${a}`,t);if("sharedDeps"in c&&c.sharedDeps!==void 0)if(typeof c.sharedDeps!=="object"||c.sharedDeps===null)t.push({field:`${s}.sharedDeps`,message:"Must be an object"});else Wi(c.sharedDeps,`${s}.sharedDeps`,t);if("monorepo"in c&&c.monorepo!==void 0)if(typeof c.monorepo!=="object"||c.monorepo===null)t.push({field:`${s}.monorepo`,message:"Must be an object"});else{let a=c.monorepo;for(let u of Object.keys(a))if(!Ud.has(u))t.push({field:`${s}.monorepo.${u}`,message:`Unknown field '${u}'`});if("autoDetect"in a&&typeof a.autoDetect!=="boolean")t.push({field:`${s}.monorepo.autoDetect`,message:"Must be a boolean"});if("extraPatterns"in a&&a.extraPatterns!==void 0)Vt(a.extraPatterns,`${s}.monorepo.extraPatterns`,t);if("hooks"in a&&a.hooks!==void 0)if(!Array.isArray(a.hooks))t.push({field:`${s}.monorepo.hooks`,message:"Must be an array"});else for(let u=0;u<a.hooks.length;u++){let h=a.hooks[u];if(typeof h!=="object"||h===null){t.push({field:`${s}.monorepo.hooks[${u}]`,message:"Must be an object"});continue}if(!("glob"in h)||typeof h.glob!=="string")t.push({field:`${s}.monorepo.hooks[${u}].glob`,message:"Required string field"});if("copyFiles"in h&&h.copyFiles!==void 0)Vt(h.copyFiles,`${s}.monorepo.hooks[${u}].copyFiles`,t);if("linkFiles"in h&&h.linkFiles!==void 0)Vt(h.linkFiles,`${s}.monorepo.hooks[${u}].linkFiles`,t);if("postCreate"in h&&h.postCreate!==void 0)Vt(h.postCreate,`${s}.monorepo.hooks[${u}].postCreate`,t);if("postRemove"in h&&h.postRemove!==void 0)Vt(h.postRemove,`${s}.monorepo.hooks[${u}].postRemove`,t)}}}if("workspaces"in n&&n.workspaces!==void 0)if(!Array.isArray(n.workspaces))t.push({field:"workspaces",message:"Must be an array"});else for(let o=0;o<n.workspaces.length;o++){let i=n.workspaces[o],s=`workspaces[${o}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Gd.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("depth"in c&&c.depth!==void 0){if(typeof c.depth!=="number"||!Number.isInteger(c.depth)||c.depth<1||c.depth>3)t.push({field:`${s}.depth`,message:"Must be an integer between 1 and 3"})}if("exclude"in c&&c.exclude!==void 0)Vt(c.exclude,`${s}.exclude`,t);if("defaults"in c&&c.defaults!==void 0)if(typeof c.defaults!=="object"||c.defaults===null||Array.isArray(c.defaults))t.push({field:`${s}.defaults`,message:"Must be an object"});else{let a=c.defaults;for(let u of Object.keys(a))if(!Nc.has(u))t.push({field:`${s}.defaults.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${s}.defaults.worktreeDir`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${s}.defaults.autoUpstream`,message:"Must be a boolean"});if("base"in a&&typeof a.base!=="string")t.push({field:`${s}.defaults.base`,message:"Must be a string"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${s}.defaults.${u}`,t);if("sharedDeps"in a&&a.sharedDeps!==void 0)if(typeof a.sharedDeps!=="object"||a.sharedDeps===null)t.push({field:`${s}.defaults.sharedDeps`,message:"Must be an object"});else Wi(a.sharedDeps,`${s}.defaults.sharedDeps`,t)}}if("templates"in n&&n.templates!==void 0)if(typeof n.templates!=="object"||n.templates===null||Array.isArray(n.templates))t.push({field:"templates",message:"Must be an object (key-value map)"});else{let o=n.templates;for(let[i,s]of Object.entries(o)){let c=`templates.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let u of Object.keys(a))if(!Td.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${c}.worktreeDir`,message:"Must be a string"});if("base"in a&&typeof a.base!=="string")t.push({field:`${c}.base`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${c}.autoUpstream`,message:"Must be a boolean"});for(let u of["copyFiles","linkFiles","postCreate","postRemove"])if(u in a)Vt(a[u],`${c}.${u}`,t)}}if("lifecycle"in n&&n.lifecycle!==void 0)if(typeof n.lifecycle!=="object"||n.lifecycle===null)t.push({field:"lifecycle",message:"Must be an object"});else{let o=n.lifecycle;for(let i of Object.keys(o))if(!Jd.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in o&&typeof o.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in o&&(typeof o.staleAfterDays!=="number"||o.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in o&&(typeof o.maxWorktrees!=="number"||o.maxWorktrees<1))t.push({field:"lifecycle.maxWorktrees",message:"Must be a positive number"})}if("sessions"in n&&n.sessions!==void 0)if(typeof n.sessions!=="object"||n.sessions===null)t.push({field:"sessions",message:"Must be an object"});else{let o=n.sessions;for(let i of Object.keys(o))if(!zd.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in o&&typeof o[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in o&&typeof o.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in o&&typeof o.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in o&&o.layouts!==void 0)if(typeof o.layouts!=="object"||o.layouts===null||Array.isArray(o.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=o.layouts;for(let[s,c]of Object.entries(i)){let a=`sessions.layouts.${s}`;if(typeof c!=="object"||c===null){t.push({field:a,message:"Must be an object"});continue}let u=c;if(!("windows"in u)||!Array.isArray(u.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let h=0;h<u.windows.length;h++){let m=u.windows[h];if(typeof m!=="object"||m===null){t.push({field:`${a}.windows[${h}]`,message:"Must be an object"});continue}if(!("name"in m)||typeof m.name!=="string")t.push({field:`${a}.windows[${h}].name`,message:"Required string field"});if("command"in m&&typeof m.command!=="string")t.push({field:`${a}.windows[${h}].command`,message:"Must be a string"})}}}if("defaultLayout"in o&&typeof o.defaultLayout==="string"&&"layouts"in o&&typeof o.layouts==="object"&&o.layouts!==null){let i=o.layouts;if(!(o.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${o.defaultLayout}' does not exist in sessions.layouts`})}}if("profiles"in n&&n.profiles!==void 0)if(typeof n.profiles!=="object"||n.profiles===null||Array.isArray(n.profiles))t.push({field:"profiles",message:"Must be an object (key-value map)"});else{let o=n.profiles;for(let[i,s]of Object.entries(o)){let c=`profiles.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let u of Object.keys(a))if(!qd.has(u))t.push({field:`${c}.${u}`,message:`Unknown field '${u}'`})}}if("activeProfile"in n&&n.activeProfile!==void 0){if(typeof n.activeProfile!=="string")t.push({field:"activeProfile",message:"Must be a string"});else if("profiles"in n&&n.profiles!==void 0&&typeof n.profiles==="object"&&n.profiles!==null&&!Array.isArray(n.profiles)){let o=n.profiles;if(!(n.activeProfile in o))t.push({field:"activeProfile",message:`Profile '${n.activeProfile}' does not exist in profiles`})}else if(!("profiles"in n)||n.profiles===void 0)t.push({field:"activeProfile",message:"Cannot set activeProfile without profiles"})}return t}function Wi(e,t,n){let o=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!o.has(i))n.push({field:`${t}.${i}`,message:`Unknown field '${i}'`});if("strategy"in e&&!["hardlink","symlink","copy"].includes(e.strategy))n.push({field:`${t}.strategy`,message:'Must be "hardlink", "symlink", or "copy"'});if("paths"in e)Vt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Vt(e.invalidateOn,`${t}.invalidateOn`,n)}function To(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Nn(e){if(Array.isArray(e))return e.map((t)=>Nn(t));if(To(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=Nn(o);return t}return e}function ta(e,t){if(t===void 0)return Nn(e);if(Array.isArray(t))return t.map((i)=>Nn(i));if(!To(t))return Nn(t);let n=To(e)?e:{},o={};for(let[i,s]of Object.entries(n))o[i]=Nn(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(To(c)&&To(s)){o[i]=ta(c,s);continue}o[i]=Nn(s)}return o}function Xd(e){if(!e.activeProfile)return structuredClone(e);let t=e.profiles?.[e.activeProfile];if(!t||typeof t!=="object"||Array.isArray(t))throw Error(`Active profile '${e.activeProfile}' does not exist`);return ta(e,t)}function na(e){let t=e??Ct();if(!ln.existsSync(t))return structuredClone(_c);let n;try{let c=xr.readFileSync(t,"utf-8");n=JSON.parse(c)}catch(c){let a=c.message;if(a.includes("JSON"))throw Error(`Invalid JSON in config file: ${a}`);if(c instanceof SyntaxError)throw Error(`Invalid JSON in config file: ${a}`);throw Error(`Failed to read config file: ${a}`)}let o=$n(n);if(o.length>0){let c=o.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=Xd(n),s=$n(i);if(s.length>0){let c=s.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed after applying activeProfile: ${c}`)}return i}function Ae(e){return Zc(na(e))}function Li(e){return na(e)}function Ht(e,t){let n=wr(t),o=e.repos?.find((i)=>wr(i.path)===n);return{worktreeDir:o?.worktreeDir??e.defaults?.worktreeDir??fo.worktreeDir,copyFiles:o?.copyFiles??e.defaults?.copyFiles??fo.copyFiles,linkFiles:o?.linkFiles??e.defaults?.linkFiles??fo.linkFiles,postCreate:o?.postCreate??e.defaults?.postCreate??fo.postCreate,postRemove:o?.postRemove??e.defaults?.postRemove??fo.postRemove,autoUpstream:o?.autoUpstream??e.defaults?.autoUpstream??fo.autoUpstream,monorepo:o?.monorepo,sharedDeps:o?.sharedDeps??e.defaults?.sharedDeps,base:o?.base??e.defaults?.base}}function En(e){return(e.repos??[]).map((t)=>wr(t.path))}function yr(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function Kt(e){let t=e??Ct(),n=e?wr(t,".."):ea();if(!ln.existsSync(n))xr.mkdirSync(n,{recursive:!0,mode:448});if(ln.existsSync(t))return t;return _n(t,`${JSON.stringify(_c,null,2)}
|
|
4
|
+
`),t}function oa(e){let t=e??Ct(),n=ln.existsSync(t);return{path:Kt(e),created:!n}}function Sr(e,t){return e.templates?.[t]}function Cr(e,t){return{worktreeDir:t.worktreeDir??e.worktreeDir,copyFiles:t.copyFiles??e.copyFiles,linkFiles:t.linkFiles??e.linkFiles,postCreate:t.postCreate??e.postCreate,postRemove:t.postRemove??e.postRemove,autoUpstream:t.autoUpstream??e.autoUpstream,monorepo:e.monorepo,sharedDeps:e.sharedDeps,base:t.base??e.base}}function Fn(e){return e.sessions??{}}function Rr(e,t){let n=e.sessions;if(!n?.layouts)return;let o=t??n.defaultLayout;if(!o)return;return n.layouts[o]}function ra(e,t,n){if(t.length===0)return;let o=e;for(let s=0;s<t.length-1;s++){let c=t[s],a=t[s+1],u=o[c];if(u===void 0||u===null)o[c]=typeof a==="number"?[]:{};o=o[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(o)&&typeof i==="number")o.splice(i,1);else delete o[i];return}o[i]=n}function _n(e,t){let n=`${e}.tmp.${Date.now()}`;try{ln.writeFileSync(n,t,{encoding:"utf-8",mode:384});let o=JSON.parse(t),i=$n(o);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);xr.renameSync(n,e)}catch(o){if(ln.existsSync(n))xr.unlinkSync(n);throw o}}var xr,$c="~/.copse/worktrees/{repo}-{branch}",_c,fo,Hd,Nc,Kd,Gd,Ud,Td,Jd,zd,qd;var qe=ge(()=>{Qc();xr=ln,_c={version:1,defaults:{worktreeDir:$c,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},fo={worktreeDir:$c,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};Hd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),Nc=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),Kd=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),Gd=new Set(["path","depth","exclude","defaults"]),Ud=new Set(["autoDetect","extraPatterns","hooks"]),Td=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),Jd=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),zd=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),qd=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function ia(e){let t=String(e),n=t.length-1;return _e.context.id+(n?String.fromCharCode(96+n):"")+t}function Vi(e){_e.context=e}function Yd(){return{..._e.context,id:_e.getNextContextId(),count:0}}function Jo(e,t){let n=He,o=je,i=e.length===0,s=t===void 0?o:t,c=i?ha:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>Rt(()=>Dn(c)));je=c,He=null;try{return Dt(a,!0)}finally{He=n,je=o}}function ue(e,t){t=t?Object.assign({},kr,t):kr;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},o=(i)=>{if(typeof i==="function")if(fe&&fe.running&&fe.sources.has(n))i=i(n.tValue);else i=i(n.value);return ga(n,i)};return[pa.bind(n),o]}function ca(e,t,n){let o=Dr(e,t,!0,Mt);if(ho&&fe&&fe.running)ot.push(o);else mo(o)}function _t(e,t,n){let o=Dr(e,t,!1,Mt);if(ho&&fe&&fe.running)ot.push(o);else mo(o)}function Pt(e,t,n){da=ih;let o=Dr(e,t,!1,Mt),i=qo&&Gt(qo);if(i)o.suspense=i;if(!n||!n.render)o.user=!0;mt?mt.push(o):mo(o)}function Xe(e,t,n){n=n?Object.assign({},kr,n):kr;let o=Dr(e,t,!0,0);if(o.observers=null,o.observerSlots=null,o.comparator=n.equals||void 0,ho&&fe&&fe.running)o.tState=Mt,ot.push(o);else mo(o);return pa.bind(o)}function _d(e){return e&&typeof e==="object"&&"then"in e}function ma(e,t,n){let o,i,s;if(typeof t==="function")o=e,i=t,s=n||{};else o=!0,i=e,s=t||{};let c=null,a=Ii,u=null,h=!1,m=!1,p="initialValue"in s,w=typeof o==="function"&&Xe(o),A=new Set,[W,y]=(s.storage||ue)(s.initialValue),[C,k]=ue(void 0),[F,x]=ue(void 0,{equals:!1}),[S,O]=ue(p?"ready":"unresolved");if(_e.context){if(u=_e.getNextContextId(),s.ssrLoadFrom==="initial")a=s.initialValue;else if(_e.load&&_e.has(u))a=_e.load(u)}function G(J,q,Y,ne){if(c===J){if(c=null,ne!==void 0&&(p=!0),(J===a||q===a)&&s.onHydrated)queueMicrotask(()=>s.onHydrated(ne,{value:q}));if(a=Ii,fe&&J&&h)fe.promises.delete(J),h=!1,Dt(()=>{fe.running=!0,I(q,Y)},!1);else I(q,Y)}return q}function I(J,q){Dt(()=>{if(q===void 0)y(()=>J);O(q!==void 0?"errored":p?"ready":"unresolved"),k(q);for(let Y of A.keys())Y.decrement();A.clear()},!1)}function z(){let J=qo&&Gt(qo),q=W(),Y=C();if(Y!==void 0&&!c)throw Y;if(He&&!He.user&&J)ca(()=>{if(F(),c){if(J.resolved&&fe&&h)fe.promises.add(c);else if(!A.has(J))J.increment(),A.add(J)}});return q}function Z(J=!0){if(J!==!1&&m)return;m=!1;let q=w?w():o;if(h=fe&&fe.running,q==null||q===!1){G(c,Rt(W));return}if(fe&&c)fe.promises.delete(c);let Y,ne=a!==Ii?a:Rt(()=>{try{return i(q,{value:W(),refetching:J})}catch(he){Y=he}});if(Y!==void 0){G(c,void 0,vr(Y),q);return}else if(!_d(ne))return G(c,ne,void 0,q),ne;if(c=ne,"v"in ne){if(ne.s===1)G(c,ne.v,void 0,q);else G(c,void 0,vr(ne.v),q);return ne}return m=!0,queueMicrotask(()=>m=!1),Dt(()=>{O(p?"refreshing":"pending"),x()},!1),ne.then((he)=>G(ne,he,void 0,q),(he)=>G(ne,void 0,vr(he),q))}Object.defineProperties(z,{state:{get:()=>S()},error:{get:()=>C()},loading:{get(){let J=S();return J==="pending"||J==="refreshing"}},latest:{get(){if(!p)return z();let J=C();if(J&&!c)throw J;return W()}}});let T=je;if(w)ca(()=>(T=je,Z(!1)));else Z(!1);return[z,{refetch:(J)=>eh(T,()=>Z(J)),mutate:y}]}function Rt(e){if(!uo&&He===null)return e();let t=He;He=null;try{if(uo)return uo.untrack(e);return e()}finally{He=t}}function en(e,t,n){let o=Array.isArray(e),i,s=n&&n.defer;return(c)=>{let a;if(o){a=Array(e.length);for(let h=0;h<e.length;h++)a[h]=e[h]()}else a=e();if(s)return s=!1,c;let u=Rt(()=>t(a,i,c));return i=a,u}}function fn(e){Pt(()=>Rt(e))}function ct(e){if(je===null);else if(je.cleanups===null)je.cleanups=[e];else je.cleanups.push(e);return e}function eh(e,t){let n=je,o=He;je=e,He=null;try{return Dt(t,!0)}catch(i){Mr(i)}finally{je=n,He=o}}function th(e){if(fe&&fe.running)return e(),fe.done;let t=He,n=je;return Promise.resolve().then(()=>{He=t,je=n;let o;if(ho||qo)o=fe||(fe={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),o.done||(o.done=new Promise((i)=>o.resolve=i)),o.running=!0;return Dt(e,!1),He=je=null,o?o.done:void 0})}function Mn(e,t){let n=Symbol("context");return{id:n,Provider:sh(n),defaultValue:e}}function Gt(e){let t;return je&&je.context&&(t=je.context[e.id])!==void 0?t:e.defaultValue}function nh(e){let t=Xe(e),n=Xe(()=>Ki(t()));return n.toArray=()=>{let o=n();return Array.isArray(o)?o:o!=null?[o]:[]},n}function pa(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)mo(this);else{let t=ot;ot=null,Dt(()=>Er(this),!1),ot=t}if(He){let t=this.observers?this.observers.length:0;if(!He.sources)He.sources=[this],He.sourceSlots=[t];else He.sources.push(this),He.sourceSlots.push(t);if(!this.observers)this.observers=[He],this.observerSlots=[He.sources.length-1];else this.observers.push(He),this.observerSlots.push(He.sources.length-1)}if(e&&fe.sources.has(this))return this.tValue;return this.value}function ga(e,t,n){let o=fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(o,t)){if(fe){let i=fe.running;if(i||!n&&fe.sources.has(e))fe.sources.add(e),e.tValue=t;if(!i)e.value=t}else e.value=t;if(e.observers&&e.observers.length)Dt(()=>{for(let i=0;i<e.observers.length;i+=1){let s=e.observers[i],c=fe&&fe.running;if(c&&fe.disposed.has(s))continue;if(c?!s.tState:!s.state){if(s.pure)ot.push(s);else mt.push(s);if(s.observers)wa(s)}if(!c)s.state=Mt;else s.tState=Mt}if(ot.length>1e6)throw ot=[],Error()},!1)}return t}function mo(e){if(!e.fn)return;Dn(e);let t=Fr;if(la(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{Dt(()=>{fe&&(fe.running=!0),He=je=e,la(e,e.tValue,t),He=je=null},!1)})}function la(e,t,n){let o,i=je,s=He;He=je=e;try{o=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(Dn),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(Dn),e.owned=null;return e.updatedAt=n+1,Mr(c)}finally{He=s,je=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)ga(e,o,!0);else if(fe&&fe.running&&e.pure){if(!fe.sources.has(e))e.value=o;fe.sources.add(e),e.tValue=o}else e.value=o;e.updatedAt=n}}function Dr(e,t,n,o=Mt,i){let s={fn:e,state:o,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:je,context:je?je.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=o;if(je===null);else if(je!==ha)if(fe&&fe.running&&je.pure)if(!je.tOwned)je.tOwned=[s];else je.tOwned.push(s);else if(!je.owned)je.owned=[s];else je.owned.push(s);if(uo&&s.fn){let c=s.fn,[a,u]=ue(void 0,{equals:!1}),h=uo.factory(c,u);ct(()=>h.dispose());let m,p=()=>th(u).then(()=>{if(m)m.dispose(),m=void 0});s.fn=(w)=>{if(a(),fe&&fe.running){if(!m)m=uo.factory(c,p);return m.track(w)}return h.track(w)}}return s}function Xo(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===zo)return Er(e);if(e.suspense&&Rt(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Fr)){if(t&&fe.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let o=n.length-1;o>=0;o--){if(e=n[o],t){let i=e,s=n[o+1];while((i=i.owner)&&i!==s)if(fe.disposed.has(i))return}if((t?e.tState:e.state)===Mt)mo(e);else if((t?e.tState:e.state)===zo){let i=ot;ot=null,Dt(()=>Er(e,n[0]),!1),ot=i}}}function Dt(e,t){if(ot)return e();let n=!1;if(!t)ot=[];if(mt)n=!0;else mt=[];Fr++;try{let o=e();return oh(n),o}catch(o){if(!n)mt=null;ot=null,Mr(o)}}function oh(e){if(ot){if(ho&&fe&&fe.running)rh(ot);else ba(ot);ot=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:o,disposed:i}=fe;mt.push.apply(mt,fe.effects),t=fe.resolve;for(let s of mt)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,Dt(()=>{for(let s of i)Dn(s);for(let s of o){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)Dn(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}aa(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,mt),mt=null,aa(!0);return}}let n=mt;if(mt=null,n.length)Dt(()=>da(n),!1);if(t)t()}function ba(e){for(let t=0;t<e.length;t++)Xo(e[t])}function rh(e){for(let t=0;t<e.length;t++){let n=e[t],o=fe.queue;if(!o.has(n))o.add(n),ho(()=>{o.delete(n),Dt(()=>{fe.running=!0,Xo(n)},!1),fe&&(fe.running=!1)})}}function ih(e){let t,n=0;for(t=0;t<e.length;t++){let o=e[t];if(!o.user)Xo(o);else e[n++]=o}if(_e.context){if(_e.count){_e.effects||(_e.effects=[]),_e.effects.push(...e.slice(0,n));return}Vi()}if(_e.effects&&(_e.done||!_e.count))e=[..._e.effects,...e],n+=_e.effects.length,delete _e.effects;for(t=0;t<n;t++)Xo(e[t])}function Er(e,t){let n=fe&&fe.running;if(n)e.tState=0;else e.state=0;for(let o=0;o<e.sources.length;o+=1){let i=e.sources[o];if(i.sources){let s=n?i.tState:i.state;if(s===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<Fr))Xo(i)}else if(s===zo)Er(i,t)}}}function wa(e){let t=fe&&fe.running;for(let n=0;n<e.observers.length;n+=1){let o=e.observers[n];if(t?!o.tState:!o.state){if(t)o.tState=zo;else o.state=zo;if(o.pure)ot.push(o);else mt.push(o);o.observers&&wa(o)}}}function Dn(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),o=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let s=i.pop(),c=n.observerSlots.pop();if(o<i.length)s.sourceSlots[c]=o,i[o]=s,n.observerSlots[o]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)Dn(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)xa(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)Dn(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}if(fe&&fe.running)e.tState=0;else e.state=0}function xa(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)xa(e.owned[n])}function vr(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function fa(e,t,n){try{for(let o of t)o(e)}catch(o){Mr(o,n&&n.owner||null)}}function Mr(e,t=je){let n=sa&&t&&t.context&&t.context[sa],o=vr(e);if(!n)throw o;if(mt)mt.push({fn(){fa(o,n,t)},state:Mt});else fa(o,n,t)}function Ki(e){if(typeof e==="function"&&!e.length)return Ki(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let o=Ki(e[n]);Array.isArray(o)?t.push.apply(t,o):t.push(o)}return t}return e}function sh(e,t){return function(o){let i;return _t(()=>i=Rt(()=>{return je.context={...je.context,[e]:o.value},nh(()=>o.children)}),void 0),i}}function ua(e){for(let t=0;t<e.length;t++)e[t]()}function ah(e,t,n={}){let o=[],i=[],s=[],c=0,a=t.length>1?[]:null;return ct(()=>ua(s)),()=>{let u=e()||[],h=u.length,m,p;return u[$d],Rt(()=>{let A,W,y,C,k,F,x,S,O;if(h===0){if(c!==0)ua(s),s=[],o=[],i=[],c=0,a&&(a=[]);if(n.fallback)o=[ch],i[0]=Jo((G)=>{return s[0]=G,n.fallback()}),c=1}else if(c===0){i=Array(h);for(p=0;p<h;p++)o[p]=u[p],i[p]=Jo(w);c=h}else{y=Array(h),C=Array(h),a&&(k=Array(h));for(F=0,x=Math.min(c,h);F<x&&o[F]===u[F];F++);for(x=c-1,S=h-1;x>=F&&S>=F&&o[x]===u[S];x--,S--)y[S]=i[x],C[S]=s[x],a&&(k[S]=a[x]);A=new Map,W=Array(S+1);for(p=S;p>=F;p--)O=u[p],m=A.get(O),W[p]=m===void 0?-1:m,A.set(O,p);for(m=F;m<=x;m++)if(O=o[m],p=A.get(O),p!==void 0&&p!==-1)y[p]=i[m],C[p]=s[m],a&&(k[p]=a[m]),p=W[p],A.set(O,p);else s[m]();for(p=F;p<h;p++)if(p in y){if(i[p]=y[p],s[p]=C[p],a)a[p]=k[p],a[p](p)}else i[p]=Jo(w);i=i.slice(0,c=h),o=u.slice(0)}return i});function w(A){if(s[p]=A,a){let[W,y]=ue(p);return a[p]=y,t(u[p],W)}return t(u[p])}}}function ya(e,t){if(lh){if(_e.context){let n=_e.context;Vi(Yd());let o=Rt(()=>e(t||{}));return Vi(n),o}}return Rt(()=>e(t||{}))}function Or(){return!0}function Bi(e){return!(e=typeof e==="function"?e():e)?{}:e}function uh(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Pr(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Hi in a,e[c]=typeof a==="function"?(t=!0,Xe(a)):a}if(Nd&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let u=Bi(e[a])[c];if(u!==void 0)return u}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Bi(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Bi(e[a])));return[...new Set(c)]}},fh);let n={},o=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let u=Object.getOwnPropertyNames(a);for(let h=u.length-1;h>=0;h--){let m=u[h];if(m==="__proto__"||m==="constructor")continue;let p=Object.getOwnPropertyDescriptor(a,m);if(!o[m])o[m]=p.get?{enumerable:!0,configurable:!0,get:uh.bind(n[m]=[p.get.bind(a)])}:p.value!==void 0?p:void 0;else{let w=n[m];if(w){if(p.get)w.push(p.get.bind(a));else if(p.value!==void 0)w.push(()=>p.value)}}}}let i={},s=Object.keys(o);for(let c=s.length-1;c>=0;c--){let a=s[c],u=o[a];if(u&&u.get)Object.defineProperty(i,a,u);else i[a]=u?u.value:void 0}return i}function nt(e){let t="fallback"in e&&{fallback:()=>e.fallback};return Xe(ah(()=>e.each,e.children,t||void 0))}function re(e){let t=e.keyed,n=Xe(()=>e.when,void 0,void 0),o=t?n:Xe(n,void 0,{equals:(i,s)=>!i===!s});return Xe(()=>{let i=o();if(i){let s=e.children;return typeof s==="function"&&s.length>0?Rt(()=>s(t?i:()=>{if(!Rt(o))throw dh("Show");return n()})):s}return e.fallback},void 0,void 0)}var _e,Zd=!1,Qd=(e,t)=>e===t,Hi,Nd,$d,Zx,kr,sa=null,da,Mt=1,zo=2,ha,Ii,je=null,fe=null,ho=null,uo=null,He=null,ot=null,mt=null,Fr=0,Qx,aa,qo,ch,lh=!1,fh,dh=(e)=>`Stale read from <${e}>.`;var Ye=ge(()=>{_e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return ia(this.context.count)},getNextContextId(){return ia(this.context.count++)}};Hi=Symbol("solid-proxy"),Nd=typeof Proxy==="function",$d=Symbol("solid-track"),Zx=Symbol("solid-dev-component"),kr={equals:Qd},da=ba,ha={owned:null,cleanups:null,context:null,owner:null},Ii={};[Qx,aa]=ue(!1);ch=Symbol("fallback");fh={get(e,t,n){if(t===Hi)return n;return e.get(t)},has(e,t){if(t===Hi)return!0;return e.has(t)},set:Or,deleteProperty:Or,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Or,deleteProperty:Or}},ownKeys(e){return e.keys()}}});function Ca(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=hh.get(e))!==null&&t!==void 0?t:e}var Gi,hh,Sa;var Ra=ge(()=>{hh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Sa=(Gi=String.fromCodePoint)!==null&&Gi!==void 0?Gi:(e)=>{let t="";if(e>65535)e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023;return t+=String.fromCharCode(e),t}});function Oa(e){let t=typeof atob==="function"?atob(e):typeof Buffer.from==="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),n=t.length&-2,o=new Uint16Array(n/2);for(let i=0,s=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);o[s++]=c|a<<8}return o}var va;var ka=ge(()=>{va=Oa("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")});var pt;var Ea=ge(()=>{(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(pt||(pt={}))});function Ti(e){return e>=Ze.ZERO&&e<=Ze.NINE}function mh(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_F||e>=Ze.LOWER_A&&e<=Ze.LOWER_F}function ph(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_Z||e>=Ze.LOWER_A&&e<=Ze.LOWER_Z||Ti(e)}function gh(e){return e===Ze.EQUALS||ph(e)}class Ji{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=ft.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=un.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=ft.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case ft.EntityStart:{if(e.charCodeAt(t)===Ze.NUM)return this.state=ft.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=ft.NamedEntity,this.stateNamedEntity(e,t)}case ft.NumericStart:return this.stateNumericStart(e,t);case ft.NumericDecimal:return this.stateNumericDecimal(e,t);case ft.NumericHex:return this.stateNumericHex(e,t);case ft.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){if(t>=e.length)return-1;if((e.charCodeAt(t)|Fa)===Ze.LOWER_X)return this.state=ft.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1);return this.state=ft.NumericDecimal,this.stateNumericDecimal(e,t)}stateNumericHex(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ti(n)||mh(n)){let o=n<=Ze.NINE?n-Ze.ZERO:(n|Fa)-Ze.LOWER_A+10;this.result=this.result*16+o,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Ti(n))this.result=this.result*10+(n-Ze.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,t){var n;if(this.consumed<=t)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===Ze.SEMI)this.consumed+=1;else if(this.decodeMode===un.Strict)return 0;if(this.emitCodePoint(Ca(this.result),this.consumed),this.errors){if(e!==Ze.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(o&pt.FLAG13)!==0){let c=(o&pt.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=o&pt.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}while(this.runConsumed<c){if(t>=e.length)return-1;let a=this.runConsumed-1,u=n[this.treeIndex+1+(a>>1)],h=a%2===0?u&255:u>>8&255;if(e.charCodeAt(t)!==h)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(c>>1),o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Ze.SEMI&&i!==0&&(o&pt.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=wh(n,o,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===un.Attribute&&(i===0||gh(s))?0:this.emitNotTerminatedNamedEntity();if(o=n[this.treeIndex],i=(o&pt.VALUE_LENGTH)>>14,i!==0){if(s===Ze.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==un.Strict&&(o&pt.FLAG13)===0)this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,o=(n[t]&pt.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,o,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:o}=this;if(this.emitCodePoint(t===1?o[e]&~(pt.VALUE_LENGTH|pt.FLAG13):o[e+1],n),t===3)this.emitCodePoint(o[e+2],n);return n}end(){var e;switch(this.state){case ft.NamedEntity:return this.result!==0&&(this.decodeMode!==un.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ft.NumericDecimal:return this.emitNumericEntity(0,2);case ft.NumericHex:return this.emitNumericEntity(0,3);case ft.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ft.EntityStart:return 0}}}function bh(e){let t="",n=new Ji(e,(o)=>t+=Sa(o));return function(i,s){let c=0,a=0;while((a=i.indexOf("&",a))>=0){t+=i.slice(c,a),n.startEntity(s);let h=n.write(i,a+1);if(h<0){c=a+n.end();break}c=a+h,a=h===0?c+1:c}let u=t+i.slice(c);return t="",u}}function wh(e,t,n,o){let i=(t&pt.BRANCH_LENGTH)>>7,s=t&pt.JUMP_TABLE;if(i===0)return s!==0&&o===s?n:-1;if(s){let h=o-s;return h<0||h>=i?-1:e[n+h]-1}let c=i+1>>1,a=0,u=i-1;while(a<=u){let h=a+u>>>1,m=h>>1,w=e[n+m]>>(h&1)*8&255;if(w<o)a=h+1;else if(w>o)u=h-1;else return e[n+c+h]}return-1}function eo(e,t=un.Legacy){return xh(e,t)}var Ze,Fa=32,ft,un,xh;var Da=ge(()=>{Ra();ka();Ea();(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Ze||(Ze={}));(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(ft||(ft={}));(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(un||(un={}));xh=bh(va)});var Ma,Pa;var Wa=ge(()=>{Da();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ma||(Ma={}));(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(Pa||(Pa={}))});import{CliRenderer as Sh,createCliRenderer as Ch,engine as Rh}from"@opentui/core";import{createTestRenderer as d0}from"@opentui/core/testing";import{ASCIIFontRenderable as Oh,BoxRenderable as vh,CodeRenderable as kh,DiffRenderable as Eh,InputRenderable as Fh,LineNumberRenderable as Dh,MarkdownRenderable as Mh,ScrollBoxRenderable as Ph,SelectRenderable as Ah,TabSelectRenderable as Wh,TextareaRenderable as jh,TextAttributes as zi,TextNodeRenderable as Lh,TextRenderable as Ih}from"@opentui/core";import{engine as p0,Timeline as g0}from"@opentui/core";import{BaseRenderable as Ka,createTextAttributes as Vh,InputRenderable as qi,InputRenderableEvents as Yo,isTextNodeRenderable as Zi,parseColor as ja,Renderable as Hh,RootTextNodeRenderable as Kh,ScrollBoxRenderable as Gh,SelectRenderable as La,SelectRenderableEvents as Xi,TabSelectRenderable as Ia,TabSelectRenderableEvents as Yi,TextNodeRenderable as Uh,TextRenderable as Ga}from"@opentui/core";import{BaseRenderable as $h,isTextNodeRenderable as _h,TextNodeRenderable as em,TextRenderable as tm,Yoga as Va}from"@opentui/core";import{TimeToFirstDrawRenderable as rm}from"@opentui/core";import{createSlotRegistry as F0}from"@opentui/core";function Jh({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:o,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:u,getFirstChild:h,getNextSibling:m}){function p(x,S,O,G){if(O!==void 0&&!G)G=[];if(typeof S!=="function")return w(x,S,G,O);_t((I)=>w(x,S(),I,O),G)}function w(x,S,O,G,I){while(typeof O==="function")O=O();if(S===O)return O;let z=typeof S,Z=G!==void 0;if(z==="string"||z==="number"){if(z==="number")S=S.toString();if(Z){let T=O[0];if(T&&o(T))i(T,S);else T=t(S);O=y(x,O,G,T)}else if(O!==""&&typeof O==="string")i(h(x),O=S);else y(x,O,G,t(S)),O=S}else if(S==null||z==="boolean")O=y(x,O,G);else if(z==="function")return _t(()=>{let T=S();while(typeof T==="function")T=T();O=w(x,T,O,G)}),()=>O;else if(Array.isArray(S)){let T=[];if(A(T,S,I))return _t(()=>O=w(x,T,O,G,!0)),()=>O;if(T.length===0){let J=y(x,O,G);if(Z)return O=J}else if(Array.isArray(O))if(O.length===0)C(x,T,G);else W(x,O,T);else if(O==null||O==="")C(x,T);else W(x,Z&&O||[h(x)],T);O=T}else{if(Array.isArray(O)){if(Z)return O=y(x,O,G,S);y(x,O,null,S)}else if(O==null||O===""||!h(x))s(x,S);else k(x,S,h(x));O=S}return O}function A(x,S,O){let G=!1;for(let I=0,z=S.length;I<z;I++){let Z=S[I],T;if(Z==null||Z===!0||Z===!1);else if(Array.isArray(Z))G=A(x,Z)||G;else if((T=typeof Z)==="string"||T==="number")x.push(t(Z));else if(T==="function")if(O){while(typeof Z==="function")Z=Z();G=A(x,Array.isArray(Z)?Z:[Z])||G}else x.push(Z),G=!0;else x.push(Z)}return G}function W(x,S,O){let G=O.length,I=S.length,z=G,Z=0,T=0,J=m(S[I-1]),q=null;while(Z<I||T<z){if(S[Z]===O[T]){Z++,T++;continue}while(S[I-1]===O[z-1])I--,z--;if(I===Z){let Y=z<G?T?m(O[T-1]):O[z-T]:J;while(T<z)s(x,O[T++],Y)}else if(z===T)while(Z<I){if(!q||!q.has(S[Z]))c(x,S[Z]);Z++}else if(S[Z]===O[z-1]&&O[T]===S[I-1]){let Y=m(S[--I]);s(x,O[T++],m(S[Z++])),s(x,O[--z],Y),S[I]=O[z]}else{if(!q){q=new Map;let ne=T;while(ne<z)q.set(O[ne],ne++)}let Y=q.get(S[Z]);if(Y!=null)if(T<Y&&Y<z){let ne=Z,he=1,_;while(++ne<I&&ne<z){if((_=q.get(S[ne]))==null||_!==Y+he)break;he++}if(he>Y-T){let me=S[Z];while(T<Y)s(x,O[T++],me)}else k(x,O[T++],S[Z++])}else Z++;else c(x,S[Z++])}}}function y(x,S,O,G){if(O===void 0){let z;while(z=h(x))c(x,z);return G&&s(x,G),G??""}let I=G||n();if(S.length){let z=!1;for(let Z=S.length-1;Z>=0;Z--){let T=S[Z];if(I!==T){let J=u(T)===x;if(!z&&!Z)J?k(x,I,T):s(x,I,O);else J&&c(x,T)}else z=!0}}else s(x,I,O);return[I]}function C(x,S,O){for(let G=0,I=S.length;G<I;G++)s(x,S[G],O)}function k(x,S,O){s(x,S,O),c(x,O)}function F(x,S,O={},G){if(S||(S={}),!G)_t(()=>O.children=w(x,S.children,O.children));return _t(()=>S.ref&&S.ref(x)),_t(()=>{for(let I in S){if(I==="children"||I==="ref")continue;let z=S[I];if(z===O[I])continue;a(x,I,z,O[I]),O[I]=z}}),O}return{render(x,S){let O;return Jo((G)=>{O=G,p(S,x())}),O},insert:p,spread(x,S,O){if(typeof S==="function")_t((G)=>F(x,S(),G,O));else F(x,S,void 0,O)},createElement:e,createTextNode:t,insertNode:s,setProp(x,S,O,G){return a(x,S,O,G),O},mergeProps:Pr,effect:_t,memo:Th,createComponent:ya,use(x,S,O){return Rt(()=>x(S,O))}}}function zh(e){let t=Jh(e);return t.mergeProps=Pr,t}function es(e){if(!Ar.has(e))Ar.set(e,0);let t=Ar.get(e)+1;return Ar.set(e,t),`${e}-${t}`}function qh(e,t,n){if(ut("Inserting node:",at(t),"into parent:",at(e),"with anchor:",at(n),t instanceof po),t instanceof Zo)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Zo)n=n.getSlotChild(e);if(Zi(t)){if(!(e instanceof Ga)&&!Zi(e))throw Error(`Orphan text error: "${t.toChunks().map((s)=>s.text).join("")}" must have a <text> as a parent: ${e.id} above ${t.id}`)}if(!(e instanceof Ka))throw console.error("[INSERT]","Tried to mount a non base renderable"),Error("Tried to mount a non base renderable");if(!n){e.add(t);return}let o=Qi(e),i=o.findIndex((s)=>s.id===n.id);if(i===-1)ut("[INSERT]","Could not find anchor",at(e),at(n),"[children]",...o.map((s)=>s.id));e.add(t,i)}function Xh(e,t){if(ut("Removing node:",at(t),"from parent:",at(e)),t instanceof Zo)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ka&&!t.parent){t.destroyRecursively();return}})}function Yh(e){ut("Creating text node:",e);let t=es("text-node");if(typeof e==="number")e=e.toString();return po.fromString(eo(e),{id:t})}function Zh(){let e=es("slot-node");return ut("Creating slot node",e),new Zo(e)}function Ba(e){ut("Getting parent of node:",at(e));let t=e.parent??void 0;if(t instanceof Kh)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof Gh&&n.content===t)t=n;return t}function ns(e){Object.assign(Xa,e)}function om(){return Xa}var _i,dn=()=>{let e=Gt(_i);if(!e)throw Error("No renderer found");return e},Bh=(e)=>{let t=dn();fn(()=>{t.on("resize",e)}),ct(()=>{t.off("resize",e)})},rt=()=>{let e=dn(),[t,n]=ue({width:e.width,height:e.height});return Bh((i,s)=>{n({width:i,height:s})}),t},it=(e,t)=>{let o=dn().keyInput;fn(()=>{if(o.on("keypress",e),t?.release)o.on("keyrelease",e)}),ct(()=>{if(o.off("keypress",e),t?.release)o.off("keyrelease",e)})},go=(e)=>{let n=dn().keyInput;fn(()=>{n.on("paste",e)}),ct(()=>{n.off("paste",e)})},Ha=(e)=>{let t=dn();fn(()=>{t.on("selection",e)}),ct(()=>{t.off("selection",e)})},Th=(e)=>Xe(()=>e()),Ar,ut=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},po,at=(e)=>{if(!e)return;return e.id},Qi=(e)=>{let t;if(e instanceof Ga)t=e.getTextChildren();else t=e.getChildren();return t},Qh,H,Le,X,l,B,f,V,Nh,r,R0,O0,ts,Ua,Ta,Zo,Qo,Wr,Ni,$i,Ja,za,qa,nm,Xa,im=(e,t)=>{let n,o=!1,i=!1,s=!0,c=!1,a=e.destroy.bind(e),u=()=>{if(i)return;if(!n){o=!0;return}i=!0,n()};e.once("destroy",u),e.destroy=()=>{if(s){c=!0;return}a()};try{n=Qh(()=>X(_i.Provider,{get value(){return e},get children(){return X(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(o)u();if(c)a()},Ya=async(e,t={})=>{let n=t instanceof Sh?t:await Ch({...t,onDestroy:()=>{t.onDestroy?.()}});Rh.attach(n),im(n,e)};var te=ge(()=>{Ye();Wa();Ye();Ye();Ye();_i=Mn();Ar=new Map;po=class po extends Uh{static fromString(e,t={}){let n=new po(t);return n.add(e),n}};({render:Qh,effect:H,memo:Le,createComponent:X,createElement:l,createTextNode:B,insertNode:f,insert:V,spread:Nh,setProp:r,mergeProps:R0,use:O0}=zh({createElement(e){ut("Creating element:",e);let t=es(e),n=Gt(_i);if(!n)throw Error("No renderer found");let o=om();if(!o[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new o[e](n,{id:t});return ut("Element created with id:",t),i},createTextNode:Yh,createSlotNode:Zh,replaceText(e,t){if(ut("Replacing text:",t,"in node:",at(e)),!(e instanceof po))return;e.replace(eo(t),0)},setProperty(e,t,n,o){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(o)e.off(i,o);return}if(Zi(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Vh(n),e.fg=n.fg?ja(n.fg):e.fg,e.bg=n.bg?ja(n.bg):e.bg;return}return}switch(t){case"id":ut("Id mapped",e.id,"=",n),e[t]=n;break;case"focused":if(!(e instanceof Hh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof La)i=Xi.SELECTION_CHANGED;else if(e instanceof Ia)i=Yi.SELECTION_CHANGED;else if(e instanceof qi)i=Yo.CHANGE;if(!i)break;if(n)e.on(i,n);if(o)e.off(i,o);break;case"onInput":if(e instanceof qi){if(n)e.on(Yo.INPUT,n);if(o)e.off(Yo.INPUT,o)}break;case"onSubmit":if(e instanceof qi){if(n)e.on(Yo.ENTER,n);if(o)e.off(Yo.ENTER,o)}else e[t]=n;break;case"onSelect":if(e instanceof La){if(n)e.on(Xi.ITEM_SELECTED,n);if(o)e.off(Xi.ITEM_SELECTED,o)}else if(e instanceof Ia){if(n)e.on(Yi.ITEM_SELECTED,n);if(o)e.off(Yi.ITEM_SELECTED,o)}break;case"style":for(let s in n){let c=n[s];if(o!==void 0&&c===o[s])continue;e[s]=c}break;case"text":case"content":{let s=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=eo(s);break}default:e[t]=n}},isTextNode(e){return e instanceof po},insertNode:qh,removeNode:Xh,getParentNode:Ba,getFirstChild(e){ut("Getting first child of node:",at(e));let t=Qi(e)[0];if(!t){ut("No first child found for node:",at(e));return}return ut("First child found:",at(t),"for node:",at(e)),t},getNextSibling(e){ut("Getting next sibling of node:",at(e));let t=Ba(e);if(!t){ut("No parent found for node:",at(e));return}let n=Qi(t),o=n.indexOf(e);if(o===-1||o===n.length-1){ut("No next sibling found for node:",at(e));return}let i=n[o+1];if(!i){ut("Next sibling is null for node:",at(e));return}return ut("Next sibling found:",at(i),"for node:",at(e)),i}}));ts=class ts extends $h{constructor(e){super({id:e})}add(e,t){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(e){}insertBefore(e,t){throw Error("Can't add children on an Slot renderable")}getRenderable(e){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(e){return}};Ua=class Ua extends em{slotParent;destroyed=!1;constructor(e,t){super({id:e});this._visible=!1,this.slotParent=t}destroy(){if(this.destroyed)return;this.destroyed=!0,this.slotParent?.destroy(),super.destroy()}};Ta=class Ta extends ts{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Va.default.Node.create(),this.yogaNode.setDisplay(Va.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};Zo=class Zo extends ts{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(_h(e)||e instanceof tm){if(!this.textNode)this.textNode=new Ua(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new Ta(`slot-layout-${this.id}`,this);return this.layoutNode}destroy(){if(this.destroyed)return;if(this.destroyed=!0,this.layoutNode)this.layoutNode.destroy();if(this.textNode)this.textNode.destroy()}};Qo=class Qo extends Lh{_ctx;constructor(e,t){super(t);this._ctx=e}};Wr=class Wr extends Qo{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|zi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|zi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|zi.UNDERLINE}};Ni=class Ni extends Wr{constructor(e){super(e,"b")}};$i=class $i extends Wr{constructor(e){super(e,"i")}};Ja=class Ja extends Wr{constructor(e){super(e,"u")}};za=class za extends Qo{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
+
`)}};qa=class qa extends Qo{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};nm={box:vh,text:Ih,input:Fh,select:Ah,textarea:jh,ascii_font:Oh,tab_select:Wh,scrollbox:Ph,code:kh,diff:Eh,line_number:Dh,markdown:Mh,span:Qo,strong:Ni,b:Ni,em:$i,i:$i,u:Ja,br:za,a:qa},Xa={...nm};ns({time_to_first_draw:rm})});function Za(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function Qa(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function os(e,t){switch(e){case"success":return t.success;case"error":return t.error;case"warning":return t.warning;case"info":return t.info;case"loading":return rs(t.loading);default:return""}}function rs(e){if(Za(e))return e.frames[0]??"\u25CC";return e}function is(e){return Za(e)?e:null}var sm,Na;var $a=ge(()=>{sm={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},Na={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:sm,close:"\xD7"}});import{BoxRenderable as Lr,TextAttributes as cm,TextRenderable as No,parseColor as am}from"@opentui/core";function hm(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function wm(e,t={}){let[n,o]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??jr.top;else i.bottom=t.bottom??jr.bottom;if(o==="left")i.left=t.left??jr.left,i.alignItems="flex-start";else if(o==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??jr.right,i.alignItems="flex-end";return i}function xm(e){return e.includes("center")}function ym(e){return e.startsWith("top")}function Sm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:o,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??o??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??o??n??t.left}}function Cm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function _a(e,t,n){let o=ss.style,i=ss[e]?.style,s=t?.style,c=t?.[e]?.style,a=Cm(o,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function el(e,t,n){if(n!==void 0)return n;let o=t?.[e]?.duration;if(o!==void 0)return o;if(t?.duration!==void 0)return t.duration;return ss.duration}var lm,fm=200,tl=60,jr,um,ss,dm=1,mm=class{subscribers=[];toasts=[];dismissedToasts=new Set;_activeToasts=[];_updateActiveToastsCache=()=>{let e=this.toasts.filter((t)=>!this.dismissedToasts.has(t.id));if(e.length!==this._activeToasts.length||e.some((t,n)=>t!==this._activeToasts[n]))this._activeToasts=e};subscribe=(e)=>{return this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);if(t>-1)this.subscribers.splice(t,1)}};publish=(e)=>{for(let t of this.subscribers)t(e)};addToast=(e)=>{this.toasts=[...this.toasts,e],this._updateActiveToastsCache(),this.publish(e)};create=(e)=>{let{message:t,...n}=e,o=typeof e.id==="number"||e.id&&e.id.length>0?e.id:dm++,i=this.toasts.find((c)=>c.id===o),s=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(o))this.dismissedToasts.delete(o);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===o)return this.publish({...c,...e,id:o,title:t}),{...c,...e,id:o,dismissible:s,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:s,id:o,type:e.type??"default"});return o};dismiss=(e)=>{if(e!==void 0)this.dismissedToasts.add(e),this._updateActiveToastsCache(),setTimeout(()=>{for(let t of this.subscribers)t({id:e,dismiss:!0})},0);else{for(let t of this.toasts){this.dismissedToasts.add(t.id);for(let n of this.subscribers)n({id:t.id,dismiss:!0})}this._updateActiveToastsCache()}return e};message=(e,t)=>{return this.create({...t,message:e,type:"default"})};error=(e,t)=>{return this.create({...t,message:e,type:"error"})};success=(e,t)=>{return this.create({...t,message:e,type:"success"})};info=(e,t)=>{return this.create({...t,message:e,type:"info"})};warning=(e,t)=>{return this.create({...t,message:e,type:"warning"})};loading=(e,t)=>{return this.create({...t,message:e,type:"loading"})};promise=(e,t)=>{if(!t)return;let n;if(t.loading!==void 0)n=this.create({...t,type:"loading",message:t.loading,description:typeof t.description!=="function"?t.description:void 0});let o=e instanceof Function?e():e,i=n!==void 0,s,c=o.then(async(u)=>{if(s=["resolve",u],hm(u)&&!u.ok){i=!1;let h=typeof t.error==="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,m=typeof t.description==="function"?await t.description(`HTTP error! status: ${u.status}`):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}else if(u instanceof Error){i=!1;let h=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}else if(t.success!==void 0){i=!1;let h=typeof t.success==="function"?await t.success(u):t.success,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"success",description:m,...p})}}).catch(async(u)=>{if(s=["reject",u],t.error!==void 0){i=!1;let h=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:m,...p})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((u,h)=>c.then(()=>s[0]==="reject"?h(s[1]):u(s[1])).catch(h));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ot,pm=(e,t)=>Ot.message(e,t),gm=()=>Ot.toasts,bm=()=>Ot.getActiveToasts(),to,Rm,nl;var ol=ge(()=>{$a();lm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},jr={top:1,right:2,bottom:1,left:2},um={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},ss={style:um,duration:lm.DEFAULT,default:{style:{borderColor:"#333333"}},success:{style:{borderColor:"#22c55e"}},error:{style:{borderColor:"#ef4444"}},warning:{style:{borderColor:"#f59e0b"}},info:{style:{borderColor:"#3b82f6"}},loading:{style:{borderColor:"#6b7280"}}};Ot=new mm,to=Object.assign(pm,{success:Ot.success,info:Ot.info,warning:Ot.warning,error:Ot.error,message:Ot.message,promise:Ot.promise,dismiss:Ot.dismiss,loading:Ot.loading},{getHistory:gm,getToasts:bm});Rm=class extends Lr{_toast;_icons;_toastOptions;_computedStyle;_closeButton;_onRemove;_remainingTime;_closeTimerStartTime=0;_lastCloseTimerStartTime=0;_timerHandle=null;_paused=!1;_dismissed=!1;_spinnerHandle=null;_spinnerFrameIndex=0;_spinnerConfig=null;_iconText=null;_contentBox=null;_titleText=null;_descriptionText=null;_actionsBox=null;constructor(e,t){let n=_a(t.toast.type,t.toastOptions,t.toast.style),o=el(t.toast.type,t.toastOptions,t.toast.duration),i=Sm(n,{top:0,right:1,bottom:0,left:1});super(e,{id:`toast-${t.toast.id}`,flexDirection:"row",gap:1,border:n.border,borderStyle:n.borderStyle,borderColor:n.borderColor,customBorderChars:n.customBorderChars,backgroundColor:n.backgroundColor,minHeight:n.minHeight,maxWidth:n.maxWidth??tl,minWidth:n.minWidth,paddingTop:i.top,paddingRight:i.right,paddingBottom:i.bottom,paddingLeft:i.left,onMouseOver:()=>this.pause(),onMouseOut:()=>this.resume()});if(this._toast=t.toast,this._icons=t.icons===!1?!1:{...Na,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=o,this.setupContent(),this._remainingTime!==1/0&&this._toast.type!=="loading")this.startTimer();if(this._toast.type==="loading")this.startSpinner()}setupContent(){let e=this.ctx,t=this._toast,n=this._computedStyle,o=this._icons,i=n.iconColor??n.borderColor,s=t.type==="loading";if(s&&o!==!1)this._spinnerConfig=is(o.loading);let c=t.icon??(o===!1?void 0:s?rs(o.loading):os(t.type,o));if(c)this._iconText=new No(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new Lr(e,{id:`${this.id}-content`,flexDirection:"column",flexGrow:1,flexShrink:1,gap:0});let a=typeof t.title==="function"?t.title():t.title;if(a)this._titleText=new No(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:cm.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let u=typeof t.description==="function"?t.description():t.description;if(u)this._descriptionText=new No(e,{id:`${this.id}-description`,content:u,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new Lr(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&Qa(t.action)){let h=new No(e,{id:`${this.id}-action`,content:`[${t.action.label}]`,fg:n.foregroundColor,onMouseUp:()=>t.action?.onClick?.()});this._actionsBox.add(h)}this.add(this._actionsBox)}if((t.closeButton??this._closeButton)&&t.dismissible!==!1){let h=o===!1?"\xD7":o.close,m=new No(e,{id:`${this.id}-close`,content:h,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(m)}}startTimer(){if(this._remainingTime===1/0)return;this._closeTimerStartTime=Date.now(),this._timerHandle=setTimeout(()=>{this._toast.onAutoClose?.(this._toast),this.dismiss()},this._remainingTime)}pause(){if(this._paused||this._remainingTime===1/0)return;if(this._paused=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;if(this._lastCloseTimerStartTime<this._closeTimerStartTime){let e=Date.now()-this._closeTimerStartTime;this._remainingTime=Math.max(0,this._remainingTime-e)}this._lastCloseTimerStartTime=Date.now()}resume(){if(!this._paused||this._remainingTime===1/0)return;this._paused=!1,this.startTimer()}startSpinner(){if(this._spinnerHandle||!this._spinnerConfig)return;let{frames:e,interval:t}=this._spinnerConfig;this._spinnerHandle=setInterval(()=>{this._spinnerFrameIndex=(this._spinnerFrameIndex+1)%e.length;let n=e[this._spinnerFrameIndex];if(this._iconText&&n)this._iconText.content=n,this.requestRender()},t)}stopSpinner(){if(this._spinnerHandle)clearInterval(this._spinnerHandle),this._spinnerHandle=null}dismiss(){if(this._dismissed)return;if(this._dismissed=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),this._toast.onDismiss?.(this._toast),Ot.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},fm)}updateToast(e){this._toast=e;let t=_a(e.type,this._toastOptions,e.style);if(this._computedStyle=t,t.borderColor)this.borderColor=t.borderColor;if(t.customBorderChars)this.customBorderChars=t.customBorderChars;let n=t.iconColor??t.borderColor;if(this._iconText){let s=e.icon??(this._icons===!1?void 0:os(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=am(n)}if(this._titleText){let s=typeof e.title==="function"?e.title():e.title;if(s)this._titleText.content=s}if(this._descriptionText){let s=typeof e.description==="function"?e.description():e.description;if(s)this._descriptionText.content=s}let o=this._spinnerHandle!==null,i=e.type==="loading";if(o&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!o&&i){if(this._icons!==!1)this._spinnerConfig=is(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=el(e.type,this._toastOptions,e.duration),this._remainingTime!==1/0)this.startTimer()}this.requestRender()}get toast(){return this._toast}get isDismissed(){return this._dismissed}destroy(){if(this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),super.destroy()}},nl=class extends Lr{_options={};_toastRenderables=new Map;_unsubscribe=null;constructor(e,t={}){super(e,{id:"toaster",flexDirection:"column",gap:1,zIndex:9999});this._options=t,this.applyLayoutOptions(),this.subscribe()}applyLayoutOptions(){let e=this._options.position??"bottom-right",t=wm(e,this._options.offset??{}),n=xm(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??tl}isToastPosition(e){return e==="top-left"||e==="top-center"||e==="top-right"||e==="bottom-left"||e==="bottom-center"||e==="bottom-right"}set position(e){if(this.isToastPosition(e))this._options.position=e,this.applyLayoutOptions();else super.position=e}set offset(e){this._options.offset=e,this.applyLayoutOptions()}set gap(e){this._options.gap=e,super.gap=e}set visibleToasts(e){this._options.visibleToasts=e}set closeButton(e){this._options.closeButton=e}set icons(e){this._options.icons=e}set stackingMode(e){this._options.stackingMode=e}set maxWidth(e){this._options.maxWidth=e,super.maxWidth=e}set toastOptions(e){this._options.toastOptions=e}subscribe(){this._unsubscribe=Ot.subscribe((e)=>{if("dismiss"in e&&e.dismiss)this.removeToast(e.id);else this.addOrUpdateToast(e)})}addOrUpdateToast(e){let t=this._toastRenderables.get(e.id);if(t){t.updateToast(e);return}if((this._options.stackingMode??"single")==="single")for(let[o]of this._toastRenderables)this.removeToast(o);else{let o=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=o){let s=i-o+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<s;a++){let u=c[a];if(u!==void 0)this.removeToast(u)}}}let n=new Rm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(o)=>this.handleToastRemoved(o)});if(this._toastRenderables.set(e.id,n),ym(this._options.position??"bottom-right"))this.add(n);else this.add(n,0);this.requestRender()}removeToast(e){let t=this._toastRenderables.get(e);if(t)t.dismiss()}handleToastRemoved(e){let t=this._toastRenderables.get(e.id);if(t)this._toastRenderables.delete(e.id),this.remove(t.id),t.destroy(),this.requestRender()}get toastCount(){return this._toastRenderables.size}dismissAll(){for(let[e]of this._toastRenderables)this.removeToast(e)}destroy(){this._unsubscribe?.();for(let[,e]of this._toastRenderables)e.destroy();this._toastRenderables.clear(),super.destroy()}}});var cs=ge(()=>{ol();te();ns({toaster:nl})});function il(e){let[t,n]=ue("list"),[o,i]=ue(0),[s,c]=ue(null),[a,u]=ue(!1),[h,m]=ue(!1),[p,w]=ue(!1),[A,W]=ue(!1),[y,C]=ue(new Set),[k,F]=ue(!1),[x,S]=ue(null),O=(Z)=>{let T=new Set(y());if(T.has(Z))T.delete(Z);else T.add(Z);C(T)},G=(Z)=>{C(new Set(Z))},I=(Z)=>{let T=new Set(Z),J=y(),q=new Set;for(let Y of J)if(T.has(Y))q.add(Y);if(q.size!==J.size)C(q)},z=()=>{C(new Set)};return X(rl.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:o,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:u,showCommandPalette:h,setShowCommandPalette:m,showDetailView:p,setShowDetailView:w,inputFocused:A,setInputFocused:W,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:y,toggleWorktreeSelection:O,selectAllNonMain:G,pruneSelectedWorktrees:I,clearSelection:z,showBulkActions:k,setShowBulkActions:F,focusPickerData:x,setFocusPickerData:S},get children(){return e.children}})}function st(){let e=Gt(rl);if(!e)throw Error("useApp must be used within AppProvider");return e}var rl;var Zt=ge(()=>{te();Ye();rl=Mn()});var xt,$o,as,_o;var Ut=ge(()=>{xt=class xt extends Error{exitCode;stderr;command;constructor(e,t,n,o){super(e);this.exitCode=t;this.stderr=n;this.command=o;this.name="GitError"}};$o=class $o extends Error{installed;required;constructor(e,t){super(`git version ${e} is below minimum required ${t}`);this.installed=e;this.required=t;this.name="GitVersionError"}};as=class as extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};_o=class _o extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Qt(e,t,n){let o=Array(e.length),i=0;async function s(){while(i<e.length){let a=i++;o[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(c),o}import{resolve as sl,dirname as Om}from"path";import{mkdirSync as vm,existsSync as km}from"fs";function bo(e){let t=Ir.get(e);if(!t)return;if(Date.now()>t.expires){Ir.delete(e);return}return t.data}function Tt(e,t,n=Em){return Ir.set(e,{data:t,expires:Date.now()+n}),t}function dt(){Ir.clear()}class se{static gitVersionChecked=!1;static async run(e,t){let n=Bun.spawn(["git",...e],{cwd:t??Bun.cwd,stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[o,i,s]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(s!==0)throw new xt(`git ${e[0]} failed: ${i.trim()}`,s,i.trim(),`git ${e.join(" ")}`);return o.trim()}static async exec(e,t){return this.run(e,t)}static async checkVersion(){if(this.gitVersionChecked)return;let t=(await this.run(["--version"])).match(/git version (\d+)\.(\d+)\.?((\d+)?)/);if(!t)throw Error("Cannot parse git version");let[,n,o]=t.map(Number);if(n<2||n===2&&o<17)throw new $o(`${n}.${o}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),o=`list:${n}`,i=bo(o);if(i)return i;let s=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,s,n),u=await Qt(a,10,async(h)=>({...h,isDirty:await this.isDirty(h.path).catch(()=>!1)}));return Tt(o,u)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=sl(i);if(!t.has(s))t.add(s),n.push(s)}return(await Qt(n,5,async(i)=>{try{return await this.list(i)}catch{return[]}})).flat()}static parsePorcelain(e,t,n){let o=e.trim();if(!o)return[];return o.split(/\n\n+/).filter(Boolean).map((s,c)=>{let a=s.split(`
|
|
6
|
+
`),u=a.find((C)=>C.startsWith("worktree ")),h=a.find((C)=>C.startsWith("HEAD ")),m=a.find((C)=>C.startsWith("branch ")),p=a.find((C)=>C.startsWith("locked")),w=u?.slice(9)??"",A=h?.slice(5)??"",W=null;if(m)W=m.slice(7).replace(/^refs\/heads\//,"");let y=p&&p.startsWith("locked ")?p.slice(7):void 0;return{path:w,branch:W,head:A,isMain:c===0,isDirty:!1,isLocked:Boolean(p),lockReason:y,repoName:t,repoPath:n}})}static async add(e,t,n,o){await this.checkVersion();let i=Om(t);if(!km(i))vm(i,{recursive:!0});let c=!await this.localBranchExists(e,o),a=["worktree","add",t,e];if(c)a=["worktree","add","-b",e,t,n?.base??"HEAD"];await this.run(a,o),dt()}static async localBranchExists(e,t){try{return await this.run(["rev-parse","--verify",`refs/heads/${e}`],t??Bun.cwd),!0}catch{return!1}}static async remove(e,t,n){await this.checkVersion();let o=["worktree","remove",e];if(t?.force)o.push("--force");await this.run(o,n),dt()}static async move(e,t,n){await this.checkVersion(),await this.run(["worktree","move",e,t],n),dt()}static async prune(e){await this.checkVersion(),await this.run(["worktree","prune"],e),dt()}static async isWorktree(e){let t=e??Bun.cwd;try{let n=await this.run(["rev-parse","--git-dir"],t),o=await this.run(["rev-parse","--git-common-dir"],t);return n!==o&&!n.endsWith("/.git")&&!n.endsWith("\\.git")}catch{return!1}}static async getMainRepoPath(e){let t=e??Bun.cwd,n=await this.run(["rev-parse","--git-common-dir"],t),o=sl(t,n);return o.endsWith("/.git")?o.slice(0,-5):o}static async getBranchForWorktree(e){try{let t=await this.run(["rev-parse","--abbrev-ref","HEAD"],e);return t==="HEAD"?null:t}catch{return null}}static async isDirty(e){try{return(await this.run(["status","--porcelain"],e??Bun.cwd)).length>0}catch{return!1}}static async getAheadBehind(e,t){let n=t??Bun.cwd,o=`ahead-behind:${n}:${e}`,i=bo(o);if(i)return i;try{let s=await this.run(["rev-parse","--abbrev-ref",`${e}@{upstream}`],n),c=await this.run(["rev-list","--left-right","--count",`${s}...${e}`],n),[a,u]=c.split(/\s+/).map(Number);return Tt(o,{ahead:u??0,behind:a??0})}catch{return Tt(o,{ahead:0,behind:0})}}static async getLastCommit(e){let t=e??Bun.cwd,n=`last-commit:${t}`,o=bo(n);if(o!==void 0)return o;try{let i=await this.run(["log","-1","--format=%h\x1F%s\x1F%cr"],t);if(!i)return Tt(n,null);let[s,c,a]=i.split("\x1F");return Tt(n,{hash:s??"",message:c??"",relativeDate:a??""})}catch{return Tt(n,null)}}static async getDirtyCount(e){let t=e??Bun.cwd,n=`dirty-count:${t}`,o=bo(n);if(o!==void 0)return o;try{let i=await this.run(["status","--porcelain"],t);if(!i)return Tt(n,0);return Tt(n,i.split(`
|
|
7
|
+
`).filter(Boolean).length)}catch{return Tt(n,0)}}static async unlock(e,t){await this.checkVersion(),await this.run(["worktree","unlock",e],t),dt()}static async isMergedInto(e,t,n){try{return(await this.run(["branch","--merged",t],n??Bun.cwd)).split(`
|
|
8
|
+
`).some((i)=>i.trim().replace(/^[*+] /,"")===e)}catch{return!1}}static async getDefaultRemote(e){try{return await this.run(["config","checkout.defaultRemote"],e??Bun.cwd)||"origin"}catch{return"origin"}}static async remoteBranchExists(e,t,n){let o=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${o}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,o=bo(n);if(o)return o;let[i,s]=await Promise.all([this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/heads/"],t).catch(()=>""),this.run(["for-each-ref","--sort=-committerdate","--format=%(refname:short)\x1F%(committerdate:relative)","refs/remotes/"],t).catch(()=>"")]),c=[];for(let a of i.split(`
|
|
9
|
+
`).filter(Boolean)){let[u,h]=a.split("\x1F");c.push({name:u??"",isRemote:!1,lastCommitDate:h??""})}for(let a of s.split(`
|
|
10
|
+
`).filter(Boolean)){let[u,h]=a.split("\x1F");if(!u||u.endsWith("/HEAD"))continue;let m=u.replace(/^[^/]+\//,"");if(c.some((p)=>p.name===m))continue;c.push({name:m,isRemote:!0,lastCommitDate:h??""})}return Tt(n,c)}static async diffBetween(e,t,n,o){let i=["diff"];if(n?.stat)i.push("--stat");if(n?.nameOnly)i.push("--name-only");return i.push(e,t),this.run(i,o)}static async getWorktreeLastActivity(e){try{let t=await this.run(["log","-1","--format=%ci"],e);return t?new Date(t):null}catch{return null}}static async setUpstream(e,t,n){let o=t??await this.getDefaultRemote(n),i=n??Bun.cwd;try{if(await this.run(["config",`branch.${e}.remote`],i))return}catch{}await this.run(["branch",`--set-upstream-to=${o}/${e}`,e],i)}static async getRemotes(e){let t=e??Bun.cwd,n=`remotes:${t}`,o=bo(n);if(o)return o;try{let s=(await this.run(["remote"],t)).split(`
|
|
11
|
+
`).map((c)=>c.trim()).filter(Boolean);return Tt(n,s)}catch{return Tt(n,[])}}static async fetchRemote(e,t,n){let o=t?["fetch",e,t]:["fetch",e];await this.run(o,n),dt()}}function cl(e,t){if(!e||e.startsWith("refs/"))return null;let n=e.indexOf("/");if(n<=0)return null;let o=e.slice(0,n),i=e.slice(n+1);if(!i)return null;if(!t.includes(o))return null;return{remote:o,branch:i}}var Em=3000,Ir;var Ke=ge(()=>{Ut();Ir=new Map});function ll(e){let[t,{refetch:n}]=ma(async()=>{try{if(e.repoPaths.length<=1)return await se.list(e.repoPaths[0]);return await se.listAll(e.repoPaths)}catch(a){throw a}}),o=()=>{dt(),n()},i=()=>{if(t.error)return;try{return t()}catch{return}},s=Xe(()=>{let a=i()??[],u=new Set,h=[];for(let m of a)if(!u.has(m.repoName))u.add(m.repoName),h.push(m.repoName);return h}),c=Xe(()=>s().length>1);return X(al.Provider,{value:{worktrees:i,refetch:o,loading:()=>t.loading,error:()=>t.error,repoNames:s,isMultiRepo:c},get children(){return e.children}})}function gt(){let e=Gt(al);if(!e)throw Error("useGit must be used within GitProvider");return e}var al;var hn=ge(()=>{te();Ye();Ke();al=Mn()});var Fm,At,Br,Dm,wo,g;var yt=ge(()=>{Ye();Fm={opencode:{bg:{base:"#090909",surface:"#111111",elevated:"#1a1a1a",overlay:"#000000"},border:{default:"#2a2a2a",active:"#4fc3f7",subtle:"#1e1e1e"},text:{primary:"#e8e8e8",secondary:"#666666",accent:"#4fc3f7",success:"#4ade80",warning:"#fbbf24",error:"#f87171",selected:"#ffffff"},tab:{active:"#4fc3f7",activeBg:"#1a1a1a",inactive:"#555555",inactiveBg:"#000000"},select:{focusedBg:"#1a2a3a",focusedFg:"#4fc3f7",selectedBg:"#161616",selectedFg:"#e8e8e8",normalFg:"#e8e8e8",descFg:"#666666"}},"tokyo-night":{bg:{base:"#1a1b26",surface:"#1f2335",elevated:"#24283b",overlay:"#0d1117"},border:{default:"#3b4261",active:"#7aa2f7",subtle:"#292e42"},text:{primary:"#c0caf5",secondary:"#565f89",accent:"#7aa2f7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",selected:"#ffffff"},tab:{active:"#7aa2f7",activeBg:"#24283b",inactive:"#565f89",inactiveBg:"#1a1b26"},select:{focusedBg:"#283457",focusedFg:"#7aa2f7",selectedBg:"#2a2f44",selectedFg:"#c0caf5",normalFg:"#c0caf5",descFg:"#565f89"}},dracula:{bg:{base:"#282a36",surface:"#21222c",elevated:"#343746",overlay:"#191a21"},border:{default:"#6272a4",active:"#bd93f9",subtle:"#44475a"},text:{primary:"#f8f8f2",secondary:"#6272a4",accent:"#bd93f9",success:"#50fa7b",warning:"#ffb86c",error:"#ff5555",selected:"#ffffff"},tab:{active:"#bd93f9",activeBg:"#343746",inactive:"#6272a4",inactiveBg:"#282a36"},select:{focusedBg:"#44475a",focusedFg:"#bd93f9",selectedBg:"#383a4a",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#6272a4"}},nord:{bg:{base:"#2e3440",surface:"#3b4252",elevated:"#434c5e",overlay:"#242933"},border:{default:"#4c566a",active:"#81a1c1",subtle:"#3b4252"},text:{primary:"#eceff4",secondary:"#4c566a",accent:"#81a1c1",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",selected:"#ffffff"},tab:{active:"#88c0d0",activeBg:"#434c5e",inactive:"#4c566a",inactiveBg:"#2e3440"},select:{focusedBg:"#3b4252",focusedFg:"#88c0d0",selectedBg:"#3b4252",selectedFg:"#eceff4",normalFg:"#eceff4",descFg:"#4c566a"}},catppuccin:{bg:{base:"#1e1e2e",surface:"#181825",elevated:"#313244",overlay:"#11111b"},border:{default:"#45475a",active:"#cba6f7",subtle:"#313244"},text:{primary:"#cdd6f4",secondary:"#585b70",accent:"#cba6f7",success:"#a6e3a1",warning:"#fab387",error:"#f38ba8",selected:"#ffffff"},tab:{active:"#cba6f7",activeBg:"#313244",inactive:"#585b70",inactiveBg:"#1e1e2e"},select:{focusedBg:"#313244",focusedFg:"#cba6f7",selectedBg:"#313244",selectedFg:"#cdd6f4",normalFg:"#cdd6f4",descFg:"#585b70"}},"github-dark":{bg:{base:"#0d1117",surface:"#161b22",elevated:"#21262d",overlay:"#010409"},border:{default:"#30363d",active:"#58a6ff",subtle:"#21262d"},text:{primary:"#e6edf3",secondary:"#484f58",accent:"#58a6ff",success:"#3fb950",warning:"#d29922",error:"#f85149",selected:"#ffffff"},tab:{active:"#58a6ff",activeBg:"#21262d",inactive:"#484f58",inactiveBg:"#0d1117"},select:{focusedBg:"#1f2937",focusedFg:"#58a6ff",selectedBg:"#1f2937",selectedFg:"#e6edf3",normalFg:"#e6edf3",descFg:"#484f58"}},"one-dark":{bg:{base:"#282c34",surface:"#21252b",elevated:"#2c313a",overlay:"#1b1f27"},border:{default:"#3e4451",active:"#61afef",subtle:"#2c313a"},text:{primary:"#abb2bf",secondary:"#5c6370",accent:"#61afef",success:"#98c379",warning:"#e5c07b",error:"#e06c75",selected:"#ffffff"},tab:{active:"#61afef",activeBg:"#2c313a",inactive:"#5c6370",inactiveBg:"#282c34"},select:{focusedBg:"#2c313a",focusedFg:"#61afef",selectedBg:"#2c313a",selectedFg:"#abb2bf",normalFg:"#abb2bf",descFg:"#5c6370"}},monokai:{bg:{base:"#272822",surface:"#1e1f1c",elevated:"#3e3d32",overlay:"#1a1b18"},border:{default:"#49483e",active:"#a6e22e",subtle:"#3e3d32"},text:{primary:"#f8f8f2",secondary:"#75715e",accent:"#66d9ef",success:"#a6e22e",warning:"#e6db74",error:"#f92672",selected:"#ffffff"},tab:{active:"#a6e22e",activeBg:"#3e3d32",inactive:"#75715e",inactiveBg:"#272822"},select:{focusedBg:"#3e3d32",focusedFg:"#66d9ef",selectedBg:"#3e3d32",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#75715e"}},"github-light":{bg:{base:"#ffffff",surface:"#f6f8fa",elevated:"#eaeef2",overlay:"#d0d7de"},border:{default:"#d0d7de",active:"#0969da",subtle:"#eaeef2"},text:{primary:"#1f2328",secondary:"#656d76",accent:"#0969da",success:"#1a7f37",warning:"#9a6700",error:"#cf222e",selected:"#000000"},tab:{active:"#0969da",activeBg:"#eaeef2",inactive:"#656d76",inactiveBg:"#ffffff"},select:{focusedBg:"#ddf4ff",focusedFg:"#0969da",selectedBg:"#eaeef2",selectedFg:"#1f2328",normalFg:"#1f2328",descFg:"#656d76"}}},At=["opencode","tokyo-night","dracula","nord","catppuccin","github-dark","one-dark","monokai","github-light"],Br={opencode:"OpenCode","tokyo-night":"Tokyo Night",dracula:"Dracula",nord:"Nord",catppuccin:"Catppuccin Mocha","github-dark":"GitHub Dark","one-dark":"One Dark",monokai:"Monokai","github-light":"GitHub Light"},[Dm,wo]=ue("opencode"),g=new Proxy({},{get(e,t){return new Proxy({},{get(n,o){return Fm[Dm()][t]?.[o]}})}})});import{readFileSync as Mm,statSync as Pm}from"fs";import{join as fl,resolve as Am}from"path";function er(e){let t=fl(e,".git"),n=Pm(t,{throwIfNoEntry:!1});if(!n||n.isDirectory())return t;let i=Mm(t,"utf-8").trim().replace(/^gitdir:\s*/,"").trim();return Am(e,i)}function tn(e,t){return fl(er(e),t)}var Pn=()=>{};import{existsSync as Wm,mkdirSync as jm,readFileSync as Lm,writeFileSync as Im}from"fs";import{dirname as Bm,join as ls}from"path";function ul(e){return tn(e,"copse-focus")}function Vr(e,t){let n=ul(e);jm(Bm(n),{recursive:!0}),Im(n,t.join(`
|
|
12
|
+
`),{encoding:"utf-8",mode:384})}function Jt(e){let t=ul(e);if(!Wm(t))return null;return Lm(t,"utf-8").split(/\r?\n/).filter(Boolean)}function Kr(e,t){if(t?.forceRoot)return{kind:"root",path:e};let n=Jt(e)??[];if(t?.explicitFocus){if(!n.includes(t.explicitFocus))throw new Hr(t.explicitFocus,n);return{kind:"single",path:ls(e,t.explicitFocus),focus:t.explicitFocus}}if(n.length===0)return{kind:"root",path:e};if(n.length===1)return{kind:"single",path:ls(e,n[0]),focus:n[0]};return{kind:"multiple",focusPaths:n,resolvedPaths:n.map((o)=>ls(e,o))}}var Hr;var nn=ge(()=>{Pn();Hr=class Hr extends Error{requested;available;constructor(e,t){let n=t.length===0?"no focus paths are set on this worktree.":`available: ${t.join(", ")}.`;super(`Focus path '${e}' is not set; ${n}`);this.requested=e;this.available=t;this.name="FocusNotFoundError"}}});import{existsSync as us,mkdirSync as Vm,readFileSync as Hm,writeFileSync as Km,unlinkSync as Gm}from"fs";import{dirname as Um}from"path";function fs(e){return e.replace(/\//g,"-").replace(/[^a-zA-Z0-9._-]/g,"_")}async function mn(e){let t=Bun.spawn(["tmux",...e],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C"}}),[n,o,i]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);if(i!==0)throw new xo(`tmux ${e[0]} failed: ${o.trim()}`,o.trim());return n.trim()}function An(e,t){let n=fs(t??dl),o=fs(e);return`${n}_${o}`}function ds(e){return tn(e,"copse-session")}function Tm(e,t){let n=ds(e);Vm(Um(n),{recursive:!0}),Km(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}function zt(e){let t=ds(e);if(!us(t))return null;try{return JSON.parse(Hm(t,"utf-8"))}catch{return null}}function hs(e){let t=ds(e);if(us(t))Gm(t)}async function yo(){try{return await Bun.spawn(["tmux","-V"],{stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}function ms(){return Boolean(Bun.env.TMUX)}async function pn(e){try{return await mn(["has-session","-t",e]),!0}catch{return!1}}async function Jm(e,t,n){if(await pn(e))throw new xo(`Session '${e}' already exists`,"session_exists");if(!us(t))throw new xo(`Worktree path does not exist: ${t}`,"path_not_found");let o=n?.windows??[],i=o[0],s=["new-session","-d","-s",e,"-c",t];if(i)s.push("-n",i.name);if(await mn(s),i?.command)await mn(["send-keys","-t",`${e}:${i.name}`,i.command,"Enter"]);for(let c=1;c<o.length;c++){let a=o[c];if(await mn(["new-window","-t",e,"-n",a.name,"-c",t]),a.command)await mn(["send-keys","-t",`${e}:${a.name}`,a.command,"Enter"])}if(o.length>0)await mn(["select-window","-t",`${e}:${o[0].name}`])}async function ps(e){if(!await pn(e))return;await mn(["kill-session","-t",e])}async function Gr(e){if(!await pn(e))throw new xo(`Session '${e}' does not exist`,"session_not_found");if(ms())await mn(["switch-client","-t",e]);else if(await Bun.spawn(["tmux","attach-session","-t",e],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited!==0)throw new xo(`Failed to attach to session '${e}'`,"attach_failed")}async function gs(e){let t=fs(e??dl);try{let n=await mn(["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}|#{session_created}"]);if(!n)return[];return n.split(`
|
|
13
|
+
`).filter(Boolean).filter((o)=>o.startsWith(`${t}_`)||o.startsWith(`${t}:`)).map((o)=>{let[i,s,c,a]=o.split("|");return{name:i??"",windows:parseInt(s??"0",10),attached:c==="1",created:a??""}})}catch{return[]}}async function Ur(e,t,n){let o=An(e,n?.prefix),i=n?.attach??!0;if(await pn(o)){if(i)await Gr(o);return o}if(await Jm(o,t,n?.layout),Tm(t,{name:o,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Gr(o);return o}async function Tr(e,t,n){let o=An(e,n),i=await pn(o);if(i)await ps(o);return hs(t),i}var xo,dl="copse";var Wn=ge(()=>{Pn();xo=class xo extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function ml(e){let[t,n]=ue([]),o=(s)=>{n((c)=>c.filter((a)=>a.id!==s))},i=(s)=>{let c=`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,a=s.duration??3000;n((u)=>[...u,{...s,id:c}].slice(-5)),setTimeout(()=>{o(c)},a)};return X(hl.Provider,{value:{toasts:t,addToast:i,removeToast:o},get children(){return e.children}})}function on(){let e=Gt(hl);if(!e)throw Error("useToast must be used within ToastProvider");return e}var hl;var no=ge(()=>{te();Ye();hl=Mn()});function So(e){let[t,n]=ue(0),o=setInterval(()=>{n((i)=>(i+1)%pl.length)},80);return ct(()=>clearInterval(o)),(()=>{var i=l("box"),s=l("text");return f(i,s),r(i,"flexDirection","row"),r(i,"gap",1),V(s,()=>pl[t()]),V(i,(()=>{var c=Le(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return V(a,()=>e.label),H((u)=>r(a,"fg",g.text.secondary,u)),a})()})(),null),H((c)=>r(s,"fg",e.color??g.text.accent,c)),i})()}var pl;var Jr=ge(()=>{te();te();te();te();te();te();Ye();yt();pl=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function gl(e){let t=gt(),n=on(),o=dn(),i=rt(),s=()=>i().width,c=()=>i().height,[a,u]=ue(null),[h,m]=ue(!0),[p,w]=ue("");Ha((S)=>{let O=S.getSelectedText();if(!O)return;o.copyToClipboardOSC52(O),n.addToast({type:"info",message:"Copied to clipboard"})});let A;ct(()=>{if(A)clearTimeout(A)});let W=()=>{return(t.worktrees()??[]).find((G)=>G.isMain)?.branch??"main"};Pt(en(()=>e.worktree.path,(S)=>{if(A)clearTimeout(A);if(!S){u(null),w(""),m(!1);return}u(null),w(""),m(!0),A=setTimeout(async()=>{if(e.worktree.path!==S)return;try{let[O,[G,I],z]=await Promise.all([qm(S),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(W(),e.worktree.branch,{stat:!0},S).catch(()=>""),se.diffBetween(W(),e.worktree.branch,void 0,S).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?se.getAheadBehind(e.worktree.branch,S):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==S)return;let Z=null;try{Z=Jt(S)}catch{}let T=null,J=zt(S);if(J){let q=await pn(J.name).catch(()=>!1);T={meta:J,active:q}}if(e.worktree.path!==S)return;u({commits:O,diffStat:G,fullDiff:I,aheadBehind:z,focus:Z,session:T}),w("")}catch(O){if(e.worktree.path!==S)return;u(null),w(O.message)}finally{if(e.worktree.path===S)m(!1)}},zm)}));let y=()=>{let S=e.worktree;if(S.isLocked)return"\uD83D\uDD12 locked";if(S.isDirty)return"\u25CF dirty";return"\u2713 clean"},C=()=>{let S=e.worktree;if(S.isLocked)return g.text.warning;if(S.isDirty)return g.text.error;return g.text.success},k=()=>{let S=a();if(!S)return"";let O=[];if(S.aheadBehind.ahead>0)O.push(`\u2191${S.aheadBehind.ahead}`);if(S.aheadBehind.behind>0)O.push(`\u2193${S.aheadBehind.behind}`);return O.length>0?O.join(" "):"\u2713 up to date"},F=()=>{let S=a();if(!S)return g.text.secondary;return S.aheadBehind.ahead||S.aheadBehind.behind?g.text.warning:g.text.success},x=()=>"\u2500".repeat(Math.max(s()-7,10));return(()=>{var S=l("box"),O=l("scrollbox"),G=l("box"),I=l("text"),z=l("text"),Z=l("box"),T=l("text"),J=l("box"),q=l("box"),Y=l("box"),ne=l("text"),he=l("text"),_=l("box"),me=l("box"),ke=l("text"),E=l("text"),P=l("box"),U=l("box"),K=l("text"),L=l("text"),ee=l("box"),de=l("box"),ie=l("text"),we=l("text"),Oe=l("box"),pe=l("box"),Ee=l("text"),Fe=l("box"),We=l("text");return f(S,O),r(S,"x",0),r(S,"y",0),f(O,G),f(O,Z),f(O,J),f(O,q),f(O,_),f(O,P),f(O,ee),f(O,Oe),f(O,pe),f(O,Fe),r(O,"x",2),r(O,"y",1),f(G,I),f(G,z),r(G,"height",1),f(I,B("Worktree Detail")),r(I,"x",0),r(I,"y",0),r(I,"bold",!0),r(I,"selectable",!0),f(z,B("(Esc to close)")),r(z,"x",17),r(z,"y",0),r(z,"selectable",!0),f(Z,T),r(Z,"height",1),r(T,"x",0),r(T,"y",0),r(T,"selectable",!0),V(T,x),r(J,"height",1),f(q,Y),f(q,he),r(q,"height",1),r(q,"flexDirection","row"),f(Y,ne),r(Y,"width",16),r(Y,"height",1),f(ne,B("Branch")),r(ne,"x",0),r(ne,"y",0),r(ne,"selectable",!0),r(he,"selectable",!0),V(he,()=>e.worktree.branch??"(detached)"),f(_,me),f(_,E),r(_,"height",1),r(_,"flexDirection","row"),f(me,ke),r(me,"width",16),r(me,"height",1),f(ke,B("Path")),r(ke,"x",0),r(ke,"y",0),r(ke,"selectable",!0),r(E,"selectable",!0),V(E,()=>e.worktree.path),f(P,U),f(P,L),r(P,"height",1),r(P,"flexDirection","row"),f(U,K),r(U,"width",16),r(U,"height",1),f(K,B("Status")),r(K,"x",0),r(K,"y",0),r(K,"selectable",!0),r(L,"selectable",!0),V(L,y),f(ee,de),f(ee,we),r(ee,"height",1),r(ee,"flexDirection","row"),f(de,ie),r(de,"width",16),r(de,"height",1),f(ie,B("HEAD")),r(ie,"x",0),r(ie,"y",0),r(ie,"selectable",!0),r(we,"selectable",!0),V(we,()=>e.worktree.head?.slice(0,8)),V(O,X(re,{get when(){return h()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box");return r(j,"height",1),V(j,X(So,{label:"Loading details..."})),j})()]}}),Oe),V(O,X(re,{get when(){return Le(()=>!h())()&&!!p()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,()=>`Failed to load details: ${p()}`),H((b)=>r(d,"fg",g.text.error,b)),j})()]}}),Oe),V(O,X(re,{get when(){return Le(()=>!h()&&!p())()&&!!a()},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Upstream")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Sync")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,k),H((D)=>{var v=g.text.secondary,$=F();return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),X(re,{get when(){return a().aheadBehind.ahead>0},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Ahead")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>`${a().aheadBehind.ahead} commit(s)`),H((D)=>{var v=g.text.secondary,$=g.text.warning;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}}),X(re,{get when(){return a().aheadBehind.behind>0},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Behind")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>`${a().aheadBehind.behind} commit(s)`),H((D)=>{var v=g.text.secondary,$=g.text.warning;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}}),(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Recent Commits")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(re,{get when(){return a().commits.length>0},get fallback(){return(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("No commits found")),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.secondary,b)),j})()},get children(){return X(nt,{get each(){return a().commits},children:(j)=>(()=>{var d=l("box"),b=l("text");return f(d,b),r(d,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),V(b,j),H((M)=>r(b,"fg",g.text.primary,M)),d})()})}}),X(re,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),V(d,()=>`Diff vs ${W()}`),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(re,{get when(){return a().diffStat.length>0},get children(){var j=l("code");return r(j,"language","diff"),H((d)=>r(j,"code",a().diffStat,d)),j}}),(()=>{var j=l("box");return r(j,"height",1),j})(),X(re,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("No changes")),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.secondary,b)),j})()},get children(){var j=l("scrollbox"),d=l("diff");return f(j,d),r(j,"height",15),r(d,"view","unified"),H((b)=>{var M=s()-3,D=a().fullDiff;return M!==b.e&&(b.e=r(j,"width",M,b.e)),D!==b.t&&(b.t=r(d,"diff",D,b.t)),b},{e:void 0,t:void 0}),j}})]}}),X(re,{get when(){return Le(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Focus Paths")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),X(nt,{get each(){return a().focus},children:(j)=>(()=>{var d=l("box"),b=l("text");return f(d,b),r(d,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),V(b,` \u2022 ${j}`),H((M)=>r(b,"fg",g.text.primary,M)),d})()})]}}),X(re,{get when(){return a().session},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),f(d,B("Session")),r(d,"x",0),r(d,"y",0),r(d,"bold",!0),r(d,"selectable",!0),H((b)=>r(d,"fg",g.text.accent,b)),j})(),(()=>{var j=l("box"),d=l("text");return f(j,d),r(j,"height",1),r(d,"x",0),r(d,"y",0),r(d,"selectable",!0),V(d,x),H((b)=>r(d,"fg",g.border.subtle,b)),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Name")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.meta.name),H((D)=>{var v=g.text.secondary,$=g.text.primary;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Status")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.active?"\u25CF active":"\u25CB inactive"),H((D)=>{var v=g.text.secondary,$=a().session.active?g.text.success:g.text.error;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})(),X(re,{get when(){return a().session.meta.layout},get children(){var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Layout")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(M,"selectable",!0),V(M,()=>a().session.meta.layout),H((D)=>{var v=g.text.secondary,$=g.text.primary;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j}})]}}),X(re,{get when(){return e.worktree.isMain},get children(){return[(()=>{var j=l("box");return r(j,"height",1),j})(),(()=>{var j=l("box"),d=l("box"),b=l("text"),M=l("text");return f(j,d),f(j,M),r(j,"height",1),r(j,"flexDirection","row"),f(d,b),r(d,"width",16),r(d,"height",1),f(b,B("Type")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),f(M,B("main worktree")),r(M,"selectable",!0),H((D)=>{var v=g.text.secondary,$=g.text.accent;return v!==D.e&&(D.e=r(b,"fg",v,D.e)),$!==D.t&&(D.t=r(M,"fg",$,D.t)),D},{e:void 0,t:void 0}),j})()]}})]}}),Oe),r(Oe,"height",1),f(pe,Ee),r(pe,"height",1),r(Ee,"x",0),r(Ee,"y",0),r(Ee,"selectable",!0),V(Ee,x),f(Fe,We),r(Fe,"height",1),f(We,B("Esc:back d:delete o:open r:refresh")),r(We,"x",0),r(We,"y",0),r(We,"selectable",!0),H((j)=>{var d=s(),b=c(),M=g.bg.base,D=s()-3,v=c()-3,$=g.text.accent,oe=g.text.secondary,be=g.border.subtle,le=g.text.secondary,Ie=g.text.accent,N=g.text.secondary,ae=g.text.primary,ce=g.text.secondary,Q=C(),Re=g.text.secondary,Ce=g.text.secondary,Te=g.border.subtle,Ge=g.text.secondary;return d!==j.e&&(j.e=r(S,"width",d,j.e)),b!==j.t&&(j.t=r(S,"height",b,j.t)),M!==j.a&&(j.a=r(S,"backgroundColor",M,j.a)),D!==j.o&&(j.o=r(O,"width",D,j.o)),v!==j.i&&(j.i=r(O,"height",v,j.i)),$!==j.n&&(j.n=r(I,"fg",$,j.n)),oe!==j.s&&(j.s=r(z,"fg",oe,j.s)),be!==j.h&&(j.h=r(T,"fg",be,j.h)),le!==j.r&&(j.r=r(ne,"fg",le,j.r)),Ie!==j.d&&(j.d=r(he,"fg",Ie,j.d)),N!==j.l&&(j.l=r(ke,"fg",N,j.l)),ae!==j.u&&(j.u=r(E,"fg",ae,j.u)),ce!==j.c&&(j.c=r(K,"fg",ce,j.c)),Q!==j.w&&(j.w=r(L,"fg",Q,j.w)),Re!==j.m&&(j.m=r(ie,"fg",Re,j.m)),Ce!==j.f&&(j.f=r(we,"fg",Ce,j.f)),Te!==j.y&&(j.y=r(Ee,"fg",Te,j.y)),Ge!==j.g&&(j.g=r(We,"fg",Ge,j.g)),j},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0}),S})()}async function qm(e){try{let t=Bun.spawn(["git","log","--oneline","-10"],{cwd:e,stdout:"pipe",stderr:"pipe",env:{...process.env,LC_ALL:"C"}}),n=await new Response(t.stdout).text();if(await t.exited,t.exitCode!==0)return[];return n.trim().split(`
|
|
14
|
+
`).filter(Boolean)}catch{return[]}}var zm=150;var bl=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();hn();no();yt();nn();Wn();Ke();Jr()});function wl(){let e=st(),t=gt(),n=rt(),o=()=>{let y=t.worktrees()??[],C=e.selectedWorktreePath();if(C){let k=y.find((F)=>F.path===C);if(k)return k}return y[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[u,h]=ue(!1),[m,p]=ue(""),w;ct(()=>{if(w)clearTimeout(w)}),Pt(en(()=>o()?.path,(y)=>{if(w)clearTimeout(w);if(!y){a(null),h(!1),p("");return}a(null),h(!0),p(""),w=setTimeout(async()=>{let C=o();if(!C||C.path!==y)return;try{let[k,F,x]=await Promise.all([C.branch?se.getAheadBehind(C.branch,C.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(C.path),se.getDirtyCount(C.path)]);if(o()?.path===y)a({aheadBehind:k,lastCommit:F,dirtyCount:x}),p("")}catch(k){if(o()?.path===y)a(null),p(k.message)}finally{if(o()?.path===y)h(!1)}},Xm)}));let A=()=>{if(u())return"Loading...";if(m())return"Unavailable";let y=c();if(!y)return"";let C=[];if(y.aheadBehind.ahead>0)C.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)C.push(`\u2193${y.aheadBehind.behind}`);return C.length>0?C.join(" "):"\u2713 up to date"},W=()=>{let y=o();if(!y)return"";if(y.isLocked)return"\uD83D\uDD12 locked";let C=c();if(C&&C.dirtyCount>0)return`\u25CF ${C.dirtyCount} file(s) dirty`;if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"};return it((y)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let C=y.name;if(C==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(C==="return"&&!e.showDetailView()&&o()){e.setShowDetailView(!0);return}if(C==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var y=l("box");return r(y,"width","100%"),r(y,"height","100%"),V(y,X(re,{get when(){return Le(()=>!!e.showDetailView())()&&!!o()},get children(){return X(gl,{get worktree(){return o()}})}}),null),V(y,X(re,{get when(){return!e.showDetailView()},get children(){return[X(re,{get when(){return t.loading()},get children(){return X(So,{label:"Loading worktrees..."})}}),X(re,{get when(){return Le(()=>!t.loading())()&&!!t.error()},get children(){var C=l("box"),k=l("text"),F=l("text"),x=l("text"),S=l("text"),O=l("text"),G=l("text"),I=l("text"),z=l("text"),Z=l("text");return f(C,k),f(C,F),f(C,x),f(C,S),f(C,O),f(C,G),f(C,I),f(C,z),f(C,Z),r(C,"flexDirection","column"),r(C,"paddingX",2),r(C,"paddingY",1),r(C,"gap",0),f(k,B("Unable to list worktrees")),f(F,B(" ")),V(x,()=>t.error()?.message),f(S,B(" ")),f(O,B("copse needs a git repository to manage worktrees.")),f(G,B(" \xB7 cd into a git repository and relaunch copse, or")),f(I,B(" \xB7 configure repos in ~/.config/copse/config.json")),f(z,B(" ")),f(Z,B("Press q to quit, or ^P to open the command palette.")),H((T)=>{var J=g.text.error,q=g.text.secondary,Y=g.text.secondary,ne=g.text.secondary,he=g.text.secondary,_=g.text.secondary,me=g.text.secondary,ke=g.text.secondary,E=g.text.accent;return J!==T.e&&(T.e=r(k,"fg",J,T.e)),q!==T.t&&(T.t=r(F,"fg",q,T.t)),Y!==T.a&&(T.a=r(x,"fg",Y,T.a)),ne!==T.o&&(T.o=r(S,"fg",ne,T.o)),he!==T.i&&(T.i=r(O,"fg",he,T.i)),_!==T.n&&(T.n=r(G,"fg",_,T.n)),me!==T.s&&(T.s=r(I,"fg",me,T.s)),ke!==T.h&&(T.h=r(z,"fg",ke,T.h)),E!==T.r&&(T.r=r(Z,"fg",E,T.r)),T},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),C}}),X(re,{get when(){return Le(()=>!t.loading()&&!t.error())()&&!!o()},get children(){var C=l("box"),k=l("box"),F=l("text"),x=l("box"),S=l("text"),O=l("box"),G=l("box"),I=l("text"),z=l("text"),Z=l("box"),T=l("box"),J=l("text"),q=l("text"),Y=l("box"),ne=l("box"),he=l("text"),_=l("text"),me=l("box"),ke=l("box"),E=l("text"),P=l("text"),U=l("box"),K=l("box"),L=l("text"),ee=l("text"),de=l("box"),ie=l("text"),we=l("box"),Oe=l("text"),pe=l("text"),Ee=l("text"),Fe=l("text"),We=l("text"),j=l("text");return f(C,k),f(C,x),f(C,O),f(C,Z),f(C,Y),f(C,me),f(C,U),f(C,de),f(C,we),r(C,"width","100%"),r(C,"height","100%"),r(C,"flexDirection","column"),r(C,"paddingX",2),r(C,"paddingY",1),f(k,F),r(k,"height",1),r(k,"flexDirection","row"),f(F,B("Worktree Details")),f(x,S),r(x,"height",1),V(S,()=>"\u2500".repeat(Math.max(i()-38,10))),V(C,X(re,{get when(){return t.isMultiRepo()},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Repo")),V(D,()=>o()?.repoName),H((v)=>{var $=g.text.secondary,oe=g.text.warning;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),O),f(O,G),f(O,z),r(O,"height",1),r(O,"flexDirection","row"),f(G,I),r(G,"width",14),r(G,"height",1),f(I,B("Branch")),V(z,()=>o()?.branch??"(detached)"),f(Z,T),f(Z,q),r(Z,"height",1),r(Z,"flexDirection","row"),f(T,J),r(T,"width",14),r(T,"height",1),f(J,B("Path")),V(q,()=>o()?.path),f(Y,ne),f(Y,_),r(Y,"height",1),r(Y,"flexDirection","row"),f(ne,he),r(ne,"width",14),r(ne,"height",1),f(he,B("Status")),V(_,W),f(me,ke),f(me,P),r(me,"height",1),r(me,"flexDirection","row"),f(ke,E),r(ke,"width",14),r(ke,"height",1),f(E,B("Sync")),V(P,A),f(U,K),f(U,ee),r(U,"height",1),r(U,"flexDirection","row"),f(K,L),r(K,"width",14),r(K,"height",1),f(L,B("HEAD")),V(ee,()=>o()?.head?.slice(0,8)),V(C,X(re,{get when(){return c()?.lastCommit},get children(){return[(()=>{var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Last Commit")),V(D,()=>c().lastCommit.relativeDate),H((v)=>{var $=g.text.secondary,oe=g.text.primary;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d})(),(()=>{var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),V(D,(()=>{var v=Le(()=>c().lastCommit.message.length>50);return()=>v()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),H((v)=>{var $=g.text.secondary,oe=g.text.secondary;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d})()]}}),de),V(C,X(re,{get when(){let d=Jt(o()?.path??"");return d&&d.length>0},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Focus")),V(D,()=>Jt(o()?.path??"")?.join(", ")??""),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),V(C,X(re,{get when(){return!!zt(o()?.path??"")},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Session")),V(D,()=>{let v=zt(o()?.path??"");if(!v)return"";return v.layout?`${v.name} [${v.layout}]`:v.name}),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),V(C,X(re,{get when(){return o()?.isMain},get children(){var d=l("box"),b=l("box"),M=l("text"),D=l("text");return f(d,b),f(d,D),r(d,"height",1),r(d,"flexDirection","row"),f(b,M),r(b,"width",14),r(b,"height",1),f(M,B("Type")),f(D,B("main worktree")),H((v)=>{var $=g.text.secondary,oe=g.text.accent;return $!==v.e&&(v.e=r(M,"fg",$,v.e)),oe!==v.t&&(v.t=r(D,"fg",oe,v.t)),v},{e:void 0,t:void 0}),d}}),de),f(de,ie),r(de,"height",1),V(ie,()=>"\u2500".repeat(Math.max(i()-38,10))),f(we,Oe),f(we,pe),f(we,Ee),f(we,Fe),f(we,We),f(we,j),r(we,"height",1),r(we,"flexDirection","row"),r(we,"gap",2),f(Oe,B("Enter:detail")),f(pe,B("d:delete")),f(Ee,B("a:add")),f(Fe,B("o:open")),f(We,B("r:refresh")),f(j,B("^P:commands")),H((d)=>{var b=g.bg.surface,M=g.text.accent,D=g.border.subtle,v=g.text.secondary,$=g.text.accent,oe=g.text.secondary,be=g.text.primary,le=g.text.secondary,Ie=o()?.isDirty?g.text.error:o()?.isLocked?g.text.warning:g.text.success,N=g.text.secondary,ae=m()?g.text.error:u()?g.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?g.text.warning:g.text.success,ce=g.text.secondary,Q=g.text.secondary,Re=g.border.subtle,Ce=g.text.secondary,Te=g.text.secondary,Ge=g.text.secondary,Qe=g.text.secondary,ht=g.text.secondary,Pe=g.text.secondary;return b!==d.e&&(d.e=r(C,"backgroundColor",b,d.e)),M!==d.t&&(d.t=r(F,"fg",M,d.t)),D!==d.a&&(d.a=r(S,"fg",D,d.a)),v!==d.o&&(d.o=r(I,"fg",v,d.o)),$!==d.i&&(d.i=r(z,"fg",$,d.i)),oe!==d.n&&(d.n=r(J,"fg",oe,d.n)),be!==d.s&&(d.s=r(q,"fg",be,d.s)),le!==d.h&&(d.h=r(he,"fg",le,d.h)),Ie!==d.r&&(d.r=r(_,"fg",Ie,d.r)),N!==d.d&&(d.d=r(E,"fg",N,d.d)),ae!==d.l&&(d.l=r(P,"fg",ae,d.l)),ce!==d.u&&(d.u=r(L,"fg",ce,d.u)),Q!==d.c&&(d.c=r(ee,"fg",Q,d.c)),Re!==d.w&&(d.w=r(ie,"fg",Re,d.w)),Ce!==d.m&&(d.m=r(Oe,"fg",Ce,d.m)),Te!==d.f&&(d.f=r(pe,"fg",Te,d.f)),Ge!==d.y&&(d.y=r(Ee,"fg",Ge,d.y)),Qe!==d.g&&(d.g=r(Fe,"fg",Qe,d.g)),ht!==d.p&&(d.p=r(We,"fg",ht,d.p)),Pe!==d.b&&(d.b=r(j,"fg",Pe,d.b)),d},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),C}}),X(re,{get when(){return Le(()=>!t.loading()&&!t.error())()&&!o()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"flexDirection","column"),r(C,"gap",1),f(k,B("No worktree selected.")),f(F,B("Press 'a' to create one.")),H((x)=>{var S=g.text.secondary,O=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}})]}}),null),H((C)=>r(y,"backgroundColor",g.bg.base,C)),y})()}var Xm=150;var xl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();nn();Wn();Ke();bl();Jr()});var Se,Ve;var zr=ge(()=>{Se={fetch:"fetch",worktree:"worktree",upstream:"upstream",copyFiles:"copyFiles",linkFiles:"linkFiles",sharedDeps:"sharedDeps",focus:"focus",postCreate:"postCreate",monorepoHooks:"monorepoHooks",session:"session",prMeta:"prMeta",activityLog:"activityLog"},Ve={postRemove:"postRemove",monorepoHooks:"monorepoHooks",session:"session",worktree:"worktree",activityLog:"activityLog"}});import*as Ym from"fs";import{join as jn,resolve as gn,dirname as tr}from"path";function qr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=jn(gn(e),i),c=jn(gn(t),i);if(!bn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(bn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{Co(tr(c),{recursive:!0}),Sl(s,c),o.copied.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return o}function Xr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=gn(jn(gn(e),i)),c=jn(gn(t),i);if(!bn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(bn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{Co(tr(c),{recursive:!0}),Cl(s,c),o.linked.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return o}function Rl(e,t,n=0){let o=0,i=[];if(n>$m)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=gn(e),c=gn(t);if(!bn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Nm(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return Co(tr(c),{recursive:!0}),yl(s,c),{linked:1,errors:[]}}catch(u){return{linked:0,errors:[`Failed to hardlink ${e}: ${u.message}`]}}if(!bn(c))Co(c,{recursive:!0});try{let u=Qm(s,{withFileTypes:!0});for(let h of u){let m=jn(s,h.name),p=jn(c,h.name);if(h.isDirectory()){let w=Rl(m,p,n+1);if(o+=w.linked,w.errors.length>0)i.push(...w.errors)}else if(h.isFile()){if(bn(p))continue;try{yl(m,p),o++}catch(w){try{Sl(m,p),o++}catch(A){i.push(`Failed to link/copy ${h.name}: ${A.message}`)}}}}}catch(u){i.push(`Failed to read directory ${e}: ${u.message}`)}return{linked:o,errors:i}}function Ol(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=jn(gn(e),c),u=jn(gn(t),c);if(!bn(a)){o.skipped.push(c),o.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(bn(u)){o.skipped.push(c);continue}try{if(s==="symlink")Co(tr(u),{recursive:!0}),Cl(a,u),o.linked.push(c);else if(s==="hardlink"){let h=Rl(a,u);if(h.linked>0)o.linked.push(c);for(let m of h.errors)o.warnings.push(m)}else Co(tr(u),{recursive:!0}),Zm(a,u,{recursive:!0}),o.copied.push(c)}catch(h){o.skipped.push(c),o.warnings.push(`Failed to share dep ${c}: ${h.message}`)}}return o}var Sl,Zm,bn,Cl,fy,yl,Qm,Nm,Co,$m=30;var bs=ge(()=>{({copyFileSync:Sl,cpSync:Zm,existsSync:bn,symlinkSync:Cl,unlinkSync:fy,linkSync:yl,readdirSync:Qm,statSync:Nm,mkdirSync:Co}=Ym)});import{existsSync as _m,mkdirSync as ep}from"fs";async function rn(e,t){let n=t.timeout??30000;for(let o of e)await tp(o,t.cwd,n,t.env??{},t.onOutput)}async function tp(e,t,n,o,i){if(!_m(t))ep(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}catch(h){if(h.code!=="ENOENT")throw h;s=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,s.kill()},n),u=s.stderr?new Response(s.stderr).text():Promise.resolve("");try{if(i&&s.stdout){let m=s.stdout.getReader(),p=new TextDecoder,w=[];while(!0){let{done:W,value:y}=await m.read();if(W)break;let k=p.decode(y,{stream:!0}).split(`
|
|
15
|
+
`);if(k.length===1)w.push(k[0]);else{w.push(k[0]);let F=w.join("");if(w.length=0,F)i(F);for(let S=1;S<k.length-1;S++)if(k[S])i(k[S]);let x=k[k.length-1];if(x)w.push(x)}}let A=w.join("")+p.decode();if(A)i(A)}let h=await s.exited;if(c)throw new Oo(e,n);if(h!==0){let m=(await u).trim();throw new Ro(e,h,m)}}finally{clearTimeout(a)}}var Ro,Oo;var oo=ge(()=>{Ro=class Ro extends Error{command;exitCode;stderr;constructor(e,t,n){super(`Hook command failed (exit ${t}): ${e}
|
|
16
|
+
${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};Oo=class Oo extends Error{command;timeoutMs;constructor(e,t){super(`Hook command timed out after ${t}ms: ${e}`);this.command=e;this.timeoutMs=t;this.name="HookTimeoutError"}}});import{mkdirSync as np,writeFileSync as op}from"fs";import{dirname as rp}from"path";function ip(e){return tn(e,"copse-pr")}function vl(e,t){let n=ip(e);np(rp(n),{recursive:!0}),op(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var kl=ge(()=>{Pn()});import{appendFileSync as sp,existsSync as cp,mkdirSync as ap,readFileSync as El,rmSync as lp,statSync as fp,writeFileSync as up}from"fs";import{dirname as dp}from"path";function ws(e){return tn(e,"copse-activity.log")}function qt(e,t){let n=ws(e);ap(dp(n),{recursive:!0}),sp(n,`${JSON.stringify(t)}
|
|
17
|
+
`,{encoding:"utf-8",mode:384});let o=fp(n,{throwIfNoEntry:!1});if(o&&o.size>mp){let i=El(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>Fl){let s=i.slice(-hp);up(n,`${s.join(`
|
|
19
18
|
`)}
|
|
20
|
-
`,{encoding:"utf-8",mode:384})}}}function
|
|
21
|
-
`)[0]}
|
|
22
|
-
Worktree ready: ${m}`),process.exit(0)}catch(R){console.error(`
|
|
23
|
-
Setup failed, rolling back...`);try{await se.remove(m,{force:!0},r),console.error("Rolled back worktree.")}catch(k){console.error(`Warning: rollback failed: ${k.message}`)}if(R instanceof Sr)console.error(`Error: hook timed out: ${R.command}`);else if(R instanceof Pr){if(console.error(`Error: hook failed (exit ${R.exitCode}): ${R.command}`),R.stderr)console.error(R.stderr)}else console.error(`Error: ${R.message}`);process.exit(1)}}},ig=og});var af={};qe(af,{default:()=>ag});import{relative as sg,resolve as ks}from"path";var cg,ag;var lf=be(()=>{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=En(c),h=new Set([ks(a)]),p=[a];for(let m of d){let b=ks(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=ks(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=be(()=>{je();Ye();gn();Yt();Jo();Tn();Dn();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 In(`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=nr(h.monorepo.hooks,p);if(b.length>0){let D=ff(i),I=c.branch??"unknown";console.log(" Running monorepo postRemove hooks..."),await Cr(b,"postRemove",{cwd:c.path,env:{COPSE_BRANCH:I,COPSE_WORKTREE_PATH:c.path,COPSE_REPO_PATH:i,COPSE_FOCUS_PATHS:p.join(",")},repo:D,branch:I,focusPaths:p,mainRepoPath:i,onOutput:(v)=>console.log(` ${v}`)}),console.log(" \u2713 Monorepo hooks completed")}}let m=Rn(d);if(m.autoKill){if(await br()){let D=c.branch??t;if(await Ko(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=be(()=>{je();Tn();Ye();Dn();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=Rn(s);if(c.enabled&&us()){let a=i.branch??ug(i.path),d=Fn(a,c.prefix);if(await hn(d))try{await Lo(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)=>Wn(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 I=await se.getWorktreeLastActivity(D.path),v=I?Math.floor((p.getTime()-I.getTime())/86400000):1/0;return{wt:D,lastActivity:I,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(`
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
`,{encoding:"utf-8",mode:384})}}}function Dl(e,t){let n=ws(e),o=t?.limit??50;if(!cp(n))return[];let s=El(n,"utf-8").split(/\r?\n/).filter(Boolean),c=Math.max(0,s.length-o),a=[];for(let u=s.length-1;u>=c;u--)try{a.push(JSON.parse(s[u]))}catch{}return a}function Ml(e){lp(ws(e),{force:!0})}var Fl=1000,hp=500,mp;var Ln=ge(()=>{Pn();mp=80*Fl});function Yr(e,t){return e.map((n)=>{let o=new Bun.Glob(n.glob),i=t.filter((s)=>o.match(s));return{glob:n.glob,matchedPaths:i,copyFiles:n.copyFiles??[],linkFiles:n.linkFiles??[],postCreate:n.postCreate??[],postRemove:n.postRemove??[]}}).filter((n)=>n.matchedPaths.length>0)}function pp(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function Zr(e,t,n){for(let o of e){let i=o[t],s=t==="postCreate"&&o.copyFiles.length>0,c=t==="postCreate"&&o.linkFiles.length>0,a=i.length>0;if(!s&&!c&&!a)continue;for(let u of o.matchedPaths){let{join:h}=await import("path"),m=h(n.mainRepoPath,u),p=h(n.cwd,u);if(s){let w=qr(m,p,o.copyFiles);for(let A of w.copied)n.onOutput?.(`Copied ${u}/${A}`);for(let A of w.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(c){let w=Xr(m,p,o.linkFiles);for(let A of w.linked)n.onOutput?.(`Linked ${u}/${A}`);for(let A of w.warnings)n.onOutput?.(`\u26A0 ${A}`)}if(a){let w=i.map((W)=>pp(W,{packagePath:u,repo:n.repo,branch:n.branch})),A={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:u};await rn(w,{cwd:n.cwd,timeout:n.timeout,env:A,onOutput:n.onOutput})}}}}var xs=ge(()=>{oo();bs()});import{existsSync as gp,readdirSync as ky,readFileSync as Ey,statSync as bp}from"fs";import{join as wp,relative as Dy}from"path";function Pl(e,t){let n=[],o=[];for(let i of t){let s=i.trim();if(!s){o.push(s);continue}let c=wp(e,s);try{if(gp(c)&&bp(c).isDirectory())n.push(s);else o.push(s)}catch{o.push(s)}}return{valid:n,invalid:o}}var Al=()=>{};async function nr(e,t,n={}){let{branch:o,worktreePath:i,mainRepoPath:s,repoName:c}=t,a=Ht(e,s),u;if(t.templateName){let x=Sr(e,t.templateName);if(!x)throw Error(`Template '${t.templateName}' not found`);a=Cr(a,x),u=x.base}let h=t.base??u??a.base,m=t.focusPaths??[],p=Fn(e),w=t.session??p.autoCreate??!1,A=t.fetch!==!1,W=await se.localBranchExists(o,s),y=null;if(h&&A&&!W){let x=await se.getRemotes(s);y=cl(h,x)}let C=w?await yo():!1,k=[];if(y)k.push({id:Se.fetch,label:`Fetching ${y.remote}/${y.branch}`});if(k.push({id:Se.worktree,label:"Creating worktree"}),a.autoUpstream)k.push({id:Se.upstream,label:"Setting upstream"});if(a.copyFiles.length>0)k.push({id:Se.copyFiles,label:"Copying files"});if(a.linkFiles.length>0)k.push({id:Se.linkFiles,label:"Creating symlinks"});if(a.sharedDeps?.paths?.length)k.push({id:Se.sharedDeps,label:"Sharing dependencies"});if(m.length>0)k.push({id:Se.focus,label:"Setting focus"});if(a.postCreate.length>0)k.push({id:Se.postCreate,label:"Running postCreate hooks"});if(m.length>0&&a.monorepo?.hooks?.length)k.push({id:Se.monorepoHooks,label:"Running monorepo hooks"});if(w&&C)k.push({id:Se.session,label:"Creating session"});if(t.prNumber)k.push({id:Se.prMeta,label:"Writing PR metadata"});k.push({id:Se.activityLog,label:"Logging activity"}),n.onStepPlan?.(k);let F={validFocusPaths:[],invalidFocusPaths:[]};if(y){n.onStepStart?.(Se.fetch);try{await se.fetchRemote(y.remote,y.branch,s),n.onStepDone?.(Se.fetch)}catch(x){let S=x instanceof xt?x.stderr||x.message:x.message;F.fetchWarning=S.split(`
|
|
20
|
+
`)[0],n.onStepError?.(Se.fetch,`${F.fetchWarning} \u2014 continuing with local ref`)}}n.onStepStart?.(Se.worktree);try{await se.add(o,i,{createBranch:!W,base:h},s),n.onStepDone?.(Se.worktree)}catch(x){throw n.onStepError?.(Se.worktree,x.message),x}try{if(a.autoUpstream){n.onStepStart?.(Se.upstream);try{let S=await se.getDefaultRemote(s);if(await se.remoteBranchExists(o,S,s))await se.setUpstream(o,S,s),n.onStepDone?.(Se.upstream,`\u2192 ${S}/${o}`);else n.onStepDone?.(Se.upstream,"no remote branch")}catch(S){n.onStepError?.(Se.upstream,S.message)}}if(a.copyFiles.length>0)n.onStepStart?.(Se.copyFiles),qr(s,i,a.copyFiles),n.onStepDone?.(Se.copyFiles);if(a.linkFiles.length>0)n.onStepStart?.(Se.linkFiles),Xr(s,i,a.linkFiles),n.onStepDone?.(Se.linkFiles);if(a.sharedDeps?.paths?.length)n.onStepStart?.(Se.sharedDeps),Ol(s,i,a.sharedDeps),n.onStepDone?.(Se.sharedDeps);if(m.length>0){n.onStepStart?.(Se.focus);let{valid:S,invalid:O}=Pl(i,m);if(F.validFocusPaths=S,F.invalidFocusPaths=O,S.length>0)Vr(i,S);n.onStepDone?.(Se.focus,S.join(", "))}let x={COPSE_BRANCH:o,COPSE_WORKTREE_PATH:i,COPSE_REPO_PATH:s};if(F.validFocusPaths.length>0)x.COPSE_FOCUS_PATHS=F.validFocusPaths.join(",");if(a.postCreate.length>0)n.onStepStart?.(Se.postCreate),await rn(a.postCreate,{cwd:i,env:x,onOutput:n.onHookOutput}),n.onStepDone?.(Se.postCreate);if(F.validFocusPaths.length>0&&a.monorepo?.hooks?.length){let S=Yr(a.monorepo.hooks,F.validFocusPaths);if(S.length>0)n.onStepStart?.(Se.monorepoHooks),await Zr(S,"postCreate",{cwd:i,env:x,repo:c,branch:o,focusPaths:F.validFocusPaths,mainRepoPath:s,onOutput:n.onHookOutput}),n.onStepDone?.(Se.monorepoHooks)}if(w&&C){n.onStepStart?.(Se.session);try{let S=t.layoutName??p.defaultLayout,O=Rr(e,S),G=await Ur(o,i,{layout:O,prefix:p.prefix,attach:!1,layoutName:S});F.sessionName=G,n.onStepDone?.(Se.session,G)}catch(S){n.onStepError?.(Se.session,S.message.split(`
|
|
21
|
+
`)[0])}}if(t.prNumber)n.onStepStart?.(Se.prMeta),vl(i,{number:t.prNumber,branch:o,createdAt:new Date().toISOString()}),n.onStepDone?.(Se.prMeta);n.onStepStart?.(Se.activityLog);try{qt(s,{timestamp:new Date().toISOString(),event:"create",branch:o,path:i}),n.onStepDone?.(Se.activityLog)}catch(S){n.onStepError?.(Se.activityLog,S.message)}return F}catch(x){throw await se.remove(i,{force:!0},s).catch(()=>{}),x}}var Wl=ge(()=>{qe();Ke();Ut();bs();oo();nn();kl();Ln();xs();Wn();Al();zr()});async function ro(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:s,branch:c,force:a}=t,u=Ht(e,i),h=Fn(e),m=Jt(o)??[],p=m.length>0&&u.monorepo?.hooks?.length?Yr(u.monorepo.hooks,m):[],w=Boolean(h.autoKill&&c),A=w?await yo():!1,W=[];if(u.postRemove.length>0)W.push({id:Ve.postRemove,label:"Running postRemove hooks"});if(p.length>0)W.push({id:Ve.monorepoHooks,label:"Running monorepo hooks"});if(w&&A)W.push({id:Ve.session,label:"Killing session"});W.push({id:Ve.worktree,label:"Removing worktree"}),W.push({id:Ve.activityLog,label:"Logging activity"}),n.onStepPlan?.(W);let y={COPSE_BRANCH:c??"",COPSE_WORKTREE_PATH:o,COPSE_REPO_PATH:i};if(m.length>0)y.COPSE_FOCUS_PATHS=m.join(",");if(u.postRemove.length>0){n.onStepStart?.(Ve.postRemove);try{await rn(u.postRemove,{cwd:o,env:y,onOutput:n.onHookOutput}),n.onStepDone?.(Ve.postRemove)}catch(C){n.onStepError?.(Ve.postRemove,C.message)}}if(p.length>0){n.onStepStart?.(Ve.monorepoHooks);try{await Zr(p,"postRemove",{cwd:o,env:y,repo:s,branch:c??"",focusPaths:m,mainRepoPath:i,onOutput:n.onHookOutput}),n.onStepDone?.(Ve.monorepoHooks)}catch(C){n.onStepError?.(Ve.monorepoHooks,C.message)}}if(w&&A&&c){n.onStepStart?.(Ve.session);try{let C=await Tr(c,o,h.prefix);n.onStepDone?.(Ve.session,C?"killed":"no active session")}catch(C){n.onStepError?.(Ve.session,C.message)}}n.onStepStart?.(Ve.worktree),await se.remove(o,{force:a},i),n.onStepDone?.(Ve.worktree),n.onStepStart?.(Ve.activityLog);try{qt(i,{timestamp:new Date().toISOString(),event:"delete",branch:c??"",path:o}),n.onStepDone?.(Ve.activityLog)}catch(C){n.onStepError?.(Ve.activityLog,C.message)}}var jl=ge(()=>{qe();Ke();oo();nn();Ln();xs();Wn();zr()});var vo=ge(()=>{Wl();jl();zr()});function sn(e){let t=rt(),n=()=>Math.max(0,Math.floor((t().width-e.width)/2)),o=()=>Math.max(0,Math.floor((t().height-e.height)/2)),i=()=>(()=>{var s=l("box");return r(s,"border",!0),r(s,"borderStyle","rounded"),r(s,"flexDirection","column"),r(s,"paddingX",1),r(s,"paddingY",1),r(s,"titleAlignment","left"),r(s,"position","absolute"),V(s,()=>e.children,null),V(s,X(re,{get when(){return e.footer},get children(){return e.footer}}),null),H((c)=>{var a=n(),u=o(),h=e.width,m=e.height,p=e.borderColor??g.border.active,w=e.backgroundColor??g.bg.surface,A=e.gap??0,W=e.title;return a!==c.e&&(c.e=r(s,"x",a,c.e)),u!==c.t&&(c.t=r(s,"y",u,c.t)),h!==c.a&&(c.a=r(s,"width",h,c.a)),m!==c.o&&(c.o=r(s,"height",m,c.o)),p!==c.i&&(c.i=r(s,"borderColor",p,c.i)),w!==c.n&&(c.n=r(s,"backgroundColor",w,c.n)),A!==c.s&&(c.s=r(s,"gap",A,c.s)),W!==c.h&&(c.h=r(s,"title",W,c.h)),c},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),s})();return X(re,{get when(){return e.backdrop},get fallback(){return i()},get children(){var s=l("box");return r(s,"x",0),r(s,"y",0),r(s,"position","absolute"),V(s,i),H((c)=>{var a=t().width,u=t().height,h=e.backdropColor??g.bg.overlay;return a!==c.e&&(c.e=r(s,"width",a,c.e)),u!==c.t&&(c.t=r(s,"height",u,c.t)),h!==c.a&&(c.a=r(s,"backgroundColor",h,c.a)),c},{e:void 0,t:void 0,a:void 0}),s}})}var ko=ge(()=>{te();te();te();te();te();Ye();te();yt()});import{decodePasteBytes as xp}from"@opentui/core";import{basename as Ll,resolve as yp}from"path";function Il(){let e=st(),t=gt(),n=rt(),[o,i]=ue("input"),[s,c]=ue(""),[a,u]=ue(""),[h,m]=ue("branch"),[p,w]=ue(""),[A,W]=ue([]),[y,C]=ue(""),[k,F]=ue([]),[x,S]=ue(-1),[O,G]=ue(!1),I=()=>{let E=s().toLowerCase();if(!E)return k().slice(0,10);return k().filter((P)=>P.name.toLowerCase().includes(E)).slice(0,10)};Pt(en(()=>Z(),async()=>{try{let E=Z(),P=await se.listBranches(E);F(P)}catch{F([])}})),fn(()=>{queueMicrotask(()=>{c(""),u("")})}),Pt(en(s,()=>{S(-1),G(s().length>0&&I().length>0)})),Pt(en(o,(E)=>{e.setInputFocused(E==="input")})),ct(()=>{e.setInputFocused(!1)});let z=(E,P)=>{W((U)=>U.map((K,L)=>L===E?{...K,...P}:K))},Z=()=>{let E=t.worktrees()??[],P=e.selectedWorktreePath();return(P?E.find((K)=>K.path===P)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},T=()=>{let E=t.worktrees()??[],P=e.selectedWorktreePath();return(P?E.find((K)=>K.path===P)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},J=()=>{let E=s();if(!E)return"";let P=Z(),U=Ae(),K=Ht(U,P),L=E.replace(/\//g,"-"),ee=Ll(P);return yp(yr(K.worktreeDir,{repo:ee,branch:L}))};it(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let P=E.name;if(P==="escape"){if(o()==="preview"){i("input");return}e.setActiveTab("list"),c(""),u(""),m("branch"),i("input");return}if(o()==="input"){if(P==="tab"){if(O()&&h()==="branch")G(!1),S(-1);m((U)=>U==="branch"?"focus":"branch");return}if(h()==="branch"&&O()&&I().length>0){if(P==="down"||E.sequence==="\x1B[B"){S((U)=>Math.min(U+1,I().length-1));return}if(P==="up"||E.sequence==="\x1B[A"){S((U)=>Math.max(U-1,-1));return}}if(P==="return"||P==="enter"){if(h()==="branch"&&x()>=0){let U=I()[x()];if(U){c(U.name),G(!1),S(-1);return}}if(!s())return;G(!1),w(J()),i("preview");return}}if(o()==="preview"){if(P==="return"||P==="enter"){i("creating");let U=s(),K=p(),L=Z(),ee=Ll(L);try{let de=Ae(),ie=a(),we=ie?ie.split(/[,\s]+/).map((pe)=>pe.trim()).filter(Boolean):[],Oe={};await nr(de,{branch:U,worktreePath:K,mainRepoPath:L,repoName:ee,focusPaths:we,session:void 0},{onStepPlan:(pe)=>{let Ee=pe.map((Fe,We)=>{return Oe[Fe.id]=We,{label:Fe.label,status:"pending"}});W(Ee)},onStepStart:(pe)=>{let Ee=Oe[pe];if(Ee!==void 0)z(Ee,{status:"running"})},onStepDone:(pe,Ee)=>{let Fe=Oe[pe];if(Fe!==void 0)z(Fe,{status:"done",message:Ee})},onStepError:(pe,Ee)=>{let Fe=Oe[pe];if(Fe!==void 0)z(Fe,{status:"error",message:Ee})},onHookOutput:(pe)=>{let Ee=A().findLastIndex((Fe)=>Fe.status==="running");if(Ee>=0)z(Ee,{message:pe})}}),C("Worktree created successfully!"),i("done"),to.success(`Worktree created: ${U}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),u(""),m("branch"),i("input")},1500)}catch(de){to.error(de.message);let we=A().findIndex((Oe)=>Oe.status==="running");if(we>=0)z(we,{status:"error",message:de.message});C(`${de.message}`),i("error")}return}}if(o()==="error"){if(P==="escape"||P==="return"||P==="enter")i("input"),C("")}}),go((E)=>{if(!e.inputFocused())return;let P=xp(E.bytes).replace(/\r?\n/g,"");if(!P)return;if(h()==="branch"){c((U)=>U+P);return}if(h()==="focus")u((U)=>U+P)});let q=()=>n().width,Y=()=>n().height,ne=()=>Math.max(50,Math.min(80,q()-4)),he=4,_=()=>{if(o()==="input"){let E=O()&&h()==="branch"?I().length*2:0,P=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+E+P,Y()-4))}if(o()==="preview")return Math.max(13+he,Math.min((a().length>0?15:13)+he,Y()-4));if(o()==="creating")return Math.max(9+he,Math.min(A().length*2+7+he,Y()-4));if(o()==="done")return Math.max(11+he,Math.min((a().length>0?15:13)+he,Y()-4));return Math.max(11+he,Math.min(11+he,Y()-4))},me=()=>Math.max(ne()-4,10),ke=()=>Math.max(me(),20);return X(sn,{get width(){return ne()},get height(){return _()},get borderColor(){return Le(()=>o()==="done")()?g.text.success:Le(()=>o()==="error")()?g.text.error:g.border.active},get backgroundColor(){return g.bg.surface},gap:1,title:" Create Worktree ",get footer(){return[(()=>{var E=l("box"),P=l("text");return f(E,P),r(E,"height",1),V(P,()=>"\u2500".repeat(Math.max(me(),1))),H((U)=>{var K=me(),L=g.border.subtle;return K!==U.e&&(U.e=r(E,"width",K,U.e)),L!==U.t&&(U.t=r(P,"fg",L,U.t)),U},{e:void 0,t:void 0}),E})(),X(re,{get when(){return o()==="input"},get children(){var E=l("box"),P=l("text"),U=l("text"),K=l("text"),L=l("text");return f(E,P),f(E,U),f(E,K),f(E,L),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Tab:switch")),f(U,B("\u2191\u2193:pick")),f(K,B("Enter:confirm")),f(L,B("Esc:cancel")),H((ee)=>{var de=g.text.secondary,ie=g.text.secondary,we=g.text.secondary,Oe=g.text.secondary;return de!==ee.e&&(ee.e=r(P,"fg",de,ee.e)),ie!==ee.t&&(ee.t=r(U,"fg",ie,ee.t)),we!==ee.a&&(ee.a=r(K,"fg",we,ee.a)),Oe!==ee.o&&(ee.o=r(L,"fg",Oe,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),E}}),X(re,{get when(){return o()==="preview"},get children(){var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Enter:create")),f(U,B("Esc:back")),H((K)=>{var L=g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}}),X(re,{get when(){return o()==="creating"},get children(){var E=l("text");return f(E,B("Creating worktree...")),H((P)=>r(E,"fg",g.text.secondary,P)),E}}),X(re,{get when(){return o()==="done"},get children(){var E=l("text");return f(E,B("\u2713 Done \u2014 returning to list")),H((P)=>r(E,"fg",g.text.secondary,P)),E}}),X(re,{get when(){return o()==="error"},get children(){var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(P,B("Enter:retry")),f(U,B("Esc:back")),H((K)=>{var L=g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E}})]},get children(){return[X(re,{get when(){return o()==="input"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text"),K=l("text");return f(E,P),f(E,U),f(E,K),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("New Worktree")),r(U,"x",3),r(U,"y",0),r(K,"x",17),r(K,"y",0),V(K,T),H((L)=>{var ee=me(),de=g.bg.elevated,ie=g.text.accent,we=g.text.primary,Oe=g.text.secondary;return ee!==L.e&&(L.e=r(E,"width",ee,L.e)),de!==L.t&&(L.t=r(E,"backgroundColor",de,L.t)),ie!==L.a&&(L.a=r(P,"fg",ie,L.a)),we!==L.o&&(L.o=r(U,"fg",we,L.o)),Oe!==L.i&&(L.i=r(K,"fg",Oe,L.i)),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("text");return f(E,B("Branch name")),H((P)=>r(E,"fg",h()==="branch"?g.text.accent:g.text.secondary,P)),E})(),(()=>{var E=l("input");return r(E,"onInput",(P)=>c(P)),r(E,"placeholder","Branch name or search..."),H((P)=>{var U=s(),K=h()==="branch",L=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==P.e&&(P.e=r(E,"value",U,P.e)),K!==P.t&&(P.t=r(E,"focused",K,P.t)),L!==P.a&&(P.a=r(E,"width",L,P.a)),ee!==P.o&&(P.o=r(E,"backgroundColor",ee,P.o)),de!==P.i&&(P.i=r(E,"cursorColor",de,P.i)),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),X(re,{get when(){return Le(()=>!!(O()&&h()==="branch"))()&&I().length>0},get children(){return X(nt,{get each(){return I()},children:(E,P)=>(()=>{var U=l("box"),K=l("text"),L=l("text");return f(U,K),f(U,L),r(U,"height",1),r(K,"x",1),r(K,"y",0),V(K,()=>P()===x()?"\u25B8 ":" ",null),V(K,()=>E.name,null),r(L,"y",0),V(L,()=>E.isRemote?"(remote) ":"",null),V(L,()=>E.lastCommitDate,null),H((ee)=>{var de=me(),ie=P()===x()?g.select.focusedBg:g.bg.surface,we=P()===x()?g.tab.active:g.text.primary,Oe=Math.max(1+E.name.length+4,27),pe=g.text.secondary;return de!==ee.e&&(ee.e=r(U,"width",de,ee.e)),ie!==ee.t&&(ee.t=r(U,"backgroundColor",ie,ee.t)),we!==ee.a&&(ee.a=r(K,"fg",we,ee.a)),Oe!==ee.o&&(ee.o=r(L,"x",Oe,ee.o)),pe!==ee.i&&(ee.i=r(L,"fg",pe,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),U})()})}}),(()=>{var E=l("text");return f(E,B("Tab to switch fields \xB7 \u2191\u2193 to select branch")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"width","100%"),r(E,"height",1),r(E,"flexDirection","row"),f(P,B("Focus ")),f(U,B("(optional)")),H((K)=>{var L=h()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return L!==K.e&&(K.e=r(P,"fg",L,K.e)),ee!==K.t&&(K.t=r(U,"fg",ee,K.t)),K},{e:void 0,t:void 0}),E})(),(()=>{var E=l("input");return r(E,"onInput",(P)=>u(P)),r(E,"placeholder","apps/web,apps/api (optional)"),H((P)=>{var U=a(),K=h()==="focus",L=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==P.e&&(P.e=r(E,"value",U,P.e)),K!==P.t&&(P.t=r(E,"focused",K,P.t)),L!==P.a&&(P.a=r(E,"width",L,P.a)),ee!==P.o&&(P.o=r(E,"backgroundColor",ee,P.o)),de!==P.i&&(P.i=r(E,"cursorColor",de,P.i)),P},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return f(E,B("comma-separated paths, e.g. apps/web,apps/api")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),X(re,{get when(){return s().length>0},get children(){return[(()=>{var E=l("text");return f(E,B("Target path")),H((P)=>r(E,"fg",g.text.secondary,P)),E})(),(()=>{var E=l("text");return V(E,J),H((P)=>r(E,"fg",g.text.primary,P)),E})()]}}),(()=>{var E=l("text");return f(E,B("Type a branch name, e.g. feature/my-feature")),H((P)=>r(E,"fg",g.text.primary,P)),E})()]}}),X(re,{get when(){return o()==="preview"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Confirm Worktree")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Branch")),V(K,s),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Path")),V(K,p),H((L)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Focus")),V(K,a),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,B("\u2713 Ready to create. Press Enter to confirm.")),H((P)=>r(E,"fg",g.text.success,P)),E})()]}}),X(re,{get when(){return o()==="creating"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Creating Worktree")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),X(nt,{get each(){return A()},children:(E)=>(()=>{var P=l("box"),U=l("text"),K=B(" ");return f(P,U),r(P,"height",1),f(U,K),V(U,(()=>{var L=Le(()=>E.status==="done");return()=>L()?"\u2713":Le(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),K),V(U,()=>E.label,null),V(P,X(re,{get when(){return E.message},get children(){var L=l("text");return r(L,"y",0),V(L,()=>E.message),H((ee)=>{var de=E.label.length+4,ie=g.text.secondary;return de!==ee.e&&(ee.e=r(L,"x",de,ee.e)),ie!==ee.t&&(ee.t=r(L,"fg",ie,ee.t)),ee},{e:void 0,t:void 0}),L}}),null),H((L)=>r(U,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,L)),P})()})]}}),X(re,{get when(){return o()==="done"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Worktree Created")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.success,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Branch")),V(K,s),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Path")),V(K,p),H((L)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),P=l("box"),U=l("text"),K=l("text");return f(E,P),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(P,U),r(P,"width",14),r(P,"height",1),f(U,B("Focus")),V(K,a),H((L)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==L.e&&(L.e=r(U,"fg",ee,L.e)),de!==L.t&&(L.t=r(K,"fg",de,L.t)),L},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),P=B("\u2713 ");return f(E,P),V(E,y,null),H((U)=>r(E,"fg",g.text.success,U)),E})()]}}),X(re,{get when(){return o()==="error"},get children(){return[(()=>{var E=l("box"),P=l("text"),U=l("text");return f(E,P),f(E,U),r(E,"height",1),f(P,B(">")),r(P,"x",1),r(P,"y",0),f(U,B("Error")),r(U,"x",3),r(U,"y",0),H((K)=>{var L=me(),ee=g.bg.elevated,de=g.text.error,ie=g.text.primary;return L!==K.e&&(K.e=r(E,"width",L,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(P,"fg",de,K.a)),ie!==K.o&&(K.o=r(U,"fg",ie,K.o)),K},{e:void 0,t:void 0,a:void 0,o:void 0}),E})(),(()=>{var E=l("text");return V(E,()=>"\u2500".repeat(me())),H((P)=>r(E,"fg",g.border.subtle,P)),E})(),(()=>{var E=l("text");return f(E,B("\u2717 Failed")),H((P)=>r(E,"fg",g.text.error,P)),E})(),(()=>{var E=l("box"),P=l("text");return f(E,P),r(E,"height",1),r(P,"x",1),r(P,"y",0),V(P,()=>y().slice(0,Math.max(ke()-3,10))),H((U)=>{var K=ke(),L=g.bg.elevated,ee=g.text.primary;return K!==U.e&&(U.e=r(E,"width",K,U.e)),L!==U.t&&(U.t=r(E,"backgroundColor",L,U.t)),ee!==U.a&&(U.a=r(P,"fg",ee,U.a)),U},{e:void 0,t:void 0,a:void 0}),E})(),(()=>{var E=l("text");return f(E,B("Press Enter or Escape to try again")),H((P)=>r(E,"fg",g.text.secondary,P)),E})()]}})]}})}var Bl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();Ke();qe();vo();te();cs();yt();ko()});import{basename as Sp}from"path";function Vl(){let e=st(),t=gt(),n=rt(),[o,i]=ue(!1),[s,c]=ue(""),[a,u]=ue(!1),h=()=>{let y=t.worktrees()??[],C=e.selectedWorktreePath();if(C){let k=y.find((F)=>F.path===C);if(k)return k}return y[e.selectedWorktreeIndex()]},m=()=>{e.setShowRemove(!1),i(!1),c(""),u(!1)},p=async(y)=>{let C=h();if(!C){m();return}if(!y){if(await se.isDirty(C.path)){c("Worktree has changes. Press Enter to force remove."),u(!0);return}}i(!0),c("Removing...");try{let k=Ae(),F=Sp(C.repoPath);await ro(k,{worktreePath:C.path,mainRepoPath:C.repoPath,repoName:F,branch:C.branch,force:y},{onStepStart:(G)=>{if(G===Ve.postRemove)c("Running postRemove hooks...");else if(G===Ve.monorepoHooks)c("Running monorepo hooks...");else if(G===Ve.session)c("Killing session...");else if(G===Ve.worktree)c("Removing worktree...")}}),c("Removed successfully!"),to.success("Worktree removed");let x=t.worktrees()??[],S=e.selectedWorktreeIndex(),O=x[S-1]??x[S+1]??null;if(S>0)e.setSelectedWorktreeIndex(S-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(O?.path??null),t.refetch(),setTimeout(m,1000)}catch(k){let F=k.message;c(`Failed: ${F}`),i(!1),to.error(`Failed: ${F}`)}};it(async(y)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let C=y.name;if(C==="escape"){m();return}if(a()&&(C==="return"||C==="enter")){u(!1),await p(!0);return}if((C==="return"||C==="enter")&&!o())await p(!1)});let w=()=>h(),A=()=>Math.max(50,Math.min(80,n().width-4)),W=()=>10;return X(sn,{get width(){return A()},get height(){return W()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var y=l("box");return r(y,"flexDirection","column"),V(y,X(re,{get when(){return Le(()=>!o())()&&!a()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"height",1),r(C,"flexDirection","row"),r(C,"gap",2),f(k,B("[Enter] Confirm")),f(F,B("[Esc] Cancel")),H((x)=>{var S=g.text.secondary,O=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}}),null),V(y,X(re,{get when(){return a()},get children(){var C=l("box"),k=l("text"),F=l("text");return f(C,k),f(C,F),r(C,"height",1),r(C,"flexDirection","row"),r(C,"gap",2),f(k,B("[Enter] Force remove")),f(F,B("[Esc] Cancel")),H((x)=>{var S=g.text.secondary,O=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),C}}),null),y})()},get children(){return[X(re,{get when(){return!!w()},get children(){return[(()=>{var y=l("box"),C=l("box"),k=l("text"),F=l("text");return f(y,C),f(y,F),r(y,"height",1),r(y,"flexDirection","row"),f(C,k),r(C,"width",10),r(C,"height",1),f(k,B("Branch")),V(F,()=>w()?.branch??"(detached)"),H((x)=>{var S=g.text.secondary,O=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),y})(),(()=>{var y=l("box"),C=l("box"),k=l("text"),F=l("text");return f(y,C),f(y,F),r(y,"height",1),r(y,"flexDirection","row"),f(C,k),r(C,"width",10),r(C,"height",1),f(k,B("Path")),V(F,()=>w()?.path),H((x)=>{var S=g.text.secondary,O=g.text.primary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),y})(),X(re,{get when(){return a()},get children(){var y=l("text");return V(y,s),H((C)=>r(y,"fg",g.text.warning,C)),y}}),X(re,{get when(){return o()},get children(){var y=l("text");return V(y,s),H((C)=>r(y,"fg",s().startsWith("Failed")?g.text.error:g.text.success,C)),y}})]}}),X(re,{get when(){return!w()},get children(){var y=l("text");return f(y,B("No worktree selected.")),H((C)=>r(y,"fg",g.text.secondary,C)),y}})]}})}var Hl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();hn();Ke();qe();vo();te();cs();yt();ko()});import{basename as Cp}from"path";function Kl(e){let t=st(),n=gt(),o=on(),[i,s]=ue("confirming"),[c,a]=ue(""),[u,h]=ue(0),m=()=>{let W=n.worktrees()??[],y=t.selectedWorktrees(),C=[];for(let k of y){let F=W.find((x)=>x.path===k);if(F&&!F.isMain)C.push({branch:F.branch??"(detached)",path:F.path,repoPath:F.repoPath})}return C},p=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},w=async()=>{let W=m();if(W.length===0){p();return}s("executing"),h(0);let y=Ae(),C=[],k=[],F=0;for(let x=0;x<W.length;x++){let S=W[x];a(`Removing ${S.branch} (${x+1}/${W.length})...`),h(x);try{if(await se.isDirty(S.path)){k.push(S.branch);continue}let G=Cp(S.repoPath);await ro(y,{worktreePath:S.path,mainRepoPath:S.repoPath,repoName:G,branch:S.branch==="(detached)"?null:S.branch,force:!1}),F++}catch(O){C.push(`${S.branch}: ${O.message}`)}}if(dt(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),C.length>0){s("error");let x=[`Failed: ${C.join("; ")}`];if(k.length>0)x.push(`Skipped ${k.length} dirty worktree(s)`);a(x.join(". ")),o.addToast({message:`Failed to remove ${C.length} worktree(s)`,type:"error"}),setTimeout(p,3000)}else if(k.length>0)s("done"),a(`Removed ${F}, skipped ${k.length} dirty: ${k.join(", ")}`),o.addToast({message:`Removed ${F}, skipped ${k.length} dirty`,type:"warning"}),setTimeout(p,2000);else s("done"),a(`Removed ${W.length} worktree(s) successfully!`),o.addToast({message:`Removed ${W.length} worktrees`,type:"success"}),setTimeout(p,1500)};it(async(W)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let y=W.name;if(i()==="executing")return;if(y==="escape"){p();return}if((y==="return"||y==="enter")&&i()==="confirming")await w()});let A=()=>m().length;return(()=>{var W=l("box"),y=l("box"),C=l("box"),k=l("text"),F=l("box"),x=l("text"),S=l("box");return f(W,y),r(W,"x",0),r(W,"y",0),f(y,C),f(y,F),f(y,S),r(y,"x",2),r(y,"y",1),r(y,"flexDirection","column"),f(C,k),r(C,"height",1),f(k,B("Bulk Delete Worktrees")),r(k,"x",0),r(k,"y",0),f(F,x),r(F,"height",1),r(x,"x",0),r(x,"y",0),V(x,()=>"\u2500".repeat(Math.max(e.w-5,10))),r(S,"height",1),V(y,X(re,{get when(){return i()==="confirming"},get children(){return[(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,()=>`Delete ${A()} worktree(s)?`),H((I)=>r(G,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box");return r(O,"height",1),O})(),X(nt,{get each(){return m().slice(0,Math.max(e.h-10,5))},children:(O)=>(()=>{var G=l("box"),I=l("text");return f(G,I),r(G,"height",1),r(I,"x",2),r(I,"y",0),V(I,()=>`\u2022 ${O.branch}`),H((z)=>r(I,"fg",g.text.accent,z)),G})()}),X(re,{get when(){return A()>Math.max(e.h-10,5)},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",2),r(G,"y",0),V(G,()=>`... and ${A()-Math.max(e.h-10,5)} more`),H((I)=>r(G,"fg",g.text.secondary,I)),O}}),(()=>{var O=l("box");return r(O,"height",1),O})(),(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),f(G,B("Enter:delete all Esc:cancel")),r(G,"x",0),r(G,"y",0),H((I)=>r(G,"fg",g.text.secondary,I)),O})()]}}),null),V(y,X(re,{get when(){return i()==="executing"},get children(){return[(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.warning,I)),O})(),(()=>{var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,()=>`Progress: ${u()+1}/${A()}`),H((I)=>r(G,"fg",g.text.secondary,I)),O})()]}}),null),V(y,X(re,{get when(){return i()==="done"},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.success,I)),O}}),null),V(y,X(re,{get when(){return i()==="error"},get children(){var O=l("box"),G=l("text");return f(O,G),r(O,"height",1),r(G,"x",0),r(G,"y",0),V(G,c),H((I)=>r(G,"fg",g.text.error,I)),O}}),null),H((O)=>{var{w:G,h:I}=e,z=g.bg.base,Z=e.w-3,T=e.h-2,J=g.bg.base,q=g.text.error,Y=g.border.subtle;return G!==O.e&&(O.e=r(W,"width",G,O.e)),I!==O.t&&(O.t=r(W,"height",I,O.t)),z!==O.a&&(O.a=r(W,"backgroundColor",z,O.a)),Z!==O.o&&(O.o=r(y,"width",Z,O.o)),T!==O.i&&(O.i=r(y,"height",T,O.i)),J!==O.n&&(O.n=r(y,"backgroundColor",J,O.n)),q!==O.s&&(O.s=r(k,"fg",q,O.s)),Y!==O.h&&(O.h=r(x,"fg",Y,O.h)),O},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),W})()}var Gl=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();no();hn();Ke();qe();vo();te();yt()});import{decodePasteBytes as Rp}from"@opentui/core";import{spawnSync as Op}from"child_process";function wn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function jp(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function St(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function Cs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function Lp(e){let t=[];if(!e)return t;if(t.push({key:"top.version",kind:"field",label:"version",value:String(e.version),rawValue:e.version,path:["version"],editKind:null,depth:0}),t.push({key:"top.theme",kind:"field",label:"theme",value:e.theme??"(default: opencode)",rawValue:e.theme,path:["theme"],editKind:"theme",depth:0}),e.activeProfile!==void 0||e.profiles&&Object.keys(e.profiles).length>0)t.push({key:"top.activeProfile",kind:"field",label:"activeProfile",value:e.activeProfile??"(none)",rawValue:e.activeProfile,path:["activeProfile"],editKind:null,depth:0});t.push({key:"sp.top",kind:"spacer",label:"",depth:0}),t.push({key:"sec.defaults",kind:"section",label:"Defaults",depth:0});let n=e.defaults??{};if(t.push({key:"d.worktreeDir",kind:"field",label:"worktreeDir",value:n.worktreeDir??"(not set)",rawValue:n.worktreeDir,path:["defaults","worktreeDir"],editKind:"string",depth:1,suggestions:ys}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:St(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:Qr}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:St(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:Nr}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:St(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:Ss}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:St(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:$r}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:Cs(n.autoUpstream),rawValue:n.autoUpstream,path:["defaults","autoUpstream"],editKind:"boolean",depth:1}),n.sharedDeps)t.push({key:"d.sharedDeps.header",kind:"section",label:"sharedDeps",depth:1}),t.push({key:"d.sharedDeps.strategy",kind:"field",label:"strategy",value:n.sharedDeps.strategy??"(not set)",rawValue:n.sharedDeps.strategy,path:["defaults","sharedDeps","strategy"],editKind:"enum",depth:2,suggestions:Pp}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:St(n.sharedDeps.paths),rawValue:n.sharedDeps.paths,path:["defaults","sharedDeps","paths"],editKind:"strArray",depth:2,suggestions:Ap}),t.push({key:"d.sharedDeps.invalidateOn",kind:"field",label:"invalidateOn",value:St(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:Wp});let o=e.workspaces??[];if(o.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${o.length})`,depth:0}),o.forEach((s,c)=>{let a=s.path.split("/").pop()||s.path;t.push({key:`w${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`w${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["workspaces",c,"path"],editKind:null,depth:2}),t.push({key:`w${c}.depth`,kind:"field",label:"depth",value:s.depth===void 0?"(default: 1)":String(s.depth),rawValue:s.depth,path:["workspaces",c,"depth"],editKind:null,depth:2}),t.push({key:`w${c}.exclude`,kind:"field",label:"exclude",value:St(s.exclude),rawValue:s.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[xn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let u=s.defaults;if(u)t.push({key:`w${c}.defaults.header`,kind:"section",label:"defaults",depth:2}),t.push({key:`w${c}.defaults.worktreeDir`,kind:"field",label:"worktreeDir",value:u.worktreeDir??"(inherits)",rawValue:u.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:ys}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:St(u.copyFiles),rawValue:u.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:Qr}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:St(u.linkFiles),rawValue:u.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:Nr}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:St(u.postCreate),rawValue:u.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:Ss}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:St(u.postRemove),rawValue:u.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:$r}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:Cs(u.autoUpstream),rawValue:u.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<o.length-1)t.push({key:`sp.w${c}`,kind:"spacer",label:"",depth:0})});let i=e.repos??[];if(t.push({key:"sp.repos",kind:"spacer",label:"",depth:0}),t.push({key:"sec.repos",kind:"section",label:`Repos (${i.length})`,depth:0}),i.length===0)t.push({key:"repos.empty",kind:"field",label:"(none)",value:"add repos via 'e' to edit config file",rawValue:null,editKind:null,depth:1});if(i.forEach((s,c)=>{let a=s.path.split("/").pop()??s.path;if(t.push({key:`r${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`r${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["repos",c,"path"],editKind:null,depth:2}),t.push({key:`r${c}.worktreeDir`,kind:"field",label:"worktreeDir",value:s.worktreeDir??"(inherits)",rawValue:s.worktreeDir,path:["repos",c,"worktreeDir"],editKind:"string",depth:2,suggestions:ys}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:St(s.copyFiles),rawValue:s.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:Qr}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:St(s.linkFiles),rawValue:s.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:Nr}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:St(s.postCreate),rawValue:s.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:Ss}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:St(s.postRemove),rawValue:s.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:$r}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:Cs(s.autoUpstream),rawValue:s.autoUpstream,path:["repos",c,"autoUpstream"],editKind:"boolean",depth:2}),s.monorepo){t.push({key:`r${c}.mr.header`,kind:"section",label:"monorepo",depth:2}),t.push({key:`r${c}.mr.autoDetect`,kind:"field",label:"autoDetect",value:s.monorepo.autoDetect===void 0?"(not set)":String(s.monorepo.autoDetect),rawValue:s.monorepo.autoDetect,path:["repos",c,"monorepo","autoDetect"],editKind:"boolean",depth:3}),t.push({key:`r${c}.mr.extraPatterns`,kind:"field",label:"extraPatterns",value:wn(s.monorepo.extraPatterns),rawValue:s.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:Ep});let u=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${u.length})`,depth:3}),u.forEach((h,m)=>{t.push({key:`r${c}.h${m}.header`,kind:"section",label:`[${m}] ${h.glob}`,depth:4}),t.push({key:`r${c}.h${m}.glob`,kind:"field",label:"glob",value:h.glob,rawValue:h.glob,path:["repos",c,"monorepo","hooks",m,"glob"],editKind:"string",depth:5,suggestions:Fp}),t.push({key:`r${c}.h${m}.copyFiles`,kind:"field",label:"copyFiles",value:wn(h.copyFiles),rawValue:h.copyFiles,path:["repos",c,"monorepo","hooks",m,"copyFiles"],editKind:"strArray",depth:5,suggestions:Qr}),t.push({key:`r${c}.h${m}.linkFiles`,kind:"field",label:"linkFiles",value:wn(h.linkFiles),rawValue:h.linkFiles,path:["repos",c,"monorepo","hooks",m,"linkFiles"],editKind:"strArray",depth:5,suggestions:Nr}),t.push({key:`r${c}.h${m}.postCreate`,kind:"field",label:"postCreate",value:wn(h.postCreate),rawValue:h.postCreate,path:["repos",c,"monorepo","hooks",m,"postCreate"],editKind:"strArray",depth:5,suggestions:Dp}),t.push({key:`r${c}.h${m}.postRemove`,kind:"field",label:"postRemove",value:wn(h.postRemove),rawValue:h.postRemove,path:["repos",c,"monorepo","hooks",m,"postRemove"],editKind:"strArray",depth:5,suggestions:$r})})}if(c<i.length-1)t.push({key:`sp.r${c}`,kind:"spacer",label:"",depth:0})}),e.templates&&Object.keys(e.templates).length>0){t.push({key:"sp.templates",kind:"spacer",label:"",depth:0}),t.push({key:"sec.templates",kind:"section",label:`Templates (${Object.keys(e.templates).length})`,depth:0});for(let[s,c]of Object.entries(e.templates)){if(t.push({key:`t.${s}.header`,kind:"section",label:s,depth:1}),c.base!==void 0)t.push({key:`t.${s}.base`,kind:"field",label:"base",value:c.base,rawValue:c.base,path:["templates",s,"base"],editKind:"string",depth:2});if(c.worktreeDir!==void 0)t.push({key:`t.${s}.worktreeDir`,kind:"field",label:"worktreeDir",value:c.worktreeDir,rawValue:c.worktreeDir,path:["templates",s,"worktreeDir"],editKind:"string",depth:2});if(c.copyFiles!==void 0)t.push({key:`t.${s}.copyFiles`,kind:"field",label:"copyFiles",value:wn(c.copyFiles),rawValue:c.copyFiles,path:["templates",s,"copyFiles"],editKind:"strArray",depth:2});if(c.linkFiles!==void 0)t.push({key:`t.${s}.linkFiles`,kind:"field",label:"linkFiles",value:wn(c.linkFiles),rawValue:c.linkFiles,path:["templates",s,"linkFiles"],editKind:"strArray",depth:2});if(c.postCreate!==void 0)t.push({key:`t.${s}.postCreate`,kind:"field",label:"postCreate",value:wn(c.postCreate),rawValue:c.postCreate,path:["templates",s,"postCreate"],editKind:"strArray",depth:2});if(c.postRemove!==void 0)t.push({key:`t.${s}.postRemove`,kind:"field",label:"postRemove",value:wn(c.postRemove),rawValue:c.postRemove,path:["templates",s,"postRemove"],editKind:"strArray",depth:2});if(c.autoUpstream!==void 0)t.push({key:`t.${s}.autoUpstream`,kind:"field",label:"autoUpstream",value:String(c.autoUpstream),rawValue:c.autoUpstream,path:["templates",s,"autoUpstream"],editKind:"boolean",depth:2})}}if(e.lifecycle){if(t.push({key:"sp.lifecycle",kind:"spacer",label:"",depth:0}),t.push({key:"sec.lifecycle",kind:"section",label:"Lifecycle",depth:0}),e.lifecycle.autoCleanMerged!==void 0)t.push({key:"lc.autoCleanMerged",kind:"field",label:"autoCleanMerged",value:String(e.lifecycle.autoCleanMerged),rawValue:e.lifecycle.autoCleanMerged,path:["lifecycle","autoCleanMerged"],editKind:"boolean",depth:1});if(e.lifecycle.staleAfterDays!==void 0)t.push({key:"lc.staleAfterDays",kind:"field",label:"staleAfterDays",value:String(e.lifecycle.staleAfterDays),rawValue:e.lifecycle.staleAfterDays,path:["lifecycle","staleAfterDays"],editKind:null,depth:1});if(e.lifecycle.maxWorktrees!==void 0)t.push({key:"lc.maxWorktrees",kind:"field",label:"maxWorktrees",value:String(e.lifecycle.maxWorktrees),rawValue:e.lifecycle.maxWorktrees,path:["lifecycle","maxWorktrees"],editKind:null,depth:1})}if(e.sessions){t.push({key:"sp.sessions",kind:"spacer",label:"",depth:0}),t.push({key:"sec.sessions",kind:"section",label:"Sessions",depth:0});let s=e.sessions;if(s.enabled!==void 0)t.push({key:"s.enabled",kind:"field",label:"enabled",value:String(s.enabled),rawValue:s.enabled,path:["sessions","enabled"],editKind:"boolean",depth:1});if(s.autoCreate!==void 0)t.push({key:"s.autoCreate",kind:"field",label:"autoCreate",value:String(s.autoCreate),rawValue:s.autoCreate,path:["sessions","autoCreate"],editKind:"boolean",depth:1});if(s.autoKill!==void 0)t.push({key:"s.autoKill",kind:"field",label:"autoKill",value:String(s.autoKill),rawValue:s.autoKill,path:["sessions","autoKill"],editKind:"boolean",depth:1});if(s.prefix!==void 0)t.push({key:"s.prefix",kind:"field",label:"prefix",value:s.prefix,rawValue:s.prefix,path:["sessions","prefix"],editKind:"string",depth:1,suggestions:Mp});if(s.defaultLayout!==void 0)t.push({key:"s.defaultLayout",kind:"field",label:"defaultLayout",value:s.defaultLayout,rawValue:s.defaultLayout,path:["sessions","defaultLayout"],editKind:"string",depth:1});if(s.layouts&&Object.keys(s.layouts).length>0){t.push({key:"s.layouts.header",kind:"section",label:`layouts (${Object.keys(s.layouts).length})`,depth:1});for(let[c,a]of Object.entries(s.layouts))t.push({key:`s.layouts.${c}`,kind:"field",label:c,value:`${a.windows?.length??0} window(s)`,rawValue:a,path:["sessions","layouts",c],editKind:null,depth:2})}}if(e.profiles&&Object.keys(e.profiles).length>0){t.push({key:"sp.profiles",kind:"spacer",label:"",depth:0}),t.push({key:"sec.profiles",kind:"section",label:`Profiles (${Object.keys(e.profiles).length})`,depth:0});for(let s of Object.keys(e.profiles)){let c=e.activeProfile===s;t.push({key:`p.${s}`,kind:"field",label:s,value:c?"active":"",rawValue:s,path:["profiles",s],editKind:null,depth:1})}}return t}function Ul(){let e=st(),t=rt(),n=Ct(),o=()=>{try{return{cfg:Li(),error:""}}catch(b){return{cfg:null,error:b.message}}},i=o(),[s,c]=ue(i.cfg),[a,u]=ue(i.error),[h,m]=ue(""),[p,w]=ue("info"),[A,W]=ue(0),[y,C]=ue(0),[k,F]=ue(!1),[x,S]=ue(null),[O,G]=ue(null),[I,z]=ue(""),[Z,T]=ue(!1),[J,q]=ue(0),[Y,ne]=ue([]),[he,_]=ue(-1),[me,ke]=ue(0),E=Xe(()=>Lp(s())),P=Xe(()=>{let b=[],M=E();for(let D=0;D<M.length;D++){let v=M[D];if(v.kind==="field"&&v.editKind!==null)b.push(D)}return b}),U=()=>{let b=P();if(b.length===0)return-1;let M=Math.max(0,Math.min(A(),b.length-1));return b[M]??-1},K=()=>{let b=U();if(b<0)return null;return E()[b]??null},L=(b,M="info")=>{m(b),w(M)},ee=()=>{let b=o();c(b.cfg),u(b.error)},de=()=>{let b=K();if(!b||!b.editKind||!b.path){L("Field is read-only (press 'e' to edit the file directly)","info");return}let M=b.suggestions??[];if(S(b.editKind),G(b.path),ne(M),e.setInputFocused(!0),b.editKind==="string"){let D=typeof b.rawValue==="string"?b.rawValue:"";z(D),_(M.indexOf(D))}else if(b.editKind==="strArray"){let D=Array.isArray(b.rawValue)?b.rawValue:[],v=JSON.stringify(D);z(v),_(M.indexOf(v))}else if(b.editKind==="boolean")T(b.rawValue===!0),_(-1);else if(b.editKind==="theme"){let D=typeof b.rawValue==="string"?b.rawValue:"opencode",v=At.indexOf(D);q(v>=0?v:0),_(-1)}else if(b.editKind==="enum"){let D=b.suggestions??[],v=typeof b.rawValue==="string"?b.rawValue:"",$=D.indexOf(v);ke($>=0?$:0),_(-1)}F(!0)},ie=()=>{F(!1),G(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)},we=(b)=>{let M=Y();if(M.length===0)return;let D=(he()+b+M.length)%M.length;_(D);let v=M[D]??"",$=x();if($==="string"||$==="strArray")z(v)},Oe=()=>{let b=O(),M=x();if(!b||!M){ie();return}let D;if(M==="string"){let v=I();D=v.length===0?void 0:v}else if(M==="strArray"){let v=I().trim();if(v.length===0)D=[];else try{let $=JSON.parse(v);if(!Array.isArray($)||$.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");D=$}catch($){L(`Invalid JSON: ${$.message}`,"error");return}}else if(M==="boolean")D=Z();else if(M==="theme")D=At[J()];else if(M==="enum")D=Y()[me()];try{Kt();let v=Li();ra(v,b,D);let $=$n(v);if($.length>0){let oe=$[0];L(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(_n(n,`${JSON.stringify(v,null,2)}
|
|
22
|
+
`),M==="theme"&&typeof D==="string"&&At.includes(D))wo(D);ee(),L("Saved","success"),F(!1),G(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)}catch(v){L(`Save failed: ${v.message}`,"error")}};it((b)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let M=b.name;if(k()){if(M==="escape"){ie();return}let D=x();if(D==="string"||D==="strArray"){if(M==="tab"){we(b.shift?-1:1);return}if(M==="return"||M==="enter")Oe();return}if(D==="boolean"){if(M==="space"||M==="tab"||M==="left"||M==="right"||M==="h"||M==="l"){T((v)=>!v);return}if(M==="return"||M==="enter")Oe();return}if(D==="theme"){if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&b.shift){q((v)=>(v-1+At.length)%At.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){q((v)=>(v+1)%At.length);return}if(M==="return"||M==="enter")Oe();return}if(D==="enum"){let v=Y();if(v.length===0)return;if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&b.shift){ke(($)=>($-1+v.length)%v.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){ke(($)=>($+1)%v.length);return}if(M==="return"||M==="enter")Oe();return}return}if(e.inputFocused())return;if(M==="j"||M==="down"){W((D)=>Math.min(D+1,P().length-1));return}if(M==="k"||M==="up"){W((D)=>Math.max(D-1,0));return}if(M==="g"){W(0);return}if(M==="G"){W(Math.max(P().length-1,0));return}if(M==="return"||M==="enter"){de();return}if(M==="e"){let D=process.env.EDITOR??process.env.VISUAL??"vi";Kt(),Op(D,[n],{stdio:"inherit"}),ee(),L("Config reloaded","info");return}if(M==="r"){ee(),L("Reloaded","info");return}if(M==="i"){Kt(),ee(),L("Initialized","info");return}}),go((b)=>{if(!k())return;let M=x();if(M!=="string"&&M!=="strArray")return;let D=Rp(b.bytes).replace(/\r?\n/g,"");if(!D)return;z((v)=>v+D)});let pe=()=>Math.max(t().height-10,5);Pt(en([A,E],()=>{let b=U();if(b<0)return;let M=pe();if(b<y())C(b);else if(b>=y()+M)C(b-M+1)})),ct(()=>{e.setInputFocused(!1)});let Ee=Xe(()=>{let b=y();return E().slice(b,b+pe()).map((M,D)=>({row:M,globalIdx:b+D}))}),Fe=()=>P().length,We=()=>{let b=E().length;if(b<=pe())return"";let M=Math.min(y()+pe(),b);return`${y()+1}-${M}/${b}`},j=()=>t().width,d=()=>Math.max(j()-4-kp-4,20);return(()=>{var b=l("box"),M=l("box"),D=l("box"),v=l("text"),$=l("b"),oe=l("box"),be=l("text"),le=l("text"),Ie=l("box");return f(b,M),f(b,Ie),r(b,"x",0),r(b,"y",0),r(b,"width","100%"),r(b,"height","100%"),r(b,"flexDirection","column"),f(M,D),f(M,oe),r(M,"width","100%"),r(M,"height","100%"),r(M,"flexDirection","column"),r(M,"paddingX",2),r(M,"paddingY",1),f(D,v),r(D,"height",1),r(D,"flexDirection","row"),f(v,$),f($,B("Configuration")),V(D,X(re,{get when(){return!!We()},get children(){var N=l("text"),ae=B(" ");return f(N,ae),V(N,()=>` \xB7 ${We()}`,null),H((ce)=>r(N,"fg",g.text.secondary,ce)),N}}),null),V(D,X(re,{get when(){return Fe()>0},get children(){var N=l("text"),ae=B(" ");return f(N,ae),V(N,()=>` \xB7 ${A()+1}/${Fe()}`,null),H((ce)=>r(N,"fg",g.text.secondary,ce)),N}}),null),f(oe,be),f(oe,le),r(oe,"height",1),r(oe,"flexDirection","row"),r(oe,"gap",1),f(be,B("Path:")),V(le,n),V(M,X(re,{get when(){return!!a()},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"height",1),r(N,"flexDirection","row"),r(N,"gap",1),f(ae,B("Load error:")),V(ce,a),H((Q)=>{var Re=g.text.error,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),null),V(M,X(re,{get when(){return Le(()=>!s())()&&!a()},get children(){var N=l("box"),ae=l("text"),ce=l("box"),Q=l("text"),Re=l("text"),Ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","column"),r(N,"gap",1),f(ae,B("No config file found.")),f(ce,Q),f(ce,Re),f(ce,Ce),r(ce,"flexDirection","row"),r(ce,"gap",1),f(Q,B("Press")),f(Re,B("i")),f(Ce,B("to initialize with defaults.")),H((Te)=>{var Ge=g.text.warning,Qe=g.text.secondary,ht=g.text.accent,Pe=g.text.secondary;return Ge!==Te.e&&(Te.e=r(ae,"fg",Ge,Te.e)),Qe!==Te.t&&(Te.t=r(Q,"fg",Qe,Te.t)),ht!==Te.a&&(Te.a=r(Re,"fg",ht,Te.a)),Pe!==Te.o&&(Te.o=r(Ce,"fg",Pe,Te.o)),Te},{e:void 0,t:void 0,a:void 0,o:void 0}),N}}),null),V(M,X(re,{get when(){return!!s()},get children(){return[(()=>{var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),V(ae,()=>"\u2500".repeat(Math.max(j()-34,10))),H((ce)=>r(ae,"fg",g.border.subtle,ce)),N})(),(()=>{var N=l("box");return r(N,"flexDirection","column"),V(N,X(nt,{get each(){return Ee()},children:(ae)=>{let ce=ae.row,Q=()=>ae.globalIdx===U(),Re=()=>k()&&Q(),Ce=" ".repeat(ce.depth*vp);if(ce.kind==="spacer")return(()=>{var Ge=l("box"),Qe=l("text");return f(Ge,Qe),r(Ge,"height",1),f(Qe,B(" ")),H((ht)=>r(Qe,"fg",g.text.secondary,ht)),Ge})();if(ce.kind==="section")return(()=>{var Ge=l("box"),Qe=l("text");return f(Ge,Qe),r(Ge,"height",1),r(Ge,"flexDirection","row"),V(Qe,Ce,null),V(Qe,()=>ce.label,null),H((ht)=>r(Qe,"fg",g.text.accent,ht)),Ge})();let Te=()=>{let Ge=Q()?"\u25B8 ":" ";return`${Ce}${Ge}${ce.label}`};return(()=>{var Ge=l("box"),Qe=l("box"),ht=l("text");return f(Ge,Qe),r(Ge,"height",1),r(Ge,"flexDirection","row"),f(Qe,ht),r(Qe,"width",30),r(Qe,"height",1),V(ht,Te),V(Ge,X(re,{get when(){return Re()},get fallback(){return(()=>{var Pe=l("text");return V(Pe,()=>ce.value??""),H((Be)=>r(Pe,"fg",jp(ce.value)?g.text.secondary:g.text.primary,Be)),Pe})()},get children(){return[X(re,{get when(){return x()==="string"||x()==="strArray"},get children(){var Pe=l("input");return r(Pe,"onInput",(Be)=>z(Be)),r(Pe,"focused",!0),H((Be)=>{var yn=I(),Wo=d(),jo=g.bg.elevated,Lo=g.text.accent,Io=x()==="strArray"?'["a", "b"]':"";return yn!==Be.e&&(Be.e=r(Pe,"value",yn,Be.e)),Wo!==Be.t&&(Be.t=r(Pe,"width",Wo,Be.t)),jo!==Be.a&&(Be.a=r(Pe,"backgroundColor",jo,Be.a)),Lo!==Be.o&&(Be.o=r(Pe,"cursorColor",Lo,Be.o)),Io!==Be.i&&(Be.i=r(Pe,"placeholder",Io,Be.i)),Be},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Pe}}),X(re,{get when(){return x()==="boolean"},get children(){var Pe=l("text");return V(Pe,()=>Z()?"[x] true":"[ ] false"),H((Be)=>r(Pe,"fg",Z()?g.text.success:g.text.secondary,Be)),Pe}}),X(re,{get when(){return x()==="theme"},get children(){var Pe=l("text");return V(Pe,()=>`\u25C2 ${Br[At[J()]??"opencode"]} (${At[J()]??"opencode"}) \u25B8`),H((Be)=>r(Pe,"fg",g.text.accent,Be)),Pe}}),X(re,{get when(){return x()==="enum"},get children(){var Pe=l("text");return V(Pe,()=>`\u25C2 ${Y()[me()]??""} \u25B8`),H((Be)=>r(Pe,"fg",g.text.accent,Be)),Pe}})]}}),null),H((Pe)=>{var Be=Q()?g.select.focusedBg:void 0,yn=Q()?g.text.accent:g.text.secondary;return Be!==Pe.e&&(Pe.e=r(Ge,"backgroundColor",Be,Pe.e)),yn!==Pe.t&&(Pe.t=r(ht,"fg",yn,Pe.t)),Pe},{e:void 0,t:void 0}),Ge})()}})),H((ae)=>r(N,"height",pe(),ae)),N})()]}}),null),V(M,X(re,{get when(){return!!h()},get children(){var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),V(ae,h),H((ce)=>r(ae,"fg",p()==="error"?g.text.error:p()==="success"?g.text.success:g.text.accent,ce)),N}}),null),r(Ie,"width","100%"),r(Ie,"height",1),r(Ie,"flexDirection","row"),r(Ie,"gap",2),V(Ie,X(re,{get when(){return!k()},get children(){return[(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("j/k")),f(ce,B(":nav")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("g/G")),f(ce,B(":top/bot")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":edit")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("e")),f(ce,B(":$EDITOR")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("r")),f(ce,B(":reload")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("i")),f(ce,B(":init")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})()]}}),null),V(Ie,X(re,{get when(){return k()},get children(){return[(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Enter")),f(ce,B(":save")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),(()=>{var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Esc")),f(ce,B(":cancel")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N})(),X(re,{get when(){return x()==="boolean"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Space/Tab")),f(ce,B(":toggle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="theme"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="enum"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab/\u2190\u2192")),f(ce,B(":cycle")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="strArray"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("JSON")),f(ce,B(":array")),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return Le(()=>x()==="string"||x()==="strArray")()&&Y().length>0},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B("Tab")),V(ce,()=>`:preset (${he()+1}/${Y().length})`),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return x()==="enum"},get children(){var N=l("box"),ae=l("text"),ce=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","row"),f(ae,B(" ")),V(ce,()=>`(${me()+1}/${Y().length})`),H((Q)=>{var Re=g.text.secondary,Ce=g.text.primary;return Re!==Q.e&&(Q.e=r(ae,"fg",Re,Q.e)),Ce!==Q.t&&(Q.t=r(ce,"fg",Ce,Q.t)),Q},{e:void 0,t:void 0}),N}})]}}),null),H((N)=>{var ae=g.bg.base,ce=g.bg.surface,Q=g.text.accent,Re=g.text.secondary,Ce=g.text.primary,Te=g.bg.base;return ae!==N.e&&(N.e=r(b,"backgroundColor",ae,N.e)),ce!==N.t&&(N.t=r(M,"backgroundColor",ce,N.t)),Q!==N.a&&(N.a=r(v,"fg",Q,N.a)),Re!==N.o&&(N.o=r(be,"fg",Re,N.o)),Ce!==N.i&&(N.i=r(le,"fg",Ce,N.i)),Te!==N.n&&(N.n=r(Ie,"backgroundColor",Te,N.n)),N},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),b})()}var vp=2,kp=30,ys,xn="[]",Qr,Nr,Ss,$r,Ep,Fp,Dp,Mp,Pp,Ap,Wp;var Tl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();qe();te();yt();ys=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],Qr=[xn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],Nr=[xn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],Ss=[xn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],$r=[xn,'["echo removed"]'],Ep=[xn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],Fp=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],Dp=[xn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],Mp=["copse","wt"],Pp=["hardlink","symlink","copy"],Ap=[xn,'["node_modules"]','["node_modules", ".next"]'],Wp=[xn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Fo,readdirSync as Ip,rmSync as Bp}from"fs";import{basename as Rs,dirname as Os,join as Vp,resolve as Eo}from"path";function Hp(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Jl(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ql(e){if(!Fo(Ct()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=Ae(),o=Eo(t.path),i=Rs(o);return[n.repos?.find((a)=>Eo(a.path)===o)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>Hp(a)).filter((a)=>!Os(a).includes("{")&&Rs(a).includes("{")).map((a)=>{let u=Rs(a),h=`^${Jl(u).replace(/\\\{repo\\\}/g,Jl(i)).replace(/\\\{branch\\\}/g,".+")}$`,m=new RegExp(h);return{path:Eo(Os(a)),matches:(p)=>m.test(p)}})}function Xl(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Eo(Os(n.path)));return[...t]}function zl(e,t,n,o){if(!Fo(e))return;let i=Ip(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(o&&!o(s.name))continue;let c=Eo(Vp(e,s.name));if(!t.has(c))n.add(c)}}function Yl(e){let t=new Set(e.map((i)=>Eo(i.path))),n=new Set,o=new Set;for(let i of ql(e))o.add(i.path),zl(i.path,t,n,i.matches);for(let i of Xl(e)){if(o.has(i))continue;zl(i,t,n)}return[...n]}function Kp(e){return ql(e).some((t)=>Fo(t.path))||Xl(e).some((t)=>Fo(t))}async function Gp(){let e=Bun.spawn(["git","--version"],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[t,n]=await Promise.all([new Response(e.stdout).text(),e.exited]);if(n!==0)return null;return t.trim().match(/git version (\d+\.\d+(?:\.\d+)?)/)?.[1]??null}async function Up(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await Gp()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof $o)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function Tp(){try{let n=(Ae().repos??[]).map((o)=>o.path).filter((o)=>!Fo(o));if(n.length>0)return{name:"Configuration",status:"warn",message:"missing repository paths",detail:n};return{name:"Configuration",status:"pass",message:"valid"}}catch(t){return{name:"Configuration",status:"fail",message:`Check failed: ${t.message}`}}}function Jp(e){let n=e.map((o)=>o.path).filter((o)=>!Fo(o));if(n.length>0)return{name:"Stale worktrees",status:"warn",message:"missing worktree paths",detail:n};return{name:"Stale worktrees",status:"pass",message:"none"}}function zp(e){try{let n=Yl(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:Kp(e)?"none":"no worktree directory"};return{name:"Orphaned directories",status:"warn",message:"orphaned worktree directories found",detail:n}}catch(n){return{name:"Orphaned directories",status:"fail",message:`Check failed: ${n.message}`}}}function qp(e){let n=e.filter((i)=>i.isLocked);if(n.length===0)return{name:"Worktree locks",status:"pass",message:"all clear"};return{name:"Worktree locks",status:"warn",message:"locked worktrees present",detail:n.map((i)=>{let s=i.branch??"detached";if(!i.lockReason)return`${s} - ${i.path} (potential stale lock: no reason)`;return`${s} - ${i.path} (reason: ${i.lockReason})`})}}function Xp(e){let n=e.filter((o)=>o.isDirty&&!o.isMain);if(n.length===0)return{name:"Dirty worktrees",status:"pass",message:"none"};return{name:"Dirty worktrees",status:"warn",message:"dirty non-main worktrees found",detail:n.map((o)=>`${o.branch??"detached"} - ${o.path}`)}}async function Do(e){let t=await se.list(e).catch(()=>[]),n=[await Up(),await Tp(),Jp(t),zp(t),qp(t),Xp(t)];return{checks:n,healthy:n.every((o)=>o.status==="pass")}}async function Yp(e){try{return await se.prune(e),{action:"Prune stale worktrees",success:!0}}catch(t){return{action:"Prune stale worktrees",success:!1,detail:t.message}}}async function Zp(e){let t=[];try{let n=Yl(await se.list(e).catch(()=>[]));for(let o of n)try{Bp(o,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:o})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${o}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Qp(e){let t=[];try{let o=(await se.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of o)try{await se.unlock(i.path,e),t.push({action:"Unlock stale lock",success:!0,detail:`${i.branch??"detached"} - ${i.path}`})}catch(s){t.push({action:"Unlock stale lock",success:!1,detail:`${i.path}: ${s.message}`})}}catch(n){t.push({action:"Fix stale locks",success:!1,detail:n.message})}return t}async function _r(e){let t=[];return t.push(await Yp(e)),t.push(...await Zp(e)),t.push(...await Qp(e)),t}var vs=ge(()=>{qe();Ke();Ut()});function Zl(){let e=st(),t=rt(),[n,o]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[u,h]=ue(!1),[m,p]=ue([]),w=async()=>{s(!0),a(""),p([]);try{let I=await Do();o(I)}catch(I){a(I.message)}s(!1)},A=async()=>{if(n()?.healthy)return;h(!0);try{let I=await _r();p(I);let z=await Do();o(z)}catch(I){a(I.message)}h(!1)};w(),it((I)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let z=I.name;if(z==="r")w();if(z==="f"&&!i()&&!u()&&!n()?.healthy)A()});let W=()=>t().width,y=()=>t().height,C=()=>Math.max(50,Math.min(80,W()-4)),k=()=>{let I=O()+G()+8+(G()>0?2:0);return Math.max(12,Math.min(I,y()-4))},F=()=>Math.max(C()-4,10),x=(I)=>{if(I==="pass")return"\u2713";if(I==="warn")return"\u26A0";return"\u2717"},S=(I)=>{if(I==="pass")return g.text.success;if(I==="warn")return g.text.warning;return g.text.error},O=()=>n()?.checks.length??0,G=()=>m().length;return X(sn,{get width(){return C()},get height(){return k()},get borderColor(){return Le(()=>!!n()?.healthy)()?g.text.success:Le(()=>!!n())()?g.text.warning:g.border.default},get backgroundColor(){return g.bg.surface},title:" Doctor ",get footer(){return[(()=>{var I=l("box"),z=l("text");return f(I,z),r(I,"height",1),V(z,()=>"\u2500".repeat(Math.max(F(),1))),H((Z)=>{var T=F(),J=g.border.subtle;return T!==Z.e&&(Z.e=r(I,"width",T,Z.e)),J!==Z.t&&(Z.t=r(z,"fg",J,Z.t)),Z},{e:void 0,t:void 0}),I})(),(()=>{var I=l("box"),z=l("text"),Z=l("text");return f(I,z),f(I,Z),r(I,"flexDirection","row"),r(I,"gap",2),f(z,B("r:recheck")),V(I,X(re,{get when(){return!n()?.healthy},get children(){var T=l("text");return f(T,B("f:fix")),H((J)=>r(T,"fg",g.text.secondary,J)),T}}),Z),f(Z,B("Esc:back")),H((T)=>{var J=g.text.secondary,q=g.text.secondary;return J!==T.e&&(T.e=r(z,"fg",J,T.e)),q!==T.t&&(T.t=r(Z,"fg",q,T.t)),T},{e:void 0,t:void 0}),I})()]},get children(){return[X(re,{get when(){return i()},get children(){return X(So,{label:"Running checks..."})}}),X(re,{get when(){return u()},get children(){var I=l("text");return f(I,B("Running auto-fix...")),H((z)=>r(I,"fg",g.text.accent,z)),I}}),X(re,{get when(){return Le(()=>!i()&&!u())()&&!!c()},get children(){var I=l("text"),z=B("Error: ");return f(I,z),V(I,c,null),H((Z)=>r(I,"fg",g.text.error,Z)),I}}),X(re,{get when(){return Le(()=>!i()&&!u()&&!c())()&&!!n()},get children(){return[(()=>{var I=l("text");return f(I,B("Health Checks")),H((z)=>r(I,"fg",g.text.accent,z)),I})(),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),X(nt,{get each(){return n().checks},children:(I)=>{return(()=>{var z=l("box"),Z=l("text"),T=l("text"),J=B(":"),q=l("text");return f(z,Z),f(z,T),f(z,q),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),V(Z,()=>x(I.status)),f(T,J),r(T,"x",2),r(T,"y",0),V(T,()=>I.name,J),r(q,"y",0),V(q,()=>I.message),H((Y)=>{var ne=S(I.status),he=g.text.primary,_=I.name.length+4,me=g.text.secondary;return ne!==Y.e&&(Y.e=r(Z,"fg",ne,Y.e)),he!==Y.t&&(Y.t=r(T,"fg",he,Y.t)),_!==Y.a&&(Y.a=r(q,"x",_,Y.a)),me!==Y.o&&(Y.o=r(q,"fg",me,Y.o)),Y},{e:void 0,t:void 0,a:void 0,o:void 0}),z})()}}),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),(()=>{var I=l("text");return V(I,(()=>{var z=Le(()=>!!n().healthy);return()=>z()?"\u2713 All checks passed":`${n().checks.filter((Z)=>Z.status==="fail").length} error(s), ${n().checks.filter((Z)=>Z.status==="warn").length} warning(s) found`})()),H((z)=>r(I,"fg",n().healthy?g.text.success:g.text.warning,z)),I})(),X(re,{get when(){return G()>0},get children(){return[(()=>{var I=l("text");return f(I,B("Fix Results")),H((z)=>r(I,"fg",g.text.accent,z)),I})(),(()=>{var I=l("text");return V(I,()=>"\u2500".repeat(F())),H((z)=>r(I,"fg",g.border.subtle,z)),I})(),X(nt,{get each(){return m()},children:(I)=>{return(()=>{var z=l("box"),Z=l("text"),T=l("text");return f(z,Z),f(z,T),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),V(Z,()=>I.success?"\u2713":"\u2717"),r(T,"x",2),r(T,"y",0),V(T,()=>I.action),V(z,X(re,{get when(){return!!I.detail},get children(){var J=l("text"),q=B("("),Y=B(")");return f(J,q),f(J,Y),r(J,"y",0),V(J,()=>I.detail,Y),H((ne)=>{var he=I.action.length+3,_=g.text.secondary;return he!==ne.e&&(ne.e=r(J,"x",he,ne.e)),_!==ne.t&&(ne.t=r(J,"fg",_,ne.t)),ne},{e:void 0,t:void 0}),J}}),null),H((J)=>{var q=I.success?g.text.success:g.text.error,Y=g.text.primary;return q!==J.e&&(J.e=r(Z,"fg",q,J.e)),Y!==J.t&&(J.t=r(T,"fg",Y,J.t)),J},{e:void 0,t:void 0}),z})()}})]}})]}})]}})}var Ql=ge(()=>{te();te();te();te();te();te();te();te();Ye();Zt();vs();te();yt();ko();Jr()});var _l={};Ne(_l,{writePin:()=>Es,removePin:()=>Fs,readPin:()=>rr,listPinnedWorktrees:()=>Ds,isPinned:()=>In});import{readFileSync as Nl,writeFileSync as Np,unlinkSync as $p,mkdirSync as _p,existsSync as ks}from"fs";import{join as eg,dirname as $l}from"path";function or(e){return tn(e,"copse-pin")}function tg(e){let t=or(e),n=$l(t),o=eg(n,"HEAD"),i=Nl(o,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function Es(e,t){let n=or(e),o={branch:tg(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};_p($l(n),{recursive:!0}),Np(n,JSON.stringify(o),{encoding:"utf-8",mode:384})}function rr(e){let t=or(e);if(!ks(t))return null;return JSON.parse(Nl(t,"utf-8"))}function Fs(e){let t=or(e);if(!ks(t))return;$p(t)}function In(e){return ks(or(e))}function Ds(e){return e.filter((t)=>In(t.path))}var Mo=ge(()=>{Pn()});function ef(){let e=st(),t=gt(),n=()=>t.worktrees()??[],o=()=>e.selectedWorktreeIndex(),i=(m)=>{let p=Math.max(0,Math.min(m,Math.max(n().length-1,0))),w=n()[p];e.setSelectedWorktreeIndex(p),e.setSelectedWorktreePath(w?.path??null)},s=Xe(()=>{let m=n(),p=[],w=new Map;for(let y of m){let C=w.get(y.repoName);if(C)C.push(y);else w.set(y.repoName,[y])}let A=0,W=!0;for(let[y,C]of w){if(!W)p.push({type:"separator"});W=!1,p.push({type:"header",repoName:y});for(let k of C)p.push({type:"worktree",wt:k,flatIdx:A}),A++}return p}),c=()=>e.selectedWorktrees().size;it((m)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let p=m.name,w=n();if(p==="j"||p==="down")i(Math.min(o()+1,w.length-1));if(p==="k"||p==="up")i(Math.max(o()-1,0));if(p==="space"){let A=o(),W=w[A];if(W&&!W.isMain)e.toggleWorktreeSelection(W.path)}if(m.ctrl&&p==="a")e.selectAllNonMain(w.filter((A)=>!A.isMain).map((A)=>A.path))});let a=(m)=>{if(m.isLocked)return"\uD83D\uDD12";if(m.isDirty)return"\u25CF";return"\u2713"},u=(m)=>{if(m.isLocked)return g.text.warning;if(m.isDirty)return g.text.error;return g.text.success},h=(m,p)=>{let w=m.branch??"(detached)",A=Math.max(8,Ms-(p?9:7));return w.length>A?w.slice(0,A-1)+"\u2026":w};return(()=>{var m=l("box");return r(m,"x",0),r(m,"y",0),r(m,"width","100%"),r(m,"height","100%"),r(m,"flexDirection","column"),r(m,"paddingX",1),r(m,"paddingY",1),r(m,"gap",0),V(m,X(re,{get when(){return t.loading()},get children(){var p=l("text");return f(p,B("Loading...")),H((w)=>r(p,"fg",g.text.secondary,w)),p}}),null),V(m,X(re,{get when(){return!t.loading()},get children(){return[X(nt,{get each(){return s()},children:(p)=>{if(p.type==="header")return(()=>{var y=l("box"),C=l("text"),k=l("b");return f(y,C),r(y,"width","100%"),r(y,"height",1),f(C,k),V(k,()=>p.repoName),H((F)=>r(C,"fg",g.text.accent,F)),y})();if(p.type==="separator")return(()=>{var y=l("box"),C=l("text");return f(y,C),r(y,"width","100%"),r(y,"height",1),f(C,B("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),H((k)=>r(C,"fg",g.border.subtle,k)),y})();let w=p.wt,A=()=>p.flatIdx===o(),W=()=>e.selectedWorktrees().has(w.path);return(()=>{var y=l("box"),C=l("text"),k=l("text");return f(y,C),f(y,k),r(y,"width","100%"),r(y,"height",1),r(y,"paddingX",1),r(y,"onMouseDown",()=>i(p.flatIdx)),r(C,"x",0),r(C,"y",0),V(C,()=>a(w)),r(k,"x",2),r(k,"y",0),V(k,()=>h(w,!1)),V(y,X(re,{get when(){return W()},get children(){var F=l("text");return f(F,B("\u2713")),r(F,"x",23),r(F,"y",0),H((x)=>r(F,"fg",g.text.accent,x)),F}}),null),V(y,X(re,{get when(){return!!zt(w.path)},get children(){var F=l("text");return f(F,B("S")),r(F,"y",0),H((x)=>{var S=Ms-(W()?3:1),O=g.text.accent;return S!==x.e&&(x.e=r(F,"x",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),F}}),null),V(y,X(re,{get when(){return In(w.path)},get children(){var F=l("text");return f(F,B("P")),r(F,"y",0),H((x)=>{var S=Ms-(W()?5:3)+(zt(w.path)?0:2),O=g.text.warning;return S!==x.e&&(x.e=r(F,"x",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),F}}),null),H((F)=>{var x=A()?g.select.focusedBg:W()?g.bg.elevated:g.bg.surface,S=u(w),O=A()?g.tab.active:g.text.primary;return x!==F.e&&(F.e=r(y,"backgroundColor",x,F.e)),S!==F.t&&(F.t=r(C,"fg",S,F.t)),O!==F.a&&(F.a=r(k,"fg",O,F.a)),F},{e:void 0,t:void 0,a:void 0}),y})()}}),X(re,{get when(){return c()>0},get children(){var p=l("box"),w=l("text");return f(p,w),r(p,"width","100%"),r(p,"height",1),V(w,()=>`Selected: ${c()}`),H((A)=>r(w,"fg",g.text.accent,A)),p}})]}}),null),H((p)=>r(m,"backgroundColor",g.bg.surface,p)),m})()}var Ms=24;var tf=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();Mo();Wn()});import{decodePasteBytes as ng}from"@opentui/core";function nf(){let e=st(),t=gt(),n=rt(),[o,i]=ue(""),[s,c]=ue(0);fn(()=>{e.setInputFocused(!0)}),ct(()=>{e.setInputFocused(!1)});let a=()=>{let k=t.worktrees()??[],F=e.selectedWorktreePath();if(F){let x=k.find((S)=>S.path===F);if(x)return x}return k[e.selectedWorktreeIndex()]},u=()=>{let k=process.env.VISUAL||process.env.EDITOR;if(k)return k;let F=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let x of F)try{if(Bun.spawnSync(["which",x],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return x}catch{}return null},h=Xe(()=>[{id:"add",label:"Add Worktree",description:"Create a new git worktree",action:()=>{e.setActiveTab("add"),e.setShowCommandPalette(!1)}},{id:"delete",label:"Delete Worktree",description:"Remove the selected worktree",action:()=>{let k=a();if(!k||k.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let k=a();if(!k)return;let F=u();if(!F)return;e.setShowCommandPalette(!1),Bun.spawn([F,k.path],{stdout:"inherit",stderr:"inherit"})}},{id:"refresh",label:"Refresh",description:"Reload worktree list",action:()=>{t.refetch(),e.setShowCommandPalette(!1)}},{id:"config",label:"Open Config",description:"View configuration",action:()=>{e.setActiveTab("config"),e.setShowCommandPalette(!1)}},{id:"doctor",label:"Run Doctor",description:"Check worktree health",action:()=>{e.setActiveTab("doctor"),e.setShowCommandPalette(!1)}},...At.map((k)=>({id:`theme:${k}`,label:`Theme: ${Br[k]}`,description:"Switch color theme",action:()=>{wo(k);try{let F=Ct(),x={...Ae()};x.theme=k,_n(F,JSON.stringify(x,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),m=Xe(()=>{let k=o().toLowerCase();if(!k)return h();return h().filter((F)=>F.label.toLowerCase().includes(k)||F.description.toLowerCase().includes(k))});it((k)=>{if(!e.showCommandPalette())return;let F=k.name;if(F==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(F==="return"||F==="enter"){let x=m()[s()];if(x)x.action();i(""),c(0);return}if(F==="down"||F==="j"){c((x)=>Math.min(x+1,m().length-1));return}if(F==="up"||F==="k"){c((x)=>Math.max(x-1,0));return}}),go((k)=>{if(!e.inputFocused())return;let F=ng(k.bytes).replace(/\r?\n/g,"");if(!F)return;i((x)=>x+F),c(0)});let p=(k)=>{i(k),c(0)},w=()=>Math.max(50,Math.min(80,n().width-4)),A=()=>Math.max(10,Math.min(m().length+8,n().height-4)),W=()=>w()-4,y=()=>Math.max(W()-2,1),C=()=>A()-8;return X(sn,{get width(){return w()},get height(){return A()},get borderColor(){return g.border.active},get backgroundColor(){return g.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var k=l("box"),F=l("text");return f(k,F),r(k,"height",1),V(F,()=>"\u2500".repeat(Math.max(W(),1))),H((x)=>{var S=W(),O=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box"),F=l("text"),x=l("text"),S=l("text");return f(k,F),f(k,x),f(k,S),r(k,"flexDirection","row"),r(k,"gap",2),f(F,B("\u2191\u2193:navigate")),f(x,B("Enter:run")),f(S,B("Esc:close")),H((O)=>{var G=g.text.secondary,I=g.text.secondary,z=g.text.secondary;return G!==O.e&&(O.e=r(F,"fg",G,O.e)),I!==O.t&&(O.t=r(x,"fg",I,O.t)),z!==O.a&&(O.a=r(S,"fg",z,O.a)),O},{e:void 0,t:void 0,a:void 0}),k})()]},get children(){return[(()=>{var k=l("box"),F=l("text"),x=l("input");return f(k,F),f(k,x),r(k,"height",1),r(k,"flexDirection","row"),f(F,B("> ")),r(x,"onInput",p),r(x,"placeholder","Search commands..."),r(x,"focused",!0),H((S)=>{var O=W(),G=g.bg.elevated,I=g.text.accent,z=o(),Z=y(),T=g.bg.elevated,J=g.text.primary,q=g.text.secondary,Y=g.text.accent,ne=g.bg.elevated;return O!==S.e&&(S.e=r(k,"width",O,S.e)),G!==S.t&&(S.t=r(k,"backgroundColor",G,S.t)),I!==S.a&&(S.a=r(F,"fg",I,S.a)),z!==S.o&&(S.o=r(x,"value",z,S.o)),Z!==S.i&&(S.i=r(x,"width",Z,S.i)),T!==S.n&&(S.n=r(x,"backgroundColor",T,S.n)),J!==S.s&&(S.s=r(x,"textColor",J,S.s)),q!==S.h&&(S.h=r(x,"placeholderColor",q,S.h)),Y!==S.r&&(S.r=r(x,"cursorColor",Y,S.r)),ne!==S.d&&(S.d=r(x,"focusedBackgroundColor",ne,S.d)),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),k})(),(()=>{var k=l("box"),F=l("text");return f(k,F),r(k,"height",1),V(F,()=>"\u2500".repeat(Math.max(W(),1))),H((x)=>{var S=W(),O=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),O!==x.t&&(x.t=r(F,"fg",O,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box");return r(k,"flexDirection","column"),V(k,X(nt,{get each(){return m().slice(0,C())},children:(F,x)=>{let S=()=>x()===s();return(()=>{var O=l("box"),G=l("text"),I=l("text");return f(O,G),f(O,I),r(O,"height",1),r(O,"onMouseDown",()=>{c(x()),F.action()}),r(G,"x",2),r(G,"y",0),V(G,()=>F.label),r(I,"y",0),V(I,()=>F.description),H((z)=>{var Z=W(),T=S()?g.select.focusedBg:g.bg.surface,J=S()?g.tab.active:g.text.primary,q=Math.max(25,F.label.length+4),Y=g.text.secondary;return Z!==z.e&&(z.e=r(O,"width",Z,z.e)),T!==z.t&&(z.t=r(O,"backgroundColor",T,z.t)),J!==z.a&&(z.a=r(G,"fg",J,z.a)),q!==z.o&&(z.o=r(I,"x",q,z.o)),Y!==z.i&&(z.i=r(I,"fg",Y,z.i)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),O})()}}),null),V(k,X(re,{get when(){return m().length===0},get children(){var F=l("box"),x=l("text");return f(F,x),r(F,"height",1),f(x,B("No commands found")),r(x,"x",2),r(x,"y",0),H((S)=>r(x,"fg",g.text.secondary,S)),F}}),null),H((F)=>{var x=W(),S=C(),O=g.bg.surface;return x!==F.e&&(F.e=r(k,"width",x,F.e)),S!==F.t&&(F.t=r(k,"height",S,F.t)),O!==F.a&&(F.a=r(k,"backgroundColor",O,F.a)),F},{e:void 0,t:void 0,a:void 0}),k})()]}})}var of=ge(()=>{te();te();te();te();te();te();te();Ye();Zt();hn();te();yt();ko();qe()});import{join as og}from"path";import{existsSync as rg}from"fs";function rf(e){let t=st(),n=on(),[o,i]=ue(0),s=()=>t.focusPickerData(),c=Xe(()=>{let m=s();if(!m)return[];return[...m.focusPaths.map((p)=>({label:p,value:p})),{label:"Worktree root",value:Ps}]}),a=()=>{t.setFocusPickerData(null),i(0)},u=(m)=>{let p=e.detectEditor();if(!p){n.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"}),a();return}if(!rg(m)){n.addToast({message:`Path does not exist: ${m}`,type:"error"}),a();return}Bun.spawn([p,m],{stdout:"inherit",stderr:"inherit"}),a()},h=()=>{let m=s(),p=c();if(!m||p.length===0)return;let w=p[o()];if(!w)return;if(w.value===Ps)u(m.worktreePath);else u(og(m.worktreePath,w.value))};return it((m)=>{if(!s())return;let p=m.name;if(p==="escape"){a();return}let w=c();if(p==="down"||p==="j"||m.sequence==="\x1B[B"){i((A)=>Math.min(A+1,w.length-1));return}if(p==="up"||p==="k"||m.sequence==="\x1B[A"){i((A)=>Math.max(A-1,0));return}if(p==="return"||p==="enter"){h();return}}),X(re,{get when(){return s()},get children(){return X(sn,{title:" Open Focus ",width:50,get height(){return Math.min(c().length+6,14)},backdrop:!0,get children(){return[(()=>{var m=l("box"),p=l("text");return f(m,p),r(m,"height",1),f(p,B("Multiple focus paths set. Pick one to open:")),H((w)=>r(p,"fg",g.text.secondary,w)),m})(),(()=>{var m=l("box");return r(m,"height",1),m})(),X(nt,{get each(){return c()},children:(m,p)=>(()=>{var w=l("box"),A=l("text");return f(w,A),r(w,"height",1),r(w,"flexDirection","row"),V(A,()=>p()===o()?"\u276F ":" ",null),V(A,()=>m.label,null),H((W)=>r(A,"fg",p()===o()?g.text.accent:m.value===Ps?g.text.secondary:g.text.primary,W)),w})()}),(()=>{var m=l("box");return r(m,"height",1),m})(),(()=>{var m=l("box"),p=l("text");return f(m,p),r(m,"height",1),f(p,B("j/k:nav enter:open esc:cancel")),H((w)=>r(p,"fg",g.text.secondary,w)),m})()]}})}})}var Ps="__root__";var sf=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Zt();no();yt();ko()});function ig(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function sg(e){if(e==="success")return g.text.success;if(e==="warning")return g.text.warning;if(e==="error")return g.text.error;return g.text.primary}function cf(){let e=rt(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var o=l("box");return r(o,"y",1),r(o,"height",5),r(o,"flexDirection","column"),V(o,X(nt,{get each(){return on().toasts()},children:(i,s)=>(()=>{var c=l("box"),a=l("text");return f(c,a),r(c,"x",0),r(c,"height",1),r(a,"x",1),r(a,"y",0),V(a,()=>`${ig(i.type)} ${i.message}`),H((u)=>{var h=s(),m=t(),p=g.bg.elevated,w=sg(i.type);return h!==u.e&&(u.e=r(c,"y",h,u.e)),m!==u.t&&(u.t=r(c,"width",m,u.t)),p!==u.a&&(u.a=r(c,"backgroundColor",p,u.a)),w!==u.o&&(u.o=r(a,"fg",w,u.o)),u},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),H((i)=>{var s=n(),c=t();return s!==i.e&&(i.e=r(o,"x",s,i.e)),c!==i.t&&(i.t=r(o,"width",c,i.t)),i},{e:void 0,t:void 0}),o})()}var af=ge(()=>{te();te();te();te();te();te();Ye();te();no();yt()});var uf={};Ne(uf,{launchTUI:()=>fg});import{existsSync as cg}from"fs";import{resolve as lf}from"path";function ff(){let e=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let t of e)try{if(Bun.spawnSync(["which",t],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return t}catch{}return null}function lg(e){let t=st(),n=gt(),o=on(),i=dn(),[s,c]=ue(!1),a=rt(),u=()=>{let C=n.worktrees()??[],k=t.selectedWorktreePath();if(k){let F=C.find((x)=>x.path===k);if(F)return F}return C[t.selectedWorktreeIndex()]};Pt(()=>{let C=n.worktrees()??[],k=C.map((O)=>O.path);if(t.pruneSelectedWorktrees(k),C.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let F=t.selectedWorktreePath();if(F){let O=C.findIndex((G)=>G.path===F);if(O>=0){if(O!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(O);return}}let x=Math.min(t.selectedWorktreeIndex(),C.length-1),S=C[x]?.path??null;if(x!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(x);if(S!==t.selectedWorktreePath())t.setSelectedWorktreePath(S)}),it((C)=>{let k=C.name;if(k==="escape"){if(t.focusPickerData()){t.setFocusPickerData(null);return}if(t.showBulkActions()){t.setShowBulkActions(!1);return}if(t.showDetailView()){t.setShowDetailView(!1);return}if(t.showRemove()){t.setShowRemove(!1);return}if(s()){c(!1);return}if(t.inputFocused())return;if(t.activeTab()!=="list"){t.setActiveTab("list");return}}if(C.ctrl&&k==="p"){t.setShowCommandPalette(!0);return}if(t.focusPickerData())return;if(t.inputFocused())return;if(t.showCommandPalette())return;if(t.showBulkActions())return;if(t.showRemove())return;if(t.activeTab()==="add")return;if(t.activeTab()==="list"){if(t.showDetailView())return;if(k==="a"){t.setActiveTab("add");return}if(k==="r"){n.refetch();return}if(k==="d"){let F=u();if(F&&!F.isMain)t.setShowRemove(!0);return}if(k==="o"){let F=u();if(!F)return;let x=Kr(F.path);if(x.kind==="multiple"){t.setFocusPickerData({worktreePath:F.path,focusPaths:x.focusPaths});return}let S=process.env.VISUAL||process.env.EDITOR||ff();if(!S){o.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!cg(x.path)){o.addToast({message:`Path does not exist: ${x.path}`,type:"error"});return}Bun.spawn([S,x.path],{stdout:"inherit",stderr:"inherit"});return}}if(k==="h"){t.setActiveTab("doctor");return}if(k==="q"||k==="Q")i.destroy();if(k==="?")c((F)=>!F)});let h=()=>a().width,m=()=>a().height,p=()=>e.repoPath.split("/").pop()??"",w=()=>{let C=n.repoNames();if(C.length<=1)return p();return`${C.length} repos`},A=()=>{let C=n.worktrees()??[];return`${p()} \xB7 ${C.length} worktrees`},W=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},y=()=>h()-ag-1;return(()=>{var C=l("box"),k=l("box"),F=l("text"),x=l("text"),S=l("box"),O=l("box"),G=l("box"),I=l("text"),z=l("b"),Z=l("box"),T=l("box"),J=l("toaster"),q=l("box"),Y=l("text"),ne=l("box"),he=l("text");return f(C,k),f(C,S),f(C,J),f(C,q),f(C,ne),r(C,"flexDirection","column"),f(k,F),f(k,x),r(k,"height",1),f(F,B("\uD83C\uDF33 copse")),r(F,"x",1),r(F,"y",0),r(x,"y",0),V(x,w),f(S,O),f(S,Z),f(S,T),r(S,"flexGrow",1),r(S,"flexDirection","row"),f(O,G),r(O,"width",28),r(O,"flexShrink",0),r(O,"flexDirection","column"),f(G,I),r(G,"height",1),r(G,"paddingX",1),f(I,z),V(z,W),V(O,X(ef,{}),null),r(Z,"width",1),r(T,"flexGrow",1),V(T,X(re,{get when(){return Le(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return X(wl,{})}}),null),V(T,X(re,{get when(){return Le(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return X(Kl,{get w(){return y()},get h(){return m()-3}})}}),null),V(T,X(re,{get when(){return t.activeTab()==="config"},get children(){return X(Ul,{})}}),null),V(C,X(cf,{}),J),r(J,"position","bottom-right"),f(q,Y),r(q,"height",1),r(Y,"x",0),r(Y,"y",0),V(Y,()=>"\u2500".repeat(h())),f(ne,he),r(ne,"height",1),f(he,B("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),r(he,"x",1),r(he,"y",0),V(C,X(re,{get when(){return Le(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),ke=l("text"),E=l("text"),P=l("box"),U=l("text"),K=l("text"),L=l("box"),ee=l("text"),de=l("text"),ie=l("box"),we=l("text"),Oe=l("text"),pe=l("box"),Ee=l("text"),Fe=l("text"),We=l("box"),j=l("box"),d=l("text"),b=l("text"),M=l("box"),D=l("text"),v=l("text"),$=l("box"),oe=l("box"),be=l("text");return f(_,me),f(_,P),f(_,L),f(_,ie),f(_,pe),f(_,We),f(_,j),f(_,M),f(_,$),f(_,oe),r(_,"height",14),r(_,"border",!0),r(_,"borderStyle","rounded"),r(_,"title"," Keyboard Shortcuts "),r(_,"titleAlignment","left"),r(_,"flexDirection","column"),r(_,"paddingX",1),r(_,"paddingY",1),r(_,"position","absolute"),f(me,ke),f(me,E),r(me,"height",1),f(ke,B("q")),r(ke,"x",1),f(E,B("Quit")),r(E,"x",8),f(P,U),f(P,K),r(P,"height",1),f(U,B("j/k")),r(U,"x",1),f(K,B("Navigate list")),r(K,"x",8),f(L,ee),f(L,de),r(L,"height",1),f(ee,B("a")),r(ee,"x",1),f(de,B("Add worktree")),r(de,"x",8),f(ie,we),f(ie,Oe),r(ie,"height",1),f(we,B("d")),r(we,"x",1),f(Oe,B("Delete worktree")),r(Oe,"x",8),f(pe,Ee),f(pe,Fe),r(pe,"height",1),f(Ee,B("r")),r(Ee,"x",1),f(Fe,B("Refresh list")),r(Fe,"x",8),r(We,"height",1),f(j,d),f(j,b),r(j,"height",1),f(d,B("Ctrl+P")),r(d,"x",1),f(b,B("Command palette")),r(b,"x",8),f(M,D),f(M,v),r(M,"height",1),f(D,B("?")),r(D,"x",1),f(v,B("Toggle help")),r(v,"x",8),r($,"height",1),f(oe,be),r(oe,"height",1),f(be,B("Press ? to close")),r(be,"x",1),H((le)=>{var Ie=Math.max(0,Math.floor((h()-Math.max(40,Math.min(60,h()-4)))/2)),N=Math.max(0,Math.floor((m()-14)/2)),ae=Math.max(40,Math.min(60,h()-4)),ce=g.border.active,Q=g.bg.elevated,Re=g.text.secondary,Ce=g.text.primary,Te=g.text.secondary,Ge=g.text.primary,Qe=g.text.secondary,ht=g.text.primary,Pe=g.text.secondary,Be=g.text.primary,yn=g.text.secondary,Wo=g.text.primary,jo=g.text.secondary,Lo=g.text.primary,Io=g.text.secondary,Hs=g.text.primary,Ks=g.text.accent;return Ie!==le.e&&(le.e=r(_,"x",Ie,le.e)),N!==le.t&&(le.t=r(_,"y",N,le.t)),ae!==le.a&&(le.a=r(_,"width",ae,le.a)),ce!==le.o&&(le.o=r(_,"borderColor",ce,le.o)),Q!==le.i&&(le.i=r(_,"backgroundColor",Q,le.i)),Re!==le.n&&(le.n=r(ke,"fg",Re,le.n)),Ce!==le.s&&(le.s=r(E,"fg",Ce,le.s)),Te!==le.h&&(le.h=r(U,"fg",Te,le.h)),Ge!==le.r&&(le.r=r(K,"fg",Ge,le.r)),Qe!==le.d&&(le.d=r(ee,"fg",Qe,le.d)),ht!==le.l&&(le.l=r(de,"fg",ht,le.l)),Pe!==le.u&&(le.u=r(we,"fg",Pe,le.u)),Be!==le.c&&(le.c=r(Oe,"fg",Be,le.c)),yn!==le.w&&(le.w=r(Ee,"fg",yn,le.w)),Wo!==le.m&&(le.m=r(Fe,"fg",Wo,le.m)),jo!==le.f&&(le.f=r(d,"fg",jo,le.f)),Lo!==le.y&&(le.y=r(b,"fg",Lo,le.y)),Io!==le.g&&(le.g=r(D,"fg",Io,le.g)),Hs!==le.p&&(le.p=r(v,"fg",Hs,le.p)),Ks!==le.b&&(le.b=r(be,"fg",Ks,le.b)),le},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),_}}),null),V(C,X(re,{get when(){return t.activeTab()==="add"},get children(){return X(Il,{})}}),null),V(C,X(re,{get when(){return t.activeTab()==="doctor"},get children(){return X(Zl,{})}}),null),V(C,X(re,{get when(){return t.showRemove()},get children(){return X(Vl,{})}}),null),V(C,X(re,{get when(){return t.showCommandPalette()},get children(){return X(nf,{})}}),null),V(C,X(rf,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||ff()}),null),H((_)=>{var me=h(),ke=m(),E=g.bg.base,P=g.bg.overlay,U=g.text.accent,K=h()-w().length-2,L=g.text.secondary,ee=g.bg.surface,de=g.text.accent,ie=g.bg.base,we=g.bg.overlay,Oe=g.border.subtle,pe=g.bg.overlay,Ee=g.text.secondary;return me!==_.e&&(_.e=r(C,"width",me,_.e)),ke!==_.t&&(_.t=r(C,"height",ke,_.t)),E!==_.a&&(_.a=r(C,"backgroundColor",E,_.a)),P!==_.o&&(_.o=r(k,"backgroundColor",P,_.o)),U!==_.i&&(_.i=r(F,"fg",U,_.i)),K!==_.n&&(_.n=r(x,"x",K,_.n)),L!==_.s&&(_.s=r(x,"fg",L,_.s)),ee!==_.h&&(_.h=r(O,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=r(I,"fg",de,_.r)),ie!==_.d&&(_.d=r(T,"backgroundColor",ie,_.d)),we!==_.l&&(_.l=r(q,"backgroundColor",we,_.l)),Oe!==_.u&&(_.u=r(Y,"fg",Oe,_.u)),pe!==_.c&&(_.c=r(ne,"backgroundColor",pe,_.c)),Ee!==_.w&&(_.w=r(he,"fg",Ee,_.w)),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0}),C})()}async function fg(){if(process.stdout.isTTY)process.stdout.write("\x1B]0;Copse\x07");let e=null;try{e=await se.getMainRepoPath()}catch{}let t=[],n;try{let c={...Ae()};if(t=En(c),typeof c.theme==="string")n=c.theme}catch{}let o=e??t[0]??process.cwd(),i=[o],s=new Set([lf(o)]);for(let c of t){let a=lf(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&At.includes(n))wo(n);await Ya(()=>X(il,{repoPath:o,repoPaths:i,get children(){return X(ll,{repoPaths:i,get children(){return X(ml,{get children(){return X(lg,{repoPath:o})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var ag=28;var df=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Zt();hn();Ke();xl();Bl();Hl();Gl();Tl();Ql();tf();yt();of();sf();no();af();no();qe();nn()});import*as hf from"readline";async function Bn(e){let t=hf.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(o)=>{t.close(),n(o.toLowerCase()==="y"||o.toLowerCase()==="yes")})})}async function Ue(){return se.getMainRepoPath().catch(()=>process.cwd())}function Xt(e,t){let n=e.find((o)=>o.branch===t||o.path===t||o.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function et(e){if(e instanceof xt)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var bt=ge(()=>{Ke();Ut()});var mf={};Ne(mf,{default:()=>pg});import{basename as ug,resolve as dg}from"path";import{existsSync as hg}from"fs";var mg,pg;var pf=ge(()=>{Ke();Ut();qe();bt();oo();vo();mg={command:"add [branch] [path]",describe:"Create a new worktree for a branch",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).positional("path",{type:"string",describe:"Worktree directory path"}).option("create",{type:"boolean",alias:"c",describe:"Optional compatibility flag; missing branches are created automatically"}).option("base",{type:"string",alias:"b",describe:"Base branch/commit for new branch"}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("template",{type:"string",alias:"t",describe:"Use a named template from config"}).option("pr",{type:"number",describe:"Create worktree from a GitHub PR number (requires gh CLI)"}).option("session",{type:"boolean",alias:"s",describe:"Create a tmux session for this worktree"}).option("layout",{type:"string",describe:"Session layout name from config"}).option("fetch",{type:"boolean",default:!0,describe:"Auto-fetch when base is a remote ref (e.g. origin/main). Use --no-fetch to skip"}),handler:async(e)=>{let{branch:t,pr:n}=e,o=await Ue(),i=ug(o);if(!t&&!n)console.error("Error: specify a branch or use --pr <number>."),process.exit(1);if(n)try{let C=Bun.spawn(["gh","pr","view",String(n),"--json","headRefName","--jq",".headRefName"],{cwd:o,stdout:"pipe",stderr:"pipe"}),[k,F,x]=await Promise.all([new Response(C.stdout).text(),new Response(C.stderr).text(),C.exited]);if(x!==0)console.error(`Error: failed to resolve PR #${n}: ${F.trim()}`),console.error("Make sure 'gh' CLI is installed and authenticated."),process.exit(1);if(t=k.trim(),!t)console.error(`Error: PR #${n} has no branch name`),process.exit(1);console.log(`PR #${n} \u2192 branch '${t}'`)}catch{console.error("Error: 'gh' CLI not found. Install it from https://cli.github.com"),process.exit(1)}if(!t)console.error("Error: could not determine branch name."),process.exit(1);let s=t.replace(/\//g,"-"),c=Ae(),a=Ht(c,o),u=e.path??a.worktreeDir,h=yr(u,{repo:i,branch:s}),m=dg(o,h);console.log(`Creating worktree for branch '${t}'...`),console.log(` Target: ${m}`);let w=(await se.list(o)).find((C)=>C.branch===t);if(w)console.error(`Error: branch '${t}' is already checked out in ${w.path}`),process.exit(1);if(hg(m))console.error(`Error: directory already exists: ${m}`),process.exit(1);let A=e.focus,W=A?A.flatMap((C)=>C.split(/[,\s]+/)).map((C)=>C.trim()).filter(Boolean):[],y=e.template;if(y)console.log(`Using template '${y}'`);try{let C=await nr(c,{branch:t,worktreePath:m,mainRepoPath:o,repoName:i,base:e.base,focusPaths:W,prNumber:n,templateName:y,session:e.session,layoutName:e.layout,fetch:e.fetch},{onStepStart:(k,F)=>{if(k===Se.fetch)console.log(` Fetching${F?` ${F}`:""}...`);else if(k===Se.copyFiles)console.log(" Copying files...");else if(k===Se.linkFiles)console.log(" Linking files...");else if(k===Se.sharedDeps)console.log(" Sharing dependencies...");else if(k===Se.postCreate)console.log(" Running postCreate hooks...");else if(k===Se.monorepoHooks)console.log(" Running monorepo hooks...")},onStepDone:(k,F)=>{if(k===Se.fetch)console.log(" \u2713 Fetched");else if(k===Se.worktree)console.log(" \u2713 Worktree created");else if(k===Se.upstream)if(F==="no remote branch")console.log(" \u2139 No remote branch found \u2014 upstream tracking skipped");else console.log(` \u2713 Upstream tracking set ${F??""}`);else if(k===Se.copyFiles)console.log(" \u2713 Files copied");else if(k===Se.linkFiles)console.log(" \u2713 Files linked");else if(k===Se.sharedDeps)console.log(" \u2713 Dependencies shared");else if(k===Se.focus&&F)console.log(` \u2713 Focus set: ${F}`);else if(k===Se.postCreate)console.log(" \u2713 Hooks completed");else if(k===Se.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(k===Se.session)console.log(` \u2713 Session created: ${F??""}`);else if(k===Se.prMeta)console.log(` \u2713 PR #${n} metadata saved`)},onStepError:(k,F)=>{if(k===Se.fetch)console.log(` \u26A0 ${F}`);else if(k===Se.upstream)console.warn(` \u26A0 Could not set upstream tracking: ${F}`);else if(k===Se.session)console.log(` \u26A0 Session create failed: ${F}`);else console.warn(` \u26A0 ${k}: ${F}`)},onHookOutput:(k)=>console.log(` ${k}`)});if(C.invalidFocusPaths.length>0)console.log(` \u26A0 Focus paths not found (skipped): ${C.invalidFocusPaths.join(", ")}`);console.log(`
|
|
23
|
+
Worktree ready: ${m}`),process.exit(0)}catch(C){if(C instanceof Oo)console.error(`
|
|
24
|
+
Setup failed, rolled back.`),console.error(`Error: hook timed out: ${C.command}`);else if(C instanceof Ro){if(console.error(`
|
|
25
|
+
Setup failed, rolled back.`),console.error(`Error: hook failed (exit ${C.exitCode}): ${C.command}`),C.stderr)console.error(C.stderr)}else if(C instanceof xt)console.error(`Error creating worktree: ${C.stderr||C.message}`);else console.error(`Error: ${C.message}`);process.exit(1)}}},pg=mg});var gf={};Ne(gf,{default:()=>wg});import{relative as gg,resolve as As}from"path";var bg,wg;var bf=ge(()=>{Ke();Ut();qe();nn();bt();bg={command:"list",aliases:["ls"],describe:"List all worktrees with their status",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("porcelain",{type:"boolean",alias:"p",describe:"Machine-readable output"}).option("all",{type:"boolean",alias:"a",describe:"List worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let c=Ae(),a=await Ue(),u=En(c),h=new Set([As(a)]),m=[a];for(let p of u){let w=As(p);if(!h.has(w))h.add(w),m.push(p)}t=await se.listAll(m)}else t=await se.list();let n=await Promise.all(t.map(async(c)=>({...c,focus:Jt(c.path)})));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);if(e.porcelain){for(let c of n){if(e.all)console.log(`repo ${c.repoName}`);if(console.log(`path ${c.path}`),console.log(`branch ${c.branch??"(detached)"}`),console.log(`head ${c.head}`),console.log(`dirty ${c.isDirty}`),console.log(`locked ${c.isLocked}`),c.focus&&c.focus.length>0)console.log(`focus ${c.focus.join(",")}`);console.log("")}process.exit(0)}if(t.length===0)console.log("No worktrees found."),process.exit(0);let o=As(process.cwd()),i=e.all&&new Set(n.map((c)=>c.repoName)).size>1,s=n.map((c)=>({repo:c.repoName,branch:c.branch??"(detached)",path:c.path===o?c.path:gg(o,c.path)||c.path,status:c.isLocked?"locked":c.isDirty?"dirty":"clean",focus:c.focus?c.focus.join(", ").slice(0,40)+(c.focus.join(", ").length>40?"...":""):"\u2014"}));if(i){let c=Math.max(4,...s.map((p)=>p.repo.length)),a=Math.max(6,...s.map((p)=>p.branch.length)),u=Math.max(4,...s.map((p)=>p.path.length)),h=Math.max(6,...s.map((p)=>p.status.length)),m=Math.max(5,...s.map((p)=>p.focus.length));console.log(`${"Repo".padEnd(c)} ${"Branch".padEnd(a)} ${"Path".padEnd(u)} ${"Status".padEnd(h)} ${"Focus".padEnd(m)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(h)} ${"-".repeat(m)}`);for(let p of s)console.log(`${p.repo.padEnd(c)} ${p.branch.padEnd(a)} ${p.path.padEnd(u)} ${p.status.padEnd(h)} ${p.focus.padEnd(m)}`)}else{let c=Math.max(6,...s.map((m)=>m.branch.length)),a=Math.max(4,...s.map((m)=>m.path.length)),u=Math.max(6,...s.map((m)=>m.status.length)),h=Math.max(5,...s.map((m)=>m.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(u)} ${"Focus".padEnd(h)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(h)}`);for(let m of s)console.log(`${m.branch.padEnd(c)} ${m.path.padEnd(a)} ${m.status.padEnd(u)} ${m.focus.padEnd(h)}`)}process.exit(0)}catch(t){if(t instanceof xt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}},wg=bg});var xf={};Ne(xf,{default:()=>yg});import{basename as wf}from"path";var xg,yg;var yf=ge(()=>{Ke();qe();bt();vo();xg={command:"remove <branch-or-path>",aliases:["rm"],describe:"Remove a worktree",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}).option("force",{type:"boolean",alias:"f",describe:"Force removal even with uncommitted changes"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.force,o=!!e.yes;try{let i=await Ue(),s=await se.list(i),c=Xt(s,t);if(c.isMain)console.error("Error: cannot remove the main worktree"),process.exit(1);if(await se.isDirty(c.path)&&!n)console.error(`Error: worktree has uncommitted changes: ${c.path}`),console.error("Use --force to remove anyway."),process.exit(1);if(c.isLocked){if(console.error(`Error: worktree is locked: ${c.path}`),c.lockReason)console.error(`Lock reason: ${c.lockReason}`);process.exit(1)}if(!o){if(!await Bn(`Remove worktree '${c.branch??wf(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let u=Ae(),h=wf(i);await ro(u,{worktreePath:c.path,mainRepoPath:i,repoName:h,branch:c.branch??t,force:n},{onStepStart:(m)=>{if(m===Ve.postRemove)console.log("Running postRemove hooks...");else if(m===Ve.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(m,p)=>{if(m===Ve.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(m===Ve.session&&p==="killed")console.log(" \u2713 Session killed")},onStepError:(m,p)=>{if(m===Ve.postRemove)console.warn(`Warning: postRemove hook failed: ${p}`);else console.warn(` \u26A0 ${m}: ${p}`)},onHookOutput:(m)=>console.log(` ${m}`)}),console.log(`Removed worktree: ${c.path}`),process.exit(0)}catch(i){et(i)}}},yg=xg});var Sf={};Ne(Sf,{default:()=>Rg});import{basename as Sg}from"path";var Cg,Rg;var Cf=ge(()=>{Ke();Ln();qe();Wn();bt();Cg={command:"switch <branch-or-path>",aliases:["sw"],describe:"Switch to a worktree directory (outputs cd command for shell eval)",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}),handler:async(e)=>{let t=e["branch-or-path"];try{let n=await Ue(),o=await se.list(n),i=Xt(o,t);try{qt(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let s=Ae(),c=Fn(s);if(c.enabled&&ms()){let a=i.branch??Sg(i.path),u=An(a,c.prefix);if(await pn(u))try{await Gr(u),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){et(n)}}},Rg=Cg});async function Rf(e,t,n,o){let i=e.filter((m)=>!m.isMain),s=i.filter((m)=>In(m.path)),c=new Set(s.map((m)=>m.path)),a=[];if(t.autoCleanMerged){let m=i.filter((w)=>!c.has(w.path)&&w.branch);a=(await Qt(m,10,async(w)=>({wt:w,isMerged:await se.isMergedInto(w.branch,n,o)}))).filter((w)=>w.isMerged&&!w.wt.isDirty).map((w)=>w.wt)}let u=[];if(t.staleAfterDays&&t.staleAfterDays>0){let m=new Date,p=i.filter((A)=>!c.has(A.path));u=(await Qt(p,10,async(A)=>{let W=await se.getWorktreeLastActivity(A.path),y=W?Math.floor((m.getTime()-W.getTime())/86400000):1/0;return{wt:A,lastActivity:W,daysSince:y}})).filter((A)=>A.daysSince>=t.staleAfterDays).map((A)=>({worktree:A.wt,lastActivity:A.lastActivity,daysSinceActivity:A.daysSince===1/0?-1:A.daysSince}))}let h=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:u,pinProtected:s,overLimit:h,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function Of(e){let t=[];if(e.pinProtected.length>0){t.push(`Pin-protected worktrees (${e.pinProtected.length}):`);for(let n of e.pinProtected)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.merged.length>0){t.push(`Merged worktrees (${e.merged.length}):`);for(let n of e.merged)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.stale.length>0){t.push(`Stale worktrees (${e.stale.length}):`);for(let n of e.stale){let o=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${o}`)}}if(e.overLimit)t.push(`Worktree limit exceeded: ${e.totalCount}/${e.maxWorktrees}`);if(t.length===0)t.push("All worktrees are healthy.");return t.join(`
|
|
26
|
+
`)}var vf=ge(()=>{Ke();Mo()});var kf={};Ne(kf,{default:()=>vg});var Og,vg;var Ef=ge(()=>{Ke();qe();vf();Mo();bt();Og={command:"clean",describe:"Remove merged worktrees and prune stale entries",builder:(e)=>e.option("dry-run",{type:"boolean",alias:"n",describe:"Show what would be removed"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation"}).option("stale",{type:"boolean",describe:"Also show stale worktrees (based on lifecycle config)"}),handler:async(e)=>{let t=!!(e["dry-run"]||e.n),n=!!e.yes;try{let o=await Ue(),i=await se.list(o),c=(i.find((m)=>m.isMain)??i[0])?.branch??"main",a=i.filter((m)=>{if(m.isMain)return!1;if(In(m.path))return console.log(` Skipping (pinned): ${m.branch}`),!1;if(!m.branch)return!1;return!0}),u=await Qt(a,10,async(m)=>{let[p,w]=await Promise.all([se.isMergedInto(m.branch,c,o),se.isDirty(m.path)]);return{wt:m,merged:p,dirty:w}}),h=[];for(let{wt:m,merged:p,dirty:w}of u){if(!p)continue;if(w){console.log(` Skipping (dirty): ${m.branch}`);continue}h.push(m)}if(h.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let m of h)console.log(` ${m.branch} (${m.path})`)}if(!t&&h.length>0){if(!n){if(!await Bn(`
|
|
27
|
+
Remove ${h.length} worktree(s)? [y/N] `))console.log("Cancelled."),process.exit(0)}for(let m of h)await se.remove(m.path,{force:!1},o),console.log(` Removed: ${m.branch}`)}if(!t)await se.prune(o),console.log("Pruned stale worktree entries.");if(e.stale){let m=Ae();if(m.lifecycle){let p=await Rf(i,m.lifecycle,c,o);console.log(),console.log(Of(p))}else console.log(`
|
|
28
|
+
No lifecycle config found. Add 'lifecycle' to your config to enable stale detection.`)}process.exit(0)}catch(o){et(o)}}},vg=Og});import{existsSync as kg,mkdirSync as Eg,readFileSync as Fg,writeFileSync as Dg}from"fs";import{dirname as Mg}from"path";function Ff(){let e=Ct();try{return Ae(e)}catch{if(!kg(e))throw Error("Failed to load config");let t=Fg(e,"utf-8");return JSON.parse(t)}}function Df(e){let t=Ct(),n=Mg(t);Eg(n,{recursive:!0,mode:448});let o=`${JSON.stringify(e,null,2)}
|
|
29
|
+
`;try{_n(t,o)}catch{Dg(t,o,{encoding:"utf-8",mode:384})}}function Ws(e){return Object.keys(e.profiles??{})}function Mf(e){let t=Ff();Df({...t,activeProfile:e})}function Pf(e){return e.activeProfile??null}function Af(e){let t=Ff(),n={...t.profiles??{}};delete n[e],Df({...t,profiles:n,activeProfile:t.activeProfile===e?void 0:t.activeProfile})}var Wf=ge(()=>{qe()});var jf={};Ne(jf,{default:()=>jg});import{spawnSync as Pg}from"child_process";import{readFileSync as Ag}from"fs";var Wg,jg;var Lf=ge(()=>{qe();Wf();Wg={command:"config",describe:"Manage copse configuration",builder:(e)=>e.option("init",{type:"boolean",describe:"Create default config file"}).option("show",{type:"boolean",alias:"s",describe:"Print current config as JSON"}).option("edit",{type:"boolean",alias:"e",describe:"Open config in $EDITOR"}).option("path",{type:"boolean",describe:"Print config file path"}).option("validate",{type:"boolean",describe:"Validate config against schema"}).option("profiles",{type:"boolean",describe:"List config profiles"}).option("profile",{type:"string",describe:"Profile name for activation/deletion"}).option("activate",{type:"boolean",describe:"Activate the specified profile"}).option("delete",{type:"boolean",describe:"Delete the specified profile"}),handler:async(e)=>{let t=Ct();if(e.init){let n=Kt();console.log(`Config initialized: ${n}`),process.exit(0)}if(e.path)console.log(t),process.exit(0);if(e.show){try{let n=Ae();console.log(JSON.stringify(n,null,2))}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.edit){let n=process.env.EDITOR??process.env.VISUAL??"vi";Kt();let o=Pg(n,[t],{stdio:"inherit"});process.exit(o.status??0)}if(e.validate)try{let n=Ag(t,"utf-8"),o;try{o=JSON.parse(n)}catch{console.error(`Error: invalid JSON in config file: ${t}`),process.exit(1)}let i=$n(o);if(i.length===0)console.log(`\u2713 Config is valid: ${t}`),process.exit(0);else{console.error(`Config validation failed (${i.length} error(s)):`);for(let s of i)console.error(` ${s.field}: ${s.message}`);process.exit(1)}}catch(n){console.error(`Error reading config: ${n.message}`),process.exit(1)}if(e.profiles){try{let n=Ae(),o=Ws(n),i=Pf(n);for(let s of o)console.log(`${s}${s===i?" \u2605":""}`)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.activate){try{let n=Ae(),o=e.profile;if(!Ws(n).includes(o))console.error(`Error: profile '${o}' does not exist.`),process.exit(1);Mf(o)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.delete)Af(e.profile),process.exit(0);console.log("Usage: copse config [options]"),console.log(""),console.log("Options:"),console.log(" --init Create default config file"),console.log(" --show, -s Print current config as JSON"),console.log(" --edit, -e Open config in $EDITOR"),console.log(" --path Print config file path"),console.log(" --validate Validate config against schema"),console.log(" --profiles List config profiles"),console.log(" --profile Profile name for activation/deletion"),console.log(" --activate Activate the specified profile"),console.log(" --delete Delete the specified profile"),console.log(""),console.log(`Config path: ${t}`),process.exit(0)}},jg=Wg});var If={};Ne(If,{default:()=>Ig});var Lg,Ig;var Bf=ge(()=>{vs();Lg={command:"doctor",describe:"Check worktree health and diagnose issues",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("fix",{type:"boolean",describe:"Auto-fix issues (prune stale, remove orphans, unlock stale locks)"}),handler:async(e)=>{let t=process.cwd(),n=await Do(t);if(e.json&&!e.fix){let s={pass:n.checks.filter((c)=>c.status==="pass").length,warn:n.checks.filter((c)=>c.status==="warn").length,fail:n.checks.filter((c)=>c.status==="fail").length};console.log(JSON.stringify({healthy:n.healthy,checks:n.checks,summary:s},null,2)),process.exit(n.healthy?0:1)}console.log(`copse doctor
|
|
30
|
+
`);for(let s of n.checks){let c=s.status==="pass"?"\u2713":s.status==="warn"?"\u26A0":"\u2717";if(console.log(`${c} ${s.name}: ${s.message}`),s.detail)for(let a of s.detail)console.log(` \u2192 ${a}`)}let o=n.checks.filter((s)=>s.status==="warn").length,i=n.checks.filter((s)=>s.status==="fail").length;if(n.healthy)console.log(`
|
|
31
|
+
All checks passed.`);else{let s=[];if(i>0)s.push(`${i} error(s)`);if(o>0)s.push(`${o} warning(s)`);console.log(`
|
|
30
32
|
${s.join(", ")} found.`)}if(e.fix){if(n.healthy)console.log(`
|
|
31
33
|
Nothing to fix.`),process.exit(0);console.log(`
|
|
32
34
|
Running auto-fix...
|
|
33
|
-
`);let s=await
|
|
34
|
-
Fixed ${a} issue(s)${
|
|
35
|
+
`);let s=await _r(t);if(s.length===0)console.log("No auto-fixable issues found.");else{for(let h of s){let m=h.success?"\u2713":"\u2717",p=h.detail?` (${h.detail})`:"";console.log(`${m} ${h.action}${p}`)}let a=s.filter((h)=>h.success).length,u=s.filter((h)=>!h.success).length;console.log(`
|
|
36
|
+
Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await Do(t);if(c.healthy)console.log("All checks now pass.");process.exit(c.healthy?0:1)}process.exit(n.healthy?0:1)}},Ig=Lg});var Kf={};Ne(Kf,{default:()=>Tg});function Bg(e){if(e?.includes("fish"))return"fish";if(e?.includes("bash"))return"bash";return"zsh"}function Vf(){return`copse() {
|
|
35
37
|
if [ "$1" = "switch" ] || [ "$1" = "sw" ]; then
|
|
36
38
|
local output
|
|
37
39
|
output=$(command copse "$@" 2>/dev/null)
|
|
@@ -49,7 +51,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await Or(t);if(c.healthy)c
|
|
|
49
51
|
else
|
|
50
52
|
command copse "$@"
|
|
51
53
|
fi
|
|
52
|
-
}`}function
|
|
54
|
+
}`}function Hf(){return`function copse
|
|
53
55
|
if test "$argv[1]" = "switch"; or test "$argv[1]" = "sw"
|
|
54
56
|
set output (command copse $argv 2>/dev/null)
|
|
55
57
|
set status_code $status
|
|
@@ -66,7 +68,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await Or(t);if(c.healthy)c
|
|
|
66
68
|
else
|
|
67
69
|
command copse $argv
|
|
68
70
|
end
|
|
69
|
-
end`}function
|
|
71
|
+
end`}function Vg(){return`_copse_completions() {
|
|
70
72
|
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
71
73
|
local prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
72
74
|
local commands="add list remove switch clean config doctor pin log archive rename clone import exec diff open status shell-init"
|
|
@@ -90,7 +92,7 @@ end`}function kg(){return`_copse_completions() {
|
|
|
90
92
|
;;
|
|
91
93
|
esac
|
|
92
94
|
}
|
|
93
|
-
complete -F _copse_completions copse`}function
|
|
95
|
+
complete -F _copse_completions copse`}function Hg(){return`_copse() {
|
|
94
96
|
local -a commands
|
|
95
97
|
commands=(
|
|
96
98
|
'add:Add a new worktree'
|
|
@@ -127,7 +129,7 @@ complete -F _copse_completions copse`}function Og(){return`_copse() {
|
|
|
127
129
|
esac
|
|
128
130
|
fi
|
|
129
131
|
}
|
|
130
|
-
compdef _copse copse`}function
|
|
132
|
+
compdef _copse copse`}function Kg(){return`complete -c copse -f
|
|
131
133
|
complete -c copse -n '__fish_use_subcommand' -a 'add' -d 'Add a new worktree'
|
|
132
134
|
complete -c copse -n '__fish_use_subcommand' -a 'list' -d 'List worktrees'
|
|
133
135
|
complete -c copse -n '__fish_use_subcommand' -a 'remove' -d 'Remove a worktree'
|
|
@@ -145,29 +147,29 @@ complete -c copse -n '__fish_use_subcommand' -a 'exec' -d 'Run command'
|
|
|
145
147
|
complete -c copse -n '__fish_use_subcommand' -a 'diff' -d 'Show diff'
|
|
146
148
|
complete -c copse -n '__fish_use_subcommand' -a 'open' -d 'Open in editor'
|
|
147
149
|
complete -c copse -n '__fish_use_subcommand' -a 'status' -d 'Show status'
|
|
148
|
-
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function
|
|
149
|
-
`+c),process.exit(0)}if(i==="fish")console.log(
|
|
150
|
-
`);let c=async(h)=>{let
|
|
151
|
-
`))console.log(` ${
|
|
152
|
-
`))console.log(` ${
|
|
153
|
-
`);
|
|
154
|
-
`);for(let
|
|
155
|
-
Cloned: ${t} \u2192 ${i}`),process.exit(0)}},
|
|
156
|
-
`);for(let s of
|
|
157
|
-
Killed ${i} session${i!==1?"s":""}.`)}var
|
|
158
|
-
`)}function
|
|
159
|
-
`)}function
|
|
160
|
-
`))}let t=
|
|
161
|
-
`)}function Pu(e){let t=vx(e),n=Dr(yu(t),"references"),r=Sx(),i=Cx(),s=yu(t);if(!Ds(s))wu(s,{recursive:!0});if(!Ds(n))wu(n,{recursive:!0});let c=Ds(t);vu(t,r,"utf-8");for(let[a,d]of i.entries())vu(Dr(n,a),d,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var As,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=be(()=>{As=["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 Cu={};qe(Cu,{default:()=>Ox});import{dirname as Rx}from"path";var kx,Ox;var Eu=be(()=>{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 (${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=Pu(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 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(`
|
|
162
|
-
`).map((
|
|
163
|
-
`)}rowToString(e,t){return this.rasterize(e).forEach((n,
|
|
164
|
-
`);else
|
|
165
|
-
`);if(i.border)
|
|
166
|
-
`;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 Tu,statSync as Bu}from"fs";function oi(e,t){let n=Gs(".",e),r;if(!Bu(n).isDirectory())n=Ks(n);while(!0){if(r=t(n,Tu(n)),r)return Gs(n,r);if(n=Ks(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 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=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),I=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:[]},C=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,R=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(u){let x=typeof u==="object"?u.key:u,M=Object.keys(u).map(function(O){return{boolean:"bools",string:"strings",number:"numbers"}[O]}).filter(Boolean).pop();if(M)v[M][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})}j(n.key,s,n.default,v.arrays),Object.keys(a).forEach(function(u){(v.aliases[u]||[]).forEach(function(x){a[x]=a[u]})});let k=null;W();let w=[],y=Object.assign(Object.create(null),{_:[]}),P={};for(let u=0;u<r.length;u++){let x=r[u],M=x.replace(/^-{3,}/,"---"),O,S,Q,oe,xe,le;if(x!=="--"&&/^-/.test(x)&&ge(x))B(x);else if(M.match(/^---+(=|$)/)){B(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(T(oe[1],v.arrays))u=K(u,oe[1],r,oe[2]);else if(T(oe[1],v.nargs)!==!1)u=A(u,oe[1],r,oe[2]);else q(oe[1],oe[2],!0)}else if(x.match(R)&&c["boolean-negation"]){if(oe=x.match(R),oe!==null&&Array.isArray(oe)&&oe.length>=2)S=oe[1],q(S,T(S,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(S=oe[1],T(S,v.arrays))u=K(u,S,r);else if(T(S,v.nargs)!==!1)u=A(u,S,r);else if(xe=r[u+1],xe!==void 0&&(!xe.match(/^-/)||xe.match(C))&&!T(S,v.bools)&&!T(S,v.counts))q(S,xe),u++;else if(/^(true|false)$/.test(xe))q(S,xe),u++;else q(S,pe(S))}else if(x.match(/^-.\..+=/)){if(oe=x.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)q(oe[1],oe[2])}else if(x.match(/^-.\..+/)&&!x.match(C)){if(xe=r[u+1],oe=x.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(S=oe[1],xe!==void 0&&!xe.match(/^-/)&&!T(S,v.bools)&&!T(S,v.counts))q(S,xe),u++;else q(S,pe(S))}else if(x.match(/^-[^-]+/)&&!x.match(C)){Q=x.slice(1,-1).split(""),O=!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),S=Q[Ie],T(S,v.arrays))u=K(u,S,r,le);else if(T(S,v.nargs)!==!1)u=A(u,S,r,le);else q(S,le);O=!0;break}if(xe==="-"){q(Q[Ie],xe);continue}if(/[A-Za-z]/.test(Q[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(xe)&&T(xe,v.bools)===!1){q(Q[Ie],xe),O=!0;break}if(Q[Ie+1]&&Q[Ie+1].match(/\W/)){q(Q[Ie],xe),O=!0;break}else q(Q[Ie],pe(Q[Ie]))}if(S=x.slice(-1)[0],!O&&S!=="-")if(T(S,v.arrays))u=K(u,S,r);else if(T(S,v.nargs)!==!1)u=A(u,S,r);else if(xe=r[u+1],xe!==void 0&&(!/^(-|--)[^-]/.test(xe)||xe.match(C))&&!T(S,v.bools)&&!T(S,v.counts))q(S,xe),u++;else if(/^(true|false)$/.test(xe))q(S,xe),u++;else q(S,pe(S))}else if(x.match(/^-[0-9]$/)&&x.match(C)&&T(x.slice(1),v.bools))S=x.slice(1),q(S,pe(S));else if(x==="--"){w=r.slice(u+1);break}else if(c["halt-at-non-option"]){w=r.slice(u);break}else B(x)}if(_(y,!0),_(y,!1),X(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(!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((x)=>Bn(x)).join(".")];delete y[u]});function B(u){let x=J("_",u);if(typeof x==="string"||typeof x==="number")y._.push(x)}function A(u,x,M,O){let S,Q=T(x,v.nargs);if(Q=typeof Q!=="number"||isNaN(Q)?1:Q,Q===0){if(!Ee(O))k=Error(I("Argument unexpected for: %s",x));return q(x,pe(x)),u}let oe=Ee(O)?0:1;if(c["nargs-eats-options"]){if(M.length-(u+1)+oe<Q)k=Error(I("Not enough arguments following: %s",x));oe=Q}else{for(S=u+1;S<M.length;S++)if(!M[S].match(/^-[^0-9]/)||M[S].match(C)||ge(M[S]))oe++;else break;if(oe<Q)k=Error(I("Not enough arguments following: %s",x))}let xe=Math.min(oe,Q);if(!Ee(O)&&xe>0)q(x,O),xe--;for(S=u+1;S<xe+u+1;S++)q(x,M[S]);return u+xe}function K(u,x,M,O){let S=[],Q=O||M[u+1],oe=T(x,v.nargs);if(T(x,v.bools)&&!/^(true|false)$/.test(Q))S.push(!0);else if(Ee(Q)||Ee(O)&&/^-/.test(Q)&&!C.test(Q)&&!ge(Q)){if(a[x]!==void 0){let xe=a[x];S=Array.isArray(xe)?xe:[xe]}}else{if(!Ee(O))S.push(U(x,O,!0));for(let xe=u+1;xe<M.length;xe++){if(!c["greedy-arrays"]&&S.length>0||oe&&typeof oe==="number"&&S.length>=oe)break;if(Q=M[xe],/^-/.test(Q)&&!C.test(Q)&&!ge(Q))break;u=xe,S.push(U(x,Q,i))}}if(typeof oe==="number"&&(oe&&S.length<oe||isNaN(oe)&&S.length===0))k=Error(I("Not enough arguments following: %s",x));return q(x,S),u}function q(u,x,M=i){if(/-/.test(u)&&c["camel-case-expansion"]){let Q=u.split(".").map(function(oe){return Bn(oe)}).join(".");H(u,Q)}let O=U(u,x,M),S=u.split(".");if(G(y,S,O),v.aliases[u])v.aliases[u].forEach(function(Q){let oe=Q.split(".");G(y,oe,O)});if(S.length>1&&c["dot-notation"])(v.aliases[S[0]]||[]).forEach(function(Q){let oe=Q.split("."),xe=[].concat(S);if(xe.shift(),oe=oe.concat(xe),!(v.aliases[u]||[]).includes(oe.join(".")))G(y,oe,O)});if(T(u,v.normalize)&&!T(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,M){if(M)x=ju(x);if(T(u,v.bools)||T(u,v.counts)){if(typeof x==="string")x=x==="true"}let O=Array.isArray(x)?x.map(function(S){return J(u,S)}):J(u,x);if(T(u,v.counts)&&(Ee(O)||typeof O==="boolean"))O=ii();if(T(u,v.normalize)&&T(u,v.arrays))if(Array.isArray(x))O=x.map((S)=>{return sn.normalize(S)});else O=sn.normalize(x);return O}function J(u,x){if(!c["parse-positional-numbers"]&&u==="_")return x;if(!T(u,v.strings)&&!T(u,v.bools)&&!Array.isArray(x)){if(io(x)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${x}`)))||!Ee(x)&&T(u,v.numbers))x=Number(x)}return x}function X(u){let x=Object.create(null);E(x,v.aliases,a),Object.keys(v.configs).forEach(function(M){let O=u[M]||x[M];if(O)try{let S=null,Q=sn.resolve(sn.cwd(),O),oe=v.configs[M];if(typeof oe==="function"){try{S=oe(Q)}catch(xe){S=xe}if(S instanceof Error){k=S;return}}else S=sn.require(Q);re(S)}catch(S){if(S.name==="PermissionDenied")k=S;else if(u[M])k=Error(I("Invalid JSON config file: %s",O))}})}function re(u,x){Object.keys(u).forEach(function(M){let O=u[M],S=x?x+"."+M:M;if(typeof O==="object"&&O!==null&&!Array.isArray(O)&&c["dot-notation"])re(O,S);else if(!F(y,S.split("."))||T(S,v.arrays)&&c["combine-arrays"])q(S,O)})}function he(){if(typeof d<"u")d.forEach(function(u){re(u)})}function _(u,x){if(typeof h>"u")return;let M=typeof h==="string"?h:"",O=sn.env();Object.keys(O).forEach(function(S){if(M===""||S.lastIndexOf(M,0)===0){let Q=S.split("__").map(function(oe,xe){if(xe===0)oe=oe.substring(M.length);return Bn(oe)});if((x&&v.configs[Q.join(".")]||!x)&&!F(u,Q))q(Q.join("."),O[S])}})}function me(u){let x,M=new Set;Object.keys(u).forEach(function(O){if(!M.has(O)){if(x=T(O,v.coercions),typeof x==="function")try{let S=J(O,x(u[O]));[].concat(v.aliases[O]||[],O).forEach((Q)=>{M.add(Q),u[Q]=S})}catch(S){k=S}}})}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,M,O=!1){Object.keys(M).forEach(function(S){if(!F(u,S.split("."))){if(G(u,S.split("."),M[S]),O)D[S]=!0;(x[S]||[]).forEach(function(Q){if(F(u,Q.split(".")))return;G(u,Q.split("."),M[S])})}})}function F(u,x){let M=u;if(!c["dot-notation"])x=[x.join(".")];x.slice(0,-1).forEach(function(S){M=M[S]||{}});let O=x[x.length-1];if(typeof M!=="object")return!1;else return O in M}function G(u,x,M){let O=u;if(!c["dot-notation"])x=[x.join(".")];x.slice(0,-1).forEach(function(le){if(le=Us(le),typeof O==="object"&&O[le]===void 0)O[le]={};if(typeof O[le]!=="object"||Array.isArray(O[le])){if(Array.isArray(O[le]))O[le].push({});else O[le]=[O[le],{}];O=O[le][O[le].length-1]}else O=O[le]});let S=Us(x[x.length-1]),Q=T(x.join("."),v.arrays),oe=Array.isArray(M),xe=c["duplicate-arguments-array"];if(!xe&&T(S,v.nargs)){if(xe=!0,!Ee(O[S])&&v.nargs[S]===1||Array.isArray(O[S])&&O[S].length===v.nargs[S])O[S]=void 0}if(M===ii())O[S]=ii(O[S]);else if(Array.isArray(O[S]))if(xe&&Q&&oe)O[S]=c["flatten-duplicate-arrays"]?O[S].concat(M):(Array.isArray(O[S][0])?O[S]:[O[S]]).concat([M]);else if(!xe&&Boolean(Q)===Boolean(oe))O[S]=M;else O[S]=O[S].concat([M]);else if(O[S]===void 0&&Q)O[S]=oe?M:[M];else if(xe&&!(O[S]===void 0||T(S,v.counts)||T(S,v.bools)))O[S]=[O[S],M];else O[S]=M}function j(...u){u.forEach(function(x){Object.keys(x||{}).forEach(function(M){if(v.aliases[M])return;v.aliases[M]=[].concat(s[M]||[]),v.aliases[M].concat(M).forEach(function(O){if(/-/.test(O)&&c["camel-case-expansion"]){let S=Bn(O);if(S!==M&&v.aliases[M].indexOf(S)===-1)v.aliases[M].push(S),b[S]=!0}}),v.aliases[M].concat(M).forEach(function(O){if(O.length>1&&/[A-Z]/.test(O)&&c["camel-case-expansion"]){let S=oo(O,"-");if(S!==M&&v.aliases[M].indexOf(S)===-1)v.aliases[M].push(S),b[S]=!0}}),v.aliases[M].forEach(function(O){v.aliases[O]=[M].concat(v.aliases[M].filter(function(S){return O!==S}))})})})}function T(u,x){let M=[].concat(v.aliases[u]||[],u),O=Object.keys(x),S=M.find((Q)=>O.includes(Q));return S?x[S]:!1}function ee(u){let x=Object.keys(v);return[].concat(x.map((O)=>v[O])).some(function(O){return Array.isArray(O)?O.includes(u):O[u]})}function de(u,...x){return[].concat(...x).some(function(O){let S=u.match(O);return S&&ee(S[1])})}function ne(u){if(u.match(C)||!u.match(/^-[^-]+/))return!1;let x=!0,M,O=u.slice(1).split("");for(let S=0;S<O.length;S++){if(M=u.slice(S+2),!ee(O[S])){x=!1;break}if(O[S+1]&&O[S+1]==="="||M==="-"||/[A-Za-z]/.test(O[S])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(M)||O[S+1]&&O[S+1].match(/\W/))break}return x}function ge(u){return c["unknown-options-as-args"]&&Ce(u)}function Ce(u){if(u=u.replace(/^-{3,}/,"--"),u.match(C))return!1;if(ne(u))return!1;return!de(u,/^-+([^=]+?)=[\s\S]*$/,R,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(u){if(!T(u,v.bools)&&!T(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(T(u,v.strings))x=At.STRING;else if(T(u,v.numbers))x=At.NUMBER;else if(T(u,v.bools))x=At.BOOLEAN;else if(T(u,v.arrays))x=At.ARRAY;return x}function Ee(u){return u===void 0}function W(){Object.keys(v.counts).find((u)=>{if(T(u,v.arrays))return k=Error(I("Invalid configuration: %s, opts.count excludes opts.array.",u)),!0;else if(T(u,v.nargs))return k=Error(I("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({},D),error:k,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 ii(e){return e!==void 0?e+1:1}function Us(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 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 Gu=process?process.env:{},qs=new si({cwd:process.cwd,env:()=>{return Gu},format:Lu,normalize:Vu,resolve:Ku,require:(e)=>{return on(e)}}),Br=function(t,n){return qs.parse(t.slice(),n).argv};Br.detailed=function(e,t){return qs.parse(e.slice(),t)};Br.camelCase=Bn;Br.decamelize=oo;Br.looksLikeNumber=io;var fi=Br;import{basename as rd,dirname as od,extname as id,relative as sd,resolve as tc}from"path";function Xs(){if(Hu())return 0;return 1}function Hu(){return Uu()&&!process.defaultApp}function Uu(){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 Ju,statSync as zu,writeFile as qu}from"fs";import{format as Xu}from"util";import{resolve as Yu}from"path";var Zs={fs:{readFileSync:Ju,writeFile:qu},format:Xu,resolve:Yu,exists:(e)=>{try{return zu(e).isFile()}catch(t){return!1}}};var Jt;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 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 _s(e,t){Jt=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 Zu=(e)=>{return _s(e,Zs)},ec=Zu;var cd="require is not supported by ESM",nc="loading a directory of commands is not supported yet for ESM",Nr;try{Nr=nd(import.meta.url)}catch(e){Nr=process.cwd()}var ad=Nr.substring(0,Nr.lastIndexOf("node_modules")),di={assert:{notStrictEqual:Qu,strictEqual:_u},cliui:ri,findUp:oi,getEnv:(e)=>{return process.env[e]},inspect:ed,getCallerFile:()=>{throw new Ke(nc)},getProcessArgvBin:Ys,mainFilename:ad||process.cwd(),Parser:fi,path:{basename:rd,dirname:od,extname:id,relative:sd,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:td,require:()=>{throw new Ke(cd)},requireDirectory:()=>{throw new Ke(nc)},stringWidth:(e)=>{return[...e].length},y18n:ec({directory:tc(Nr,"../../../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 ld=["first","second","third","fourth","fifth","sixth"];function we(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(),D=rc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)oc(D,m.cmd,i);i+=1}),s.optional.forEach((m)=>{if(d.length===0)return;let b=d.shift(),D=rc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)oc(D,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 ${ld[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(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 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=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 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(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(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(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=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 ud(e){return e.every((t)=>typeof t==="string")}function so(e){return typeof e==="function"}function dd(e){return typeof e==="object"}function hd(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 md(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,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())$n(!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 I=[];r.epilog=(U)=>{I.push(U)};let v=!1,C;r.wrap=(U)=>{v=!0,C=U},r.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!v)C=K(),v=!0;return C};let R="__yargsString__:";r.deferY18nLookup=(U)=>R+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(),Re=[];Re=Re.concat(Object.keys(D)),Re=Re.concat(Object.keys(X)),Re=Re.concat(Object.keys(re)),Re=Re.concat(Object.keys(me.default)),Re=Re.filter(B),Re=Object.keys(Re.reduce((ne,ge)=>{if(ge!=="_")ne[ge]=!0;return ne},{}));let E=r.getWrap(),F=t.cliui({width:E,wrap:!!E});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")}>
|
|
167
|
-
`;else
|
|
168
|
-
`;
|
|
169
|
-
`);
|
|
170
|
-
`)}return
|
|
150
|
+
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function Gg(e){switch(e){case"bash":return Vg();case"zsh":return Hg();case"fish":return Kg()}}var Ug,Tg;var Gf=ge(()=>{Ug={command:"shell-init [shell]",describe:"Print shell integration code for copse switch",builder:(e)=>e.positional("shell",{type:"string",choices:["bash","zsh","fish"],describe:"Shell to generate integration for (auto-detected if omitted)"}).option("completions",{type:"string",describe:"Generate shell completions (bash, zsh, fish)",coerce:(t)=>t===!0?void 0:t}),handler:async(e)=>{let t="completions"in e,n=e.shell,o=e.completions,i=n??o??Bg(process.env.SHELL);if(t){let s=i==="fish"?Hf():Vf(),c=Gg(i);console.log(s+`
|
|
151
|
+
`+c),process.exit(0)}if(i==="fish")console.log(Hf()),process.exit(0);console.log(Vf()),process.exit(0)}},Tg=Ug});var Tf={};Ne(Tf,{default:()=>zg});import{resolve as ei}from"path";function Uf(e,t){if(e.length<=t)return e;return e.slice(0,t-3)+"..."}var Jg,zg;var Jf=ge(()=>{Ke();Ut();qe();nn();bt();Jg={command:"status",aliases:["st"],describe:"Show status overview of all worktrees",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("all",{type:"boolean",alias:"a",describe:"Show worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let a=Ae(),u=await Ue(),h=En(a),m=new Set([ei(u)]),p=[u];for(let w of h){let A=ei(w);if(!m.has(A))m.add(A),p.push(w)}t=await se.listAll(p)}else t=await se.list();if(t.length===0)console.log("No worktrees found."),process.exit(0);let n=await Promise.all(t.map(async(a)=>{let[u,h,m,p]=await Promise.all([a.branch?se.getAheadBehind(a.branch,a.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(a.path),se.getDirtyCount(a.path),Promise.resolve(Jt(a.path))]);return{...a,aheadBehind:u,lastCommit:h,dirtyCount:m,focus:p}}));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);let o=ei(process.cwd()),i=e.all&&new Set(n.map((a)=>a.repoName)).size>1,s=n.map((a)=>{let h=(ei(a.path)===o?"* ":" ")+(a.branch??"(detached)"),m;if(a.isLocked)m="locked";else if(a.dirtyCount>0)m=`${a.dirtyCount} dirty`;else m="clean";let p=[];if(a.aheadBehind.ahead>0)p.push(`+${a.aheadBehind.ahead}`);if(a.aheadBehind.behind>0)p.push(`-${a.aheadBehind.behind}`);let w=p.length>0?p.join(" "):"=",A=a.lastCommit?`${a.lastCommit.relativeDate} ${Uf(a.lastCommit.message,30)}`:"\u2014",W=a.focus&&a.focus.length>0?Uf(a.focus.join(", "),30):"\u2014";return{repo:a.repoName,branch:h,dirty:m,sync:w,lastCommit:A,focus:W}}),c={branch:Math.max(6,...s.map((a)=>a.branch.length)),dirty:Math.max(6,...s.map((a)=>a.dirty.length)),sync:Math.max(4,...s.map((a)=>a.sync.length)),lastCommit:Math.max(11,...s.map((a)=>a.lastCommit.length)),focus:Math.max(5,...s.map((a)=>a.focus.length)),repo:Math.max(4,...s.map((a)=>a.repo.length))};if(i){let a=`${"Repo".padEnd(c.repo)} ${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.repo)} ${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let h of s)console.log(`${h.repo.padEnd(c.repo)} ${h.branch.padEnd(c.branch)} ${h.dirty.padEnd(c.dirty)} ${h.sync.padEnd(c.sync)} ${h.lastCommit.padEnd(c.lastCommit)} ${h.focus.padEnd(c.focus)}`)}else{let a=`${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let h of s)console.log(`${h.branch.padEnd(c.branch)} ${h.dirty.padEnd(c.dirty)} ${h.sync.padEnd(c.sync)} ${h.lastCommit.padEnd(c.lastCommit)} ${h.focus.padEnd(c.focus)}`)}process.exit(0)}catch(t){if(t instanceof xt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}};zg=Jg});var Xf={};Ne(Xf,{default:()=>Yg});import{existsSync as zf}from"fs";function qg(e){if(e)return e;let t=process.env.VISUAL||process.env.EDITOR;if(t)return t;for(let n of qf)try{if(Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return n}catch{continue}return null}var qf,Xg,Yg;var Yf=ge(()=>{Ke();nn();bt();qf=["code","cursor","vim","nvim","emacs","nano","subl","zed","idea","webstorm"];Xg={command:"open [branch-or-path]",describe:"Open a worktree in your editor/IDE",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path (defaults to current worktree)"}).option("editor",{type:"string",alias:"e",describe:"Editor command to use (overrides $VISUAL/$EDITOR)"}).option("focus",{type:"string",alias:"f",describe:"Open a specific focus path (must match an existing focus entry)"}).option("root",{type:"boolean",describe:"Force opening the worktree root, ignoring focus paths",default:!1}).option("list-editors",{type:"boolean",describe:"List detected editors"}),handler:async(e)=>{if(e["list-editors"]){let t=process.env.VISUAL||process.env.EDITOR;if(t)console.log(`$VISUAL/$EDITOR: ${t}`);for(let n of qf)try{let o=Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"});if(o.exitCode===0){let i=new TextDecoder().decode(o.stdout).trim();console.log(` ${n}: ${i}`)}}catch{}process.exit(0)}try{let t=e["branch-or-path"],n=e.focus,o=Boolean(e.root),i;if(!t)i=process.cwd();else{let m=await Ue(),p=await se.list(m);i=Xt(p,t).path}if(!zf(i))console.error(`Error: worktree path does not exist: ${i}`),process.exit(1);let s;try{s=Kr(i,{explicitFocus:n,forceRoot:o})}catch(m){if(m instanceof Hr)console.error(`Error: ${m.message}`),process.exit(1);throw m}let c;if(s.kind==="multiple")console.error(`Error: worktree has multiple focus paths set: ${s.focusPaths.join(", ")}`),console.error("Use --focus <path> to pick one, or --root to open the worktree root."),process.exit(1);if(c=s.path,!zf(c)){if(console.error(`Error: target path does not exist: ${c}`),s.kind==="single")console.error("The focus path may have been deleted. Try --root to open the worktree root.");process.exit(1)}let a=qg(e.editor);if(!a)console.error("Error: no editor detected."),console.error("Set $VISUAL or $EDITOR, or use --editor <command>."),console.error("Detected editors can be listed with: copse open --list-editors"),process.exit(1);let u=s.kind==="single"?` [focus: ${s.focus}]`:"";console.log(`Opening ${c} with ${a}${u}...`),await Bun.spawn([a,c],{stdout:"inherit",stderr:"inherit",stdin:"inherit"}).exited,process.exit(0)}catch(t){et(t)}}},Yg=Xg});var Qf={};Ne(Qf,{default:()=>Qg});import{resolve as Zf}from"path";var Zg,Qg;var Nf=ge(()=>{Ke();qe();bt();Zg={command:"exec <command>",describe:"Run a command in each worktree",builder:(e)=>e.positional("command",{type:"string",describe:"Shell command to execute",demandOption:!0}).option("all",{type:"boolean",alias:"a",describe:"Run across all configured repos"}).option("dirty",{type:"boolean",describe:"Only run in dirty worktrees"}).option("clean",{type:"boolean",describe:"Only run in clean worktrees"}).option("behind",{type:"boolean",describe:"Only run in worktrees behind upstream"}).option("parallel",{type:"boolean",alias:"p",describe:"Run commands in parallel (default: sequential)"}).option("json",{type:"boolean",alias:"j",describe:"Output results as JSON"}),handler:async(e)=>{let t=e.command,n=!!e.parallel,o=!!e.json;try{let i;if(e.all){let h=Ae(),m=await Ue(),p=En(h),w=new Set([Zf(m)]),A=[m];for(let W of p){let y=Zf(W);if(!w.has(y))w.add(y),A.push(W)}i=await se.listAll(A)}else i=await se.list();let s=i.filter((h)=>!h.isMain);if(e.dirty)s=s.filter((h)=>h.isDirty);if(e.clean)s=s.filter((h)=>!h.isDirty);if(e.behind)s=(await Qt(s,10,async(m)=>{if(!m.branch)return{wt:m,behind:!1};let p=await se.getAheadBehind(m.branch,m.path);return{wt:m,behind:p.behind>0}})).filter((m)=>m.behind).map((m)=>m.wt);if(s.length===0)console.log("No matching worktrees found."),process.exit(0);if(!o)console.log(`Running '${t}' in ${s.length} worktree(s)...
|
|
152
|
+
`);let c=async(h)=>{let m=Bun.spawn(["sh","-c",t],{cwd:h.path,stdout:"pipe",stderr:"pipe",env:{...Bun.env,COPSE_BRANCH:h.branch??"",COPSE_WORKTREE_PATH:h.path,COPSE_REPO_PATH:h.repoPath}}),[p,w,A]=await Promise.all([new Response(m.stdout).text(),new Response(m.stderr).text(),m.exited]);return{branch:h.branch??"(detached)",path:h.path,exitCode:A,stdout:p.trim(),stderr:w.trim()}},a;if(n)a=await Qt(s,10,c);else{a=[];for(let h of s)a.push(await c(h))}if(o)console.log(JSON.stringify(a,null,2));else{for(let p of a){let w=p.exitCode===0?"\u2713":"\u2717";if(console.log(`${w} ${p.branch} (exit ${p.exitCode})`),p.stdout)for(let A of p.stdout.split(`
|
|
153
|
+
`))console.log(` ${A}`);if(p.stderr)for(let A of p.stderr.split(`
|
|
154
|
+
`))console.log(` ${A}`);console.log()}let h=a.filter((p)=>p.exitCode===0).length,m=a.length-h;console.log(`Done: ${h} passed, ${m} failed`)}let u=a.some((h)=>h.exitCode!==0);process.exit(u?1:0)}catch(i){et(i)}}},Qg=Zg});var $f={};Ne($f,{default:()=>$g});var Ng,$g;var _f=ge(()=>{Ke();bt();Ng={command:"diff <ref1> [ref2]",describe:"Show diff between two worktrees or branches",builder:(e)=>e.positional("ref1",{type:"string",describe:"First worktree branch or ref",demandOption:!0}).positional("ref2",{type:"string",describe:"Second worktree branch or ref (default: current HEAD)"}).option("stat",{type:"boolean",alias:"s",describe:"Show diffstat summary only"}).option("name-only",{type:"boolean",alias:"n",describe:"Show only names of changed files"}),handler:async(e)=>{let t=e.ref1,n=e.ref2??"HEAD",o=!!e.stat,i=!!e["name-only"];try{let s=await Ue(),c=await se.list(s),a=(p)=>{return c.find((A)=>A.branch===p)?.branch??p},u=a(t),h=a(n),m=await se.diffBetween(u,h,{stat:o,nameOnly:i},s);if(!m)console.log(`No differences between ${t} and ${n==="HEAD"?"current HEAD":n}`);else console.log(m);process.exit(0)}catch(s){et(s)}}},$g=Ng});var eu={};Ne(eu,{default:()=>eb});var _g,eb;var tu=ge(()=>{Ke();Mo();bt();_g={command:"pin [branch]",aliases:["unpin"],describe:"Pin or unpin a worktree",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).option("reason",{type:"string",describe:"Reason for pinning"}).option("list",{type:"boolean",describe:"List pinned worktrees"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("unpin",{type:"boolean",describe:"Unpin instead of pinning"}),handler:async(e)=>{try{let t=e,n=await se.list();if(e.list){let a=Ds(n).map((w)=>({...w,pin:rr(w.path)}));if(e.json)console.log(JSON.stringify(a,null,2)),process.exit(0);if(a.length===0)console.log("No pinned worktrees found."),process.exit(0);let u=Math.max(6,...a.map((w)=>(w.branch??"(detached)").length)),h=Math.max(4,...a.map((w)=>w.path.length)),m=Math.max(6,...a.map((w)=>(w.pin?.reason??"\u2014").length)),p=Math.max(9,...a.map((w)=>(w.pin?.pinnedAt??"\u2014").length));console.log(`${"Branch".padEnd(u)} ${"Path".padEnd(h)} ${"Reason".padEnd(m)} ${"Pinned At".padEnd(p)}`),console.log(`${"-".repeat(u)} ${"-".repeat(h)} ${"-".repeat(m)} ${"-".repeat(p)}`);for(let w of a)console.log(`${(w.branch??"(detached)").padEnd(u)} ${w.path.padEnd(h)} ${(w.pin?.reason??"\u2014").padEnd(m)} ${(w.pin?.pinnedAt??"\u2014").padEnd(p)}`);process.exit(0)}let o=e._[0]==="unpin"||!!e.unpin,i=typeof t.branch==="string"?t.branch:typeof e._[1]==="string"?e._[1]:void 0;if(!i)console.error("Error: branch is required"),process.exit(1);let s=n.find((a)=>a.branch===i);if(!s)console.error(`Error: no worktree found for '${i}'`),process.exit(1);if(o){if(!rr(s.path))console.warn(`Warning: worktree is not pinned: ${s.path}`),process.exit(0);Fs(s.path),console.log(`Unpinned worktree: ${s.path}`),process.exit(0)}if(rr(s.path))console.warn(`Warning: worktree is already pinned: ${s.path}`),process.exit(0);let c=typeof t.reason==="string"?t.reason:void 0;Es(s.path,c),console.log(`Pinned worktree: ${s.path}`),process.exit(0)}catch(t){et(t)}}},eb=_g});var nu={};Ne(nu,{default:()=>ob});function tb(e){let t={create:"\x1B[32m",delete:"\x1B[31m",switch:"\x1B[34m",rename:"\x1B[33m",archive:"\x1B[35m",import:"\x1B[36m",reset:"\x1B[0m"};return`${t[e]??t.reset}${e}${t.reset}`}var nb,ob;var ou=ge(()=>{Ln();bt();nb={command:"log",aliases:["logs"],describe:"Show worktree activity log",builder:(e)=>e.option("limit",{type:"number",default:20,describe:"Show the last N entries"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("clear",{type:"boolean",describe:"Clear the activity log"}),handler:async(e)=>{try{let t=await Ue();if(e.clear){if(!await Bn("Clear activity log? [y/N] "))console.log("Cancelled."),process.exit(0);Ml(t),console.log("Activity log cleared."),process.exit(0)}let n=typeof e.limit==="number"?e.limit:20,o=Dl(t,{limit:n});if(e.json)console.log(JSON.stringify(o,null,2)),process.exit(0);for(let i of o){let s=tb(i.event),c=i.branch??"(unknown)",a=i.details?Object.entries(i.details).map(([u,h])=>`${u}=${h}`).join(" "):"";console.log(`[${i.timestamp}] ${s} ${c}${a?` (${a})`:""}`)}process.exit(0)}catch(t){et(t)}}},ob=nb});import{existsSync as su,mkdirSync as rb,readFileSync as cu,writeFileSync as ru}from"fs";import{homedir as ib}from"os";import{basename as sb,join as ti}from"path";function cb(e){let t=er(e),n=ti(t,"HEAD");if(!su(n))return null;let i=cu(n,"utf-8").trim().match(/^ref:\s+(.+)$/);if(!i)return null;return i[1]?.replace(/^refs\/heads\//,"")??null}async function iu(e,t){return se.exec(e,t)}function au(){let e=Bun.env.HOME??ib();return ti(e,".copse","archives")}async function lu(e,t){let n=sb(t),o=await se.getBranchForWorktree(e)??cb(e)??"detached-head",i=o.replaceAll("/","-"),s=new Date().toISOString(),c=s.replaceAll(":","-"),a=ti(au(),n);rb(a,{recursive:!0});let u=ti(a,`${i}-${c}`),h=`${u}.patch`,m=`${u}.json`;try{let[p,w,A]=await Promise.all([iu(["diff"],e),iu(["format-patch","-5","HEAD","--stdout"],e),se.getLastCommit(e)]),W=["# COP archive",`# repo: ${n}`,`# branch: ${o}`,`# archivedAt: ${s}`,"","# Uncommitted diff",p||"# (no uncommitted changes)","","# Recent commits (git format-patch -5 HEAD --stdout)",w||"# (no recent commits)"].join(`
|
|
155
|
+
`);ru(h,W,"utf-8");let y={branch:o,repo:n,archivedAt:s,patchPath:h,commitHash:A?.hash??"",message:A?.message??""};return ru(m,JSON.stringify(y,null,2),"utf-8"),y}catch(p){let w=p instanceof Error?p.message:"Unknown archive error";throw new as(`Failed to archive worktree: ${w}`,o,"archive_failed")}}async function fu(e){let t=au();if(!su(t))return[];let n=e?`${e}/*.json`:"**/*.json",o=new Bun.Glob(n),i=[];for await(let s of o.scan({cwd:t,absolute:!0}))try{let c=cu(s,"utf-8");i.push(JSON.parse(c))}catch{}return i.sort((s,c)=>{let a=Date.parse(s.archivedAt);return Date.parse(c.archivedAt)-a})}var uu=ge(()=>{Ke();Ut();Pn()});var du={};Ne(du,{default:()=>fb});import{basename as ab}from"path";var lb,fb;var hu=ge(()=>{Ke();Ln();uu();qe();oo();bt();lb={command:"archive [branch]",describe:"Archive worktree changes and optionally remove",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name or worktree path"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}).option("keep",{type:"boolean",describe:"Archive without removing the worktree"}).option("list",{type:"boolean",describe:"List all archives"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON (with --list)"}),handler:async(e)=>{let t=e.branch,n=!!e.yes,o=!!e.keep,i=!!e.list,s=!!e.json;try{if(i){let p=await fu();if(s)console.log(JSON.stringify(p,null,2));else if(p.length===0)console.log("No archives found.");else{console.log(`Archives:
|
|
156
|
+
`);for(let w of p){let A=new Date(w.archivedAt).toLocaleString();console.log(` ${w.repo}/${w.branch}`),console.log(` Date: ${A}`),console.log(` Commit: ${w.commitHash.slice(0,8)} ${w.message}`),console.log(` Patch: ${w.patchPath}`),console.log()}}process.exit(0)}if(!t)console.error("Error: branch name is required (or use --list to view archives)"),process.exit(1);let c=await Ue(),a=await se.list(c),u=Xt(a,t);if(u.isMain)console.error("Error: cannot archive the main worktree"),process.exit(1);let h=o?"Archive":"Archive and remove";if(!n){if(!await Bn(`${h} worktree '${u.branch??ab(u.path)}'? [y/N] `))console.log("Cancelled."),process.exit(0)}let m=await lu(u.path,c);console.log(`Archived: ${m.patchPath}`);try{qt(c,{timestamp:new Date().toISOString(),event:"archive",branch:m.branch,path:m.patchPath})}catch{}if(!o){let p=Ae(),w=Ht(p,c);if(w.postRemove.length>0)console.log("Running postRemove hooks..."),await rn(w.postRemove,{cwd:u.path,env:{COPSE_BRANCH:u.branch??"",COPSE_WORKTREE_PATH:u.path,COPSE_REPO_PATH:c},onOutput:(A)=>console.log(` ${A}`)}).catch((A)=>console.warn(`Warning: postRemove hook failed: ${A.message}`));await se.remove(u.path,{force:!1},c),dt(),console.log(`Removed worktree: ${u.path}`)}process.exit(0)}catch(c){et(c)}}},fb=lb});var mu={};Ne(mu,{default:()=>pb});import{dirname as ub,basename as db,join as hb}from"path";var mb,pb;var pu=ge(()=>{Ke();Ln();bt();mb={command:"rename <old> <new>",describe:"Rename worktree branch",builder:(e)=>e.positional("old",{type:"string",demandOption:!0,describe:"Current branch name"}).positional("new",{type:"string",demandOption:!0,describe:"New branch name"}).option("move-path",{type:"boolean",describe:"Also rename the worktree directory path"}),handler:async(e)=>{let{old:t,new:n}=e,o=!!e["move-path"];try{let i=await Ue(),s=await se.list(i),c=Xt(s,t);if(c.isMain)console.error("Error: cannot rename the main worktree branch"),process.exit(1);if(s.find((u)=>u.branch===n))console.error(`Error: branch '${n}' already exists`),process.exit(1);if(await se.exec(["branch","-m",t,n],i),dt(),o){let u=n.replace(/\//g,"-"),h=ub(c.path),m=db(c.path),p=t.replace(/\//g,"-"),w=m.replace(p,u),A=hb(h,w);if(A!==c.path)await se.move(c.path,A,i),dt(),console.log(`Moved worktree: ${c.path} \u2192 ${A}`)}console.log(`Renamed branch: ${t} \u2192 ${n}`);try{qt(i,{timestamp:new Date().toISOString(),event:"rename",branch:n,details:{oldBranch:t}})}catch{}process.exit(0)}catch(i){et(i)}}},pb=mb});var gu={};Ne(gu,{default:()=>xb});import{basename as gb,resolve as bb}from"path";var wb,xb;var bu=ge(()=>{Ke();Ut();qe();oo();wb={command:"clone <url> [path]",describe:"Clone a repository and initialize copse config",builder:(e)=>e.positional("url",{type:"string",describe:"Repository URL to clone",demandOption:!0}).positional("path",{type:"string",describe:"Target directory path"}).option("template",{type:"string",alias:"t",describe:"Apply a named template after cloning"}).option("init-config",{type:"boolean",describe:"Initialize copse config after cloning",default:!0}),handler:async(e)=>{let{url:t,template:n}=e,o=e["init-config"],i=e.path;if(!i)try{let s=new URL(t);i=gb(s.pathname).replace(/\.git$/,"")}catch{i=(t.split("/").pop()??t.split(":").pop()??t).replace(/\.git$/,"")}if(!i)console.error("Error: could not determine target directory from URL"),process.exit(1);console.log(`Cloning ${t}...`);try{await se.exec(["clone",t,i])}catch(s){if(s instanceof xt)console.error(`Error: ${s.stderr||s.message}`);else console.error(`Error: ${s.message}`);process.exit(1)}if(o)try{let s=Kt();console.log(` \u2713 Config initialized: ${s}`)}catch(s){console.warn(` \u26A0 Could not initialize config: ${s.message}`)}if(n)try{let s=Ae(),c=Sr(s,n);if(!c){let m=Object.keys(s.templates??{});if(console.error(`Error: template '${n}' not found.`),m.length>0)console.error(`Available templates: ${m.join(", ")}`);else console.error("No templates configured. Add templates to your config file.");process.exit(1)}console.log(` Using template '${n}'`);let a=bb(i),u=Ht(s,a),h=Cr(u,c);if(h.postCreate.length>0)console.log(" Running postCreate hooks..."),await rn(h.postCreate,{cwd:a,env:{COPSE_REPO_PATH:a},onOutput:(m)=>console.log(` ${m}`)}),console.log(" \u2713 Hooks completed");console.log(` \u2713 Template '${n}' applied`)}catch(s){if(s instanceof Oo)console.error(`Error: hook timed out: ${s.command}`);else if(s instanceof Ro){if(console.error(`Error: hook failed (exit ${s.exitCode}): ${s.command}`),s.stderr)console.error(s.stderr)}else console.error(`Error applying template: ${s.message}`);process.exit(1)}console.log(`
|
|
157
|
+
Cloned: ${t} \u2192 ${i}`),process.exit(0)}},xb=wb});import{existsSync as wu,readFileSync as xu,statSync as ni}from"fs";import{basename as yb,join as oi,resolve as Po}from"path";async function js(e,t){return se.exec(e,t)}function Sb(e){let t=oi(e,"HEAD");if(!wu(t))return null;let o=xu(t,"utf-8").trim().match(/^ref:\s+refs\/heads\/(.+)$/);return o?o[1]:null}function yu(e){let t=Po(e),n=oi(t,".git");if(!ni(n,{throwIfNoEntry:!1}))throw Error(`Missing .git at ${n}`);return er(t)}function Ls(e){let t=Po(e),n=ni(t,{throwIfNoEntry:!1});if(!n)return{valid:!1,reason:`Path does not exist: ${t}`};if(!n.isDirectory())return{valid:!1,reason:`Path is not a directory: ${t}`};let o=oi(t,".git"),i=ni(o,{throwIfNoEntry:!1});if(!i)return{valid:!1,reason:`Target is missing .git: ${t}`};if(i.isDirectory())return{valid:!1,reason:`Target is not a linked git worktree (.git is a directory): ${t}`};if(!i.isFile())return{valid:!1,reason:`Target has invalid .git entry: ${t}`};let s="";try{s=yu(t)}catch{return{valid:!1,reason:`Cannot resolve gitdir from .git file: ${t}`}}if(!ni(s,{throwIfNoEntry:!1})?.isDirectory())return{valid:!1,reason:`Resolved gitdir does not exist: ${s}`};let a=Sb(s);if(!a)return{valid:!1,reason:`Cannot resolve branch name from HEAD: ${t}`};return{valid:!0,branch:a}}async function Su(e,t){let n=Po(e),o=Ls(n);if(!o.valid)throw new _o(`Cannot import worktree: ${o.reason??"invalid target"}`,n,o.reason??"invalid target");let[i,s,c]=await Promise.all([js(["rev-parse","HEAD"],n),js(["status","--porcelain"],n),js(["rev-parse","--git-common-dir"],n)]),a=Po(n,c),u=a.endsWith("/.git")||a.endsWith("\\.git")?a.slice(0,-5):a,h=yb(u),m=Po(n)===Po(u),p=yu(n),w=oi(p,"locked"),A=wu(w),W=A?xu(w,"utf-8").trim()||void 0:void 0;if(t?.focus&&t.focus.length>0)Vr(n,t.focus);if(t?.pin)try{(await Promise.resolve().then(() => (Mo(),_l))).writePin(n)}catch(y){console.warn(`Warning: failed to pin worktree: ${y.message}`)}return{path:n,branch:o.branch??null,head:i,isMain:m,isDirty:s.length>0,isLocked:A,lockReason:W,repoName:h,repoPath:u}}var Cu=ge(()=>{Ke();nn();Ut();Pn()});var Ru={};Ne(Ru,{default:()=>Ob});import{resolve as Cb}from"path";var Rb,Ob;var Ou=ge(()=>{Cu();Ke();Ln();Ut();bt();Rb={command:"import <path>",describe:"Adopt a worktree with copse metadata",builder:(e)=>e.positional("path",{type:"string",describe:"Existing worktree directory path",demandOption:!0}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("pin",{type:"boolean",describe:"Pin the worktree"}),handler:async(e)=>{let t=Cb(e.path),n=Ls(t);if(!n.valid)console.error(`Error: ${n.reason??"invalid import target"}`),process.exit(1);let i=e.focus?.flatMap((c)=>c.split(/[,\s]+/)).map((c)=>c.trim()).filter(Boolean)??[],s=!!e.pin;try{let c=await Su(t,{focus:i,pin:s});dt();let a=c.branch??n.branch??"unknown",u=c.repoPath??await Ue();console.log(`Imported worktree: ${a} at ${c.path}`);try{qt(u,{timestamp:new Date().toISOString(),event:"import",branch:c.branch??n.branch??"unknown",path:c.path})}catch{}if(i.length>0)console.log(` Focus: ${i.join(", ")}`);if(s)console.log(" Pinned");process.exit(0)}catch(c){if(c instanceof _o)console.error(`Error: ${c.reason}`);else console.error(`Error: ${c.message}`);process.exit(1)}}},Ob=Rb});var vu={};Ne(vu,{default:()=>Fb});import{basename as ri}from"path";async function kb(e,t,n){let[o,i]=await Promise.all([gs(t),se.list(e)]);if(n){let s=o.map((c)=>{let a=i.find((h)=>{let m=h.branch??ri(h.path);return An(m,t)===c.name}),u=a?zt(a.path):null;return{...c,branch:a?.branch??null,worktreePath:a?.path??null,layout:u?.layout??null}});console.log(JSON.stringify(s,null,2));return}if(o.length===0){console.log("No active copse sessions.");return}console.log(`Active sessions (${o.length}):
|
|
158
|
+
`);for(let s of o){let c=i.find((p)=>{let w=p.branch??ri(p.path);return An(w,t)===s.name}),a=c?zt(c.path):null,u=s.attached?" (attached)":"",h=a?.layout?` [${a.layout}]`:"",m=c?.branch?` ${c.branch}`:"";console.log(` ${s.name}${m} ${s.windows} windows${h}${u}`)}}async function Eb(e,t){let[n,o]=await Promise.all([gs(t),se.list(e)]);if(n.length===0){console.log("No active copse sessions.");return}let i=0;for(let s of n){let c=o.find((a)=>{let u=zt(a.path),h=a.branch??ri(a.path);return u?.name===s.name||An(h,t)===s.name});if(await ps(s.name),c)hs(c.path);i++,console.log(` \u2713 Killed ${s.name}`)}console.log(`
|
|
159
|
+
Killed ${i} session${i!==1?"s":""}.`)}var vb,Fb;var ku=ge(()=>{Ke();qe();Wn();bt();vb={command:"session [branch-or-path]",aliases:["ss"],describe:"Manage tmux sessions for worktrees",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path to open session for"}).option("list",{type:"boolean",alias:"l",describe:"List active copse tmux sessions"}).option("kill",{type:"boolean",alias:"k",describe:"Kill the session for the specified worktree"}).option("kill-all",{type:"boolean",describe:"Kill all copse tmux sessions"}).option("layout",{type:"string",describe:"Use a named layout from config"}).option("json",{type:"boolean",alias:"j",describe:"Output in JSON format"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.list,o=!!e.kill,i=!!e["kill-all"],s=e.layout,c=!!e.json;if(!await yo())console.error("Error: tmux is not installed or not in PATH."),console.error("Install tmux to use session management."),process.exit(1);try{let a=await Ue(),u=Ae(),h=Fn(u);if(n)await kb(a,h.prefix,c),process.exit(0);if(i)await Eb(a,h.prefix),process.exit(0);if(!t)console.error("Error: specify a branch or worktree path, or use --list."),process.exit(1);let m=await se.list(a),p=Xt(m,t),w=p.branch??ri(p.path);if(o){if(await Tr(w,p.path,h.prefix))console.log(`Killed session for '${w}'`);else console.log(`No active session for '${w}'`);process.exit(0)}let A=Rr(u,s),W=await Ur(w,p.path,{layout:A,prefix:h.prefix,attach:!0,layoutName:s??h.defaultLayout});console.log(`Session: ${W}`),process.exit(0)}catch(a){et(a)}}};Fb=vb});import{existsSync as Is,mkdirSync as Eu,writeFileSync as Fu}from"fs";import{dirname as Du,join as Ao}from"path";function Db(e){let t=process.env.HOME||process.env.USERPROFILE||"~";switch(e){case"claude-code":return Ao(t,".claude","skills","copse");case"codex":return Ao(t,".agents","skills","copse");case"opencode":return Ao(t,".config","opencode","skill","copse")}}function Mb(e){return Ao(Db(e),"SKILL.md")}function Wb(e){return["| Flag | Type | Alias | Description |","|------|------|-------|-------------|",...e.length>0?e.map((n)=>`| ${n.flag} | ${n.type} | ${n.alias} | ${n.description} |`):["| - | - | - | No options |"]].join(`
|
|
160
|
+
`)}function jb(){let e=Ab.map((n)=>`| \`${n.command}\` | ${n.aliases} | ${n.description} |`),t=Mu.map((n)=>`- [\`copse ${n.command}\`](references/${n.command}.md)`);return["---","name: copse",`description: ${Pb}`,"metadata:"," author: getsolaris",' version: "1.0.0"',"---","","# copse (copse)","","## Quick Start","","### Create a feature worktree","","```bash","copse add feature/my-feature --base main","```","","### List and check status","","```bash","copse list","copse status","```","","### Clean up merged worktrees","","```bash","copse clean --dry-run","copse clean --yes","```","","### Run commands across worktrees","","```bash",'copse exec "bun test" --parallel',"```","","### Review a GitHub PR","","```bash","copse add pr-review --pr 42","copse open pr-review","```","","### Use templates","","```bash","# Create worktree with predefined template (hooks, base branch, settings)","copse add feature/new --template frontend","```","","### Tmux session management","","```bash","# Create worktree with tmux session","copse add feature/api --session --layout dev","","# List active sessions","copse session --list","","# Attach to existing session","copse session feature/api","```","","### Shell integration setup","","```bash","# Add to ~/.zshrc or ~/.bashrc",'eval "$(copse shell-init)"',"","# Then switch worktrees with cd","copse switch feature/auth","```","","## Command Overview","","| Command | Aliases | Description |","|---------|---------|-------------|",...e,"","## Monorepo Workflows","","Use focus paths to target packages and trigger matching monorepo hooks.","","```bash","copse add feature/web-auth --focus apps/web,apps/api","copse import /path/to/worktree --focus packages/core --pin","copse list --json","```","","Focus accepts comma-separated values, space-separated values, or repeated --focus flags.","","## Configuration","","- Config path: `~/.config/copse/config.json`","- Use `--json` output flags for scripting and automation","- Environment variables in `copse exec`: `COPSE_BRANCH`, `COPSE_WORKTREE_PATH`, `COPSE_REPO_PATH`","","## Command Reference","","For detailed options and examples for each command:","",...t,"- [`Configuration Schema`](references/config-schema.md)",""].join(`
|
|
161
|
+
`)}function Lb(){let e=new Map;for(let n of Mu){let o=[`# copse ${n.command}`,"",n.summary,"","## Synopsis","","```",n.synopsis,"```","","## Options","",Wb(n.options),"","## Examples","","```bash",`# ${n.examples[0][0]}`,n.examples[0][1],"",`# ${n.examples[1][0]}`,n.examples[1][1],"```","","## Notes","",...n.notes.map((i)=>`- ${i}`),"",...n.configKeys.length>0?["## Configuration","","Related config keys in `~/.config/copse/config.json`:","",...n.configKeys.map((i)=>`- ${i}`),""]:[]];e.set(`${n.command}.md`,o.join(`
|
|
162
|
+
`))}let t=Ib();return e.set("config-schema.md",t),e}function Ib(){return["# Configuration Schema","","Config file path: `~/.config/copse/config.json`","","## Minimal Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env", ".env.local"],',' "linkFiles": ["node_modules"],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true'," }","}","```","","## Full Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env"],',' "linkFiles": [],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true,',' "sharedDeps": {',' "strategy": "symlink",',' "paths": ["node_modules"]'," }"," },",' "repos": ['," {",' "path": "/path/to/repo",',' "copyFiles": [".env", ".env.local"],',' "monorepo": {',' "autoDetect": true,',' "hooks": ['," {",' "glob": "apps/*",',' "postCreate": ["bun install"]'," }"," ]"," }"," }"," ],",' "templates": {',' "frontend": {',' "base": "main",',' "copyFiles": [".env"],',' "postCreate": ["bun install", "bun run build"]'," },",' "review": {',' "base": "main",',' "postCreate": ["bun install"]'," }"," },",' "sessions": {',' "enabled": true,',' "autoCreate": false,',' "autoKill": true,',' "prefix": "copse",',' "defaultLayout": "dev",',' "layouts": {',' "dev": {',' "windows": [',' { "name": "editor", "command": "nvim ." },',' { "name": "server", "command": "bun run dev" },',' { "name": "shell" }'," ]"," }"," }"," },",' "lifecycle": {',' "autoCleanMerged": false,',' "staleAfterDays": 30,',' "maxWorktrees": 10'," },",' "theme": "default"',"}","```","","## Key Reference","","### defaults","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `worktreeDir` | string | `~/.copse/worktrees/{repo}-{branch}` | Directory pattern. Supports `{repo}` and `{branch}` variables |","| `copyFiles` | string[] | `[]` | Files to copy from main worktree on creation |","| `linkFiles` | string[] | `[]` | Files to symlink from main worktree on creation |","| `postCreate` | string[] | `[]` | Shell commands to run after worktree creation |","| `postRemove` | string[] | `[]` | Shell commands to run before worktree removal |","| `autoUpstream` | boolean | `false` | Automatically set upstream tracking branch |","| `base` | string | - | Default base ref for new branches. If it matches `<remote>/<branch>` of a known remote (e.g. `origin/main`), `copse add` auto-runs `git fetch <remote> <branch>` first |","| `sharedDeps.strategy` | string | `symlink` | Strategy for sharing deps: `symlink`, `hardlink`, or `copy` |","| `sharedDeps.paths` | string[] | `[]` | Paths to share between worktrees |","","### repos[]","","Per-repository overrides. Same keys as `defaults` plus:","","| Key | Type | Description |","|-----|------|-------------|","| `path` | string | **Required.** Absolute path to the repository |","| `monorepo.autoDetect` | boolean | Auto-detect monorepo tools (pnpm, turbo, nx, lerna) |","| `monorepo.extraPatterns` | string[] | Additional glob patterns for package discovery |","| `monorepo.hooks[]` | object[] | Per-package hooks matched by glob pattern |","| `monorepo.hooks[].glob` | string | Glob to match against focus paths |","| `monorepo.hooks[].copyFiles` | string[] | Package-level files to copy |","| `monorepo.hooks[].linkFiles` | string[] | Package-level files to symlink |","| `monorepo.hooks[].postCreate` | string[] | Package-level post-create hooks |","| `monorepo.hooks[].postRemove` | string[] | Package-level post-remove hooks |","","### workspaces[]","","Auto-discover git repositories under parent directories. Discovered repos are merged into `repos[]` at load time. Explicit `repos[]` entries with the same resolved path always take precedence.","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `path` | string | \u2014 | **Required.** Parent directory to scan. Supports `~` expansion. |","| `depth` | integer | `1` | Scan depth (1\u20133). `1` scans only immediate children. |","| `exclude` | string[] | `[]` | Glob patterns matched against directory names to skip. |","| `defaults` | object | \u2014 | Per-repo defaults applied to discovered repos. Same fields as `defaults`, but `monorepo` is not allowed. |","","Discovery rules: a directory is a repo only if it contains a `.git` **directory** (not a file). Linked worktrees and submodules are skipped. Discovered repos are not recursed into. Symbolic links are not followed.","","### templates","","Named presets applied via `copse add --template <name>` or `copse clone --template <name>`.","","| Key | Type | Description |","|-----|------|-------------|","| `base` | string | Default base branch for new worktrees |","| `worktreeDir` | string | Override directory pattern |","| `copyFiles` | string[] | Override files to copy |","| `linkFiles` | string[] | Override files to symlink |","| `postCreate` | string[] | Override post-create hooks |","| `postRemove` | string[] | Override post-remove hooks |","| `autoUpstream` | boolean | Override upstream tracking |","","### sessions","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `enabled` | boolean | `false` | Enable tmux session integration |","| `autoCreate` | boolean | `false` | Auto-create session on `copse add` |","| `autoKill` | boolean | `false` | Auto-kill session on `copse remove` |","| `prefix` | string | `copse` | Prefix for tmux session names |","| `defaultLayout` | string | - | Default layout name |","| `layouts.<name>.windows[]` | object[] | - | Window definitions |","| `layouts.<name>.windows[].name` | string | **Required.** | Window name |","| `layouts.<name>.windows[].command` | string | - | Command to run in window |","","### lifecycle","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `autoCleanMerged` | boolean | `false` | Auto-clean merged worktrees |","| `staleAfterDays` | number | `30` | Days until a worktree is considered stale |","| `maxWorktrees` | number | `10` | Maximum number of worktrees |",""].join(`
|
|
163
|
+
`)}function Pu(e){let t=Mb(e),n=Ao(Du(t),"references"),o=jb(),i=Lb(),s=Du(t);if(!Is(s))Eu(s,{recursive:!0});if(!Is(n))Eu(n,{recursive:!0});let c=Is(t);Fu(t,o,"utf-8");for(let[a,u]of i.entries())Fu(Ao(n,a),u,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Bs,Pb="Git worktree manager. Use when working with git worktrees \u2014 creating, switching, removing, listing, or managing worktrees across repositories. Also use for monorepo focus, tmux sessions, and worktree health checks.",Ab,Mu;var Au=ge(()=>{Bs=["claude-code","codex","opencode"];Ab=[{command:"add",aliases:"-",description:"Create a new worktree from a branch, template, or PR."},{command:"remove",aliases:"rm",description:"Remove a worktree by branch or path."},{command:"list",aliases:"ls",description:"List worktrees with branch, path, status, and focus."},{command:"switch",aliases:"sw",description:"Print shell cd command for a target worktree."},{command:"status",aliases:"st",description:"Show status summary for worktrees."},{command:"clean",aliases:"-",description:"Clean merged worktrees and optionally report stale ones."},{command:"doctor",aliases:"-",description:"Run worktree health checks and optional auto-fixes."},{command:"exec",aliases:"-",description:"Run commands across non-main worktrees."},{command:"diff",aliases:"-",description:"Compare two refs or worktree branches."},{command:"pin",aliases:"unpin",description:"Pin or unpin worktrees and inspect pin metadata."},{command:"log",aliases:"logs",description:"Read or clear the activity log."},{command:"archive",aliases:"-",description:"Archive worktree changes as patch files."},{command:"rename",aliases:"-",description:"Rename a worktree branch and optionally move its path."},{command:"clone",aliases:"-",description:"Clone a repository and initialize copse setup."},{command:"import",aliases:"-",description:"Import an existing worktree into copse metadata."},{command:"session",aliases:"ss",description:"Manage tmux sessions for worktrees."},{command:"config",aliases:"-",description:"Initialize, inspect, validate, and manage config profiles."},{command:"open",aliases:"-",description:"Open a worktree path in your preferred editor."},{command:"shell-init",aliases:"-",description:"Generate shell integration and completions."},{command:"init",aliases:"-",description:"Initialize config or install/update copse AI agent skill files."}],Mu=[{command:"add",summary:"Create a new worktree from a branch, template, or GitHub PR.",synopsis:"copse add [branch] [path]",options:[{flag:"--create",type:"boolean",alias:"-c",description:"Optional compatibility flag; missing branches are created automatically"},{flag:"--base",type:"string",alias:"-b",description:"Base branch/commit for new branch"},{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--template",type:"string",alias:"-t",description:"Use a named template from config"},{flag:"--pr",type:"number",alias:"-",description:"Create worktree from a GitHub PR number"},{flag:"--session",type:"boolean",alias:"-s",description:"Create a tmux session for this worktree"},{flag:"--layout",type:"string",alias:"-",description:"Session layout name from config"},{flag:"--no-fetch",type:"boolean",alias:"-",description:"Skip auto-fetch when base is a remote ref (e.g. origin/main)"}],examples:[["Create a feature branch worktree","copse add feature/auth --base main"],["Branch from fresh remote ref (auto-fetch)","copse add feature/auth --base origin/main"],["Create from PR with session layout","copse add feature/review --pr 123 --session --layout dev"]],notes:["Creates the branch automatically when it does not already exist.","Existing branches are reused as-is; --base only applies when a new branch is created.","Runs copyFiles, linkFiles, sharedDeps, postCreate hooks, monorepo hooks after creation.","Rolls back on hook failure.","Requires gh CLI for --pr.","Supports comma/space separated focus paths.","When --base matches '<remote>/<branch>' and <remote> is a known git remote, copse runs `git fetch <remote> <branch>` first (disable with --no-fetch).","Base resolution order: --base flag > template.base > repoConfig.base > defaults.base > git HEAD."],configKeys:["`defaults.worktreeDir` \u2014 Directory pattern for new worktrees","`defaults.copyFiles` \u2014 Files to copy from main worktree","`defaults.linkFiles` \u2014 Files to symlink from main worktree","`defaults.sharedDeps` \u2014 Shared dependency strategy and paths","`defaults.postCreate` \u2014 Hooks to run after worktree creation","`defaults.autoUpstream` \u2014 Auto-set upstream tracking branch","`defaults.base` \u2014 Default base ref for new branches (e.g. `origin/main` triggers auto-fetch)","`templates.*` \u2014 Named template overrides","`sessions.autoCreate` \u2014 Auto-create tmux session on add","`sessions.layouts` \u2014 Tmux session layout definitions"]},{command:"remove",summary:"Remove a worktree by branch name or path.",synopsis:"copse remove <branch-or-path>",options:[{flag:"--force",type:"boolean",alias:"-f",description:"Force removal even with uncommitted changes"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"}],examples:[["Remove a branch worktree","copse remove feature/auth"],["Force remove without prompt","copse remove feature/auth --force --yes"]],notes:["Runs postRemove hooks and monorepo postRemove hooks before removal.","Cannot remove main worktree.","Cannot remove locked worktrees.","Auto-kills tmux session if sessions.autoKill is enabled."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal","`sessions.autoKill` \u2014 Auto-kill tmux session on remove"]},{command:"list",summary:"List worktrees with branch, path, status, and focus details.",synopsis:"copse list",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--porcelain",type:"boolean",alias:"-p",description:"Machine-readable output"},{flag:"--all",type:"boolean",alias:"-a",description:"List worktrees from all configured repos"}],examples:[["Show all worktrees","copse list"],["Get machine-readable output","copse list --porcelain"]],notes:["Shows branch, path, status (clean/dirty/locked), focus paths.","Focus column truncated to 40 chars.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"switch",summary:"Switch shell context to a worktree by branch or path.",synopsis:"copse switch <branch-or-path>",options:[],examples:[["Switch using branch name","copse switch feature/auth"],["Switch using path","copse switch ~/.copse/worktrees/repo-feature-auth"]],notes:["Outputs cd command for shell eval.","Requires shell integration (copse shell-init).","Auto-switches tmux session if sessions.enabled and inside tmux.","Logs switch activity."],configKeys:["`sessions.enabled` \u2014 Enable tmux session switching","`sessions.prefix` \u2014 Tmux session name prefix"]},{command:"status",summary:"Show branch health, sync state, commit info, and focus.",synopsis:"copse status",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--all",type:"boolean",alias:"-a",description:"Show worktrees from all configured repos"}],examples:[["Print status table","copse status"],["Parse status in scripts","copse status --json"]],notes:["Shows branch, dirty count, sync status (ahead/behind), last commit info, focus paths.","Marks current worktree with *.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"clean",summary:"Remove merged worktrees and optionally inspect stale candidates.",synopsis:"copse clean",options:[{flag:"--dry-run",type:"boolean",alias:"-n",description:"Show what would be removed"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation"},{flag:"--stale",type:"boolean",alias:"-",description:"Also show stale worktrees based on lifecycle config"}],examples:[["Preview merged cleanup","copse clean --dry-run"],["Run cleanup without prompts","copse clean --yes"]],notes:["Only removes merged worktrees.","Skips pinned and dirty worktrees.","Runs git worktree prune after cleanup.","--stale uses lifecycle config (staleAfterDays, maxWorktrees)."],configKeys:["`lifecycle.staleAfterDays` \u2014 Days until a worktree is considered stale","`lifecycle.maxWorktrees` \u2014 Maximum allowed worktrees","`lifecycle.autoCleanMerged` \u2014 Auto-clean merged worktrees"]},{command:"doctor",summary:"Run health checks for worktree state and configuration.",synopsis:"copse doctor",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--fix",type:"boolean",alias:"-",description:"Auto-fix issues"}],examples:[["Run health checks","copse doctor"],["Auto-fix detectable issues","copse doctor --fix"]],notes:["Checks: git version (>=2.17), config validity, stale worktrees, orphaned directories, lock status, dirty worktrees.","Auto-fix: prune stale, remove orphans, unlock stale locks.","Exit code 0 if healthy, 1 if warnings/errors."],configKeys:[]},{command:"exec",summary:"Run a shell command across filtered non-main worktrees.",synopsis:"copse exec <command>",options:[{flag:"--all",type:"boolean",alias:"-a",description:"Run across all configured repos"},{flag:"--dirty",type:"boolean",alias:"-",description:"Only run in dirty worktrees"},{flag:"--clean",type:"boolean",alias:"-",description:"Only run in clean worktrees"},{flag:"--behind",type:"boolean",alias:"-",description:"Only run in worktrees behind upstream"},{flag:"--parallel",type:"boolean",alias:"-p",description:"Run commands in parallel"},{flag:"--json",type:"boolean",alias:"-j",description:"Output results as JSON"}],examples:[["Run tests in parallel",'copse exec "bun test" --parallel'],["Pull only behind worktrees",'copse exec "git pull" --behind']],notes:["Runs in non-main worktrees only.","Sets env vars: COPSE_BRANCH, COPSE_WORKTREE_PATH, COPSE_REPO_PATH.","Exit code 1 if any command fails.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"diff",summary:"Diff two refs or worktree branches.",synopsis:"copse diff <ref1> [ref2]",options:[{flag:"--stat",type:"boolean",alias:"-s",description:"Show diffstat summary only"},{flag:"--name-only",type:"boolean",alias:"-n",description:"Show only names of changed files"}],examples:[["Show diffstat only","copse diff feature/a feature/b --stat"],["List changed file names","copse diff feature/a --name-only"]],notes:["ref2 defaults to HEAD.","Resolves worktree branch names to refs automatically."],configKeys:[]},{command:"pin",summary:"Pin or unpin worktrees and inspect pin metadata.",synopsis:"copse pin [branch]",options:[{flag:"--reason",type:"string",alias:"-",description:"Reason for pinning"},{flag:"--list",type:"boolean",alias:"-",description:"List pinned worktrees"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--unpin",type:"boolean",alias:"-",description:"Unpin instead of pinning"}],examples:[["Pin with a reason",'copse pin feature/auth --reason "active sprint"'],["Unpin a branch","copse pin feature/auth --unpin"]],notes:["Pinned worktrees are excluded from copse clean.","Also invokable as copse unpin <branch>.","Pin metadata stored in git internals."],configKeys:[]},{command:"log",summary:"View or clear activity log events.",synopsis:"copse log",options:[{flag:"--limit",type:"number",alias:"-",description:"default 20, Show the last N entries"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--clear",type:"boolean",alias:"-",description:"Clear the activity log"}],examples:[["Show recent entries","copse log --limit 50"],["Clear the log","copse log --clear"]],notes:["Events: create (green), delete (red), switch (blue), rename (yellow), archive (magenta), import (cyan).","Color-coded in terminal."],configKeys:[]},{command:"archive",summary:"Archive worktree changes as patch files before optional removal.",synopsis:"copse archive [branch]",options:[{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"},{flag:"--keep",type:"boolean",alias:"-",description:"Archive without removing the worktree"},{flag:"--list",type:"boolean",alias:"-",description:"List all archives"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON with --list"}],examples:[["Archive and remove","copse archive feature/done --yes"],["List archive records","copse archive --list --json"]],notes:["Archives stored as patch files in ~/.copse/archives/.","Cannot archive main worktree.","Runs postRemove hooks before removal unless --keep."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal"]},{command:"rename",summary:"Rename a worktree branch and optionally move its directory path.",synopsis:"copse rename <old> <new>",options:[{flag:"--move-path",type:"boolean",alias:"-",description:"Also rename the worktree directory path"}],examples:[["Rename a worktree branch","copse rename feature/old feature/new"],["Rename branch and directory","copse rename feature/old feature/new --move-path"]],notes:["Cannot rename main worktree.","Checks for branch name conflicts.","Logs rename activity.","--move-path replaces old branch slug with new one in directory name."],configKeys:[]},{command:"clone",summary:"Clone a repository and optionally apply copse template setup.",synopsis:"copse clone <url> [path]",options:[{flag:"--template",type:"string",alias:"-t",description:"Apply a named template after cloning"},{flag:"--init-config",type:"boolean",alias:"-",description:"default true, Initialize copse config after cloning"}],examples:[["Clone and initialize","copse clone https://github.com/user/repo.git"],["Clone with template and no config init","copse clone https://github.com/user/repo.git --template review --no-init-config"]],notes:["Auto-detects target path from URL.","Runs template postCreate hooks if template specified.","Use --no-init-config to skip config initialization."],configKeys:["`templates.*` \u2014 Named template overrides"]},{command:"import",summary:"Import an existing git worktree into copse metadata.",synopsis:"copse import <path>",options:[{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--pin",type:"boolean",alias:"-",description:"Pin the worktree"}],examples:[["Import a worktree path","copse import /path/to/worktree"],["Import with focus and pin","copse import /path/to/worktree --focus apps/web,apps/api --pin"]],notes:["Validates that path is a valid git worktree.","Logs import activity.","Supports comma/space separated focus paths."],configKeys:[]},{command:"session",summary:"Manage tmux sessions for worktrees.",synopsis:"copse session [branch-or-path]",options:[{flag:"--list",type:"boolean",alias:"-l",description:"List active copse tmux sessions"},{flag:"--kill",type:"boolean",alias:"-k",description:"Kill the session for the specified worktree"},{flag:"--kill-all",type:"boolean",alias:"-",description:"Kill all copse tmux sessions"},{flag:"--layout",type:"string",alias:"-",description:"Use a named layout from config"},{flag:"--json",type:"boolean",alias:"-j",description:"Output in JSON format"}],examples:[["Attach or create a session","copse session feature/auth"],["List sessions as JSON","copse session --list --json"]],notes:["Requires tmux.","Session naming: branch feat/auth-token \u2192 tmux session cop_feat-auth-token.","Supports layout templates with multiple windows."],configKeys:["`sessions.enabled` \u2014 Enable tmux session integration","`sessions.autoCreate` \u2014 Auto-create session on worktree add","`sessions.autoKill` \u2014 Auto-kill session on worktree remove","`sessions.prefix` \u2014 Tmux session name prefix","`sessions.defaultLayout` \u2014 Default layout name","`sessions.layouts` \u2014 Layout definitions with windows"]},{command:"config",summary:"Initialize, inspect, edit, validate, and manage profiles.",synopsis:"copse config",options:[{flag:"--init",type:"boolean",alias:"-",description:"Create default config file"},{flag:"--show",type:"boolean",alias:"-s",description:"Print current config as JSON"},{flag:"--edit",type:"boolean",alias:"-e",description:"Open config in $EDITOR"},{flag:"--path",type:"boolean",alias:"-",description:"Print config file path"},{flag:"--validate",type:"boolean",alias:"-",description:"Validate config against schema"},{flag:"--profiles",type:"boolean",alias:"-",description:"List config profiles"},{flag:"--profile",type:"string",alias:"-",description:"Profile name for activation/deletion"},{flag:"--activate",type:"boolean",alias:"-",description:"Activate the specified profile"},{flag:"--delete",type:"boolean",alias:"-",description:"Delete the specified profile"}],examples:[["Initialize config","copse config --init"],["Activate a profile","copse config --profile work --activate"]],notes:["Config path: ~/.config/copse/config.json.","XDG-compliant."],configKeys:[]},{command:"open",summary:"Open the target or current worktree in an editor (focus-aware).",synopsis:"copse open [branch-or-path]",options:[{flag:"--editor",type:"string",alias:"-e",description:"Editor command to use"},{flag:"--focus",type:"string",alias:"-f",description:"Open a specific focus path (must match an existing focus entry)"},{flag:"--root",type:"boolean",alias:"-",description:"Force opening the worktree root, ignoring focus paths"},{flag:"--list-editors",type:"boolean",alias:"-",description:"List detected editors"}],examples:[["Open current worktree","copse open"],["Open with specific editor","copse open feature/auth --editor nvim"],["Open a specific focus path","copse open feature/auth --focus apps/web"],["Force open the worktree root","copse open feature/auth --root"]],notes:["Auto-detects editors: code, cursor, vim, nvim, emacs, nano, subl, zed, idea, webstorm.","Uses $VISUAL or $EDITOR env vars.","Defaults to current worktree if no branch specified.","Focus-aware: 0 focus paths \u2192 root, 1 focus path \u2192 that path, 2+ focus paths \u2192 errors and asks for --focus or --root (the TUI shows an interactive picker instead)."],configKeys:[]},{command:"shell-init",summary:"Generate shell integration wrappers and completions.",synopsis:"copse shell-init [shell]",options:[{flag:"--completions",type:"string",alias:"-",description:"Generate shell completions: bash, zsh, fish"}],examples:[["Generate shell wrapper","copse shell-init zsh"],["Generate completion script","copse shell-init --completions fish"]],notes:["Shell arg is auto-detected if omitted.","Generates wrapper function for copse switch to work with shell cd.","Supports bash, zsh, fish."],configKeys:[]},{command:"init",summary:"Initialize copse config or install AI agent skill files.",synopsis:"copse init",options:[{flag:"--skill",type:"string",alias:"-s",description:"Install AI agent skill: claude-code, codex, opencode"}],examples:[["Initialize config","copse init"],["Install Claude Code skill","copse init --skill claude-code"],["Install Codex skill","copse init --skill codex"]],notes:["Without --skill, reuses config initialization and creates only config.json.","With --skill, installs or updates SKILL.md + references/ directory.","Idempotent \u2014 running again updates existing files without breaking existing setup."],configKeys:[]}]});var Wu={};Ne(Wu,{default:()=>Hb});import{dirname as Bb}from"path";var Vb,Hb;var ju=ge(()=>{qe();Au();Vb={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Bs.join(", ")})`,choices:Bs}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=Kt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Pu(t),o=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${o} \u2192 ${Bb(n.filePath)}/`),console.log(" SKILL.md"),console.log(` references/ (${n.referenceCount} commands)`),process.exit(0)}catch(n){console.error(`Error: ${n.message}`),process.exit(1)}}},Hb=Vb});import{notStrictEqual as sd,strictEqual as cd}from"assert";var Hu={right:Uu,center:Tu};class Us{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]==="string")return this.applyLayoutDSL(e[0]);let t=e.map((n)=>{if(typeof n==="string")return this.colFromString(n);return n});return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]==="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
|
|
164
|
+
`).map((o)=>o.split("\t")),n=0;return t.forEach((o)=>{if(o.length>1&&vt.stringWidth(o[0])>n)n=Math.min(Math.floor(this.width*0.5),vt.stringWidth(o[0]))}),t.forEach((o)=>{this.div(...o.map((i,s)=>{return{text:i.trim(),padding:this.measurePadding(i),width:s===0&&o.length>1?n:void 0}}))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){let t=vt.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach((t)=>{this.rowToString(t,e)}),e.filter((t)=>!t.hidden).map((t)=>t.text).join(`
|
|
165
|
+
`)}rowToString(e,t){return this.rasterize(e).forEach((n,o)=>{let i="";n.forEach((s,c)=>{let{width:a}=e[c],u=this.negatePadding(e[c]),h=s;if(u>vt.stringWidth(s))h+=" ".repeat(u-vt.stringWidth(s));if(e[c].align&&e[c].align!=="left"&&this.wrap){let p=Hu[e[c].align];if(h=p(h,u),vt.stringWidth(h)<u)h+=" ".repeat((a||0)-vt.stringWidth(h)-1)}let m=e[c].padding||[0,0,0,0];if(m[3])i+=" ".repeat(m[3]);if(i+=Gs(e[c],h,"| "),i+=h,i+=Gs(e[c],h," |"),m[1])i+=" ".repeat(m[1]);if(o===0&&t.length>0)i=this.renderInline(i,t[t.length-1])}),t.push({text:i.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let n=e.match(/^ */),o=n?n[0].length:0,i=t.text,s=vt.stringWidth(i.trimRight());if(!t.span)return e;if(!this.wrap)return t.hidden=!0,i+e;if(o<s)return e;return t.hidden=!0,i.trimRight()+" ".repeat(o-s)+e.trimLeft()}rasterize(e){let t=[],n=this.columnWidths(e),o;return e.forEach((i,s)=>{if(i.width=n[s],this.wrap)o=vt.wrap(i.text,this.negatePadding(i),{hard:!0}).split(`
|
|
166
|
+
`);else o=i.text.split(`
|
|
167
|
+
`);if(i.border)o.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),o.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)o.unshift(...Array(i.padding[0]||0).fill("")),o.push(...Array(i.padding[2]||0).fill(""));o.forEach((c,a)=>{if(!t[a])t.push([]);let u=t[a];for(let h=0;h<s;h++)if(u[h]===void 0)u.push("");u.push(c)})}),t}negatePadding(e){let t=e.width||0;if(e.padding)t-=(e.padding[3]||0)+(e.padding[1]||0);if(e.border)t-=4;return t}columnWidths(e){if(!this.wrap)return e.map((s)=>{return s.width||vt.stringWidth(s.text)});let t=e.length,n=this.width,o=e.map((s)=>{if(s.width)return t--,n-=s.width,s.width;return}),i=t?Math.floor(n/t):0;return o.map((s,c)=>{if(s===void 0)return Math.max(i,Ku(e[c]));return s})}}function Gs(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function Ku(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function Gu(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function Uu(e,t){e=e.trim();let n=vt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function Tu(e,t){e=e.trim();let n=vt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var vt;function Ts(e,t){return vt=t,new Us({width:(e===null||e===void 0?void 0:e.width)||Gu(),wrap:e===null||e===void 0?void 0:e.wrap})}var Js=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function ii(e){return e.replace(Js,"")}function zs(e,t){let[n,o]=e.match(Js)||["",""];e=ii(e);let i="";for(let s=0;s<e.length;s++){if(s!==0&&s%t===0)i+=`
|
|
168
|
+
`;i+=e.charAt(s)}if(n&&o)i=`${n}${i}${o}`;return i}function si(e){return Ts(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ii,wrap:zs})}import{dirname as qs,resolve as Xs}from"path";import{readdirSync as Ju,statSync as zu}from"fs";function ci(e,t){let n=Xs(".",e),o;if(!zu(n).isDirectory())n=qs(n);while(!0){if(o=t(n,Ju(n)),o)return Xs(n,o);if(n=qs(o=n),o===n)break}}import{inspect as ad}from"util";import{readFileSync as ld}from"fs";import{fileURLToPath as fd}from"url";import{format as Yu}from"util";import{normalize as Zu,resolve as Qu}from"path";function Vn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",o=!1,i=e.match(/^-+/);for(let s=i?i[0].length:0;s<e.length;s++){let c=e.charAt(s);if(o)o=!1,c=c.toUpperCase();if(s!==0&&(c==="-"||c==="_"))o=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function ir(e,t){let n=e.toLowerCase();t=t||"-";let o="";for(let i=0;i<e.length;i++){let s=n.charAt(i),c=e.charAt(i);if(s!==c&&i>0)o+=`${t}${n.charAt(i)}`;else o+=c}return o}function sr(e){if(e===null||e===void 0)return!1;if(typeof e==="number")return!0;if(/^0x[0-9a-f]+$/i.test(e))return!0;if(/^0[^.]/.test(e))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function Ys(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,o=null,i=null,s=[];for(let c=0;c<e.length;c++){if(n=o,o=e.charAt(c),o===" "&&!i){if(n!==" ")t++;continue}if(o===i)i=null;else if((o==="'"||o==='"')&&!i)i=o;if(!s[t])s[t]="";s[t]+=o}return s}var Wt;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(Wt||(Wt={}));var an;class li{constructor(e){an=e}parse(e,t){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),o=Ys(e),i=typeof e==="string",s=qu(Object.assign(Object.create(null),n.alias)),c=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),a=Object.assign(Object.create(null),n.default),u=n.configObjects||[],h=n.envPrefix,m=c["populate--"],p=m?"--":"_",w=Object.create(null),A=Object.create(null),W=n.__||an.format,y={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},C=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,k=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(d){let b=typeof d==="object"?d.key:d,M=Object.keys(d).map(function(D){return{boolean:"bools",string:"strings",number:"numbers"}[D]}).filter(Boolean).pop();if(M)y[M][b]=!0;y.arrays[b]=!0,y.keys.push(b)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(d){y.bools[d]=!0,y.keys.push(d)}),[].concat(n.string||[]).filter(Boolean).forEach(function(d){y.strings[d]=!0,y.keys.push(d)}),[].concat(n.number||[]).filter(Boolean).forEach(function(d){y.numbers[d]=!0,y.keys.push(d)}),[].concat(n.count||[]).filter(Boolean).forEach(function(d){y.counts[d]=!0,y.keys.push(d)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(d){y.normalize[d]=!0,y.keys.push(d)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([d,b])=>{if(typeof b==="number")y.nargs[d]=b,y.keys.push(d)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([d,b])=>{if(typeof b==="function")y.coercions[d]=b,y.keys.push(d)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(d){y.configs[d]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([d,b])=>{if(typeof b==="boolean"||typeof b==="function")y.configs[d]=b})}K(n.key,s,n.default,y.arrays),Object.keys(a).forEach(function(d){(y.aliases[d]||[]).forEach(function(b){a[b]=a[d]})});let F=null;j();let x=[],S=Object.assign(Object.create(null),{_:[]}),O={};for(let d=0;d<o.length;d++){let b=o[d],M=b.replace(/^-{3,}/,"---"),D,v,$,oe,be,le;if(b!=="--"&&/^-/.test(b)&&we(b))G(b);else if(M.match(/^---+(=|$)/)){G(b);continue}else if(b.match(/^--.+=/)||!c["short-option-groups"]&&b.match(/^-.+=/)){if(oe=b.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(L(oe[1],y.arrays))d=z(d,oe[1],o,oe[2]);else if(L(oe[1],y.nargs)!==!1)d=I(d,oe[1],o,oe[2]);else Z(oe[1],oe[2],!0)}else if(b.match(k)&&c["boolean-negation"]){if(oe=b.match(k),oe!==null&&Array.isArray(oe)&&oe.length>=2)v=oe[1],Z(v,L(v,y.arrays)?[!1]:!1)}else if(b.match(/^--.+/)||!c["short-option-groups"]&&b.match(/^-[^-]+/)){if(oe=b.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(v=oe[1],L(v,y.arrays))d=z(d,v,o);else if(L(v,y.nargs)!==!1)d=I(d,v,o);else if(be=o[d+1],be!==void 0&&(!be.match(/^-/)||be.match(C))&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else if(/^(true|false)$/.test(be))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-.\..+=/)){if(oe=b.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)Z(oe[1],oe[2])}else if(b.match(/^-.\..+/)&&!b.match(C)){if(be=o[d+1],oe=b.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(v=oe[1],be!==void 0&&!be.match(/^-/)&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-[^-]+/)&&!b.match(C)){$=b.slice(1,-1).split(""),D=!1;for(let Ie=0;Ie<$.length;Ie++){if(be=b.slice(Ie+2),$[Ie+1]&&$[Ie+1]==="="){if(le=b.slice(Ie+3),v=$[Ie],L(v,y.arrays))d=z(d,v,o,le);else if(L(v,y.nargs)!==!1)d=I(d,v,o,le);else Z(v,le);D=!0;break}if(be==="-"){Z($[Ie],be);continue}if(/[A-Za-z]/.test($[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(be)&&L(be,y.bools)===!1){Z($[Ie],be),D=!0;break}if($[Ie+1]&&$[Ie+1].match(/\W/)){Z($[Ie],be),D=!0;break}else Z($[Ie],pe($[Ie]))}if(v=b.slice(-1)[0],!D&&v!=="-")if(L(v,y.arrays))d=z(d,v,o);else if(L(v,y.nargs)!==!1)d=I(d,v,o);else if(be=o[d+1],be!==void 0&&(!/^(-|--)[^-]/.test(be)||be.match(C))&&!L(v,y.bools)&&!L(v,y.counts))Z(v,be),d++;else if(/^(true|false)$/.test(be))Z(v,be),d++;else Z(v,pe(v))}else if(b.match(/^-[0-9]$/)&&b.match(C)&&L(b.slice(1),y.bools))v=b.slice(1),Z(v,pe(v));else if(b==="--"){x=o.slice(d+1);break}else if(c["halt-at-non-option"]){x=o.slice(d);break}else G(b)}if(_(S,!0),_(S,!1),Y(S),he(),E(S,y.aliases,a,!0),me(S),c["set-placeholder-key"])ke(S);if(Object.keys(y.counts).forEach(function(d){if(!P(S,d.split(".")))Z(d,0)}),m&&x.length)S[p]=[];if(x.forEach(function(d){S[p].push(d)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(S).filter((d)=>d!=="--"&&d.includes("-")).forEach((d)=>{delete S[d]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((d)=>s[d])).forEach((d)=>{if(c["camel-case-expansion"]&&d.includes("-"))delete S[d.split(".").map((b)=>Vn(b)).join(".")];delete S[d]});function G(d){let b=q("_",d);if(typeof b==="string"||typeof b==="number")S._.push(b)}function I(d,b,M,D){let v,$=L(b,y.nargs);if($=typeof $!=="number"||isNaN($)?1:$,$===0){if(!We(D))F=Error(W("Argument unexpected for: %s",b));return Z(b,pe(b)),d}let oe=We(D)?0:1;if(c["nargs-eats-options"]){if(M.length-(d+1)+oe<$)F=Error(W("Not enough arguments following: %s",b));oe=$}else{for(v=d+1;v<M.length;v++)if(!M[v].match(/^-[^0-9]/)||M[v].match(C)||we(M[v]))oe++;else break;if(oe<$)F=Error(W("Not enough arguments following: %s",b))}let be=Math.min(oe,$);if(!We(D)&&be>0)Z(b,D),be--;for(v=d+1;v<be+d+1;v++)Z(b,M[v]);return d+be}function z(d,b,M,D){let v=[],$=D||M[d+1],oe=L(b,y.nargs);if(L(b,y.bools)&&!/^(true|false)$/.test($))v.push(!0);else if(We($)||We(D)&&/^-/.test($)&&!C.test($)&&!we($)){if(a[b]!==void 0){let be=a[b];v=Array.isArray(be)?be:[be]}}else{if(!We(D))v.push(J(b,D,!0));for(let be=d+1;be<M.length;be++){if(!c["greedy-arrays"]&&v.length>0||oe&&typeof oe==="number"&&v.length>=oe)break;if($=M[be],/^-/.test($)&&!C.test($)&&!we($))break;d=be,v.push(J(b,$,i))}}if(typeof oe==="number"&&(oe&&v.length<oe||isNaN(oe)&&v.length===0))F=Error(W("Not enough arguments following: %s",b));return Z(b,v),d}function Z(d,b,M=i){if(/-/.test(d)&&c["camel-case-expansion"]){let $=d.split(".").map(function(oe){return Vn(oe)}).join(".");T(d,$)}let D=J(d,b,M),v=d.split(".");if(U(S,v,D),y.aliases[d])y.aliases[d].forEach(function($){let oe=$.split(".");U(S,oe,D)});if(v.length>1&&c["dot-notation"])(y.aliases[v[0]]||[]).forEach(function($){let oe=$.split("."),be=[].concat(v);if(be.shift(),oe=oe.concat(be),!(y.aliases[d]||[]).includes(oe.join(".")))U(S,oe,D)});if(L(d,y.normalize)&&!L(d,y.arrays))[d].concat(y.aliases[d]||[]).forEach(function(oe){Object.defineProperty(O,oe,{enumerable:!0,get(){return b},set(be){b=typeof be==="string"?an.normalize(be):be}})})}function T(d,b){if(!(y.aliases[d]&&y.aliases[d].length))y.aliases[d]=[b],w[b]=!0;if(!(y.aliases[b]&&y.aliases[b].length))T(b,d)}function J(d,b,M){if(M)b=Xu(b);if(L(d,y.bools)||L(d,y.counts)){if(typeof b==="string")b=b==="true"}let D=Array.isArray(b)?b.map(function(v){return q(d,v)}):q(d,b);if(L(d,y.counts)&&(We(D)||typeof D==="boolean"))D=ai();if(L(d,y.normalize)&&L(d,y.arrays))if(Array.isArray(b))D=b.map((v)=>{return an.normalize(v)});else D=an.normalize(b);return D}function q(d,b){if(!c["parse-positional-numbers"]&&d==="_")return b;if(!L(d,y.strings)&&!L(d,y.bools)&&!Array.isArray(b)){if(sr(b)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${b}`)))||!We(b)&&L(d,y.numbers))b=Number(b)}return b}function Y(d){let b=Object.create(null);E(b,y.aliases,a),Object.keys(y.configs).forEach(function(M){let D=d[M]||b[M];if(D)try{let v=null,$=an.resolve(an.cwd(),D),oe=y.configs[M];if(typeof oe==="function"){try{v=oe($)}catch(be){v=be}if(v instanceof Error){F=v;return}}else v=an.require($);ne(v)}catch(v){if(v.name==="PermissionDenied")F=v;else if(d[M])F=Error(W("Invalid JSON config file: %s",D))}})}function ne(d,b){Object.keys(d).forEach(function(M){let D=d[M],v=b?b+"."+M:M;if(typeof D==="object"&&D!==null&&!Array.isArray(D)&&c["dot-notation"])ne(D,v);else if(!P(S,v.split("."))||L(v,y.arrays)&&c["combine-arrays"])Z(v,D)})}function he(){if(typeof u<"u")u.forEach(function(d){ne(d)})}function _(d,b){if(typeof h>"u")return;let M=typeof h==="string"?h:"",D=an.env();Object.keys(D).forEach(function(v){if(M===""||v.lastIndexOf(M,0)===0){let $=v.split("__").map(function(oe,be){if(be===0)oe=oe.substring(M.length);return Vn(oe)});if((b&&y.configs[$.join(".")]||!b)&&!P(d,$))Z($.join("."),D[v])}})}function me(d){let b,M=new Set;Object.keys(d).forEach(function(D){if(!M.has(D)){if(b=L(D,y.coercions),typeof b==="function")try{let v=q(D,b(d[D]));[].concat(y.aliases[D]||[],D).forEach(($)=>{M.add($),d[$]=v})}catch(v){F=v}}})}function ke(d){return y.keys.forEach((b)=>{if(~b.indexOf("."))return;if(typeof d[b]>"u")d[b]=void 0}),d}function E(d,b,M,D=!1){Object.keys(M).forEach(function(v){if(!P(d,v.split("."))){if(U(d,v.split("."),M[v]),D)A[v]=!0;(b[v]||[]).forEach(function($){if(P(d,$.split(".")))return;U(d,$.split("."),M[v])})}})}function P(d,b){let M=d;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(v){M=M[v]||{}});let D=b[b.length-1];if(typeof M!=="object")return!1;else return D in M}function U(d,b,M){let D=d;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(le){if(le=Zs(le),typeof D==="object"&&D[le]===void 0)D[le]={};if(typeof D[le]!=="object"||Array.isArray(D[le])){if(Array.isArray(D[le]))D[le].push({});else D[le]=[D[le],{}];D=D[le][D[le].length-1]}else D=D[le]});let v=Zs(b[b.length-1]),$=L(b.join("."),y.arrays),oe=Array.isArray(M),be=c["duplicate-arguments-array"];if(!be&&L(v,y.nargs)){if(be=!0,!We(D[v])&&y.nargs[v]===1||Array.isArray(D[v])&&D[v].length===y.nargs[v])D[v]=void 0}if(M===ai())D[v]=ai(D[v]);else if(Array.isArray(D[v]))if(be&&$&&oe)D[v]=c["flatten-duplicate-arrays"]?D[v].concat(M):(Array.isArray(D[v][0])?D[v]:[D[v]]).concat([M]);else if(!be&&Boolean($)===Boolean(oe))D[v]=M;else D[v]=D[v].concat([M]);else if(D[v]===void 0&&$)D[v]=oe?M:[M];else if(be&&!(D[v]===void 0||L(v,y.counts)||L(v,y.bools)))D[v]=[D[v],M];else D[v]=M}function K(...d){d.forEach(function(b){Object.keys(b||{}).forEach(function(M){if(y.aliases[M])return;y.aliases[M]=[].concat(s[M]||[]),y.aliases[M].concat(M).forEach(function(D){if(/-/.test(D)&&c["camel-case-expansion"]){let v=Vn(D);if(v!==M&&y.aliases[M].indexOf(v)===-1)y.aliases[M].push(v),w[v]=!0}}),y.aliases[M].concat(M).forEach(function(D){if(D.length>1&&/[A-Z]/.test(D)&&c["camel-case-expansion"]){let v=ir(D,"-");if(v!==M&&y.aliases[M].indexOf(v)===-1)y.aliases[M].push(v),w[v]=!0}}),y.aliases[M].forEach(function(D){y.aliases[D]=[M].concat(y.aliases[M].filter(function(v){return D!==v}))})})})}function L(d,b){let M=[].concat(y.aliases[d]||[],d),D=Object.keys(b),v=M.find(($)=>D.includes($));return v?b[v]:!1}function ee(d){let b=Object.keys(y);return[].concat(b.map((D)=>y[D])).some(function(D){return Array.isArray(D)?D.includes(d):D[d]})}function de(d,...b){return[].concat(...b).some(function(D){let v=d.match(D);return v&&ee(v[1])})}function ie(d){if(d.match(C)||!d.match(/^-[^-]+/))return!1;let b=!0,M,D=d.slice(1).split("");for(let v=0;v<D.length;v++){if(M=d.slice(v+2),!ee(D[v])){b=!1;break}if(D[v+1]&&D[v+1]==="="||M==="-"||/[A-Za-z]/.test(D[v])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(M)||D[v+1]&&D[v+1].match(/\W/))break}return b}function we(d){return c["unknown-options-as-args"]&&Oe(d)}function Oe(d){if(d=d.replace(/^-{3,}/,"--"),d.match(C))return!1;if(ie(d))return!1;return!de(d,/^-+([^=]+?)=[\s\S]*$/,k,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(d){if(!L(d,y.bools)&&!L(d,y.counts)&&`${d}`in a)return a[d];else return Ee(Fe(d))}function Ee(d){return{[Wt.BOOLEAN]:!0,[Wt.STRING]:"",[Wt.NUMBER]:void 0,[Wt.ARRAY]:[]}[d]}function Fe(d){let b=Wt.BOOLEAN;if(L(d,y.strings))b=Wt.STRING;else if(L(d,y.numbers))b=Wt.NUMBER;else if(L(d,y.bools))b=Wt.BOOLEAN;else if(L(d,y.arrays))b=Wt.ARRAY;return b}function We(d){return d===void 0}function j(){Object.keys(y.counts).find((d)=>{if(L(d,y.arrays))return F=Error(W("Invalid configuration: %s, opts.count excludes opts.array.",d)),!0;else if(L(d,y.nargs))return F=Error(W("Invalid configuration: %s, opts.count excludes opts.narg.",d)),!0;return!1})}return{aliases:Object.assign({},y.aliases),argv:Object.assign(O,S),configuration:c,defaulted:Object.assign({},A),error:F,newAliases:Object.assign({},w)}}}function qu(e){let t=[],n=Object.create(null),o=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(o){o=!1;for(let i=0;i<t.length;i++)for(let s=i+1;s<t.length;s++)if(t[i].filter(function(a){return t[s].indexOf(a)!==-1}).length){t[i]=t[i].concat(t[s]),t.splice(s,1),o=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,u){return u.indexOf(c)===a});let s=i.pop();if(s!==void 0&&typeof s==="string")n[s]=i}),n}function ai(e){return e!==void 0?e+1:1}function Zs(e){if(e==="__proto__")return"___proto___";return e}function Xu(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var fi,ui,di,Qs=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,Ns=(ui=(fi=process===null||process===void 0?void 0:process.versions)===null||fi===void 0?void 0:fi.node)!==null&&ui!==void 0?ui:(di=process===null||process===void 0?void 0:process.version)===null||di===void 0?void 0:di.slice(1);if(Ns){if(Number(Ns.match(/^([^.]+)/)[1])<Qs)throw Error(`yargs parser supports a minimum Node.js version of ${Qs}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var Nu=process?process.env:{},$s=new li({cwd:process.cwd,env:()=>{return Nu},format:Yu,normalize:Zu,resolve:Qu,require:(e)=>{return cn(e)}}),Bo=function(t,n){return $s.parse(t.slice(),n).argv};Bo.detailed=function(e,t){return $s.parse(e.slice(),t)};Bo.camelCase=Vn;Bo.decamelize=ir;Bo.looksLikeNumber=sr;var hi=Bo;import{basename as ud,dirname as dd,extname as hd,relative as md,resolve as ic}from"path";function _s(){if($u())return 0;return 1}function $u(){return _u()&&!process.defaultApp}function _u(){return!!process.versions.electron}function mi(e){return e.slice(_s()+1)}function ec(){return process.argv[_s()]}class Je extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Je)}}import{readFileSync as ed,statSync as td,writeFile as nd}from"fs";import{format as od}from"util";import{resolve as rd}from"path";var tc={fs:{readFileSync:ed,writeFile:nd},format:od,resolve:rd,exists:(e)=>{try{return td(e).isFile()}catch(t){return!1}}};var Yt;class nc{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles==="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage==="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};if(typeof e[e.length-1]==="function")n=e.pop();if(n=n||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n});else n();return Yt.format.apply(Yt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let s=o===1?t:n;if(this.cache[this.locale][t])s=this.cache[this.locale][t][o===1?"one":"other"];if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:i});else i();let c=[s];if(~s.indexOf("%d"))c.push(o);return Yt.format.apply(Yt.format,c.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){if(!this.cache[this.locale])this._readLocaleFile();for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))this.cache[this.locale][t]=e[t]}_taggedLiteral(e,...t){let n="";return e.forEach(function(o,i){let s=t[i+1];if(n+=o,typeof s<"u")n+="%s"}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){if(this.writeQueue.push(e),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let e=this,t=this.writeQueue[0],n=t.directory,o=t.locale,i=t.cb,s=this._resolveLocaleFile(n,o),c=JSON.stringify(this.cache[o],null,2);Yt.fs.writeFile(s,c,"utf-8",function(a){if(e.writeQueue.shift(),e.writeQueue.length>0)e._processWriteQueue();i(a)})}_readLocaleFile(){let e={},t=this._resolveLocaleFile(this.directory,this.locale);try{if(Yt.fs.readFileSync)e=JSON.parse(Yt.fs.readFileSync(t,"utf-8"))}catch(n){if(n instanceof SyntaxError)n.message="syntax error in "+t;if(n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Yt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let o=Yt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(o))n=o}return n}_fileExistsSync(e){return Yt.exists(e)}}function oc(e,t){Yt=t;let n=new nc(e);return{__:n.__.bind(n),__n:n.__n.bind(n),setLocale:n.setLocale.bind(n),getLocale:n.getLocale.bind(n),updateLocale:n.updateLocale.bind(n),locale:n.locale}}var id=(e)=>{return oc(e,tc)},rc=id;var pd="require is not supported by ESM",sc="loading a directory of commands is not supported yet for ESM",Vo;try{Vo=fd(import.meta.url)}catch(e){Vo=process.cwd()}var gd=Vo.substring(0,Vo.lastIndexOf("node_modules")),pi={assert:{notStrictEqual:sd,strictEqual:cd},cliui:si,findUp:ci,getEnv:(e)=>{return process.env[e]},inspect:ad,getCallerFile:()=>{throw new Je(sc)},getProcessArgvBin:ec,mainFilename:gd||process.cwd(),Parser:hi,path:{basename:ud,dirname:dd,extname:hd,relative:md,resolve:ic},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(e,t)=>process.emitWarning(e,t),execPath:()=>process.execPath,exit:process.exit,nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:ld,require:()=>{throw new Je(pd)},requireDirectory:()=>{throw new Je(sc)},stringWidth:(e)=>{return[...e].length},y18n:rc({directory:ic(Vo,"../../../locales"),updateFiles:!1})};function wt(e,t,n,o){n.assert.notStrictEqual(e,t,o)}function gi(e,t){t.assert.strictEqual(typeof e,"string")}function io(e){return Object.keys(e)}function ze(e){return!!e&&!!e.then&&typeof e.then==="function"}function Sn(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),o=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let s={cmd:i.replace(o,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let u=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)u=!0;if(/^\[/.test(c))s.optional.push({cmd:c.replace(o,"").split("|"),variadic:u});else s.demanded.push({cmd:c.replace(o,"").split("|"),variadic:u})}),s}var bd=["first","second","third","fourth","fifth","sixth"];function xe(e,t,n){function o(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[Sn(`cmd ${e}`),t,n]}try{let i=0,[s,c,a]=o(),u=[].slice.call(c);while(u.length&&u[u.length-1]===void 0)u.pop();let h=a||u.length;if(h<s.demanded.length)throw new Je(`Not enough arguments provided. Expected ${s.demanded.length} but received ${u.length}.`);let m=s.demanded.length+s.optional.length;if(h>m)throw new Je(`Too many arguments provided. Expected max ${m} but received ${h}.`);s.demanded.forEach((p)=>{let w=u.shift(),A=cc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)ac(A,p.cmd,i);i+=1}),s.optional.forEach((p)=>{if(u.length===0)return;let w=u.shift(),A=cc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)ac(A,p.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function cc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function ac(e,t,n){throw new Je(`Invalid ${bd[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class bi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,o=!1){if(xe("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let i=0;i<e.length;i++){if(typeof e[i]!=="function")throw Error("middleware must be a function");let s=e[i];s.applyBeforeValidation=t,s.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e==="function"){let i=e;i.applyBeforeValidation=t,i.global=n,i.mutates=o,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((o)=>{let i=[...n[t]||[],t];if(!o.option)return!0;else return!i.includes(o.option)}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let e=this.frozens.pop();if(e!==void 0)this.globalMiddleware=e}reset(){this.globalMiddleware=this.globalMiddleware.filter((e)=>e.global)}}function lc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function Hn(e,t,n,o){return n.reduce((i,s)=>{if(s.applyBeforeValidation!==o)return i;if(s.mutates){if(s.applied)return i;s.applied=!0}if(ze(i))return i.then((c)=>Promise.all([c,s(c,t)])).then(([c,a])=>Object.assign(c,a));else{let c=s(i,t);return ze(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function Kn(e,t,n=(o)=>{throw o}){try{let o=wd(e)?e():e;return ze(o)?o.then((i)=>t(i)):t(o)}catch(o){return n(o)}}function wd(e){return typeof e==="function"}function wi(e){for(let t=0,n=Object.keys(cn.cache),o;t<n.length;t++)if(o=cn.cache[n[t]],o.exports===e)return o;return null}var so=/(^\*)|(^\$0)/;class uc{constructor(e,t,n,o){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=o,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,o){if(o=o||{},typeof o.recurse!=="boolean")o.recurse=!1;if(!Array.isArray(o.extensions))o.extensions=["js"];let i=typeof o.visit==="function"?o.visit:(s)=>s;o.visit=(s,c,a)=>{let u=i(s,c,a);if(u){if(this.requireCache.has(c))return u;else this.requireCache.add(c);this.addHandler(u)}return u},this.shim.requireDirectory({require:t,filename:n},e,o)}addHandler(e,t,n,o,i,s){let c=[],a=lc(i);if(o=o||(()=>{}),Array.isArray(e))if(xd(e))[e,...c]=e;else for(let u of e)this.addHandler(u);else if(Sd(e)){let u=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)u=[].concat(u).concat(e.aliases);this.addHandler(u,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(fc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let u=Sn(e);c=c.map((p)=>Sn(p).cmd);let h=!1,m=[u.cmd].concat(c).filter((p)=>{if(so.test(p))return h=!0,!1;return!0});if(m.length===0&&h)m.push("$0");if(h)u.cmd=m[0],c=m.slice(1),e=e.replace(so,u.cmd);if(c.forEach((p)=>{this.aliasMap[p]=u.cmd}),t!==!1)this.usage.command(e,t,h,c,s);if(this.handlers[u.cmd]={original:e,description:t,handler:o,builder:n||{},middlewares:a,deprecated:s,demanded:u.demanded,optional:u.optional},h)this.defaultCommand=this.handlers[u.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,o,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),u=a.commands.slice(),h=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let m=this.applyBuilderUpdateUsageAndParse(h,c,t,n.aliases,u,o,i,s);return ze(m)?m.then((p)=>this.applyMiddlewareAndGetResult(h,c,p.innerArgv,a,i,p.aliases,t)):this.applyMiddlewareAndGetResult(h,c,m.innerArgv,a,i,m.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,o,i,s,c,a){let u=t.builder,h=n;if(cr(u)){n.getInternalMethods().getUsageInstance().freeze();let m=u(n.getInternalMethods().reset(o),a);if(ze(m))return m.then((p)=>{return h=hc(p)?p:n,this.parseAndUpdateUsage(e,t,h,i,s,c)})}else if(yd(u))n.getInternalMethods().getUsageInstance().freeze(),h=n.getInternalMethods().reset(o),Object.keys(t.builder).forEach((m)=>{h.option(m,u[m])});return this.parseAndUpdateUsage(e,t,h,i,s,c)}parseAndUpdateUsage(e,t,n,o,i,s){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(o,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,s);return ze(c)?c.then((a)=>({aliases:n.parsed.aliases,innerArgv:a})):{aliases:n.parsed.aliases,innerArgv:c}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){let n=so.test(t.original)?t.original.replace(so,"").trim():t.original,o=e.filter((i)=>{return!so.test(i)});return o.push(n),`$0 ${o.join(" ")}`}handleValidationAndGetResult(e,t,n,o,i,s,c,a){if(!s.getInternalMethods().getHasOutput()){let u=s.getInternalMethods().runValidation(i,a,s.parsed.error,e);n=Kn(n,(h)=>{return u(h),h})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let u=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,u,!1,!1),n=Hn(n,s,c,!1),n=Kn(n,(h)=>{let m=t.handler(h);return ze(m)?m.then(()=>h):h}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(ze(n)&&!s.getInternalMethods().hasParseCallback())n.catch((h)=>{try{s.getInternalMethods().getUsageInstance().fail(null,h)}catch(m){}})}if(!e)o.commands.pop(),o.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,o,i,s,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,o,c);let u=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),h=Hn(n,c,u,!0);return ze(h)?h.then((m)=>this.handleValidationAndGetResult(e,t,m,o,s,c,u,a)):this.handleValidationAndGetResult(e,t,h,o,s,c,u,a)}populatePositionals(e,t,n,o){t._=t._.slice(n.commands.length);let i=e.demanded.slice(0),s=e.optional.slice(0),c={};this.validation.positionalCount(i.length,t._.length);while(i.length){let a=i.shift();this.populatePositional(a,t,c)}while(s.length){let a=s.shift();this.populatePositional(a,t,c)}return t._=n.commands.concat(t._.map((a)=>""+a)),this.postProcessPositionals(t,c,this.cmdToParseOptions(e.original),o),c}populatePositional(e,t,n){let o=e.cmd[0];if(e.variadic)n[o]=t._.splice(0).map(String);else if(t._.length)n[o]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=Sn(e);return n.demanded.forEach((o)=>{let[i,...s]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s,t.demand[i]=!0}),n.optional.forEach((o)=>{let[i,...s]=o.cmd;if(o.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s}),t}postProcessPositionals(e,t,n,o){let i=Object.assign({},o.getOptions());i.default=Object.assign(n.default,i.default);for(let u of Object.keys(n.alias))i.alias[u]=(i.alias[u]||[]).concat(n.alias[u]);i.array=i.array.concat(n.array),i.config={};let s=[];if(Object.keys(t).forEach((u)=>{t[u].map((h)=>{if(i.configuration["unknown-options-as-args"])i.key[u]=!0;s.push(`--${u}`),s.push(h)})}),!s.length)return;let c=Object.assign({},i.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(s,Object.assign({},i,{configuration:c}));if(a.error)o.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let u=Object.keys(t);Object.keys(t).forEach((h)=>{u.push(...a.aliases[h])}),Object.keys(a.argv).forEach((h)=>{if(u.includes(h)){if(!t[h])t[h]=a.argv[h];if(!this.isInConfigs(o,h)&&!this.isDefaulted(o,h)&&Object.prototype.hasOwnProperty.call(e,h)&&Object.prototype.hasOwnProperty.call(a.argv,h)&&(Array.isArray(e[h])||Array.isArray(a.argv[h])))e[h]=[].concat(e[h],a.argv[h]);else e[h]=a.argv[h]}})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some((o)=>Object.prototype.hasOwnProperty.call(o,t))||n.some((o)=>Object.prototype.hasOwnProperty.call(o,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=so.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}let t=this.defaultCommand.builder;if(cr(t))return t(e,!0);else if(!fc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=wi(e);if(!t)throw Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let o of[e,t,n]){if(typeof o==="string"||o===!1)return o;wt(o,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();wt(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function dc(e,t,n,o){return new uc(e,t,n,o)}function fc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function xd(e){return e.every((t)=>typeof t==="string")}function cr(e){return typeof e==="function"}function yd(e){return typeof e==="object"}function Sd(e){return typeof e==="object"&&!Array.isArray(e)}function Cn(e={},t=()=>!0){let n={};return io(e).forEach((o)=>{if(t(o,e[o]))n[o]=e[o]}),n}function Rn(e){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((t)=>{let n=t;if(n._handle&&n.isTTY&&typeof n._handle.setBlocking==="function")n._handle.setBlocking(e)})}function Cd(e){return typeof e==="boolean"}function pc(e,t){let n=t.y18n.__,o={},i=[];o.failFn=function(q){i.push(q)};let s=null,c=null,a=!0;o.showHelpOnFail=function(q=!0,Y){let[ne,he]=typeof q==="string"?[!0,q]:[q,Y];if(e.getInternalMethods().isGlobalContext())c=he;return s=he,a=ne,o};let u=!1;o.fail=function(q,Y){let ne=e.getInternalMethods().getLoggerInstance();if(i.length)for(let he=i.length-1;he>=0;--he){let _=i[he];if(Cd(_)){if(Y)throw Y;else if(q)throw Error(q)}else _(q,Y,o)}else{if(e.getExitProcess())Rn(!0);if(!u){if(u=!0,a)e.showHelp("error"),ne.error();if(q||Y)ne.error(q||Y);let he=s||c;if(he){if(q||Y)ne.error("");ne.error(he)}}if(Y=Y||new Je(q),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,Y);else throw Y}};let h=[],m=!1;o.usage=(J,q)=>{if(J===null)return m=!0,h=[],o;return m=!1,h.push([J,q||""]),o},o.getUsage=()=>{return h},o.getUsageDisabled=()=>{return m},o.getPositionalGroupName=()=>{return n("Positionals:")};let p=[];o.example=(J,q)=>{p.push([J,q||""])};let w=[];o.command=function(q,Y,ne,he,_=!1){if(ne)w=w.map((me)=>{return me[2]=!1,me});w.push([q,Y||"",ne,he,_])},o.getCommands=()=>w;let A={};o.describe=function(q,Y){if(Array.isArray(q))q.forEach((ne)=>{o.describe(ne,Y)});else if(typeof q==="object")Object.keys(q).forEach((ne)=>{o.describe(ne,q[ne])});else A[q]=Y},o.getDescriptions=()=>A;let W=[];o.epilog=(J)=>{W.push(J)};let y=!1,C;o.wrap=(J)=>{y=!0,C=J},o.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!y)C=z(),y=!0;return C};let k="__yargsString__:";o.deferY18nLookup=(J)=>k+J,o.help=function(){if(S)return S;x();let q=e.customScriptName?e.$0:t.path.basename(e.$0),Y=e.getDemandedOptions(),ne=e.getDemandedCommands(),he=e.getDeprecatedOptions(),_=e.getGroups(),me=e.getOptions(),ke=[];ke=ke.concat(Object.keys(A)),ke=ke.concat(Object.keys(Y)),ke=ke.concat(Object.keys(ne)),ke=ke.concat(Object.keys(me.default)),ke=ke.filter(G),ke=Object.keys(ke.reduce((ie,we)=>{if(we!=="_")ie[we]=!0;return ie},{}));let E=o.getWrap(),P=t.cliui({width:E,wrap:!!E});if(!m){if(h.length)h.forEach((ie)=>{if(P.div({text:`${ie[0].replace(/\$0/g,q)}`}),ie[1])P.div({text:`${ie[1]}`,padding:[1,0,0,0]})}),P.div();else if(w.length){let ie=null;if(ne._)ie=`${q} <${n("command")}>
|
|
169
|
+
`;else ie=`${q} [${n("command")}]
|
|
170
|
+
`;P.div(`${ie}`)}}if(w.length>1||w.length===1&&!w[0][2]){P.div(n("Commands:"));let ie=e.getInternalMethods().getContext(),we=ie.commands.length?`${ie.commands.join(" ")} `:"";if(e.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)w=w.sort((pe,Ee)=>pe[0].localeCompare(Ee[0]));let Oe=q?`${q} `:"";w.forEach((pe)=>{let Ee=`${Oe}${we}${pe[0].replace(/^\$0 ?/,"")}`;P.span({text:Ee,padding:[0,2,0,2],width:F(w,E,`${q}${we}`)+4},{text:pe[1]});let Fe=[];if(pe[2])Fe.push(`[${n("default")}]`);if(pe[3]&&pe[3].length)Fe.push(`[${n("aliases:")} ${pe[3].join(", ")}]`);if(pe[4])if(typeof pe[4]==="string")Fe.push(`[${n("deprecated: %s",pe[4])}]`);else Fe.push(`[${n("deprecated")}]`);if(Fe.length)P.div({text:Fe.join(" "),padding:[0,0,0,2],align:"right"});else P.div()}),P.div()}let U=(Object.keys(me.alias)||[]).concat(Object.keys(e.parsed.newAliases)||[]);ke=ke.filter((ie)=>!e.parsed.newAliases[ie]&&U.every((we)=>(me.alias[we]||[]).indexOf(ie)===-1));let K=n("Options:");if(!_[K])_[K]=[];O(ke,me.alias,_,K);let L=(ie)=>/^--/.test(ar(ie)),ee=Object.keys(_).filter((ie)=>_[ie].length>0).map((ie)=>{let we=_[ie].filter(G).map((Oe)=>{if(U.includes(Oe))return Oe;for(let pe=0,Ee;(Ee=U[pe])!==void 0;pe++)if((me.alias[Ee]||[]).includes(Oe))return Ee;return Oe});return{groupName:ie,normalizedKeys:we}}).filter(({normalizedKeys:ie})=>ie.length>0).map(({groupName:ie,normalizedKeys:we})=>{let Oe=we.reduce((pe,Ee)=>{return pe[Ee]=[Ee].concat(me.alias[Ee]||[]).map((Fe)=>{if(ie===o.getPositionalGroupName())return Fe;else return(/^[0-9]$/.test(Fe)?me.boolean.includes(Ee)?"-":"--":Fe.length>1?"--":"-")+Fe}).sort((Fe,We)=>L(Fe)===L(We)?0:L(Fe)?1:-1).join(", "),pe},{});return{groupName:ie,normalizedKeys:we,switches:Oe}});if(ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).some(({normalizedKeys:ie,switches:we})=>!ie.every((Oe)=>L(we[Oe]))))ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).forEach(({normalizedKeys:ie,switches:we})=>{ie.forEach((Oe)=>{if(L(we[Oe]))we[Oe]=Rd(we[Oe],4)})});if(ee.forEach(({groupName:ie,normalizedKeys:we,switches:Oe})=>{P.div(ie),we.forEach((pe)=>{let Ee=Oe[pe],Fe=A[pe]||"",We=null;if(Fe.includes(k))Fe=n(Fe.substring(k.length));if(me.boolean.includes(pe))We=`[${n("boolean")}]`;if(me.count.includes(pe))We=`[${n("count")}]`;if(me.string.includes(pe))We=`[${n("string")}]`;if(me.normalize.includes(pe))We=`[${n("string")}]`;if(me.array.includes(pe))We=`[${n("array")}]`;if(me.number.includes(pe))We=`[${n("number")}]`;let j=(M)=>typeof M==="string"?`[${n("deprecated: %s",M)}]`:`[${n("deprecated")}]`,d=[pe in he?j(he[pe]):null,We,pe in Y?`[${n("required")}]`:null,me.choices&&me.choices[pe]?`[${n("choices:")} ${o.stringifiedValues(me.choices[pe])}]`:null,I(me.default[pe],me.defaultDescription[pe])].filter(Boolean).join(" ");P.span({text:ar(Ee),padding:[0,2,0,2+mc(Ee)],width:F(Oe,E)+4},Fe);let b=e.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(d&&!b)P.div({text:d,padding:[0,0,0,2],align:"right"});else P.div()}),P.div()}),p.length)P.div(n("Examples:")),p.forEach((ie)=>{ie[0]=ie[0].replace(/\$0/g,q)}),p.forEach((ie)=>{if(ie[1]==="")P.div({text:ie[0],padding:[0,2,0,2]});else P.div({text:ie[0],padding:[0,2,0,2],width:F(p,E)+4},{text:ie[1]})}),P.div();if(W.length>0){let ie=W.map((we)=>we.replace(/\$0/g,q)).join(`
|
|
171
|
+
`);P.div(`${ie}
|
|
172
|
+
`)}return P.toString().replace(/\s*$/,"")};function F(J,q,Y){let ne=0;if(!Array.isArray(J))J=Object.values(J).map((he)=>[he]);if(J.forEach((he)=>{ne=Math.max(t.stringWidth(Y?`${Y} ${ar(he[0])}`:ar(he[0]))+mc(he[0]),ne)}),q)ne=Math.min(ne,parseInt((q*0.5).toString(),10));return ne}function x(){let J=e.getDemandedOptions(),q=e.getOptions();(Object.keys(q.alias)||[]).forEach((Y)=>{q.alias[Y].forEach((ne)=>{if(A[ne])o.describe(Y,A[ne]);if(ne in J)e.demandOption(Y,J[ne]);if(q.boolean.includes(ne))e.boolean(Y);if(q.count.includes(ne))e.count(Y);if(q.string.includes(ne))e.string(Y);if(q.normalize.includes(ne))e.normalize(Y);if(q.array.includes(ne))e.array(Y);if(q.number.includes(ne))e.number(Y)})})}let S;o.cacheHelpMessage=function(){S=this.help()},o.clearCachedHelpMessage=function(){S=void 0},o.hasCachedHelpMessage=function(){return!!S};function O(J,q,Y,ne){let he=[],_=null;return Object.keys(Y).forEach((me)=>{he=he.concat(Y[me])}),J.forEach((me)=>{if(_=[me].concat(q[me]),!_.some((ke)=>he.indexOf(ke)!==-1))Y[ne].push(me)}),he}function G(J){return e.getOptions().hiddenOptions.indexOf(J)<0||e.parsed.argv[e.getOptions().showHiddenOpt]}o.showHelp=(J)=>{let q=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:q[J])(o.help())},o.functionDescription=(J)=>{return["(",J.name?t.Parser.decamelize(J.name,"-"):n("generated-value"),")"].join("")},o.stringifiedValues=function(q,Y){let ne="",he=Y||", ",_=[].concat(q);if(!q||!_.length)return ne;return _.forEach((me)=>{if(ne.length)ne+=he;ne+=JSON.stringify(me)}),ne};function I(J,q){let Y=`[${n("default:")} `;if(J===void 0&&!q)return null;if(q)Y+=q;else switch(typeof J){case"string":Y+=`"${J}"`;break;case"object":Y+=JSON.stringify(J);break;default:Y+=J}return`${Y}]`}function z(){if(t.process.stdColumns)return Math.min(80,t.process.stdColumns);else return 80}let Z=null;o.version=(J)=>{Z=J},o.showVersion=(J)=>{let q=e.getInternalMethods().getLoggerInstance();if(!J)J="error";(typeof J==="function"?J:q[J])(Z)},o.reset=function(q){return s=null,u=!1,h=[],m=!1,W=[],p=[],w=[],A=Cn(A,(Y)=>!q[Y]),o};let T=[];return o.freeze=function(){T.push({failMessage:s,failureOutput:u,usages:h,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A})},o.unfreeze=function(q=!1){let Y=T.pop();if(!Y)return;if(q)A={...Y.descriptions,...A},w=[...Y.commands,...w],h=[...Y.usages,...h],p=[...Y.examples,...p],W=[...Y.epilogs,...W];else({failMessage:s,failureOutput:u,usages:h,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A}=Y)},o}function xi(e){return typeof e==="object"}function Rd(e,t){return xi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function mc(e){return xi(e)?e.indentation:0}function ar(e){return xi(e)?e.text:e}var gc=`###-begin-{{app_name}}-completions-###
|
|
171
173
|
#
|
|
172
174
|
# yargs command completion script
|
|
173
175
|
#
|
|
@@ -195,7 +197,7 @@ _{{app_name}}_yargs_completions()
|
|
|
195
197
|
}
|
|
196
198
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
197
199
|
###-end-{{app_name}}-completions-###
|
|
198
|
-
`,
|
|
200
|
+
`,bc=`#compdef {{app_name}}
|
|
199
201
|
###-begin-{{app_name}}-completions-###
|
|
200
202
|
#
|
|
201
203
|
# yargs command completion script
|
|
@@ -214,12 +216,12 @@ _{{app_name}}_yargs_completions()
|
|
|
214
216
|
}
|
|
215
217
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
216
218
|
###-end-{{app_name}}-completions-###
|
|
217
|
-
`;class
|
|
218
|
-
${
|
|
219
|
-
`)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(
|
|
220
|
-
${
|
|
221
|
-
`;b.forEach((I)=>{D+=I}),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((C,R)=>R.length-C.length);let I=null,v=1/0;for(let C=0,R;(R=b[C])!==void 0;C++){let k=gc(m,R);if(k<=3&&k<v)v=k,I=R}if(I)t.fail(r("Did you mean %s?",I))},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=[],jr;function Lr(e,t,n,r){jr=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=vd(t,e.extends);wd(c),xi.push(c),i=s?JSON.parse(jr.readFileSync(c,"utf8")):on(e.extends),delete e.extends,i=Lr(i,jr.path.dirname(c),n,jr)}return xi=[],n?wc(i,e):Object.assign({},i,e)}function wd(e){if(xi.indexOf(e)>-1)throw new Ke(`Circular extended configurations: '${e}'.`)}function vd(e,t){return jr.path.resolve(e,t)}function wc(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]=wc(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,Vr,Wt,Et,ao,Pn,Vn,lo,It,fo,Tt,Zt,Rt,Bt,uo,ir,ct,Se,ho,mo,kt,Kn,sr,Gn,Sn,po,ke,Hn,Un,Jn,Oe,go,Qt,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"),bi=Symbol("deleteFromParserHintObject"),$c=Symbol("emitWarning"),Pc=Symbol("freeze"),Sc=Symbol("getDollarZero"),zn=Symbol("getParserConfiguration"),Cc=Symbol("getUsageConfiguration"),wi=Symbol("guessLocale"),Ec=Symbol("guessVersion"),Rc=Symbol("parsePositionalNumbers"),vi=Symbol("pkgUp"),Cn=Symbol("populateParserHintArray"),cr=Symbol("populateParserHintSingleValueDictionary"),yi=Symbol("populateParserHintArrayDictionary"),$i=Symbol("populateParserHintDictionary"),Pi=Symbol("sanitizeKey"),Si=Symbol("setKey"),Ci=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"),Kr=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),Vr.set(this,{commands:[],fullCommands:[]}),Wt.set(this,null),Et.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),Zt.set(this,{}),Rt.set(this,!1),Bt.set(this,null),uo.set(this,!0),ir.set(this,void 0),ct.set(this,""),Se.set(this,void 0),ho.set(this,void 0),mo.set(this,{}),kt.set(this,null),Kn.set(this,null),sr.set(this,{}),Gn.set(this,{}),Sn.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,{}),Qt.set(this,null),Xe.set(this,void 0),ye(this,ke,r,"f"),ye(this,Sn,e,"f"),ye(this,Ln,t,"f"),ye(this,ho,n,"f"),ye(this,Tt,new mi(this),"f"),this.$0=this[Sc](),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,Se,$(this,Se,"f"),"f"),$(this,Se,"f").showHiddenOpt=$(this,ao,"f"),ye(this,ir,this[yc](),"f")}addHelpOpt(e,t){if(we("[string|boolean] [string]",[e,t],arguments.length),$(this,Bt,"f"))this[bi]($(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(we("[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,Se,"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[yi](this.alias.bind(this),"alias",e,t),this}array(e){return we("<array|string>",[e],arguments.length),this[Cn]("array",e),this[Xn](e),this}boolean(e){return we("<array|string>",[e],arguments.length),this[Cn]("boolean",e),this[Xn](e),this}check(e,t){return we("<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 we("<object|string|array> [string|array]",[e,t],arguments.length),this[yi](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,Se,"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 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=Lr(e,$(this,Ln,"f"),this[zn]()["deep-merge-config"]||!1,$(this,ke,"f")),$(this,Se,"f").configObjects=($(this,Se,"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,Se,"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(ye(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,ho,"f")||$(this,ke,"f").require;return $(this,_e,"f").addDirectory(e,n,$(this,ke,"f").getCallerFile(),t),this}count(e){return we("<array|string>",[e],arguments.length),this[Cn]("count",e),this[Xn](e),this}default(e,t,n){if(we("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)hi(e,$(this,ke,"f")),$(this,Se,"f").defaultDescription[e]=n;if(typeof t==="function"){if(hi(e,$(this,ke,"f")),!$(this,Se,"f").defaultDescription[e])$(this,Se,"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(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,Se,"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 we("<object|string|array> [string]",[e,t],arguments.length),this[cr](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return we("<string> [string|boolean]",[e,t],arguments.length),$(this,Se,"f").deprecatedOptions[e]=t,this}describe(e,t){return we("<object|string|array> [string]",[e,t],arguments.length),this[Si](e,!0),$(this,Oe,"f").describe(e,t),this}detectLocale(e){return we("<boolean>",[e],arguments.length),ye(this,Vn,e,"f"),this}env(e){if(we("[string|boolean]",[e],arguments.length),e===!1)delete $(this,Se,"f").envPrefix;else $(this,Se,"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(ye(this,Rt,!0,"f"),ye(this,Pn,t,"f"),$(this,It,"f"))$(this,ke,"f").process.exit(e)}exitProcess(e=!0){return we("[boolean]",[e],arguments.length),ye(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,Se,"f").demandedOptions}getDemandedCommands(){return we([],0),$(this,Se,"f").demandedCommands}getDeprecatedOptions(){return we([],0),$(this,Se,"f").deprecatedOptions}getDetectLocale(){return $(this,Vn,"f")}getExitProcess(){return $(this,It,"f")}getGroups(){return Object.assign({},$(this,Zt,"f"),$(this,Gn,"f"))}getHelp(){if(ye(this,Rt,!0,"f"),!$(this,Oe,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Kr]($(this,Sn,"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,Se,"f")}getStrict(){return $(this,Hn,"f")}getStrictCommands(){return $(this,Un,"f")}getStrictOptions(){return $(this,Jn,"f")}global(e,t){if(we("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)$(this,Se,"f").local=$(this,Se,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!$(this,Se,"f").local.includes(n))$(this,Se,"f").local.push(n)});return this}group(e,t){we("<string|array> <string>",[e,t],arguments.length);let n=$(this,Gn,"f")[t]||$(this,Zt,"f")[t];if($(this,Gn,"f")[t])delete $(this,Gn,"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,Se,"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[wi](),$(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 we("<string|object|array> [number]",[e,t],arguments.length),this[cr](this.nargs.bind(this),"narg",e,t),this}normalize(e){return we("<array|string>",[e],arguments.length),this[Cn]("normalize",e),this}number(e){return we("<array|string>",[e],arguments.length),this[Cn]("number",e),this[Xn](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[Xn](e),$(this,Qt,"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(`
|
|
222
|
-
`),void 0,"versionWarning");if(
|
|
223
|
-
`,"f");ye(this,
|
|
224
|
-
`,"f");ye(this,
|
|
225
|
-
`)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (
|
|
219
|
+
`;class wc{constructor(e,t,n,o){var i,s,c;this.yargs=e,this.usage=t,this.command=n,this.shim=o,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=(c=((i=this.shim.getEnv("SHELL"))===null||i===void 0?void 0:i.includes("zsh"))||((s=this.shim.getEnv("ZSH_NAME"))===null||s===void 0?void 0:s.includes("zsh")))!==null&&c!==void 0?c:!1}defaultCompletion(e,t,n,o){let i=this.command.getCommandHandlers();for(let c=0,a=e.length;c<a;++c)if(i[e[c]]&&i[e[c]].builder){let u=i[e[c]].builder;if(cr(u)){this.indexAfterLastReset=c+1;let h=this.yargs.getInternalMethods().reset();return u(h,!0),h.argv}}let s=[];this.commandCompletions(s,e,n),this.optionCompletions(s,e,t,n),this.choicesFromOptionsCompletions(s,e,t,n),this.choicesFromPositionalsCompletions(s,e,t,n),o(null,s)}commandCompletions(e,t,n){let o=this.yargs.getInternalMethods().getContext().commands;if(!n.match(/^-/)&&o[o.length-1]!==n&&!this.previousArgHasChoices(t))this.usage.getCommands().forEach((i)=>{let s=Sn(i[0]).cmd;if(t.indexOf(s)===-1)if(!this.zshShell)e.push(s);else{let c=i[1]||"";e.push(s.replace(/:/g,"\\:")+":"+c)}})}optionCompletions(e,t,n,o){if((o.match(/^-/)||o===""&&e.length===0)&&!this.previousArgHasChoices(t)){let i=this.yargs.getOptions(),s=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(i.key).forEach((c)=>{let a=!!i.configuration["boolean-negation"]&&i.boolean.includes(c);if(!s.includes(c)&&!i.hiddenOptions.includes(c)&&!this.argsContainKey(t,c,a))this.completeOptionKey(c,e,o,a&&!!i.default[c])})}}choicesFromOptionsCompletions(e,t,n,o){if(this.previousArgHasChoices(t)){let i=this.getPreviousArgChoices(t);if(i&&i.length>0)e.push(...i.map((s)=>s.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(e,t,n,o){if(o===""&&e.length>0&&this.previousArgHasChoices(t))return;let i=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],s=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),c=i[n._.length-s-1];if(!c)return;let a=this.yargs.getOptions().choices[c]||[];for(let u of a)if(u.startsWith(o))e.push(u.replace(/:/g,"\\:"))}getPreviousArgChoices(e){if(e.length<1)return;let t=e[e.length-1],n="";if(!t.startsWith("-")&&e.length>1)n=t,t=e[e.length-2];if(!t.startsWith("-"))return;let o=t.replace(/^-+/,""),i=this.yargs.getOptions(),s=[o,...this.yargs.getAliases()[o]||[]],c;for(let a of s)if(Object.prototype.hasOwnProperty.call(i.key,a)&&Array.isArray(i.choices[a])){c=i.choices[a];break}if(c)return c.filter((a)=>!n||a.startsWith(n))}previousArgHasChoices(e){let t=this.getPreviousArgChoices(e);return t!==void 0&&t.length>0}argsContainKey(e,t,n){let o=(i)=>e.indexOf((/^[^0-9]$/.test(i)?"-":"--")+i)!==-1;if(o(t))return!0;if(n&&o(`no-${t}`))return!0;if(this.aliases){for(let i of this.aliases[t])if(o(i))return!0}return!1}completeOptionKey(e,t,n,o){var i,s,c,a;let u=e;if(this.zshShell){let w=this.usage.getDescriptions(),A=(s=(i=this===null||this===void 0?void 0:this.aliases)===null||i===void 0?void 0:i[e])===null||s===void 0?void 0:s.find((C)=>{let k=w[C];return typeof k==="string"&&k.length>0}),W=A?w[A]:void 0,y=(a=(c=w[e])!==null&&c!==void 0?c:W)!==null&&a!==void 0?a:"";u=`${e.replace(/:/g,"\\:")}:${y.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let h=(w)=>/^--/.test(w),m=(w)=>/^[^0-9]$/.test(w),p=!h(n)&&m(e)?"-":"--";if(t.push(p+u),o)t.push(p+"no-"+u)}customCompletion(e,t,n,o){if(wt(this.customCompletionFunction,null,this.shim),vd(this.customCompletionFunction)){let i=this.customCompletionFunction(n,t);if(ze(i))return i.then((s)=>{this.shim.process.nextTick(()=>{o(null,s)})}).catch((s)=>{this.shim.process.nextTick(()=>{o(s,void 0)})});return o(null,i)}else if(kd(this.customCompletionFunction))return this.customCompletionFunction(n,t,(i=o)=>this.defaultCompletion(e,t,n,i),(i)=>{o(null,i)});else return this.customCompletionFunction(n,t,(i)=>{o(null,i)})}getCompletion(e,t){let n=e.length?e[e.length-1]:"",o=this.yargs.parse(e,!0),i=this.customCompletionFunction?(s)=>this.customCompletion(e,s,n,t):(s)=>this.defaultCompletion(e,s,n,t);return ze(o)?o.then(i):i(o)}generateCompletionScript(e,t){let n=this.zshShell?bc:gc,o=this.shim.path.basename(e);if(e.match(/\.js$/))e=`./${e}`;return n=n.replace(/{{app_name}}/g,o),n=n.replace(/{{completion_command}}/g,t),n.replace(/{{app_path}}/g,e)}registerFunction(e){this.customCompletionFunction=e}setParsed(e){this.aliases=e.aliases}}function xc(e,t,n,o){return new wc(e,t,n,o)}function vd(e){return e.length<3}function kd(e){return e.length>3}function yc(e,t){if(e.length===0)return t.length;if(t.length===0)return e.length;let n=[],o;for(o=0;o<=t.length;o++)n[o]=[o];let i;for(i=0;i<=e.length;i++)n[0][i]=i;for(o=1;o<=t.length;o++)for(i=1;i<=e.length;i++)if(t.charAt(o-1)===e.charAt(i-1))n[o][i]=n[o-1][i-1];else if(o>1&&i>1&&t.charAt(o-2)===e.charAt(i-1)&&t.charAt(o-1)===e.charAt(i-2))n[o][i]=n[o-2][i-2]+1;else n[o][i]=Math.min(n[o-1][i-1]+1,Math.min(n[o][i-1]+1,n[o-1][i]+1));return n[t.length][e.length]}var Sc=["$0","--","_"];function Cc(e,t,n){let o=n.y18n.__,i=n.y18n.__n,s={};s.nonOptionCount=function(p){let w=e.getDemandedCommands(),W=p._.length+(p["--"]?p["--"].length:0)-e.getInternalMethods().getContext().commands.length;if(w._&&(W<w._.min||W>w._.max)){if(W<w._.min)if(w._.minMsg!==void 0)t.fail(w._.minMsg?w._.minMsg.replace(/\$0/g,W.toString()).replace(/\$1/,w._.min.toString()):null);else t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",W,W.toString(),w._.min.toString()));else if(W>w._.max)if(w._.maxMsg!==void 0)t.fail(w._.maxMsg?w._.maxMsg.replace(/\$0/g,W.toString()).replace(/\$1/,w._.max.toString()):null);else t.fail(i("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",W,W.toString(),w._.max.toString()))}},s.positionalCount=function(p,w){if(w<p)t.fail(i("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",w,w+"",p+""))},s.requiredArguments=function(p,w){let A=null;for(let W of Object.keys(w))if(!Object.prototype.hasOwnProperty.call(p,W)||typeof p[W]>"u")A=A||{},A[W]=w[W];if(A){let W=[];for(let C of Object.keys(A)){let k=A[C];if(k&&W.indexOf(k)<0)W.push(k)}let y=W.length?`
|
|
220
|
+
${W.join(`
|
|
221
|
+
`)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(A).length,Object.keys(A).join(", ")+y))}},s.unknownArguments=function(p,w,A,W,y=!0){var C;let k=e.getInternalMethods().getCommandInstance().getCommands(),F=[],x=e.getInternalMethods().getContext();if(Object.keys(p).forEach((S)=>{if(!Sc.includes(S)&&!Object.prototype.hasOwnProperty.call(A,S)&&!Object.prototype.hasOwnProperty.call(e.getInternalMethods().getParseContext(),S)&&!s.isValidAndSomeAliasIsNotNew(S,w))F.push(S)}),y&&(x.commands.length>0||k.length>0||W))p._.slice(x.commands.length).forEach((S)=>{if(!k.includes(""+S))F.push(""+S)});if(y){let O=((C=e.getDemandedCommands()._)===null||C===void 0?void 0:C.max)||0,G=x.commands.length+O;if(G<p._.length)p._.slice(G).forEach((I)=>{if(I=String(I),!x.commands.includes(I)&&!F.includes(I))F.push(I)})}if(F.length)t.fail(i("Unknown argument: %s","Unknown arguments: %s",F.length,F.map((S)=>S.trim()?S:`"${S}"`).join(", ")))},s.unknownCommands=function(p){let w=e.getInternalMethods().getCommandInstance().getCommands(),A=[],W=e.getInternalMethods().getContext();if(W.commands.length>0||w.length>0)p._.slice(W.commands.length).forEach((y)=>{if(!w.includes(""+y))A.push(""+y)});if(A.length>0)return t.fail(i("Unknown command: %s","Unknown commands: %s",A.length,A.join(", "))),!0;else return!1},s.isValidAndSomeAliasIsNotNew=function(p,w){if(!Object.prototype.hasOwnProperty.call(w,p))return!1;let A=e.parsed.newAliases;return[p,...w[p]].some((W)=>!Object.prototype.hasOwnProperty.call(A,W)||!A[p])},s.limitedChoices=function(p){let w=e.getOptions(),A={};if(!Object.keys(w.choices).length)return;Object.keys(p).forEach((C)=>{if(Sc.indexOf(C)===-1&&Object.prototype.hasOwnProperty.call(w.choices,C))[].concat(p[C]).forEach((k)=>{if(w.choices[C].indexOf(k)===-1&&k!==void 0)A[C]=(A[C]||[]).concat(k)})});let W=Object.keys(A);if(!W.length)return;let y=o("Invalid values:");W.forEach((C)=>{y+=`
|
|
222
|
+
${o("Argument: %s, Given: %s, Choices: %s",C,t.stringifiedValues(A[C]),t.stringifiedValues(w.choices[C]))}`}),t.fail(y)};let c={};s.implies=function(p,w){if(xe("<string|object> [array|number|string]",[p,w],arguments.length),typeof p==="object")Object.keys(p).forEach((A)=>{s.implies(A,p[A])});else{if(e.global(p),!c[p])c[p]=[];if(Array.isArray(w))w.forEach((A)=>s.implies(p,A));else wt(w,void 0,n),c[p].push(w)}},s.getImplied=function(){return c};function a(m,p){let w=Number(p);if(p=isNaN(w)?p:w,typeof p==="number")p=m._.length>=p;else if(p.match(/^--no-.+/))p=p.match(/^--no-(.+)/)[1],p=!Object.prototype.hasOwnProperty.call(m,p);else p=Object.prototype.hasOwnProperty.call(m,p);return p}s.implications=function(p){let w=[];if(Object.keys(c).forEach((A)=>{let W=A;(c[A]||[]).forEach((y)=>{let C=W,k=y;if(C=a(p,C),y=a(p,y),C&&!y)w.push(` ${W} -> ${k}`)})}),w.length){let A=`${o("Implications failed:")}
|
|
223
|
+
`;w.forEach((W)=>{A+=W}),t.fail(A)}};let u={};s.conflicts=function(p,w){if(xe("<string|object> [array|string]",[p,w],arguments.length),typeof p==="object")Object.keys(p).forEach((A)=>{s.conflicts(A,p[A])});else{if(e.global(p),!u[p])u[p]=[];if(Array.isArray(w))w.forEach((A)=>s.conflicts(p,A));else u[p].push(w)}},s.getConflicting=()=>u,s.conflicting=function(p){if(Object.keys(p).forEach((w)=>{if(u[w])u[w].forEach((A)=>{if(A&&p[w]!==void 0&&p[A]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",w,A))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(u).forEach((w)=>{u[w].forEach((A)=>{if(A&&p[n.Parser.camelCase(w)]!==void 0&&p[n.Parser.camelCase(A)]!==void 0)t.fail(o("Arguments %s and %s are mutually exclusive",w,A))})})},s.recommendCommands=function(p,w){w=w.sort((C,k)=>k.length-C.length);let W=null,y=1/0;for(let C=0,k;(k=w[C])!==void 0;C++){let F=yc(p,k);if(F<=3&&F<y)y=F,W=k}if(W)t.fail(o("Did you mean %s?",W))},s.reset=function(p){return c=Cn(c,(w)=>!p[w]),u=Cn(u,(w)=>!p[w]),s};let h=[];return s.freeze=function(){h.push({implied:c,conflicting:u})},s.unfreeze=function(){let p=h.pop();wt(p,void 0,n),{implied:c,conflicting:u}=p},s}var yi=[],Ho;function Ko(e,t,n,o){Ho=o;let i={};if(Object.prototype.hasOwnProperty.call(e,"extends")){if(typeof e.extends!=="string")return i;let s=/\.json|\..*rc$/.test(e.extends),c=null;if(!s)try{c=cn.resolve(e.extends)}catch(a){return e}else c=Fd(t,e.extends);Ed(c),yi.push(c),i=s?JSON.parse(Ho.readFileSync(c,"utf8")):cn(e.extends),delete e.extends,i=Ko(i,Ho.path.dirname(c),n,Ho)}return yi=[],n?Rc(i,e):Object.assign({},i,e)}function Ed(e){if(yi.indexOf(e)>-1)throw new Je(`Circular extended configurations: '${e}'.`)}function Fd(e,t){return Ho.path.resolve(e,t)}function Rc(e,t){let n={};function o(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(o(t[i])&&o(n[i]))n[i]=Rc(e[i],t[i]);else n[i]=t[i];return n}var ye=function(e,t,n,o,i){if(o==="m")throw TypeError("Private method is not writable");if(o==="a"&&!i)throw TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!i:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},R=function(e,t,n,o){if(n==="a"&&!o)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?o:n==="a"?o.call(e):o?o.value:t.get(e)},tt,Gn,Go,jt,kt,lr,On,Un,fr,Lt,ur,It,Nt,Et,Bt,dr,co,lt,ve,hr,mr,Ft,Tn,ao,Jn,vn,pr,De,zn,qn,Xn,Me,gr,$t,$e;function Tc(e){return(t=[],n=e.process.cwd(),o)=>{let i=new Jc(t,n,o,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var Oc=Symbol("copyDoubleDash"),vc=Symbol("copyDoubleDash"),Si=Symbol("deleteFromParserHintObject"),kc=Symbol("emitWarning"),Ec=Symbol("freeze"),Fc=Symbol("getDollarZero"),Yn=Symbol("getParserConfiguration"),Dc=Symbol("getUsageConfiguration"),Ci=Symbol("guessLocale"),Mc=Symbol("guessVersion"),Pc=Symbol("parsePositionalNumbers"),Ri=Symbol("pkgUp"),kn=Symbol("populateParserHintArray"),lo=Symbol("populateParserHintSingleValueDictionary"),Oi=Symbol("populateParserHintArrayDictionary"),vi=Symbol("populateParserHintDictionary"),ki=Symbol("sanitizeKey"),Ei=Symbol("setKey"),Fi=Symbol("unfreeze"),Ac=Symbol("validateAsync"),Wc=Symbol("getCommandInstance"),jc=Symbol("getContext"),Lc=Symbol("getHasOutput"),Ic=Symbol("getLoggerInstance"),Bc=Symbol("getParseContext"),Vc=Symbol("getUsageInstance"),Hc=Symbol("getValidationInstance"),br=Symbol("hasParseCallback"),Kc=Symbol("isGlobalContext"),Zn=Symbol("postProcess"),Gc=Symbol("rebase"),Di=Symbol("reset"),Uo=Symbol("runYargsParserAndExecuteCommands"),Mi=Symbol("runValidation"),Uc=Symbol("setHasOutput"),Qn=Symbol("kTrackManuallySetKeys");class Jc{constructor(e=[],t,n,o){this.customScriptName=!1,this.parsed=!1,tt.set(this,void 0),Gn.set(this,void 0),Go.set(this,{commands:[],fullCommands:[]}),jt.set(this,null),kt.set(this,null),lr.set(this,"show-hidden"),On.set(this,null),Un.set(this,!0),fr.set(this,{}),Lt.set(this,!0),ur.set(this,[]),It.set(this,void 0),Nt.set(this,{}),Et.set(this,!1),Bt.set(this,null),dr.set(this,!0),co.set(this,void 0),lt.set(this,""),ve.set(this,void 0),hr.set(this,void 0),mr.set(this,{}),Ft.set(this,null),Tn.set(this,null),ao.set(this,{}),Jn.set(this,{}),vn.set(this,void 0),pr.set(this,!1),De.set(this,void 0),zn.set(this,!1),qn.set(this,!1),Xn.set(this,!1),Me.set(this,void 0),gr.set(this,{}),$t.set(this,null),$e.set(this,void 0),ye(this,De,o,"f"),ye(this,vn,e,"f"),ye(this,Gn,t,"f"),ye(this,hr,n,"f"),ye(this,It,new bi(this),"f"),this.$0=this[Fc](),this[Di](),ye(this,tt,R(this,tt,"f"),"f"),ye(this,Me,R(this,Me,"f"),"f"),ye(this,$e,R(this,$e,"f"),"f"),ye(this,ve,R(this,ve,"f"),"f"),R(this,ve,"f").showHiddenOpt=R(this,lr,"f"),ye(this,co,this[vc](),"f")}addHelpOpt(e,t){if(xe("[string|boolean] [string]",[e,t],arguments.length),R(this,Bt,"f"))this[Si](R(this,Bt,"f")),ye(this,Bt,null,"f");if(e===!1&&t===void 0)return this;return ye(this,Bt,typeof e==="string"?e:"help","f"),this.boolean(R(this,Bt,"f")),this.describe(R(this,Bt,"f"),t||R(this,Me,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(xe("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:R(this,lr,"f");return this.boolean(n),this.describe(n,t||R(this,Me,"f").deferY18nLookup("Show hidden options")),R(this,ve,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return xe("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.alias.bind(this),"alias",e,t),this}array(e){return xe("<array|string>",[e],arguments.length),this[kn]("array",e),this[Qn](e),this}boolean(e){return xe("<array|string>",[e],arguments.length),this[kn]("boolean",e),this[Qn](e),this}check(e,t){return xe("<function> [boolean]",[e,t],arguments.length),this.middleware((n,o)=>{return Kn(()=>{return e(n,o.getOptions())},(i)=>{if(!i)R(this,Me,"f").fail(R(this,De,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)R(this,Me,"f").fail(i.toString(),i);return n},(i)=>{return R(this,Me,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return xe("<object|string|array> [string|array]",[e,t],arguments.length),this[Oi](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(xe("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Je("coerce callback must be provided");for(let n of e)this.coerce(n,t);return this}else if(typeof e==="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new Je("coerce callback must be provided");return R(this,ve,"f").key[e]=!0,R(this,It,"f").addCoerceMiddleware((n,o)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Kn(()=>{return i=o.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=o.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let u of i[e])n[u]=c;return n},(c)=>{throw new Je(c.message)})},e),this}conflicts(e,t){return xe("<string|object> [string|array]",[e,t],arguments.length),R(this,$e,"f").conflicts(e,t),this}config(e="config",t,n){if(xe("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=Ko(e,R(this,Gn,"f"),this[Yn]()["deep-merge-config"]||!1,R(this,De,"f")),R(this,ve,"f").configObjects=(R(this,ve,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||R(this,Me,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((o)=>{R(this,ve,"f").config[o]=n||!0}),this}completion(e,t,n){if(xe("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(ye(this,kt,e||R(this,kt,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command(R(this,kt,"f"),t),n)R(this,jt,"f").registerFunction(n);return this}command(e,t,n,o,i,s){return xe("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,o,i,s],arguments.length),R(this,tt,"f").addHandler(e,t,n,o,i,s),this}commands(e,t,n,o,i,s){return this.command(e,t,n,o,i,s)}commandDir(e,t){xe("<string> [object]",[e,t],arguments.length);let n=R(this,hr,"f")||R(this,De,"f").require;return R(this,tt,"f").addDirectory(e,n,R(this,De,"f").getCallerFile(),t),this}count(e){return xe("<array|string>",[e],arguments.length),this[kn]("count",e),this[Qn](e),this}default(e,t,n){if(xe("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)gi(e,R(this,De,"f")),R(this,ve,"f").defaultDescription[e]=n;if(typeof t==="function"){if(gi(e,R(this,De,"f")),!R(this,ve,"f").defaultDescription[e])R(this,ve,"f").defaultDescription[e]=R(this,Me,"f").functionDescription(t);t=t.call()}return this[lo](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,o){if(xe("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,o],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),R(this,ve,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:o},this}demand(e,t,n){if(Array.isArray(t))t.forEach((o)=>{wt(n,!0,R(this,De,"f")),this.demandOption(o,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")wt(n,!0,R(this,De,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((o)=>{wt(n,!0,R(this,De,"f")),this.demandOption(o,n)});else if(typeof n==="string")this.demandOption(e,n);else if(n===!0||typeof n>"u")this.demandOption(e);return this}demandOption(e,t){return xe("<object|string|array> [string]",[e,t],arguments.length),this[lo](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return xe("<string> [string|boolean]",[e,t],arguments.length),R(this,ve,"f").deprecatedOptions[e]=t,this}describe(e,t){return xe("<object|string|array> [string]",[e,t],arguments.length),this[Ei](e,!0),R(this,Me,"f").describe(e,t),this}detectLocale(e){return xe("<boolean>",[e],arguments.length),ye(this,Un,e,"f"),this}env(e){if(xe("[string|boolean]",[e],arguments.length),e===!1)delete R(this,ve,"f").envPrefix;else R(this,ve,"f").envPrefix=e||"";return this}epilogue(e){return xe("<string>",[e],arguments.length),R(this,Me,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(xe("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else R(this,Me,"f").example(e,t);return this}exit(e,t){if(ye(this,Et,!0,"f"),ye(this,On,t,"f"),R(this,Lt,"f"))R(this,De,"f").process.exit(e)}exitProcess(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,Lt,e,"f"),this}fail(e){if(xe("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Je("Invalid first argument. Expected function or boolean 'false'");return R(this,Me,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(xe("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,o)=>{R(this,jt,"f").getCompletion(e,(i,s)=>{if(i)o(i);else n(s)})});else return R(this,jt,"f").getCompletion(e,t)}getDemandedOptions(){return xe([],0),R(this,ve,"f").demandedOptions}getDemandedCommands(){return xe([],0),R(this,ve,"f").demandedCommands}getDeprecatedOptions(){return xe([],0),R(this,ve,"f").deprecatedOptions}getDetectLocale(){return R(this,Un,"f")}getExitProcess(){return R(this,Lt,"f")}getGroups(){return Object.assign({},R(this,Nt,"f"),R(this,Jn,"f"))}getHelp(){if(ye(this,Et,!0,"f"),!R(this,Me,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Uo](R(this,vn,"f"),void 0,void 0,0,!0);if(ze(t))return t.then(()=>{return R(this,Me,"f").help()})}let e=R(this,tt,"f").runDefaultBuilderOn(this);if(ze(e))return e.then(()=>{return R(this,Me,"f").help()})}return Promise.resolve(R(this,Me,"f").help())}getOptions(){return R(this,ve,"f")}getStrict(){return R(this,zn,"f")}getStrictCommands(){return R(this,qn,"f")}getStrictOptions(){return R(this,Xn,"f")}global(e,t){if(xe("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)R(this,ve,"f").local=R(this,ve,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!R(this,ve,"f").local.includes(n))R(this,ve,"f").local.push(n)});return this}group(e,t){xe("<string|array> <string>",[e,t],arguments.length);let n=R(this,Jn,"f")[t]||R(this,Nt,"f")[t];if(R(this,Jn,"f")[t])delete R(this,Jn,"f")[t];let o={};return R(this,Nt,"f")[t]=(n||[]).concat(e).filter((i)=>{if(o[i])return!1;return o[i]=!0}),this}hide(e){return xe("<string>",[e],arguments.length),R(this,ve,"f").hiddenOptions.push(e),this}implies(e,t){return xe("<string|object> [number|string|array]",[e,t],arguments.length),R(this,$e,"f").implies(e,t),this}locale(e){if(xe("[string]",[e],arguments.length),e===void 0)return this[Ci](),R(this,De,"f").y18n.getLocale();return ye(this,Un,!1,"f"),R(this,De,"f").y18n.setLocale(e),this}middleware(e,t,n){return R(this,It,"f").addMiddleware(e,!!t,n)}nargs(e,t){return xe("<string|object|array> [number]",[e,t],arguments.length),this[lo](this.nargs.bind(this),"narg",e,t),this}normalize(e){return xe("<array|string>",[e],arguments.length),this[kn]("normalize",e),this}number(e){return xe("<array|string>",[e],arguments.length),this[kn]("number",e),this[Qn](e),this}option(e,t){if(xe("<string|object> [object]",[e,t],arguments.length),typeof e==="object")Object.keys(e).forEach((n)=>{this.options(n,e[n])});else{if(typeof t!=="object")t={};if(this[Qn](e),R(this,$t,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[kc](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
224
|
+
`),void 0,"versionWarning");if(R(this,ve,"f").key[e]=!0,t.alias)this.alias(e,t.alias);let n=t.deprecate||t.deprecated;if(n)this.deprecateOption(e,n);let o=t.demand||t.required||t.require;if(o)this.demand(e,o);if(t.demandOption)this.demandOption(e,typeof t.demandOption==="string"?t.demandOption:void 0);if(t.conflicts)this.conflicts(e,t.conflicts);if("default"in t)this.default(e,t.default);if(t.implies!==void 0)this.implies(e,t.implies);if(t.nargs!==void 0)this.nargs(e,t.nargs);if(t.config)this.config(e,t.configParser);if(t.normalize)this.normalize(e);if(t.choices)this.choices(e,t.choices);if(t.coerce)this.coerce(e,t.coerce);if(t.group)this.group(e,t.group);if(t.boolean||t.type==="boolean"){if(this.boolean(e),t.alias)this.boolean(t.alias)}if(t.array||t.type==="array"){if(this.array(e),t.alias)this.array(t.alias)}if(t.number||t.type==="number"){if(this.number(e),t.alias)this.number(t.alias)}if(t.string||t.type==="string"){if(this.string(e),t.alias)this.string(t.alias)}if(t.count||t.type==="count")this.count(e);if(typeof t.global==="boolean")this.global(e,t.global);if(t.defaultDescription)R(this,ve,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,s=R(this,Me,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(s,e)||typeof i==="string")this.describe(e,i);if(t.hidden)this.hide(e);if(t.requiresArg)this.requiresArg(e)}return this}options(e,t){return this.option(e,t)}parse(e,t,n){if(xe("[string|array] [function|boolean|object] [function]",[e,t,n],arguments.length),this[Ec](),typeof e>"u")e=R(this,vn,"f");if(typeof t==="object")ye(this,Tn,t,"f"),t=n;if(typeof t==="function")ye(this,Ft,t,"f"),t=!1;if(!t)ye(this,vn,e,"f");if(R(this,Ft,"f"))ye(this,Lt,!1,"f");let o=this[Uo](e,!!t),i=this.parsed;if(R(this,jt,"f").setParsed(this.parsed),ze(o))return o.then((s)=>{if(R(this,Ft,"f"))R(this,Ft,"f").call(this,R(this,On,"f"),s,R(this,lt,"f"));return s}).catch((s)=>{if(R(this,Ft,"f"))R(this,Ft,"f")(s,this.parsed.argv,R(this,lt,"f"));throw s}).finally(()=>{this[Fi](),this.parsed=i});else{if(R(this,Ft,"f"))R(this,Ft,"f").call(this,R(this,On,"f"),o,R(this,lt,"f"));this[Fi](),this.parsed=i}return o}parseAsync(e,t,n){let o=this.parse(e,t,n);return!ze(o)?Promise.resolve(o):o}parseSync(e,t,n){let o=this.parse(e,t,n);if(ze(o))throw new Je(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return o}parserConfiguration(e){return xe("<object>",[e],arguments.length),ye(this,mr,e,"f"),this}pkgConf(e,t){xe("<string> [string]",[e,t],arguments.length);let n=null,o=this[Ri](t||R(this,Gn,"f"));if(o[e]&&typeof o[e]==="object")n=Ko(o[e],t||R(this,Gn,"f"),this[Yn]()["deep-merge-config"]||!1,R(this,De,"f")),R(this,ve,"f").configObjects=(R(this,ve,"f").configObjects||[]).concat(n);return this}positional(e,t){xe("<string> <object>",[e,t],arguments.length);let n=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];t=Cn(t,(s,c)=>{if(s==="type"&&!["string","number","boolean"].includes(c))return!1;return n.includes(s)});let o=R(this,Go,"f").fullCommands[R(this,Go,"f").fullCommands.length-1],i=o?R(this,tt,"f").cmdToParseOptions(o):{array:[],alias:{},default:{},demand:{}};return io(i).forEach((s)=>{let c=i[s];if(Array.isArray(c)){if(c.indexOf(e)!==-1)t[s]=!0}else if(c[e]&&!(s in t))t[s]=c[e]}),this.group(e,R(this,Me,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,pr,e,"f"),this}required(e,t,n){return this.demand(e,t,n)}require(e,t,n){return this.demand(e,t,n)}requiresArg(e){if(xe("<array|string|object> [number]",[e],arguments.length),typeof e==="string"&&R(this,ve,"f").narg[e])return this;else this[lo](this.requiresArg.bind(this),"narg",e,NaN);return this}showCompletionScript(e,t){return xe("[string] [string]",[e,t],arguments.length),e=e||this.$0,R(this,co,"f").log(R(this,jt,"f").generateCompletionScript(e,t||R(this,kt,"f")||"completion")),this}showHelp(e){if(xe("[string|function]",[e],arguments.length),ye(this,Et,!0,"f"),!R(this,Me,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Uo](R(this,vn,"f"),void 0,void 0,0,!0);if(ze(n))return n.then(()=>{R(this,Me,"f").showHelp(e)}),this}let t=R(this,tt,"f").runDefaultBuilderOn(this);if(ze(t))return t.then(()=>{R(this,Me,"f").showHelp(e)}),this}return R(this,Me,"f").showHelp(e),this}scriptName(e){return this.customScriptName=!0,this.$0=e,this}showHelpOnFail(e,t){return xe("[boolean|string] [string]",[e,t],arguments.length),R(this,Me,"f").showHelpOnFail(e,t),this}showVersion(e){return xe("[string|function]",[e],arguments.length),R(this,Me,"f").showVersion(e),this}skipValidation(e){return xe("<array|string>",[e],arguments.length),this[kn]("skipValidation",e),this}strict(e){return xe("[boolean]",[e],arguments.length),ye(this,zn,e!==!1,"f"),this}strictCommands(e){return xe("[boolean]",[e],arguments.length),ye(this,qn,e!==!1,"f"),this}strictOptions(e){return xe("[boolean]",[e],arguments.length),ye(this,Xn,e!==!1,"f"),this}string(e){return xe("<array|string>",[e],arguments.length),this[kn]("string",e),this[Qn](e),this}terminalWidth(){return xe([],0),R(this,De,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return xe("<object>",[e],arguments.length),ye(this,Un,!1,"f"),R(this,De,"f").y18n.updateLocale(e),this}usage(e,t,n,o){if(xe("<string|null|undefined> [string|boolean] [function|object] [function]",[e,t,n,o],arguments.length),t!==void 0)if(wt(e,null,R(this,De,"f")),(e||"").match(/^\$0( |$)/))return this.command(e,t,n,o);else throw new Je(".usage() description must start with $0 if being used as alias for .command()");else return R(this,Me,"f").usage(e),this}usageConfiguration(e){return xe("<object>",[e],arguments.length),ye(this,gr,e,"f"),this}version(e,t,n){if(xe("[boolean|string] [string] [string]",[e,t,n],arguments.length),R(this,$t,"f"))this[Si](R(this,$t,"f")),R(this,Me,"f").version(void 0),ye(this,$t,null,"f");if(arguments.length===0)n=this[Mc](),e="version";else if(arguments.length===1){if(e===!1)return this;n=e,e="version"}else if(arguments.length===2)n=t,t=void 0;return ye(this,$t,typeof e==="string"?e:"version","f"),t=t||R(this,Me,"f").deferY18nLookup("Show version number"),R(this,Me,"f").version(n||void 0),this.boolean(R(this,$t,"f")),this.describe(R(this,$t,"f"),t),this}wrap(e){return xe("<number|null|undefined>",[e],arguments.length),R(this,Me,"f").wrap(e),this}[(tt=new WeakMap,Gn=new WeakMap,Go=new WeakMap,jt=new WeakMap,kt=new WeakMap,lr=new WeakMap,On=new WeakMap,Un=new WeakMap,fr=new WeakMap,Lt=new WeakMap,ur=new WeakMap,It=new WeakMap,Nt=new WeakMap,Et=new WeakMap,Bt=new WeakMap,dr=new WeakMap,co=new WeakMap,lt=new WeakMap,ve=new WeakMap,hr=new WeakMap,mr=new WeakMap,Ft=new WeakMap,Tn=new WeakMap,ao=new WeakMap,Jn=new WeakMap,vn=new WeakMap,pr=new WeakMap,De=new WeakMap,zn=new WeakMap,qn=new WeakMap,Xn=new WeakMap,Me=new WeakMap,gr=new WeakMap,$t=new WeakMap,$e=new WeakMap,Oc)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch(t){}return e}[vc](){return{log:(...e)=>{if(!this[br]())console.log(...e);if(ye(this,Et,!0,"f"),R(this,lt,"f").length)ye(this,lt,R(this,lt,"f")+`
|
|
225
|
+
`,"f");ye(this,lt,R(this,lt,"f")+e.join(" "),"f")},error:(...e)=>{if(!this[br]())console.error(...e);if(ye(this,Et,!0,"f"),R(this,lt,"f").length)ye(this,lt,R(this,lt,"f")+`
|
|
226
|
+
`,"f");ye(this,lt,R(this,lt,"f")+e.join(" "),"f")}}}[Si](e){io(R(this,ve,"f")).forEach((t)=>{if(((o)=>o==="configObjects")(t))return;let n=R(this,ve,"f")[t];if(Array.isArray(n)){if(n.includes(e))n.splice(n.indexOf(e),1)}else if(typeof n==="object")delete n[e]}),delete R(this,Me,"f").getDescriptions()[e]}[kc](e,t,n){if(!R(this,fr,"f")[n])R(this,De,"f").process.emitWarning(e,t),R(this,fr,"f")[n]=!0}[Ec](){R(this,ur,"f").push({options:R(this,ve,"f"),configObjects:R(this,ve,"f").configObjects.slice(0),exitProcess:R(this,Lt,"f"),groups:R(this,Nt,"f"),strict:R(this,zn,"f"),strictCommands:R(this,qn,"f"),strictOptions:R(this,Xn,"f"),completionCommand:R(this,kt,"f"),output:R(this,lt,"f"),exitError:R(this,On,"f"),hasOutput:R(this,Et,"f"),parsed:this.parsed,parseFn:R(this,Ft,"f"),parseContext:R(this,Tn,"f")}),R(this,Me,"f").freeze(),R(this,$e,"f").freeze(),R(this,tt,"f").freeze(),R(this,It,"f").freeze()}[Fc](){let e="",t;if(/\b(node|iojs|electron)(\.exe)?$/.test(R(this,De,"f").process.argv()[0]))t=R(this,De,"f").process.argv().slice(1,2);else t=R(this,De,"f").process.argv().slice(0,1);if(e=t.map((n)=>{let o=this[Gc](R(this,Gn,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),R(this,De,"f").getEnv("_")&&R(this,De,"f").getProcessArgvBin()===R(this,De,"f").getEnv("_"))e=R(this,De,"f").getEnv("_").replace(`${R(this,De,"f").path.dirname(R(this,De,"f").process.execPath())}/`,"");return e}[Yn](){return R(this,mr,"f")}[Dc](){return R(this,gr,"f")}[Ci](){if(!R(this,Un,"f"))return;let e=R(this,De,"f").getEnv("LC_ALL")||R(this,De,"f").getEnv("LC_MESSAGES")||R(this,De,"f").getEnv("LANG")||R(this,De,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Mc](){return this[Ri]().version||"unknown"}[Pc](e){let t=e["--"]?e["--"]:e._;for(let n=0,o;(o=t[n])!==void 0;n++)if(R(this,De,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`))))t[n]=Number(o);return e}[Ri](e){let t=e||"*";if(R(this,ao,"f")[t])return R(this,ao,"f")[t];let n={};try{let o=e||R(this,De,"f").mainFilename;if(!e&&R(this,De,"f").path.extname(o))o=R(this,De,"f").path.dirname(o);let i=R(this,De,"f").findUp(o,(s,c)=>{if(c.includes("package.json"))return"package.json";else return});wt(i,void 0,R(this,De,"f")),n=JSON.parse(R(this,De,"f").readFileSync(i,"utf8"))}catch(o){}return R(this,ao,"f")[t]=n||{},R(this,ao,"f")[t]}[kn](e,t){t=[].concat(t),t.forEach((n)=>{n=this[ki](n),R(this,ve,"f")[e].push(n)})}[lo](e,t,n,o){this[vi](e,t,n,o,(i,s,c)=>{R(this,ve,"f")[i][s]=c})}[Oi](e,t,n,o){this[vi](e,t,n,o,(i,s,c)=>{R(this,ve,"f")[i][s]=(R(this,ve,"f")[i][s]||[]).concat(c)})}[vi](e,t,n,o,i){if(Array.isArray(n))n.forEach((s)=>{e(s,o)});else if(((s)=>typeof s==="object")(n))for(let s of io(n))e(s,n[s]);else i(t,this[ki](n),o)}[ki](e){if(e==="__proto__")return"___proto___";return e}[Ei](e,t){return this[lo](this[Ei].bind(this),"key",e,t),this}[Fi](){var e,t,n,o,i,s,c,a,u,h,m,p;let w=R(this,ur,"f").pop();wt(w,void 0,R(this,De,"f"));let A;e=this,t=this,n=this,o=this,i=this,s=this,c=this,a=this,u=this,h=this,m=this,p=this,{options:{set value(W){ye(e,ve,W,"f")}}.value,configObjects:A,exitProcess:{set value(W){ye(t,Lt,W,"f")}}.value,groups:{set value(W){ye(n,Nt,W,"f")}}.value,output:{set value(W){ye(o,lt,W,"f")}}.value,exitError:{set value(W){ye(i,On,W,"f")}}.value,hasOutput:{set value(W){ye(s,Et,W,"f")}}.value,parsed:this.parsed,strict:{set value(W){ye(c,zn,W,"f")}}.value,strictCommands:{set value(W){ye(a,qn,W,"f")}}.value,strictOptions:{set value(W){ye(u,Xn,W,"f")}}.value,completionCommand:{set value(W){ye(h,kt,W,"f")}}.value,parseFn:{set value(W){ye(m,Ft,W,"f")}}.value,parseContext:{set value(W){ye(p,Tn,W,"f")}}.value}=w,R(this,ve,"f").configObjects=A,R(this,Me,"f").unfreeze(),R(this,$e,"f").unfreeze(),R(this,tt,"f").unfreeze(),R(this,It,"f").unfreeze()}[Ac](e,t){return Kn(t,(n)=>{return e(n),n})}getInternalMethods(){return{getCommandInstance:this[Wc].bind(this),getContext:this[jc].bind(this),getHasOutput:this[Lc].bind(this),getLoggerInstance:this[Ic].bind(this),getParseContext:this[Bc].bind(this),getParserConfiguration:this[Yn].bind(this),getUsageConfiguration:this[Dc].bind(this),getUsageInstance:this[Vc].bind(this),getValidationInstance:this[Hc].bind(this),hasParseCallback:this[br].bind(this),isGlobalContext:this[Kc].bind(this),postProcess:this[Zn].bind(this),reset:this[Di].bind(this),runValidation:this[Mi].bind(this),runYargsParserAndExecuteCommands:this[Uo].bind(this),setHasOutput:this[Uc].bind(this)}}[Wc](){return R(this,tt,"f")}[jc](){return R(this,Go,"f")}[Lc](){return R(this,Et,"f")}[Ic](){return R(this,co,"f")}[Bc](){return R(this,Tn,"f")||{}}[Vc](){return R(this,Me,"f")}[Hc](){return R(this,$e,"f")}[br](){return!!R(this,Ft,"f")}[Kc](){return R(this,dr,"f")}[Zn](e,t,n,o){if(n)return e;if(ze(e))return e;if(!t)e=this[Oc](e);if(this[Yn]()["parse-positional-numbers"]||this[Yn]()["parse-positional-numbers"]===void 0)e=this[Pc](e);if(o)e=Hn(e,this,R(this,It,"f").getMiddleware(),!1);return e}[Di](e={}){ye(this,ve,R(this,ve,"f")||{},"f");let t={};t.local=R(this,ve,"f").local||[],t.configObjects=R(this,ve,"f").configObjects||[];let n={};t.local.forEach((s)=>{n[s]=!0,(e[s]||[]).forEach((c)=>{n[c]=!0})}),Object.assign(R(this,Jn,"f"),Object.keys(R(this,Nt,"f")).reduce((s,c)=>{let a=R(this,Nt,"f")[c].filter((u)=>!(u in n));if(a.length>0)s[c]=a;return s},{})),ye(this,Nt,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],i=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(o.forEach((s)=>{t[s]=(R(this,ve,"f")[s]||[]).filter((c)=>!n[c])}),i.forEach((s)=>{t[s]=Cn(R(this,ve,"f")[s],(c)=>!n[c])}),t.envPrefix=R(this,ve,"f").envPrefix,ye(this,ve,t,"f"),ye(this,Me,R(this,Me,"f")?R(this,Me,"f").reset(n):pc(this,R(this,De,"f")),"f"),ye(this,$e,R(this,$e,"f")?R(this,$e,"f").reset(n):Cc(this,R(this,Me,"f"),R(this,De,"f")),"f"),ye(this,tt,R(this,tt,"f")?R(this,tt,"f").reset():dc(R(this,Me,"f"),R(this,$e,"f"),R(this,It,"f"),R(this,De,"f")),"f"),!R(this,jt,"f"))ye(this,jt,xc(this,R(this,Me,"f"),R(this,tt,"f"),R(this,De,"f")),"f");return R(this,It,"f").reset(),ye(this,kt,null,"f"),ye(this,lt,"","f"),ye(this,On,null,"f"),ye(this,Et,!1,"f"),this.parsed=!1,this}[Gc](e,t){return R(this,De,"f").path.relative(e,t)}[Uo](e,t,n,o=0,i=!1){let s=!!n||i;e=e||R(this,vn,"f"),R(this,ve,"f").__=R(this,De,"f").y18n.__,R(this,ve,"f").configuration=this[Yn]();let c=!!R(this,ve,"f").configuration["populate--"],a=Object.assign({},R(this,ve,"f").configuration,{"populate--":!0}),u=R(this,De,"f").Parser.detailed(e,Object.assign({},R(this,ve,"f"),{configuration:{"parse-positional-numbers":!1,...a}})),h=Object.assign(u.argv,R(this,Tn,"f")),m=void 0,p=u.aliases,w=!1,A=!1;if(Object.keys(h).forEach((W)=>{if(W===R(this,Bt,"f")&&h[W])w=!0;else if(W===R(this,$t,"f")&&h[W])A=!0}),h.$0=this.$0,this.parsed=u,o===0)R(this,Me,"f").clearCachedHelpMessage();try{if(this[Ci](),t)return this[Zn](h,c,!!n,!1);if(R(this,Bt,"f")){if([R(this,Bt,"f")].concat(p[R(this,Bt,"f")]||[]).filter((F)=>F.length>1).includes(""+h._[h._.length-1]))h._.pop(),w=!0}ye(this,dr,!1,"f");let W=R(this,tt,"f").getCommands(),y=R(this,jt,"f").completionKey in h,C=w||y||i;if(h._.length){if(W.length){let k;for(let F=o||0,x;h._[F]!==void 0;F++)if(x=String(h._[F]),W.includes(x)&&x!==R(this,kt,"f")){let S=R(this,tt,"f").runCommand(x,this,u,F+1,i,w||A||i);return this[Zn](S,c,!!n,!1)}else if(!k&&x!==R(this,kt,"f")){k=x;break}if(!R(this,tt,"f").hasDefaultCommand()&&R(this,pr,"f")&&k&&!C)R(this,$e,"f").recommendCommands(k,W)}if(R(this,kt,"f")&&h._.includes(R(this,kt,"f"))&&!y){if(R(this,Lt,"f"))Rn(!0);this.showCompletionScript(),this.exit(0)}}if(R(this,tt,"f").hasDefaultCommand()&&!C){let k=R(this,tt,"f").runCommand(null,this,u,0,i,w||A||i);return this[Zn](k,c,!!n,!1)}if(y){if(R(this,Lt,"f"))Rn(!0);e=[].concat(e);let k=e.slice(e.indexOf(`--${R(this,jt,"f").completionKey}`)+1);return R(this,jt,"f").getCompletion(k,(F,x)=>{if(F)throw new Je(F.message);(x||[]).forEach((S)=>{R(this,co,"f").log(S)}),this.exit(0)}),this[Zn](h,!c,!!n,!1)}if(!R(this,Et,"f")){if(w){if(R(this,Lt,"f"))Rn(!0);s=!0,this.showHelp("log"),this.exit(0)}else if(A){if(R(this,Lt,"f"))Rn(!0);s=!0,R(this,Me,"f").showVersion("log"),this.exit(0)}}if(!s&&R(this,ve,"f").skipValidation.length>0)s=Object.keys(h).some((k)=>R(this,ve,"f").skipValidation.indexOf(k)>=0&&h[k]===!0);if(!s){if(u.error)throw new Je(u.error.message);if(!y){let k=this[Mi](p,{},u.error);if(!n)m=Hn(h,this,R(this,It,"f").getMiddleware(),!0);if(m=this[Ac](k,m!==null&&m!==void 0?m:h),ze(m)&&!n)m=m.then(()=>{return Hn(h,this,R(this,It,"f").getMiddleware(),!1)})}}}catch(W){if(W instanceof Je)R(this,Me,"f").fail(W.message,W);else throw W}return this[Zn](m!==null&&m!==void 0?m:h,c,!!n,!0)}[Mi](e,t,n,o){let i={...this.getDemandedOptions()};return(s)=>{if(n)throw new Je(n.message);R(this,$e,"f").nonOptionCount(s),R(this,$e,"f").requiredArguments(s,i);let c=!1;if(R(this,qn,"f"))c=R(this,$e,"f").unknownCommands(s);if(R(this,zn,"f")&&!c)R(this,$e,"f").unknownArguments(s,e,t,!!o);else if(R(this,Xn,"f"))R(this,$e,"f").unknownArguments(s,e,{},!1,!1);R(this,$e,"f").limitedChoices(s),R(this,$e,"f").implications(s),R(this,$e,"f").conflicting(s)}}[Uc](){ye(this,Et,!0,"f")}[Qn](e){if(typeof e==="string")R(this,ve,"f").key[e]=!0;else for(let t of e)R(this,ve,"f").key[t]=!0}}function hc(e){return!!e&&typeof e.getInternalMethods==="function"}var Dd=Tc(pi),zc=Dd;qe();import{readFileSync as Lu}from"fs";import{join as Vs}from"path";function Kb(){let e=import.meta.dir;for(let t=0;t<5;t++){let n=Vs(e,"package.json");try{return Lu(n,"utf-8"),n}catch{}e=Vs(e,"..")}return Vs(import.meta.dir,"../../package.json")}var Gb=JSON.parse(Lu(Kb(),"utf-8")),Ub=process.argv[2]==="init";if(!Ub)try{let e=oa();if(e.created&&process.stdout.isTTY)process.stderr.write(`copse: created default config at ${e.path}
|
|
227
|
+
`)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (df(),uf));await e()}else{let[e,t,n,o,i,s,c,a,u,h,m,p,w,A,W,y,C,k,F,x]=await Promise.all([Promise.resolve().then(() => (pf(),mf)),Promise.resolve().then(() => (bf(),gf)),Promise.resolve().then(() => (yf(),xf)),Promise.resolve().then(() => (Cf(),Sf)),Promise.resolve().then(() => (Ef(),kf)),Promise.resolve().then(() => (Lf(),jf)),Promise.resolve().then(() => (Bf(),If)),Promise.resolve().then(() => (Gf(),Kf)),Promise.resolve().then(() => (Jf(),Tf)),Promise.resolve().then(() => (Yf(),Xf)),Promise.resolve().then(() => (Nf(),Qf)),Promise.resolve().then(() => (_f(),$f)),Promise.resolve().then(() => (tu(),eu)),Promise.resolve().then(() => (ou(),nu)),Promise.resolve().then(() => (hu(),du)),Promise.resolve().then(() => (pu(),mu)),Promise.resolve().then(() => (bu(),gu)),Promise.resolve().then(() => (Ou(),Ru)),Promise.resolve().then(() => (ku(),vu)),Promise.resolve().then(() => (ju(),Wu))]);zc(mi(process.argv)).locale("en").scriptName("copse").version(`copse v${Gb.version}`).alias("version","v").help("help").alias("help","h").option("no-color",{type:"boolean",description:"Disable color output"}).command(e.default).command(t.default).command(n.default).command(o.default).command(i.default).command(s.default).command(c.default).command(a.default).command(u.default).command(h.default).command(m.default).command(p.default).command(w.default).command(A.default).command(W.default).command(y.default).command(C.default).command(k.default).command(F.default).command(x.default).completion("completion","Generate shell completion script").demandCommand(1,"Please specify a command. Run --help to see available commands.").strict().parse()}
|