@getsolaris/copse 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/copse.js +67 -67
- package/package.json +1 -1
package/dist/copse.js
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
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 xe=(e,t)=>()=>(e&&(t=e(e=0)),t);var sn=import.meta.require;import{existsSync as Oi,readdirSync as $d,statSync as Gc}from"fs";import{join as Mi,resolve as Cd}from"path";function Pd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Uc(e){return Cd(Pd(e))}function Ed(e){let t=Mi(e,".git");if(!Oi(t))return!1;try{return Gc(t).isDirectory()}catch{return!1}}function Rd(e){return Oi(Mi(e,".git"))}function kd(e){if(!Oi(e))return!1;try{return Gc(e).isDirectory()}catch{return!1}}function Od(e){let t=e.map((n)=>n.trim()).filter(Boolean).map((n)=>new Bun.Glob(n));if(t.length===0)return()=>!1;return(n)=>t.some((r)=>r.match(n))}function Md(e,t=Hc,n=[]){let r=Math.max(1,Math.min(t,Sd)),i=Uc(e);if(!kd(i))return[];let s=Od(n),c=new Set,a=(d,h)=>{let p;try{p=$d(d,{withFileTypes:!0})}catch{return}for(let m of p){if(!m.isDirectory()||s(m.name))continue;let b=Mi(d,m.name);if(Rd(b)){if(Ed(b))c.add(b);continue}if(h<r)a(b,h+1)}};return a(i,1),[...c].sort((d,h)=>d.localeCompare(h))}function Jc(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>Uc(i.path))),r=[];for(let i of t){let s=i.depth??Hc,c=i.exclude??[],a=Md(i.path,s,c);for(let d of a){if(n.has(d))continue;n.add(d),r.push({path:d,...i.defaults??{}})}}if(r.length===0)return e;return{...e,repos:[...e.repos??[],...r]}}var Hc=1,Sd=3;var zc=()=>{};import{join as Di,resolve as vo}from"path";import*as an from"fs";function Nt(e,t,n){if(!Array.isArray(e)||e.some((r)=>typeof r!=="string"))n.push({field:t,message:"Must be an array of strings"})}function Zc(){let t=Bun.env.XDG_CONFIG_HOME??Di(Bun.env.HOME??"~",".config");return Di(t,"copse")}function yt(){return Di(Zc(),"config.json")}function Qn(e){let t=[];if(typeof e!=="object"||e===null)return t.push({field:"root",message:"Config must be a JSON object"}),t;let n=e;if(!("version"in n))t.push({field:"version",message:"Required field 'version' is missing"});else if(n.version!==1)t.push({field:"version",message:`Expected version 1, got ${JSON.stringify(n.version)}`});for(let r of Object.keys(n))if(!Fd.has(r))t.push({field:r,message:`Unknown field '${r}'`});if("defaults"in n&&n.defaults!==void 0)if(typeof n.defaults!=="object"||n.defaults===null)t.push({field:"defaults",message:"Must be an object"});else{let r=n.defaults;for(let i of Object.keys(r))if(!qc.has(i))t.push({field:`defaults.${i}`,message:`Unknown field '${i}'`});if("worktreeDir"in r&&typeof r.worktreeDir!=="string")t.push({field:"defaults.worktreeDir",message:"Must be a string"});if("autoUpstream"in r&&typeof r.autoUpstream!=="boolean")t.push({field:"defaults.autoUpstream",message:"Must be a boolean"});if("base"in r&&typeof r.base!=="string")t.push({field:"defaults.base",message:"Must be a string"});for(let i of["copyFiles","linkFiles","postCreate","postRemove"])if(i in r)Nt(r[i],`defaults.${i}`,t);if("sharedDeps"in r&&r.sharedDeps!==void 0)if(typeof r.sharedDeps!=="object"||r.sharedDeps===null)t.push({field:"defaults.sharedDeps",message:"Must be an object"});else Fi(r.sharedDeps,"defaults.sharedDeps",t)}if("repos"in n&&n.repos!==void 0)if(!Array.isArray(n.repos))t.push({field:"repos",message:"Must be an array"});else for(let r=0;r<n.repos.length;r++){let i=n.repos[r],s=`repos[${r}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Dd.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("worktreeDir"in c&&typeof c.worktreeDir!=="string")t.push({field:`${s}.worktreeDir`,message:"Must be a string"});if("autoUpstream"in c&&typeof c.autoUpstream!=="boolean")t.push({field:`${s}.autoUpstream`,message:"Must be a boolean"});if("base"in c&&typeof c.base!=="string")t.push({field:`${s}.base`,message:"Must be a string"});for(let a of["copyFiles","linkFiles","postCreate","postRemove"])if(a in c)Nt(c[a],`${s}.${a}`,t);if("sharedDeps"in c&&c.sharedDeps!==void 0)if(typeof c.sharedDeps!=="object"||c.sharedDeps===null)t.push({field:`${s}.sharedDeps`,message:"Must be an object"});else Fi(c.sharedDeps,`${s}.sharedDeps`,t);if("monorepo"in c&&c.monorepo!==void 0)if(typeof c.monorepo!=="object"||c.monorepo===null)t.push({field:`${s}.monorepo`,message:"Must be an object"});else{let a=c.monorepo;for(let d of Object.keys(a))if(!Wd.has(d))t.push({field:`${s}.monorepo.${d}`,message:`Unknown field '${d}'`});if("autoDetect"in a&&typeof a.autoDetect!=="boolean")t.push({field:`${s}.monorepo.autoDetect`,message:"Must be a boolean"});if("extraPatterns"in a&&a.extraPatterns!==void 0)Nt(a.extraPatterns,`${s}.monorepo.extraPatterns`,t);if("hooks"in a&&a.hooks!==void 0)if(!Array.isArray(a.hooks))t.push({field:`${s}.monorepo.hooks`,message:"Must be an array"});else for(let d=0;d<a.hooks.length;d++){let h=a.hooks[d];if(typeof h!=="object"||h===null){t.push({field:`${s}.monorepo.hooks[${d}]`,message:"Must be an object"});continue}if(!("glob"in h)||typeof h.glob!=="string")t.push({field:`${s}.monorepo.hooks[${d}].glob`,message:"Required string field"});if("copyFiles"in h&&h.copyFiles!==void 0)Nt(h.copyFiles,`${s}.monorepo.hooks[${d}].copyFiles`,t);if("linkFiles"in h&&h.linkFiles!==void 0)Nt(h.linkFiles,`${s}.monorepo.hooks[${d}].linkFiles`,t);if("postCreate"in h&&h.postCreate!==void 0)Nt(h.postCreate,`${s}.monorepo.hooks[${d}].postCreate`,t);if("postRemove"in h&&h.postRemove!==void 0)Nt(h.postRemove,`${s}.monorepo.hooks[${d}].postRemove`,t)}}}if("workspaces"in n&&n.workspaces!==void 0)if(!Array.isArray(n.workspaces))t.push({field:"workspaces",message:"Must be an array"});else for(let r=0;r<n.workspaces.length;r++){let i=n.workspaces[r],s=`workspaces[${r}]`;if(typeof i!=="object"||i===null){t.push({field:s,message:"Must be an object"});continue}let c=i;for(let a of Object.keys(c))if(!Ad.has(a))t.push({field:`${s}.${a}`,message:`Unknown field '${a}'`});if(!("path"in c)||typeof c.path!=="string")t.push({field:`${s}.path`,message:"Required string field 'path' is missing"});if("depth"in c&&c.depth!==void 0){if(typeof c.depth!=="number"||!Number.isInteger(c.depth)||c.depth<1||c.depth>3)t.push({field:`${s}.depth`,message:"Must be an integer between 1 and 3"})}if("exclude"in c&&c.exclude!==void 0)Nt(c.exclude,`${s}.exclude`,t);if("defaults"in c&&c.defaults!==void 0)if(typeof c.defaults!=="object"||c.defaults===null||Array.isArray(c.defaults))t.push({field:`${s}.defaults`,message:"Must be an object"});else{let a=c.defaults;for(let d of Object.keys(a))if(!qc.has(d))t.push({field:`${s}.defaults.${d}`,message:`Unknown field '${d}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${s}.defaults.worktreeDir`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${s}.defaults.autoUpstream`,message:"Must be a boolean"});if("base"in a&&typeof a.base!=="string")t.push({field:`${s}.defaults.base`,message:"Must be a string"});for(let d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${s}.defaults.${d}`,t);if("sharedDeps"in a&&a.sharedDeps!==void 0)if(typeof a.sharedDeps!=="object"||a.sharedDeps===null)t.push({field:`${s}.defaults.sharedDeps`,message:"Must be an object"});else Fi(a.sharedDeps,`${s}.defaults.sharedDeps`,t)}}if("templates"in n&&n.templates!==void 0)if(typeof n.templates!=="object"||n.templates===null||Array.isArray(n.templates))t.push({field:"templates",message:"Must be an object (key-value map)"});else{let r=n.templates;for(let[i,s]of Object.entries(r)){let c=`templates.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let d of Object.keys(a))if(!Id.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`});if("worktreeDir"in a&&typeof a.worktreeDir!=="string")t.push({field:`${c}.worktreeDir`,message:"Must be a string"});if("base"in a&&typeof a.base!=="string")t.push({field:`${c}.base`,message:"Must be a string"});if("autoUpstream"in a&&typeof a.autoUpstream!=="boolean")t.push({field:`${c}.autoUpstream`,message:"Must be a boolean"});for(let d of["copyFiles","linkFiles","postCreate","postRemove"])if(d in a)Nt(a[d],`${c}.${d}`,t)}}if("lifecycle"in n&&n.lifecycle!==void 0)if(typeof n.lifecycle!=="object"||n.lifecycle===null)t.push({field:"lifecycle",message:"Must be an object"});else{let r=n.lifecycle;for(let i of Object.keys(r))if(!Td.has(i))t.push({field:`lifecycle.${i}`,message:`Unknown field '${i}'`});if("autoCleanMerged"in r&&typeof r.autoCleanMerged!=="boolean")t.push({field:"lifecycle.autoCleanMerged",message:"Must be a boolean"});if("staleAfterDays"in r&&(typeof r.staleAfterDays!=="number"||r.staleAfterDays<1))t.push({field:"lifecycle.staleAfterDays",message:"Must be a positive number"});if("maxWorktrees"in r&&(typeof r.maxWorktrees!=="number"||r.maxWorktrees<1))t.push({field:"lifecycle.maxWorktrees",message:"Must be a positive number"})}if("sessions"in n&&n.sessions!==void 0)if(typeof n.sessions!=="object"||n.sessions===null)t.push({field:"sessions",message:"Must be an object"});else{let r=n.sessions;for(let i of Object.keys(r))if(!Bd.has(i))t.push({field:`sessions.${i}`,message:`Unknown field '${i}'`});for(let i of["enabled","autoCreate","autoKill"])if(i in r&&typeof r[i]!=="boolean")t.push({field:`sessions.${i}`,message:"Must be a boolean"});if("prefix"in r&&typeof r.prefix!=="string")t.push({field:"sessions.prefix",message:"Must be a string"});if("defaultLayout"in r&&typeof r.defaultLayout!=="string")t.push({field:"sessions.defaultLayout",message:"Must be a string"});if("layouts"in r&&r.layouts!==void 0)if(typeof r.layouts!=="object"||r.layouts===null||Array.isArray(r.layouts))t.push({field:"sessions.layouts",message:"Must be an object (key-value map)"});else{let i=r.layouts;for(let[s,c]of Object.entries(i)){let a=`sessions.layouts.${s}`;if(typeof c!=="object"||c===null){t.push({field:a,message:"Must be an object"});continue}let d=c;if(!("windows"in d)||!Array.isArray(d.windows))t.push({field:`${a}.windows`,message:"Required array field"});else for(let h=0;h<d.windows.length;h++){let p=d.windows[h];if(typeof p!=="object"||p===null){t.push({field:`${a}.windows[${h}]`,message:"Must be an object"});continue}if(!("name"in p)||typeof p.name!=="string")t.push({field:`${a}.windows[${h}].name`,message:"Required string field"});if("command"in p&&typeof p.command!=="string")t.push({field:`${a}.windows[${h}].command`,message:"Must be a string"})}}}if("defaultLayout"in r&&typeof r.defaultLayout==="string"&&"layouts"in r&&typeof r.layouts==="object"&&r.layouts!==null){let i=r.layouts;if(!(r.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${r.defaultLayout}' does not exist in sessions.layouts`})}}if("profiles"in n&&n.profiles!==void 0)if(typeof n.profiles!=="object"||n.profiles===null||Array.isArray(n.profiles))t.push({field:"profiles",message:"Must be an object (key-value map)"});else{let r=n.profiles;for(let[i,s]of Object.entries(r)){let c=`profiles.${i}`;if(typeof s!=="object"||s===null){t.push({field:c,message:"Must be an object"});continue}let a=s;for(let d of Object.keys(a))if(!Nd.has(d))t.push({field:`${c}.${d}`,message:`Unknown field '${d}'`})}}if("activeProfile"in n&&n.activeProfile!==void 0){if(typeof n.activeProfile!=="string")t.push({field:"activeProfile",message:"Must be a string"});else if("profiles"in n&&n.profiles!==void 0&&typeof n.profiles==="object"&&n.profiles!==null&&!Array.isArray(n.profiles)){let r=n.profiles;if(!(n.activeProfile in r))t.push({field:"activeProfile",message:`Profile '${n.activeProfile}' does not exist in profiles`})}else if(!("profiles"in n)||n.profiles===void 0)t.push({field:"activeProfile",message:"Cannot set activeProfile without profiles"})}return t}function Fi(e,t,n){let r=new Set(["strategy","paths","invalidateOn"]);for(let i of Object.keys(e))if(!r.has(i))n.push({field:`${t}.${i}`,message:`Unknown field '${i}'`});if("strategy"in e&&!["hardlink","symlink","copy"].includes(e.strategy))n.push({field:`${t}.strategy`,message:'Must be "hardlink", "symlink", or "copy"'});if("paths"in e)Nt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Nt(e.invalidateOn,`${t}.invalidateOn`,n)}function Ur(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Zn(e){if(Array.isArray(e))return e.map((t)=>Zn(t));if(Ur(e)){let t={};for(let[n,r]of Object.entries(e))t[n]=Zn(r);return t}return e}function Qc(e,t){if(t===void 0)return Zn(e);if(Array.isArray(t))return t.map((i)=>Zn(i));if(!Ur(t))return Zn(t);let n=Ur(e)?e:{},r={};for(let[i,s]of Object.entries(n))r[i]=Zn(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(Ur(c)&&Ur(s)){r[i]=Qc(c,s);continue}r[i]=Zn(s)}return r}function jd(e){if(!e.activeProfile)return structuredClone(e);let t=e.profiles?.[e.activeProfile];if(!t||typeof t!=="object"||Array.isArray(t))throw Error(`Active profile '${e.activeProfile}' does not exist`);return Qc(e,t)}function _c(e){let t=e??yt();if(!an.existsSync(t))return structuredClone(Yc);let n;try{let c=yo.readFileSync(t,"utf-8");n=JSON.parse(c)}catch(c){let a=c.message;if(a.includes("JSON"))throw Error(`Invalid JSON in config file: ${a}`);if(c instanceof SyntaxError)throw Error(`Invalid JSON in config file: ${a}`);throw Error(`Failed to read config file: ${a}`)}let r=Qn(n);if(r.length>0){let c=r.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=jd(n),s=Qn(i);if(s.length>0){let c=s.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed after applying activeProfile: ${c}`)}return i}function De(e){return Jc(_c(e))}function Ai(e){return _c(e)}function bt(e,t){let n=vo(t),r=e.repos?.find((i)=>vo(i.path)===n);return{worktreeDir:r?.worktreeDir??e.defaults?.worktreeDir??lr.worktreeDir,copyFiles:r?.copyFiles??e.defaults?.copyFiles??lr.copyFiles,linkFiles:r?.linkFiles??e.defaults?.linkFiles??lr.linkFiles,postCreate:r?.postCreate??e.defaults?.postCreate??lr.postCreate,postRemove:r?.postRemove??e.defaults?.postRemove??lr.postRemove,autoUpstream:r?.autoUpstream??e.defaults?.autoUpstream??lr.autoUpstream,monorepo:r?.monorepo,sharedDeps:r?.sharedDeps??e.defaults?.sharedDeps,base:r?.base??e.defaults?.base}}function kn(e){return(e.repos??[]).map((t)=>vo(t.path))}function $o(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function jt(e){let t=e??yt(),n=e?vo(t,".."):Zc();if(!an.existsSync(n))yo.mkdirSync(n,{recursive:!0,mode:448});if(an.existsSync(t))return t;return _n(t,`${JSON.stringify(Yc,null,2)}
|
|
4
|
-
`),t}function ea(e){let t=e??yt(),n=an.existsSync(t);return{path:jt(e),created:!n}}function Co(e,t){return e.templates?.[t]}function So(e,t){return{worktreeDir:t.worktreeDir??e.worktreeDir,copyFiles:t.copyFiles??e.copyFiles,linkFiles:t.linkFiles??e.linkFiles,postCreate:t.postCreate??e.postCreate,postRemove:t.postRemove??e.postRemove,autoUpstream:t.autoUpstream??e.autoUpstream,monorepo:e.monorepo,sharedDeps:e.sharedDeps,base:t.base??e.base}}function _t(e){return e.sessions??{}}function fr(e,t){let n=e.sessions;if(!n?.layouts)return;let r=t??n.defaultLayout;if(!r)return;return n.layouts[r]}function ta(e,t,n){if(t.length===0)return;let r=e;for(let s=0;s<t.length-1;s++){let c=t[s],a=t[s+1],d=r[c];if(d===void 0||d===null)r[c]=typeof a==="number"?[]:{};r=r[c]}let i=t[t.length-1];if(n===void 0){if(Array.isArray(r)&&typeof i==="number")r.splice(i,1);else delete r[i];return}r[i]=n}function _n(e,t){let n=`${e}.tmp.${Date.now()}`;try{an.writeFileSync(n,t,{encoding:"utf-8",mode:384});let r=JSON.parse(t),i=Qn(r);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);yo.renameSync(n,e)}catch(r){if(an.existsSync(n))yo.unlinkSync(n);throw r}}var yo,Xc="~/.copse/worktrees/{repo}-{branch}",Yc,lr,Fd,qc,Dd,Ad,Wd,Id,Td,Bd,Nd;var Ye=xe(()=>{zc();yo=an,Yc={version:1,defaults:{worktreeDir:Xc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},lr={worktreeDir:Xc,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};Fd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),qc=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),Dd=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),Ad=new Set(["path","depth","exclude","defaults"]),Wd=new Set(["autoDetect","extraPatterns","hooks"]),Id=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),Td=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),Bd=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),Nd=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function na(e){let t=String(e),n=t.length-1;return Ze.context.id+(n?String.fromCharCode(96+n):"")+t}function Ti(e){Ze.context=e}function Ld(){return{...Ze.context,id:Ze.getNextContextId(),count:0}}function Jr(e,t){let n=Be,r=Ae,i=e.length===0,s=t===void 0?r:t,c=i?fa:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>$t(()=>On(c)));Ae=c,Be=null;try{return Ot(a,!0)}finally{Be=n,Ae=r}}function ue(e,t){t=t?Object.assign({},Ro,t):Ro;let n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},r=(i)=>{if(typeof i==="function")if(fe&&fe.running&&fe.sources.has(n))i=i(n.tValue);else i=i(n.value);return ha(n,i)};return[da.bind(n),r]}function oa(e,t,n){let r=Mo(e,t,!0,Mt);if(dr&&fe&&fe.running)tt.push(r);else hr(r)}function en(e,t,n){let r=Mo(e,t,!1,Mt);if(dr&&fe&&fe.running)tt.push(r);else hr(r)}function Ft(e,t,n){la=Zd;let r=Mo(e,t,!1,Mt),i=qr&&Lt(qr);if(i)r.suspense=i;if(!n||!n.render)r.user=!0;dt?dt.push(r):hr(r)}function He(e,t,n){n=n?Object.assign({},Ro,n):Ro;let r=Mo(e,t,!0,0);if(r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,dr&&fe&&fe.running)r.tState=Mt,tt.push(r);else hr(r);return da.bind(r)}function Ud(e){return e&&typeof e==="object"&&"then"in e}function ua(e,t,n){let r,i,s;if(typeof t==="function")r=e,i=t,s=n||{};else r=!0,i=e,s=t||{};let c=null,a=Wi,d=null,h=!1,p=!1,m="initialValue"in s,b=typeof r==="function"&&He(r),D=new Set,[T,v]=(s.storage||ue)(s.initialValue),[E,k]=ue(void 0),[O,w]=ue(void 0,{equals:!1}),[y,S]=ue(m?"ready":"unresolved");if(Ze.context){if(d=Ze.getNextContextId(),s.ssrLoadFrom==="initial")a=s.initialValue;else if(Ze.load&&Ze.has(d))a=Ze.load(d)}function B(U,J,X,re){if(c===U){if(c=null,re!==void 0&&(m=!0),(U===a||J===a)&&s.onHydrated)queueMicrotask(()=>s.onHydrated(re,{value:J}));if(a=Wi,fe&&U&&h)fe.promises.delete(U),h=!1,Ot(()=>{fe.running=!0,A(J,X)},!1);else A(J,X)}return J}function A(U,J){Ot(()=>{if(J===void 0)v(()=>U);S(J!==void 0?"errored":m?"ready":"unresolved"),k(J);for(let X of D.keys())X.decrement();D.clear()},!1)}function V(){let U=qr&&Lt(qr),J=T(),X=E();if(X!==void 0&&!c)throw X;if(Be&&!Be.user&&U)oa(()=>{if(O(),c){if(U.resolved&&fe&&h)fe.promises.add(c);else if(!D.has(U))U.increment(),D.add(U)}});return J}function q(U=!0){if(U!==!1&&p)return;p=!1;let J=b?b():r;if(h=fe&&fe.running,J==null||J===!1){B(c,$t(T));return}if(fe&&c)fe.promises.delete(c);let X,re=a!==Wi?a:$t(()=>{try{return i(J,{value:T(),refetching:U})}catch(he){X=he}});if(X!==void 0){B(c,void 0,Eo(X),J);return}else if(!Ud(re))return B(c,re,void 0,J),re;if(c=re,"v"in re){if(re.s===1)B(c,re.v,void 0,J);else B(c,void 0,Eo(re.v),J);return re}return p=!0,queueMicrotask(()=>p=!1),Ot(()=>{S(m?"refreshing":"pending"),w()},!1),re.then((he)=>B(re,he,void 0,J),(he)=>B(re,void 0,Eo(he),J))}Object.defineProperties(V,{state:{get:()=>y()},error:{get:()=>E()},loading:{get(){let U=y();return U==="pending"||U==="refreshing"}},latest:{get(){if(!m)return V();let U=E();if(U&&!c)throw U;return T()}}});let H=Ae;if(b)oa(()=>(H=Ae,q(!1)));else q(!1);return[V,{refetch:(U)=>Jd(H,()=>q(U)),mutate:v}]}function $t(e){if(!ur&&Be===null)return e();let t=Be;Be=null;try{if(ur)return ur.untrack(e);return e()}finally{Be=t}}function tn(e,t,n){let r=Array.isArray(e),i,s=n&&n.defer;return(c)=>{let a;if(r){a=Array(e.length);for(let h=0;h<e.length;h++)a[h]=e[h]()}else a=e();if(s)return s=!1,c;let d=$t(()=>t(a,i,c));return i=a,d}}function ln(e){Ft(()=>$t(e))}function it(e){if(Ae===null);else if(Ae.cleanups===null)Ae.cleanups=[e];else Ae.cleanups.push(e);return e}function Jd(e,t){let n=Ae,r=Be;Ae=e,Be=null;try{return Ot(t,!0)}catch(i){Fo(i)}finally{Ae=n,Be=r}}function zd(e){if(fe&&fe.running)return e(),fe.done;let t=Be,n=Ae;return Promise.resolve().then(()=>{Be=t,Ae=n;let r;if(dr||qr)r=fe||(fe={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise((i)=>r.resolve=i)),r.running=!0;return Ot(e,!1),Be=Ae=null,r?r.done:void 0})}function Mn(e,t){let n=Symbol("context");return{id:n,Provider:Qd(n),defaultValue:e}}function Lt(e){let t;return Ae&&Ae.context&&(t=Ae.context[e.id])!==void 0?t:e.defaultValue}function qd(e){let t=He(e),n=He(()=>Ni(t()));return n.toArray=()=>{let r=n();return Array.isArray(r)?r:r!=null?[r]:[]},n}function da(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)hr(this);else{let t=tt;tt=null,Ot(()=>ko(this),!1),tt=t}if(Be){let t=this.observers?this.observers.length:0;if(!Be.sources)Be.sources=[this],Be.sourceSlots=[t];else Be.sources.push(this),Be.sourceSlots.push(t);if(!this.observers)this.observers=[Be],this.observerSlots=[Be.sources.length-1];else this.observers.push(Be),this.observerSlots.push(Be.sources.length-1)}if(e&&fe.sources.has(this))return this.tValue;return this.value}function ha(e,t,n){let r=fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(fe){let i=fe.running;if(i||!n&&fe.sources.has(e))fe.sources.add(e),e.tValue=t;if(!i)e.value=t}else e.value=t;if(e.observers&&e.observers.length)Ot(()=>{for(let i=0;i<e.observers.length;i+=1){let s=e.observers[i],c=fe&&fe.running;if(c&&fe.disposed.has(s))continue;if(c?!s.tState:!s.state){if(s.pure)tt.push(s);else dt.push(s);if(s.observers)pa(s)}if(!c)s.state=Mt;else s.tState=Mt}if(tt.length>1e6)throw tt=[],Error()},!1)}return t}function hr(e){if(!e.fn)return;On(e);let t=Oo;if(sa(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{Ot(()=>{fe&&(fe.running=!0),Be=Ae=e,sa(e,e.tValue,t),Be=Ae=null},!1)})}function sa(e,t,n){let r,i=Ae,s=Be;Be=Ae=e;try{r=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(On),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(On),e.owned=null;return e.updatedAt=n+1,Fo(c)}finally{Be=s,Ae=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)ha(e,r,!0);else if(fe&&fe.running&&e.pure){if(!fe.sources.has(e))e.value=r;fe.sources.add(e),e.tValue=r}else e.value=r;e.updatedAt=n}}function Mo(e,t,n,r=Mt,i){let s={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Ae,context:Ae?Ae.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=r;if(Ae===null);else if(Ae!==fa)if(fe&&fe.running&&Ae.pure)if(!Ae.tOwned)Ae.tOwned=[s];else Ae.tOwned.push(s);else if(!Ae.owned)Ae.owned=[s];else Ae.owned.push(s);if(ur&&s.fn){let c=s.fn,[a,d]=ue(void 0,{equals:!1}),h=ur.factory(c,d);it(()=>h.dispose());let p,m=()=>zd(d).then(()=>{if(p)p.dispose(),p=void 0});s.fn=(b)=>{if(a(),fe&&fe.running){if(!p)p=ur.factory(c,m);return p.track(b)}return h.track(b)}}return s}function Xr(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===zr)return ko(e);if(e.suspense&&$t(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Oo)){if(t&&fe.disposed.has(e))return;if(t?e.tState:e.state)n.push(e)}for(let r=n.length-1;r>=0;r--){if(e=n[r],t){let i=e,s=n[r+1];while((i=i.owner)&&i!==s)if(fe.disposed.has(i))return}if((t?e.tState:e.state)===Mt)hr(e);else if((t?e.tState:e.state)===zr){let i=tt;tt=null,Ot(()=>ko(e,n[0]),!1),tt=i}}}function Ot(e,t){if(tt)return e();let n=!1;if(!t)tt=[];if(dt)n=!0;else dt=[];Oo++;try{let r=e();return Xd(n),r}catch(r){if(!n)dt=null;tt=null,Fo(r)}}function Xd(e){if(tt){if(dr&&fe&&fe.running)Yd(tt);else ma(tt);tt=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:r,disposed:i}=fe;dt.push.apply(dt,fe.effects),t=fe.resolve;for(let s of dt)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,Ot(()=>{for(let s of i)On(s);for(let s of r){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)On(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}ia(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,dt),dt=null,ia(!0);return}}let n=dt;if(dt=null,n.length)Ot(()=>la(n),!1);if(t)t()}function ma(e){for(let t=0;t<e.length;t++)Xr(e[t])}function Yd(e){for(let t=0;t<e.length;t++){let n=e[t],r=fe.queue;if(!r.has(n))r.add(n),dr(()=>{r.delete(n),Ot(()=>{fe.running=!0,Xr(n)},!1),fe&&(fe.running=!1)})}}function Zd(e){let t,n=0;for(t=0;t<e.length;t++){let r=e[t];if(!r.user)Xr(r);else e[n++]=r}if(Ze.context){if(Ze.count){Ze.effects||(Ze.effects=[]),Ze.effects.push(...e.slice(0,n));return}Ti()}if(Ze.effects&&(Ze.done||!Ze.count))e=[...Ze.effects,...e],n+=Ze.effects.length,delete Ze.effects;for(t=0;t<n;t++)Xr(e[t])}function ko(e,t){let n=fe&&fe.running;if(n)e.tState=0;else e.state=0;for(let r=0;r<e.sources.length;r+=1){let i=e.sources[r];if(i.sources){let s=n?i.tState:i.state;if(s===Mt){if(i!==t&&(!i.updatedAt||i.updatedAt<Oo))Xr(i)}else if(s===zr)ko(i,t)}}}function pa(e){let t=fe&&fe.running;for(let n=0;n<e.observers.length;n+=1){let r=e.observers[n];if(t?!r.tState:!r.state){if(t)r.tState=zr;else r.state=zr;if(r.pure)tt.push(r);else dt.push(r);r.observers&&pa(r)}}}function On(e){let t;if(e.sources)while(e.sources.length){let n=e.sources.pop(),r=e.sourceSlots.pop(),i=n.observers;if(i&&i.length){let s=i.pop(),c=n.observerSlots.pop();if(r<i.length)s.sourceSlots[c]=r,i[r]=s,n.observerSlots[r]=c}}if(e.tOwned){for(t=e.tOwned.length-1;t>=0;t--)On(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)ga(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)On(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}if(fe&&fe.running)e.tState=0;else e.state=0}function ga(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)ga(e.owned[n])}function Eo(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function ca(e,t,n){try{for(let r of t)r(e)}catch(r){Fo(r,n&&n.owner||null)}}function Fo(e,t=Ae){let n=ra&&t&&t.context&&t.context[ra],r=Eo(e);if(!n)throw r;if(dt)dt.push({fn(){ca(r,n,t)},state:Mt});else ca(r,n,t)}function Ni(e){if(typeof e==="function"&&!e.length)return Ni(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let r=Ni(e[n]);Array.isArray(r)?t.push.apply(t,r):t.push(r)}return t}return e}function Qd(e,t){return function(r){let i;return en(()=>i=$t(()=>{return Ae.context={...Ae.context,[e]:r.value},qd(()=>r.children)}),void 0),i}}function aa(e){for(let t=0;t<e.length;t++)e[t]()}function eh(e,t,n={}){let r=[],i=[],s=[],c=0,a=t.length>1?[]:null;return it(()=>aa(s)),()=>{let d=e()||[],h=d.length,p,m;return d[Hd],$t(()=>{let D,T,v,E,k,O,w,y,S;if(h===0){if(c!==0)aa(s),s=[],r=[],i=[],c=0,a&&(a=[]);if(n.fallback)r=[_d],i[0]=Jr((B)=>{return s[0]=B,n.fallback()}),c=1}else if(c===0){i=Array(h);for(m=0;m<h;m++)r[m]=d[m],i[m]=Jr(b);c=h}else{v=Array(h),E=Array(h),a&&(k=Array(h));for(O=0,w=Math.min(c,h);O<w&&r[O]===d[O];O++);for(w=c-1,y=h-1;w>=O&&y>=O&&r[w]===d[y];w--,y--)v[y]=i[w],E[y]=s[w],a&&(k[y]=a[w]);D=new Map,T=Array(y+1);for(m=y;m>=O;m--)S=d[m],p=D.get(S),T[m]=p===void 0?-1:p,D.set(S,m);for(p=O;p<=w;p++)if(S=r[p],m=D.get(S),m!==void 0&&m!==-1)v[m]=i[p],E[m]=s[p],a&&(k[m]=a[p]),m=T[m],D.set(S,m);else s[p]();for(m=O;m<h;m++)if(m in v){if(i[m]=v[m],s[m]=E[m],a)a[m]=k[m],a[m](m)}else i[m]=Jr(b);i=i.slice(0,c=h),r=d.slice(0)}return i});function b(D){if(s[m]=D,a){let[T,v]=ue(m);return a[m]=v,t(d[m],T)}return t(d[m])}}}function xa(e,t){if(th){if(Ze.context){let n=Ze.context;Ti(Ld());let r=$t(()=>e(t||{}));return Ti(n),r}}return $t(()=>e(t||{}))}function Po(){return!0}function Ii(e){return!(e=typeof e==="function"?e():e)?{}:e}function rh(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Do(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Bi in a,e[c]=typeof a==="function"?(t=!0,He(a)):a}if(Gd&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let d=Ii(e[a])[c];if(d!==void 0)return d}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Ii(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Ii(e[a])));return[...new Set(c)]}},nh);let n={},r=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let d=Object.getOwnPropertyNames(a);for(let h=d.length-1;h>=0;h--){let p=d[h];if(p==="__proto__"||p==="constructor")continue;let m=Object.getOwnPropertyDescriptor(a,p);if(!r[p])r[p]=m.get?{enumerable:!0,configurable:!0,get:rh.bind(n[p]=[m.get.bind(a)])}:m.value!==void 0?m:void 0;else{let b=n[p];if(b){if(m.get)b.push(m.get.bind(a));else if(m.value!==void 0)b.push(()=>m.value)}}}}let i={},s=Object.keys(r);for(let c=s.length-1;c>=0;c--){let a=s[c],d=r[a];if(d&&d.get)Object.defineProperty(i,a,d);else i[a]=d?d.value:void 0}return i}function et(e){let t="fallback"in e&&{fallback:()=>e.fallback};return He(eh(()=>e.each,e.children,t||void 0))}function ie(e){let t=e.keyed,n=He(()=>e.when,void 0,void 0),r=t?n:He(n,void 0,{equals:(i,s)=>!i===!s});return He(()=>{let i=r();if(i){let s=e.children;return typeof s==="function"&&s.length>0?$t(()=>s(t?i:()=>{if(!$t(r))throw oh("Show");return n()})):s}return e.fallback},void 0,void 0)}var Ze,Vd=!1,Kd=(e,t)=>e===t,Bi,Gd,Hd,jw,Ro,ra=null,la,Mt=1,zr=2,fa,Wi,Ae=null,fe=null,dr=null,ur=null,Be=null,tt=null,dt=null,Oo=0,Lw,ia,qr,_d,th=!1,nh,oh=(e)=>`Stale read from <${e}>.`;var Ue=xe(()=>{Ze={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return na(this.context.count)},getNextContextId(){return na(this.context.count++)}};Bi=Symbol("solid-proxy"),Gd=typeof Proxy==="function",Hd=Symbol("solid-track"),jw=Symbol("solid-dev-component"),Ro={equals:Kd},la=ma,fa={owned:null,cleanups:null,context:null,owner:null},Wi={};[Lw,ia]=ue(!1);_d=Symbol("fallback");nh={get(e,t,n){if(t===Bi)return n;return e.get(t)},has(e,t){if(t===Bi)return!0;return e.has(t)},set:Po,deleteProperty:Po,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Po,deleteProperty:Po}},ownKeys(e){return e.keys()}}});function wa(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=ih.get(e))!==null&&t!==void 0?t:e}var ji,ih,ba;var va=xe(()=>{ih=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),ba=(ji=String.fromCodePoint)!==null&&ji!==void 0?ji:(e)=>{let t="";if(e>65535)e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023;return t+=String.fromCharCode(e),t}});function ya(e){let t=typeof atob==="function"?atob(e):typeof Buffer.from==="function"?Buffer.from(e,"base64").toString("binary"):new Buffer(e,"base64").toString("binary"),n=t.length&-2,r=new Uint16Array(n/2);for(let i=0,s=0;i<n;i+=2){let c=t.charCodeAt(i),a=t.charCodeAt(i+1);r[s++]=c|a<<8}return r}var $a;var Ca=xe(()=>{$a=ya("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg")});var ht;var Sa=xe(()=>{(function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.FLAG13=8192]="FLAG13",e[e.BRANCH_LENGTH=8064]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"})(ht||(ht={}))});function Vi(e){return e>=Je.ZERO&&e<=Je.NINE}function sh(e){return e>=Je.UPPER_A&&e<=Je.UPPER_F||e>=Je.LOWER_A&&e<=Je.LOWER_F}function ch(e){return e>=Je.UPPER_A&&e<=Je.UPPER_Z||e>=Je.LOWER_A&&e<=Je.LOWER_Z||Vi(e)}function ah(e){return e===Je.EQUALS||ch(e)}class Ki{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=at.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=fn.Strict,this.runConsumed=0}startEntity(e){this.decodeMode=e,this.state=at.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1,this.runConsumed=0}write(e,t){switch(this.state){case at.EntityStart:{if(e.charCodeAt(t)===Je.NUM)return this.state=at.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1);return this.state=at.NamedEntity,this.stateNamedEntity(e,t)}case at.NumericStart:return this.stateNumericStart(e,t);case at.NumericDecimal:return this.stateNumericDecimal(e,t);case at.NumericHex:return this.stateNumericHex(e,t);case at.NamedEntity:return this.stateNamedEntity(e,t)}}stateNumericStart(e,t){if(t>=e.length)return-1;if((e.charCodeAt(t)|Pa)===Je.LOWER_X)return this.state=at.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1);return this.state=at.NumericDecimal,this.stateNumericDecimal(e,t)}stateNumericHex(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Vi(n)||sh(n)){let r=n<=Je.NINE?n-Je.ZERO:(n|Pa)-Je.LOWER_A+10;this.result=this.result*16+r,this.consumed++,t++}else return this.emitNumericEntity(n,3)}return-1}stateNumericDecimal(e,t){while(t<e.length){let n=e.charCodeAt(t);if(Vi(n))this.result=this.result*10+(n-Je.ZERO),this.consumed++,t++;else return this.emitNumericEntity(n,2)}return-1}emitNumericEntity(e,t){var n;if(this.consumed<=t)return(n=this.errors)===null||n===void 0||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===Je.SEMI)this.consumed+=1;else if(this.decodeMode===fn.Strict)return 0;if(this.emitCodePoint(wa(this.result),this.consumed),this.errors){if(e!==Je.SEMI)this.errors.missingSemicolonAfterCharacterReference();this.errors.validateNumericCharacterReference(this.result)}return this.consumed}stateNamedEntity(e,t){let{decodeTree:n}=this,r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(r&ht.FLAG13)!==0){let c=(r&ht.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=r&ht.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}while(this.runConsumed<c){if(t>=e.length)return-1;let a=this.runConsumed-1,d=n[this.treeIndex+1+(a>>1)],h=a%2===0?d&255:d>>8&255;if(e.charCodeAt(t)!==h)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(c>>1),r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Je.SEMI&&i!==0&&(r&ht.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=fh(n,r,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===fn.Attribute&&(i===0||ah(s))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],i=(r&ht.VALUE_LENGTH)>>14,i!==0){if(s===Je.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==fn.Strict&&(r&ht.FLAG13)===0)this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0}t++,this.excess++}return-1}emitNotTerminatedNamedEntity(){var e;let{result:t,decodeTree:n}=this,r=(n[t]&ht.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(e,t,n){let{decodeTree:r}=this;if(this.emitCodePoint(t===1?r[e]&~(ht.VALUE_LENGTH|ht.FLAG13):r[e+1],n),t===3)this.emitCodePoint(r[e+2],n);return n}end(){var e;switch(this.state){case at.NamedEntity:return this.result!==0&&(this.decodeMode!==fn.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case at.NumericDecimal:return this.emitNumericEntity(0,2);case at.NumericHex:return this.emitNumericEntity(0,3);case at.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case at.EntityStart:return 0}}}function lh(e){let t="",n=new Ki(e,(r)=>t+=ba(r));return function(i,s){let c=0,a=0;while((a=i.indexOf("&",a))>=0){t+=i.slice(c,a),n.startEntity(s);let h=n.write(i,a+1);if(h<0){c=a+n.end();break}c=a+h,a=h===0?c+1:c}let d=t+i.slice(c);return t="",d}}function fh(e,t,n,r){let i=(t&ht.BRANCH_LENGTH)>>7,s=t&ht.JUMP_TABLE;if(i===0)return s!==0&&r===s?n:-1;if(s){let h=r-s;return h<0||h>=i?-1:e[n+h]-1}let c=i+1>>1,a=0,d=i-1;while(a<=d){let h=a+d>>>1,p=h>>1,b=e[n+p]>>(h&1)*8&255;if(b<r)a=h+1;else if(b>r)d=h-1;else return e[n+c+h]}return-1}function er(e,t=fn.Legacy){return uh(e,t)}var Je,Pa=32,at,fn,uh;var Ea=xe(()=>{va();Ca();Sa();(function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"})(Je||(Je={}));(function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"})(at||(at={}));(function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"})(fn||(fn={}));uh=lh($a)});var Ra,ka;var Ma=xe(()=>{Ea();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ra||(Ra={}));(function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"})(ka||(ka={}))});import{CliRenderer as hh,createCliRenderer as mh,engine as ph}from"@opentui/core";import{createTestRenderer as n1}from"@opentui/core/testing";import{ASCIIFontRenderable as gh,BoxRenderable as xh,CodeRenderable as bh,DiffRenderable as wh,InputRenderable as vh,LineNumberRenderable as yh,MarkdownRenderable as $h,ScrollBoxRenderable as Ch,SelectRenderable as Sh,TabSelectRenderable as Ph,TextareaRenderable as Eh,TextAttributes as Gi,TextNodeRenderable as Rh,TextRenderable as kh}from"@opentui/core";import{engine as i1,Timeline as s1}from"@opentui/core";import{BaseRenderable as Ba,createTextAttributes as Mh,InputRenderable as Hi,InputRenderableEvents as Yr,isTextNodeRenderable as zi,parseColor as Fa,Renderable as Fh,RootTextNodeRenderable as Dh,ScrollBoxRenderable as Ah,SelectRenderable as Da,SelectRenderableEvents as Ui,TabSelectRenderable as Aa,TabSelectRenderableEvents as Ji,TextNodeRenderable as Wh,TextRenderable as Na}from"@opentui/core";import{BaseRenderable as Hh,isTextNodeRenderable as Uh,TextNodeRenderable as Jh,TextRenderable as zh,Yoga as Ia}from"@opentui/core";import{TimeToFirstDrawRenderable as Yh}from"@opentui/core";import{createSlotRegistry as b1}from"@opentui/core";function Th({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:r,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:d,getFirstChild:h,getNextSibling:p}){function m(w,y,S,B){if(S!==void 0&&!B)B=[];if(typeof y!=="function")return b(w,y,B,S);en((A)=>b(w,y(),A,S),B)}function b(w,y,S,B,A){while(typeof S==="function")S=S();if(y===S)return S;let V=typeof y,q=B!==void 0;if(V==="string"||V==="number"){if(V==="number")y=y.toString();if(q){let H=S[0];if(H&&r(H))i(H,y);else H=t(y);S=v(w,S,B,H)}else if(S!==""&&typeof S==="string")i(h(w),S=y);else v(w,S,B,t(y)),S=y}else if(y==null||V==="boolean")S=v(w,S,B);else if(V==="function")return en(()=>{let H=y();while(typeof H==="function")H=H();S=b(w,H,S,B)}),()=>S;else if(Array.isArray(y)){let H=[];if(D(H,y,A))return en(()=>S=b(w,H,S,B,!0)),()=>S;if(H.length===0){let U=v(w,S,B);if(q)return S=U}else if(Array.isArray(S))if(S.length===0)E(w,H,B);else T(w,S,H);else if(S==null||S==="")E(w,H);else T(w,q&&S||[h(w)],H);S=H}else{if(Array.isArray(S)){if(q)return S=v(w,S,B,y);v(w,S,null,y)}else if(S==null||S===""||!h(w))s(w,y);else k(w,y,h(w));S=y}return S}function D(w,y,S){let B=!1;for(let A=0,V=y.length;A<V;A++){let q=y[A],H;if(q==null||q===!0||q===!1);else if(Array.isArray(q))B=D(w,q)||B;else if((H=typeof q)==="string"||H==="number")w.push(t(q));else if(H==="function")if(S){while(typeof q==="function")q=q();B=D(w,Array.isArray(q)?q:[q])||B}else w.push(q),B=!0;else w.push(q)}return B}function T(w,y,S){let B=S.length,A=y.length,V=B,q=0,H=0,U=p(y[A-1]),J=null;while(q<A||H<V){if(y[q]===S[H]){q++,H++;continue}while(y[A-1]===S[V-1])A--,V--;if(A===q){let X=V<B?H?p(S[H-1]):S[V-H]:U;while(H<V)s(w,S[H++],X)}else if(V===H)while(q<A){if(!J||!J.has(y[q]))c(w,y[q]);q++}else if(y[q]===S[V-1]&&S[H]===y[A-1]){let X=p(y[--A]);s(w,S[H++],p(y[q++])),s(w,S[--V],X),y[A]=S[V]}else{if(!J){J=new Map;let re=H;while(re<V)J.set(S[re],re++)}let X=J.get(y[q]);if(X!=null)if(H<X&&X<V){let re=q,he=1,_;while(++re<A&&re<V){if((_=J.get(y[re]))==null||_!==X+he)break;he++}if(he>X-H){let me=y[q];while(H<X)s(w,S[H++],me)}else k(w,S[H++],y[q++])}else q++;else c(w,y[q++])}}}function v(w,y,S,B){if(S===void 0){let V;while(V=h(w))c(w,V);return B&&s(w,B),B??""}let A=B||n();if(y.length){let V=!1;for(let q=y.length-1;q>=0;q--){let H=y[q];if(A!==H){let U=d(H)===w;if(!V&&!q)U?k(w,A,H):s(w,A,S);else U&&c(w,H)}else V=!0}}else s(w,A,S);return[A]}function E(w,y,S){for(let B=0,A=y.length;B<A;B++)s(w,y[B],S)}function k(w,y,S){s(w,y,S),c(w,S)}function O(w,y,S={},B){if(y||(y={}),!B)en(()=>S.children=b(w,y.children,S.children));return en(()=>y.ref&&y.ref(w)),en(()=>{for(let A in y){if(A==="children"||A==="ref")continue;let V=y[A];if(V===S[A])continue;a(w,A,V,S[A]),S[A]=V}}),S}return{render(w,y){let S;return Jr((B)=>{S=B,m(y,w())}),S},insert:m,spread(w,y,S){if(typeof y==="function")en((B)=>O(w,y(),B,S));else O(w,y,void 0,S)},createElement:e,createTextNode:t,insertNode:s,setProp(w,y,S,B){return a(w,y,S,B),S},mergeProps:Do,effect:en,memo:Ih,createComponent:xa,use(w,y,S){return $t(()=>w(y,S))}}}function Bh(e){let t=Th(e);return t.mergeProps=Do,t}function Qi(e){if(!Ao.has(e))Ao.set(e,0);let t=Ao.get(e)+1;return Ao.set(e,t),`${e}-${t}`}function Nh(e,t,n){if(lt("Inserting node:",st(t),"into parent:",st(e),"with anchor:",st(n),t instanceof mr),t instanceof Zr)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof Zr)n=n.getSlotChild(e);if(zi(t)){if(!(e instanceof Na)&&!zi(e))throw Error(`Orphan text error: "${t.toChunks().map((s)=>s.text).join("")}" must have a <text> as a parent: ${e.id} above ${t.id}`)}if(!(e instanceof Ba))throw console.error("[INSERT]","Tried to mount a non base renderable"),Error("Tried to mount a non base renderable");if(!n){e.add(t);return}let r=qi(e),i=r.findIndex((s)=>s.id===n.id);if(i===-1)lt("[INSERT]","Could not find anchor",st(e),st(n),"[children]",...r.map((s)=>s.id));e.add(t,i)}function jh(e,t){if(lt("Removing node:",st(t),"from parent:",st(e)),t instanceof Zr)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Ba&&!t.parent){t.destroyRecursively();return}})}function Lh(e){lt("Creating text node:",e);let t=Qi("text-node");if(typeof e==="number")e=e.toString();return mr.fromString(er(e),{id:t})}function Vh(){let e=Qi("slot-node");return lt("Creating slot node",e),new Zr(e)}function Wa(e){lt("Getting parent of node:",st(e));let t=e.parent??void 0;if(t instanceof Dh)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof Ah&&n.content===t)t=n;return t}function es(e){Object.assign(Ha,e)}function Xh(){return Ha}var Zi,un=()=>{let e=Lt(Zi);if(!e)throw Error("No renderer found");return e},Oh=(e)=>{let t=un();ln(()=>{t.on("resize",e)}),it(()=>{t.off("resize",e)})},nt=()=>{let e=un(),[t,n]=ue({width:e.width,height:e.height});return Oh((i,s)=>{n({width:i,height:s})}),t},rt=(e,t)=>{let r=un().keyInput;ln(()=>{if(r.on("keypress",e),t?.release)r.on("keyrelease",e)}),it(()=>{if(r.off("keypress",e),t?.release)r.off("keyrelease",e)})},pr=(e)=>{let n=un().keyInput;ln(()=>{n.on("paste",e)}),it(()=>{n.off("paste",e)})},Ta=(e)=>{let t=un();ln(()=>{t.on("selection",e)}),it(()=>{t.off("selection",e)})},Ih=(e)=>He(()=>e()),Ao,lt=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},mr,st=(e)=>{if(!e)return;return e.id},qi=(e)=>{let t;if(e instanceof Na)t=e.getTextChildren();else t=e.getChildren();return t},Kh,K,We,z,l,j,f,L,Gh,o,h1,m1,_i,ja,La,Zr,Qr,Wo,Xi,Yi,Va,Ka,Ga,qh,Ha,Zh=(e,t)=>{let n,r=!1,i=!1,s=!0,c=!1,a=e.destroy.bind(e),d=()=>{if(i)return;if(!n){r=!0;return}i=!0,n()};e.once("destroy",d),e.destroy=()=>{if(s){c=!0;return}a()};try{n=Kh(()=>z(Zi.Provider,{get value(){return e},get children(){return z(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(r)d();if(c)a()},Ua=async(e,t={})=>{let n=t instanceof hh?t:await mh({...t,onDestroy:()=>{t.onDestroy?.()}});ph.attach(n),Zh(n,e)};var te=xe(()=>{Ue();Ma();Ue();Ue();Ue();Zi=Mn();Ao=new Map;mr=class mr extends Wh{static fromString(e,t={}){let n=new mr(t);return n.add(e),n}};({render:Kh,effect:K,memo:We,createComponent:z,createElement:l,createTextNode:j,insertNode:f,insert:L,spread:Gh,setProp:o,mergeProps:h1,use:m1}=Bh({createElement(e){lt("Creating element:",e);let t=Qi(e),n=Lt(Zi);if(!n)throw Error("No renderer found");let r=Xh();if(!r[e])throw Error(`[Reconciler] Unknown component type: ${e}`);let i=new r[e](n,{id:t});return lt("Element created with id:",t),i},createTextNode:Lh,createSlotNode:Vh,replaceText(e,t){if(lt("Replacing text:",t,"in node:",st(e)),!(e instanceof mr))return;e.replace(er(t),0)},setProperty(e,t,n,r){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(r)e.off(i,r);return}if(zi(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Mh(n),e.fg=n.fg?Fa(n.fg):e.fg,e.bg=n.bg?Fa(n.bg):e.bg;return}return}switch(t){case"id":lt("Id mapped",e.id,"=",n),e[t]=n;break;case"focused":if(!(e instanceof Fh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof Da)i=Ui.SELECTION_CHANGED;else if(e instanceof Aa)i=Ji.SELECTION_CHANGED;else if(e instanceof Hi)i=Yr.CHANGE;if(!i)break;if(n)e.on(i,n);if(r)e.off(i,r);break;case"onInput":if(e instanceof Hi){if(n)e.on(Yr.INPUT,n);if(r)e.off(Yr.INPUT,r)}break;case"onSubmit":if(e instanceof Hi){if(n)e.on(Yr.ENTER,n);if(r)e.off(Yr.ENTER,r)}else e[t]=n;break;case"onSelect":if(e instanceof Da){if(n)e.on(Ui.ITEM_SELECTED,n);if(r)e.off(Ui.ITEM_SELECTED,r)}else if(e instanceof Aa){if(n)e.on(Ji.ITEM_SELECTED,n);if(r)e.off(Ji.ITEM_SELECTED,r)}break;case"style":for(let s in n){let c=n[s];if(r!==void 0&&c===r[s])continue;e[s]=c}break;case"text":case"content":{let s=typeof n==="string"?n:Array.isArray(n)?n.join(""):`${n}`;e[t]=er(s);break}default:e[t]=n}},isTextNode(e){return e instanceof mr},insertNode:Nh,removeNode:jh,getParentNode:Wa,getFirstChild(e){lt("Getting first child of node:",st(e));let t=qi(e)[0];if(!t){lt("No first child found for node:",st(e));return}return lt("First child found:",st(t),"for node:",st(e)),t},getNextSibling(e){lt("Getting next sibling of node:",st(e));let t=Wa(e);if(!t){lt("No parent found for node:",st(e));return}let n=qi(t),r=n.indexOf(e);if(r===-1||r===n.length-1){lt("No next sibling found for node:",st(e));return}let i=n[r+1];if(!i){lt("Next sibling is null for node:",st(e));return}return lt("Next sibling found:",st(i),"for node:",st(e)),i}}));_i=class _i extends Hh{constructor(e){super({id:e})}add(e,t){throw Error("Can't add children on an Slot renderable")}getChildren(){return[]}remove(e){}insertBefore(e,t){throw Error("Can't add children on an Slot renderable")}getRenderable(e){return}getChildrenCount(){return 0}requestRender(){}findDescendantById(e){return}};ja=class ja extends Jh{slotParent;destroyed=!1;constructor(e,t){super({id:e});this._visible=!1,this.slotParent=t}destroy(){if(this.destroyed)return;this.destroyed=!0,this.slotParent?.destroy(),super.destroy()}};La=class La extends _i{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Ia.default.Node.create(),this.yogaNode.setDisplay(Ia.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};Zr=class Zr extends _i{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(Uh(e)||e instanceof zh){if(!this.textNode)this.textNode=new ja(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new La(`slot-layout-${this.id}`,this);return this.layoutNode}destroy(){if(this.destroyed)return;if(this.destroyed=!0,this.layoutNode)this.layoutNode.destroy();if(this.textNode)this.textNode.destroy()}};Qr=class Qr extends Rh{_ctx;constructor(e,t){super(t);this._ctx=e}};Wo=class Wo extends Qr{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|Gi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|Gi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|Gi.UNDERLINE}};Xi=class Xi extends Wo{constructor(e){super(e,"b")}};Yi=class Yi extends Wo{constructor(e){super(e,"i")}};Va=class Va extends Wo{constructor(e){super(e,"u")}};Ka=class Ka extends Qr{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
-
`)}};Ga=class Ga extends Qr{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};qh={box:xh,text:kh,input:vh,select:Sh,textarea:Eh,ascii_font:gh,tab_select:Ph,scrollbox:Ch,code:bh,diff:wh,line_number:yh,markdown:$h,span:Qr,strong:Xi,b:Xi,em:Yi,i:Yi,u:Va,br:Ka,a:Ga},Ha={...qh};es({time_to_first_draw:Yh})});function Ja(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function za(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function ts(e,t){switch(e){case"success":return t.success;case"error":return t.error;case"warning":return t.warning;case"info":return t.info;case"loading":return ns(t.loading);default:return""}}function ns(e){if(Ja(e))return e.frames[0]??"\u25CC";return e}function rs(e){return Ja(e)?e:null}var Qh,qa;var Xa=xe(()=>{Qh={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},qa={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:Qh,close:"\xD7"}});import{BoxRenderable as To,TextAttributes as _h,TextRenderable as _r,parseColor as em}from"@opentui/core";function im(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function fm(e,t={}){let[n,r]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??Io.top;else i.bottom=t.bottom??Io.bottom;if(r==="left")i.left=t.left??Io.left,i.alignItems="flex-start";else if(r==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??Io.right,i.alignItems="flex-end";return i}function um(e){return e.includes("center")}function dm(e){return e.startsWith("top")}function hm(e,t={top:0,right:0,bottom:0,left:0}){if(!e)return{...t};let{padding:n,paddingX:r,paddingY:i}=e;return{top:e.paddingTop??i??n??t.top,right:e.paddingRight??r??n??t.right,bottom:e.paddingBottom??i??n??t.bottom,left:e.paddingLeft??r??n??t.left}}function mm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function Ya(e,t,n){let r=os.style,i=os[e]?.style,s=t?.style,c=t?.[e]?.style,a=mm(r,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function Za(e,t,n){if(n!==void 0)return n;let r=t?.[e]?.duration;if(r!==void 0)return r;if(t?.duration!==void 0)return t.duration;return os.duration}var tm,nm=200,Qa=60,Io,rm,os,om=1,sm=class{subscribers=[];toasts=[];dismissedToasts=new Set;_activeToasts=[];_updateActiveToastsCache=()=>{let e=this.toasts.filter((t)=>!this.dismissedToasts.has(t.id));if(e.length!==this._activeToasts.length||e.some((t,n)=>t!==this._activeToasts[n]))this._activeToasts=e};subscribe=(e)=>{return this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);if(t>-1)this.subscribers.splice(t,1)}};publish=(e)=>{for(let t of this.subscribers)t(e)};addToast=(e)=>{this.toasts=[...this.toasts,e],this._updateActiveToastsCache(),this.publish(e)};create=(e)=>{let{message:t,...n}=e,r=typeof e.id==="number"||e.id&&e.id.length>0?e.id:om++,i=this.toasts.find((c)=>c.id===r),s=e.dismissible===void 0?!0:e.dismissible;if(this.dismissedToasts.has(r))this.dismissedToasts.delete(r);if(i)this.toasts=this.toasts.map((c)=>{if(c.id===r)return this.publish({...c,...e,id:r,title:t}),{...c,...e,id:r,dismissible:s,title:t};return c}),this._updateActiveToastsCache();else this.addToast({title:t,...n,dismissible:s,id:r,type:e.type??"default"});return r};dismiss=(e)=>{if(e!==void 0)this.dismissedToasts.add(e),this._updateActiveToastsCache(),setTimeout(()=>{for(let t of this.subscribers)t({id:e,dismiss:!0})},0);else{for(let t of this.toasts){this.dismissedToasts.add(t.id);for(let n of this.subscribers)n({id:t.id,dismiss:!0})}this._updateActiveToastsCache()}return e};message=(e,t)=>{return this.create({...t,message:e,type:"default"})};error=(e,t)=>{return this.create({...t,message:e,type:"error"})};success=(e,t)=>{return this.create({...t,message:e,type:"success"})};info=(e,t)=>{return this.create({...t,message:e,type:"info"})};warning=(e,t)=>{return this.create({...t,message:e,type:"warning"})};loading=(e,t)=>{return this.create({...t,message:e,type:"loading"})};promise=(e,t)=>{if(!t)return;let n;if(t.loading!==void 0)n=this.create({...t,type:"loading",message:t.loading,description:typeof t.description!=="function"?t.description:void 0});let r=e instanceof Function?e():e,i=n!==void 0,s,c=r.then(async(d)=>{if(s=["resolve",d],im(d)&&!d.ok){i=!1;let h=typeof t.error==="function"?await t.error(`HTTP error! status: ${d.status}`):t.error,p=typeof t.description==="function"?await t.description(`HTTP error! status: ${d.status}`):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(d instanceof Error){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}else if(t.success!==void 0){i=!1;let h=typeof t.success==="function"?await t.success(d):t.success,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"success",description:p,...m})}}).catch(async(d)=>{if(s=["reject",d],t.error!==void 0){i=!1;let h=typeof t.error==="function"?await t.error(d):t.error,p=typeof t.description==="function"?await t.description(d):t.description,m=typeof h==="object"&&h!==null?h:{message:h};this.create({id:n,type:"error",description:p,...m})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((d,h)=>c.then(()=>s[0]==="reject"?h(s[1]):d(s[1])).catch(h));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ct,cm=(e,t)=>Ct.message(e,t),am=()=>Ct.toasts,lm=()=>Ct.getActiveToasts(),tr,pm,_a;var el=xe(()=>{Xa();tm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Io={top:1,right:2,bottom:1,left:2},rm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},os={style:rm,duration:tm.DEFAULT,default:{style:{borderColor:"#333333"}},success:{style:{borderColor:"#22c55e"}},error:{style:{borderColor:"#ef4444"}},warning:{style:{borderColor:"#f59e0b"}},info:{style:{borderColor:"#3b82f6"}},loading:{style:{borderColor:"#6b7280"}}};Ct=new sm,tr=Object.assign(cm,{success:Ct.success,info:Ct.info,warning:Ct.warning,error:Ct.error,message:Ct.message,promise:Ct.promise,dismiss:Ct.dismiss,loading:Ct.loading},{getHistory:am,getToasts:lm});pm=class extends To{_toast;_icons;_toastOptions;_computedStyle;_closeButton;_onRemove;_remainingTime;_closeTimerStartTime=0;_lastCloseTimerStartTime=0;_timerHandle=null;_paused=!1;_dismissed=!1;_spinnerHandle=null;_spinnerFrameIndex=0;_spinnerConfig=null;_iconText=null;_contentBox=null;_titleText=null;_descriptionText=null;_actionsBox=null;constructor(e,t){let n=Ya(t.toast.type,t.toastOptions,t.toast.style),r=Za(t.toast.type,t.toastOptions,t.toast.duration),i=hm(n,{top:0,right:1,bottom:0,left:1});super(e,{id:`toast-${t.toast.id}`,flexDirection:"row",gap:1,border:n.border,borderStyle:n.borderStyle,borderColor:n.borderColor,customBorderChars:n.customBorderChars,backgroundColor:n.backgroundColor,minHeight:n.minHeight,maxWidth:n.maxWidth??Qa,minWidth:n.minWidth,paddingTop:i.top,paddingRight:i.right,paddingBottom:i.bottom,paddingLeft:i.left,onMouseOver:()=>this.pause(),onMouseOut:()=>this.resume()});if(this._toast=t.toast,this._icons=t.icons===!1?!1:{...qa,...t.icons},this._toastOptions=t.toastOptions,this._computedStyle=n,this._closeButton=t.closeButton,this._onRemove=t.onRemove,this._remainingTime=r,this.setupContent(),this._remainingTime!==1/0&&this._toast.type!=="loading")this.startTimer();if(this._toast.type==="loading")this.startSpinner()}setupContent(){let e=this.ctx,t=this._toast,n=this._computedStyle,r=this._icons,i=n.iconColor??n.borderColor,s=t.type==="loading";if(s&&r!==!1)this._spinnerConfig=rs(r.loading);let c=t.icon??(r===!1?void 0:s?ns(r.loading):ts(t.type,r));if(c)this._iconText=new _r(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new To(e,{id:`${this.id}-content`,flexDirection:"column",flexGrow:1,flexShrink:1,gap:0});let a=typeof t.title==="function"?t.title():t.title;if(a)this._titleText=new _r(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:_h.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let d=typeof t.description==="function"?t.description():t.description;if(d)this._descriptionText=new _r(e,{id:`${this.id}-description`,content:d,fg:n.mutedColor,wrapMode:"word"}),this._contentBox.add(this._descriptionText);if(this.add(this._contentBox),t.action){if(this._actionsBox=new To(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&za(t.action)){let h=new _r(e,{id:`${this.id}-action`,content:`[${t.action.label}]`,fg:n.foregroundColor,onMouseUp:()=>t.action?.onClick?.()});this._actionsBox.add(h)}this.add(this._actionsBox)}if((t.closeButton??this._closeButton)&&t.dismissible!==!1){let h=r===!1?"\xD7":r.close,p=new _r(e,{id:`${this.id}-close`,content:h,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(p)}}startTimer(){if(this._remainingTime===1/0)return;this._closeTimerStartTime=Date.now(),this._timerHandle=setTimeout(()=>{this._toast.onAutoClose?.(this._toast),this.dismiss()},this._remainingTime)}pause(){if(this._paused||this._remainingTime===1/0)return;if(this._paused=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;if(this._lastCloseTimerStartTime<this._closeTimerStartTime){let e=Date.now()-this._closeTimerStartTime;this._remainingTime=Math.max(0,this._remainingTime-e)}this._lastCloseTimerStartTime=Date.now()}resume(){if(!this._paused||this._remainingTime===1/0)return;this._paused=!1,this.startTimer()}startSpinner(){if(this._spinnerHandle||!this._spinnerConfig)return;let{frames:e,interval:t}=this._spinnerConfig;this._spinnerHandle=setInterval(()=>{this._spinnerFrameIndex=(this._spinnerFrameIndex+1)%e.length;let n=e[this._spinnerFrameIndex];if(this._iconText&&n)this._iconText.content=n,this.requestRender()},t)}stopSpinner(){if(this._spinnerHandle)clearInterval(this._spinnerHandle),this._spinnerHandle=null}dismiss(){if(this._dismissed)return;if(this._dismissed=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),this._toast.onDismiss?.(this._toast),Ct.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},nm)}updateToast(e){this._toast=e;let t=Ya(e.type,this._toastOptions,e.style);if(this._computedStyle=t,t.borderColor)this.borderColor=t.borderColor;if(t.customBorderChars)this.customBorderChars=t.customBorderChars;let n=t.iconColor??t.borderColor;if(this._iconText){let s=e.icon??(this._icons===!1?void 0:ts(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=em(n)}if(this._titleText){let s=typeof e.title==="function"?e.title():e.title;if(s)this._titleText.content=s}if(this._descriptionText){let s=typeof e.description==="function"?e.description():e.description;if(s)this._descriptionText.content=s}let r=this._spinnerHandle!==null,i=e.type==="loading";if(r&&!i)this.stopSpinner(),this._spinnerConfig=null;else if(!r&&i){if(this._icons!==!1)this._spinnerConfig=rs(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=Za(e.type,this._toastOptions,e.duration),this._remainingTime!==1/0)this.startTimer()}this.requestRender()}get toast(){return this._toast}get isDismissed(){return this._dismissed}destroy(){if(this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),super.destroy()}},_a=class extends To{_options={};_toastRenderables=new Map;_unsubscribe=null;constructor(e,t={}){super(e,{id:"toaster",flexDirection:"column",gap:1,zIndex:9999});this._options=t,this.applyLayoutOptions(),this.subscribe()}applyLayoutOptions(){let e=this._options.position??"bottom-right",t=fm(e,this._options.offset??{}),n=um(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??Qa}isToastPosition(e){return e==="top-left"||e==="top-center"||e==="top-right"||e==="bottom-left"||e==="bottom-center"||e==="bottom-right"}set position(e){if(this.isToastPosition(e))this._options.position=e,this.applyLayoutOptions();else super.position=e}set offset(e){this._options.offset=e,this.applyLayoutOptions()}set gap(e){this._options.gap=e,super.gap=e}set visibleToasts(e){this._options.visibleToasts=e}set closeButton(e){this._options.closeButton=e}set icons(e){this._options.icons=e}set stackingMode(e){this._options.stackingMode=e}set maxWidth(e){this._options.maxWidth=e,super.maxWidth=e}set toastOptions(e){this._options.toastOptions=e}subscribe(){this._unsubscribe=Ct.subscribe((e)=>{if("dismiss"in e&&e.dismiss)this.removeToast(e.id);else this.addOrUpdateToast(e)})}addOrUpdateToast(e){let t=this._toastRenderables.get(e.id);if(t){t.updateToast(e);return}if((this._options.stackingMode??"single")==="single")for(let[r]of this._toastRenderables)this.removeToast(r);else{let r=this._options.visibleToasts??3,i=this._toastRenderables.size;if(i>=r){let s=i-r+1,c=Array.from(this._toastRenderables.keys());for(let a=0;a<s;a++){let d=c[a];if(d!==void 0)this.removeToast(d)}}}let n=new pm(this.ctx,{toast:e,icons:this._options.icons,toastOptions:this._options.toastOptions,closeButton:this._options.closeButton,onRemove:(r)=>this.handleToastRemoved(r)});if(this._toastRenderables.set(e.id,n),dm(this._options.position??"bottom-right"))this.add(n);else this.add(n,0);this.requestRender()}removeToast(e){let t=this._toastRenderables.get(e);if(t)t.dismiss()}handleToastRemoved(e){let t=this._toastRenderables.get(e.id);if(t)this._toastRenderables.delete(e.id),this.remove(t.id),t.destroy(),this.requestRender()}get toastCount(){return this._toastRenderables.size}dismissAll(){for(let[e]of this._toastRenderables)this.removeToast(e)}destroy(){this._unsubscribe?.();for(let[,e]of this._toastRenderables)e.destroy();this._toastRenderables.clear(),super.destroy()}}});var is=xe(()=>{el();te();es({toaster:_a})});function nl(e){let[t,n]=ue("list"),[r,i]=ue(0),[s,c]=ue(null),[a,d]=ue(!1),[h,p]=ue(!1),[m,b]=ue(!1),[D,T]=ue(!1),[v,E]=ue(new Set),[k,O]=ue(!1),[w,y]=ue(null),S=(q)=>{let H=new Set(v());if(H.has(q))H.delete(q);else H.add(q);E(H)},B=(q)=>{E(new Set(q))},A=(q)=>{let H=new Set(q),U=v(),J=new Set;for(let X of U)if(H.has(X))J.add(X);if(J.size!==U.size)E(J)},V=()=>{E(new Set)};return z(tl.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:r,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:d,showCommandPalette:h,setShowCommandPalette:p,showDetailView:m,setShowDetailView:b,inputFocused:D,setInputFocused:T,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:v,toggleWorktreeSelection:S,selectAllNonMain:B,pruneSelectedWorktrees:A,clearSelection:V,showBulkActions:k,setShowBulkActions:O,focusPickerData:w,setFocusPickerData:y},get children(){return e.children}})}function ot(){let e=Lt(tl);if(!e)throw Error("useApp must be used within AppProvider");return e}var tl;var zt=xe(()=>{te();Ue();tl=Mn()});var St,eo,ss,to;var qt=xe(()=>{St=class St extends Error{exitCode;stderr;command;constructor(e,t,n,r){super(e);this.exitCode=t;this.stderr=n;this.command=r;this.name="GitError"}};eo=class eo extends Error{installed;required;constructor(e,t){super(`git version ${e} is below minimum required ${t}`);this.installed=e;this.required=t;this.name="GitVersionError"}};ss=class ss extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};to=class to extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Xt(e,t,n){let r=Array(e.length),i=0;async function s(){while(i<e.length){let a=i++;r[a]=await n(e[a])}}let c=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(c),r}import{resolve as rl,dirname as gm}from"path";import{mkdirSync as xm,existsSync as bm}from"fs";function gr(e){let t=Bo.get(e);if(!t)return;if(Date.now()>t.expires){Bo.delete(e);return}return t.data}function Vt(e,t,n=wm){return Bo.set(e,{data:t,expires:Date.now()+n}),t}function ft(){Bo.clear()}class se{static gitVersionChecked=!1;static async run(e,t){let n=Bun.spawn(["git",...e],{cwd:t??Bun.cwd,stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[r,i,s]=await Promise.all([new Response(n.stdout).text(),new Response(n.stderr).text(),n.exited]);if(s!==0)throw new St(`git ${e[0]} failed: ${i.trim()}`,s,i.trim(),`git ${e.join(" ")}`);return r.trim()}static async exec(e,t){return this.run(e,t)}static async checkVersion(){if(this.gitVersionChecked)return;let t=(await this.run(["--version"])).match(/git version (\d+)\.(\d+)\.?((\d+)?)/);if(!t)throw Error("Cannot parse git version");let[,n,r]=t.map(Number);if(n<2||n===2&&r<17)throw new eo(`${n}.${r}`,"2.17");this.gitVersionChecked=!0}static async list(e){await this.checkVersion();let t=e??Bun.cwd,n=await this.getMainRepoPath(t).catch(()=>t),r=`list:${n}`,i=gr(r);if(i)return i;let s=n.split("/").pop()??"",c=await this.run(["worktree","list","--porcelain"],t),a=this.parsePorcelain(c,s,n),d=await Xt(a,10,async(h)=>({...h,isDirty:await this.isDirty(h.path).catch(()=>!1)}));return Vt(r,d)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=rl(i);if(!t.has(s))t.add(s),n.push(s)}return(await Xt(n,5,async(i)=>{try{return await this.list(i)}catch{return[]}})).flat()}static parsePorcelain(e,t,n){let r=e.trim();if(!r)return[];return r.split(/\n\n+/).filter(Boolean).map((s,c)=>{let a=s.split(`
|
|
6
|
-
`),
|
|
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[d
|
|
10
|
-
`).filter(Boolean)){let[d
|
|
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 vr(e,t,n){let r=Dn(e,n?.prefix),i=n?.attach??!0;if(await mn(r)){if(i)await Ko(r);return r}if(await Tm(r,t,n?.layout),Im(t,{name:r,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await Ko(r);return r}async function Go(e,t,n){let r=Dn(e,n),i=await mn(r);if(i)await hs(r);return us(t),i}var wr,al="copse";var pn=xe(()=>{Fn();wr=class wr extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function fl(e){let[t,n]=ue([]),r=(s)=>{n((c)=>c.filter((a)=>a.id!==s))},i=(s)=>{let c=`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`,a=s.duration??3000;n((d)=>[...d,{...s,id:c}].slice(-5)),setTimeout(()=>{r(c)},a)};return z(ll.Provider,{value:{toasts:t,addToast:i,removeToast:r},get children(){return e.children}})}function rn(){let e=Lt(ll);if(!e)throw Error("useToast must be used within ToastProvider");return e}var ll;var nr=xe(()=>{te();Ue();ll=Mn()});function yr(e){let[t,n]=ue(0),r=setInterval(()=>{n((i)=>(i+1)%ul.length)},80);return it(()=>clearInterval(r)),(()=>{var i=l("box"),s=l("text");return f(i,s),o(i,"flexDirection","row"),o(i,"gap",1),L(s,()=>ul[t()]),L(i,(()=>{var c=We(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return L(a,()=>e.label),K((d)=>o(a,"fg",x.text.secondary,d)),a})()})(),null),K((c)=>o(s,"fg",e.color??x.text.accent,c)),i})()}var ul;var Ho=xe(()=>{te();te();te();te();te();te();Ue();wt();ul=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function dl(e){let t=mt(),n=rn(),r=un(),i=nt(),s=()=>i().width,c=()=>i().height,[a,d]=ue(null),[h,p]=ue(!0),[m,b]=ue("");Ta((y)=>{let S=y.getSelectedText();if(!S)return;r.copyToClipboardOSC52(S),n.addToast({type:"info",message:"Copied to clipboard"})});let D;it(()=>{if(D)clearTimeout(D)});let T=()=>{return(t.worktrees()??[]).find((B)=>B.isMain)?.branch??"main"};Ft(tn(()=>e.worktree.path,(y)=>{if(D)clearTimeout(D);if(!y){d(null),b(""),p(!1);return}d(null),b(""),p(!0),D=setTimeout(async()=>{if(e.worktree.path!==y)return;try{let[S,[B,A],V]=await Promise.all([Nm(y),e.worktree.branch&&!e.worktree.isMain?Promise.all([se.diffBetween(T(),e.worktree.branch,{stat:!0},y).catch(()=>""),se.diffBetween(T(),e.worktree.branch,void 0,y).catch(()=>"")]):Promise.resolve(["",""]),e.worktree.branch?se.getAheadBehind(e.worktree.branch,y):Promise.resolve({ahead:0,behind:0})]);if(e.worktree.path!==y)return;let q=null;try{q=Kt(y)}catch{}let H=null,U=Gt(y);if(U){let J=await mn(U.name).catch(()=>!1);H={meta:U,active:J}}if(e.worktree.path!==y)return;d({commits:S,diffStat:B,fullDiff:A,aheadBehind:V,focus:q,session:H}),b("")}catch(S){if(e.worktree.path!==y)return;d(null),b(S.message)}finally{if(e.worktree.path===y)p(!1)}},Bm)}));let v=()=>{let y=e.worktree;if(y.isLocked)return"\uD83D\uDD12 locked";if(y.isDirty)return"\u25CF dirty";return"\u2713 clean"},E=()=>{let y=e.worktree;if(y.isLocked)return x.text.warning;if(y.isDirty)return x.text.error;return x.text.success},k=()=>{let y=a();if(!y)return"";let S=[];if(y.aheadBehind.ahead>0)S.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)S.push(`\u2193${y.aheadBehind.behind}`);return S.length>0?S.join(" "):"\u2713 up to date"},O=()=>{let y=a();if(!y)return x.text.secondary;return y.aheadBehind.ahead||y.aheadBehind.behind?x.text.warning:x.text.success},w=()=>"\u2500".repeat(Math.max(s()-7,10));return(()=>{var y=l("box"),S=l("scrollbox"),B=l("box"),A=l("text"),V=l("text"),q=l("box"),H=l("text"),U=l("box"),J=l("box"),X=l("box"),re=l("text"),he=l("text"),_=l("box"),me=l("box"),Pe=l("text"),R=l("text"),F=l("box"),G=l("box"),N=l("text"),W=l("text"),ee=l("box"),de=l("box"),ne=l("text"),pe=l("text"),Se=l("box"),be=l("box"),ke=l("text"),Fe=l("box"),Re=l("text");return f(y,S),o(y,"x",0),o(y,"y",0),f(S,B),f(S,q),f(S,U),f(S,J),f(S,_),f(S,F),f(S,ee),f(S,Se),f(S,be),f(S,Fe),o(S,"x",2),o(S,"y",1),f(B,A),f(B,V),o(B,"height",1),f(A,j("Worktree Detail")),o(A,"x",0),o(A,"y",0),o(A,"bold",!0),o(A,"selectable",!0),f(V,j("(Esc to close)")),o(V,"x",17),o(V,"y",0),o(V,"selectable",!0),f(q,H),o(q,"height",1),o(H,"x",0),o(H,"y",0),o(H,"selectable",!0),L(H,w),o(U,"height",1),f(J,X),f(J,he),o(J,"height",1),o(J,"flexDirection","row"),f(X,re),o(X,"width",16),o(X,"height",1),f(re,j("Branch")),o(re,"x",0),o(re,"y",0),o(re,"selectable",!0),o(he,"selectable",!0),L(he,()=>e.worktree.branch??"(detached)"),f(_,me),f(_,R),o(_,"height",1),o(_,"flexDirection","row"),f(me,Pe),o(me,"width",16),o(me,"height",1),f(Pe,j("Path")),o(Pe,"x",0),o(Pe,"y",0),o(Pe,"selectable",!0),o(R,"selectable",!0),L(R,()=>e.worktree.path),f(F,G),f(F,W),o(F,"height",1),o(F,"flexDirection","row"),f(G,N),o(G,"width",16),o(G,"height",1),f(N,j("Status")),o(N,"x",0),o(N,"y",0),o(N,"selectable",!0),o(W,"selectable",!0),L(W,v),f(ee,de),f(ee,pe),o(ee,"height",1),o(ee,"flexDirection","row"),f(de,ne),o(de,"width",16),o(de,"height",1),f(ne,j("HEAD")),o(ne,"x",0),o(ne,"y",0),o(ne,"selectable",!0),o(pe,"selectable",!0),L(pe,()=>e.worktree.head?.slice(0,8)),L(S,z(ie,{get when(){return h()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box");return o(I,"height",1),L(I,z(yr,{label:"Loading details..."})),I})()]}}),Se),L(S,z(ie,{get when(){return We(()=>!h())()&&!!m()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,()=>`Failed to load details: ${m()}`),K((g)=>o(u,"fg",x.text.error,g)),I})()]}}),Se),L(S,z(ie,{get when(){return We(()=>!h()&&!m())()&&!!a()},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Upstream")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Sync")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,k),K((P)=>{var C=x.text.secondary,Q=O();return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),z(ie,{get when(){return a().aheadBehind.ahead>0},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Ahead")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.ahead} commit(s)`),K((P)=>{var C=x.text.secondary,Q=x.text.warning;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}}),z(ie,{get when(){return a().aheadBehind.behind>0},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Behind")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>`${a().aheadBehind.behind} commit(s)`),K((P)=>{var C=x.text.secondary,Q=x.text.warning;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}}),(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Recent Commits")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(ie,{get when(){return a().commits.length>0},get fallback(){return(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("No commits found")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.secondary,g)),I})()},get children(){return z(et,{get each(){return a().commits},children:(I)=>(()=>{var u=l("box"),g=l("text");return f(u,g),o(u,"height",1),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),L(g,I),K((M)=>o(g,"fg",x.text.primary,M)),u})()})}}),z(ie,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),L(u,()=>`Diff vs ${T()}`),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(ie,{get when(){return a().diffStat.length>0},get children(){var I=l("code");return o(I,"language","diff"),K((u)=>o(I,"code",a().diffStat,u)),I}}),(()=>{var I=l("box");return o(I,"height",1),I})(),z(ie,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("No changes")),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.secondary,g)),I})()},get children(){var I=l("scrollbox"),u=l("diff");return f(I,u),o(I,"height",15),o(u,"view","unified"),K((g)=>{var M=s()-3,P=a().fullDiff;return M!==g.e&&(g.e=o(I,"width",M,g.e)),P!==g.t&&(g.t=o(u,"diff",P,g.t)),g},{e:void 0,t:void 0}),I}})]}}),z(ie,{get when(){return We(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Focus Paths")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),z(et,{get each(){return a().focus},children:(I)=>(()=>{var u=l("box"),g=l("text");return f(u,g),o(u,"height",1),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),L(g,` \u2022 ${I}`),K((M)=>o(g,"fg",x.text.primary,M)),u})()})]}}),z(ie,{get when(){return a().session},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),f(u,j("Session")),o(u,"x",0),o(u,"y",0),o(u,"bold",!0),o(u,"selectable",!0),K((g)=>o(u,"fg",x.text.accent,g)),I})(),(()=>{var I=l("box"),u=l("text");return f(I,u),o(I,"height",1),o(u,"x",0),o(u,"y",0),o(u,"selectable",!0),L(u,w),K((g)=>o(u,"fg",x.border.subtle,g)),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Name")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.name),K((P)=>{var C=x.text.secondary,Q=x.text.primary;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Status")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.active?"\u25CF active":"\u25CB inactive"),K((P)=>{var C=x.text.secondary,Q=a().session.active?x.text.success:x.text.error;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})(),z(ie,{get when(){return a().session.meta.layout},get children(){var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Layout")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),o(M,"selectable",!0),L(M,()=>a().session.meta.layout),K((P)=>{var C=x.text.secondary,Q=x.text.primary;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I}})]}}),z(ie,{get when(){return e.worktree.isMain},get children(){return[(()=>{var I=l("box");return o(I,"height",1),I})(),(()=>{var I=l("box"),u=l("box"),g=l("text"),M=l("text");return f(I,u),f(I,M),o(I,"height",1),o(I,"flexDirection","row"),f(u,g),o(u,"width",16),o(u,"height",1),f(g,j("Type")),o(g,"x",0),o(g,"y",0),o(g,"selectable",!0),f(M,j("main worktree")),o(M,"selectable",!0),K((P)=>{var C=x.text.secondary,Q=x.text.accent;return C!==P.e&&(P.e=o(g,"fg",C,P.e)),Q!==P.t&&(P.t=o(M,"fg",Q,P.t)),P},{e:void 0,t:void 0}),I})()]}})]}}),Se),o(Se,"height",1),f(be,ke),o(be,"height",1),o(ke,"x",0),o(ke,"y",0),o(ke,"selectable",!0),L(ke,w),f(Fe,Re),o(Fe,"height",1),f(Re,j("Esc:back d:delete o:open r:refresh")),o(Re,"x",0),o(Re,"y",0),o(Re,"selectable",!0),K((I)=>{var u=s(),g=c(),M=x.bg.base,P=s()-3,C=c()-3,Q=x.text.accent,oe=x.text.secondary,ge=x.border.subtle,le=x.text.secondary,Ie=x.text.accent,Z=x.text.secondary,ae=x.text.primary,ce=x.text.secondary,Y=E(),$e=x.text.secondary,ye=x.text.secondary,Ve=x.border.subtle,Ne=x.text.secondary;return u!==I.e&&(I.e=o(y,"width",u,I.e)),g!==I.t&&(I.t=o(y,"height",g,I.t)),M!==I.a&&(I.a=o(y,"backgroundColor",M,I.a)),P!==I.o&&(I.o=o(S,"width",P,I.o)),C!==I.i&&(I.i=o(S,"height",C,I.i)),Q!==I.n&&(I.n=o(A,"fg",Q,I.n)),oe!==I.s&&(I.s=o(V,"fg",oe,I.s)),ge!==I.h&&(I.h=o(H,"fg",ge,I.h)),le!==I.r&&(I.r=o(re,"fg",le,I.r)),Ie!==I.d&&(I.d=o(he,"fg",Ie,I.d)),Z!==I.l&&(I.l=o(Pe,"fg",Z,I.l)),ae!==I.u&&(I.u=o(R,"fg",ae,I.u)),ce!==I.c&&(I.c=o(N,"fg",ce,I.c)),Y!==I.w&&(I.w=o(W,"fg",Y,I.w)),$e!==I.m&&(I.m=o(ne,"fg",$e,I.m)),ye!==I.f&&(I.f=o(pe,"fg",ye,I.f)),Ve!==I.y&&(I.y=o(ke,"fg",Ve,I.y)),Ne!==I.g&&(I.g=o(Re,"fg",Ne,I.g)),I},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0}),y})()}async function Nm(e){try{let t=Bun.spawn(["git","log","--oneline","-10"],{cwd:e,stdout:"pipe",stderr:"pipe",env:{...process.env,LC_ALL:"C"}}),n=await new Response(t.stdout).text();if(await t.exited,t.exitCode!==0)return[];return n.trim().split(`
|
|
14
|
-
`).filter(Boolean)}catch{return[]}}var Bm=150;var hl=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();dn();nr();wt();Yt();pn();je();Ho()});function ml(){let e=ot(),t=mt(),n=nt(),r=()=>{let v=t.worktrees()??[],E=e.selectedWorktreePath();if(E){let k=v.find((O)=>O.path===E);if(k)return k}return v[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[d,h]=ue(!1),[p,m]=ue(""),b;it(()=>{if(b)clearTimeout(b)}),Ft(tn(()=>r()?.path,(v)=>{if(b)clearTimeout(b);if(!v){a(null),h(!1),m("");return}a(null),h(!0),m(""),b=setTimeout(async()=>{let E=r();if(!E||E.path!==v)return;try{let[k,O,w]=await Promise.all([E.branch?se.getAheadBehind(E.branch,E.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(E.path),se.getDirtyCount(E.path)]);if(r()?.path===v)a({aheadBehind:k,lastCommit:O,dirtyCount:w}),m("")}catch(k){if(r()?.path===v)a(null),m(k.message)}finally{if(r()?.path===v)h(!1)}},jm)}));let D=()=>{if(d())return"Loading...";if(p())return"Unavailable";let v=c();if(!v)return"";let E=[];if(v.aheadBehind.ahead>0)E.push(`\u2191${v.aheadBehind.ahead}`);if(v.aheadBehind.behind>0)E.push(`\u2193${v.aheadBehind.behind}`);return E.length>0?E.join(" "):"\u2713 up to date"},T=()=>{let v=r();if(!v)return"";if(v.isLocked)return"\uD83D\uDD12 locked";let E=c();if(E&&E.dirtyCount>0)return`\u25CF ${E.dirtyCount} file(s) dirty`;if(v.isDirty)return"\u25CF dirty";return"\u2713 clean"};return rt((v)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;let E=v.name;if(E==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(E==="return"&&!e.showDetailView()&&r()){e.setShowDetailView(!0);return}if(E==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var v=l("box");return o(v,"width","100%"),o(v,"height","100%"),L(v,z(ie,{get when(){return We(()=>!!e.showDetailView())()&&!!r()},get children(){return z(dl,{get worktree(){return r()}})}}),null),L(v,z(ie,{get when(){return!e.showDetailView()},get children(){return[z(ie,{get when(){return t.loading()},get children(){return z(yr,{label:"Loading worktrees..."})}}),z(ie,{get when(){return We(()=>!t.loading())()&&!!t.error()},get children(){var E=l("box"),k=l("text"),O=l("text"),w=l("text"),y=l("text"),S=l("text"),B=l("text"),A=l("text"),V=l("text"),q=l("text");return f(E,k),f(E,O),f(E,w),f(E,y),f(E,S),f(E,B),f(E,A),f(E,V),f(E,q),o(E,"flexDirection","column"),o(E,"paddingX",2),o(E,"paddingY",1),o(E,"gap",0),f(k,j("Unable to list worktrees")),f(O,j(" ")),L(w,()=>t.error()?.message),f(y,j(" ")),f(S,j("copse needs a git repository to manage worktrees.")),f(B,j(" \xB7 cd into a git repository and relaunch copse, or")),f(A,j(" \xB7 configure repos in ~/.config/copse/config.json")),f(V,j(" ")),f(q,j("Press q to quit, or ^P to open the command palette.")),K((H)=>{var U=x.text.error,J=x.text.secondary,X=x.text.secondary,re=x.text.secondary,he=x.text.secondary,_=x.text.secondary,me=x.text.secondary,Pe=x.text.secondary,R=x.text.accent;return U!==H.e&&(H.e=o(k,"fg",U,H.e)),J!==H.t&&(H.t=o(O,"fg",J,H.t)),X!==H.a&&(H.a=o(w,"fg",X,H.a)),re!==H.o&&(H.o=o(y,"fg",re,H.o)),he!==H.i&&(H.i=o(S,"fg",he,H.i)),_!==H.n&&(H.n=o(B,"fg",_,H.n)),me!==H.s&&(H.s=o(A,"fg",me,H.s)),Pe!==H.h&&(H.h=o(V,"fg",Pe,H.h)),R!==H.r&&(H.r=o(q,"fg",R,H.r)),H},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),E}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!!r()},get children(){var E=l("box"),k=l("box"),O=l("text"),w=l("box"),y=l("text"),S=l("box"),B=l("box"),A=l("text"),V=l("text"),q=l("box"),H=l("box"),U=l("text"),J=l("text"),X=l("box"),re=l("box"),he=l("text"),_=l("text"),me=l("box"),Pe=l("box"),R=l("text"),F=l("text"),G=l("box"),N=l("box"),W=l("text"),ee=l("text"),de=l("box"),ne=l("text"),pe=l("box"),Se=l("text"),be=l("text"),ke=l("text"),Fe=l("text"),Re=l("text"),I=l("text");return f(E,k),f(E,w),f(E,S),f(E,q),f(E,X),f(E,me),f(E,G),f(E,de),f(E,pe),o(E,"width","100%"),o(E,"height","100%"),o(E,"flexDirection","column"),o(E,"paddingX",2),o(E,"paddingY",1),f(k,O),o(k,"height",1),o(k,"flexDirection","row"),f(O,j("Worktree Details")),f(w,y),o(w,"height",1),L(y,()=>"\u2500".repeat(Math.max(i()-38,10))),L(E,z(ie,{get when(){return t.isMultiRepo()},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Repo")),L(P,()=>r()?.repoName),K((C)=>{var Q=x.text.secondary,oe=x.text.warning;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),S),f(S,B),f(S,V),o(S,"height",1),o(S,"flexDirection","row"),f(B,A),o(B,"width",14),o(B,"height",1),f(A,j("Branch")),L(V,()=>r()?.branch??"(detached)"),f(q,H),f(q,J),o(q,"height",1),o(q,"flexDirection","row"),f(H,U),o(H,"width",14),o(H,"height",1),f(U,j("Path")),L(J,()=>r()?.path),f(X,re),f(X,_),o(X,"height",1),o(X,"flexDirection","row"),f(re,he),o(re,"width",14),o(re,"height",1),f(he,j("Status")),L(_,T),f(me,Pe),f(me,F),o(me,"height",1),o(me,"flexDirection","row"),f(Pe,R),o(Pe,"width",14),o(Pe,"height",1),f(R,j("Sync")),L(F,D),f(G,N),f(G,ee),o(G,"height",1),o(G,"flexDirection","row"),f(N,W),o(N,"width",14),o(N,"height",1),f(W,j("HEAD")),L(ee,()=>r()?.head?.slice(0,8)),L(E,z(ie,{get when(){return c()?.lastCommit},get children(){return[(()=>{var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Last Commit")),L(P,()=>c().lastCommit.relativeDate),K((C)=>{var Q=x.text.secondary,oe=x.text.primary;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})(),(()=>{var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),L(P,(()=>{var C=We(()=>c().lastCommit.message.length>50);return()=>C()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),K((C)=>{var Q=x.text.secondary,oe=x.text.secondary;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u})()]}}),de),L(E,z(ie,{get when(){let u=Kt(r()?.path??"");return u&&u.length>0},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Focus")),L(P,()=>Kt(r()?.path??"")?.join(", ")??""),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),L(E,z(ie,{get when(){return!!Gt(r()?.path??"")},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Session")),L(P,()=>{let C=Gt(r()?.path??"");if(!C)return"";return C.layout?`${C.name} [${C.layout}]`:C.name}),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),L(E,z(ie,{get when(){return r()?.isMain},get children(){var u=l("box"),g=l("box"),M=l("text"),P=l("text");return f(u,g),f(u,P),o(u,"height",1),o(u,"flexDirection","row"),f(g,M),o(g,"width",14),o(g,"height",1),f(M,j("Type")),f(P,j("main worktree")),K((C)=>{var Q=x.text.secondary,oe=x.text.accent;return Q!==C.e&&(C.e=o(M,"fg",Q,C.e)),oe!==C.t&&(C.t=o(P,"fg",oe,C.t)),C},{e:void 0,t:void 0}),u}}),de),f(de,ne),o(de,"height",1),L(ne,()=>"\u2500".repeat(Math.max(i()-38,10))),f(pe,Se),f(pe,be),f(pe,ke),f(pe,Fe),f(pe,Re),f(pe,I),o(pe,"height",1),o(pe,"flexDirection","row"),o(pe,"gap",2),f(Se,j("Enter:detail")),f(be,j("d:delete")),f(ke,j("a:add")),f(Fe,j("o:open")),f(Re,j("r:refresh")),f(I,j("^P:commands")),K((u)=>{var g=x.bg.surface,M=x.text.accent,P=x.border.subtle,C=x.text.secondary,Q=x.text.accent,oe=x.text.secondary,ge=x.text.primary,le=x.text.secondary,Ie=r()?.isDirty?x.text.error:r()?.isLocked?x.text.warning:x.text.success,Z=x.text.secondary,ae=p()?x.text.error:d()?x.text.secondary:c()?.aheadBehind?.ahead||c()?.aheadBehind?.behind?x.text.warning:x.text.success,ce=x.text.secondary,Y=x.text.secondary,$e=x.border.subtle,ye=x.text.secondary,Ve=x.text.secondary,Ne=x.text.secondary,ze=x.text.secondary,ut=x.text.secondary,Me=x.text.secondary;return g!==u.e&&(u.e=o(E,"backgroundColor",g,u.e)),M!==u.t&&(u.t=o(O,"fg",M,u.t)),P!==u.a&&(u.a=o(y,"fg",P,u.a)),C!==u.o&&(u.o=o(A,"fg",C,u.o)),Q!==u.i&&(u.i=o(V,"fg",Q,u.i)),oe!==u.n&&(u.n=o(U,"fg",oe,u.n)),ge!==u.s&&(u.s=o(J,"fg",ge,u.s)),le!==u.h&&(u.h=o(he,"fg",le,u.h)),Ie!==u.r&&(u.r=o(_,"fg",Ie,u.r)),Z!==u.d&&(u.d=o(R,"fg",Z,u.d)),ae!==u.l&&(u.l=o(F,"fg",ae,u.l)),ce!==u.u&&(u.u=o(W,"fg",ce,u.u)),Y!==u.c&&(u.c=o(ee,"fg",Y,u.c)),$e!==u.w&&(u.w=o(ne,"fg",$e,u.w)),ye!==u.m&&(u.m=o(Se,"fg",ye,u.m)),Ve!==u.f&&(u.f=o(be,"fg",Ve,u.f)),Ne!==u.y&&(u.y=o(ke,"fg",Ne,u.y)),ze!==u.g&&(u.g=o(Fe,"fg",ze,u.g)),ut!==u.p&&(u.p=o(Re,"fg",ut,u.p)),Me!==u.b&&(u.b=o(I,"fg",Me,u.b)),u},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),E}}),z(ie,{get when(){return We(()=>!t.loading()&&!t.error())()&&!r()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"flexDirection","column"),o(E,"gap",1),f(k,j("No worktree selected.")),f(O,j("Press 'a' to create one.")),K((w)=>{var y=x.text.secondary,S=x.text.accent;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}})]}}),null),K((E)=>o(v,"backgroundColor",x.bg.base,E)),v})()}var jm=150;var pl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();te();wt();Yt();pn();je();hl();Ho()});import*as Lm from"fs";import{join as Wn,resolve as gn,dirname as ro}from"path";function Cr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=Wn(gn(e),i),c=Wn(gn(t),i);if(!xn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(xn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{$r(ro(c),{recursive:!0}),xl(s,c),r.copied.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return r}function Sr(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=gn(Wn(gn(e),i)),c=Wn(gn(t),i);if(!xn(s)){r.skipped.push(i),r.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(xn(c)){r.skipped.push(i),r.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{$r(ro(c),{recursive:!0}),bl(s,c),r.linked.push(i)}catch(a){r.skipped.push(i),r.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return r}function wl(e,t,n=0){let r=0,i=[];if(n>Hm)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=gn(e),c=gn(t);if(!xn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=Gm(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return $r(ro(c),{recursive:!0}),gl(s,c),{linked:1,errors:[]}}catch(d){return{linked:0,errors:[`Failed to hardlink ${e}: ${d.message}`]}}if(!xn(c))$r(c,{recursive:!0});try{let d=Km(s,{withFileTypes:!0});for(let h of d){let p=Wn(s,h.name),m=Wn(c,h.name);if(h.isDirectory()){let b=wl(p,m,n+1);if(r+=b.linked,b.errors.length>0)i.push(...b.errors)}else if(h.isFile()){if(xn(m))continue;try{gl(p,m),r++}catch(b){try{xl(p,m),r++}catch(D){i.push(`Failed to link/copy ${h.name}: ${D.message}`)}}}}}catch(d){i.push(`Failed to read directory ${e}: ${d.message}`)}return{linked:r,errors:i}}function vl(e,t,n){let r={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=Wn(gn(e),c),d=Wn(gn(t),c);if(!xn(a)){r.skipped.push(c),r.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(xn(d)){r.skipped.push(c);continue}try{if(s==="symlink")$r(ro(d),{recursive:!0}),bl(a,d),r.linked.push(c);else if(s==="hardlink"){let h=wl(a,d);if(h.linked>0)r.linked.push(c);for(let p of h.errors)r.warnings.push(p)}else $r(ro(d),{recursive:!0}),Vm(a,d,{recursive:!0}),r.copied.push(c)}catch(h){r.skipped.push(c),r.warnings.push(`Failed to share dep ${c}: ${h.message}`)}}return r}var xl,Vm,xn,bl,_0,gl,Km,Gm,$r,Hm=30;var Uo=xe(()=>{({copyFileSync:xl,cpSync:Vm,existsSync:xn,symlinkSync:bl,unlinkSync:_0,linkSync:gl,readdirSync:Km,statSync:Gm,mkdirSync:$r}=Lm)});import{existsSync as Um,mkdirSync as Jm}from"fs";async function pt(e,t){let n=t.timeout??30000;for(let r of e)await zm(r,t.cwd,n,t.env??{},t.onOutput)}async function zm(e,t,n,r,i){if(!Um(t))Jm(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}catch(h){if(h.code!=="ENOENT")throw h;s=Bun.spawn(["/bin/sh","-c",e],{cwd:t,env:{...process.env,...r},stdout:"pipe",stderr:"pipe"})}let c=!1,a=setTimeout(()=>{c=!0,s.kill()},n),d=s.stderr?new Response(s.stderr).text():Promise.resolve("");try{if(i&&s.stdout){let p=s.stdout.getReader(),m=new TextDecoder,b=[];while(!0){let{done:T,value:v}=await p.read();if(T)break;let k=m.decode(v,{stream:!0}).split(`
|
|
15
|
-
`);if(k.length===1)
|
|
16
|
-
${n}`);this.command=e;this.exitCode=t;this.stderr=n;this.name="HookError"}};
|
|
17
|
-
|
|
18
|
-
`)[0]})}g++}E("Worktree created successfully!"),i("done"),tr.success(`Worktree created: ${G}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),d(""),p("branch"),i("input")},1500)}catch(de){tr.error(de.message);let pe=D().findIndex((Se)=>Se.status==="running");if(pe>=0)V(pe,{status:"error",message:de.message});E(`${de.message}`),i("error")}return}}if(r()==="error"){if(F==="escape"||F==="return"||F==="enter")i("input"),E("")}}),pr((R)=>{if(!e.inputFocused())return;let F=Qm(R.bytes).replace(/\r?\n/g,"");if(!F)return;if(h()==="branch"){c((G)=>G+F);return}if(h()==="focus")d((G)=>G+F)});let J=()=>n().width,X=()=>n().height,re=()=>Math.max(50,Math.min(80,J()-4)),he=4,_=()=>{if(r()==="input"){let R=S()&&h()==="branch"?A().length*2:0,F=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+R+F,X()-4))}if(r()==="preview")return Math.max(13+he,Math.min((a().length>0?15:13)+he,X()-4));if(r()==="creating")return Math.max(9+he,Math.min(D().length*2+7+he,X()-4));if(r()==="done")return Math.max(11+he,Math.min((a().length>0?15:13)+he,X()-4));return Math.max(11+he,Math.min(11+he,X()-4))},me=()=>Math.max(re()-4,10),Pe=()=>Math.max(me(),20);return z(on,{get width(){return re()},get height(){return _()},get borderColor(){return We(()=>r()==="done")()?x.text.success:We(()=>r()==="error")()?x.text.error:x.border.active},get backgroundColor(){return x.bg.surface},gap:1,title:" Create Worktree ",get footer(){return[(()=>{var R=l("box"),F=l("text");return f(R,F),o(R,"height",1),L(F,()=>"\u2500".repeat(Math.max(me(),1))),K((G)=>{var N=me(),W=x.border.subtle;return N!==G.e&&(G.e=o(R,"width",N,G.e)),W!==G.t&&(G.t=o(F,"fg",W,G.t)),G},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return r()==="input"},get children(){var R=l("box"),F=l("text"),G=l("text"),N=l("text"),W=l("text");return f(R,F),f(R,G),f(R,N),f(R,W),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Tab:switch")),f(G,j("\u2191\u2193:pick")),f(N,j("Enter:confirm")),f(W,j("Esc:cancel")),K((ee)=>{var de=x.text.secondary,ne=x.text.secondary,pe=x.text.secondary,Se=x.text.secondary;return de!==ee.e&&(ee.e=o(F,"fg",de,ee.e)),ne!==ee.t&&(ee.t=o(G,"fg",ne,ee.t)),pe!==ee.a&&(ee.a=o(N,"fg",pe,ee.a)),Se!==ee.o&&(ee.o=o(W,"fg",Se,ee.o)),ee},{e:void 0,t:void 0,a:void 0,o:void 0}),R}}),z(ie,{get when(){return r()==="preview"},get children(){var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Enter:create")),f(G,j("Esc:back")),K((N)=>{var W=x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R}}),z(ie,{get when(){return r()==="creating"},get children(){var R=l("text");return f(R,j("Creating worktree...")),K((F)=>o(R,"fg",x.text.secondary,F)),R}}),z(ie,{get when(){return r()==="done"},get children(){var R=l("text");return f(R,j("\u2713 Done \u2014 returning to list")),K((F)=>o(R,"fg",x.text.secondary,F)),R}}),z(ie,{get when(){return r()==="error"},get children(){var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"flexDirection","row"),o(R,"gap",2),f(F,j("Enter:retry")),f(G,j("Esc:back")),K((N)=>{var W=x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R}})]},get children(){return[z(ie,{get when(){return r()==="input"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text"),N=l("text");return f(R,F),f(R,G),f(R,N),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("New Worktree")),o(G,"x",3),o(G,"y",0),o(N,"x",17),o(N,"y",0),L(N,H),K((W)=>{var ee=me(),de=x.bg.elevated,ne=x.text.accent,pe=x.text.primary,Se=x.text.secondary;return ee!==W.e&&(W.e=o(R,"width",ee,W.e)),de!==W.t&&(W.t=o(R,"backgroundColor",de,W.t)),ne!==W.a&&(W.a=o(F,"fg",ne,W.a)),pe!==W.o&&(W.o=o(G,"fg",pe,W.o)),Se!==W.i&&(W.i=o(N,"fg",Se,W.i)),W},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("text");return f(R,j("Branch name")),K((F)=>o(R,"fg",h()==="branch"?x.text.accent:x.text.secondary,F)),R})(),(()=>{var R=l("input");return o(R,"onInput",(F)=>c(F)),o(R,"placeholder","Branch name or search..."),K((F)=>{var G=s(),N=h()==="branch",W=Pe(),ee=x.bg.elevated,de=x.text.accent;return G!==F.e&&(F.e=o(R,"value",G,F.e)),N!==F.t&&(F.t=o(R,"focused",N,F.t)),W!==F.a&&(F.a=o(R,"width",W,F.a)),ee!==F.o&&(F.o=o(R,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(R,"cursorColor",de,F.i)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),z(ie,{get when(){return We(()=>!!(S()&&h()==="branch"))()&&A().length>0},get children(){return z(et,{get each(){return A()},children:(R,F)=>(()=>{var G=l("box"),N=l("text"),W=l("text");return f(G,N),f(G,W),o(G,"height",1),o(N,"x",1),o(N,"y",0),L(N,()=>F()===w()?"\u25B8 ":" ",null),L(N,()=>R.name,null),o(W,"y",0),L(W,()=>R.isRemote?"(remote) ":"",null),L(W,()=>R.lastCommitDate,null),K((ee)=>{var de=me(),ne=F()===w()?x.select.focusedBg:x.bg.surface,pe=F()===w()?x.tab.active:x.text.primary,Se=Math.max(1+R.name.length+4,27),be=x.text.secondary;return de!==ee.e&&(ee.e=o(G,"width",de,ee.e)),ne!==ee.t&&(ee.t=o(G,"backgroundColor",ne,ee.t)),pe!==ee.a&&(ee.a=o(N,"fg",pe,ee.a)),Se!==ee.o&&(ee.o=o(W,"x",Se,ee.o)),be!==ee.i&&(ee.i=o(W,"fg",be,ee.i)),ee},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),G})()})}}),(()=>{var R=l("text");return f(R,j("Tab to switch fields \xB7 \u2191\u2193 to select branch")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"width","100%"),o(R,"height",1),o(R,"flexDirection","row"),f(F,j("Focus ")),f(G,j("(optional)")),K((N)=>{var W=h()==="focus"?x.text.accent:x.text.secondary,ee=x.text.secondary;return W!==N.e&&(N.e=o(F,"fg",W,N.e)),ee!==N.t&&(N.t=o(G,"fg",ee,N.t)),N},{e:void 0,t:void 0}),R})(),(()=>{var R=l("input");return o(R,"onInput",(F)=>d(F)),o(R,"placeholder","apps/web,apps/api (optional)"),K((F)=>{var G=a(),N=h()==="focus",W=Pe(),ee=x.bg.elevated,de=x.text.accent;return G!==F.e&&(F.e=o(R,"value",G,F.e)),N!==F.t&&(F.t=o(R,"focused",N,F.t)),W!==F.a&&(F.a=o(R,"width",W,F.a)),ee!==F.o&&(F.o=o(R,"backgroundColor",ee,F.o)),de!==F.i&&(F.i=o(R,"cursorColor",de,F.i)),F},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),R})(),(()=>{var R=l("text");return f(R,j("comma-separated paths, e.g. apps/web,apps/api")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),z(ie,{get when(){return s().length>0},get children(){return[(()=>{var R=l("text");return f(R,j("Target path")),K((F)=>o(R,"fg",x.text.secondary,F)),R})(),(()=>{var R=l("text");return L(R,U),K((F)=>o(R,"fg",x.text.primary,F)),R})()]}}),(()=>{var R=l("text");return f(R,j("Type a branch name, e.g. feature/my-feature")),K((F)=>o(R,"fg",x.text.primary,F)),R})()]}}),z(ie,{get when(){return r()==="preview"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Confirm Worktree")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.accent,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Branch")),L(N,s),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Path")),L(N,m),K((W)=>{var ee=x.text.secondary,de=x.text.primary;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return a().length>0},get children(){var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Focus")),L(N,a),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R}}),(()=>{var R=l("text");return f(R,j("\u2713 Ready to create. Press Enter to confirm.")),K((F)=>o(R,"fg",x.text.success,F)),R})()]}}),z(ie,{get when(){return r()==="creating"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Creating Worktree")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.accent,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),z(et,{get each(){return D()},children:(R)=>(()=>{var F=l("box"),G=l("text"),N=j(" ");return f(F,G),o(F,"height",1),f(G,N),L(G,(()=>{var W=We(()=>R.status==="done");return()=>W()?"\u2713":We(()=>R.status==="running")()?"\u27F3":R.status==="error"?"\u2717":"\u25CB"})(),N),L(G,()=>R.label,null),L(F,z(ie,{get when(){return R.message},get children(){var W=l("text");return o(W,"y",0),L(W,()=>R.message),K((ee)=>{var de=R.label.length+4,ne=x.text.secondary;return de!==ee.e&&(ee.e=o(W,"x",de,ee.e)),ne!==ee.t&&(ee.t=o(W,"fg",ne,ee.t)),ee},{e:void 0,t:void 0}),W}}),null),K((W)=>o(G,"fg",R.status==="done"?x.text.success:R.status==="running"?x.text.accent:R.status==="error"?x.text.error:x.text.secondary,W)),F})()})]}}),z(ie,{get when(){return r()==="done"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Worktree Created")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.success,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Branch")),L(N,s),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),(()=>{var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Path")),L(N,m),K((W)=>{var ee=x.text.secondary,de=x.text.primary;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R})(),z(ie,{get when(){return a().length>0},get children(){var R=l("box"),F=l("box"),G=l("text"),N=l("text");return f(R,F),f(R,N),o(R,"height",1),o(R,"flexDirection","row"),f(F,G),o(F,"width",14),o(F,"height",1),f(G,j("Focus")),L(N,a),K((W)=>{var ee=x.text.secondary,de=x.text.accent;return ee!==W.e&&(W.e=o(G,"fg",ee,W.e)),de!==W.t&&(W.t=o(N,"fg",de,W.t)),W},{e:void 0,t:void 0}),R}}),(()=>{var R=l("text"),F=j("\u2713 ");return f(R,F),L(R,v,null),K((G)=>o(R,"fg",x.text.success,G)),R})()]}}),z(ie,{get when(){return r()==="error"},get children(){return[(()=>{var R=l("box"),F=l("text"),G=l("text");return f(R,F),f(R,G),o(R,"height",1),f(F,j(">")),o(F,"x",1),o(F,"y",0),f(G,j("Error")),o(G,"x",3),o(G,"y",0),K((N)=>{var W=me(),ee=x.bg.elevated,de=x.text.error,ne=x.text.primary;return W!==N.e&&(N.e=o(R,"width",W,N.e)),ee!==N.t&&(N.t=o(R,"backgroundColor",ee,N.t)),de!==N.a&&(N.a=o(F,"fg",de,N.a)),ne!==N.o&&(N.o=o(G,"fg",ne,N.o)),N},{e:void 0,t:void 0,a:void 0,o:void 0}),R})(),(()=>{var R=l("text");return L(R,()=>"\u2500".repeat(me())),K((F)=>o(R,"fg",x.border.subtle,F)),R})(),(()=>{var R=l("text");return f(R,j("\u2717 Failed")),K((F)=>o(R,"fg",x.text.error,F)),R})(),(()=>{var R=l("box"),F=l("text");return f(R,F),o(R,"height",1),o(F,"x",1),o(F,"y",0),L(F,()=>v().slice(0,Math.max(Pe()-3,10))),K((G)=>{var N=Pe(),W=x.bg.elevated,ee=x.text.primary;return N!==G.e&&(G.e=o(R,"width",N,G.e)),W!==G.t&&(G.t=o(R,"backgroundColor",W,G.t)),ee!==G.a&&(G.a=o(F,"fg",ee,G.a)),G},{e:void 0,t:void 0,a:void 0}),R})(),(()=>{var R=l("text");return f(R,j("Press Enter or Escape to try again")),K((F)=>o(R,"fg",x.text.secondary,F)),R})()]}})]}})}var Cl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();je();Ye();Uo();bn();Yt();ps();zo();pn();te();is();wt();kr()});function Sl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(!1),[s,c]=ue(""),[a,d]=ue(!1),h=()=>{let v=t.worktrees()??[],E=e.selectedWorktreePath();if(E){let k=v.find((O)=>O.path===E);if(k)return k}return v[e.selectedWorktreeIndex()]},p=()=>{e.setShowRemove(!1),i(!1),c(""),d(!1)},m=async(v)=>{let E=h();if(!E){p();return}if(!v){if(await se.isDirty(E.path)){c("Worktree has changes. Press Enter to force remove."),d(!0);return}}i(!0),c("Removing...");try{let k=De(),O=bt(k,E.repoPath);if(O.postRemove.length>0)c("Running postRemove hooks..."),await pt(O.postRemove,{cwd:E.path,env:{COPSE_BRANCH:E.branch??"",COPSE_WORKTREE_PATH:E.path,COPSE_REPO_PATH:E.repoPath}}).catch(()=>{});await se.remove(E.path,{force:v},E.repoPath),c("Removed successfully!"),tr.success("Worktree removed");let w=t.worktrees()??[],y=e.selectedWorktreeIndex(),S=w[y-1]??w[y+1]??null;if(y>0)e.setSelectedWorktreeIndex(y-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(S?.path??null),t.refetch(),setTimeout(p,1000)}catch(k){let O=k.message;c(`Failed: ${O}`),i(!1),tr.error(`Failed: ${O}`)}};rt(async(v)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let E=v.name;if(E==="escape"){p();return}if(a()&&(E==="return"||E==="enter")){d(!1),await m(!0);return}if((E==="return"||E==="enter")&&!r())await m(!1)});let b=()=>h(),D=()=>Math.max(50,Math.min(80,n().width-4)),T=()=>10;return z(on,{get width(){return D()},get height(){return T()},get borderColor(){return x.border.active},get backgroundColor(){return x.bg.elevated},gap:1,title:" Remove Worktree ",backdrop:!0,get footer(){return(()=>{var v=l("box");return o(v,"flexDirection","column"),L(v,z(ie,{get when(){return We(()=>!r())()&&!a()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"height",1),o(E,"flexDirection","row"),o(E,"gap",2),f(k,j("[Enter] Confirm")),f(O,j("[Esc] Cancel")),K((w)=>{var y=x.text.secondary,S=x.text.secondary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}}),null),L(v,z(ie,{get when(){return a()},get children(){var E=l("box"),k=l("text"),O=l("text");return f(E,k),f(E,O),o(E,"height",1),o(E,"flexDirection","row"),o(E,"gap",2),f(k,j("[Enter] Force remove")),f(O,j("[Esc] Cancel")),K((w)=>{var y=x.text.secondary,S=x.text.secondary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),E}}),null),v})()},get children(){return[z(ie,{get when(){return!!b()},get children(){return[(()=>{var v=l("box"),E=l("box"),k=l("text"),O=l("text");return f(v,E),f(v,O),o(v,"height",1),o(v,"flexDirection","row"),f(E,k),o(E,"width",10),o(E,"height",1),f(k,j("Branch")),L(O,()=>b()?.branch??"(detached)"),K((w)=>{var y=x.text.secondary,S=x.text.accent;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),v})(),(()=>{var v=l("box"),E=l("box"),k=l("text"),O=l("text");return f(v,E),f(v,O),o(v,"height",1),o(v,"flexDirection","row"),f(E,k),o(E,"width",10),o(E,"height",1),f(k,j("Path")),L(O,()=>b()?.path),K((w)=>{var y=x.text.secondary,S=x.text.primary;return y!==w.e&&(w.e=o(k,"fg",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),v})(),z(ie,{get when(){return a()},get children(){var v=l("text");return L(v,s),K((E)=>o(v,"fg",x.text.warning,E)),v}}),z(ie,{get when(){return r()},get children(){var v=l("text");return L(v,s),K((E)=>o(v,"fg",s().startsWith("Failed")?x.text.error:x.text.success,E)),v}})]}}),z(ie,{get when(){return!b()},get children(){var v=l("text");return f(v,j("No worktree selected.")),K((E)=>o(v,"fg",x.text.secondary,E)),v}})]}})}var Pl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();dn();je();Ye();bn();te();is();wt();kr()});function El(e){let t=ot(),n=mt(),r=rn(),[i,s]=ue("confirming"),[c,a]=ue(""),[d,h]=ue(0),p=()=>{let T=n.worktrees()??[],v=t.selectedWorktrees(),E=[];for(let k of v){let O=T.find((w)=>w.path===k);if(O&&!O.isMain)E.push({branch:O.branch??"(detached)",path:O.path,repoPath:O.repoPath})}return E},m=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),h(0)},b=async()=>{let T=p();if(T.length===0){m();return}s("executing"),h(0);let v=[],E=[],k=0;for(let O=0;O<T.length;O++){let w=T[O];a(`Removing ${w.branch} (${O+1}/${T.length})...`),h(O);try{if(await se.isDirty(w.path)){E.push(w.branch);continue}let S=De(),B=bt(S,w.repoPath);if(B.postRemove.length>0)await pt(B.postRemove,{cwd:w.path,env:{COPSE_BRANCH:w.branch,COPSE_WORKTREE_PATH:w.path,COPSE_REPO_PATH:w.repoPath}}).catch(()=>{});await se.remove(w.path,{force:!1},w.repoPath),k++}catch(y){v.push(`${w.branch}: ${y.message}`)}}if(ft(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),v.length>0){s("error");let O=[`Failed: ${v.join("; ")}`];if(E.length>0)O.push(`Skipped ${E.length} dirty worktree(s)`);a(O.join(". ")),r.addToast({message:`Failed to remove ${v.length} worktree(s)`,type:"error"}),setTimeout(m,3000)}else if(E.length>0)s("done"),a(`Removed ${k}, skipped ${E.length} dirty: ${E.join(", ")}`),r.addToast({message:`Removed ${k}, skipped ${E.length} dirty`,type:"warning"}),setTimeout(m,2000);else s("done"),a(`Removed ${T.length} worktree(s) successfully!`),r.addToast({message:`Removed ${T.length} worktrees`,type:"success"}),setTimeout(m,1500)};rt(async(T)=>{if(!t.showBulkActions())return;if(t.showCommandPalette())return;let v=T.name;if(i()==="executing")return;if(v==="escape"){m();return}if((v==="return"||v==="enter")&&i()==="confirming")await b()});let D=()=>p().length;return(()=>{var T=l("box"),v=l("box"),E=l("box"),k=l("text"),O=l("box"),w=l("text"),y=l("box");return f(T,v),o(T,"x",0),o(T,"y",0),f(v,E),f(v,O),f(v,y),o(v,"x",2),o(v,"y",1),o(v,"flexDirection","column"),f(E,k),o(E,"height",1),f(k,j("Bulk Delete Worktrees")),o(k,"x",0),o(k,"y",0),f(O,w),o(O,"height",1),o(w,"x",0),o(w,"y",0),L(w,()=>"\u2500".repeat(Math.max(e.w-5,10))),o(y,"height",1),L(v,z(ie,{get when(){return i()==="confirming"},get children(){return[(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Delete ${D()} worktree(s)?`),K((A)=>o(B,"fg",x.text.warning,A)),S})(),(()=>{var S=l("box");return o(S,"height",1),S})(),z(et,{get each(){return p().slice(0,Math.max(e.h-10,5))},children:(S)=>(()=>{var B=l("box"),A=l("text");return f(B,A),o(B,"height",1),o(A,"x",2),o(A,"y",0),L(A,()=>`\u2022 ${S.branch}`),K((V)=>o(A,"fg",x.text.accent,V)),B})()}),z(ie,{get when(){return D()>Math.max(e.h-10,5)},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",2),o(B,"y",0),L(B,()=>`... and ${D()-Math.max(e.h-10,5)} more`),K((A)=>o(B,"fg",x.text.secondary,A)),S}}),(()=>{var S=l("box");return o(S,"height",1),S})(),(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),f(B,j("Enter:delete all Esc:cancel")),o(B,"x",0),o(B,"y",0),K((A)=>o(B,"fg",x.text.secondary,A)),S})()]}}),null),L(v,z(ie,{get when(){return i()==="executing"},get children(){return[(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.warning,A)),S})(),(()=>{var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,()=>`Progress: ${d()+1}/${D()}`),K((A)=>o(B,"fg",x.text.secondary,A)),S})()]}}),null),L(v,z(ie,{get when(){return i()==="done"},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.success,A)),S}}),null),L(v,z(ie,{get when(){return i()==="error"},get children(){var S=l("box"),B=l("text");return f(S,B),o(S,"height",1),o(B,"x",0),o(B,"y",0),L(B,c),K((A)=>o(B,"fg",x.text.error,A)),S}}),null),K((S)=>{var{w:B,h:A}=e,V=x.bg.base,q=e.w-3,H=e.h-2,U=x.bg.base,J=x.text.error,X=x.border.subtle;return B!==S.e&&(S.e=o(T,"width",B,S.e)),A!==S.t&&(S.t=o(T,"height",A,S.t)),V!==S.a&&(S.a=o(T,"backgroundColor",V,S.a)),q!==S.o&&(S.o=o(v,"width",q,S.o)),H!==S.i&&(S.i=o(v,"height",H,S.i)),U!==S.n&&(S.n=o(v,"backgroundColor",U,S.n)),J!==S.s&&(S.s=o(k,"fg",J,S.s)),X!==S.h&&(S.h=o(w,"fg",X,S.h)),S},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0}),T})()}var Rl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();nr();dn();je();Ye();bn();te();wt()});import{decodePasteBytes as ep}from"@opentui/core";import{spawnSync as tp}from"child_process";function wn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function up(e){if(!e)return!1;return/^\(.+\)$/.test(e)}function vt(e){if(e===void 0)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function bs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function dp(e){let t=[];if(!e)return t;if(t.push({key:"top.version",kind:"field",label:"version",value:String(e.version),rawValue:e.version,path:["version"],editKind:null,depth:0}),t.push({key:"top.theme",kind:"field",label:"theme",value:e.theme??"(default: opencode)",rawValue:e.theme,path:["theme"],editKind:"theme",depth:0}),e.activeProfile!==void 0||e.profiles&&Object.keys(e.profiles).length>0)t.push({key:"top.activeProfile",kind:"field",label:"activeProfile",value:e.activeProfile??"(none)",rawValue:e.activeProfile,path:["activeProfile"],editKind:null,depth:0});t.push({key:"sp.top",kind:"spacer",label:"",depth:0}),t.push({key:"sec.defaults",kind:"section",label:"Defaults",depth:0});let n=e.defaults??{};if(t.push({key:"d.worktreeDir",kind:"field",label:"worktreeDir",value:n.worktreeDir??"(not set)",rawValue:n.worktreeDir,path:["defaults","worktreeDir"],editKind:"string",depth:1,suggestions:gs}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:vt(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:qo}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:vt(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:Xo}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:vt(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:xs}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:vt(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:Yo}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:bs(n.autoUpstream),rawValue:n.autoUpstream,path:["defaults","autoUpstream"],editKind:"boolean",depth:1}),n.sharedDeps)t.push({key:"d.sharedDeps.header",kind:"section",label:"sharedDeps",depth:1}),t.push({key:"d.sharedDeps.strategy",kind:"field",label:"strategy",value:n.sharedDeps.strategy??"(not set)",rawValue:n.sharedDeps.strategy,path:["defaults","sharedDeps","strategy"],editKind:"enum",depth:2,suggestions:ap}),t.push({key:"d.sharedDeps.paths",kind:"field",label:"paths",value:vt(n.sharedDeps.paths),rawValue:n.sharedDeps.paths,path:["defaults","sharedDeps","paths"],editKind:"strArray",depth:2,suggestions:lp}),t.push({key:"d.sharedDeps.invalidateOn",kind:"field",label:"invalidateOn",value:vt(n.sharedDeps.invalidateOn),rawValue:n.sharedDeps.invalidateOn,path:["defaults","sharedDeps","invalidateOn"],editKind:"strArray",depth:2,suggestions:fp});let r=e.workspaces??[];if(r.length>0)t.push({key:"sp.workspaces",kind:"spacer",label:"",depth:0}),t.push({key:"sec.workspaces",kind:"section",label:`Workspaces (${r.length})`,depth:0}),r.forEach((s,c)=>{let a=s.path.split("/").pop()||s.path;t.push({key:`w${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`w${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["workspaces",c,"path"],editKind:null,depth:2}),t.push({key:`w${c}.depth`,kind:"field",label:"depth",value:s.depth===void 0?"(default: 1)":String(s.depth),rawValue:s.depth,path:["workspaces",c,"depth"],editKind:null,depth:2}),t.push({key:`w${c}.exclude`,kind:"field",label:"exclude",value:vt(s.exclude),rawValue:s.exclude,path:["workspaces",c,"exclude"],editKind:"strArray",depth:2,suggestions:[vn,'["node_modules"]','["node_modules", ".cache"]','["node_modules", ".cache", "archived"]']});let d=s.defaults;if(d)t.push({key:`w${c}.defaults.header`,kind:"section",label:"defaults",depth:2}),t.push({key:`w${c}.defaults.worktreeDir`,kind:"field",label:"worktreeDir",value:d.worktreeDir??"(inherits)",rawValue:d.worktreeDir,path:["workspaces",c,"defaults","worktreeDir"],editKind:"string",depth:3,suggestions:gs}),t.push({key:`w${c}.defaults.copyFiles`,kind:"field",label:"copyFiles",value:vt(d.copyFiles),rawValue:d.copyFiles,path:["workspaces",c,"defaults","copyFiles"],editKind:"strArray",depth:3,suggestions:qo}),t.push({key:`w${c}.defaults.linkFiles`,kind:"field",label:"linkFiles",value:vt(d.linkFiles),rawValue:d.linkFiles,path:["workspaces",c,"defaults","linkFiles"],editKind:"strArray",depth:3,suggestions:Xo}),t.push({key:`w${c}.defaults.postCreate`,kind:"field",label:"postCreate",value:vt(d.postCreate),rawValue:d.postCreate,path:["workspaces",c,"defaults","postCreate"],editKind:"strArray",depth:3,suggestions:xs}),t.push({key:`w${c}.defaults.postRemove`,kind:"field",label:"postRemove",value:vt(d.postRemove),rawValue:d.postRemove,path:["workspaces",c,"defaults","postRemove"],editKind:"strArray",depth:3,suggestions:Yo}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:bs(d.autoUpstream),rawValue:d.autoUpstream,path:["workspaces",c,"defaults","autoUpstream"],editKind:"boolean",depth:3});if(c<r.length-1)t.push({key:`sp.w${c}`,kind:"spacer",label:"",depth:0})});let i=e.repos??[];if(t.push({key:"sp.repos",kind:"spacer",label:"",depth:0}),t.push({key:"sec.repos",kind:"section",label:`Repos (${i.length})`,depth:0}),i.length===0)t.push({key:"repos.empty",kind:"field",label:"(none)",value:"add repos via 'e' to edit config file",rawValue:null,editKind:null,depth:1});if(i.forEach((s,c)=>{let a=s.path.split("/").pop()??s.path;if(t.push({key:`r${c}.header`,kind:"section",label:a,depth:1}),t.push({key:`r${c}.path`,kind:"field",label:"path",value:s.path,rawValue:s.path,path:["repos",c,"path"],editKind:null,depth:2}),t.push({key:`r${c}.worktreeDir`,kind:"field",label:"worktreeDir",value:s.worktreeDir??"(inherits)",rawValue:s.worktreeDir,path:["repos",c,"worktreeDir"],editKind:"string",depth:2,suggestions:gs}),t.push({key:`r${c}.copyFiles`,kind:"field",label:"copyFiles",value:vt(s.copyFiles),rawValue:s.copyFiles,path:["repos",c,"copyFiles"],editKind:"strArray",depth:2,suggestions:qo}),t.push({key:`r${c}.linkFiles`,kind:"field",label:"linkFiles",value:vt(s.linkFiles),rawValue:s.linkFiles,path:["repos",c,"linkFiles"],editKind:"strArray",depth:2,suggestions:Xo}),t.push({key:`r${c}.postCreate`,kind:"field",label:"postCreate",value:vt(s.postCreate),rawValue:s.postCreate,path:["repos",c,"postCreate"],editKind:"strArray",depth:2,suggestions:xs}),t.push({key:`r${c}.postRemove`,kind:"field",label:"postRemove",value:vt(s.postRemove),rawValue:s.postRemove,path:["repos",c,"postRemove"],editKind:"strArray",depth:2,suggestions:Yo}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:bs(s.autoUpstream),rawValue:s.autoUpstream,path:["repos",c,"autoUpstream"],editKind:"boolean",depth:2}),s.monorepo){t.push({key:`r${c}.mr.header`,kind:"section",label:"monorepo",depth:2}),t.push({key:`r${c}.mr.autoDetect`,kind:"field",label:"autoDetect",value:s.monorepo.autoDetect===void 0?"(not set)":String(s.monorepo.autoDetect),rawValue:s.monorepo.autoDetect,path:["repos",c,"monorepo","autoDetect"],editKind:"boolean",depth:3}),t.push({key:`r${c}.mr.extraPatterns`,kind:"field",label:"extraPatterns",value:wn(s.monorepo.extraPatterns),rawValue:s.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:op});let d=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${d.length})`,depth:3}),d.forEach((h,p)=>{t.push({key:`r${c}.h${p}.header`,kind:"section",label:`[${p}] ${h.glob}`,depth:4}),t.push({key:`r${c}.h${p}.glob`,kind:"field",label:"glob",value:h.glob,rawValue:h.glob,path:["repos",c,"monorepo","hooks",p,"glob"],editKind:"string",depth:5,suggestions:ip}),t.push({key:`r${c}.h${p}.copyFiles`,kind:"field",label:"copyFiles",value:wn(h.copyFiles),rawValue:h.copyFiles,path:["repos",c,"monorepo","hooks",p,"copyFiles"],editKind:"strArray",depth:5,suggestions:qo}),t.push({key:`r${c}.h${p}.linkFiles`,kind:"field",label:"linkFiles",value:wn(h.linkFiles),rawValue:h.linkFiles,path:["repos",c,"monorepo","hooks",p,"linkFiles"],editKind:"strArray",depth:5,suggestions:Xo}),t.push({key:`r${c}.h${p}.postCreate`,kind:"field",label:"postCreate",value:wn(h.postCreate),rawValue:h.postCreate,path:["repos",c,"monorepo","hooks",p,"postCreate"],editKind:"strArray",depth:5,suggestions:sp}),t.push({key:`r${c}.h${p}.postRemove`,kind:"field",label:"postRemove",value:wn(h.postRemove),rawValue:h.postRemove,path:["repos",c,"monorepo","hooks",p,"postRemove"],editKind:"strArray",depth:5,suggestions:Yo})})}if(c<i.length-1)t.push({key:`sp.r${c}`,kind:"spacer",label:"",depth:0})}),e.templates&&Object.keys(e.templates).length>0){t.push({key:"sp.templates",kind:"spacer",label:"",depth:0}),t.push({key:"sec.templates",kind:"section",label:`Templates (${Object.keys(e.templates).length})`,depth:0});for(let[s,c]of Object.entries(e.templates)){if(t.push({key:`t.${s}.header`,kind:"section",label:s,depth:1}),c.base!==void 0)t.push({key:`t.${s}.base`,kind:"field",label:"base",value:c.base,rawValue:c.base,path:["templates",s,"base"],editKind:"string",depth:2});if(c.worktreeDir!==void 0)t.push({key:`t.${s}.worktreeDir`,kind:"field",label:"worktreeDir",value:c.worktreeDir,rawValue:c.worktreeDir,path:["templates",s,"worktreeDir"],editKind:"string",depth:2});if(c.copyFiles!==void 0)t.push({key:`t.${s}.copyFiles`,kind:"field",label:"copyFiles",value:wn(c.copyFiles),rawValue:c.copyFiles,path:["templates",s,"copyFiles"],editKind:"strArray",depth:2});if(c.linkFiles!==void 0)t.push({key:`t.${s}.linkFiles`,kind:"field",label:"linkFiles",value:wn(c.linkFiles),rawValue:c.linkFiles,path:["templates",s,"linkFiles"],editKind:"strArray",depth:2});if(c.postCreate!==void 0)t.push({key:`t.${s}.postCreate`,kind:"field",label:"postCreate",value:wn(c.postCreate),rawValue:c.postCreate,path:["templates",s,"postCreate"],editKind:"strArray",depth:2});if(c.postRemove!==void 0)t.push({key:`t.${s}.postRemove`,kind:"field",label:"postRemove",value:wn(c.postRemove),rawValue:c.postRemove,path:["templates",s,"postRemove"],editKind:"strArray",depth:2});if(c.autoUpstream!==void 0)t.push({key:`t.${s}.autoUpstream`,kind:"field",label:"autoUpstream",value:String(c.autoUpstream),rawValue:c.autoUpstream,path:["templates",s,"autoUpstream"],editKind:"boolean",depth:2})}}if(e.lifecycle){if(t.push({key:"sp.lifecycle",kind:"spacer",label:"",depth:0}),t.push({key:"sec.lifecycle",kind:"section",label:"Lifecycle",depth:0}),e.lifecycle.autoCleanMerged!==void 0)t.push({key:"lc.autoCleanMerged",kind:"field",label:"autoCleanMerged",value:String(e.lifecycle.autoCleanMerged),rawValue:e.lifecycle.autoCleanMerged,path:["lifecycle","autoCleanMerged"],editKind:"boolean",depth:1});if(e.lifecycle.staleAfterDays!==void 0)t.push({key:"lc.staleAfterDays",kind:"field",label:"staleAfterDays",value:String(e.lifecycle.staleAfterDays),rawValue:e.lifecycle.staleAfterDays,path:["lifecycle","staleAfterDays"],editKind:null,depth:1});if(e.lifecycle.maxWorktrees!==void 0)t.push({key:"lc.maxWorktrees",kind:"field",label:"maxWorktrees",value:String(e.lifecycle.maxWorktrees),rawValue:e.lifecycle.maxWorktrees,path:["lifecycle","maxWorktrees"],editKind:null,depth:1})}if(e.sessions){t.push({key:"sp.sessions",kind:"spacer",label:"",depth:0}),t.push({key:"sec.sessions",kind:"section",label:"Sessions",depth:0});let s=e.sessions;if(s.enabled!==void 0)t.push({key:"s.enabled",kind:"field",label:"enabled",value:String(s.enabled),rawValue:s.enabled,path:["sessions","enabled"],editKind:"boolean",depth:1});if(s.autoCreate!==void 0)t.push({key:"s.autoCreate",kind:"field",label:"autoCreate",value:String(s.autoCreate),rawValue:s.autoCreate,path:["sessions","autoCreate"],editKind:"boolean",depth:1});if(s.autoKill!==void 0)t.push({key:"s.autoKill",kind:"field",label:"autoKill",value:String(s.autoKill),rawValue:s.autoKill,path:["sessions","autoKill"],editKind:"boolean",depth:1});if(s.prefix!==void 0)t.push({key:"s.prefix",kind:"field",label:"prefix",value:s.prefix,rawValue:s.prefix,path:["sessions","prefix"],editKind:"string",depth:1,suggestions:cp});if(s.defaultLayout!==void 0)t.push({key:"s.defaultLayout",kind:"field",label:"defaultLayout",value:s.defaultLayout,rawValue:s.defaultLayout,path:["sessions","defaultLayout"],editKind:"string",depth:1});if(s.layouts&&Object.keys(s.layouts).length>0){t.push({key:"s.layouts.header",kind:"section",label:`layouts (${Object.keys(s.layouts).length})`,depth:1});for(let[c,a]of Object.entries(s.layouts))t.push({key:`s.layouts.${c}`,kind:"field",label:c,value:`${a.windows?.length??0} window(s)`,rawValue:a,path:["sessions","layouts",c],editKind:null,depth:2})}}if(e.profiles&&Object.keys(e.profiles).length>0){t.push({key:"sp.profiles",kind:"spacer",label:"",depth:0}),t.push({key:"sec.profiles",kind:"section",label:`Profiles (${Object.keys(e.profiles).length})`,depth:0});for(let s of Object.keys(e.profiles)){let c=e.activeProfile===s;t.push({key:`p.${s}`,kind:"field",label:s,value:c?"active":"",rawValue:s,path:["profiles",s],editKind:null,depth:1})}}return t}function kl(){let e=ot(),t=nt(),n=yt(),r=()=>{try{return{cfg:Ai(),error:""}}catch(g){return{cfg:null,error:g.message}}},i=r(),[s,c]=ue(i.cfg),[a,d]=ue(i.error),[h,p]=ue(""),[m,b]=ue("info"),[D,T]=ue(0),[v,E]=ue(0),[k,O]=ue(!1),[w,y]=ue(null),[S,B]=ue(null),[A,V]=ue(""),[q,H]=ue(!1),[U,J]=ue(0),[X,re]=ue([]),[he,_]=ue(-1),[me,Pe]=ue(0),R=He(()=>dp(s())),F=He(()=>{let g=[],M=R();for(let P=0;P<M.length;P++){let C=M[P];if(C.kind==="field"&&C.editKind!==null)g.push(P)}return g}),G=()=>{let g=F();if(g.length===0)return-1;let M=Math.max(0,Math.min(D(),g.length-1));return g[M]??-1},N=()=>{let g=G();if(g<0)return null;return R()[g]??null},W=(g,M="info")=>{p(g),b(M)},ee=()=>{let g=r();c(g.cfg),d(g.error)},de=()=>{let g=N();if(!g||!g.editKind||!g.path){W("Field is read-only (press 'e' to edit the file directly)","info");return}let M=g.suggestions??[];if(y(g.editKind),B(g.path),re(M),e.setInputFocused(!0),g.editKind==="string"){let P=typeof g.rawValue==="string"?g.rawValue:"";V(P),_(M.indexOf(P))}else if(g.editKind==="strArray"){let P=Array.isArray(g.rawValue)?g.rawValue:[],C=JSON.stringify(P);V(C),_(M.indexOf(C))}else if(g.editKind==="boolean")H(g.rawValue===!0),_(-1);else if(g.editKind==="theme"){let P=typeof g.rawValue==="string"?g.rawValue:"opencode",C=Dt.indexOf(P);J(C>=0?C:0),_(-1)}else if(g.editKind==="enum"){let P=g.suggestions??[],C=typeof g.rawValue==="string"?g.rawValue:"",Q=P.indexOf(C);Pe(Q>=0?Q:0),_(-1)}O(!0)},ne=()=>{O(!1),B(null),y(null),V(""),re([]),_(-1),e.setInputFocused(!1)},pe=(g)=>{let M=X();if(M.length===0)return;let P=(he()+g+M.length)%M.length;_(P);let C=M[P]??"",Q=w();if(Q==="string"||Q==="strArray")V(C)},Se=()=>{let g=S(),M=w();if(!g||!M){ne();return}let P;if(M==="string"){let C=A();P=C.length===0?void 0:C}else if(M==="strArray"){let C=A().trim();if(C.length===0)P=[];else try{let Q=JSON.parse(C);if(!Array.isArray(Q)||Q.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");P=Q}catch(Q){W(`Invalid JSON: ${Q.message}`,"error");return}}else if(M==="boolean")P=q();else if(M==="theme")P=Dt[U()];else if(M==="enum")P=X()[me()];try{jt();let C=Ai();ta(C,g,P);let Q=Qn(C);if(Q.length>0){let oe=Q[0];W(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(_n(n,`${JSON.stringify(C,null,2)}
|
|
19
|
-
`),M==="theme"&&typeof P==="string"&&Dt.includes(P))xr(P);ee(),W("Saved","success"),O(!1),B(null),y(null),V(""),re([]),_(-1),e.setInputFocused(!1)}catch(C){W(`Save failed: ${C.message}`,"error")}};rt((g)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let M=g.name;if(k()){if(M==="escape"){ne();return}let P=w();if(P==="string"||P==="strArray"){if(M==="tab"){pe(g.shift?-1:1);return}if(M==="return"||M==="enter")Se();return}if(P==="boolean"){if(M==="space"||M==="tab"||M==="left"||M==="right"||M==="h"||M==="l"){H((C)=>!C);return}if(M==="return"||M==="enter")Se();return}if(P==="theme"){if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&g.shift){J((C)=>(C-1+Dt.length)%Dt.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){J((C)=>(C+1)%Dt.length);return}if(M==="return"||M==="enter")Se();return}if(P==="enum"){let C=X();if(C.length===0)return;if(M==="left"||M==="up"||M==="h"||M==="k"||M==="tab"&&g.shift){Pe((Q)=>(Q-1+C.length)%C.length);return}if(M==="right"||M==="down"||M==="l"||M==="j"||M==="tab"){Pe((Q)=>(Q+1)%C.length);return}if(M==="return"||M==="enter")Se();return}return}if(e.inputFocused())return;if(M==="j"||M==="down"){T((P)=>Math.min(P+1,F().length-1));return}if(M==="k"||M==="up"){T((P)=>Math.max(P-1,0));return}if(M==="g"){T(0);return}if(M==="G"){T(Math.max(F().length-1,0));return}if(M==="return"||M==="enter"){de();return}if(M==="e"){let P=process.env.EDITOR??process.env.VISUAL??"vi";jt(),tp(P,[n],{stdio:"inherit"}),ee(),W("Config reloaded","info");return}if(M==="r"){ee(),W("Reloaded","info");return}if(M==="i"){jt(),ee(),W("Initialized","info");return}}),pr((g)=>{if(!k())return;let M=w();if(M!=="string"&&M!=="strArray")return;let P=ep(g.bytes).replace(/\r?\n/g,"");if(!P)return;V((C)=>C+P)});let be=()=>Math.max(t().height-10,5);Ft(tn([D,R],()=>{let g=G();if(g<0)return;let M=be();if(g<v())E(g);else if(g>=v()+M)E(g-M+1)})),it(()=>{e.setInputFocused(!1)});let ke=He(()=>{let g=v();return R().slice(g,g+be()).map((M,P)=>({row:M,globalIdx:g+P}))}),Fe=()=>F().length,Re=()=>{let g=R().length;if(g<=be())return"";let M=Math.min(v()+be(),g);return`${v()+1}-${M}/${g}`},I=()=>t().width,u=()=>Math.max(I()-4-rp-4,20);return(()=>{var g=l("box"),M=l("box"),P=l("box"),C=l("text"),Q=l("b"),oe=l("box"),ge=l("text"),le=l("text"),Ie=l("box");return f(g,M),f(g,Ie),o(g,"x",0),o(g,"y",0),o(g,"width","100%"),o(g,"height","100%"),o(g,"flexDirection","column"),f(M,P),f(M,oe),o(M,"width","100%"),o(M,"height","100%"),o(M,"flexDirection","column"),o(M,"paddingX",2),o(M,"paddingY",1),f(P,C),o(P,"height",1),o(P,"flexDirection","row"),f(C,Q),f(Q,j("Configuration")),L(P,z(ie,{get when(){return!!Re()},get children(){var Z=l("text"),ae=j(" ");return f(Z,ae),L(Z,()=>` \xB7 ${Re()}`,null),K((ce)=>o(Z,"fg",x.text.secondary,ce)),Z}}),null),L(P,z(ie,{get when(){return Fe()>0},get children(){var Z=l("text"),ae=j(" ");return f(Z,ae),L(Z,()=>` \xB7 ${D()+1}/${Fe()}`,null),K((ce)=>o(Z,"fg",x.text.secondary,ce)),Z}}),null),f(oe,ge),f(oe,le),o(oe,"height",1),o(oe,"flexDirection","row"),o(oe,"gap",1),f(ge,j("Path:")),L(le,n),L(M,z(ie,{get when(){return!!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"height",1),o(Z,"flexDirection","row"),o(Z,"gap",1),f(ae,j("Load error:")),L(ce,a),K((Y)=>{var $e=x.text.error,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),null),L(M,z(ie,{get when(){return We(()=>!s())()&&!a()},get children(){var Z=l("box"),ae=l("text"),ce=l("box"),Y=l("text"),$e=l("text"),ye=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","column"),o(Z,"gap",1),f(ae,j("No config file found.")),f(ce,Y),f(ce,$e),f(ce,ye),o(ce,"flexDirection","row"),o(ce,"gap",1),f(Y,j("Press")),f($e,j("i")),f(ye,j("to initialize with defaults.")),K((Ve)=>{var Ne=x.text.warning,ze=x.text.secondary,ut=x.text.accent,Me=x.text.secondary;return Ne!==Ve.e&&(Ve.e=o(ae,"fg",Ne,Ve.e)),ze!==Ve.t&&(Ve.t=o(Y,"fg",ze,Ve.t)),ut!==Ve.a&&(Ve.a=o($e,"fg",ut,Ve.a)),Me!==Ve.o&&(Ve.o=o(ye,"fg",Me,Ve.o)),Ve},{e:void 0,t:void 0,a:void 0,o:void 0}),Z}}),null),L(M,z(ie,{get when(){return!!s()},get children(){return[(()=>{var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),L(ae,()=>"\u2500".repeat(Math.max(I()-34,10))),K((ce)=>o(ae,"fg",x.border.subtle,ce)),Z})(),(()=>{var Z=l("box");return o(Z,"flexDirection","column"),L(Z,z(et,{get each(){return ke()},children:(ae)=>{let ce=ae.row,Y=()=>ae.globalIdx===G(),$e=()=>k()&&Y(),ye=" ".repeat(ce.depth*np);if(ce.kind==="spacer")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),f(ze,j(" ")),K((ut)=>o(ze,"fg",x.text.secondary,ut)),Ne})();if(ce.kind==="section")return(()=>{var Ne=l("box"),ze=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),L(ze,ye,null),L(ze,()=>ce.label,null),K((ut)=>o(ze,"fg",x.text.accent,ut)),Ne})();let Ve=()=>{let Ne=Y()?"\u25B8 ":" ";return`${ye}${Ne}${ce.label}`};return(()=>{var Ne=l("box"),ze=l("box"),ut=l("text");return f(Ne,ze),o(Ne,"height",1),o(Ne,"flexDirection","row"),f(ze,ut),o(ze,"width",30),o(ze,"height",1),L(ut,Ve),L(Ne,z(ie,{get when(){return $e()},get fallback(){return(()=>{var Me=l("text");return L(Me,()=>ce.value??""),K((Te)=>o(Me,"fg",up(ce.value)?x.text.secondary:x.text.primary,Te)),Me})()},get children(){return[z(ie,{get when(){return w()==="string"||w()==="strArray"},get children(){var Me=l("input");return o(Me,"onInput",(Te)=>V(Te)),o(Me,"focused",!0),K((Te)=>{var yn=A(),Ir=u(),Tr=x.bg.elevated,Br=x.text.accent,Nr=w()==="strArray"?'["a", "b"]':"";return yn!==Te.e&&(Te.e=o(Me,"value",yn,Te.e)),Ir!==Te.t&&(Te.t=o(Me,"width",Ir,Te.t)),Tr!==Te.a&&(Te.a=o(Me,"backgroundColor",Tr,Te.a)),Br!==Te.o&&(Te.o=o(Me,"cursorColor",Br,Te.o)),Nr!==Te.i&&(Te.i=o(Me,"placeholder",Nr,Te.i)),Te},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Me}}),z(ie,{get when(){return w()==="boolean"},get children(){var Me=l("text");return L(Me,()=>q()?"[x] true":"[ ] false"),K((Te)=>o(Me,"fg",q()?x.text.success:x.text.secondary,Te)),Me}}),z(ie,{get when(){return w()==="theme"},get children(){var Me=l("text");return L(Me,()=>`\u25C2 ${jo[Dt[U()]??"opencode"]} (${Dt[U()]??"opencode"}) \u25B8`),K((Te)=>o(Me,"fg",x.text.accent,Te)),Me}}),z(ie,{get when(){return w()==="enum"},get children(){var Me=l("text");return L(Me,()=>`\u25C2 ${X()[me()]??""} \u25B8`),K((Te)=>o(Me,"fg",x.text.accent,Te)),Me}})]}}),null),K((Me)=>{var Te=Y()?x.select.focusedBg:void 0,yn=Y()?x.text.accent:x.text.secondary;return Te!==Me.e&&(Me.e=o(Ne,"backgroundColor",Te,Me.e)),yn!==Me.t&&(Me.t=o(ut,"fg",yn,Me.t)),Me},{e:void 0,t:void 0}),Ne})()}})),K((ae)=>o(Z,"height",be(),ae)),Z})()]}}),null),L(M,z(ie,{get when(){return!!h()},get children(){var Z=l("box"),ae=l("text");return f(Z,ae),o(Z,"height",1),L(ae,h),K((ce)=>o(ae,"fg",m()==="error"?x.text.error:m()==="success"?x.text.success:x.text.accent,ce)),Z}}),null),o(Ie,"width","100%"),o(Ie,"height",1),o(Ie,"flexDirection","row"),o(Ie,"gap",2),L(Ie,z(ie,{get when(){return!k()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("j/k")),f(ce,j(":nav")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("g/G")),f(ce,j(":top/bot")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Enter")),f(ce,j(":edit")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("e")),f(ce,j(":$EDITOR")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("r")),f(ce,j(":reload")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("i")),f(ce,j(":init")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})()]}}),null),L(Ie,z(ie,{get when(){return k()},get children(){return[(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Enter")),f(ce,j(":save")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),(()=>{var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Esc")),f(ce,j(":cancel")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z})(),z(ie,{get when(){return w()==="boolean"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Space/Tab")),f(ce,j(":toggle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="theme"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab/\u2190\u2192")),f(ce,j(":cycle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab/\u2190\u2192")),f(ce,j(":cycle")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="strArray"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("JSON")),f(ce,j(":array")),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return We(()=>w()==="string"||w()==="strArray")()&&X().length>0},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j("Tab")),L(ce,()=>`:preset (${he()+1}/${X().length})`),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}}),z(ie,{get when(){return w()==="enum"},get children(){var Z=l("box"),ae=l("text"),ce=l("text");return f(Z,ae),f(Z,ce),o(Z,"flexDirection","row"),f(ae,j(" ")),L(ce,()=>`(${me()+1}/${X().length})`),K((Y)=>{var $e=x.text.secondary,ye=x.text.primary;return $e!==Y.e&&(Y.e=o(ae,"fg",$e,Y.e)),ye!==Y.t&&(Y.t=o(ce,"fg",ye,Y.t)),Y},{e:void 0,t:void 0}),Z}})]}}),null),K((Z)=>{var ae=x.bg.base,ce=x.bg.surface,Y=x.text.accent,$e=x.text.secondary,ye=x.text.primary,Ve=x.bg.base;return ae!==Z.e&&(Z.e=o(g,"backgroundColor",ae,Z.e)),ce!==Z.t&&(Z.t=o(M,"backgroundColor",ce,Z.t)),Y!==Z.a&&(Z.a=o(C,"fg",Y,Z.a)),$e!==Z.o&&(Z.o=o(ge,"fg",$e,Z.o)),ye!==Z.i&&(Z.i=o(le,"fg",ye,Z.i)),Ve!==Z.n&&(Z.n=o(Ie,"backgroundColor",Ve,Z.n)),Z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),g})()}var np=2,rp=30,gs,vn="[]",qo,Xo,xs,Yo,op,ip,sp,cp,ap,lp,fp;var Ol=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();Ye();te();wt();gs=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],qo=[vn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],Xo=[vn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],xs=[vn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],Yo=[vn,'["echo removed"]'],op=[vn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],ip=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],sp=[vn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],cp=["copse","wt"],ap=["hardlink","symlink","copy"],lp=[vn,'["node_modules"]','["node_modules", ".next"]'],fp=[vn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Mr,readdirSync as hp,rmSync as mp}from"fs";import{basename as ws,dirname as vs,join as pp,resolve as Or}from"path";function gp(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function Ml(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Dl(e){if(!Mr(yt()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=De(),r=Or(t.path),i=ws(r);return[n.repos?.find((a)=>Or(a.path)===r)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>gp(a)).filter((a)=>!vs(a).includes("{")&&ws(a).includes("{")).map((a)=>{let d=ws(a),h=`^${Ml(d).replace(/\\\{repo\\\}/g,Ml(i)).replace(/\\\{branch\\\}/g,".+")}$`,p=new RegExp(h);return{path:Or(vs(a)),matches:(m)=>p.test(m)}})}function Al(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Or(vs(n.path)));return[...t]}function Fl(e,t,n,r){if(!Mr(e))return;let i=hp(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(r&&!r(s.name))continue;let c=Or(pp(e,s.name));if(!t.has(c))n.add(c)}}function Wl(e){let t=new Set(e.map((i)=>Or(i.path))),n=new Set,r=new Set;for(let i of Dl(e))r.add(i.path),Fl(i.path,t,n,i.matches);for(let i of Al(e)){if(r.has(i))continue;Fl(i,t,n)}return[...n]}function xp(e){return Dl(e).some((t)=>Mr(t.path))||Al(e).some((t)=>Mr(t))}async function bp(){let e=Bun.spawn(["git","--version"],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C",LANG:"C"}}),[t,n]=await Promise.all([new Response(e.stdout).text(),e.exited]);if(n!==0)return null;return t.trim().match(/git version (\d+\.\d+(?:\.\d+)?)/)?.[1]??null}async function wp(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await bp()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof eo)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function vp(){try{let n=(De().repos??[]).map((r)=>r.path).filter((r)=>!Mr(r));if(n.length>0)return{name:"Configuration",status:"warn",message:"missing repository paths",detail:n};return{name:"Configuration",status:"pass",message:"valid"}}catch(t){return{name:"Configuration",status:"fail",message:`Check failed: ${t.message}`}}}function yp(e){let n=e.map((r)=>r.path).filter((r)=>!Mr(r));if(n.length>0)return{name:"Stale worktrees",status:"warn",message:"missing worktree paths",detail:n};return{name:"Stale worktrees",status:"pass",message:"none"}}function $p(e){try{let n=Wl(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:xp(e)?"none":"no worktree directory"};return{name:"Orphaned directories",status:"warn",message:"orphaned worktree directories found",detail:n}}catch(n){return{name:"Orphaned directories",status:"fail",message:`Check failed: ${n.message}`}}}function Cp(e){let n=e.filter((i)=>i.isLocked);if(n.length===0)return{name:"Worktree locks",status:"pass",message:"all clear"};return{name:"Worktree locks",status:"warn",message:"locked worktrees present",detail:n.map((i)=>{let s=i.branch??"detached";if(!i.lockReason)return`${s} - ${i.path} (potential stale lock: no reason)`;return`${s} - ${i.path} (reason: ${i.lockReason})`})}}function Sp(e){let n=e.filter((r)=>r.isDirty&&!r.isMain);if(n.length===0)return{name:"Dirty worktrees",status:"pass",message:"none"};return{name:"Dirty worktrees",status:"warn",message:"dirty non-main worktrees found",detail:n.map((r)=>`${r.branch??"detached"} - ${r.path}`)}}async function Fr(e){let t=await se.list(e).catch(()=>[]),n=[await wp(),await vp(),yp(t),$p(t),Cp(t),Sp(t)];return{checks:n,healthy:n.every((r)=>r.status==="pass")}}async function Pp(e){try{return await se.prune(e),{action:"Prune stale worktrees",success:!0}}catch(t){return{action:"Prune stale worktrees",success:!1,detail:t.message}}}async function Ep(e){let t=[];try{let n=Wl(await se.list(e).catch(()=>[]));for(let r of n)try{mp(r,{recursive:!0,force:!0}),t.push({action:"Remove orphaned directory",success:!0,detail:r})}catch(i){t.push({action:"Remove orphaned directory",success:!1,detail:`${r}: ${i.message}`})}}catch(n){t.push({action:"Remove orphaned directories",success:!1,detail:n.message})}return t}async function Rp(e){let t=[];try{let r=(await se.list(e)).filter((i)=>i.isLocked&&!i.lockReason);for(let i of r)try{await se.unlock(i.path,e),t.push({action:"Unlock stale lock",success:!0,detail:`${i.branch??"detached"} - ${i.path}`})}catch(s){t.push({action:"Unlock stale lock",success:!1,detail:`${i.path}: ${s.message}`})}}catch(n){t.push({action:"Fix stale locks",success:!1,detail:n.message})}return t}async function Zo(e){let t=[];return t.push(await Pp(e)),t.push(...await Ep(e)),t.push(...await Rp(e)),t}var ys=xe(()=>{Ye();je();qt()});function Il(){let e=ot(),t=nt(),[n,r]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[d,h]=ue(!1),[p,m]=ue([]),b=async()=>{s(!0),a(""),m([]);try{let A=await Fr();r(A)}catch(A){a(A.message)}s(!1)},D=async()=>{if(n()?.healthy)return;h(!0);try{let A=await Zo();m(A);let V=await Fr();r(V)}catch(A){a(A.message)}h(!1)};b(),rt((A)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let V=A.name;if(V==="r")b();if(V==="f"&&!i()&&!d()&&!n()?.healthy)D()});let T=()=>t().width,v=()=>t().height,E=()=>Math.max(50,Math.min(80,T()-4)),k=()=>{let A=S()+B()+8+(B()>0?2:0);return Math.max(12,Math.min(A,v()-4))},O=()=>Math.max(E()-4,10),w=(A)=>{if(A==="pass")return"\u2713";if(A==="warn")return"\u26A0";return"\u2717"},y=(A)=>{if(A==="pass")return x.text.success;if(A==="warn")return x.text.warning;return x.text.error},S=()=>n()?.checks.length??0,B=()=>p().length;return z(on,{get width(){return E()},get height(){return k()},get borderColor(){return We(()=>!!n()?.healthy)()?x.text.success:We(()=>!!n())()?x.text.warning:x.border.default},get backgroundColor(){return x.bg.surface},title:" Doctor ",get footer(){return[(()=>{var A=l("box"),V=l("text");return f(A,V),o(A,"height",1),L(V,()=>"\u2500".repeat(Math.max(O(),1))),K((q)=>{var H=O(),U=x.border.subtle;return H!==q.e&&(q.e=o(A,"width",H,q.e)),U!==q.t&&(q.t=o(V,"fg",U,q.t)),q},{e:void 0,t:void 0}),A})(),(()=>{var A=l("box"),V=l("text"),q=l("text");return f(A,V),f(A,q),o(A,"flexDirection","row"),o(A,"gap",2),f(V,j("r:recheck")),L(A,z(ie,{get when(){return!n()?.healthy},get children(){var H=l("text");return f(H,j("f:fix")),K((U)=>o(H,"fg",x.text.secondary,U)),H}}),q),f(q,j("Esc:back")),K((H)=>{var U=x.text.secondary,J=x.text.secondary;return U!==H.e&&(H.e=o(V,"fg",U,H.e)),J!==H.t&&(H.t=o(q,"fg",J,H.t)),H},{e:void 0,t:void 0}),A})()]},get children(){return[z(ie,{get when(){return i()},get children(){return z(yr,{label:"Running checks..."})}}),z(ie,{get when(){return d()},get children(){var A=l("text");return f(A,j("Running auto-fix...")),K((V)=>o(A,"fg",x.text.accent,V)),A}}),z(ie,{get when(){return We(()=>!i()&&!d())()&&!!c()},get children(){var A=l("text"),V=j("Error: ");return f(A,V),L(A,c,null),K((q)=>o(A,"fg",x.text.error,q)),A}}),z(ie,{get when(){return We(()=>!i()&&!d()&&!c())()&&!!n()},get children(){return[(()=>{var A=l("text");return f(A,j("Health Checks")),K((V)=>o(A,"fg",x.text.accent,V)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),z(et,{get each(){return n().checks},children:(A)=>{return(()=>{var V=l("box"),q=l("text"),H=l("text"),U=j(":"),J=l("text");return f(V,q),f(V,H),f(V,J),o(V,"width","100%"),o(V,"height",1),o(V,"flexDirection","row"),L(q,()=>w(A.status)),f(H,U),o(H,"x",2),o(H,"y",0),L(H,()=>A.name,U),o(J,"y",0),L(J,()=>A.message),K((X)=>{var re=y(A.status),he=x.text.primary,_=A.name.length+4,me=x.text.secondary;return re!==X.e&&(X.e=o(q,"fg",re,X.e)),he!==X.t&&(X.t=o(H,"fg",he,X.t)),_!==X.a&&(X.a=o(J,"x",_,X.a)),me!==X.o&&(X.o=o(J,"fg",me,X.o)),X},{e:void 0,t:void 0,a:void 0,o:void 0}),V})()}}),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),(()=>{var A=l("text");return L(A,(()=>{var V=We(()=>!!n().healthy);return()=>V()?"\u2713 All checks passed":`${n().checks.filter((q)=>q.status==="fail").length} error(s), ${n().checks.filter((q)=>q.status==="warn").length} warning(s) found`})()),K((V)=>o(A,"fg",n().healthy?x.text.success:x.text.warning,V)),A})(),z(ie,{get when(){return B()>0},get children(){return[(()=>{var A=l("text");return f(A,j("Fix Results")),K((V)=>o(A,"fg",x.text.accent,V)),A})(),(()=>{var A=l("text");return L(A,()=>"\u2500".repeat(O())),K((V)=>o(A,"fg",x.border.subtle,V)),A})(),z(et,{get each(){return p()},children:(A)=>{return(()=>{var V=l("box"),q=l("text"),H=l("text");return f(V,q),f(V,H),o(V,"width","100%"),o(V,"height",1),o(V,"flexDirection","row"),L(q,()=>A.success?"\u2713":"\u2717"),o(H,"x",2),o(H,"y",0),L(H,()=>A.action),L(V,z(ie,{get when(){return!!A.detail},get children(){var U=l("text"),J=j("("),X=j(")");return f(U,J),f(U,X),o(U,"y",0),L(U,()=>A.detail,X),K((re)=>{var he=A.action.length+3,_=x.text.secondary;return he!==re.e&&(re.e=o(U,"x",he,re.e)),_!==re.t&&(re.t=o(U,"fg",_,re.t)),re},{e:void 0,t:void 0}),U}}),null),K((U)=>{var J=A.success?x.text.success:x.text.error,X=x.text.primary;return J!==U.e&&(U.e=o(q,"fg",J,U.e)),X!==U.t&&(U.t=o(H,"fg",X,U.t)),U},{e:void 0,t:void 0}),V})()}})]}})]}})]}})}var Tl=xe(()=>{te();te();te();te();te();te();te();te();Ue();zt();ys();te();wt();kr();Ho()});var jl={};qe(jl,{writePin:()=>Cs,removePin:()=>Ss,readPin:()=>io,listPinnedWorktrees:()=>Ps,isPinned:()=>In});import{readFileSync as Bl,writeFileSync as kp,unlinkSync as Op,mkdirSync as Mp,existsSync as $s}from"fs";import{join as Fp,dirname as Nl}from"path";function oo(e){return nn(e,"copse-pin")}function Dp(e){let t=oo(e),n=Nl(t),r=Fp(n,"HEAD"),i=Bl(r,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function Cs(e,t){let n=oo(e),r={branch:Dp(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};Mp(Nl(n),{recursive:!0}),kp(n,JSON.stringify(r),{encoding:"utf-8",mode:384})}function io(e){let t=oo(e);if(!$s(t))return null;return JSON.parse(Bl(t,"utf-8"))}function Ss(e){let t=oo(e);if(!$s(t))return;Op(t)}function In(e){return $s(oo(e))}function Ps(e){return e.filter((t)=>In(t.path))}var Dr=xe(()=>{Fn()});function Ll(){let e=ot(),t=mt(),n=()=>t.worktrees()??[],r=()=>e.selectedWorktreeIndex(),i=(p)=>{let m=Math.max(0,Math.min(p,Math.max(n().length-1,0))),b=n()[m];e.setSelectedWorktreeIndex(m),e.setSelectedWorktreePath(b?.path??null)},s=He(()=>{let p=n(),m=[],b=new Map;for(let v of p){let E=b.get(v.repoName);if(E)E.push(v);else b.set(v.repoName,[v])}let D=0,T=!0;for(let[v,E]of b){if(!T)m.push({type:"separator"});T=!1,m.push({type:"header",repoName:v});for(let k of E)m.push({type:"worktree",wt:k,flatIdx:D}),D++}return m}),c=()=>e.selectedWorktrees().size;rt((p)=>{if(e.activeTab()!=="list")return;if(e.showCommandPalette())return;if(e.showRemove())return;if(e.showBulkActions())return;if(e.inputFocused())return;let m=p.name,b=n();if(m==="j"||m==="down")i(Math.min(r()+1,b.length-1));if(m==="k"||m==="up")i(Math.max(r()-1,0));if(m==="space"){let D=r(),T=b[D];if(T&&!T.isMain)e.toggleWorktreeSelection(T.path)}if(p.ctrl&&m==="a")e.selectAllNonMain(b.filter((D)=>!D.isMain).map((D)=>D.path))});let a=(p)=>{if(p.isLocked)return"\uD83D\uDD12";if(p.isDirty)return"\u25CF";return"\u2713"},d=(p)=>{if(p.isLocked)return x.text.warning;if(p.isDirty)return x.text.error;return x.text.success},h=(p,m)=>{let b=p.branch??"(detached)",D=Math.max(8,Es-(m?9:7));return b.length>D?b.slice(0,D-1)+"\u2026":b};return(()=>{var p=l("box");return o(p,"x",0),o(p,"y",0),o(p,"width","100%"),o(p,"height","100%"),o(p,"flexDirection","column"),o(p,"paddingX",1),o(p,"paddingY",1),o(p,"gap",0),L(p,z(ie,{get when(){return t.loading()},get children(){var m=l("text");return f(m,j("Loading...")),K((b)=>o(m,"fg",x.text.secondary,b)),m}}),null),L(p,z(ie,{get when(){return!t.loading()},get children(){return[z(et,{get each(){return s()},children:(m)=>{if(m.type==="header")return(()=>{var v=l("box"),E=l("text"),k=l("b");return f(v,E),o(v,"width","100%"),o(v,"height",1),f(E,k),L(k,()=>m.repoName),K((O)=>o(E,"fg",x.text.accent,O)),v})();if(m.type==="separator")return(()=>{var v=l("box"),E=l("text");return f(v,E),o(v,"width","100%"),o(v,"height",1),f(E,j("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),K((k)=>o(E,"fg",x.border.subtle,k)),v})();let b=m.wt,D=()=>m.flatIdx===r(),T=()=>e.selectedWorktrees().has(b.path);return(()=>{var v=l("box"),E=l("text"),k=l("text");return f(v,E),f(v,k),o(v,"width","100%"),o(v,"height",1),o(v,"paddingX",1),o(v,"onMouseDown",()=>i(m.flatIdx)),o(E,"x",0),o(E,"y",0),L(E,()=>a(b)),o(k,"x",2),o(k,"y",0),L(k,()=>h(b,!1)),L(v,z(ie,{get when(){return T()},get children(){var O=l("text");return f(O,j("\u2713")),o(O,"x",23),o(O,"y",0),K((w)=>o(O,"fg",x.text.accent,w)),O}}),null),L(v,z(ie,{get when(){return!!Gt(b.path)},get children(){var O=l("text");return f(O,j("S")),o(O,"y",0),K((w)=>{var y=Es-(T()?3:1),S=x.text.accent;return y!==w.e&&(w.e=o(O,"x",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),O}}),null),L(v,z(ie,{get when(){return In(b.path)},get children(){var O=l("text");return f(O,j("P")),o(O,"y",0),K((w)=>{var y=Es-(T()?5:3)+(Gt(b.path)?0:2),S=x.text.warning;return y!==w.e&&(w.e=o(O,"x",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),O}}),null),K((O)=>{var w=D()?x.select.focusedBg:T()?x.bg.elevated:x.bg.surface,y=d(b),S=D()?x.tab.active:x.text.primary;return w!==O.e&&(O.e=o(v,"backgroundColor",w,O.e)),y!==O.t&&(O.t=o(E,"fg",y,O.t)),S!==O.a&&(O.a=o(k,"fg",S,O.a)),O},{e:void 0,t:void 0,a:void 0}),v})()}}),z(ie,{get when(){return c()>0},get children(){var m=l("box"),b=l("text");return f(m,b),o(m,"width","100%"),o(m,"height",1),L(b,()=>`Selected: ${c()}`),K((D)=>o(b,"fg",x.text.accent,D)),m}})]}}),null),K((m)=>o(p,"backgroundColor",x.bg.surface,m)),p})()}var Es=24;var Vl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();dn();te();wt();Dr();pn()});import{decodePasteBytes as Ap}from"@opentui/core";function Kl(){let e=ot(),t=mt(),n=nt(),[r,i]=ue(""),[s,c]=ue(0);ln(()=>{e.setInputFocused(!0)}),it(()=>{e.setInputFocused(!1)});let a=()=>{let k=t.worktrees()??[],O=e.selectedWorktreePath();if(O){let w=k.find((y)=>y.path===O);if(w)return w}return k[e.selectedWorktreeIndex()]},d=()=>{let k=process.env.VISUAL||process.env.EDITOR;if(k)return k;let O=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let w of O)try{if(Bun.spawnSync(["which",w],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return w}catch{}return null},h=He(()=>[{id:"add",label:"Add Worktree",description:"Create a new git worktree",action:()=>{e.setActiveTab("add"),e.setShowCommandPalette(!1)}},{id:"delete",label:"Delete Worktree",description:"Remove the selected worktree",action:()=>{let k=a();if(!k||k.isMain)return;e.setShowRemove(!0),e.setShowCommandPalette(!1)}},{id:"open-editor",label:"Open in Editor",description:"Open selected worktree in IDE",action:()=>{let k=a();if(!k)return;let O=d();if(!O)return;e.setShowCommandPalette(!1),Bun.spawn([O,k.path],{stdout:"inherit",stderr:"inherit"})}},{id:"refresh",label:"Refresh",description:"Reload worktree list",action:()=>{t.refetch(),e.setShowCommandPalette(!1)}},{id:"config",label:"Open Config",description:"View configuration",action:()=>{e.setActiveTab("config"),e.setShowCommandPalette(!1)}},{id:"doctor",label:"Run Doctor",description:"Check worktree health",action:()=>{e.setActiveTab("doctor"),e.setShowCommandPalette(!1)}},...Dt.map((k)=>({id:`theme:${k}`,label:`Theme: ${jo[k]}`,description:"Switch color theme",action:()=>{xr(k);try{let O=yt(),w={...De()};w.theme=k,_n(O,JSON.stringify(w,null,2))}catch{}e.setShowCommandPalette(!1)}})),{id:"quit",label:"Quit",description:"Exit copse",action:()=>process.exit(0)}]),p=He(()=>{let k=r().toLowerCase();if(!k)return h();return h().filter((O)=>O.label.toLowerCase().includes(k)||O.description.toLowerCase().includes(k))});rt((k)=>{if(!e.showCommandPalette())return;let O=k.name;if(O==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(O==="return"||O==="enter"){let w=p()[s()];if(w)w.action();i(""),c(0);return}if(O==="down"||O==="j"){c((w)=>Math.min(w+1,p().length-1));return}if(O==="up"||O==="k"){c((w)=>Math.max(w-1,0));return}}),pr((k)=>{if(!e.inputFocused())return;let O=Ap(k.bytes).replace(/\r?\n/g,"");if(!O)return;i((w)=>w+O),c(0)});let m=(k)=>{i(k),c(0)},b=()=>Math.max(50,Math.min(80,n().width-4)),D=()=>Math.max(10,Math.min(p().length+8,n().height-4)),T=()=>b()-4,v=()=>Math.max(T()-2,1),E=()=>D()-8;return z(on,{get width(){return b()},get height(){return D()},get borderColor(){return x.border.active},get backgroundColor(){return x.bg.surface},title:" Command Palette ",get footer(){return[(()=>{var k=l("box"),O=l("text");return f(k,O),o(k,"height",1),L(O,()=>"\u2500".repeat(Math.max(T(),1))),K((w)=>{var y=T(),S=x.border.subtle;return y!==w.e&&(w.e=o(k,"width",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box"),O=l("text"),w=l("text"),y=l("text");return f(k,O),f(k,w),f(k,y),o(k,"flexDirection","row"),o(k,"gap",2),f(O,j("\u2191\u2193:navigate")),f(w,j("Enter:run")),f(y,j("Esc:close")),K((S)=>{var B=x.text.secondary,A=x.text.secondary,V=x.text.secondary;return B!==S.e&&(S.e=o(O,"fg",B,S.e)),A!==S.t&&(S.t=o(w,"fg",A,S.t)),V!==S.a&&(S.a=o(y,"fg",V,S.a)),S},{e:void 0,t:void 0,a:void 0}),k})()]},get children(){return[(()=>{var k=l("box"),O=l("text"),w=l("input");return f(k,O),f(k,w),o(k,"height",1),o(k,"flexDirection","row"),f(O,j("> ")),o(w,"onInput",m),o(w,"placeholder","Search commands..."),o(w,"focused",!0),K((y)=>{var S=T(),B=x.bg.elevated,A=x.text.accent,V=r(),q=v(),H=x.bg.elevated,U=x.text.primary,J=x.text.secondary,X=x.text.accent,re=x.bg.elevated;return S!==y.e&&(y.e=o(k,"width",S,y.e)),B!==y.t&&(y.t=o(k,"backgroundColor",B,y.t)),A!==y.a&&(y.a=o(O,"fg",A,y.a)),V!==y.o&&(y.o=o(w,"value",V,y.o)),q!==y.i&&(y.i=o(w,"width",q,y.i)),H!==y.n&&(y.n=o(w,"backgroundColor",H,y.n)),U!==y.s&&(y.s=o(w,"textColor",U,y.s)),J!==y.h&&(y.h=o(w,"placeholderColor",J,y.h)),X!==y.r&&(y.r=o(w,"cursorColor",X,y.r)),re!==y.d&&(y.d=o(w,"focusedBackgroundColor",re,y.d)),y},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0}),k})(),(()=>{var k=l("box"),O=l("text");return f(k,O),o(k,"height",1),L(O,()=>"\u2500".repeat(Math.max(T(),1))),K((w)=>{var y=T(),S=x.border.subtle;return y!==w.e&&(w.e=o(k,"width",y,w.e)),S!==w.t&&(w.t=o(O,"fg",S,w.t)),w},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box");return o(k,"flexDirection","column"),L(k,z(et,{get each(){return p().slice(0,E())},children:(O,w)=>{let y=()=>w()===s();return(()=>{var S=l("box"),B=l("text"),A=l("text");return f(S,B),f(S,A),o(S,"height",1),o(S,"onMouseDown",()=>{c(w()),O.action()}),o(B,"x",2),o(B,"y",0),L(B,()=>O.label),o(A,"y",0),L(A,()=>O.description),K((V)=>{var q=T(),H=y()?x.select.focusedBg:x.bg.surface,U=y()?x.tab.active:x.text.primary,J=Math.max(25,O.label.length+4),X=x.text.secondary;return q!==V.e&&(V.e=o(S,"width",q,V.e)),H!==V.t&&(V.t=o(S,"backgroundColor",H,V.t)),U!==V.a&&(V.a=o(B,"fg",U,V.a)),J!==V.o&&(V.o=o(A,"x",J,V.o)),X!==V.i&&(V.i=o(A,"fg",X,V.i)),V},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),S})()}}),null),L(k,z(ie,{get when(){return p().length===0},get children(){var O=l("box"),w=l("text");return f(O,w),o(O,"height",1),f(w,j("No commands found")),o(w,"x",2),o(w,"y",0),K((y)=>o(w,"fg",x.text.secondary,y)),O}}),null),K((O)=>{var w=T(),y=E(),S=x.bg.surface;return w!==O.e&&(O.e=o(k,"width",w,O.e)),y!==O.t&&(O.t=o(k,"height",y,O.t)),S!==O.a&&(O.a=o(k,"backgroundColor",S,O.a)),O},{e:void 0,t:void 0,a:void 0}),k})()]}})}var Gl=xe(()=>{te();te();te();te();te();te();te();Ue();zt();dn();te();wt();kr();Ye()});import{join as Wp}from"path";import{existsSync as Ip}from"fs";function Hl(e){let t=ot(),n=rn(),[r,i]=ue(0),s=()=>t.focusPickerData(),c=He(()=>{let p=s();if(!p)return[];return[...p.focusPaths.map((m)=>({label:m,value:m})),{label:"Worktree root",value:Rs}]}),a=()=>{t.setFocusPickerData(null),i(0)},d=(p)=>{let m=e.detectEditor();if(!m){n.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"}),a();return}if(!Ip(p)){n.addToast({message:`Path does not exist: ${p}`,type:"error"}),a();return}Bun.spawn([m,p],{stdout:"inherit",stderr:"inherit"}),a()},h=()=>{let p=s(),m=c();if(!p||m.length===0)return;let b=m[r()];if(!b)return;if(b.value===Rs)d(p.worktreePath);else d(Wp(p.worktreePath,b.value))};return rt((p)=>{if(!s())return;let m=p.name;if(m==="escape"){a();return}let b=c();if(m==="down"||m==="j"||p.sequence==="\x1B[B"){i((D)=>Math.min(D+1,b.length-1));return}if(m==="up"||m==="k"||p.sequence==="\x1B[A"){i((D)=>Math.max(D-1,0));return}if(m==="return"||m==="enter"){h();return}}),z(ie,{get when(){return s()},get children(){return z(on,{title:" Open Focus ",width:50,get height(){return Math.min(c().length+6,14)},backdrop:!0,get children(){return[(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,j("Multiple focus paths set. Pick one to open:")),K((b)=>o(m,"fg",x.text.secondary,b)),p})(),(()=>{var p=l("box");return o(p,"height",1),p})(),z(et,{get each(){return c()},children:(p,m)=>(()=>{var b=l("box"),D=l("text");return f(b,D),o(b,"height",1),o(b,"flexDirection","row"),L(D,()=>m()===r()?"\u276F ":" ",null),L(D,()=>p.label,null),K((T)=>o(D,"fg",m()===r()?x.text.accent:p.value===Rs?x.text.secondary:x.text.primary,T)),b})()}),(()=>{var p=l("box");return o(p,"height",1),p})(),(()=>{var p=l("box"),m=l("text");return f(p,m),o(p,"height",1),f(m,j("j/k:nav enter:open esc:cancel")),K((b)=>o(m,"fg",x.text.secondary,b)),p})()]}})}})}var Rs="__root__";var Ul=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();nr();wt();kr()});function Tp(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function Bp(e){if(e==="success")return x.text.success;if(e==="warning")return x.text.warning;if(e==="error")return x.text.error;return x.text.primary}function Jl(){let e=nt(),t=()=>Math.min(60,Math.max(24,e().width-4)),n=()=>Math.max(0,e().width-t()-1);return(()=>{var r=l("box");return o(r,"y",1),o(r,"height",5),o(r,"flexDirection","column"),L(r,z(et,{get each(){return rn().toasts()},children:(i,s)=>(()=>{var c=l("box"),a=l("text");return f(c,a),o(c,"x",0),o(c,"height",1),o(a,"x",1),o(a,"y",0),L(a,()=>`${Tp(i.type)} ${i.message}`),K((d)=>{var h=s(),p=t(),m=x.bg.elevated,b=Bp(i.type);return h!==d.e&&(d.e=o(c,"y",h,d.e)),p!==d.t&&(d.t=o(c,"width",p,d.t)),m!==d.a&&(d.a=o(c,"backgroundColor",m,d.a)),b!==d.o&&(d.o=o(a,"fg",b,d.o)),d},{e:void 0,t:void 0,a:void 0,o:void 0}),c})()})),K((i)=>{var s=n(),c=t();return s!==i.e&&(i.e=o(r,"x",s,i.e)),c!==i.t&&(i.t=o(r,"width",c,i.t)),i},{e:void 0,t:void 0}),r})()}var zl=xe(()=>{te();te();te();te();te();te();Ue();te();nr();wt()});var Yl={};qe(Yl,{launchTUI:()=>Vp});import{existsSync as Np}from"fs";import{resolve as ql}from"path";function Xl(){let e=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let t of e)try{if(Bun.spawnSync(["which",t],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return t}catch{}return null}function Lp(e){let t=ot(),n=mt(),r=rn(),i=un(),[s,c]=ue(!1),a=nt(),d=()=>{let E=n.worktrees()??[],k=t.selectedWorktreePath();if(k){let O=E.find((w)=>w.path===k);if(O)return O}return E[t.selectedWorktreeIndex()]};Ft(()=>{let E=n.worktrees()??[],k=E.map((S)=>S.path);if(t.pruneSelectedWorktrees(k),E.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let O=t.selectedWorktreePath();if(O){let S=E.findIndex((B)=>B.path===O);if(S>=0){if(S!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(S);return}}let w=Math.min(t.selectedWorktreeIndex(),E.length-1),y=E[w]?.path??null;if(w!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(w);if(y!==t.selectedWorktreePath())t.setSelectedWorktreePath(y)}),rt((E)=>{let k=E.name;if(k==="escape"){if(t.focusPickerData()){t.setFocusPickerData(null);return}if(t.showBulkActions()){t.setShowBulkActions(!1);return}if(t.showDetailView()){t.setShowDetailView(!1);return}if(t.showRemove()){t.setShowRemove(!1);return}if(s()){c(!1);return}if(t.inputFocused())return;if(t.activeTab()!=="list"){t.setActiveTab("list");return}}if(E.ctrl&&k==="p"){t.setShowCommandPalette(!0);return}if(t.focusPickerData())return;if(t.inputFocused())return;if(t.showCommandPalette())return;if(t.showBulkActions())return;if(t.showRemove())return;if(t.activeTab()==="add")return;if(t.activeTab()==="list"){if(t.showDetailView())return;if(k==="a"){t.setActiveTab("add");return}if(k==="r"){n.refetch();return}if(k==="d"){let O=d();if(O&&!O.isMain)t.setShowRemove(!0);return}if(k==="o"){let O=d();if(!O)return;let w=Vo(O.path);if(w.kind==="multiple"){t.setFocusPickerData({worktreePath:O.path,focusPaths:w.focusPaths});return}let y=process.env.VISUAL||process.env.EDITOR||Xl();if(!y){r.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!Np(w.path)){r.addToast({message:`Path does not exist: ${w.path}`,type:"error"});return}Bun.spawn([y,w.path],{stdout:"inherit",stderr:"inherit"});return}}if(k==="h"){t.setActiveTab("doctor");return}if(k==="q"||k==="Q")i.destroy();if(k==="?")c((O)=>!O)});let h=()=>a().width,p=()=>a().height,m=()=>e.repoPath.split("/").pop()??"",b=()=>{let E=n.repoNames();if(E.length<=1)return m();return`${E.length} repos`},D=()=>{let E=n.worktrees()??[];return`${m()} \xB7 ${E.length} worktrees`},T=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},v=()=>h()-jp-1;return(()=>{var E=l("box"),k=l("box"),O=l("text"),w=l("text"),y=l("box"),S=l("box"),B=l("box"),A=l("text"),V=l("b"),q=l("box"),H=l("box"),U=l("toaster"),J=l("box"),X=l("text"),re=l("box"),he=l("text");return f(E,k),f(E,y),f(E,U),f(E,J),f(E,re),o(E,"flexDirection","column"),f(k,O),f(k,w),o(k,"height",1),f(O,j("\uD83C\uDF33 copse")),o(O,"x",1),o(O,"y",0),o(w,"y",0),L(w,b),f(y,S),f(y,q),f(y,H),o(y,"flexGrow",1),o(y,"flexDirection","row"),f(S,B),o(S,"width",28),o(S,"flexShrink",0),o(S,"flexDirection","column"),f(B,A),o(B,"height",1),o(B,"paddingX",1),f(A,V),L(V,T),L(S,z(Ll,{}),null),o(q,"width",1),o(H,"flexGrow",1),L(H,z(ie,{get when(){return We(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return z(ml,{})}}),null),L(H,z(ie,{get when(){return We(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return z(El,{get w(){return v()},get h(){return p()-3}})}}),null),L(H,z(ie,{get when(){return t.activeTab()==="config"},get children(){return z(kl,{})}}),null),L(E,z(Jl,{}),U),o(U,"position","bottom-right"),f(J,X),o(J,"height",1),o(X,"x",0),o(X,"y",0),L(X,()=>"\u2500".repeat(h())),f(re,he),o(re,"height",1),f(he,j("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),o(he,"x",1),o(he,"y",0),L(E,z(ie,{get when(){return We(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),Pe=l("text"),R=l("text"),F=l("box"),G=l("text"),N=l("text"),W=l("box"),ee=l("text"),de=l("text"),ne=l("box"),pe=l("text"),Se=l("text"),be=l("box"),ke=l("text"),Fe=l("text"),Re=l("box"),I=l("box"),u=l("text"),g=l("text"),M=l("box"),P=l("text"),C=l("text"),Q=l("box"),oe=l("box"),ge=l("text");return f(_,me),f(_,F),f(_,W),f(_,ne),f(_,be),f(_,Re),f(_,I),f(_,M),f(_,Q),f(_,oe),o(_,"height",14),o(_,"border",!0),o(_,"borderStyle","rounded"),o(_,"title"," Keyboard Shortcuts "),o(_,"titleAlignment","left"),o(_,"flexDirection","column"),o(_,"paddingX",1),o(_,"paddingY",1),o(_,"position","absolute"),f(me,Pe),f(me,R),o(me,"height",1),f(Pe,j("q")),o(Pe,"x",1),f(R,j("Quit")),o(R,"x",8),f(F,G),f(F,N),o(F,"height",1),f(G,j("j/k")),o(G,"x",1),f(N,j("Navigate list")),o(N,"x",8),f(W,ee),f(W,de),o(W,"height",1),f(ee,j("a")),o(ee,"x",1),f(de,j("Add worktree")),o(de,"x",8),f(ne,pe),f(ne,Se),o(ne,"height",1),f(pe,j("d")),o(pe,"x",1),f(Se,j("Delete worktree")),o(Se,"x",8),f(be,ke),f(be,Fe),o(be,"height",1),f(ke,j("r")),o(ke,"x",1),f(Fe,j("Refresh list")),o(Fe,"x",8),o(Re,"height",1),f(I,u),f(I,g),o(I,"height",1),f(u,j("Ctrl+P")),o(u,"x",1),f(g,j("Command palette")),o(g,"x",8),f(M,P),f(M,C),o(M,"height",1),f(P,j("?")),o(P,"x",1),f(C,j("Toggle help")),o(C,"x",8),o(Q,"height",1),f(oe,ge),o(oe,"height",1),f(ge,j("Press ? to close")),o(ge,"x",1),K((le)=>{var Ie=Math.max(0,Math.floor((h()-Math.max(40,Math.min(60,h()-4)))/2)),Z=Math.max(0,Math.floor((p()-14)/2)),ae=Math.max(40,Math.min(60,h()-4)),ce=x.border.active,Y=x.bg.elevated,$e=x.text.secondary,ye=x.text.primary,Ve=x.text.secondary,Ne=x.text.primary,ze=x.text.secondary,ut=x.text.primary,Me=x.text.secondary,Te=x.text.primary,yn=x.text.secondary,Ir=x.text.primary,Tr=x.text.secondary,Br=x.text.primary,Nr=x.text.secondary,Ts=x.text.primary,Bs=x.text.accent;return Ie!==le.e&&(le.e=o(_,"x",Ie,le.e)),Z!==le.t&&(le.t=o(_,"y",Z,le.t)),ae!==le.a&&(le.a=o(_,"width",ae,le.a)),ce!==le.o&&(le.o=o(_,"borderColor",ce,le.o)),Y!==le.i&&(le.i=o(_,"backgroundColor",Y,le.i)),$e!==le.n&&(le.n=o(Pe,"fg",$e,le.n)),ye!==le.s&&(le.s=o(R,"fg",ye,le.s)),Ve!==le.h&&(le.h=o(G,"fg",Ve,le.h)),Ne!==le.r&&(le.r=o(N,"fg",Ne,le.r)),ze!==le.d&&(le.d=o(ee,"fg",ze,le.d)),ut!==le.l&&(le.l=o(de,"fg",ut,le.l)),Me!==le.u&&(le.u=o(pe,"fg",Me,le.u)),Te!==le.c&&(le.c=o(Se,"fg",Te,le.c)),yn!==le.w&&(le.w=o(ke,"fg",yn,le.w)),Ir!==le.m&&(le.m=o(Fe,"fg",Ir,le.m)),Tr!==le.f&&(le.f=o(u,"fg",Tr,le.f)),Br!==le.y&&(le.y=o(g,"fg",Br,le.y)),Nr!==le.g&&(le.g=o(P,"fg",Nr,le.g)),Ts!==le.p&&(le.p=o(C,"fg",Ts,le.p)),Bs!==le.b&&(le.b=o(ge,"fg",Bs,le.b)),le},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),_}}),null),L(E,z(ie,{get when(){return t.activeTab()==="add"},get children(){return z($l,{})}}),null),L(E,z(ie,{get when(){return t.activeTab()==="doctor"},get children(){return z(Il,{})}}),null),L(E,z(ie,{get when(){return t.showRemove()},get children(){return z(Sl,{})}}),null),L(E,z(ie,{get when(){return t.showCommandPalette()},get children(){return z(Kl,{})}}),null),L(E,z(Hl,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||Xl()}),null),K((_)=>{var me=h(),Pe=p(),R=x.bg.base,F=x.bg.overlay,G=x.text.accent,N=h()-b().length-2,W=x.text.secondary,ee=x.bg.surface,de=x.text.accent,ne=x.bg.base,pe=x.bg.overlay,Se=x.border.subtle,be=x.bg.overlay,ke=x.text.secondary;return me!==_.e&&(_.e=o(E,"width",me,_.e)),Pe!==_.t&&(_.t=o(E,"height",Pe,_.t)),R!==_.a&&(_.a=o(E,"backgroundColor",R,_.a)),F!==_.o&&(_.o=o(k,"backgroundColor",F,_.o)),G!==_.i&&(_.i=o(O,"fg",G,_.i)),N!==_.n&&(_.n=o(w,"x",N,_.n)),W!==_.s&&(_.s=o(w,"fg",W,_.s)),ee!==_.h&&(_.h=o(S,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=o(A,"fg",de,_.r)),ne!==_.d&&(_.d=o(H,"backgroundColor",ne,_.d)),pe!==_.l&&(_.l=o(J,"backgroundColor",pe,_.l)),Se!==_.u&&(_.u=o(X,"fg",Se,_.u)),be!==_.c&&(_.c=o(re,"backgroundColor",be,_.c)),ke!==_.w&&(_.w=o(he,"fg",ke,_.w)),_},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0}),E})()}async function Vp(){if(process.stdout.isTTY)process.stdout.write("\x1B]0;Copse\x07");let e=null;try{e=await se.getMainRepoPath()}catch{}let t=[],n;try{let c={...De()};if(t=kn(c),typeof c.theme==="string")n=c.theme}catch{}let r=e??t[0]??process.cwd(),i=[r],s=new Set([ql(r)]);for(let c of t){let a=ql(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&Dt.includes(n))xr(n);await Ua(()=>z(nl,{repoPath:r,repoPaths:i,get children(){return z(il,{repoPaths:i,get children(){return z(fl,{get children(){return z(Lp,{repoPath:r})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var jp=28;var Zl=xe(()=>{te();te();te();te();te();te();te();te();Ue();te();zt();dn();je();pl();Cl();Pl();Rl();Ol();Tl();Vl();wt();Gl();Ul();nr();zl();nr();Ye();Yt()});import*as Ql from"readline";async function Tn(e){let t=Ql.createInterface({input:process.stdin,output:process.stdout});return new Promise((n)=>{t.question(e,(r)=>{t.close(),n(r.toLowerCase()==="y"||r.toLowerCase()==="yes")})})}async function Le(){return se.getMainRepoPath().catch(()=>process.cwd())}function Ht(e,t){let n=e.find((r)=>r.branch===t||r.path===t||r.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function Qe(e){if(e instanceof St)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var gt=xe(()=>{je();qt()});import{mkdirSync as Kp,writeFileSync as Gp}from"fs";import{dirname as Hp}from"path";function Up(e){return nn(e,"copse-pr")}function _l(e,t){let n=Up(e);Kp(Hp(n),{recursive:!0}),Gp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var ef=xe(()=>{Fn()});import{appendFileSync as Jp,existsSync as zp,mkdirSync as qp,readFileSync as tf,rmSync as Xp,statSync as Yp,writeFileSync as Zp}from"fs";import{dirname as Qp}from"path";function ks(e){return nn(e,"copse-activity.log")}function Ut(e,t){let n=ks(e);qp(Qp(n),{recursive:!0}),Jp(n,`${JSON.stringify(t)}
|
|
20
|
-
`,{encoding:"utf-8",mode:384});let r=Yp(n,{throwIfNoEntry:!1});if(r&&r.size>eg){let i=tf(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>nf){let s=i.slice(-_p);Zp(n,`${s.join(`
|
|
3
|
+
var Yu=Object.defineProperty;var Zu=(e)=>e;function Qu(e,t){this[e]=Zu.bind(null,t)}var Ne=(e,t)=>{for(var n in t)Yu(e,n,{get:t[n],enumerable:!0,configurable:!0,set:Qu.bind(t,n)})};var ge=(e,t)=>()=>(e&&(t=e(e=0)),t);var ln=import.meta.require;import{existsSync as ji,readdirSync as Ud,statSync as na}from"fs";import{join as Hi,resolve as Gd}from"path";function zd(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function ra(e){return Gd(zd(e))}function qd(e){let t=Hi(e,".git");if(!ji(t))return!1;try{return na(t).isDirectory()}catch{return!1}}function Xd(e){return ji(Hi(e,".git"))}function Yd(e){if(!ji(e))return!1;try{return na(e).isDirectory()}catch{return!1}}function Zd(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 Qd(e,t=oa,n=[]){let o=Math.max(1,Math.min(t,Jd)),i=ra(e);if(!Yd(i))return[];let s=Zd(n),c=new Set,a=(u,d)=>{let m;try{m=Ud(u,{withFileTypes:!0})}catch{return}for(let p of m){if(!p.isDirectory()||s(p.name))continue;let w=Hi(u,p.name);if(Xd(w)){if(qd(w))c.add(w);continue}if(d<o)a(w,d+1)}};return a(i,1),[...c].sort((u,d)=>u.localeCompare(d))}function ia(e){let t=e.workspaces;if(!t||t.length===0)return e;let n=new Set((e.repos??[]).map((i)=>ra(i.path))),o=[];for(let i of t){let s=i.depth??oa,c=i.exclude??[],a=Qd(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 oa=1,Jd=3;var sa=()=>{};import{join as Vi,resolve as Rr}from"path";import*as un from"fs";function Kt(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 fa(){let t=Bun.env.XDG_CONFIG_HOME??Vi(Bun.env.HOME??"~",".config");return Vi(t,"copse")}function Ct(){return Vi(fa(),"config.json")}function no(e){let t=[];if(typeof e!=="object"||e===null)return t.push({field:"root",message:"Config must be a JSON object"}),t;let n=e;if(!("version"in n))t.push({field:"version",message:"Required field 'version' is missing"});else if(n.version!==1)t.push({field:"version",message:`Expected version 1, got ${JSON.stringify(n.version)}`});for(let o of Object.keys(n))if(!Nd.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(!ca.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)Kt(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 Bi(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(!$d.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)Kt(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 Bi(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(!eh.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)Kt(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 d=a.hooks[u];if(typeof d!=="object"||d===null){t.push({field:`${s}.monorepo.hooks[${u}]`,message:"Must be an object"});continue}if(!("glob"in d)||typeof d.glob!=="string")t.push({field:`${s}.monorepo.hooks[${u}].glob`,message:"Required string field"});if("copyFiles"in d&&d.copyFiles!==void 0)Kt(d.copyFiles,`${s}.monorepo.hooks[${u}].copyFiles`,t);if("linkFiles"in d&&d.linkFiles!==void 0)Kt(d.linkFiles,`${s}.monorepo.hooks[${u}].linkFiles`,t);if("postCreate"in d&&d.postCreate!==void 0)Kt(d.postCreate,`${s}.monorepo.hooks[${u}].postCreate`,t);if("postRemove"in d&&d.postRemove!==void 0)Kt(d.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(!_d.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)Kt(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(!ca.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)Kt(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 Bi(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(!th.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)Kt(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(!nh.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(!oh.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 d=0;d<u.windows.length;d++){let m=u.windows[d];if(typeof m!=="object"||m===null){t.push({field:`${a}.windows[${d}]`,message:"Must be an object"});continue}if(!("name"in m)||typeof m.name!=="string")t.push({field:`${a}.windows[${d}].name`,message:"Required string field"});if("command"in m&&typeof m.command!=="string")t.push({field:`${a}.windows[${d}].command`,message:"Must be a string"})}}}if("defaultLayout"in o&&typeof o.defaultLayout==="string"&&"layouts"in o&&typeof o.layouts==="object"&&o.layouts!==null){let i=o.layouts;if(!(o.defaultLayout in i))t.push({field:"sessions.defaultLayout",message:`Layout '${o.defaultLayout}' does not exist in sessions.layouts`})}}if("profiles"in n&&n.profiles!==void 0)if(typeof n.profiles!=="object"||n.profiles===null||Array.isArray(n.profiles))t.push({field:"profiles",message:"Must be an object (key-value map)"});else{let o=n.profiles;for(let[i,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(!rh.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 Bi(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)Kt(e.paths,`${t}.paths`,n);if("invalidateOn"in e)Kt(e.invalidateOn,`${t}.invalidateOn`,n)}function Yo(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function to(e){if(Array.isArray(e))return e.map((t)=>to(t));if(Yo(e)){let t={};for(let[n,o]of Object.entries(e))t[n]=to(o);return t}return e}function ua(e,t){if(t===void 0)return to(e);if(Array.isArray(t))return t.map((i)=>to(i));if(!Yo(t))return to(t);let n=Yo(e)?e:{},o={};for(let[i,s]of Object.entries(n))o[i]=to(s);for(let[i,s]of Object.entries(t)){if(s===void 0)continue;let c=n[i];if(Yo(c)&&Yo(s)){o[i]=ua(c,s);continue}o[i]=to(s)}return o}function ih(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 ua(e,t)}function da(e){let t=e??Ct();if(!un.existsSync(t))return structuredClone(la);let n;try{let c=Cr.readFileSync(t,"utf-8");n=JSON.parse(c)}catch(c){let a=c.message;if(a.includes("JSON"))throw Error(`Invalid JSON in config file: ${a}`);if(c instanceof SyntaxError)throw Error(`Invalid JSON in config file: ${a}`);throw Error(`Failed to read config file: ${a}`)}let o=no(n);if(o.length>0){let c=o.map((a)=>`${a.field}: ${a.message}`).join("; ");throw Error(`Config validation failed: ${c}`)}let i=ih(n),s=no(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 ia(da(e))}function Ki(e){return da(e)}function en(e,t){let n=Rr(t),o=e.repos?.find((i)=>Rr(i.path)===n);return{worktreeDir:o?.worktreeDir??e.defaults?.worktreeDir??go.worktreeDir,copyFiles:o?.copyFiles??e.defaults?.copyFiles??go.copyFiles,linkFiles:o?.linkFiles??e.defaults?.linkFiles??go.linkFiles,postCreate:o?.postCreate??e.defaults?.postCreate??go.postCreate,postRemove:o?.postRemove??e.defaults?.postRemove??go.postRemove,autoUpstream:o?.autoUpstream??e.defaults?.autoUpstream??go.autoUpstream,monorepo:o?.monorepo,sharedDeps:o?.sharedDeps??e.defaults?.sharedDeps,base:o?.base??e.defaults?.base}}function Pn(e){return(e.repos??[]).map((t)=>Rr(t.path))}function vr(e,t){let n=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,n).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}function Tt(e){let t=e??Ct(),n=e?Rr(t,".."):fa();if(!un.existsSync(n))Cr.mkdirSync(n,{recursive:!0,mode:448});if(un.existsSync(t))return t;return oo(t,`${JSON.stringify(la,null,2)}
|
|
4
|
+
`),t}function ha(e){let t=e??Ct(),n=un.existsSync(t);return{path:Tt(e),created:!n}}function Or(e,t){return e.templates?.[t]}function kr(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 Mn(e){return e.sessions??{}}function Er(e,t){let n=e.sessions;if(!n?.layouts)return;let o=t??n.defaultLayout;if(!o)return;return n.layouts[o]}function ma(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 oo(e,t){let n=`${e}.tmp.${Date.now()}`;try{un.writeFileSync(n,t,{encoding:"utf-8",mode:384});let o=JSON.parse(t),i=no(o);if(i.length>0)throw Error(`Validation failed: ${i.map((s)=>s.message).join("; ")}`);Cr.renameSync(n,e)}catch(o){if(un.existsSync(n))Cr.unlinkSync(n);throw o}}var Cr,aa="~/.copse/worktrees/{repo}-{branch}",la,go,Nd,ca,$d,_d,eh,th,nh,oh,rh;var qe=ge(()=>{sa();Cr=un,la={version:1,defaults:{worktreeDir:aa,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0},repos:[]},go={worktreeDir:aa,copyFiles:[],linkFiles:[],postCreate:[],postRemove:[],autoUpstream:!0,sharedDeps:void 0,base:void 0};Nd=new Set(["version","defaults","repos","workspaces","$schema","theme","templates","lifecycle","sessions","profiles","activeProfile"]),ca=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","sharedDeps","base"]),$d=new Set(["path","worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","monorepo","sharedDeps","base"]),_d=new Set(["path","depth","exclude","defaults"]),eh=new Set(["autoDetect","extraPatterns","hooks"]),th=new Set(["worktreeDir","copyFiles","linkFiles","postCreate","postRemove","autoUpstream","base"]),nh=new Set(["autoCleanMerged","staleAfterDays","maxWorktrees"]),oh=new Set(["enabled","autoCreate","autoKill","prefix","defaultLayout","layouts"]),rh=new Set(["defaults","repos","workspaces","theme","templates","lifecycle","sessions"])});function pa(e){let t=String(e),n=t.length-1;return _e.context.id+(n?String.fromCharCode(96+n):"")+t}function Gi(e){_e.context=e}function sh(){return{..._e.context,id:_e.getNextContextId(),count:0}}function Zo(e,t){let n=Ke,o=Le,i=e.length===0,s=t===void 0?o:t,c=i?Ca:{owned:null,cleanups:null,context:s?s.context:null,owner:s},a=i?e:()=>e(()=>vt(()=>An(c)));Le=c,Ke=null;try{return Pt(a,!0)}finally{Ke=n,Le=o}}function ue(e,t){t=t?Object.assign({},Pr,t):Pr;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 ka(n,i)};return[Oa.bind(n),o]}function ba(e,t,n){let o=Wr(e,t,!0,Mt);if(wo&&fe&&fe.running)ot.push(o);else xo(o)}function tn(e,t,n){let o=Wr(e,t,!1,Mt);if(wo&&fe&&fe.running)ot.push(o);else xo(o)}function At(e,t,n){Ra=bh;let o=Wr(e,t,!1,Mt),i=No&&Ut(No);if(i)o.suspense=i;if(!n||!n.render)o.user=!0;ht?ht.push(o):xo(o)}function Xe(e,t,n){n=n?Object.assign({},Pr,n):Pr;let o=Wr(e,t,!0,0);if(o.observers=null,o.observerSlots=null,o.comparator=n.equals||void 0,wo&&fe&&fe.running)o.tState=Mt,ot.push(o);else xo(o);return Oa.bind(o)}function uh(e){return e&&typeof e==="object"&&"then"in e}function va(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=Ti,u=null,d=!1,m=!1,p="initialValue"in s,w=typeof o==="function"&&Xe(o),A=new Set,[W,y]=(s.storage||ue)(s.initialValue),[R,k]=ue(void 0),[D,x]=ue(void 0,{equals:!1}),[S,v]=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 T(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=Ti,fe&&J&&d)fe.promises.delete(J),d=!1,Pt(()=>{fe.running=!0,j(q,Y)},!1);else j(q,Y)}return q}function j(J,q){Pt(()=>{if(q===void 0)y(()=>J);v(q!==void 0?"errored":p?"ready":"unresolved"),k(q);for(let Y of A.keys())Y.decrement();A.clear()},!1)}function z(){let J=No&&Ut(No),q=W(),Y=R();if(Y!==void 0&&!c)throw Y;if(Ke&&!Ke.user&&J)ba(()=>{if(D(),c){if(J.resolved&&fe&&d)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(d=fe&&fe.running,q==null||q===!1){T(c,vt(W));return}if(fe&&c)fe.promises.delete(c);let Y,ne=a!==Ti?a:vt(()=>{try{return i(q,{value:W(),refetching:J})}catch(he){Y=he}});if(Y!==void 0){T(c,void 0,Fr(Y),q);return}else if(!uh(ne))return T(c,ne,void 0,q),ne;if(c=ne,"v"in ne){if(ne.s===1)T(c,ne.v,void 0,q);else T(c,void 0,Fr(ne.v),q);return ne}return m=!0,queueMicrotask(()=>m=!1),Pt(()=>{v(p?"refreshing":"pending"),x()},!1),ne.then((he)=>T(ne,he,void 0,q),(he)=>T(ne,void 0,Fr(he),q))}Object.defineProperties(z,{state:{get:()=>S()},error:{get:()=>R()},loading:{get(){let J=S();return J==="pending"||J==="refreshing"}},latest:{get(){if(!p)return z();let J=R();if(J&&!c)throw J;return W()}}});let G=Le;if(w)ba(()=>(G=Le,Z(!1)));else Z(!1);return[z,{refetch:(J)=>dh(G,()=>Z(J)),mutate:y}]}function vt(e){if(!bo&&Ke===null)return e();let t=Ke;Ke=null;try{if(bo)return bo.untrack(e);return e()}finally{Ke=t}}function nn(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 d=0;d<e.length;d++)a[d]=e[d]()}else a=e();if(s)return s=!1,c;let u=vt(()=>t(a,i,c));return i=a,u}}function dn(e){At(()=>vt(e))}function ct(e){if(Le===null);else if(Le.cleanups===null)Le.cleanups=[e];else Le.cleanups.push(e);return e}function dh(e,t){let n=Le,o=Ke;Le=e,Ke=null;try{return Pt(t,!0)}catch(i){Lr(i)}finally{Le=n,Ke=o}}function hh(e){if(fe&&fe.running)return e(),fe.done;let t=Ke,n=Le;return Promise.resolve().then(()=>{Ke=t,Le=n;let o;if(wo||No)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 Pt(e,!1),Ke=Le=null,o?o.done:void 0})}function Wn(e,t){let n=Symbol("context");return{id:n,Provider:wh(n),defaultValue:e}}function Ut(e){let t;return Le&&Le.context&&(t=Le.context[e.id])!==void 0?t:e.defaultValue}function mh(e){let t=Xe(e),n=Xe(()=>zi(t()));return n.toArray=()=>{let o=n();return Array.isArray(o)?o:o!=null?[o]:[]},n}function Oa(){let e=fe&&fe.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Mt)xo(this);else{let t=ot;ot=null,Pt(()=>Mr(this),!1),ot=t}if(Ke){let t=this.observers?this.observers.length:0;if(!Ke.sources)Ke.sources=[this],Ke.sourceSlots=[t];else Ke.sources.push(this),Ke.sourceSlots.push(t);if(!this.observers)this.observers=[Ke],this.observerSlots=[Ke.sources.length-1];else this.observers.push(Ke),this.observerSlots.push(Ke.sources.length-1)}if(e&&fe.sources.has(this))return this.tValue;return this.value}function ka(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)Pt(()=>{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 ht.push(s);if(s.observers)Da(s)}if(!c)s.state=Mt;else s.tState=Mt}if(ot.length>1e6)throw ot=[],Error()},!1)}return t}function xo(e){if(!e.fn)return;An(e);let t=Ar;if(xa(e,fe&&fe.running&&fe.sources.has(e)?e.tValue:e.value,t),fe&&!fe.running&&fe.sources.has(e))queueMicrotask(()=>{Pt(()=>{fe&&(fe.running=!0),Ke=Le=e,xa(e,e.tValue,t),Ke=Le=null},!1)})}function xa(e,t,n){let o,i=Le,s=Ke;Ke=Le=e;try{o=e.fn(t)}catch(c){if(e.pure)if(fe&&fe.running)e.tState=Mt,e.tOwned&&e.tOwned.forEach(An),e.tOwned=void 0;else e.state=Mt,e.owned&&e.owned.forEach(An),e.owned=null;return e.updatedAt=n+1,Lr(c)}finally{Ke=s,Le=i}if(!e.updatedAt||e.updatedAt<=n){if(e.updatedAt!=null&&"observers"in e)ka(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 Wr(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:Le,context:Le?Le.context:null,pure:n};if(fe&&fe.running)s.state=0,s.tState=o;if(Le===null);else if(Le!==Ca)if(fe&&fe.running&&Le.pure)if(!Le.tOwned)Le.tOwned=[s];else Le.tOwned.push(s);else if(!Le.owned)Le.owned=[s];else Le.owned.push(s);if(bo&&s.fn){let c=s.fn,[a,u]=ue(void 0,{equals:!1}),d=bo.factory(c,u);ct(()=>d.dispose());let m,p=()=>hh(u).then(()=>{if(m)m.dispose(),m=void 0});s.fn=(w)=>{if(a(),fe&&fe.running){if(!m)m=bo.factory(c,p);return m.track(w)}return d.track(w)}}return s}function $o(e){let t=fe&&fe.running;if((t?e.tState:e.state)===0)return;if((t?e.tState:e.state)===Qo)return Mr(e);if(e.suspense&&vt(e.suspense.inFallback))return e.suspense.effects.push(e);let n=[e];while((e=e.owner)&&(!e.updatedAt||e.updatedAt<Ar)){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)xo(e);else if((t?e.tState:e.state)===Qo){let i=ot;ot=null,Pt(()=>Mr(e,n[0]),!1),ot=i}}}function Pt(e,t){if(ot)return e();let n=!1;if(!t)ot=[];if(ht)n=!0;else ht=[];Ar++;try{let o=e();return ph(n),o}catch(o){if(!n)ht=null;ot=null,Lr(o)}}function ph(e){if(ot){if(wo&&fe&&fe.running)gh(ot);else Ea(ot);ot=null}if(e)return;let t;if(fe){if(!fe.promises.size&&!fe.queue.size){let{sources:o,disposed:i}=fe;ht.push.apply(ht,fe.effects),t=fe.resolve;for(let s of ht)"tState"in s&&(s.state=s.tState),delete s.tState;fe=null,Pt(()=>{for(let s of i)An(s);for(let s of o){if(s.value=s.tValue,s.owned)for(let c=0,a=s.owned.length;c<a;c++)An(s.owned[c]);if(s.tOwned)s.owned=s.tOwned;delete s.tValue,delete s.tOwned,s.tState=0}wa(!1)},!1)}else if(fe.running){fe.running=!1,fe.effects.push.apply(fe.effects,ht),ht=null,wa(!0);return}}let n=ht;if(ht=null,n.length)Pt(()=>Ra(n),!1);if(t)t()}function Ea(e){for(let t=0;t<e.length;t++)$o(e[t])}function gh(e){for(let t=0;t<e.length;t++){let n=e[t],o=fe.queue;if(!o.has(n))o.add(n),wo(()=>{o.delete(n),Pt(()=>{fe.running=!0,$o(n)},!1),fe&&(fe.running=!1)})}}function bh(e){let t,n=0;for(t=0;t<e.length;t++){let o=e[t];if(!o.user)$o(o);else e[n++]=o}if(_e.context){if(_e.count){_e.effects||(_e.effects=[]),_e.effects.push(...e.slice(0,n));return}Gi()}if(_e.effects&&(_e.done||!_e.count))e=[..._e.effects,...e],n+=_e.effects.length,delete _e.effects;for(t=0;t<n;t++)$o(e[t])}function Mr(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<Ar))$o(i)}else if(s===Qo)Mr(i,t)}}}function Da(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=Qo;else o.state=Qo;if(o.pure)ot.push(o);else ht.push(o);o.observers&&Da(o)}}}function An(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--)An(e.tOwned[t]);delete e.tOwned}if(fe&&fe.running&&e.pure)Fa(e,!0);else if(e.owned){for(t=e.owned.length-1;t>=0;t--)An(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 Fa(e,t){if(!t)e.tState=0,fe.disposed.add(e);if(e.owned)for(let n=0;n<e.owned.length;n++)Fa(e.owned[n])}function Fr(e){if(e instanceof Error)return e;return Error(typeof e==="string"?e:"Unknown error",{cause:e})}function ya(e,t,n){try{for(let o of t)o(e)}catch(o){Lr(o,n&&n.owner||null)}}function Lr(e,t=Le){let n=ga&&t&&t.context&&t.context[ga],o=Fr(e);if(!n)throw o;if(ht)ht.push({fn(){ya(o,n,t)},state:Mt});else ya(o,n,t)}function zi(e){if(typeof e==="function"&&!e.length)return zi(e());if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n++){let o=zi(e[n]);Array.isArray(o)?t.push.apply(t,o):t.push(o)}return t}return e}function wh(e,t){return function(o){let i;return tn(()=>i=vt(()=>{return Le.context={...Le.context,[e]:o.value},mh(()=>o.children)}),void 0),i}}function Sa(e){for(let t=0;t<e.length;t++)e[t]()}function yh(e,t,n={}){let o=[],i=[],s=[],c=0,a=t.length>1?[]:null;return ct(()=>Sa(s)),()=>{let u=e()||[],d=u.length,m,p;return u[fh],vt(()=>{let A,W,y,R,k,D,x,S,v;if(d===0){if(c!==0)Sa(s),s=[],o=[],i=[],c=0,a&&(a=[]);if(n.fallback)o=[xh],i[0]=Zo((T)=>{return s[0]=T,n.fallback()}),c=1}else if(c===0){i=Array(d);for(p=0;p<d;p++)o[p]=u[p],i[p]=Zo(w);c=d}else{y=Array(d),R=Array(d),a&&(k=Array(d));for(D=0,x=Math.min(c,d);D<x&&o[D]===u[D];D++);for(x=c-1,S=d-1;x>=D&&S>=D&&o[x]===u[S];x--,S--)y[S]=i[x],R[S]=s[x],a&&(k[S]=a[x]);A=new Map,W=Array(S+1);for(p=S;p>=D;p--)v=u[p],m=A.get(v),W[p]=m===void 0?-1:m,A.set(v,p);for(m=D;m<=x;m++)if(v=o[m],p=A.get(v),p!==void 0&&p!==-1)y[p]=i[m],R[p]=s[m],a&&(k[p]=a[m]),p=W[p],A.set(v,p);else s[m]();for(p=D;p<d;p++)if(p in y){if(i[p]=y[p],s[p]=R[p],a)a[p]=k[p],a[p](p)}else i[p]=Zo(w);i=i.slice(0,c=d),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 Pa(e,t){if(Sh){if(_e.context){let n=_e.context;Gi(sh());let o=vt(()=>e(t||{}));return Gi(n),o}}return vt(()=>e(t||{}))}function Dr(){return!0}function Ui(e){return!(e=typeof e==="function"?e():e)?{}:e}function Ch(){for(let e=0,t=this.length;e<t;++e){let n=this[e]();if(n!==void 0)return n}}function Ir(...e){let t=!1;for(let c=0;c<e.length;c++){let a=e[c];t=t||!!a&&Ji in a,e[c]=typeof a==="function"?(t=!0,Xe(a)):a}if(lh&&t)return new Proxy({get(c){for(let a=e.length-1;a>=0;a--){let u=Ui(e[a])[c];if(u!==void 0)return u}},has(c){for(let a=e.length-1;a>=0;a--)if(c in Ui(e[a]))return!0;return!1},keys(){let c=[];for(let a=0;a<e.length;a++)c.push(...Object.keys(Ui(e[a])));return[...new Set(c)]}},Rh);let n={},o=Object.create(null);for(let c=e.length-1;c>=0;c--){let a=e[c];if(!a)continue;let u=Object.getOwnPropertyNames(a);for(let d=u.length-1;d>=0;d--){let m=u[d];if(m==="__proto__"||m==="constructor")continue;let p=Object.getOwnPropertyDescriptor(a,m);if(!o[m])o[m]=p.get?{enumerable:!0,configurable:!0,get:Ch.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(yh(()=>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?vt(()=>s(t?i:()=>{if(!vt(o))throw vh("Show");return n()})):s}return e.fallback},void 0,void 0)}var _e,ch=!1,ah=(e,t)=>e===t,Ji,lh,fh,s0,Pr,ga=null,Ra,Mt=1,Qo=2,Ca,Ti,Le=null,fe=null,wo=null,bo=null,Ke=null,ot=null,ht=null,Ar=0,c0,wa,No,xh,Sh=!1,Rh,vh=(e)=>`Stale read from <${e}>.`;var Ye=ge(()=>{_e={context:void 0,registry:void 0,effects:void 0,done:!1,getContextId(){return pa(this.context.count)},getNextContextId(){return pa(this.context.count++)}};Ji=Symbol("solid-proxy"),lh=typeof Proxy==="function",fh=Symbol("solid-track"),s0=Symbol("solid-dev-component"),Pr={equals:ah},Ra=Ea,Ca={owned:null,cleanups:null,context:null,owner:null},Ti={};[c0,wa]=ue(!1);xh=Symbol("fallback");Rh={get(e,t,n){if(t===Ji)return n;return e.get(t)},has(e,t){if(t===Ji)return!0;return e.has(t)},set:Dr,deleteProperty:Dr,getOwnPropertyDescriptor(e,t){return{configurable:!0,enumerable:!0,get(){return e.get(t)},set:Dr,deleteProperty:Dr}},ownKeys(e){return e.keys()}}});function Aa(e){var t;if(e>=55296&&e<=57343||e>1114111)return 65533;return(t=Oh.get(e))!==null&&t!==void 0?t:e}var qi,Oh,Ma;var Wa=ge(()=>{Oh=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),Ma=(qi=String.fromCodePoint)!==null&&qi!==void 0?qi:(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 La(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 Ia;var ja=ge(()=>{Ia=La("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 mt;var Ha=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"})(mt||(mt={}))});function Yi(e){return e>=Ze.ZERO&&e<=Ze.NINE}function kh(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_F||e>=Ze.LOWER_A&&e<=Ze.LOWER_F}function Eh(e){return e>=Ze.UPPER_A&&e<=Ze.UPPER_Z||e>=Ze.LOWER_A&&e<=Ze.LOWER_Z||Yi(e)}function Dh(e){return e===Ze.EQUALS||Eh(e)}class Zi{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=hn.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)|Ba)===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(Yi(n)||kh(n)){let o=n<=Ze.NINE?n-Ze.ZERO:(n|Ba)-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(Yi(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===hn.Strict)return 0;if(this.emitCodePoint(Aa(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&mt.VALUE_LENGTH)>>14;while(t<e.length){if(i===0&&(o&mt.FLAG13)!==0){let c=(o&mt.BRANCH_LENGTH)>>7;if(this.runConsumed===0){let a=o&mt.JUMP_TABLE;if(e.charCodeAt(t)!==a)return this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}while(this.runConsumed<c){if(t>=e.length)return-1;let a=this.runConsumed-1,u=n[this.treeIndex+1+(a>>1)],d=a%2===0?u&255:u>>8&255;if(e.charCodeAt(t)!==d)return this.runConsumed=0,this.result===0?0:this.emitNotTerminatedNamedEntity();t++,this.excess++,this.runConsumed++}this.runConsumed=0,this.treeIndex+=1+(c>>1),o=n[this.treeIndex],i=(o&mt.VALUE_LENGTH)>>14}if(t>=e.length)break;let s=e.charCodeAt(t);if(s===Ze.SEMI&&i!==0&&(o&mt.FLAG13)!==0)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.treeIndex=Ph(n,o,this.treeIndex+Math.max(1,i),s),this.treeIndex<0)return this.result===0||this.decodeMode===hn.Attribute&&(i===0||Dh(s))?0:this.emitNotTerminatedNamedEntity();if(o=n[this.treeIndex],i=(o&mt.VALUE_LENGTH)>>14,i!==0){if(s===Ze.SEMI)return this.emitNamedEntityData(this.treeIndex,i,this.consumed+this.excess);if(this.decodeMode!==hn.Strict&&(o&mt.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]&mt.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]&~(mt.VALUE_LENGTH|mt.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!==hn.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 Fh(e){let t="",n=new Zi(e,(o)=>t+=Ma(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 d=n.write(i,a+1);if(d<0){c=a+n.end();break}c=a+d,a=d===0?c+1:c}let u=t+i.slice(c);return t="",u}}function Ph(e,t,n,o){let i=(t&mt.BRANCH_LENGTH)>>7,s=t&mt.JUMP_TABLE;if(i===0)return s!==0&&o===s?n:-1;if(s){let d=o-s;return d<0||d>=i?-1:e[n+d]-1}let c=i+1>>1,a=0,u=i-1;while(a<=u){let d=a+u>>>1,m=d>>1,w=e[n+m]>>(d&1)*8&255;if(w<o)a=d+1;else if(w>o)u=d-1;else return e[n+c+d]}return-1}function ro(e,t=hn.Legacy){return Mh(e,t)}var Ze,Ba=32,ft,hn,Mh;var Va=ge(()=>{Wa();ja();Ha();(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"})(hn||(hn={}));Mh=Fh(Ia)});var Ka,Ta;var Ga=ge(()=>{Va();(function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"})(Ka||(Ka={}));(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"})(Ta||(Ta={}))});import{CliRenderer as Wh,createCliRenderer as Lh,engine as Ih}from"@opentui/core";import{createTestRenderer as C0}from"@opentui/core/testing";import{ASCIIFontRenderable as jh,BoxRenderable as Hh,CodeRenderable as Bh,DiffRenderable as Vh,InputRenderable as Kh,LineNumberRenderable as Th,MarkdownRenderable as Uh,ScrollBoxRenderable as Gh,SelectRenderable as Jh,TabSelectRenderable as zh,TextareaRenderable as qh,TextAttributes as Qi,TextNodeRenderable as Xh,TextRenderable as Yh}from"@opentui/core";import{engine as k0,Timeline as E0}from"@opentui/core";import{BaseRenderable as Qa,createTextAttributes as Qh,InputRenderable as Ni,InputRenderableEvents as _o,isTextNodeRenderable as es,parseColor as Ja,Renderable as Nh,RootTextNodeRenderable as $h,ScrollBoxRenderable as _h,SelectRenderable as za,SelectRenderableEvents as $i,TabSelectRenderable as qa,TabSelectRenderableEvents as _i,TextNodeRenderable as em,TextRenderable as Na}from"@opentui/core";import{BaseRenderable as fm,isTextNodeRenderable as um,TextNodeRenderable as dm,TextRenderable as hm,Yoga as Ya}from"@opentui/core";import{TimeToFirstDrawRenderable as gm}from"@opentui/core";import{createSlotRegistry as V0}from"@opentui/core";function nm({createElement:e,createTextNode:t,createSlotNode:n,isTextNode:o,replaceText:i,insertNode:s,removeNode:c,setProperty:a,getParentNode:u,getFirstChild:d,getNextSibling:m}){function p(x,S,v,T){if(v!==void 0&&!T)T=[];if(typeof S!=="function")return w(x,S,T,v);tn((j)=>w(x,S(),j,v),T)}function w(x,S,v,T,j){while(typeof v==="function")v=v();if(S===v)return v;let z=typeof S,Z=T!==void 0;if(z==="string"||z==="number"){if(z==="number")S=S.toString();if(Z){let G=v[0];if(G&&o(G))i(G,S);else G=t(S);v=y(x,v,T,G)}else if(v!==""&&typeof v==="string")i(d(x),v=S);else y(x,v,T,t(S)),v=S}else if(S==null||z==="boolean")v=y(x,v,T);else if(z==="function")return tn(()=>{let G=S();while(typeof G==="function")G=G();v=w(x,G,v,T)}),()=>v;else if(Array.isArray(S)){let G=[];if(A(G,S,j))return tn(()=>v=w(x,G,v,T,!0)),()=>v;if(G.length===0){let J=y(x,v,T);if(Z)return v=J}else if(Array.isArray(v))if(v.length===0)R(x,G,T);else W(x,v,G);else if(v==null||v==="")R(x,G);else W(x,Z&&v||[d(x)],G);v=G}else{if(Array.isArray(v)){if(Z)return v=y(x,v,T,S);y(x,v,null,S)}else if(v==null||v===""||!d(x))s(x,S);else k(x,S,d(x));v=S}return v}function A(x,S,v){let T=!1;for(let j=0,z=S.length;j<z;j++){let Z=S[j],G;if(Z==null||Z===!0||Z===!1);else if(Array.isArray(Z))T=A(x,Z)||T;else if((G=typeof Z)==="string"||G==="number")x.push(t(Z));else if(G==="function")if(v){while(typeof Z==="function")Z=Z();T=A(x,Array.isArray(Z)?Z:[Z])||T}else x.push(Z),T=!0;else x.push(Z)}return T}function W(x,S,v){let T=v.length,j=S.length,z=T,Z=0,G=0,J=m(S[j-1]),q=null;while(Z<j||G<z){if(S[Z]===v[G]){Z++,G++;continue}while(S[j-1]===v[z-1])j--,z--;if(j===Z){let Y=z<T?G?m(v[G-1]):v[z-G]:J;while(G<z)s(x,v[G++],Y)}else if(z===G)while(Z<j){if(!q||!q.has(S[Z]))c(x,S[Z]);Z++}else if(S[Z]===v[z-1]&&v[G]===S[j-1]){let Y=m(S[--j]);s(x,v[G++],m(S[Z++])),s(x,v[--z],Y),S[j]=v[z]}else{if(!q){q=new Map;let ne=G;while(ne<z)q.set(v[ne],ne++)}let Y=q.get(S[Z]);if(Y!=null)if(G<Y&&Y<z){let ne=Z,he=1,_;while(++ne<j&&ne<z){if((_=q.get(S[ne]))==null||_!==Y+he)break;he++}if(he>Y-G){let me=S[Z];while(G<Y)s(x,v[G++],me)}else k(x,v[G++],S[Z++])}else Z++;else c(x,S[Z++])}}}function y(x,S,v,T){if(v===void 0){let z;while(z=d(x))c(x,z);return T&&s(x,T),T??""}let j=T||n();if(S.length){let z=!1;for(let Z=S.length-1;Z>=0;Z--){let G=S[Z];if(j!==G){let J=u(G)===x;if(!z&&!Z)J?k(x,j,G):s(x,j,v);else J&&c(x,G)}else z=!0}}else s(x,j,v);return[j]}function R(x,S,v){for(let T=0,j=S.length;T<j;T++)s(x,S[T],v)}function k(x,S,v){s(x,S,v),c(x,v)}function D(x,S,v={},T){if(S||(S={}),!T)tn(()=>v.children=w(x,S.children,v.children));return tn(()=>S.ref&&S.ref(x)),tn(()=>{for(let j in S){if(j==="children"||j==="ref")continue;let z=S[j];if(z===v[j])continue;a(x,j,z,v[j]),v[j]=z}}),v}return{render(x,S){let v;return Zo((T)=>{v=T,p(S,x())}),v},insert:p,spread(x,S,v){if(typeof S==="function")tn((T)=>D(x,S(),T,v));else D(x,S,void 0,v)},createElement:e,createTextNode:t,insertNode:s,setProp(x,S,v,T){return a(x,S,v,T),v},mergeProps:Ir,effect:tn,memo:tm,createComponent:Pa,use(x,S,v){return vt(()=>x(S,v))}}}function om(e){let t=nm(e);return t.mergeProps=Ir,t}function is(e){if(!jr.has(e))jr.set(e,0);let t=jr.get(e)+1;return jr.set(e,t),`${e}-${t}`}function rm(e,t,n){if(ut("Inserting node:",at(t),"into parent:",at(e),"with anchor:",at(n),t instanceof yo),t instanceof er)t.parent=e,t=t.getSlotChild(e);if(n&&n instanceof er)n=n.getSlotChild(e);if(es(t)){if(!(e instanceof Na)&&!es(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 Qa))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=ts(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 im(e,t){if(ut("Removing node:",at(t),"from parent:",at(e)),t instanceof er)t.parent=null,t=t.getSlotChild(e);e.remove(t.id),process.nextTick(()=>{if(t instanceof Qa&&!t.parent){t.destroyRecursively();return}})}function sm(e){ut("Creating text node:",e);let t=is("text-node");if(typeof e==="number")e=e.toString();return yo.fromString(ro(e),{id:t})}function cm(){let e=is("slot-node");return ut("Creating slot node",e),new er(e)}function Xa(e){ut("Getting parent of node:",at(e));let t=e.parent??void 0;if(t instanceof $h)t=t.textParent??void 0;let n=t?.parent?.parent?.parent;if(n instanceof _h&&n.content===t)t=n;return t}function cs(e){Object.assign(ol,e)}function pm(){return ol}var rs,mn=()=>{let e=Ut(rs);if(!e)throw Error("No renderer found");return e},Zh=(e)=>{let t=mn();dn(()=>{t.on("resize",e)}),ct(()=>{t.off("resize",e)})},rt=()=>{let e=mn(),[t,n]=ue({width:e.width,height:e.height});return Zh((i,s)=>{n({width:i,height:s})}),t},it=(e,t)=>{let o=mn().keyInput;dn(()=>{if(o.on("keypress",e),t?.release)o.on("keyrelease",e)}),ct(()=>{if(o.off("keypress",e),t?.release)o.off("keyrelease",e)})},So=(e)=>{let n=mn().keyInput;dn(()=>{n.on("paste",e)}),ct(()=>{n.off("paste",e)})},Za=(e)=>{let t=mn();dn(()=>{t.on("selection",e)}),ct(()=>{t.off("selection",e)})},tm=(e)=>Xe(()=>e()),jr,ut=(...e)=>{if(process.env.DEBUG)console.log("[Reconciler]",...e)},yo,at=(e)=>{if(!e)return;return e.id},ts=(e)=>{let t;if(e instanceof Na)t=e.getTextChildren();else t=e.getChildren();return t},am,V,je,X,l,H,f,B,lm,r,L0,I0,ss,$a,_a,er,tr,Hr,ns,os,el,tl,nl,mm,ol,bm=(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=am(()=>X(rs.Provider,{get value(){return e},get children(){return X(t,{})}}),e.root)}finally{s=!1,e.destroy=a}if(o)u();if(c)a()},rl=async(e,t={})=>{let n=t instanceof Wh?t:await Lh({...t,onDestroy:()=>{t.onDestroy?.()}});Ih.attach(n),bm(n,e)};var te=ge(()=>{Ye();Ga();Ye();Ye();Ye();rs=Wn();jr=new Map;yo=class yo extends em{static fromString(e,t={}){let n=new yo(t);return n.add(e),n}};({render:am,effect:V,memo:je,createComponent:X,createElement:l,createTextNode:H,insertNode:f,insert:B,spread:lm,setProp:r,mergeProps:L0,use:I0}=om({createElement(e){ut("Creating element:",e);let t=is(e),n=Ut(rs);if(!n)throw Error("No renderer found");let o=pm();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:sm,createSlotNode:cm,replaceText(e,t){if(ut("Replacing text:",t,"in node:",at(e)),!(e instanceof yo))return;e.replace(ro(t),0)},setProperty(e,t,n,o){if(t.startsWith("on:")){let i=t.slice(3);if(n)e.on(i,n);if(o)e.off(i,o);return}if(es(e)){if(t==="href"){e.link={url:n};return}if(t==="style"){e.attributes|=Qh(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 Nh))return;if(n)e.focus();else e.blur();break;case"onChange":let i=void 0;if(e instanceof za)i=$i.SELECTION_CHANGED;else if(e instanceof qa)i=_i.SELECTION_CHANGED;else if(e instanceof Ni)i=_o.CHANGE;if(!i)break;if(n)e.on(i,n);if(o)e.off(i,o);break;case"onInput":if(e instanceof Ni){if(n)e.on(_o.INPUT,n);if(o)e.off(_o.INPUT,o)}break;case"onSubmit":if(e instanceof Ni){if(n)e.on(_o.ENTER,n);if(o)e.off(_o.ENTER,o)}else e[t]=n;break;case"onSelect":if(e instanceof za){if(n)e.on($i.ITEM_SELECTED,n);if(o)e.off($i.ITEM_SELECTED,o)}else if(e instanceof qa){if(n)e.on(_i.ITEM_SELECTED,n);if(o)e.off(_i.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]=ro(s);break}default:e[t]=n}},isTextNode(e){return e instanceof yo},insertNode:rm,removeNode:im,getParentNode:Xa,getFirstChild(e){ut("Getting first child of node:",at(e));let t=ts(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=Xa(e);if(!t){ut("No parent found for node:",at(e));return}let n=ts(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}}));ss=class ss extends fm{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}};$a=class $a extends dm{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()}};_a=class _a extends ss{yogaNode;slotParent;destroyed=!1;constructor(e,t){super(e);this._visible=!1,this.slotParent=t,this.yogaNode=Ya.default.Node.create(),this.yogaNode.setDisplay(Ya.Display.None)}getLayoutNode(){return this.yogaNode}updateFromLayout(){}updateLayout(){}onRemove(){}destroy(){if(this.destroyed)return;this.destroyed=!0,super.destroy(),this.slotParent?.destroy()}};er=class er extends ss{layoutNode;textNode;destroyed=!1;constructor(e){super(e);this._visible=!1}getSlotChild(e){if(um(e)||e instanceof hm){if(!this.textNode)this.textNode=new $a(`slot-text-${this.id}`,this);return this.textNode}if(!this.layoutNode)this.layoutNode=new _a(`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()}};tr=class tr extends Xh{_ctx;constructor(e,t){super(t);this._ctx=e}};Hr=class Hr extends tr{constructor(e,t){super(null,e);if(t==="b"||t==="strong")this.attributes=(this.attributes||0)|Qi.BOLD;else if(t==="i"||t==="em")this.attributes=(this.attributes||0)|Qi.ITALIC;else if(t==="u")this.attributes=(this.attributes||0)|Qi.UNDERLINE}};ns=class ns extends Hr{constructor(e){super(e,"b")}};os=class os extends Hr{constructor(e){super(e,"i")}};el=class el extends Hr{constructor(e){super(e,"u")}};tl=class tl extends tr{constructor(e,t){super(null,t);this.add()}add(){return super.add(`
|
|
5
|
+
`)}};nl=class nl extends tr{constructor(e,t){let n={...t,link:{url:t.href}};super(null,n)}};mm={box:Hh,text:Yh,input:Kh,select:Jh,textarea:qh,ascii_font:jh,tab_select:zh,scrollbox:Gh,code:Bh,diff:Vh,line_number:Th,markdown:Uh,span:tr,strong:ns,b:ns,em:os,i:os,u:el,br:tl,a:nl},ol={...mm};cs({time_to_first_draw:gm})});function il(e){return typeof e==="object"&&e!==null&&"frames"in e&&"interval"in e&&Array.isArray(e.frames)}function sl(e){return typeof e==="object"&&e!==null&&"label"in e&&"onClick"in e}function as(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 ls(t.loading);default:return""}}function ls(e){if(il(e))return e.frames[0]??"\u25CC";return e}function fs(e){return il(e)?e:null}var wm,cl;var al=ge(()=>{wm={frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"],interval:100},cl={success:"\u2713",error:"\u2717",warning:"!",info:"\u2139",loading:wm,close:"\xD7"}});import{BoxRenderable as Vr,TextAttributes as xm,TextRenderable as nr,parseColor as ym}from"@opentui/core";function Om(e){return e!==null&&typeof e==="object"&&"ok"in e&&typeof e.ok==="boolean"&&"status"in e&&typeof e.status==="number"}function Pm(e,t={}){let[n,o]=e.split("-"),i={position:"absolute"};if(n==="top")i.top=t.top??Br.top;else i.bottom=t.bottom??Br.bottom;if(o==="left")i.left=t.left??Br.left,i.alignItems="flex-start";else if(o==="center")i.left=0,i.width="100%",i.alignItems="center";else i.right=t.right??Br.right,i.alignItems="flex-end";return i}function Mm(e){return e.includes("center")}function Am(e){return e.startsWith("top")}function Wm(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 Lm(...e){let t={};for(let n of e){if(!n)continue;Object.assign(t,n)}return t}function ll(e,t,n){let o=us.style,i=us[e]?.style,s=t?.style,c=t?.[e]?.style,a=Lm(o,i,s,c,n);if(a.border===!1)delete a.borderStyle,delete a.borderColor;return a}function fl(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 us.duration}var Sm,Rm=200,ul=60,Br,Cm,us,vm=1,km=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:vm++,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],Om(u)&&!u.ok){i=!1;let d=typeof t.error==="function"?await t.error(`HTTP error! status: ${u.status}`):t.error,m=typeof t.description==="function"?await t.description(`HTTP error! status: ${u.status}`):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}else if(u instanceof Error){i=!1;let d=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}else if(t.success!==void 0){i=!1;let d=typeof t.success==="function"?await t.success(u):t.success,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"success",description:m,...p})}}).catch(async(u)=>{if(s=["reject",u],t.error!==void 0){i=!1;let d=typeof t.error==="function"?await t.error(u):t.error,m=typeof t.description==="function"?await t.description(u):t.description,p=typeof d==="object"&&d!==null?d:{message:d};this.create({id:n,type:"error",description:m,...p})}}).finally(()=>{if(i)this.dismiss(n),n=void 0;t.finally?.()}),a=()=>new Promise((u,d)=>c.then(()=>s[0]==="reject"?d(s[1]):u(s[1])).catch(d));if(typeof n!=="string"&&typeof n!=="number")return{unwrap:a};return Object.assign(n,{unwrap:a})};getActiveToasts=()=>{return this._activeToasts}},Ot,Em=(e,t)=>Ot.message(e,t),Dm=()=>Ot.toasts,Fm=()=>Ot.getActiveToasts(),io,Im,dl;var hl=ge(()=>{al();Sm={SHORT:2000,DEFAULT:4000,LONG:6000,EXTENDED:1e4,PERSISTENT:1/0},Br={top:1,right:2,bottom:1,left:2},Cm={border:!0,borderStyle:"single",borderColor:"#333333",minHeight:3,backgroundColor:"#1a1a1a",foregroundColor:"#ffffff",mutedColor:"#6b7280"},us={style:Cm,duration:Sm.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 km,io=Object.assign(Em,{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:Dm,getToasts:Fm});Im=class extends Vr{_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=ll(t.toast.type,t.toastOptions,t.toast.style),o=fl(t.toast.type,t.toastOptions,t.toast.duration),i=Wm(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??ul,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:{...cl,...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=fs(o.loading);let c=t.icon??(o===!1?void 0:s?ls(o.loading):as(t.type,o));if(c)this._iconText=new nr(e,{id:`${this.id}-icon`,content:c,fg:i,flexShrink:0,paddingTop:0,paddingBottom:0}),this.add(this._iconText);this._contentBox=new Vr(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 nr(e,{id:`${this.id}-title`,content:a,fg:n.foregroundColor,attributes:xm.BOLD,wrapMode:"word"}),this._contentBox.add(this._titleText);let u=typeof t.description==="function"?t.description():t.description;if(u)this._descriptionText=new nr(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 Vr(e,{id:`${this.id}-actions`,flexDirection:"row",gap:1,flexShrink:0,alignItems:"center"}),t.action&&sl(t.action)){let d=new nr(e,{id:`${this.id}-action`,content:`[${t.action.label}]`,fg:n.foregroundColor,onMouseUp:()=>t.action?.onClick?.()});this._actionsBox.add(d)}this.add(this._actionsBox)}if((t.closeButton??this._closeButton)&&t.dismissible!==!1){let d=o===!1?"\xD7":o.close,m=new nr(e,{id:`${this.id}-close`,content:d,fg:n.mutedColor,flexShrink:0,onMouseUp:()=>this.dismiss()});this.add(m)}}startTimer(){if(this._remainingTime===1/0)return;this._closeTimerStartTime=Date.now(),this._timerHandle=setTimeout(()=>{this._toast.onAutoClose?.(this._toast),this.dismiss()},this._remainingTime)}pause(){if(this._paused||this._remainingTime===1/0)return;if(this._paused=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;if(this._lastCloseTimerStartTime<this._closeTimerStartTime){let e=Date.now()-this._closeTimerStartTime;this._remainingTime=Math.max(0,this._remainingTime-e)}this._lastCloseTimerStartTime=Date.now()}resume(){if(!this._paused||this._remainingTime===1/0)return;this._paused=!1,this.startTimer()}startSpinner(){if(this._spinnerHandle||!this._spinnerConfig)return;let{frames:e,interval:t}=this._spinnerConfig;this._spinnerHandle=setInterval(()=>{this._spinnerFrameIndex=(this._spinnerFrameIndex+1)%e.length;let n=e[this._spinnerFrameIndex];if(this._iconText&&n)this._iconText.content=n,this.requestRender()},t)}stopSpinner(){if(this._spinnerHandle)clearInterval(this._spinnerHandle),this._spinnerHandle=null}dismiss(){if(this._dismissed)return;if(this._dismissed=!0,this._timerHandle)clearTimeout(this._timerHandle),this._timerHandle=null;this.stopSpinner(),this._toast.onDismiss?.(this._toast),Ot.dismiss(this._toast.id),setTimeout(()=>{this._onRemove?.(this._toast)},Rm)}updateToast(e){this._toast=e;let t=ll(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:as(e.type,this._icons));if(s)this._iconText.content=s;if(n)this._iconText.fg=ym(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=fs(this._icons.loading);this.startSpinner()}if(e.type!=="loading"){if(this._timerHandle)clearTimeout(this._timerHandle);if(this._remainingTime=fl(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()}},dl=class extends Vr{_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=Pm(e,this._options.offset??{}),n=Mm(e);if(Object.assign(this,t),super.gap=this._options.gap??1,!n)super.maxWidth=this._options.maxWidth??ul}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 Im(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),Am(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 ds=ge(()=>{hl();te();cs({toaster:dl})});function pl(e){let[t,n]=ue("list"),[o,i]=ue(0),[s,c]=ue(null),[a,u]=ue(!1),[d,m]=ue(!1),[p,w]=ue(!1),[A,W]=ue(!1),[y,R]=ue(new Set),[k,D]=ue(!1),[x,S]=ue(null),v=(Z)=>{let G=new Set(y());if(G.has(Z))G.delete(Z);else G.add(Z);R(G)},T=(Z)=>{R(new Set(Z))},j=(Z)=>{let G=new Set(Z),J=y(),q=new Set;for(let Y of J)if(G.has(Y))q.add(Y);if(q.size!==J.size)R(q)},z=()=>{R(new Set)};return X(ml.Provider,{value:{activeTab:t,setActiveTab:n,selectedWorktreeIndex:o,setSelectedWorktreeIndex:i,selectedWorktreePath:s,setSelectedWorktreePath:c,showRemove:a,setShowRemove:u,showCommandPalette:d,setShowCommandPalette:m,showDetailView:p,setShowDetailView:w,inputFocused:A,setInputFocused:W,repoPath:()=>e.repoPath,repoPaths:()=>e.repoPaths,selectedWorktrees:y,toggleWorktreeSelection:v,selectAllNonMain:T,pruneSelectedWorktrees:j,clearSelection:z,showBulkActions:k,setShowBulkActions:D,focusPickerData:x,setFocusPickerData:S},get children(){return e.children}})}function st(){let e=Ut(ml);if(!e)throw Error("useApp must be used within AppProvider");return e}var ml;var Qt=ge(()=>{te();Ye();ml=Wn()});var bt,or,hs,so;var Wt=ge(()=>{bt=class bt extends Error{exitCode;stderr;command;constructor(e,t,n,o){super(e);this.exitCode=t;this.stderr=n;this.command=o;this.name="GitError"}};or=class or 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"}};hs=class hs extends Error{branch;reason;constructor(e,t,n){super(e);this.branch=t;this.reason=n;this.name="ArchiveError"}};so=class so extends Error{path;reason;constructor(e,t,n){super(e);this.path=t;this.reason=n;this.name="ImportError"}}});async function Nt(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 gl,dirname as jm}from"path";import{mkdirSync as Hm,existsSync as Bm}from"fs";function Ro(e){let t=Kr.get(e);if(!t)return;if(Date.now()>t.expires){Kr.delete(e);return}return t.data}function Gt(e,t,n=Vm){return Kr.set(e,{data:t,expires:Date.now()+n}),t}function wt(){Kr.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 bt(`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 or(`${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=Ro(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 Nt(a,10,async(d)=>({...d,isDirty:await this.isDirty(d.path).catch(()=>!1)}));return Gt(o,u)}static async listAll(e){await this.checkVersion();let t=new Set,n=[];for(let i of e){let s=gl(i);if(!t.has(s))t.add(s),n.push(s)}return(await Nt(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((R)=>R.startsWith("worktree ")),d=a.find((R)=>R.startsWith("HEAD ")),m=a.find((R)=>R.startsWith("branch ")),p=a.find((R)=>R.startsWith("locked")),w=u?.slice(9)??"",A=d?.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=jm(t);if(!Bm(i))Hm(i,{recursive:!0});let c=!await this.localBranchExists(e,o),a=["worktree","add",t,e];if(c)a=["worktree","add","-b",e,t,n?.base??"HEAD"];await this.run(a,o),wt()}static async localBranchExists(e,t){try{return await this.run(["rev-parse","--verify",`refs/heads/${e}`],t??Bun.cwd),!0}catch{return!1}}static async remove(e,t,n){await this.checkVersion();let o=["worktree","remove",e];if(t?.force)o.push("--force");await this.run(o,n),wt()}static async move(e,t,n){await this.checkVersion(),await this.run(["worktree","move",e,t],n),wt()}static async prune(e){await this.checkVersion(),await this.run(["worktree","prune"],e),wt()}static async isWorktree(e){let t=e??Bun.cwd;try{let n=await this.run(["rev-parse","--git-dir"],t),o=await this.run(["rev-parse","--git-common-dir"],t);return n!==o&&!n.endsWith("/.git")&&!n.endsWith("\\.git")}catch{return!1}}static async getMainRepoPath(e){let t=e??Bun.cwd,n=await this.run(["rev-parse","--git-common-dir"],t),o=gl(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=Ro(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 Gt(o,{ahead:u??0,behind:a??0})}catch{return Gt(o,{ahead:0,behind:0})}}static async getLastCommit(e){let t=e??Bun.cwd,n=`last-commit:${t}`,o=Ro(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 Gt(n,null);let[s,c,a]=i.split("\x1F");return Gt(n,{hash:s??"",message:c??"",relativeDate:a??""})}catch{return Gt(n,null)}}static async getDirtyCount(e){let t=e??Bun.cwd,n=`dirty-count:${t}`,o=Ro(n);if(o!==void 0)return o;try{let i=await this.run(["status","--porcelain"],t);if(!i)return Gt(n,0);return Gt(n,i.split(`
|
|
7
|
+
`).filter(Boolean).length)}catch{return Gt(n,0)}}static async unlock(e,t){await this.checkVersion(),await this.run(["worktree","unlock",e],t),wt()}static async isMergedInto(e,t,n){try{return(await this.run(["branch","--merged",t],n??Bun.cwd)).split(`
|
|
8
|
+
`).some((i)=>i.trim().replace(/^[*+] /,"")===e)}catch{return!1}}static async getDefaultRemote(e){try{return await this.run(["config","checkout.defaultRemote"],e??Bun.cwd)||"origin"}catch{return"origin"}}static async remoteBranchExists(e,t,n){let o=t??await this.getDefaultRemote(n);try{return await this.run(["rev-parse","--verify",`refs/remotes/${o}/${e}`],n??Bun.cwd),!0}catch{return!1}}static async listBranches(e){let t=e??Bun.cwd,n=`branches:${t}`,o=Ro(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,d]=a.split("\x1F");c.push({name:u??"",isRemote:!1,lastCommitDate:d??""})}for(let a of s.split(`
|
|
10
|
+
`).filter(Boolean)){let[u,d]=a.split("\x1F");if(!u||u.endsWith("/HEAD"))continue;let m=u.replace(/^[^/]+\//,"");if(c.some((p)=>p.name===m))continue;c.push({name:m,isRemote:!0,lastCommitDate:d??""})}return Gt(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=Ro(n);if(o)return o;try{let s=(await this.run(["remote"],t)).split(`
|
|
11
|
+
`).map((c)=>c.trim()).filter(Boolean);return Gt(n,s)}catch{return Gt(n,[])}}static async fetchRemote(e,t,n){let o=t?["fetch",e,t]:["fetch",e];await this.run(o,n),wt()}}function bl(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 Vm=3000,Kr;var Ve=ge(()=>{Wt();Kr=new Map});function xl(e){let[t,{refetch:n}]=va(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=()=>{wt(),n()},i=()=>{if(t.error)return;try{return t()}catch{return}},s=Xe(()=>{let a=i()??[],u=new Set,d=[];for(let m of a)if(!u.has(m.repoName))u.add(m.repoName),d.push(m.repoName);return d}),c=Xe(()=>s().length>1);return X(wl.Provider,{value:{worktrees:i,refetch:o,loading:()=>t.loading,error:()=>t.error,repoNames:s,isMultiRepo:c},get children(){return e.children}})}function pt(){let e=Ut(wl);if(!e)throw Error("useGit must be used within GitProvider");return e}var wl;var pn=ge(()=>{te();Ye();Ve();wl=Wn()});var Km,Lt,Tr,Tm,Co,g;var xt=ge(()=>{Ye();Km={opencode:{bg:{base:"#090909",surface:"#111111",elevated:"#1a1a1a",overlay:"#000000"},border:{default:"#2a2a2a",active:"#4fc3f7",subtle:"#1e1e1e"},text:{primary:"#e8e8e8",secondary:"#666666",accent:"#4fc3f7",success:"#4ade80",warning:"#fbbf24",error:"#f87171",selected:"#ffffff"},tab:{active:"#4fc3f7",activeBg:"#1a1a1a",inactive:"#555555",inactiveBg:"#000000"},select:{focusedBg:"#1a2a3a",focusedFg:"#4fc3f7",selectedBg:"#161616",selectedFg:"#e8e8e8",normalFg:"#e8e8e8",descFg:"#666666"}},"tokyo-night":{bg:{base:"#1a1b26",surface:"#1f2335",elevated:"#24283b",overlay:"#0d1117"},border:{default:"#3b4261",active:"#7aa2f7",subtle:"#292e42"},text:{primary:"#c0caf5",secondary:"#565f89",accent:"#7aa2f7",success:"#9ece6a",warning:"#e0af68",error:"#f7768e",selected:"#ffffff"},tab:{active:"#7aa2f7",activeBg:"#24283b",inactive:"#565f89",inactiveBg:"#1a1b26"},select:{focusedBg:"#283457",focusedFg:"#7aa2f7",selectedBg:"#2a2f44",selectedFg:"#c0caf5",normalFg:"#c0caf5",descFg:"#565f89"}},dracula:{bg:{base:"#282a36",surface:"#21222c",elevated:"#343746",overlay:"#191a21"},border:{default:"#6272a4",active:"#bd93f9",subtle:"#44475a"},text:{primary:"#f8f8f2",secondary:"#6272a4",accent:"#bd93f9",success:"#50fa7b",warning:"#ffb86c",error:"#ff5555",selected:"#ffffff"},tab:{active:"#bd93f9",activeBg:"#343746",inactive:"#6272a4",inactiveBg:"#282a36"},select:{focusedBg:"#44475a",focusedFg:"#bd93f9",selectedBg:"#383a4a",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#6272a4"}},nord:{bg:{base:"#2e3440",surface:"#3b4252",elevated:"#434c5e",overlay:"#242933"},border:{default:"#4c566a",active:"#81a1c1",subtle:"#3b4252"},text:{primary:"#eceff4",secondary:"#4c566a",accent:"#81a1c1",success:"#a3be8c",warning:"#ebcb8b",error:"#bf616a",selected:"#ffffff"},tab:{active:"#88c0d0",activeBg:"#434c5e",inactive:"#4c566a",inactiveBg:"#2e3440"},select:{focusedBg:"#3b4252",focusedFg:"#88c0d0",selectedBg:"#3b4252",selectedFg:"#eceff4",normalFg:"#eceff4",descFg:"#4c566a"}},catppuccin:{bg:{base:"#1e1e2e",surface:"#181825",elevated:"#313244",overlay:"#11111b"},border:{default:"#45475a",active:"#cba6f7",subtle:"#313244"},text:{primary:"#cdd6f4",secondary:"#585b70",accent:"#cba6f7",success:"#a6e3a1",warning:"#fab387",error:"#f38ba8",selected:"#ffffff"},tab:{active:"#cba6f7",activeBg:"#313244",inactive:"#585b70",inactiveBg:"#1e1e2e"},select:{focusedBg:"#313244",focusedFg:"#cba6f7",selectedBg:"#313244",selectedFg:"#cdd6f4",normalFg:"#cdd6f4",descFg:"#585b70"}},"github-dark":{bg:{base:"#0d1117",surface:"#161b22",elevated:"#21262d",overlay:"#010409"},border:{default:"#30363d",active:"#58a6ff",subtle:"#21262d"},text:{primary:"#e6edf3",secondary:"#484f58",accent:"#58a6ff",success:"#3fb950",warning:"#d29922",error:"#f85149",selected:"#ffffff"},tab:{active:"#58a6ff",activeBg:"#21262d",inactive:"#484f58",inactiveBg:"#0d1117"},select:{focusedBg:"#1f2937",focusedFg:"#58a6ff",selectedBg:"#1f2937",selectedFg:"#e6edf3",normalFg:"#e6edf3",descFg:"#484f58"}},"one-dark":{bg:{base:"#282c34",surface:"#21252b",elevated:"#2c313a",overlay:"#1b1f27"},border:{default:"#3e4451",active:"#61afef",subtle:"#2c313a"},text:{primary:"#abb2bf",secondary:"#5c6370",accent:"#61afef",success:"#98c379",warning:"#e5c07b",error:"#e06c75",selected:"#ffffff"},tab:{active:"#61afef",activeBg:"#2c313a",inactive:"#5c6370",inactiveBg:"#282c34"},select:{focusedBg:"#2c313a",focusedFg:"#61afef",selectedBg:"#2c313a",selectedFg:"#abb2bf",normalFg:"#abb2bf",descFg:"#5c6370"}},monokai:{bg:{base:"#272822",surface:"#1e1f1c",elevated:"#3e3d32",overlay:"#1a1b18"},border:{default:"#49483e",active:"#a6e22e",subtle:"#3e3d32"},text:{primary:"#f8f8f2",secondary:"#75715e",accent:"#66d9ef",success:"#a6e22e",warning:"#e6db74",error:"#f92672",selected:"#ffffff"},tab:{active:"#a6e22e",activeBg:"#3e3d32",inactive:"#75715e",inactiveBg:"#272822"},select:{focusedBg:"#3e3d32",focusedFg:"#66d9ef",selectedBg:"#3e3d32",selectedFg:"#f8f8f2",normalFg:"#f8f8f2",descFg:"#75715e"}},"github-light":{bg:{base:"#ffffff",surface:"#f6f8fa",elevated:"#eaeef2",overlay:"#d0d7de"},border:{default:"#d0d7de",active:"#0969da",subtle:"#eaeef2"},text:{primary:"#1f2328",secondary:"#656d76",accent:"#0969da",success:"#1a7f37",warning:"#9a6700",error:"#cf222e",selected:"#000000"},tab:{active:"#0969da",activeBg:"#eaeef2",inactive:"#656d76",inactiveBg:"#ffffff"},select:{focusedBg:"#ddf4ff",focusedFg:"#0969da",selectedBg:"#eaeef2",selectedFg:"#1f2328",normalFg:"#1f2328",descFg:"#656d76"}}},Lt=["opencode","tokyo-night","dracula","nord","catppuccin","github-dark","one-dark","monokai","github-light"],Tr={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"},[Tm,Co]=ue("opencode"),g=new Proxy({},{get(e,t){return new Proxy({},{get(n,o){return Km[Tm()][t]?.[o]}})}})});import{readFileSync as Um,statSync as Gm}from"fs";import{join as yl,resolve as Jm}from"path";function rr(e){let t=yl(e,".git"),n=Gm(t,{throwIfNoEntry:!1});if(!n||n.isDirectory())return t;let i=Um(t,"utf-8").trim().replace(/^gitdir:\s*/,"").trim();return Jm(e,i)}function on(e,t){return yl(rr(e),t)}var Ln=()=>{};import{existsSync as zm,mkdirSync as qm,readFileSync as Xm,writeFileSync as Ym}from"fs";import{dirname as Zm,join as ms}from"path";function Sl(e){return on(e,"copse-focus")}function Ur(e,t){let n=Sl(e);qm(Zm(n),{recursive:!0}),Ym(n,t.join(`
|
|
12
|
+
`),{encoding:"utf-8",mode:384})}function Jt(e){let t=Sl(e);if(!zm(t))return null;return Xm(t,"utf-8").split(/\r?\n/).filter(Boolean)}function Jr(e,t){if(t?.forceRoot)return{kind:"root",path:e};let n=Jt(e)??[];if(t?.explicitFocus){if(!n.includes(t.explicitFocus))throw new Gr(t.explicitFocus,n);return{kind:"single",path:ms(e,t.explicitFocus),focus:t.explicitFocus}}if(n.length===0)return{kind:"root",path:e};if(n.length===1)return{kind:"single",path:ms(e,n[0]),focus:n[0]};return{kind:"multiple",focusPaths:n,resolvedPaths:n.map((o)=>ms(e,o))}}var Gr;var rn=ge(()=>{Ln();Gr=class Gr 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 gs,mkdirSync as Qm,readFileSync as Nm,writeFileSync as $m,unlinkSync as _m}from"fs";import{dirname as ep}from"path";function ps(e){return e.replace(/\//g,"-").replace(/[^a-zA-Z0-9._-]/g,"_")}async function gn(e){let t=Bun.spawn(["tmux",...e],{stdout:"pipe",stderr:"pipe",env:{...Bun.env,LC_ALL:"C"}}),[n,o,i]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);if(i!==0)throw new vo(`tmux ${e[0]} failed: ${o.trim()}`,o.trim());return n.trim()}function In(e,t){let n=ps(t??Rl),o=ps(e);return`${n}_${o}`}function bs(e){return on(e,"copse-session")}function tp(e,t){let n=bs(e);Qm(ep(n),{recursive:!0}),$m(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}function zt(e){let t=bs(e);if(!gs(t))return null;try{return JSON.parse(Nm(t,"utf-8"))}catch{return null}}function ws(e){let t=bs(e);if(gs(t))_m(t)}async function Oo(){try{return await Bun.spawn(["tmux","-V"],{stdout:"pipe",stderr:"pipe"}).exited===0}catch{return!1}}function xs(){return Boolean(Bun.env.TMUX)}async function bn(e){try{return await gn(["has-session","-t",e]),!0}catch{return!1}}async function np(e,t,n){if(await bn(e))throw new vo(`Session '${e}' already exists`,"session_exists");if(!gs(t))throw new vo(`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 gn(s),i?.command)await gn(["send-keys","-t",`${e}:${i.name}`,i.command,"Enter"]);for(let c=1;c<o.length;c++){let a=o[c];if(await gn(["new-window","-t",e,"-n",a.name,"-c",t]),a.command)await gn(["send-keys","-t",`${e}:${a.name}`,a.command,"Enter"])}if(o.length>0)await gn(["select-window","-t",`${e}:${o[0].name}`])}async function ys(e){if(!await bn(e))return;await gn(["kill-session","-t",e])}async function zr(e){if(!await bn(e))throw new vo(`Session '${e}' does not exist`,"session_not_found");if(xs())await gn(["switch-client","-t",e]);else if(await Bun.spawn(["tmux","attach-session","-t",e],{stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited!==0)throw new vo(`Failed to attach to session '${e}'`,"attach_failed")}async function Ss(e){let t=ps(e??Rl);try{let n=await gn(["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 qr(e,t,n){let o=In(e,n?.prefix),i=n?.attach??!0;if(await bn(o)){if(i)await zr(o);return o}if(await np(o,t,n?.layout),tp(t,{name:o,branch:e,worktreePath:t,createdAt:new Date().toISOString(),layout:n?.layoutName}),i)await zr(o);return o}async function Xr(e,t,n){let o=In(e,n),i=await bn(o);if(i)await ys(o);return ws(t),i}var vo,Rl="copse";var jn=ge(()=>{Ln();vo=class vo extends Error{reason;constructor(e,t){super(e);this.reason=t;this.name="SessionError"}}});function vl(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(Cl.Provider,{value:{toasts:t,addToast:i,removeToast:o},get children(){return e.children}})}function sn(){let e=Ut(Cl);if(!e)throw Error("useToast must be used within ToastProvider");return e}var Cl;var co=ge(()=>{te();Ye();Cl=Wn()});function ko(e){let[t,n]=ue(0),o=setInterval(()=>{n((i)=>(i+1)%Ol.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),B(s,()=>Ol[t()]),B(i,(()=>{var c=je(()=>!!e.label);return()=>c()&&(()=>{var a=l("text");return B(a,()=>e.label),V((u)=>r(a,"fg",g.text.secondary,u)),a})()})(),null),V((c)=>r(s,"fg",e.color??g.text.accent,c)),i})()}var Ol;var Yr=ge(()=>{te();te();te();te();te();te();Ye();xt();Ol=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]});function kl(e){let t=pt(),n=sn(),o=mn(),i=rt(),s=()=>i().width,c=()=>i().height,[a,u]=ue(null),[d,m]=ue(!0),[p,w]=ue("");Za((S)=>{let v=S.getSelectedText();if(!v)return;o.copyToClipboardOSC52(v),n.addToast({type:"info",message:"Copied to clipboard"})});let A;ct(()=>{if(A)clearTimeout(A)});let W=()=>{return(t.worktrees()??[]).find((T)=>T.isMain)?.branch??"main"};At(nn(()=>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[v,[T,j],z]=await Promise.all([rp(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 G=null,J=zt(S);if(J){let q=await bn(J.name).catch(()=>!1);G={meta:J,active:q}}if(e.worktree.path!==S)return;u({commits:v,diffStat:T,fullDiff:j,aheadBehind:z,focus:Z,session:G}),w("")}catch(v){if(e.worktree.path!==S)return;u(null),w(v.message)}finally{if(e.worktree.path===S)m(!1)}},op)}));let y=()=>{let S=e.worktree;if(S.isLocked)return"\uD83D\uDD12 locked";if(S.isDirty)return"\u25CF dirty";return"\u2713 clean"},R=()=>{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 v=[];if(S.aheadBehind.ahead>0)v.push(`\u2191${S.aheadBehind.ahead}`);if(S.aheadBehind.behind>0)v.push(`\u2193${S.aheadBehind.behind}`);return v.length>0?v.join(" "):"\u2713 up to date"},D=()=>{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"),v=l("scrollbox"),T=l("box"),j=l("text"),z=l("text"),Z=l("box"),G=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"),M=l("box"),U=l("box"),K=l("text"),I=l("text"),ee=l("box"),de=l("box"),ie=l("text"),we=l("text"),ve=l("box"),pe=l("box"),Ee=l("text"),De=l("box"),We=l("text");return f(S,v),r(S,"x",0),r(S,"y",0),f(v,T),f(v,Z),f(v,J),f(v,q),f(v,_),f(v,M),f(v,ee),f(v,ve),f(v,pe),f(v,De),r(v,"x",2),r(v,"y",1),f(T,j),f(T,z),r(T,"height",1),f(j,H("Worktree Detail")),r(j,"x",0),r(j,"y",0),r(j,"bold",!0),r(j,"selectable",!0),f(z,H("(Esc to close)")),r(z,"x",17),r(z,"y",0),r(z,"selectable",!0),f(Z,G),r(Z,"height",1),r(G,"x",0),r(G,"y",0),r(G,"selectable",!0),B(G,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,H("Branch")),r(ne,"x",0),r(ne,"y",0),r(ne,"selectable",!0),r(he,"selectable",!0),B(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,H("Path")),r(ke,"x",0),r(ke,"y",0),r(ke,"selectable",!0),r(E,"selectable",!0),B(E,()=>e.worktree.path),f(M,U),f(M,I),r(M,"height",1),r(M,"flexDirection","row"),f(U,K),r(U,"width",16),r(U,"height",1),f(K,H("Status")),r(K,"x",0),r(K,"y",0),r(K,"selectable",!0),r(I,"selectable",!0),B(I,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,H("HEAD")),r(ie,"x",0),r(ie,"y",0),r(ie,"selectable",!0),r(we,"selectable",!0),B(we,()=>e.worktree.head?.slice(0,8)),B(v,X(re,{get when(){return d()},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box");return r(L,"height",1),B(L,X(ko,{label:"Loading details..."})),L})()]}}),ve),B(v,X(re,{get when(){return je(()=>!d())()&&!!p()},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,()=>`Failed to load details: ${p()}`),V((b)=>r(h,"fg",g.text.error,b)),L})()]}}),ve),B(v,X(re,{get when(){return je(()=>!d()&&!p())()&&!!a()},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("Upstream")),r(h,"x",0),r(h,"y",0),r(h,"bold",!0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.accent,b)),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,x),V((b)=>r(h,"fg",g.border.subtle,b)),L})(),(()=>{var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Sync")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,k),V((F)=>{var O=g.text.secondary,$=D();return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L})(),X(re,{get when(){return a().aheadBehind.ahead>0},get children(){var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Ahead")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,()=>`${a().aheadBehind.ahead} commit(s)`),V((F)=>{var O=g.text.secondary,$=g.text.warning;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L}}),X(re,{get when(){return a().aheadBehind.behind>0},get children(){var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Behind")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,()=>`${a().aheadBehind.behind} commit(s)`),V((F)=>{var O=g.text.secondary,$=g.text.warning;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L}}),(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("Recent Commits")),r(h,"x",0),r(h,"y",0),r(h,"bold",!0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.accent,b)),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,x),V((b)=>r(h,"fg",g.border.subtle,b)),L})(),X(re,{get when(){return a().commits.length>0},get fallback(){return(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("No commits found")),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.secondary,b)),L})()},get children(){return X(nt,{get each(){return a().commits},children:(L)=>(()=>{var h=l("box"),b=l("text");return f(h,b),r(h,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),B(b,L),V((P)=>r(b,"fg",g.text.primary,P)),h})()})}}),X(re,{get when(){return!e.worktree.isMain},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"bold",!0),r(h,"selectable",!0),B(h,()=>`Diff vs ${W()}`),V((b)=>r(h,"fg",g.text.accent,b)),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,x),V((b)=>r(h,"fg",g.border.subtle,b)),L})(),X(re,{get when(){return a().diffStat.length>0},get children(){var L=l("code");return r(L,"language","diff"),V((h)=>r(L,"code",a().diffStat,h)),L}}),(()=>{var L=l("box");return r(L,"height",1),L})(),X(re,{get when(){return a().fullDiff.length>0},get fallback(){return(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("No changes")),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.secondary,b)),L})()},get children(){var L=l("scrollbox"),h=l("diff");return f(L,h),r(L,"height",15),r(h,"view","unified"),V((b)=>{var P=s()-3,F=a().fullDiff;return P!==b.e&&(b.e=r(L,"width",P,b.e)),F!==b.t&&(b.t=r(h,"diff",F,b.t)),b},{e:void 0,t:void 0}),L}})]}}),X(re,{get when(){return je(()=>!!a().focus)()&&a().focus.length>0},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("Focus Paths")),r(h,"x",0),r(h,"y",0),r(h,"bold",!0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.accent,b)),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,x),V((b)=>r(h,"fg",g.border.subtle,b)),L})(),X(nt,{get each(){return a().focus},children:(L)=>(()=>{var h=l("box"),b=l("text");return f(h,b),r(h,"height",1),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),B(b,` \u2022 ${L}`),V((P)=>r(b,"fg",g.text.primary,P)),h})()})]}}),X(re,{get when(){return a().session},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),f(h,H("Session")),r(h,"x",0),r(h,"y",0),r(h,"bold",!0),r(h,"selectable",!0),V((b)=>r(h,"fg",g.text.accent,b)),L})(),(()=>{var L=l("box"),h=l("text");return f(L,h),r(L,"height",1),r(h,"x",0),r(h,"y",0),r(h,"selectable",!0),B(h,x),V((b)=>r(h,"fg",g.border.subtle,b)),L})(),(()=>{var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Name")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,()=>a().session.meta.name),V((F)=>{var O=g.text.secondary,$=g.text.primary;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L})(),(()=>{var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Status")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,()=>a().session.active?"\u25CF active":"\u25CB inactive"),V((F)=>{var O=g.text.secondary,$=a().session.active?g.text.success:g.text.error;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L})(),X(re,{get when(){return a().session.meta.layout},get children(){var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Layout")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),r(P,"selectable",!0),B(P,()=>a().session.meta.layout),V((F)=>{var O=g.text.secondary,$=g.text.primary;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L}})]}}),X(re,{get when(){return e.worktree.isMain},get children(){return[(()=>{var L=l("box");return r(L,"height",1),L})(),(()=>{var L=l("box"),h=l("box"),b=l("text"),P=l("text");return f(L,h),f(L,P),r(L,"height",1),r(L,"flexDirection","row"),f(h,b),r(h,"width",16),r(h,"height",1),f(b,H("Type")),r(b,"x",0),r(b,"y",0),r(b,"selectable",!0),f(P,H("main worktree")),r(P,"selectable",!0),V((F)=>{var O=g.text.secondary,$=g.text.accent;return O!==F.e&&(F.e=r(b,"fg",O,F.e)),$!==F.t&&(F.t=r(P,"fg",$,F.t)),F},{e:void 0,t:void 0}),L})()]}})]}}),ve),r(ve,"height",1),f(pe,Ee),r(pe,"height",1),r(Ee,"x",0),r(Ee,"y",0),r(Ee,"selectable",!0),B(Ee,x),f(De,We),r(De,"height",1),f(We,H("Esc:back d:delete o:open r:refresh")),r(We,"x",0),r(We,"y",0),r(We,"selectable",!0),V((L)=>{var h=s(),b=c(),P=g.bg.base,F=s()-3,O=c()-3,$=g.text.accent,oe=g.text.secondary,be=g.border.subtle,le=g.text.secondary,He=g.text.accent,N=g.text.secondary,ae=g.text.primary,ce=g.text.secondary,Q=R(),Ce=g.text.secondary,Re=g.text.secondary,Ue=g.border.subtle,Te=g.text.secondary;return h!==L.e&&(L.e=r(S,"width",h,L.e)),b!==L.t&&(L.t=r(S,"height",b,L.t)),P!==L.a&&(L.a=r(S,"backgroundColor",P,L.a)),F!==L.o&&(L.o=r(v,"width",F,L.o)),O!==L.i&&(L.i=r(v,"height",O,L.i)),$!==L.n&&(L.n=r(j,"fg",$,L.n)),oe!==L.s&&(L.s=r(z,"fg",oe,L.s)),be!==L.h&&(L.h=r(G,"fg",be,L.h)),le!==L.r&&(L.r=r(ne,"fg",le,L.r)),He!==L.d&&(L.d=r(he,"fg",He,L.d)),N!==L.l&&(L.l=r(ke,"fg",N,L.l)),ae!==L.u&&(L.u=r(E,"fg",ae,L.u)),ce!==L.c&&(L.c=r(K,"fg",ce,L.c)),Q!==L.w&&(L.w=r(I,"fg",Q,L.w)),Ce!==L.m&&(L.m=r(ie,"fg",Ce,L.m)),Re!==L.f&&(L.f=r(we,"fg",Re,L.f)),Ue!==L.y&&(L.y=r(Ee,"fg",Ue,L.y)),Te!==L.g&&(L.g=r(We,"fg",Te,L.g)),L},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0}),S})()}async function rp(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 op=150;var El=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();pn();co();xt();rn();jn();Ve();Yr()});function Dl(){let e=st(),t=pt(),n=rt(),o=()=>{let y=t.worktrees()??[],R=e.selectedWorktreePath();if(R){let k=y.find((D)=>D.path===R);if(k)return k}return y[e.selectedWorktreeIndex()]},i=()=>n().width,s=14,[c,a]=ue(null),[u,d]=ue(!1),[m,p]=ue(""),w;ct(()=>{if(w)clearTimeout(w)}),At(nn(()=>o()?.path,(y)=>{if(w)clearTimeout(w);if(!y){a(null),d(!1),p("");return}a(null),d(!0),p(""),w=setTimeout(async()=>{let R=o();if(!R||R.path!==y)return;try{let[k,D,x]=await Promise.all([R.branch?se.getAheadBehind(R.branch,R.path):Promise.resolve({ahead:0,behind:0}),se.getLastCommit(R.path),se.getDirtyCount(R.path)]);if(o()?.path===y)a({aheadBehind:k,lastCommit:D,dirtyCount:x}),p("")}catch(k){if(o()?.path===y)a(null),p(k.message)}finally{if(o()?.path===y)d(!1)}},ip)}));let A=()=>{if(u())return"Loading...";if(m())return"Unavailable";let y=c();if(!y)return"";let R=[];if(y.aheadBehind.ahead>0)R.push(`\u2191${y.aheadBehind.ahead}`);if(y.aheadBehind.behind>0)R.push(`\u2193${y.aheadBehind.behind}`);return R.length>0?R.join(" "):"\u2713 up to date"},W=()=>{let y=o();if(!y)return"";if(y.isLocked)return"\uD83D\uDD12 locked";let R=c();if(R&&R.dirtyCount>0)return`\u25CF ${R.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 R=y.name;if(R==="x"&&e.selectedWorktrees().size>0){e.setShowBulkActions(!0);return}if(R==="return"&&!e.showDetailView()&&o()){e.setShowDetailView(!0);return}if(R==="escape"&&e.showDetailView()){e.setShowDetailView(!1);return}}),(()=>{var y=l("box");return r(y,"width","100%"),r(y,"height","100%"),B(y,X(re,{get when(){return je(()=>!!e.showDetailView())()&&!!o()},get children(){return X(kl,{get worktree(){return o()}})}}),null),B(y,X(re,{get when(){return!e.showDetailView()},get children(){return[X(re,{get when(){return t.loading()},get children(){return X(ko,{label:"Loading worktrees..."})}}),X(re,{get when(){return je(()=>!t.loading())()&&!!t.error()},get children(){var R=l("box"),k=l("text"),D=l("text"),x=l("text"),S=l("text"),v=l("text"),T=l("text"),j=l("text"),z=l("text"),Z=l("text");return f(R,k),f(R,D),f(R,x),f(R,S),f(R,v),f(R,T),f(R,j),f(R,z),f(R,Z),r(R,"flexDirection","column"),r(R,"paddingX",2),r(R,"paddingY",1),r(R,"gap",0),f(k,H("Unable to list worktrees")),f(D,H(" ")),B(x,()=>t.error()?.message),f(S,H(" ")),f(v,H("copse needs a git repository to manage worktrees.")),f(T,H(" \xB7 cd into a git repository and relaunch copse, or")),f(j,H(" \xB7 configure repos in ~/.config/copse/config.json")),f(z,H(" ")),f(Z,H("Press q to quit, or ^P to open the command palette.")),V((G)=>{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!==G.e&&(G.e=r(k,"fg",J,G.e)),q!==G.t&&(G.t=r(D,"fg",q,G.t)),Y!==G.a&&(G.a=r(x,"fg",Y,G.a)),ne!==G.o&&(G.o=r(S,"fg",ne,G.o)),he!==G.i&&(G.i=r(v,"fg",he,G.i)),_!==G.n&&(G.n=r(T,"fg",_,G.n)),me!==G.s&&(G.s=r(j,"fg",me,G.s)),ke!==G.h&&(G.h=r(z,"fg",ke,G.h)),E!==G.r&&(G.r=r(Z,"fg",E,G.r)),G},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0}),R}}),X(re,{get when(){return je(()=>!t.loading()&&!t.error())()&&!!o()},get children(){var R=l("box"),k=l("box"),D=l("text"),x=l("box"),S=l("text"),v=l("box"),T=l("box"),j=l("text"),z=l("text"),Z=l("box"),G=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"),M=l("text"),U=l("box"),K=l("box"),I=l("text"),ee=l("text"),de=l("box"),ie=l("text"),we=l("box"),ve=l("text"),pe=l("text"),Ee=l("text"),De=l("text"),We=l("text"),L=l("text");return f(R,k),f(R,x),f(R,v),f(R,Z),f(R,Y),f(R,me),f(R,U),f(R,de),f(R,we),r(R,"width","100%"),r(R,"height","100%"),r(R,"flexDirection","column"),r(R,"paddingX",2),r(R,"paddingY",1),f(k,D),r(k,"height",1),r(k,"flexDirection","row"),f(D,H("Worktree Details")),f(x,S),r(x,"height",1),B(S,()=>"\u2500".repeat(Math.max(i()-38,10))),B(R,X(re,{get when(){return t.isMultiRepo()},get children(){var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),f(P,H("Repo")),B(F,()=>o()?.repoName),V((O)=>{var $=g.text.secondary,oe=g.text.warning;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h}}),v),f(v,T),f(v,z),r(v,"height",1),r(v,"flexDirection","row"),f(T,j),r(T,"width",14),r(T,"height",1),f(j,H("Branch")),B(z,()=>o()?.branch??"(detached)"),f(Z,G),f(Z,q),r(Z,"height",1),r(Z,"flexDirection","row"),f(G,J),r(G,"width",14),r(G,"height",1),f(J,H("Path")),B(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,H("Status")),B(_,W),f(me,ke),f(me,M),r(me,"height",1),r(me,"flexDirection","row"),f(ke,E),r(ke,"width",14),r(ke,"height",1),f(E,H("Sync")),B(M,A),f(U,K),f(U,ee),r(U,"height",1),r(U,"flexDirection","row"),f(K,I),r(K,"width",14),r(K,"height",1),f(I,H("HEAD")),B(ee,()=>o()?.head?.slice(0,8)),B(R,X(re,{get when(){return c()?.lastCommit},get children(){return[(()=>{var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),f(P,H("Last Commit")),B(F,()=>c().lastCommit.relativeDate),V((O)=>{var $=g.text.secondary,oe=g.text.primary;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h})(),(()=>{var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),B(F,(()=>{var O=je(()=>c().lastCommit.message.length>50);return()=>O()?c().lastCommit.message.slice(0,47)+"...":c().lastCommit.message})()),V((O)=>{var $=g.text.secondary,oe=g.text.secondary;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h})()]}}),de),B(R,X(re,{get when(){let h=Jt(o()?.path??"");return h&&h.length>0},get children(){var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),f(P,H("Focus")),B(F,()=>Jt(o()?.path??"")?.join(", ")??""),V((O)=>{var $=g.text.secondary,oe=g.text.accent;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h}}),de),B(R,X(re,{get when(){return!!zt(o()?.path??"")},get children(){var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),f(P,H("Session")),B(F,()=>{let O=zt(o()?.path??"");if(!O)return"";return O.layout?`${O.name} [${O.layout}]`:O.name}),V((O)=>{var $=g.text.secondary,oe=g.text.accent;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h}}),de),B(R,X(re,{get when(){return o()?.isMain},get children(){var h=l("box"),b=l("box"),P=l("text"),F=l("text");return f(h,b),f(h,F),r(h,"height",1),r(h,"flexDirection","row"),f(b,P),r(b,"width",14),r(b,"height",1),f(P,H("Type")),f(F,H("main worktree")),V((O)=>{var $=g.text.secondary,oe=g.text.accent;return $!==O.e&&(O.e=r(P,"fg",$,O.e)),oe!==O.t&&(O.t=r(F,"fg",oe,O.t)),O},{e:void 0,t:void 0}),h}}),de),f(de,ie),r(de,"height",1),B(ie,()=>"\u2500".repeat(Math.max(i()-38,10))),f(we,ve),f(we,pe),f(we,Ee),f(we,De),f(we,We),f(we,L),r(we,"height",1),r(we,"flexDirection","row"),r(we,"gap",2),f(ve,H("Enter:detail")),f(pe,H("d:delete")),f(Ee,H("a:add")),f(De,H("o:open")),f(We,H("r:refresh")),f(L,H("^P:commands")),V((h)=>{var b=g.bg.surface,P=g.text.accent,F=g.border.subtle,O=g.text.secondary,$=g.text.accent,oe=g.text.secondary,be=g.text.primary,le=g.text.secondary,He=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,Ce=g.border.subtle,Re=g.text.secondary,Ue=g.text.secondary,Te=g.text.secondary,Qe=g.text.secondary,dt=g.text.secondary,Me=g.text.secondary;return b!==h.e&&(h.e=r(R,"backgroundColor",b,h.e)),P!==h.t&&(h.t=r(D,"fg",P,h.t)),F!==h.a&&(h.a=r(S,"fg",F,h.a)),O!==h.o&&(h.o=r(j,"fg",O,h.o)),$!==h.i&&(h.i=r(z,"fg",$,h.i)),oe!==h.n&&(h.n=r(J,"fg",oe,h.n)),be!==h.s&&(h.s=r(q,"fg",be,h.s)),le!==h.h&&(h.h=r(he,"fg",le,h.h)),He!==h.r&&(h.r=r(_,"fg",He,h.r)),N!==h.d&&(h.d=r(E,"fg",N,h.d)),ae!==h.l&&(h.l=r(M,"fg",ae,h.l)),ce!==h.u&&(h.u=r(I,"fg",ce,h.u)),Q!==h.c&&(h.c=r(ee,"fg",Q,h.c)),Ce!==h.w&&(h.w=r(ie,"fg",Ce,h.w)),Re!==h.m&&(h.m=r(ve,"fg",Re,h.m)),Ue!==h.f&&(h.f=r(pe,"fg",Ue,h.f)),Te!==h.y&&(h.y=r(Ee,"fg",Te,h.y)),Qe!==h.g&&(h.g=r(De,"fg",Qe,h.g)),dt!==h.p&&(h.p=r(We,"fg",dt,h.p)),Me!==h.b&&(h.b=r(L,"fg",Me,h.b)),h},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0,s:void 0,h:void 0,r:void 0,d:void 0,l:void 0,u:void 0,c:void 0,w:void 0,m:void 0,f:void 0,y:void 0,g:void 0,p:void 0,b:void 0}),R}}),X(re,{get when(){return je(()=>!t.loading()&&!t.error())()&&!o()},get children(){var R=l("box"),k=l("text"),D=l("text");return f(R,k),f(R,D),r(R,"flexDirection","column"),r(R,"gap",1),f(k,H("No worktree selected.")),f(D,H("Press 'a' to create one.")),V((x)=>{var S=g.text.secondary,v=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),R}})]}}),null),V((R)=>r(y,"backgroundColor",g.bg.base,R)),y})()}var ip=150;var Fl=ge(()=>{te();te();te();te();te();te();te();te();Ye();Qt();pn();te();xt();rn();jn();Ve();El();Yr()});var Se,Ie,cn,qt,yt;var ao=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"},Ie={postRemove:"postRemove",monorepoHooks:"monorepoHooks",session:"session",worktree:"worktree",activityLog:"activityLog"},cn={createArchive:"createArchive",activityLogArchive:"activityLogArchive"},qt={validate:"validate",importWorktree:"importWorktree",activityLog:"activityLog"},yt={renameBranch:"renameBranch",movePath:"movePath",activityLog:"activityLog"}});import*as sp from"fs";import{join as Hn,resolve as wn,dirname as ir}from"path";function Zr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=Hn(wn(e),i),c=Hn(wn(t),i);if(!xn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping copy: ${i}`);continue}if(xn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping copy: ${i}`);continue}try{Eo(ir(c),{recursive:!0}),Ml(s,c),o.copied.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to copy ${i}: ${a.message}`)}}return o}function Qr(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]};for(let i of n){let s=wn(Hn(wn(e),i)),c=Hn(wn(t),i);if(!xn(s)){o.skipped.push(i),o.warnings.push(`Source not found, skipping symlink: ${i}`);continue}if(xn(c)){o.skipped.push(i),o.warnings.push(`Target already exists, skipping symlink: ${i}`);continue}try{Eo(ir(c),{recursive:!0}),Al(s,c),o.linked.push(i)}catch(a){o.skipped.push(i),o.warnings.push(`Failed to symlink ${i}: ${a.message}`)}}return o}function Wl(e,t,n=0){let o=0,i=[];if(n>fp)return{linked:0,errors:[`Max directory depth exceeded at ${e}`]};let s=wn(e),c=wn(t);if(!xn(s))return{linked:0,errors:[`Source not found: ${e}`]};let a=lp(s,{throwIfNoEntry:!1});if(!a||!a.isDirectory())try{return Eo(ir(c),{recursive:!0}),Pl(s,c),{linked:1,errors:[]}}catch(u){return{linked:0,errors:[`Failed to hardlink ${e}: ${u.message}`]}}if(!xn(c))Eo(c,{recursive:!0});try{let u=ap(s,{withFileTypes:!0});for(let d of u){let m=Hn(s,d.name),p=Hn(c,d.name);if(d.isDirectory()){let w=Wl(m,p,n+1);if(o+=w.linked,w.errors.length>0)i.push(...w.errors)}else if(d.isFile()){if(xn(p))continue;try{Pl(m,p),o++}catch(w){try{Ml(m,p),o++}catch(A){i.push(`Failed to link/copy ${d.name}: ${A.message}`)}}}}}catch(u){i.push(`Failed to read directory ${e}: ${u.message}`)}return{linked:o,errors:i}}function Ll(e,t,n){let o={copied:[],linked:[],skipped:[],warnings:[]},i=n.paths??[],s=n.strategy??"symlink";for(let c of i){let a=Hn(wn(e),c),u=Hn(wn(t),c);if(!xn(a)){o.skipped.push(c),o.warnings.push(`Source not found, skipping shared dep: ${c}`);continue}if(xn(u)){o.skipped.push(c);continue}try{if(s==="symlink")Eo(ir(u),{recursive:!0}),Al(a,u),o.linked.push(c);else if(s==="hardlink"){let d=Wl(a,u);if(d.linked>0)o.linked.push(c);for(let m of d.errors)o.warnings.push(m)}else Eo(ir(u),{recursive:!0}),cp(a,u,{recursive:!0}),o.copied.push(c)}catch(d){o.skipped.push(c),o.warnings.push(`Failed to share dep ${c}: ${d.message}`)}}return o}var Ml,cp,xn,Al,Sy,Pl,ap,lp,Eo,fp=30;var Rs=ge(()=>{({copyFileSync:Ml,cpSync:cp,existsSync:xn,symlinkSync:Al,unlinkSync:Sy,linkSync:Pl,readdirSync:ap,statSync:lp,mkdirSync:Eo}=sp)});import{existsSync as up,mkdirSync as dp}from"fs";async function Bn(e,t){let n=t.timeout??30000;for(let o of e)await hp(o,t.cwd,n,t.env??{},t.onOutput)}async function hp(e,t,n,o,i){if(!up(t))dp(t,{recursive:!0});let s;try{s=Bun.spawn(["sh","-c",e],{cwd:t,env:{...process.env,...o},stdout:"pipe",stderr:"pipe"})}catch(d){if(d.code!=="ENOENT")throw d;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 D=w.join("");if(w.length=0,D)i(D);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 d=await s.exited;if(c)throw new Fo(e,n);if(d!==0){let m=(await u).trim();throw new Do(e,d,m)}}finally{clearTimeout(a)}}var Do,Fo;var Po=ge(()=>{Do=class Do 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"}};Fo=class Fo 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 mp,writeFileSync as pp}from"fs";import{dirname as gp}from"path";function bp(e){return on(e,"copse-pr")}function Il(e,t){let n=bp(e);mp(gp(n),{recursive:!0}),pp(n,JSON.stringify(t),{encoding:"utf-8",mode:384})}var jl=ge(()=>{Ln()});import{appendFileSync as wp,existsSync as xp,mkdirSync as yp,readFileSync as Hl,rmSync as Sp,statSync as Rp,writeFileSync as Cp}from"fs";import{dirname as vp}from"path";function Cs(e){return on(e,"copse-activity.log")}function Xt(e,t){let n=Cs(e);yp(vp(n),{recursive:!0}),wp(n,`${JSON.stringify(t)}
|
|
17
|
+
`,{encoding:"utf-8",mode:384});let o=Rp(n,{throwIfNoEntry:!1});if(o&&o.size>kp){let i=Hl(n,"utf-8").split(/\r?\n/).filter(Boolean);if(i.length>Bl){let s=i.slice(-Op);Cp(n,`${s.join(`
|
|
21
18
|
`)}
|
|
22
|
-
`,{encoding:"utf-8",mode:384})}}}function
|
|
23
|
-
`)[0]}
|
|
24
|
-
|
|
25
|
-
Setup failed, rolling back...`);try{await se.remove(m,{force:!0},r),console.error("Rolled back worktree.")}catch(O){console.error(`Warning: rollback failed: ${O.message}`)}if(k instanceof Er)console.error(`Error: hook timed out: ${k.command}`);else if(k instanceof Pr){if(console.error(`Error: hook failed (exit ${k.exitCode}): ${k.command}`),k.stderr)console.error(k.stderr)}else console.error(`Error: ${k.message}`);process.exit(1)}}},ig=og});var af={};qe(af,{default:()=>ag});import{relative as sg,resolve as Os}from"path";var cg,ag;var lf=xe(()=>{je();qt();Ye();Yt();gt();cg={command:"list",aliases:["ls"],describe:"List all worktrees with their status",builder:(e)=>e.option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("porcelain",{type:"boolean",alias:"p",describe:"Machine-readable output"}).option("all",{type:"boolean",alias:"a",describe:"List worktrees from all configured repos"}),handler:async(e)=>{try{let t;if(e.all){let c=De(),a=await Le(),d=kn(c),h=new Set([Os(a)]),p=[a];for(let m of d){let b=Os(m);if(!h.has(b))h.add(b),p.push(m)}t=await se.listAll(p)}else t=await se.list();let n=await Promise.all(t.map(async(c)=>({...c,focus:Kt(c.path)})));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);if(e.porcelain){for(let c of n){if(e.all)console.log(`repo ${c.repoName}`);if(console.log(`path ${c.path}`),console.log(`branch ${c.branch??"(detached)"}`),console.log(`head ${c.head}`),console.log(`dirty ${c.isDirty}`),console.log(`locked ${c.isLocked}`),c.focus&&c.focus.length>0)console.log(`focus ${c.focus.join(",")}`);console.log("")}process.exit(0)}if(t.length===0)console.log("No worktrees found."),process.exit(0);let r=Os(process.cwd()),i=e.all&&new Set(n.map((c)=>c.repoName)).size>1,s=n.map((c)=>({repo:c.repoName,branch:c.branch??"(detached)",path:c.path===r?c.path:sg(r,c.path)||c.path,status:c.isLocked?"locked":c.isDirty?"dirty":"clean",focus:c.focus?c.focus.join(", ").slice(0,40)+(c.focus.join(", ").length>40?"...":""):"\u2014"}));if(i){let c=Math.max(4,...s.map((m)=>m.repo.length)),a=Math.max(6,...s.map((m)=>m.branch.length)),d=Math.max(4,...s.map((m)=>m.path.length)),h=Math.max(6,...s.map((m)=>m.status.length)),p=Math.max(5,...s.map((m)=>m.focus.length));console.log(`${"Repo".padEnd(c)} ${"Branch".padEnd(a)} ${"Path".padEnd(d)} ${"Status".padEnd(h)} ${"Focus".padEnd(p)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(d)} ${"-".repeat(h)} ${"-".repeat(p)}`);for(let m of s)console.log(`${m.repo.padEnd(c)} ${m.branch.padEnd(a)} ${m.path.padEnd(d)} ${m.status.padEnd(h)} ${m.focus.padEnd(p)}`)}else{let c=Math.max(6,...s.map((p)=>p.branch.length)),a=Math.max(4,...s.map((p)=>p.path.length)),d=Math.max(6,...s.map((p)=>p.status.length)),h=Math.max(5,...s.map((p)=>p.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(d)} ${"Focus".padEnd(h)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(d)} ${"-".repeat(h)}`);for(let p of s)console.log(`${p.branch.padEnd(c)} ${p.path.padEnd(a)} ${p.status.padEnd(d)} ${p.focus.padEnd(h)}`)}process.exit(0)}catch(t){if(t instanceof St)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}},ag=cg});var uf={};qe(uf,{default:()=>fg});import{basename as ff}from"path";var lg,fg;var df=xe(()=>{je();Ye();bn();Yt();zo();Bn();pn();gt();lg={command:"remove <branch-or-path>",aliases:["rm"],describe:"Remove a worktree",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}).option("force",{type:"boolean",alias:"f",describe:"Force removal even with uncommitted changes"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.force,r=!!e.yes;try{let i=await Le(),s=await se.list(i),c=Ht(s,t);if(c.isMain)console.error("Error: cannot remove the main worktree"),process.exit(1);if(await se.isDirty(c.path)&&!n)console.error(`Error: worktree has uncommitted changes: ${c.path}`),console.error("Use --force to remove anyway."),process.exit(1);if(c.isLocked){if(console.error(`Error: worktree is locked: ${c.path}`),c.lockReason)console.error(`Lock reason: ${c.lockReason}`);process.exit(1)}if(!r){if(!await Tn(`Remove worktree '${c.branch??ff(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let d=De(),h=bt(d,i);if(h.postRemove.length>0)console.log("Running postRemove hooks..."),await pt(h.postRemove,{cwd:c.path,env:{COPSE_BRANCH:c.branch??"",COPSE_WORKTREE_PATH:c.path,COPSE_REPO_PATH:i},onOutput:(b)=>console.log(` ${b}`)}).catch((b)=>console.warn(`Warning: postRemove hook failed: ${b.message}`));let p=Kt(c.path)??[];if(p.length>0&&h.monorepo?.hooks&&h.monorepo.hooks.length>0){let b=rr(h.monorepo.hooks,p);if(b.length>0){let D=ff(i),T=c.branch??"unknown";console.log(" Running monorepo postRemove hooks..."),await Rr(b,"postRemove",{cwd:c.path,env:{COPSE_BRANCH:T,COPSE_WORKTREE_PATH:c.path,COPSE_REPO_PATH:i,COPSE_FOCUS_PATHS:p.join(",")},repo:D,branch:T,focusPaths:p,mainRepoPath:i,onOutput:(v)=>console.log(` ${v}`)}),console.log(" \u2713 Monorepo hooks completed")}}let m=_t(d);if(m.autoKill){if(await An()){let D=c.branch??t;if(await Go(D,c.path,m.prefix))console.log(" \u2713 Session killed")}}await se.remove(c.path,{force:n},i),console.log(`Removed worktree: ${c.path}`);try{Ut(i,{timestamp:new Date().toISOString(),event:"delete",branch:c.branch??t,path:c.path})}catch{}process.exit(0)}catch(i){Qe(i)}}},fg=lg});var hf={};qe(hf,{default:()=>hg});import{basename as ug}from"path";var dg,hg;var mf=xe(()=>{je();Bn();Ye();pn();gt();dg={command:"switch <branch-or-path>",aliases:["sw"],describe:"Switch to a worktree directory (outputs cd command for shell eval)",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}),handler:async(e)=>{let t=e["branch-or-path"];try{let n=await Le(),r=await se.list(n),i=Ht(r,t);try{Ut(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let s=De(),c=_t(s);if(c.enabled&&ds()){let a=i.branch??ug(i.path),d=Dn(a,c.prefix);if(await mn(d))try{await Ko(d),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){Qe(n)}}},hg=dg});async function pf(e,t,n,r){let i=e.filter((p)=>!p.isMain),s=i.filter((p)=>In(p.path)),c=new Set(s.map((p)=>p.path)),a=[];if(t.autoCleanMerged){let p=i.filter((b)=>!c.has(b.path)&&b.branch);a=(await Xt(p,10,async(b)=>({wt:b,isMerged:await se.isMergedInto(b.branch,n,r)}))).filter((b)=>b.isMerged&&!b.wt.isDirty).map((b)=>b.wt)}let d=[];if(t.staleAfterDays&&t.staleAfterDays>0){let p=new Date,m=i.filter((D)=>!c.has(D.path));d=(await Xt(m,10,async(D)=>{let T=await se.getWorktreeLastActivity(D.path),v=T?Math.floor((p.getTime()-T.getTime())/86400000):1/0;return{wt:D,lastActivity:T,daysSince:v}})).filter((D)=>D.daysSince>=t.staleAfterDays).map((D)=>({worktree:D.wt,lastActivity:D.lastActivity,daysSinceActivity:D.daysSince===1/0?-1:D.daysSince}))}let h=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:d,pinProtected:s,overLimit:h,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function gf(e){let t=[];if(e.pinProtected.length>0){t.push(`Pin-protected worktrees (${e.pinProtected.length}):`);for(let n of e.pinProtected)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.merged.length>0){t.push(`Merged worktrees (${e.merged.length}):`);for(let n of e.merged)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.stale.length>0){t.push(`Stale worktrees (${e.stale.length}):`);for(let n of e.stale){let r=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${r}`)}}if(e.overLimit)t.push(`Worktree limit exceeded: ${e.totalCount}/${e.maxWorktrees}`);if(t.length===0)t.push("All worktrees are healthy.");return t.join(`
|
|
26
|
-
`)}var xf=xe(()=>{je();Dr()});var bf={};qe(bf,{default:()=>pg});var mg,pg;var wf=xe(()=>{je();Ye();xf();Dr();gt();mg={command:"clean",describe:"Remove merged worktrees and prune stale entries",builder:(e)=>e.option("dry-run",{type:"boolean",alias:"n",describe:"Show what would be removed"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation"}).option("stale",{type:"boolean",describe:"Also show stale worktrees (based on lifecycle config)"}),handler:async(e)=>{let t=!!(e["dry-run"]||e.n),n=!!e.yes;try{let r=await Le(),i=await se.list(r),c=(i.find((p)=>p.isMain)??i[0])?.branch??"main",a=i.filter((p)=>{if(p.isMain)return!1;if(In(p.path))return console.log(` Skipping (pinned): ${p.branch}`),!1;if(!p.branch)return!1;return!0}),d=await Xt(a,10,async(p)=>{let[m,b]=await Promise.all([se.isMergedInto(p.branch,c,r),se.isDirty(p.path)]);return{wt:p,merged:m,dirty:b}}),h=[];for(let{wt:p,merged:m,dirty:b}of d){if(!m)continue;if(b){console.log(` Skipping (dirty): ${p.branch}`);continue}h.push(p)}if(h.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let p of h)console.log(` ${p.branch} (${p.path})`)}if(!t&&h.length>0){if(!n){if(!await Tn(`
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
`);
|
|
31
|
-
|
|
19
|
+
`,{encoding:"utf-8",mode:384})}}}function Vl(e,t){let n=Cs(e),o=t?.limit??50;if(!xp(n))return[];let s=Hl(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 Kl(e){Sp(Cs(e),{force:!0})}var Bl=1000,Op=500,kp;var Vn=ge(()=>{Ln();kp=80*Bl});function Nr(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 Ep(e,t){return e.replace(/\{packagePath\}/g,t.packagePath).replace(/\{repo\}/g,t.repo).replace(/\{branch\}/g,t.branch)}async function $r(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:d}=await import("path"),m=d(n.mainRepoPath,u),p=d(n.cwd,u);if(s){let w=Zr(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=Qr(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)=>Ep(W,{packagePath:u,repo:n.repo,branch:n.branch})),A={...n.env??{},COPSE_FOCUS_PATHS:n.focusPaths.join(","),COPSE_PACKAGE_PATH:u};await Bn(w,{cwd:n.cwd,timeout:n.timeout,env:A,onOutput:n.onOutput})}}}}var vs=ge(()=>{Po();Rs()});import{existsSync as Dp,readdirSync as Hy,readFileSync as By,statSync as Fp}from"fs";import{join as Pp,relative as Ky}from"path";function Tl(e,t){let n=[],o=[];for(let i of t){let s=i.trim();if(!s){o.push(s);continue}let c=Pp(e,s);try{if(Dp(c)&&Fp(c).isDirectory())n.push(s);else o.push(s)}catch{o.push(s)}}return{valid:n,invalid:o}}var Ul=()=>{};async function sr(e,t,n={}){let{branch:o,worktreePath:i,mainRepoPath:s,repoName:c}=t,a=en(e,s),u;if(t.templateName){let x=Or(e,t.templateName);if(!x)throw Error(`Template '${t.templateName}' not found`);a=kr(a,x),u=x.base}let d=t.base??u??a.base,m=t.focusPaths??[],p=Mn(e),w=t.session??p.autoCreate??!1,A=t.fetch!==!1,W=await se.localBranchExists(o,s),y=null;if(d&&A&&!W){let x=await se.getRemotes(s);y=bl(d,x)}let R=w?await Oo():!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&&R)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 D={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 bt?x.stderr||x.message:x.message;D.fetchWarning=S.split(`
|
|
20
|
+
`)[0],n.onStepError?.(Se.fetch,`${D.fetchWarning} \u2014 continuing with local ref`)}}n.onStepStart?.(Se.worktree);try{await se.add(o,i,{createBranch:!W,base:d},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),Zr(s,i,a.copyFiles),n.onStepDone?.(Se.copyFiles);if(a.linkFiles.length>0)n.onStepStart?.(Se.linkFiles),Qr(s,i,a.linkFiles),n.onStepDone?.(Se.linkFiles);if(a.sharedDeps?.paths?.length)n.onStepStart?.(Se.sharedDeps),Ll(s,i,a.sharedDeps),n.onStepDone?.(Se.sharedDeps);if(m.length>0){n.onStepStart?.(Se.focus);let{valid:S,invalid:v}=Tl(i,m);if(D.validFocusPaths=S,D.invalidFocusPaths=v,S.length>0)Ur(i,S);n.onStepDone?.(Se.focus,S.join(", "))}let x={COPSE_BRANCH:o,COPSE_WORKTREE_PATH:i,COPSE_REPO_PATH:s};if(D.validFocusPaths.length>0)x.COPSE_FOCUS_PATHS=D.validFocusPaths.join(",");if(a.postCreate.length>0)n.onStepStart?.(Se.postCreate),await Bn(a.postCreate,{cwd:i,env:x,onOutput:n.onHookOutput}),n.onStepDone?.(Se.postCreate);if(D.validFocusPaths.length>0&&a.monorepo?.hooks?.length){let S=Nr(a.monorepo.hooks,D.validFocusPaths);if(S.length>0)n.onStepStart?.(Se.monorepoHooks),await $r(S,"postCreate",{cwd:i,env:x,repo:c,branch:o,focusPaths:D.validFocusPaths,mainRepoPath:s,onOutput:n.onHookOutput}),n.onStepDone?.(Se.monorepoHooks)}if(w&&R){n.onStepStart?.(Se.session);try{let S=t.layoutName??p.defaultLayout,v=Er(e,S),T=await qr(o,i,{layout:v,prefix:p.prefix,attach:!1,layoutName:S});D.sessionName=T,n.onStepDone?.(Se.session,T)}catch(S){n.onStepError?.(Se.session,S.message.split(`
|
|
21
|
+
`)[0])}}if(t.prNumber)n.onStepStart?.(Se.prMeta),Il(i,{number:t.prNumber,branch:o,createdAt:new Date().toISOString()}),n.onStepDone?.(Se.prMeta);n.onStepStart?.(Se.activityLog);try{Xt(s,{timestamp:new Date().toISOString(),event:"create",branch:o,path:i}),n.onStepDone?.(Se.activityLog)}catch(S){n.onStepError?.(Se.activityLog,S.message)}return D}catch(x){throw await se.remove(i,{force:!0},s).catch(()=>{}),x}}var Gl=ge(()=>{qe();Ve();Wt();Rs();Po();rn();jl();Vn();vs();jn();Ul();ao()});async function _r(e,t){let{worktreePath:n,mainRepoPath:o,branch:i}=t,s=en(e,o),c=Mn(e),a=Jt(n)??[],u=a.length>0&&s.monorepo?.hooks?.length?Nr(s.monorepo.hooks,a):[],d=Boolean(c.autoKill&&i),m=d?await Oo():!1,p=[];if(s.postRemove.length>0)p.push({id:Ie.postRemove,label:"Running postRemove hooks"});if(u.length>0)p.push({id:Ie.monorepoHooks,label:"Running monorepo hooks"});if(d&&m)p.push({id:Ie.session,label:"Killing session"});return p.push({id:Ie.worktree,label:"Removing worktree"}),p.push({id:Ie.activityLog,label:"Logging activity"}),{steps:p,postRemoveHooks:s.postRemove,monorepoMatches:u,focusPaths:a,wantKill:d,tmuxOk:m,sessionPrefix:c.prefix}}async function ei(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:s,branch:c,force:a}=t,u={COPSE_BRANCH:c??"",COPSE_WORKTREE_PATH:o,COPSE_REPO_PATH:i};if(e.focusPaths.length>0)u.COPSE_FOCUS_PATHS=e.focusPaths.join(",");if(e.postRemoveHooks.length>0){n.onStepStart?.(Ie.postRemove);try{await Bn(e.postRemoveHooks,{cwd:o,env:u,onOutput:n.onHookOutput}),n.onStepDone?.(Ie.postRemove)}catch(d){n.onStepError?.(Ie.postRemove,d.message)}}if(e.monorepoMatches.length>0){n.onStepStart?.(Ie.monorepoHooks);try{await $r(e.monorepoMatches,"postRemove",{cwd:o,env:u,repo:s,branch:c??"",focusPaths:e.focusPaths,mainRepoPath:i,onOutput:n.onHookOutput}),n.onStepDone?.(Ie.monorepoHooks)}catch(d){n.onStepError?.(Ie.monorepoHooks,d.message)}}if(e.wantKill&&e.tmuxOk&&c){n.onStepStart?.(Ie.session);try{let d=await Xr(c,o,e.sessionPrefix);n.onStepDone?.(Ie.session,d?"killed":"no active session")}catch(d){n.onStepError?.(Ie.session,d.message)}}n.onStepStart?.(Ie.worktree),await se.remove(o,{force:a},i),n.onStepDone?.(Ie.worktree),n.onStepStart?.(Ie.activityLog);try{Xt(i,{timestamp:new Date().toISOString(),event:"delete",branch:c??"",path:o}),n.onStepDone?.(Ie.activityLog)}catch(d){n.onStepError?.(Ie.activityLog,d.message)}}async function lo(e,t,n={}){let o=await _r(e,t);n.onStepPlan?.(o.steps),await ei(o,t,n)}var Os=ge(()=>{qe();Ve();Po();rn();Vn();vs();jn();ao()});import{existsSync as ql,mkdirSync as Mp,readFileSync as Xl,writeFileSync as Jl}from"fs";import{homedir as Ap}from"os";import{basename as Wp,join as ti}from"path";function Lp(e){let t=rr(e),n=ti(t,"HEAD");if(!ql(n))return null;let i=Xl(n,"utf-8").trim().match(/^ref:\s+(.+)$/);if(!i)return null;return i[1]?.replace(/^refs\/heads\//,"")??null}async function zl(e,t){return se.exec(e,t)}function Yl(){let e=Bun.env.HOME??Ap();return ti(e,".copse","archives")}async function Zl(e,t){let n=Wp(t),o=await se.getBranchForWorktree(e)??Lp(e)??"detached-head",i=o.replaceAll("/","-"),s=new Date().toISOString(),c=s.replaceAll(":","-"),a=ti(Yl(),n);Mp(a,{recursive:!0});let u=ti(a,`${i}-${c}`),d=`${u}.patch`,m=`${u}.json`;try{let[p,w,A]=await Promise.all([zl(["diff"],e),zl(["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(`
|
|
22
|
+
`);Jl(d,W,"utf-8");let y={branch:o,repo:n,archivedAt:s,patchPath:d,commitHash:A?.hash??"",message:A?.message??""};return Jl(m,JSON.stringify(y,null,2),"utf-8"),y}catch(p){let w=p instanceof Error?p.message:"Unknown archive error";throw new hs(`Failed to archive worktree: ${w}`,o,"archive_failed")}}async function Ql(e){let t=Yl();if(!ql(t))return[];let n=e?`${e}/*.json`:"**/*.json",o=new Bun.Glob(n),i=[];for await(let s of o.scan({cwd:t,absolute:!0}))try{let c=Xl(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 ks=ge(()=>{Ve();Wt();Ln()});async function Es(e,t,n={}){let{worktreePath:o,mainRepoPath:i,repoName:s,branch:c,keep:a,force:u}=t,d=null;if(!a)d=await _r(e,{worktreePath:o,mainRepoPath:i,repoName:s,branch:c,force:u??!1});let m=[{id:cn.createArchive,label:"Creating archive"},{id:cn.activityLogArchive,label:"Logging archive event"}],p=d?[...m,...d.steps]:m;n.onStepPlan?.(p),n.onStepStart?.(cn.createArchive);let w=await Zl(o,i);n.onStepDone?.(cn.createArchive,w.patchPath),n.onStepStart?.(cn.activityLogArchive);try{Xt(i,{timestamp:new Date().toISOString(),event:"archive",branch:w.branch,path:w.patchPath}),n.onStepDone?.(cn.activityLogArchive)}catch(A){n.onStepError?.(cn.activityLogArchive,A.message)}if(d)await ei(d,{worktreePath:o,mainRepoPath:i,repoName:s,branch:c??w.branch,force:u??!1},{onStepStart:n.onStepStart,onStepDone:n.onStepDone,onStepError:n.onStepError,onHookOutput:n.onHookOutput});return{archiveEntry:w}}var Nl=ge(()=>{ks();Vn();ao();Os()});var ef={};Ne(ef,{writePin:()=>Fs,removePin:()=>Ps,readPin:()=>ar,listPinnedWorktrees:()=>Ms,isPinned:()=>Kn});import{readFileSync as $l,writeFileSync as Ip,unlinkSync as jp,mkdirSync as Hp,existsSync as Ds}from"fs";import{join as Bp,dirname as _l}from"path";function cr(e){return on(e,"copse-pin")}function Vp(e){let t=cr(e),n=_l(t),o=Bp(n,"HEAD"),i=$l(o,"utf-8").trim(),s=i.match(/^ref:\s+refs\/heads\/(.+)$/);return s?s[1]:i}function Fs(e,t){let n=cr(e),o={branch:Vp(e),pinnedAt:new Date().toISOString(),...t?{reason:t}:{}};Hp(_l(n),{recursive:!0}),Ip(n,JSON.stringify(o),{encoding:"utf-8",mode:384})}function ar(e){let t=cr(e);if(!Ds(t))return null;return JSON.parse($l(t,"utf-8"))}function Ps(e){let t=cr(e);if(!Ds(t))return;jp(t)}function Kn(e){return Ds(cr(e))}function Ms(e){return e.filter((t)=>Kn(t.path))}var Mo=ge(()=>{Ln()});import{existsSync as tf,readFileSync as nf,statSync as ni}from"fs";import{basename as Kp,join as oi,resolve as Ao}from"path";async function As(e,t){return se.exec(e,t)}function Tp(e){let t=oi(e,"HEAD");if(!tf(t))return null;let o=nf(t,"utf-8").trim().match(/^ref:\s+refs\/heads\/(.+)$/);return o?o[1]:null}function of(e){let t=Ao(e),n=oi(t,".git");if(!ni(n,{throwIfNoEntry:!1}))throw Error(`Missing .git at ${n}`);return rr(t)}function Ws(e){let t=Ao(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=of(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=Tp(s);if(!a)return{valid:!1,reason:`Cannot resolve branch name from HEAD: ${t}`};return{valid:!0,branch:a}}async function rf(e,t){let n=Ao(e),o=Ws(n);if(!o.valid)throw new so(`Cannot import worktree: ${o.reason??"invalid target"}`,n,o.reason??"invalid target");let[i,s,c]=await Promise.all([As(["rev-parse","HEAD"],n),As(["status","--porcelain"],n),As(["rev-parse","--git-common-dir"],n)]),a=Ao(n,c),u=a.endsWith("/.git")||a.endsWith("\\.git")?a.slice(0,-5):a,d=Kp(u),m=Ao(n)===Ao(u),p=of(n),w=oi(p,"locked"),A=tf(w),W=A?nf(w,"utf-8").trim()||void 0:void 0;if(t?.focus&&t.focus.length>0)Ur(n,t.focus);if(t?.pin)try{(await Promise.resolve().then(() => (Mo(),ef))).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:d,repoPath:u}}var sf=ge(()=>{Ve();rn();Wt();Ln()});import{resolve as Up}from"path";async function Ls(e,t={}){let n=Up(e.targetPath),o=e.focusPaths??[],i=e.pin??!1,s=[{id:qt.validate,label:"Validating import target"},{id:qt.importWorktree,label:"Importing worktree metadata"},{id:qt.activityLog,label:"Logging activity"}];t.onStepPlan?.(s),t.onStepStart?.(qt.validate);let c=Ws(n);if(!c.valid){let u=c.reason??"invalid import target";throw t.onStepError?.(qt.validate,u),new so(`Cannot import worktree: ${u}`,n,u)}t.onStepDone?.(qt.validate),t.onStepStart?.(qt.importWorktree);let a=await rf(n,{focus:o,pin:i});wt(),t.onStepDone?.(qt.importWorktree,a.branch??""),t.onStepStart?.(qt.activityLog);try{Xt(a.repoPath,{timestamp:new Date().toISOString(),event:"import",branch:a.branch??c.branch??"unknown",path:a.path}),t.onStepDone?.(qt.activityLog)}catch(u){t.onStepError?.(qt.activityLog,u.message)}return a}var cf=ge(()=>{sf();Ve();Vn();Wt();ao()});import{basename as Gp,dirname as Jp,join as zp}from"path";async function Is(e,t={}){let{mainRepoPath:n,oldBranch:o,newBranch:i,worktreePath:s,movePath:c}=e,a=[{id:yt.renameBranch,label:`Renaming branch ${o} \u2192 ${i}`}];if(c)a.push({id:yt.movePath,label:"Moving worktree directory"});a.push({id:yt.activityLog,label:"Logging activity"}),t.onStepPlan?.(a),t.onStepStart?.(yt.renameBranch),await se.exec(["branch","-m",o,i],n),wt(),t.onStepDone?.(yt.renameBranch);let u=s,d=!1;if(c){t.onStepStart?.(yt.movePath);let m=i.replace(/\//g,"-"),p=o.replace(/\//g,"-"),w=Jp(s),W=Gp(s).replace(p,m),y=zp(w,W);if(y!==s)await se.move(s,y,n),wt(),u=y,d=!0,t.onStepDone?.(yt.movePath,`${s} \u2192 ${y}`);else t.onStepDone?.(yt.movePath,"path already matches new branch slug")}t.onStepStart?.(yt.activityLog);try{Xt(n,{timestamp:new Date().toISOString(),event:"rename",branch:i,details:{oldBranch:o}}),t.onStepDone?.(yt.activityLog)}catch(m){t.onStepError?.(yt.activityLog,m.message)}return{oldBranch:o,newBranch:i,newWorktreePath:u,moved:d}}var af=ge(()=>{Ve();Vn();ao()});var yn=ge(()=>{Gl();Os();Nl();cf();af();ao()});function an(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"),B(s,()=>e.children,null),B(s,X(re,{get when(){return e.footer},get children(){return e.footer}}),null),V((c)=>{var a=n(),u=o(),d=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)),d!==c.a&&(c.a=r(s,"width",d,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"),B(s,i),V((c)=>{var a=t().width,u=t().height,d=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)),d!==c.a&&(c.a=r(s,"backgroundColor",d,c.a)),c},{e:void 0,t:void 0,a:void 0}),s}})}var Wo=ge(()=>{te();te();te();te();te();Ye();te();xt()});import{decodePasteBytes as qp}from"@opentui/core";import{basename as lf,resolve as Xp}from"path";function ff(){let e=st(),t=pt(),n=rt(),[o,i]=ue("input"),[s,c]=ue(""),[a,u]=ue(""),[d,m]=ue("branch"),[p,w]=ue(""),[A,W]=ue([]),[y,R]=ue(""),[k,D]=ue([]),[x,S]=ue(-1),[v,T]=ue(!1),j=()=>{let E=s().toLowerCase();if(!E)return k().slice(0,10);return k().filter((M)=>M.name.toLowerCase().includes(E)).slice(0,10)};At(nn(()=>Z(),async()=>{try{let E=Z(),M=await se.listBranches(E);D(M)}catch{D([])}})),dn(()=>{queueMicrotask(()=>{c(""),u("")})}),At(nn(s,()=>{S(-1),T(s().length>0&&j().length>0)})),At(nn(o,(E)=>{e.setInputFocused(E==="input")})),ct(()=>{e.setInputFocused(!1)});let z=(E,M)=>{W((U)=>U.map((K,I)=>I===E?{...K,...M}:K))},Z=()=>{let E=t.worktrees()??[],M=e.selectedWorktreePath();return(M?E.find((K)=>K.path===M)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoPath??e.repoPath()},G=()=>{let E=t.worktrees()??[],M=e.selectedWorktreePath();return(M?E.find((K)=>K.path===M)??E[e.selectedWorktreeIndex()]:E[e.selectedWorktreeIndex()])?.repoName??e.repoPath().split("/").pop()??""},J=()=>{let E=s();if(!E)return"";let M=Z(),U=Ae(),K=en(U,M),I=E.replace(/\//g,"-"),ee=lf(M);return Xp(vr(K.worktreeDir,{repo:ee,branch:I}))};it(async(E)=>{if(e.activeTab()!=="add")return;if(e.showCommandPalette())return;let M=E.name;if(M==="escape"){if(o()==="preview"){i("input");return}e.setActiveTab("list"),c(""),u(""),m("branch"),i("input");return}if(o()==="input"){if(M==="tab"){if(v()&&d()==="branch")T(!1),S(-1);m((U)=>U==="branch"?"focus":"branch");return}if(d()==="branch"&&v()&&j().length>0){if(M==="down"||E.sequence==="\x1B[B"){S((U)=>Math.min(U+1,j().length-1));return}if(M==="up"||E.sequence==="\x1B[A"){S((U)=>Math.max(U-1,-1));return}}if(M==="return"||M==="enter"){if(d()==="branch"&&x()>=0){let U=j()[x()];if(U){c(U.name),T(!1),S(-1);return}}if(!s())return;T(!1),w(J()),i("preview");return}}if(o()==="preview"){if(M==="return"||M==="enter"){i("creating");let U=s(),K=p(),I=Z(),ee=lf(I);try{let de=Ae(),ie=a(),we=ie?ie.split(/[,\s]+/).map((pe)=>pe.trim()).filter(Boolean):[],ve={};await sr(de,{branch:U,worktreePath:K,mainRepoPath:I,repoName:ee,focusPaths:we,session:void 0},{onStepPlan:(pe)=>{let Ee=pe.map((De,We)=>{return ve[De.id]=We,{label:De.label,status:"pending"}});W(Ee)},onStepStart:(pe)=>{let Ee=ve[pe];if(Ee!==void 0)z(Ee,{status:"running"})},onStepDone:(pe,Ee)=>{let De=ve[pe];if(De!==void 0)z(De,{status:"done",message:Ee})},onStepError:(pe,Ee)=>{let De=ve[pe];if(De!==void 0)z(De,{status:"error",message:Ee})},onHookOutput:(pe)=>{let Ee=A().findLastIndex((De)=>De.status==="running");if(Ee>=0)z(Ee,{message:pe})}}),R("Worktree created successfully!"),i("done"),io.success(`Worktree created: ${U}`),t.refetch(),setTimeout(()=>{e.setActiveTab("list"),c(""),u(""),m("branch"),i("input")},1500)}catch(de){io.error(de.message);let we=A().findIndex((ve)=>ve.status==="running");if(we>=0)z(we,{status:"error",message:de.message});R(`${de.message}`),i("error")}return}}if(o()==="error"){if(M==="escape"||M==="return"||M==="enter")i("input"),R("")}}),So((E)=>{if(!e.inputFocused())return;let M=qp(E.bytes).replace(/\r?\n/g,"");if(!M)return;if(d()==="branch"){c((U)=>U+M);return}if(d()==="focus")u((U)=>U+M)});let q=()=>n().width,Y=()=>n().height,ne=()=>Math.max(50,Math.min(80,q()-4)),he=4,_=()=>{if(o()==="input"){let E=v()&&d()==="branch"?j().length*2:0,M=s().length>0?4:0;return Math.max(21+he,Math.min(21+he+E+M,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(an,{get width(){return ne()},get height(){return _()},get borderColor(){return je(()=>o()==="done")()?g.text.success:je(()=>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"),M=l("text");return f(E,M),r(E,"height",1),B(M,()=>"\u2500".repeat(Math.max(me(),1))),V((U)=>{var K=me(),I=g.border.subtle;return K!==U.e&&(U.e=r(E,"width",K,U.e)),I!==U.t&&(U.t=r(M,"fg",I,U.t)),U},{e:void 0,t:void 0}),E})(),X(re,{get when(){return o()==="input"},get children(){var E=l("box"),M=l("text"),U=l("text"),K=l("text"),I=l("text");return f(E,M),f(E,U),f(E,K),f(E,I),r(E,"flexDirection","row"),r(E,"gap",2),f(M,H("Tab:switch")),f(U,H("\u2191\u2193:pick")),f(K,H("Enter:confirm")),f(I,H("Esc:cancel")),V((ee)=>{var de=g.text.secondary,ie=g.text.secondary,we=g.text.secondary,ve=g.text.secondary;return de!==ee.e&&(ee.e=r(M,"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)),ve!==ee.o&&(ee.o=r(I,"fg",ve,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"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(M,H("Enter:create")),f(U,H("Esc:back")),V((K)=>{var I=g.text.secondary,ee=g.text.secondary;return I!==K.e&&(K.e=r(M,"fg",I,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,H("Creating worktree...")),V((M)=>r(E,"fg",g.text.secondary,M)),E}}),X(re,{get when(){return o()==="done"},get children(){var E=l("text");return f(E,H("\u2713 Done \u2014 returning to list")),V((M)=>r(E,"fg",g.text.secondary,M)),E}}),X(re,{get when(){return o()==="error"},get children(){var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"flexDirection","row"),r(E,"gap",2),f(M,H("Enter:retry")),f(U,H("Esc:back")),V((K)=>{var I=g.text.secondary,ee=g.text.secondary;return I!==K.e&&(K.e=r(M,"fg",I,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"),M=l("text"),U=l("text"),K=l("text");return f(E,M),f(E,U),f(E,K),r(E,"height",1),f(M,H(">")),r(M,"x",1),r(M,"y",0),f(U,H("New Worktree")),r(U,"x",3),r(U,"y",0),r(K,"x",17),r(K,"y",0),B(K,G),V((I)=>{var ee=me(),de=g.bg.elevated,ie=g.text.accent,we=g.text.primary,ve=g.text.secondary;return ee!==I.e&&(I.e=r(E,"width",ee,I.e)),de!==I.t&&(I.t=r(E,"backgroundColor",de,I.t)),ie!==I.a&&(I.a=r(M,"fg",ie,I.a)),we!==I.o&&(I.o=r(U,"fg",we,I.o)),ve!==I.i&&(I.i=r(K,"fg",ve,I.i)),I},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return B(E,()=>"\u2500".repeat(me())),V((M)=>r(E,"fg",g.border.subtle,M)),E})(),(()=>{var E=l("text");return f(E,H("Branch name")),V((M)=>r(E,"fg",d()==="branch"?g.text.accent:g.text.secondary,M)),E})(),(()=>{var E=l("input");return r(E,"onInput",(M)=>c(M)),r(E,"placeholder","Branch name or search..."),V((M)=>{var U=s(),K=d()==="branch",I=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==M.e&&(M.e=r(E,"value",U,M.e)),K!==M.t&&(M.t=r(E,"focused",K,M.t)),I!==M.a&&(M.a=r(E,"width",I,M.a)),ee!==M.o&&(M.o=r(E,"backgroundColor",ee,M.o)),de!==M.i&&(M.i=r(E,"cursorColor",de,M.i)),M},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),X(re,{get when(){return je(()=>!!(v()&&d()==="branch"))()&&j().length>0},get children(){return X(nt,{get each(){return j()},children:(E,M)=>(()=>{var U=l("box"),K=l("text"),I=l("text");return f(U,K),f(U,I),r(U,"height",1),r(K,"x",1),r(K,"y",0),B(K,()=>M()===x()?"\u25B8 ":" ",null),B(K,()=>E.name,null),r(I,"y",0),B(I,()=>E.isRemote?"(remote) ":"",null),B(I,()=>E.lastCommitDate,null),V((ee)=>{var de=me(),ie=M()===x()?g.select.focusedBg:g.bg.surface,we=M()===x()?g.tab.active:g.text.primary,ve=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)),ve!==ee.o&&(ee.o=r(I,"x",ve,ee.o)),pe!==ee.i&&(ee.i=r(I,"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,H("Tab to switch fields \xB7 \u2191\u2193 to select branch")),V((M)=>r(E,"fg",g.text.secondary,M)),E})(),(()=>{var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"width","100%"),r(E,"height",1),r(E,"flexDirection","row"),f(M,H("Focus ")),f(U,H("(optional)")),V((K)=>{var I=d()==="focus"?g.text.accent:g.text.secondary,ee=g.text.secondary;return I!==K.e&&(K.e=r(M,"fg",I,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",(M)=>u(M)),r(E,"placeholder","apps/web,apps/api (optional)"),V((M)=>{var U=a(),K=d()==="focus",I=ke(),ee=g.bg.elevated,de=g.text.accent;return U!==M.e&&(M.e=r(E,"value",U,M.e)),K!==M.t&&(M.t=r(E,"focused",K,M.t)),I!==M.a&&(M.a=r(E,"width",I,M.a)),ee!==M.o&&(M.o=r(E,"backgroundColor",ee,M.o)),de!==M.i&&(M.i=r(E,"cursorColor",de,M.i)),M},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),E})(),(()=>{var E=l("text");return f(E,H("comma-separated paths, e.g. apps/web,apps/api")),V((M)=>r(E,"fg",g.text.secondary,M)),E})(),X(re,{get when(){return s().length>0},get children(){return[(()=>{var E=l("text");return f(E,H("Target path")),V((M)=>r(E,"fg",g.text.secondary,M)),E})(),(()=>{var E=l("text");return B(E,J),V((M)=>r(E,"fg",g.text.primary,M)),E})()]}}),(()=>{var E=l("text");return f(E,H("Type a branch name, e.g. feature/my-feature")),V((M)=>r(E,"fg",g.text.primary,M)),E})()]}}),X(re,{get when(){return o()==="preview"},get children(){return[(()=>{var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"height",1),f(M,H(">")),r(M,"x",1),r(M,"y",0),f(U,H("Confirm Worktree")),r(U,"x",3),r(U,"y",0),V((K)=>{var I=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return I!==K.e&&(K.e=r(E,"width",I,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(M,"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 B(E,()=>"\u2500".repeat(me())),V((M)=>r(E,"fg",g.border.subtle,M)),E})(),(()=>{var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Branch")),B(K,s),V((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Path")),B(K,p),V((I)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Focus")),B(K,a),V((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text");return f(E,H("\u2713 Ready to create. Press Enter to confirm.")),V((M)=>r(E,"fg",g.text.success,M)),E})()]}}),X(re,{get when(){return o()==="creating"},get children(){return[(()=>{var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"height",1),f(M,H(">")),r(M,"x",1),r(M,"y",0),f(U,H("Creating Worktree")),r(U,"x",3),r(U,"y",0),V((K)=>{var I=me(),ee=g.bg.elevated,de=g.text.accent,ie=g.text.primary;return I!==K.e&&(K.e=r(E,"width",I,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(M,"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 B(E,()=>"\u2500".repeat(me())),V((M)=>r(E,"fg",g.border.subtle,M)),E})(),X(nt,{get each(){return A()},children:(E)=>(()=>{var M=l("box"),U=l("text"),K=H(" ");return f(M,U),r(M,"height",1),f(U,K),B(U,(()=>{var I=je(()=>E.status==="done");return()=>I()?"\u2713":je(()=>E.status==="running")()?"\u27F3":E.status==="error"?"\u2717":"\u25CB"})(),K),B(U,()=>E.label,null),B(M,X(re,{get when(){return E.message},get children(){var I=l("text");return r(I,"y",0),B(I,()=>E.message),V((ee)=>{var de=E.label.length+4,ie=g.text.secondary;return de!==ee.e&&(ee.e=r(I,"x",de,ee.e)),ie!==ee.t&&(ee.t=r(I,"fg",ie,ee.t)),ee},{e:void 0,t:void 0}),I}}),null),V((I)=>r(U,"fg",E.status==="done"?g.text.success:E.status==="running"?g.text.accent:E.status==="error"?g.text.error:g.text.secondary,I)),M})()})]}}),X(re,{get when(){return o()==="done"},get children(){return[(()=>{var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"height",1),f(M,H(">")),r(M,"x",1),r(M,"y",0),f(U,H("Worktree Created")),r(U,"x",3),r(U,"y",0),V((K)=>{var I=me(),ee=g.bg.elevated,de=g.text.success,ie=g.text.primary;return I!==K.e&&(K.e=r(E,"width",I,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(M,"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 B(E,()=>"\u2500".repeat(me())),V((M)=>r(E,"fg",g.border.subtle,M)),E})(),(()=>{var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Branch")),B(K,s),V((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),(()=>{var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Path")),B(K,p),V((I)=>{var ee=g.text.secondary,de=g.text.primary;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E})(),X(re,{get when(){return a().length>0},get children(){var E=l("box"),M=l("box"),U=l("text"),K=l("text");return f(E,M),f(E,K),r(E,"height",1),r(E,"flexDirection","row"),f(M,U),r(M,"width",14),r(M,"height",1),f(U,H("Focus")),B(K,a),V((I)=>{var ee=g.text.secondary,de=g.text.accent;return ee!==I.e&&(I.e=r(U,"fg",ee,I.e)),de!==I.t&&(I.t=r(K,"fg",de,I.t)),I},{e:void 0,t:void 0}),E}}),(()=>{var E=l("text"),M=H("\u2713 ");return f(E,M),B(E,y,null),V((U)=>r(E,"fg",g.text.success,U)),E})()]}}),X(re,{get when(){return o()==="error"},get children(){return[(()=>{var E=l("box"),M=l("text"),U=l("text");return f(E,M),f(E,U),r(E,"height",1),f(M,H(">")),r(M,"x",1),r(M,"y",0),f(U,H("Error")),r(U,"x",3),r(U,"y",0),V((K)=>{var I=me(),ee=g.bg.elevated,de=g.text.error,ie=g.text.primary;return I!==K.e&&(K.e=r(E,"width",I,K.e)),ee!==K.t&&(K.t=r(E,"backgroundColor",ee,K.t)),de!==K.a&&(K.a=r(M,"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 B(E,()=>"\u2500".repeat(me())),V((M)=>r(E,"fg",g.border.subtle,M)),E})(),(()=>{var E=l("text");return f(E,H("\u2717 Failed")),V((M)=>r(E,"fg",g.text.error,M)),E})(),(()=>{var E=l("box"),M=l("text");return f(E,M),r(E,"height",1),r(M,"x",1),r(M,"y",0),B(M,()=>y().slice(0,Math.max(ke()-3,10))),V((U)=>{var K=ke(),I=g.bg.elevated,ee=g.text.primary;return K!==U.e&&(U.e=r(E,"width",K,U.e)),I!==U.t&&(U.t=r(E,"backgroundColor",I,U.t)),ee!==U.a&&(U.a=r(M,"fg",ee,U.a)),U},{e:void 0,t:void 0,a:void 0}),E})(),(()=>{var E=l("text");return f(E,H("Press Enter or Escape to try again")),V((M)=>r(E,"fg",g.text.secondary,M)),E})()]}})]}})}var uf=ge(()=>{te();te();te();te();te();te();te();te();Ye();Qt();pn();Ve();qe();yn();te();ds();xt();Wo()});import{basename as Yp}from"path";function df(){let e=st(),t=pt(),n=rt(),[o,i]=ue(!1),[s,c]=ue(""),[a,u]=ue(!1),d=()=>{let y=t.worktrees()??[],R=e.selectedWorktreePath();if(R){let k=y.find((D)=>D.path===R);if(k)return k}return y[e.selectedWorktreeIndex()]},m=()=>{e.setShowRemove(!1),i(!1),c(""),u(!1)},p=async(y)=>{let R=d();if(!R){m();return}if(!y){if(await se.isDirty(R.path)){c("Worktree has changes. Press Enter to force remove."),u(!0);return}}i(!0),c("Removing...");try{let k=Ae(),D=Yp(R.repoPath);await lo(k,{worktreePath:R.path,mainRepoPath:R.repoPath,repoName:D,branch:R.branch,force:y},{onStepStart:(T)=>{if(T===Ie.postRemove)c("Running postRemove hooks...");else if(T===Ie.monorepoHooks)c("Running monorepo hooks...");else if(T===Ie.session)c("Killing session...");else if(T===Ie.worktree)c("Removing worktree...")}}),c("Removed successfully!"),io.success("Worktree removed");let x=t.worktrees()??[],S=e.selectedWorktreeIndex(),v=x[S-1]??x[S+1]??null;if(S>0)e.setSelectedWorktreeIndex(S-1);else e.setSelectedWorktreeIndex(0);e.setSelectedWorktreePath(v?.path??null),t.refetch(),setTimeout(m,1000)}catch(k){let D=k.message;c(`Failed: ${D}`),i(!1),io.error(`Failed: ${D}`)}};it(async(y)=>{if(!e.showRemove())return;if(e.showCommandPalette())return;let R=y.name;if(R==="escape"){m();return}if(a()&&(R==="return"||R==="enter")){u(!1),await p(!0);return}if((R==="return"||R==="enter")&&!o())await p(!1)});let w=()=>d(),A=()=>Math.max(50,Math.min(80,n().width-4)),W=()=>10;return X(an,{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"),B(y,X(re,{get when(){return je(()=>!o())()&&!a()},get children(){var R=l("box"),k=l("text"),D=l("text");return f(R,k),f(R,D),r(R,"height",1),r(R,"flexDirection","row"),r(R,"gap",2),f(k,H("[Enter] Confirm")),f(D,H("[Esc] Cancel")),V((x)=>{var S=g.text.secondary,v=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),R}}),null),B(y,X(re,{get when(){return a()},get children(){var R=l("box"),k=l("text"),D=l("text");return f(R,k),f(R,D),r(R,"height",1),r(R,"flexDirection","row"),r(R,"gap",2),f(k,H("[Enter] Force remove")),f(D,H("[Esc] Cancel")),V((x)=>{var S=g.text.secondary,v=g.text.secondary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),R}}),null),y})()},get children(){return[X(re,{get when(){return!!w()},get children(){return[(()=>{var y=l("box"),R=l("box"),k=l("text"),D=l("text");return f(y,R),f(y,D),r(y,"height",1),r(y,"flexDirection","row"),f(R,k),r(R,"width",10),r(R,"height",1),f(k,H("Branch")),B(D,()=>w()?.branch??"(detached)"),V((x)=>{var S=g.text.secondary,v=g.text.accent;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),y})(),(()=>{var y=l("box"),R=l("box"),k=l("text"),D=l("text");return f(y,R),f(y,D),r(y,"height",1),r(y,"flexDirection","row"),f(R,k),r(R,"width",10),r(R,"height",1),f(k,H("Path")),B(D,()=>w()?.path),V((x)=>{var S=g.text.secondary,v=g.text.primary;return S!==x.e&&(x.e=r(k,"fg",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),y})(),X(re,{get when(){return a()},get children(){var y=l("text");return B(y,s),V((R)=>r(y,"fg",g.text.warning,R)),y}}),X(re,{get when(){return o()},get children(){var y=l("text");return B(y,s),V((R)=>r(y,"fg",s().startsWith("Failed")?g.text.error:g.text.success,R)),y}})]}}),X(re,{get when(){return!w()},get children(){var y=l("text");return f(y,H("No worktree selected.")),V((R)=>r(y,"fg",g.text.secondary,R)),y}})]}})}var hf=ge(()=>{te();te();te();te();te();te();te();te();Ye();Qt();pn();Ve();qe();yn();te();ds();xt();Wo()});import{basename as Zp}from"path";function mf(e){let t=st(),n=pt(),o=sn(),[i,s]=ue("confirming"),[c,a]=ue(""),[u,d]=ue(0),m=()=>{let W=n.worktrees()??[],y=t.selectedWorktrees(),R=[];for(let k of y){let D=W.find((x)=>x.path===k);if(D&&!D.isMain)R.push({branch:D.branch??"(detached)",path:D.path,repoPath:D.repoPath})}return R},p=()=>{t.setShowBulkActions(!1),s("confirming"),a(""),d(0)},w=async()=>{let W=m();if(W.length===0){p();return}s("executing"),d(0);let y=Ae(),R=[],k=[],D=0;for(let x=0;x<W.length;x++){let S=W[x];a(`Removing ${S.branch} (${x+1}/${W.length})...`),d(x);try{if(await se.isDirty(S.path)){k.push(S.branch);continue}let T=Zp(S.repoPath);await lo(y,{worktreePath:S.path,mainRepoPath:S.repoPath,repoName:T,branch:S.branch==="(detached)"?null:S.branch,force:!1}),D++}catch(v){R.push(`${S.branch}: ${v.message}`)}}if(wt(),t.clearSelection(),t.setSelectedWorktreeIndex(0),t.setSelectedWorktreePath(null),n.refetch(),R.length>0){s("error");let x=[`Failed: ${R.join("; ")}`];if(k.length>0)x.push(`Skipped ${k.length} dirty worktree(s)`);a(x.join(". ")),o.addToast({message:`Failed to remove ${R.length} worktree(s)`,type:"error"}),setTimeout(p,3000)}else if(k.length>0)s("done"),a(`Removed ${D}, skipped ${k.length} dirty: ${k.join(", ")}`),o.addToast({message:`Removed ${D}, 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"),R=l("box"),k=l("text"),D=l("box"),x=l("text"),S=l("box");return f(W,y),r(W,"x",0),r(W,"y",0),f(y,R),f(y,D),f(y,S),r(y,"x",2),r(y,"y",1),r(y,"flexDirection","column"),f(R,k),r(R,"height",1),f(k,H("Bulk Delete Worktrees")),r(k,"x",0),r(k,"y",0),f(D,x),r(D,"height",1),r(x,"x",0),r(x,"y",0),B(x,()=>"\u2500".repeat(Math.max(e.w-5,10))),r(S,"height",1),B(y,X(re,{get when(){return i()==="confirming"},get children(){return[(()=>{var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",0),r(T,"y",0),B(T,()=>`Delete ${A()} worktree(s)?`),V((j)=>r(T,"fg",g.text.warning,j)),v})(),(()=>{var v=l("box");return r(v,"height",1),v})(),X(nt,{get each(){return m().slice(0,Math.max(e.h-10,5))},children:(v)=>(()=>{var T=l("box"),j=l("text");return f(T,j),r(T,"height",1),r(j,"x",2),r(j,"y",0),B(j,()=>`\u2022 ${v.branch}`),V((z)=>r(j,"fg",g.text.accent,z)),T})()}),X(re,{get when(){return A()>Math.max(e.h-10,5)},get children(){var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",2),r(T,"y",0),B(T,()=>`... and ${A()-Math.max(e.h-10,5)} more`),V((j)=>r(T,"fg",g.text.secondary,j)),v}}),(()=>{var v=l("box");return r(v,"height",1),v})(),(()=>{var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),f(T,H("Enter:delete all Esc:cancel")),r(T,"x",0),r(T,"y",0),V((j)=>r(T,"fg",g.text.secondary,j)),v})()]}}),null),B(y,X(re,{get when(){return i()==="executing"},get children(){return[(()=>{var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",0),r(T,"y",0),B(T,c),V((j)=>r(T,"fg",g.text.warning,j)),v})(),(()=>{var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",0),r(T,"y",0),B(T,()=>`Progress: ${u()+1}/${A()}`),V((j)=>r(T,"fg",g.text.secondary,j)),v})()]}}),null),B(y,X(re,{get when(){return i()==="done"},get children(){var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",0),r(T,"y",0),B(T,c),V((j)=>r(T,"fg",g.text.success,j)),v}}),null),B(y,X(re,{get when(){return i()==="error"},get children(){var v=l("box"),T=l("text");return f(v,T),r(v,"height",1),r(T,"x",0),r(T,"y",0),B(T,c),V((j)=>r(T,"fg",g.text.error,j)),v}}),null),V((v)=>{var{w:T,h:j}=e,z=g.bg.base,Z=e.w-3,G=e.h-2,J=g.bg.base,q=g.text.error,Y=g.border.subtle;return T!==v.e&&(v.e=r(W,"width",T,v.e)),j!==v.t&&(v.t=r(W,"height",j,v.t)),z!==v.a&&(v.a=r(W,"backgroundColor",z,v.a)),Z!==v.o&&(v.o=r(y,"width",Z,v.o)),G!==v.i&&(v.i=r(y,"height",G,v.i)),J!==v.n&&(v.n=r(y,"backgroundColor",J,v.n)),q!==v.s&&(v.s=r(k,"fg",q,v.s)),Y!==v.h&&(v.h=r(x,"fg",Y,v.h)),v},{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 pf=ge(()=>{te();te();te();te();te();te();te();Ye();Qt();co();pn();Ve();qe();yn();te();xt()});import{decodePasteBytes as Qp}from"@opentui/core";import{spawnSync as Np}from"child_process";function Sn(e){if(!e)return"(inherits)";if(e.length===0)return"[]";return JSON.stringify(e)}function cg(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 Bs(e){if(e===void 0)return"(inherits)";return e?"true":"false"}function ag(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:js}),t.push({key:"d.copyFiles",kind:"field",label:"copyFiles",value:St(n.copyFiles),rawValue:n.copyFiles,path:["defaults","copyFiles"],editKind:"strArray",depth:1,suggestions:ri}),t.push({key:"d.linkFiles",kind:"field",label:"linkFiles",value:St(n.linkFiles),rawValue:n.linkFiles,path:["defaults","linkFiles"],editKind:"strArray",depth:1,suggestions:ii}),t.push({key:"d.postCreate",kind:"field",label:"postCreate",value:St(n.postCreate),rawValue:n.postCreate,path:["defaults","postCreate"],editKind:"strArray",depth:1,suggestions:Hs}),t.push({key:"d.postRemove",kind:"field",label:"postRemove",value:St(n.postRemove),rawValue:n.postRemove,path:["defaults","postRemove"],editKind:"strArray",depth:1,suggestions:si}),t.push({key:"d.autoUpstream",kind:"field",label:"autoUpstream",value:Bs(n.autoUpstream),rawValue:n.autoUpstream,path:["defaults","autoUpstream"],editKind:"boolean",depth:1}),n.sharedDeps)t.push({key:"d.sharedDeps.header",kind:"section",label:"sharedDeps",depth:1}),t.push({key:"d.sharedDeps.strategy",kind:"field",label:"strategy",value:n.sharedDeps.strategy??"(not set)",rawValue:n.sharedDeps.strategy,path:["defaults","sharedDeps","strategy"],editKind:"enum",depth:2,suggestions:rg}),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:ig}),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:sg});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:[Rn,'["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:js}),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:ri}),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:ii}),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:Hs}),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:si}),t.push({key:`w${c}.defaults.autoUpstream`,kind:"field",label:"autoUpstream",value:Bs(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:js}),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:ri}),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:ii}),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:Hs}),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:si}),t.push({key:`r${c}.autoUpstream`,kind:"field",label:"autoUpstream",value:Bs(s.autoUpstream),rawValue:s.autoUpstream,path:["repos",c,"autoUpstream"],editKind:"boolean",depth:2}),s.monorepo){t.push({key:`r${c}.mr.header`,kind:"section",label:"monorepo",depth:2}),t.push({key:`r${c}.mr.autoDetect`,kind:"field",label:"autoDetect",value:s.monorepo.autoDetect===void 0?"(not set)":String(s.monorepo.autoDetect),rawValue:s.monorepo.autoDetect,path:["repos",c,"monorepo","autoDetect"],editKind:"boolean",depth:3}),t.push({key:`r${c}.mr.extraPatterns`,kind:"field",label:"extraPatterns",value:Sn(s.monorepo.extraPatterns),rawValue:s.monorepo.extraPatterns,path:["repos",c,"monorepo","extraPatterns"],editKind:"strArray",depth:3,suggestions:eg});let u=s.monorepo.hooks??[];t.push({key:`r${c}.mr.hooks.header`,kind:"section",label:`hooks (${u.length})`,depth:3}),u.forEach((d,m)=>{t.push({key:`r${c}.h${m}.header`,kind:"section",label:`[${m}] ${d.glob}`,depth:4}),t.push({key:`r${c}.h${m}.glob`,kind:"field",label:"glob",value:d.glob,rawValue:d.glob,path:["repos",c,"monorepo","hooks",m,"glob"],editKind:"string",depth:5,suggestions:tg}),t.push({key:`r${c}.h${m}.copyFiles`,kind:"field",label:"copyFiles",value:Sn(d.copyFiles),rawValue:d.copyFiles,path:["repos",c,"monorepo","hooks",m,"copyFiles"],editKind:"strArray",depth:5,suggestions:ri}),t.push({key:`r${c}.h${m}.linkFiles`,kind:"field",label:"linkFiles",value:Sn(d.linkFiles),rawValue:d.linkFiles,path:["repos",c,"monorepo","hooks",m,"linkFiles"],editKind:"strArray",depth:5,suggestions:ii}),t.push({key:`r${c}.h${m}.postCreate`,kind:"field",label:"postCreate",value:Sn(d.postCreate),rawValue:d.postCreate,path:["repos",c,"monorepo","hooks",m,"postCreate"],editKind:"strArray",depth:5,suggestions:ng}),t.push({key:`r${c}.h${m}.postRemove`,kind:"field",label:"postRemove",value:Sn(d.postRemove),rawValue:d.postRemove,path:["repos",c,"monorepo","hooks",m,"postRemove"],editKind:"strArray",depth:5,suggestions:si})})}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:Sn(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:Sn(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:Sn(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:Sn(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:og});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 gf(){let e=st(),t=rt(),n=Ct(),o=()=>{try{return{cfg:Ki(),error:""}}catch(b){return{cfg:null,error:b.message}}},i=o(),[s,c]=ue(i.cfg),[a,u]=ue(i.error),[d,m]=ue(""),[p,w]=ue("info"),[A,W]=ue(0),[y,R]=ue(0),[k,D]=ue(!1),[x,S]=ue(null),[v,T]=ue(null),[j,z]=ue(""),[Z,G]=ue(!1),[J,q]=ue(0),[Y,ne]=ue([]),[he,_]=ue(-1),[me,ke]=ue(0),E=Xe(()=>ag(s())),M=Xe(()=>{let b=[],P=E();for(let F=0;F<P.length;F++){let O=P[F];if(O.kind==="field"&&O.editKind!==null)b.push(F)}return b}),U=()=>{let b=M();if(b.length===0)return-1;let P=Math.max(0,Math.min(A(),b.length-1));return b[P]??-1},K=()=>{let b=U();if(b<0)return null;return E()[b]??null},I=(b,P="info")=>{m(b),w(P)},ee=()=>{let b=o();c(b.cfg),u(b.error)},de=()=>{let b=K();if(!b||!b.editKind||!b.path){I("Field is read-only (press 'e' to edit the file directly)","info");return}let P=b.suggestions??[];if(S(b.editKind),T(b.path),ne(P),e.setInputFocused(!0),b.editKind==="string"){let F=typeof b.rawValue==="string"?b.rawValue:"";z(F),_(P.indexOf(F))}else if(b.editKind==="strArray"){let F=Array.isArray(b.rawValue)?b.rawValue:[],O=JSON.stringify(F);z(O),_(P.indexOf(O))}else if(b.editKind==="boolean")G(b.rawValue===!0),_(-1);else if(b.editKind==="theme"){let F=typeof b.rawValue==="string"?b.rawValue:"opencode",O=Lt.indexOf(F);q(O>=0?O:0),_(-1)}else if(b.editKind==="enum"){let F=b.suggestions??[],O=typeof b.rawValue==="string"?b.rawValue:"",$=F.indexOf(O);ke($>=0?$:0),_(-1)}D(!0)},ie=()=>{D(!1),T(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)},we=(b)=>{let P=Y();if(P.length===0)return;let F=(he()+b+P.length)%P.length;_(F);let O=P[F]??"",$=x();if($==="string"||$==="strArray")z(O)},ve=()=>{let b=v(),P=x();if(!b||!P){ie();return}let F;if(P==="string"){let O=j();F=O.length===0?void 0:O}else if(P==="strArray"){let O=j().trim();if(O.length===0)F=[];else try{let $=JSON.parse(O);if(!Array.isArray($)||$.some((oe)=>typeof oe!=="string"))throw Error("expected a JSON array of strings");F=$}catch($){I(`Invalid JSON: ${$.message}`,"error");return}}else if(P==="boolean")F=Z();else if(P==="theme")F=Lt[J()];else if(P==="enum")F=Y()[me()];try{Tt();let O=Ki();ma(O,b,F);let $=no(O);if($.length>0){let oe=$[0];I(`Validation: ${oe.field}: ${oe.message}`,"error");return}if(oo(n,`${JSON.stringify(O,null,2)}
|
|
23
|
+
`),P==="theme"&&typeof F==="string"&&Lt.includes(F))Co(F);ee(),I("Saved","success"),D(!1),T(null),S(null),z(""),ne([]),_(-1),e.setInputFocused(!1)}catch(O){I(`Save failed: ${O.message}`,"error")}};it((b)=>{if(e.activeTab()!=="config")return;if(e.showCommandPalette())return;let P=b.name;if(k()){if(P==="escape"){ie();return}let F=x();if(F==="string"||F==="strArray"){if(P==="tab"){we(b.shift?-1:1);return}if(P==="return"||P==="enter")ve();return}if(F==="boolean"){if(P==="space"||P==="tab"||P==="left"||P==="right"||P==="h"||P==="l"){G((O)=>!O);return}if(P==="return"||P==="enter")ve();return}if(F==="theme"){if(P==="left"||P==="up"||P==="h"||P==="k"||P==="tab"&&b.shift){q((O)=>(O-1+Lt.length)%Lt.length);return}if(P==="right"||P==="down"||P==="l"||P==="j"||P==="tab"){q((O)=>(O+1)%Lt.length);return}if(P==="return"||P==="enter")ve();return}if(F==="enum"){let O=Y();if(O.length===0)return;if(P==="left"||P==="up"||P==="h"||P==="k"||P==="tab"&&b.shift){ke(($)=>($-1+O.length)%O.length);return}if(P==="right"||P==="down"||P==="l"||P==="j"||P==="tab"){ke(($)=>($+1)%O.length);return}if(P==="return"||P==="enter")ve();return}return}if(e.inputFocused())return;if(P==="j"||P==="down"){W((F)=>Math.min(F+1,M().length-1));return}if(P==="k"||P==="up"){W((F)=>Math.max(F-1,0));return}if(P==="g"){W(0);return}if(P==="G"){W(Math.max(M().length-1,0));return}if(P==="return"||P==="enter"){de();return}if(P==="e"){let F=process.env.EDITOR??process.env.VISUAL??"vi";Tt(),Np(F,[n],{stdio:"inherit"}),ee(),I("Config reloaded","info");return}if(P==="r"){ee(),I("Reloaded","info");return}if(P==="i"){Tt(),ee(),I("Initialized","info");return}}),So((b)=>{if(!k())return;let P=x();if(P!=="string"&&P!=="strArray")return;let F=Qp(b.bytes).replace(/\r?\n/g,"");if(!F)return;z((O)=>O+F)});let pe=()=>Math.max(t().height-10,5);At(nn([A,E],()=>{let b=U();if(b<0)return;let P=pe();if(b<y())R(b);else if(b>=y()+P)R(b-P+1)})),ct(()=>{e.setInputFocused(!1)});let Ee=Xe(()=>{let b=y();return E().slice(b,b+pe()).map((P,F)=>({row:P,globalIdx:b+F}))}),De=()=>M().length,We=()=>{let b=E().length;if(b<=pe())return"";let P=Math.min(y()+pe(),b);return`${y()+1}-${P}/${b}`},L=()=>t().width,h=()=>Math.max(L()-4-_p-4,20);return(()=>{var b=l("box"),P=l("box"),F=l("box"),O=l("text"),$=l("b"),oe=l("box"),be=l("text"),le=l("text"),He=l("box");return f(b,P),f(b,He),r(b,"x",0),r(b,"y",0),r(b,"width","100%"),r(b,"height","100%"),r(b,"flexDirection","column"),f(P,F),f(P,oe),r(P,"width","100%"),r(P,"height","100%"),r(P,"flexDirection","column"),r(P,"paddingX",2),r(P,"paddingY",1),f(F,O),r(F,"height",1),r(F,"flexDirection","row"),f(O,$),f($,H("Configuration")),B(F,X(re,{get when(){return!!We()},get children(){var N=l("text"),ae=H(" ");return f(N,ae),B(N,()=>` \xB7 ${We()}`,null),V((ce)=>r(N,"fg",g.text.secondary,ce)),N}}),null),B(F,X(re,{get when(){return De()>0},get children(){var N=l("text"),ae=H(" ");return f(N,ae),B(N,()=>` \xB7 ${A()+1}/${De()}`,null),V((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,H("Path:")),B(le,n),B(P,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,H("Load error:")),B(ce,a),V((Q)=>{var Ce=g.text.error,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,Q.t)),Q},{e:void 0,t:void 0}),N}}),null),B(P,X(re,{get when(){return je(()=>!s())()&&!a()},get children(){var N=l("box"),ae=l("text"),ce=l("box"),Q=l("text"),Ce=l("text"),Re=l("text");return f(N,ae),f(N,ce),r(N,"flexDirection","column"),r(N,"gap",1),f(ae,H("No config file found.")),f(ce,Q),f(ce,Ce),f(ce,Re),r(ce,"flexDirection","row"),r(ce,"gap",1),f(Q,H("Press")),f(Ce,H("i")),f(Re,H("to initialize with defaults.")),V((Ue)=>{var Te=g.text.warning,Qe=g.text.secondary,dt=g.text.accent,Me=g.text.secondary;return Te!==Ue.e&&(Ue.e=r(ae,"fg",Te,Ue.e)),Qe!==Ue.t&&(Ue.t=r(Q,"fg",Qe,Ue.t)),dt!==Ue.a&&(Ue.a=r(Ce,"fg",dt,Ue.a)),Me!==Ue.o&&(Ue.o=r(Re,"fg",Me,Ue.o)),Ue},{e:void 0,t:void 0,a:void 0,o:void 0}),N}}),null),B(P,X(re,{get when(){return!!s()},get children(){return[(()=>{var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),B(ae,()=>"\u2500".repeat(Math.max(L()-34,10))),V((ce)=>r(ae,"fg",g.border.subtle,ce)),N})(),(()=>{var N=l("box");return r(N,"flexDirection","column"),B(N,X(nt,{get each(){return Ee()},children:(ae)=>{let ce=ae.row,Q=()=>ae.globalIdx===U(),Ce=()=>k()&&Q(),Re=" ".repeat(ce.depth*$p);if(ce.kind==="spacer")return(()=>{var Te=l("box"),Qe=l("text");return f(Te,Qe),r(Te,"height",1),f(Qe,H(" ")),V((dt)=>r(Qe,"fg",g.text.secondary,dt)),Te})();if(ce.kind==="section")return(()=>{var Te=l("box"),Qe=l("text");return f(Te,Qe),r(Te,"height",1),r(Te,"flexDirection","row"),B(Qe,Re,null),B(Qe,()=>ce.label,null),V((dt)=>r(Qe,"fg",g.text.accent,dt)),Te})();let Ue=()=>{let Te=Q()?"\u25B8 ":" ";return`${Re}${Te}${ce.label}`};return(()=>{var Te=l("box"),Qe=l("box"),dt=l("text");return f(Te,Qe),r(Te,"height",1),r(Te,"flexDirection","row"),f(Qe,dt),r(Qe,"width",30),r(Qe,"height",1),B(dt,Ue),B(Te,X(re,{get when(){return Ce()},get fallback(){return(()=>{var Me=l("text");return B(Me,()=>ce.value??""),V((Be)=>r(Me,"fg",cg(ce.value)?g.text.secondary:g.text.primary,Be)),Me})()},get children(){return[X(re,{get when(){return x()==="string"||x()==="strArray"},get children(){var Me=l("input");return r(Me,"onInput",(Be)=>z(Be)),r(Me,"focused",!0),V((Be)=>{var Cn=j(),Bo=h(),Vo=g.bg.elevated,Ko=g.text.accent,To=x()==="strArray"?'["a", "b"]':"";return Cn!==Be.e&&(Be.e=r(Me,"value",Cn,Be.e)),Bo!==Be.t&&(Be.t=r(Me,"width",Bo,Be.t)),Vo!==Be.a&&(Be.a=r(Me,"backgroundColor",Vo,Be.a)),Ko!==Be.o&&(Be.o=r(Me,"cursorColor",Ko,Be.o)),To!==Be.i&&(Be.i=r(Me,"placeholder",To,Be.i)),Be},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),Me}}),X(re,{get when(){return x()==="boolean"},get children(){var Me=l("text");return B(Me,()=>Z()?"[x] true":"[ ] false"),V((Be)=>r(Me,"fg",Z()?g.text.success:g.text.secondary,Be)),Me}}),X(re,{get when(){return x()==="theme"},get children(){var Me=l("text");return B(Me,()=>`\u25C2 ${Tr[Lt[J()]??"opencode"]} (${Lt[J()]??"opencode"}) \u25B8`),V((Be)=>r(Me,"fg",g.text.accent,Be)),Me}}),X(re,{get when(){return x()==="enum"},get children(){var Me=l("text");return B(Me,()=>`\u25C2 ${Y()[me()]??""} \u25B8`),V((Be)=>r(Me,"fg",g.text.accent,Be)),Me}})]}}),null),V((Me)=>{var Be=Q()?g.select.focusedBg:void 0,Cn=Q()?g.text.accent:g.text.secondary;return Be!==Me.e&&(Me.e=r(Te,"backgroundColor",Be,Me.e)),Cn!==Me.t&&(Me.t=r(dt,"fg",Cn,Me.t)),Me},{e:void 0,t:void 0}),Te})()}})),V((ae)=>r(N,"height",pe(),ae)),N})()]}}),null),B(P,X(re,{get when(){return!!d()},get children(){var N=l("box"),ae=l("text");return f(N,ae),r(N,"height",1),B(ae,d),V((ce)=>r(ae,"fg",p()==="error"?g.text.error:p()==="success"?g.text.success:g.text.accent,ce)),N}}),null),r(He,"width","100%"),r(He,"height",1),r(He,"flexDirection","row"),r(He,"gap",2),B(He,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,H("j/k")),f(ce,H(":nav")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("g/G")),f(ce,H(":top/bot")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("Enter")),f(ce,H(":edit")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("e")),f(ce,H(":$EDITOR")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("r")),f(ce,H(":reload")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("i")),f(ce,H(":init")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,Q.t)),Q},{e:void 0,t:void 0}),N})()]}}),null),B(He,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,H("Enter")),f(ce,H(":save")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("Esc")),f(ce,H(":cancel")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("Space/Tab")),f(ce,H(":toggle")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("Tab/\u2190\u2192")),f(ce,H(":cycle")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("Tab/\u2190\u2192")),f(ce,H(":cycle")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H("JSON")),f(ce,H(":array")),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,Q.t)),Q},{e:void 0,t:void 0}),N}}),X(re,{get when(){return je(()=>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,H("Tab")),B(ce,()=>`:preset (${he()+1}/${Y().length})`),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,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,H(" ")),B(ce,()=>`(${me()+1}/${Y().length})`),V((Q)=>{var Ce=g.text.secondary,Re=g.text.primary;return Ce!==Q.e&&(Q.e=r(ae,"fg",Ce,Q.e)),Re!==Q.t&&(Q.t=r(ce,"fg",Re,Q.t)),Q},{e:void 0,t:void 0}),N}})]}}),null),V((N)=>{var ae=g.bg.base,ce=g.bg.surface,Q=g.text.accent,Ce=g.text.secondary,Re=g.text.primary,Ue=g.bg.base;return ae!==N.e&&(N.e=r(b,"backgroundColor",ae,N.e)),ce!==N.t&&(N.t=r(P,"backgroundColor",ce,N.t)),Q!==N.a&&(N.a=r(O,"fg",Q,N.a)),Ce!==N.o&&(N.o=r(be,"fg",Ce,N.o)),Re!==N.i&&(N.i=r(le,"fg",Re,N.i)),Ue!==N.n&&(N.n=r(He,"backgroundColor",Ue,N.n)),N},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),b})()}var $p=2,_p=30,js,Rn="[]",ri,ii,Hs,si,eg,tg,ng,og,rg,ig,sg;var bf=ge(()=>{te();te();te();te();te();te();te();te();Ye();Qt();qe();te();xt();js=["~/.copse/worktrees/{repo}-{branch}","~/.copse/worktree/{repo}-{branch}","../{repo}-{branch}","~/code/worktrees/{repo}/{branch}"],ri=[Rn,'[".env"]','[".env", ".env.local"]','[".env", ".env.local", ".env.development"]'],ii=[Rn,'["node_modules"]','["node_modules", ".next"]','["node_modules", ".cache"]'],Hs=[Rn,'["bun install"]','["pnpm install"]','["npm install"]','["yarn"]','["pnpm install", "pnpm build"]'],si=[Rn,'["echo removed"]'],eg=[Rn,'["apps/*"]','["apps/*/*"]','["packages/*"]','["apps/*", "packages/*"]'],tg=["apps/*","apps/*/*","packages/*","apps/web","apps/api"],ng=[Rn,'["cd {packagePath} && pnpm install"]','["cd {packagePath} && bun install"]','["cd {packagePath} && npm install"]','["cd {packagePath} && pnpm install && pnpm build"]'],og=["copse","wt"],rg=["hardlink","symlink","copy"],ig=[Rn,'["node_modules"]','["node_modules", ".next"]'],sg=[Rn,'["package.json"]','["package.json", "bun.lockb"]','["package.json", "pnpm-lock.yaml"]']});import{existsSync as Io,readdirSync as lg,rmSync as fg}from"fs";import{basename as Vs,dirname as Ks,join as ug,resolve as Lo}from"path";function dg(e){let t=Bun.env.HOME??"~";return e.replace(/^~(?=\/|$)/,t)}function wf(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yf(e){if(!Io(Ct()))return[];let t=e.find((a)=>a.isMain);if(!t)return[];let n=Ae(),o=Lo(t.path),i=Vs(o);return[n.repos?.find((a)=>Lo(a.path)===o)?.worktreeDir??n.defaults?.worktreeDir].filter((a)=>typeof a==="string").map((a)=>dg(a)).filter((a)=>!Ks(a).includes("{")&&Vs(a).includes("{")).map((a)=>{let u=Vs(a),d=`^${wf(u).replace(/\\\{repo\\\}/g,wf(i)).replace(/\\\{branch\\\}/g,".+")}$`,m=new RegExp(d);return{path:Lo(Ks(a)),matches:(p)=>m.test(p)}})}function Sf(e){let t=new Set;for(let n of e)if(!n.isMain)t.add(Lo(Ks(n.path)));return[...t]}function xf(e,t,n,o){if(!Io(e))return;let i=lg(e,{withFileTypes:!0});for(let s of i){if(!s.isDirectory())continue;if(o&&!o(s.name))continue;let c=Lo(ug(e,s.name));if(!t.has(c))n.add(c)}}function Rf(e){let t=new Set(e.map((i)=>Lo(i.path))),n=new Set,o=new Set;for(let i of yf(e))o.add(i.path),xf(i.path,t,n,i.matches);for(let i of Sf(e)){if(o.has(i))continue;xf(i,t,n)}return[...n]}function hg(e){return yf(e).some((t)=>Io(t.path))||Sf(e).some((t)=>Io(t))}async function mg(){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 pg(){try{return await se.checkVersion(),{name:"Git version",status:"pass",message:`${await mg()??"unknown"} (>= 2.17 required)`}}catch(t){if(t instanceof or)return{name:"Git version",status:"fail",message:t.message};return{name:"Git version",status:"fail",message:`Check failed: ${t.message}`}}}async function gg(){try{let n=(Ae().repos??[]).map((o)=>o.path).filter((o)=>!Io(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 bg(e){let n=e.map((o)=>o.path).filter((o)=>!Io(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 wg(e){try{let n=Rf(e);if(n.length===0)return{name:"Orphaned directories",status:"pass",message:hg(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 xg(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 yg(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 jo(e){let t=await se.list(e).catch(()=>[]),n=[await pg(),await gg(),bg(t),wg(t),xg(t),yg(t)];return{checks:n,healthy:n.every((o)=>o.status==="pass")}}async function Sg(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 Rg(e){let t=[];try{let n=Rf(await se.list(e).catch(()=>[]));for(let o of n)try{fg(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 Cg(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 ci(e){let t=[];return t.push(await Sg(e)),t.push(...await Rg(e)),t.push(...await Cg(e)),t}var Ts=ge(()=>{qe();Ve();Wt()});function Cf(){let e=st(),t=rt(),[n,o]=ue(null),[i,s]=ue(!0),[c,a]=ue(""),[u,d]=ue(!1),[m,p]=ue([]),w=async()=>{s(!0),a(""),p([]);try{let j=await jo();o(j)}catch(j){a(j.message)}s(!1)},A=async()=>{if(n()?.healthy)return;d(!0);try{let j=await ci();p(j);let z=await jo();o(z)}catch(j){a(j.message)}d(!1)};w(),it((j)=>{if(e.activeTab()!=="doctor")return;if(e.showCommandPalette())return;let z=j.name;if(z==="r")w();if(z==="f"&&!i()&&!u()&&!n()?.healthy)A()});let W=()=>t().width,y=()=>t().height,R=()=>Math.max(50,Math.min(80,W()-4)),k=()=>{let j=v()+T()+8+(T()>0?2:0);return Math.max(12,Math.min(j,y()-4))},D=()=>Math.max(R()-4,10),x=(j)=>{if(j==="pass")return"\u2713";if(j==="warn")return"\u26A0";return"\u2717"},S=(j)=>{if(j==="pass")return g.text.success;if(j==="warn")return g.text.warning;return g.text.error},v=()=>n()?.checks.length??0,T=()=>m().length;return X(an,{get width(){return R()},get height(){return k()},get borderColor(){return je(()=>!!n()?.healthy)()?g.text.success:je(()=>!!n())()?g.text.warning:g.border.default},get backgroundColor(){return g.bg.surface},title:" Doctor ",get footer(){return[(()=>{var j=l("box"),z=l("text");return f(j,z),r(j,"height",1),B(z,()=>"\u2500".repeat(Math.max(D(),1))),V((Z)=>{var G=D(),J=g.border.subtle;return G!==Z.e&&(Z.e=r(j,"width",G,Z.e)),J!==Z.t&&(Z.t=r(z,"fg",J,Z.t)),Z},{e:void 0,t:void 0}),j})(),(()=>{var j=l("box"),z=l("text"),Z=l("text");return f(j,z),f(j,Z),r(j,"flexDirection","row"),r(j,"gap",2),f(z,H("r:recheck")),B(j,X(re,{get when(){return!n()?.healthy},get children(){var G=l("text");return f(G,H("f:fix")),V((J)=>r(G,"fg",g.text.secondary,J)),G}}),Z),f(Z,H("Esc:back")),V((G)=>{var J=g.text.secondary,q=g.text.secondary;return J!==G.e&&(G.e=r(z,"fg",J,G.e)),q!==G.t&&(G.t=r(Z,"fg",q,G.t)),G},{e:void 0,t:void 0}),j})()]},get children(){return[X(re,{get when(){return i()},get children(){return X(ko,{label:"Running checks..."})}}),X(re,{get when(){return u()},get children(){var j=l("text");return f(j,H("Running auto-fix...")),V((z)=>r(j,"fg",g.text.accent,z)),j}}),X(re,{get when(){return je(()=>!i()&&!u())()&&!!c()},get children(){var j=l("text"),z=H("Error: ");return f(j,z),B(j,c,null),V((Z)=>r(j,"fg",g.text.error,Z)),j}}),X(re,{get when(){return je(()=>!i()&&!u()&&!c())()&&!!n()},get children(){return[(()=>{var j=l("text");return f(j,H("Health Checks")),V((z)=>r(j,"fg",g.text.accent,z)),j})(),(()=>{var j=l("text");return B(j,()=>"\u2500".repeat(D())),V((z)=>r(j,"fg",g.border.subtle,z)),j})(),X(nt,{get each(){return n().checks},children:(j)=>{return(()=>{var z=l("box"),Z=l("text"),G=l("text"),J=H(":"),q=l("text");return f(z,Z),f(z,G),f(z,q),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),B(Z,()=>x(j.status)),f(G,J),r(G,"x",2),r(G,"y",0),B(G,()=>j.name,J),r(q,"y",0),B(q,()=>j.message),V((Y)=>{var ne=S(j.status),he=g.text.primary,_=j.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(G,"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 j=l("text");return B(j,()=>"\u2500".repeat(D())),V((z)=>r(j,"fg",g.border.subtle,z)),j})(),(()=>{var j=l("text");return B(j,(()=>{var z=je(()=>!!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`})()),V((z)=>r(j,"fg",n().healthy?g.text.success:g.text.warning,z)),j})(),X(re,{get when(){return T()>0},get children(){return[(()=>{var j=l("text");return f(j,H("Fix Results")),V((z)=>r(j,"fg",g.text.accent,z)),j})(),(()=>{var j=l("text");return B(j,()=>"\u2500".repeat(D())),V((z)=>r(j,"fg",g.border.subtle,z)),j})(),X(nt,{get each(){return m()},children:(j)=>{return(()=>{var z=l("box"),Z=l("text"),G=l("text");return f(z,Z),f(z,G),r(z,"width","100%"),r(z,"height",1),r(z,"flexDirection","row"),B(Z,()=>j.success?"\u2713":"\u2717"),r(G,"x",2),r(G,"y",0),B(G,()=>j.action),B(z,X(re,{get when(){return!!j.detail},get children(){var J=l("text"),q=H("("),Y=H(")");return f(J,q),f(J,Y),r(J,"y",0),B(J,()=>j.detail,Y),V((ne)=>{var he=j.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),V((J)=>{var q=j.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(G,"fg",Y,J.t)),J},{e:void 0,t:void 0}),z})()}})]}})]}})]}})}var vf=ge(()=>{te();te();te();te();te();te();te();te();Ye();Qt();Ts();te();xt();Wo();Yr()});function Of(){let e=st(),t=pt(),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 R=w.get(y.repoName);if(R)R.push(y);else w.set(y.repoName,[y])}let A=0,W=!0;for(let[y,R]of w){if(!W)p.push({type:"separator"});W=!1,p.push({type:"header",repoName:y});for(let k of R)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},d=(m,p)=>{let w=m.branch??"(detached)",A=Math.max(8,Us-(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),B(m,X(re,{get when(){return t.loading()},get children(){var p=l("text");return f(p,H("Loading...")),V((w)=>r(p,"fg",g.text.secondary,w)),p}}),null),B(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"),R=l("text"),k=l("b");return f(y,R),r(y,"width","100%"),r(y,"height",1),f(R,k),B(k,()=>p.repoName),V((D)=>r(R,"fg",g.text.accent,D)),y})();if(p.type==="separator")return(()=>{var y=l("box"),R=l("text");return f(y,R),r(y,"width","100%"),r(y,"height",1),f(R,H("\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((k)=>r(R,"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"),R=l("text"),k=l("text");return f(y,R),f(y,k),r(y,"width","100%"),r(y,"height",1),r(y,"paddingX",1),r(y,"onMouseDown",()=>i(p.flatIdx)),r(R,"x",0),r(R,"y",0),B(R,()=>a(w)),r(k,"x",2),r(k,"y",0),B(k,()=>d(w,!1)),B(y,X(re,{get when(){return W()},get children(){var D=l("text");return f(D,H("\u2713")),r(D,"x",23),r(D,"y",0),V((x)=>r(D,"fg",g.text.accent,x)),D}}),null),B(y,X(re,{get when(){return!!zt(w.path)},get children(){var D=l("text");return f(D,H("S")),r(D,"y",0),V((x)=>{var S=Us-(W()?3:1),v=g.text.accent;return S!==x.e&&(x.e=r(D,"x",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),D}}),null),B(y,X(re,{get when(){return Kn(w.path)},get children(){var D=l("text");return f(D,H("P")),r(D,"y",0),V((x)=>{var S=Us-(W()?5:3)+(zt(w.path)?0:2),v=g.text.warning;return S!==x.e&&(x.e=r(D,"x",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),D}}),null),V((D)=>{var x=A()?g.select.focusedBg:W()?g.bg.elevated:g.bg.surface,S=u(w),v=A()?g.tab.active:g.text.primary;return x!==D.e&&(D.e=r(y,"backgroundColor",x,D.e)),S!==D.t&&(D.t=r(R,"fg",S,D.t)),v!==D.a&&(D.a=r(k,"fg",v,D.a)),D},{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),B(w,()=>`Selected: ${c()}`),V((A)=>r(w,"fg",g.text.accent,A)),p}})]}}),null),V((p)=>r(m,"backgroundColor",g.bg.surface,p)),m})()}var Us=24;var kf=ge(()=>{te();te();te();te();te();te();te();Ye();Qt();pn();te();xt();Mo();jn()});import{decodePasteBytes as vg}from"@opentui/core";function Ef(){let e=st(),t=pt(),n=rt(),[o,i]=ue(""),[s,c]=ue(0);dn(()=>{e.setInputFocused(!0)}),ct(()=>{e.setInputFocused(!1)});let a=()=>{let k=t.worktrees()??[],D=e.selectedWorktreePath();if(D){let x=k.find((S)=>S.path===D);if(x)return x}return k[e.selectedWorktreeIndex()]},u=()=>{let k=process.env.VISUAL||process.env.EDITOR;if(k)return k;let D=["code","cursor","vim","nvim","zed","subl","idea","webstorm"];for(let x of D)try{if(Bun.spawnSync(["which",x],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return x}catch{}return null},d=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 D=u();if(!D)return;e.setShowCommandPalette(!1),Bun.spawn([D,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)}},...Lt.map((k)=>({id:`theme:${k}`,label:`Theme: ${Tr[k]}`,description:"Switch color theme",action:()=>{Co(k);try{let D=Ct(),x={...Ae()};x.theme=k,oo(D,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 d();return d().filter((D)=>D.label.toLowerCase().includes(k)||D.description.toLowerCase().includes(k))});it((k)=>{if(!e.showCommandPalette())return;let D=k.name;if(D==="escape"){e.setInputFocused(!1),e.setShowCommandPalette(!1),i(""),c(0);return}if(D==="return"||D==="enter"){let x=m()[s()];if(x)x.action();i(""),c(0);return}if(D==="down"||D==="j"){c((x)=>Math.min(x+1,m().length-1));return}if(D==="up"||D==="k"){c((x)=>Math.max(x-1,0));return}}),So((k)=>{if(!e.inputFocused())return;let D=vg(k.bytes).replace(/\r?\n/g,"");if(!D)return;i((x)=>x+D),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),R=()=>A()-8;return X(an,{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"),D=l("text");return f(k,D),r(k,"height",1),B(D,()=>"\u2500".repeat(Math.max(W(),1))),V((x)=>{var S=W(),v=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box"),D=l("text"),x=l("text"),S=l("text");return f(k,D),f(k,x),f(k,S),r(k,"flexDirection","row"),r(k,"gap",2),f(D,H("\u2191\u2193:navigate")),f(x,H("Enter:run")),f(S,H("Esc:close")),V((v)=>{var T=g.text.secondary,j=g.text.secondary,z=g.text.secondary;return T!==v.e&&(v.e=r(D,"fg",T,v.e)),j!==v.t&&(v.t=r(x,"fg",j,v.t)),z!==v.a&&(v.a=r(S,"fg",z,v.a)),v},{e:void 0,t:void 0,a:void 0}),k})()]},get children(){return[(()=>{var k=l("box"),D=l("text"),x=l("input");return f(k,D),f(k,x),r(k,"height",1),r(k,"flexDirection","row"),f(D,H("> ")),r(x,"onInput",p),r(x,"placeholder","Search commands..."),r(x,"focused",!0),V((S)=>{var v=W(),T=g.bg.elevated,j=g.text.accent,z=o(),Z=y(),G=g.bg.elevated,J=g.text.primary,q=g.text.secondary,Y=g.text.accent,ne=g.bg.elevated;return v!==S.e&&(S.e=r(k,"width",v,S.e)),T!==S.t&&(S.t=r(k,"backgroundColor",T,S.t)),j!==S.a&&(S.a=r(D,"fg",j,S.a)),z!==S.o&&(S.o=r(x,"value",z,S.o)),Z!==S.i&&(S.i=r(x,"width",Z,S.i)),G!==S.n&&(S.n=r(x,"backgroundColor",G,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"),D=l("text");return f(k,D),r(k,"height",1),B(D,()=>"\u2500".repeat(Math.max(W(),1))),V((x)=>{var S=W(),v=g.border.subtle;return S!==x.e&&(x.e=r(k,"width",S,x.e)),v!==x.t&&(x.t=r(D,"fg",v,x.t)),x},{e:void 0,t:void 0}),k})(),(()=>{var k=l("box");return r(k,"flexDirection","column"),B(k,X(nt,{get each(){return m().slice(0,R())},children:(D,x)=>{let S=()=>x()===s();return(()=>{var v=l("box"),T=l("text"),j=l("text");return f(v,T),f(v,j),r(v,"height",1),r(v,"onMouseDown",()=>{c(x()),D.action()}),r(T,"x",2),r(T,"y",0),B(T,()=>D.label),r(j,"y",0),B(j,()=>D.description),V((z)=>{var Z=W(),G=S()?g.select.focusedBg:g.bg.surface,J=S()?g.tab.active:g.text.primary,q=Math.max(25,D.label.length+4),Y=g.text.secondary;return Z!==z.e&&(z.e=r(v,"width",Z,z.e)),G!==z.t&&(z.t=r(v,"backgroundColor",G,z.t)),J!==z.a&&(z.a=r(T,"fg",J,z.a)),q!==z.o&&(z.o=r(j,"x",q,z.o)),Y!==z.i&&(z.i=r(j,"fg",Y,z.i)),z},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),v})()}}),null),B(k,X(re,{get when(){return m().length===0},get children(){var D=l("box"),x=l("text");return f(D,x),r(D,"height",1),f(x,H("No commands found")),r(x,"x",2),r(x,"y",0),V((S)=>r(x,"fg",g.text.secondary,S)),D}}),null),V((D)=>{var x=W(),S=R(),v=g.bg.surface;return x!==D.e&&(D.e=r(k,"width",x,D.e)),S!==D.t&&(D.t=r(k,"height",S,D.t)),v!==D.a&&(D.a=r(k,"backgroundColor",v,D.a)),D},{e:void 0,t:void 0,a:void 0}),k})()]}})}var Df=ge(()=>{te();te();te();te();te();te();te();Ye();Qt();pn();te();xt();Wo();qe()});import{join as Og}from"path";import{existsSync as kg}from"fs";function Ff(e){let t=st(),n=sn(),[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:Gs}]}),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(!kg(m)){n.addToast({message:`Path does not exist: ${m}`,type:"error"}),a();return}Bun.spawn([p,m],{stdout:"inherit",stderr:"inherit"}),a()},d=()=>{let m=s(),p=c();if(!m||p.length===0)return;let w=p[o()];if(!w)return;if(w.value===Gs)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"){d();return}}),X(re,{get when(){return s()},get children(){return X(an,{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,H("Multiple focus paths set. Pick one to open:")),V((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"),B(A,()=>p()===o()?"\u276F ":" ",null),B(A,()=>m.label,null),V((W)=>r(A,"fg",p()===o()?g.text.accent:m.value===Gs?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,H("j/k:nav enter:open esc:cancel")),V((w)=>r(p,"fg",g.text.secondary,w)),m})()]}})}})}var Gs="__root__";var Pf=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Qt();co();xt();Wo()});function Eg(e){if(e==="success")return"\u2713";if(e==="warning")return"\u26A0";if(e==="error")return"\u2717";return"\u2139"}function Dg(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 Mf(){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"),B(o,X(nt,{get each(){return sn().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),B(a,()=>`${Eg(i.type)} ${i.message}`),V((u)=>{var d=s(),m=t(),p=g.bg.elevated,w=Dg(i.type);return d!==u.e&&(u.e=r(c,"y",d,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})()})),V((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();co();xt()});var If={};Ne(If,{launchTUI:()=>Ag});import{existsSync as Fg}from"fs";import{resolve as Wf}from"path";function Lf(){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 Mg(e){let t=st(),n=pt(),o=sn(),i=mn(),[s,c]=ue(!1),a=rt(),u=()=>{let R=n.worktrees()??[],k=t.selectedWorktreePath();if(k){let D=R.find((x)=>x.path===k);if(D)return D}return R[t.selectedWorktreeIndex()]};At(()=>{let R=n.worktrees()??[],k=R.map((v)=>v.path);if(t.pruneSelectedWorktrees(k),R.length===0){if(t.selectedWorktreeIndex()!==0)t.setSelectedWorktreeIndex(0);if(t.selectedWorktreePath()!==null)t.setSelectedWorktreePath(null);return}let D=t.selectedWorktreePath();if(D){let v=R.findIndex((T)=>T.path===D);if(v>=0){if(v!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(v);return}}let x=Math.min(t.selectedWorktreeIndex(),R.length-1),S=R[x]?.path??null;if(x!==t.selectedWorktreeIndex())t.setSelectedWorktreeIndex(x);if(S!==t.selectedWorktreePath())t.setSelectedWorktreePath(S)}),it((R)=>{let k=R.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(R.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 D=u();if(D&&!D.isMain)t.setShowRemove(!0);return}if(k==="o"){let D=u();if(!D)return;let x=Jr(D.path);if(x.kind==="multiple"){t.setFocusPickerData({worktreePath:D.path,focusPaths:x.focusPaths});return}let S=process.env.VISUAL||process.env.EDITOR||Lf();if(!S){o.addToast({message:"No editor detected. Set $VISUAL or $EDITOR.",type:"error"});return}if(!Fg(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((D)=>!D)});let d=()=>a().width,m=()=>a().height,p=()=>e.repoPath.split("/").pop()??"",w=()=>{let R=n.repoNames();if(R.length<=1)return p();return`${R.length} repos`},A=()=>{let R=n.worktrees()??[];return`${p()} \xB7 ${R.length} worktrees`},W=()=>{return` Worktrees (${(n.worktrees()??[]).length}) `},y=()=>d()-Pg-1;return(()=>{var R=l("box"),k=l("box"),D=l("text"),x=l("text"),S=l("box"),v=l("box"),T=l("box"),j=l("text"),z=l("b"),Z=l("box"),G=l("box"),J=l("toaster"),q=l("box"),Y=l("text"),ne=l("box"),he=l("text");return f(R,k),f(R,S),f(R,J),f(R,q),f(R,ne),r(R,"flexDirection","column"),f(k,D),f(k,x),r(k,"height",1),f(D,H("\uD83C\uDF33 copse")),r(D,"x",1),r(D,"y",0),r(x,"y",0),B(x,w),f(S,v),f(S,Z),f(S,G),r(S,"flexGrow",1),r(S,"flexDirection","row"),f(v,T),r(v,"width",28),r(v,"flexShrink",0),r(v,"flexDirection","column"),f(T,j),r(T,"height",1),r(T,"paddingX",1),f(j,z),B(z,W),B(v,X(Of,{}),null),r(Z,"width",1),r(G,"flexGrow",1),B(G,X(re,{get when(){return je(()=>t.activeTab()!=="config"&&!t.showRemove())()&&!t.showBulkActions()},get children(){return X(Dl,{})}}),null),B(G,X(re,{get when(){return je(()=>t.activeTab()==="list")()&&t.showBulkActions()},get children(){return X(mf,{get w(){return y()},get h(){return m()-3}})}}),null),B(G,X(re,{get when(){return t.activeTab()==="config"},get children(){return X(gf,{})}}),null),B(R,X(Mf,{}),J),r(J,"position","bottom-right"),f(q,Y),r(q,"height",1),r(Y,"x",0),r(Y,"y",0),B(Y,()=>"\u2500".repeat(d())),f(ne,he),r(ne,"height",1),f(he,H("d:delete a:add o:open r:refresh ^P:cmd h:health q:quit")),r(he,"x",1),r(he,"y",0),B(R,X(re,{get when(){return je(()=>!!s())()&&!t.showCommandPalette()},get children(){var _=l("box"),me=l("box"),ke=l("text"),E=l("text"),M=l("box"),U=l("text"),K=l("text"),I=l("box"),ee=l("text"),de=l("text"),ie=l("box"),we=l("text"),ve=l("text"),pe=l("box"),Ee=l("text"),De=l("text"),We=l("box"),L=l("box"),h=l("text"),b=l("text"),P=l("box"),F=l("text"),O=l("text"),$=l("box"),oe=l("box"),be=l("text");return f(_,me),f(_,M),f(_,I),f(_,ie),f(_,pe),f(_,We),f(_,L),f(_,P),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,H("q")),r(ke,"x",1),f(E,H("Quit")),r(E,"x",8),f(M,U),f(M,K),r(M,"height",1),f(U,H("j/k")),r(U,"x",1),f(K,H("Navigate list")),r(K,"x",8),f(I,ee),f(I,de),r(I,"height",1),f(ee,H("a")),r(ee,"x",1),f(de,H("Add worktree")),r(de,"x",8),f(ie,we),f(ie,ve),r(ie,"height",1),f(we,H("d")),r(we,"x",1),f(ve,H("Delete worktree")),r(ve,"x",8),f(pe,Ee),f(pe,De),r(pe,"height",1),f(Ee,H("r")),r(Ee,"x",1),f(De,H("Refresh list")),r(De,"x",8),r(We,"height",1),f(L,h),f(L,b),r(L,"height",1),f(h,H("Ctrl+P")),r(h,"x",1),f(b,H("Command palette")),r(b,"x",8),f(P,F),f(P,O),r(P,"height",1),f(F,H("?")),r(F,"x",1),f(O,H("Toggle help")),r(O,"x",8),r($,"height",1),f(oe,be),r(oe,"height",1),f(be,H("Press ? to close")),r(be,"x",1),V((le)=>{var He=Math.max(0,Math.floor((d()-Math.max(40,Math.min(60,d()-4)))/2)),N=Math.max(0,Math.floor((m()-14)/2)),ae=Math.max(40,Math.min(60,d()-4)),ce=g.border.active,Q=g.bg.elevated,Ce=g.text.secondary,Re=g.text.primary,Ue=g.text.secondary,Te=g.text.primary,Qe=g.text.secondary,dt=g.text.primary,Me=g.text.secondary,Be=g.text.primary,Cn=g.text.secondary,Bo=g.text.primary,Vo=g.text.secondary,Ko=g.text.primary,To=g.text.secondary,Zs=g.text.primary,Qs=g.text.accent;return He!==le.e&&(le.e=r(_,"x",He,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)),Ce!==le.n&&(le.n=r(ke,"fg",Ce,le.n)),Re!==le.s&&(le.s=r(E,"fg",Re,le.s)),Ue!==le.h&&(le.h=r(U,"fg",Ue,le.h)),Te!==le.r&&(le.r=r(K,"fg",Te,le.r)),Qe!==le.d&&(le.d=r(ee,"fg",Qe,le.d)),dt!==le.l&&(le.l=r(de,"fg",dt,le.l)),Me!==le.u&&(le.u=r(we,"fg",Me,le.u)),Be!==le.c&&(le.c=r(ve,"fg",Be,le.c)),Cn!==le.w&&(le.w=r(Ee,"fg",Cn,le.w)),Bo!==le.m&&(le.m=r(De,"fg",Bo,le.m)),Vo!==le.f&&(le.f=r(h,"fg",Vo,le.f)),Ko!==le.y&&(le.y=r(b,"fg",Ko,le.y)),To!==le.g&&(le.g=r(F,"fg",To,le.g)),Zs!==le.p&&(le.p=r(O,"fg",Zs,le.p)),Qs!==le.b&&(le.b=r(be,"fg",Qs,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),B(R,X(re,{get when(){return t.activeTab()==="add"},get children(){return X(ff,{})}}),null),B(R,X(re,{get when(){return t.activeTab()==="doctor"},get children(){return X(Cf,{})}}),null),B(R,X(re,{get when(){return t.showRemove()},get children(){return X(df,{})}}),null),B(R,X(re,{get when(){return t.showCommandPalette()},get children(){return X(Ef,{})}}),null),B(R,X(Ff,{detectEditor:()=>process.env.VISUAL||process.env.EDITOR||Lf()}),null),V((_)=>{var me=d(),ke=m(),E=g.bg.base,M=g.bg.overlay,U=g.text.accent,K=d()-w().length-2,I=g.text.secondary,ee=g.bg.surface,de=g.text.accent,ie=g.bg.base,we=g.bg.overlay,ve=g.border.subtle,pe=g.bg.overlay,Ee=g.text.secondary;return me!==_.e&&(_.e=r(R,"width",me,_.e)),ke!==_.t&&(_.t=r(R,"height",ke,_.t)),E!==_.a&&(_.a=r(R,"backgroundColor",E,_.a)),M!==_.o&&(_.o=r(k,"backgroundColor",M,_.o)),U!==_.i&&(_.i=r(D,"fg",U,_.i)),K!==_.n&&(_.n=r(x,"x",K,_.n)),I!==_.s&&(_.s=r(x,"fg",I,_.s)),ee!==_.h&&(_.h=r(v,"backgroundColor",ee,_.h)),de!==_.r&&(_.r=r(j,"fg",de,_.r)),ie!==_.d&&(_.d=r(G,"backgroundColor",ie,_.d)),we!==_.l&&(_.l=r(q,"backgroundColor",we,_.l)),ve!==_.u&&(_.u=r(Y,"fg",ve,_.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}),R})()}async function Ag(){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=Pn(c),typeof c.theme==="string")n=c.theme}catch{}let o=e??t[0]??process.cwd(),i=[o],s=new Set([Wf(o)]);for(let c of t){let a=Wf(c);if(!s.has(a))s.add(a),i.push(c)}if(n&&Lt.includes(n))Co(n);await rl(()=>X(pl,{repoPath:o,repoPaths:i,get children(){return X(xl,{repoPaths:i,get children(){return X(vl,{get children(){return X(Mg,{repoPath:o})}})}})}}),{exitOnCtrlC:!0,useMouse:!0})}var Pg=28;var jf=ge(()=>{te();te();te();te();te();te();te();te();Ye();te();Qt();pn();Ve();Fl();uf();hf();pf();bf();vf();kf();xt();Df();Pf();co();Af();co();qe();rn()});import*as Hf from"readline";async function Tn(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 Ge(){return se.getMainRepoPath().catch(()=>process.cwd())}function Yt(e,t){let n=e.find((o)=>o.branch===t||o.path===t||o.path.endsWith("/"+t));if(!n)console.error(`Error: no worktree found for '${t}'`),process.exit(1);return n}function et(e){if(e instanceof bt)console.error(`Git error: ${e.message}`);else console.error(`Error: ${e.message}`);process.exit(1)}var Rt=ge(()=>{Ve();Wt()});var Bf={};Ne(Bf,{default:()=>Hg});import{basename as Wg,resolve as Lg}from"path";import{existsSync as Ig}from"fs";var jg,Hg;var Vf=ge(()=>{Ve();Wt();qe();Rt();Po();yn();jg={command:"add [branch] [path]",describe:"Create a new worktree for a branch",builder:(e)=>e.positional("branch",{type:"string",describe:"Branch name"}).positional("path",{type:"string",describe:"Worktree directory path"}).option("create",{type:"boolean",alias:"c",describe:"Optional compatibility flag; missing branches are created automatically"}).option("base",{type:"string",alias:"b",describe:"Base branch/commit for new branch"}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("template",{type:"string",alias:"t",describe:"Use a named template from config"}).option("pr",{type:"number",describe:"Create worktree from a GitHub PR number (requires gh CLI)"}).option("session",{type:"boolean",alias:"s",describe:"Create a tmux session for this worktree"}).option("layout",{type:"string",describe:"Session layout name from config"}).option("fetch",{type:"boolean",default:!0,describe:"Auto-fetch when base is a remote ref (e.g. origin/main). Use --no-fetch to skip"}),handler:async(e)=>{let{branch:t,pr:n}=e,o=await Ge(),i=Wg(o);if(!t&&!n)console.error("Error: specify a branch or use --pr <number>."),process.exit(1);if(n)try{let R=Bun.spawn(["gh","pr","view",String(n),"--json","headRefName","--jq",".headRefName"],{cwd:o,stdout:"pipe",stderr:"pipe"}),[k,D,x]=await Promise.all([new Response(R.stdout).text(),new Response(R.stderr).text(),R.exited]);if(x!==0)console.error(`Error: failed to resolve PR #${n}: ${D.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=en(c,o),u=e.path??a.worktreeDir,d=vr(u,{repo:i,branch:s}),m=Lg(o,d);console.log(`Creating worktree for branch '${t}'...`),console.log(` Target: ${m}`);let w=(await se.list(o)).find((R)=>R.branch===t);if(w)console.error(`Error: branch '${t}' is already checked out in ${w.path}`),process.exit(1);if(Ig(m))console.error(`Error: directory already exists: ${m}`),process.exit(1);let A=e.focus,W=A?A.flatMap((R)=>R.split(/[,\s]+/)).map((R)=>R.trim()).filter(Boolean):[],y=e.template;if(y)console.log(`Using template '${y}'`);try{let R=await sr(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,D)=>{if(k===Se.fetch)console.log(` Fetching${D?` ${D}`:""}...`);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,D)=>{if(k===Se.fetch)console.log(" \u2713 Fetched");else if(k===Se.worktree)console.log(" \u2713 Worktree created");else if(k===Se.upstream)if(D==="no remote branch")console.log(" \u2139 No remote branch found \u2014 upstream tracking skipped");else console.log(` \u2713 Upstream tracking set ${D??""}`);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&&D)console.log(` \u2713 Focus set: ${D}`);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: ${D??""}`);else if(k===Se.prMeta)console.log(` \u2713 PR #${n} metadata saved`)},onStepError:(k,D)=>{if(k===Se.fetch)console.log(` \u26A0 ${D}`);else if(k===Se.upstream)console.warn(` \u26A0 Could not set upstream tracking: ${D}`);else if(k===Se.session)console.log(` \u26A0 Session create failed: ${D}`);else console.warn(` \u26A0 ${k}: ${D}`)},onHookOutput:(k)=>console.log(` ${k}`)});if(R.invalidFocusPaths.length>0)console.log(` \u26A0 Focus paths not found (skipped): ${R.invalidFocusPaths.join(", ")}`);console.log(`
|
|
24
|
+
Worktree ready: ${m}`),process.exit(0)}catch(R){if(R instanceof Fo)console.error(`
|
|
25
|
+
Setup failed, rolled back.`),console.error(`Error: hook timed out: ${R.command}`);else if(R instanceof Do){if(console.error(`
|
|
26
|
+
Setup failed, rolled back.`),console.error(`Error: hook failed (exit ${R.exitCode}): ${R.command}`),R.stderr)console.error(R.stderr)}else if(R instanceof bt)console.error(`Error creating worktree: ${R.stderr||R.message}`);else console.error(`Error: ${R.message}`);process.exit(1)}}},Hg=jg});var Kf={};Ne(Kf,{default:()=>Kg});import{relative as Bg,resolve as Js}from"path";var Vg,Kg;var Tf=ge(()=>{Ve();Wt();qe();rn();Rt();Vg={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 Ge(),u=Pn(c),d=new Set([Js(a)]),m=[a];for(let p of u){let w=Js(p);if(!d.has(w))d.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=Js(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:Bg(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)),d=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(d)} ${"Focus".padEnd(m)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(d)} ${"-".repeat(m)}`);for(let p of s)console.log(`${p.repo.padEnd(c)} ${p.branch.padEnd(a)} ${p.path.padEnd(u)} ${p.status.padEnd(d)} ${p.focus.padEnd(m)}`)}else{let c=Math.max(6,...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)),d=Math.max(5,...s.map((m)=>m.focus.length));console.log(`${"Branch".padEnd(c)} ${"Path".padEnd(a)} ${"Status".padEnd(u)} ${"Focus".padEnd(d)}`),console.log(`${"-".repeat(c)} ${"-".repeat(a)} ${"-".repeat(u)} ${"-".repeat(d)}`);for(let m of s)console.log(`${m.branch.padEnd(c)} ${m.path.padEnd(a)} ${m.status.padEnd(u)} ${m.focus.padEnd(d)}`)}process.exit(0)}catch(t){if(t instanceof bt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}},Kg=Vg});var Gf={};Ne(Gf,{default:()=>Ug});import{basename as Uf}from"path";var Tg,Ug;var Jf=ge(()=>{Ve();qe();Rt();yn();Tg={command:"remove <branch-or-path>",aliases:["rm"],describe:"Remove a worktree",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}).option("force",{type:"boolean",alias:"f",describe:"Force removal even with uncommitted changes"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation prompt"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.force,o=!!e.yes;try{let i=await Ge(),s=await se.list(i),c=Yt(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 Tn(`Remove worktree '${c.branch??Uf(c.path)}' at ${c.path}? [y/N] `))console.log("Cancelled."),process.exit(0)}let u=Ae(),d=Uf(i);await lo(u,{worktreePath:c.path,mainRepoPath:i,repoName:d,branch:c.branch??t,force:n},{onStepStart:(m)=>{if(m===Ie.postRemove)console.log("Running postRemove hooks...");else if(m===Ie.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(m,p)=>{if(m===Ie.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(m===Ie.session&&p==="killed")console.log(" \u2713 Session killed")},onStepError:(m,p)=>{if(m===Ie.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)}}},Ug=Tg});var zf={};Ne(zf,{default:()=>zg});import{basename as Gg}from"path";var Jg,zg;var qf=ge(()=>{Ve();Vn();qe();jn();Rt();Jg={command:"switch <branch-or-path>",aliases:["sw"],describe:"Switch to a worktree directory (outputs cd command for shell eval)",builder:(e)=>e.positional("branch-or-path",{type:"string",demandOption:!0}),handler:async(e)=>{let t=e["branch-or-path"];try{let n=await Ge(),o=await se.list(n),i=Yt(o,t);try{Xt(n,{timestamp:new Date().toISOString(),event:"switch",branch:i.branch??t,path:i.path})}catch{}let s=Ae(),c=Mn(s);if(c.enabled&&xs()){let a=i.branch??Gg(i.path),u=In(a,c.prefix);if(await bn(u))try{await zr(u),process.exit(0)}catch{}}console.log(`cd ${JSON.stringify(i.path)}`),process.exit(0)}catch(n){et(n)}}},zg=Jg});async function Xf(e,t,n,o){let i=e.filter((m)=>!m.isMain),s=i.filter((m)=>Kn(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 Nt(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 Nt(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 d=t.maxWorktrees?i.length>t.maxWorktrees:!1;return{merged:a,stale:u,pinProtected:s,overLimit:d,totalCount:i.length,maxWorktrees:t.maxWorktrees??null}}function Yf(e){let t=[];if(e.pinProtected.length>0){t.push(`Pin-protected worktrees (${e.pinProtected.length}):`);for(let n of e.pinProtected)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.merged.length>0){t.push(`Merged worktrees (${e.merged.length}):`);for(let n of e.merged)t.push(` ${n.branch??"(detached)"} \u2192 ${n.path}`)}if(e.stale.length>0){t.push(`Stale worktrees (${e.stale.length}):`);for(let n of e.stale){let o=n.daysSinceActivity<0?"unknown":`${n.daysSinceActivity} days`;t.push(` ${n.worktree.branch??"(detached)"} \u2014 inactive ${o}`)}}if(e.overLimit)t.push(`Worktree limit exceeded: ${e.totalCount}/${e.maxWorktrees}`);if(t.length===0)t.push("All worktrees are healthy.");return t.join(`
|
|
27
|
+
`)}var Zf=ge(()=>{Ve();Mo()});var Qf={};Ne(Qf,{default:()=>Xg});var qg,Xg;var Nf=ge(()=>{Ve();qe();Zf();Mo();Rt();qg={command:"clean",describe:"Remove merged worktrees and prune stale entries",builder:(e)=>e.option("dry-run",{type:"boolean",alias:"n",describe:"Show what would be removed"}).option("yes",{type:"boolean",alias:"y",describe:"Skip confirmation"}).option("stale",{type:"boolean",describe:"Also show stale worktrees (based on lifecycle config)"}),handler:async(e)=>{let t=!!(e["dry-run"]||e.n),n=!!e.yes;try{let o=await Ge(),i=await se.list(o),c=(i.find((m)=>m.isMain)??i[0])?.branch??"main",a=i.filter((m)=>{if(m.isMain)return!1;if(Kn(m.path))return console.log(` Skipping (pinned): ${m.branch}`),!1;if(!m.branch)return!1;return!0}),u=await Nt(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}}),d=[];for(let{wt:m,merged:p,dirty:w}of u){if(!p)continue;if(w){console.log(` Skipping (dirty): ${m.branch}`);continue}d.push(m)}if(d.length===0)console.log("No merged worktrees to clean.");else{console.log(t?"Would remove:":"To remove:");for(let m of d)console.log(` ${m.branch} (${m.path})`)}if(!t&&d.length>0){if(!n){if(!await Tn(`
|
|
28
|
+
Remove ${d.length} worktree(s)? [y/N] `))console.log("Cancelled."),process.exit(0)}for(let m of d)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 Xf(i,m.lifecycle,c,o);console.log(),console.log(Yf(p))}else console.log(`
|
|
29
|
+
No lifecycle config found. Add 'lifecycle' to your config to enable stale detection.`)}process.exit(0)}catch(o){et(o)}}},Xg=qg});import{existsSync as Yg,mkdirSync as Zg,readFileSync as Qg,writeFileSync as Ng}from"fs";import{dirname as $g}from"path";function $f(){let e=Ct();try{return Ae(e)}catch{if(!Yg(e))throw Error("Failed to load config");let t=Qg(e,"utf-8");return JSON.parse(t)}}function _f(e){let t=Ct(),n=$g(t);Zg(n,{recursive:!0,mode:448});let o=`${JSON.stringify(e,null,2)}
|
|
30
|
+
`;try{oo(t,o)}catch{Ng(t,o,{encoding:"utf-8",mode:384})}}function zs(e){return Object.keys(e.profiles??{})}function eu(e){let t=$f();_f({...t,activeProfile:e})}function tu(e){return e.activeProfile??null}function nu(e){let t=$f(),n={...t.profiles??{}};delete n[e],_f({...t,profiles:n,activeProfile:t.activeProfile===e?void 0:t.activeProfile})}var ou=ge(()=>{qe()});var ru={};Ne(ru,{default:()=>nb});import{spawnSync as _g}from"child_process";import{readFileSync as eb}from"fs";var tb,nb;var iu=ge(()=>{qe();ou();tb={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=Tt();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";Tt();let o=_g(n,[t],{stdio:"inherit"});process.exit(o.status??0)}if(e.validate)try{let n=eb(t,"utf-8"),o;try{o=JSON.parse(n)}catch{console.error(`Error: invalid JSON in config file: ${t}`),process.exit(1)}let i=no(o);if(i.length===0)console.log(`\u2713 Config is valid: ${t}`),process.exit(0);else{console.error(`Config validation failed (${i.length} error(s)):`);for(let 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=zs(n),i=tu(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(!zs(n).includes(o))console.error(`Error: profile '${o}' does not exist.`),process.exit(1);eu(o)}catch(n){console.error(`Error loading config: ${n.message}`),process.exit(1)}process.exit(0)}if(e.profile&&e.delete)nu(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)}},nb=tb});var su={};Ne(su,{default:()=>rb});var ob,rb;var cu=ge(()=>{Ts();ob={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 jo(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
|
|
31
|
+
`);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(`
|
|
32
|
+
All checks passed.`);else{let s=[];if(i>0)s.push(`${i} error(s)`);if(o>0)s.push(`${o} warning(s)`);console.log(`
|
|
32
33
|
${s.join(", ")} found.`)}if(e.fix){if(n.healthy)console.log(`
|
|
33
34
|
Nothing to fix.`),process.exit(0);console.log(`
|
|
34
35
|
Running auto-fix...
|
|
35
|
-
`);let s=await
|
|
36
|
-
Fixed ${a} issue(s)${
|
|
36
|
+
`);let s=await ci(t);if(s.length===0)console.log("No auto-fixable issues found.");else{for(let d of s){let m=d.success?"\u2713":"\u2717",p=d.detail?` (${d.detail})`:"";console.log(`${m} ${d.action}${p}`)}let a=s.filter((d)=>d.success).length,u=s.filter((d)=>!d.success).length;console.log(`
|
|
37
|
+
Fixed ${a} issue(s)${u>0?`, ${u} failed`:""}.`)}let c=await jo(t);if(c.healthy)console.log("All checks now pass.");process.exit(c.healthy?0:1)}process.exit(n.healthy?0:1)}},rb=ob});var fu={};Ne(fu,{default:()=>ub});function ib(e){if(e?.includes("fish"))return"fish";if(e?.includes("bash"))return"bash";return"zsh"}function au(){return`copse() {
|
|
37
38
|
if [ "$1" = "switch" ] || [ "$1" = "sw" ]; then
|
|
38
39
|
local output
|
|
39
40
|
output=$(command copse "$@" 2>/dev/null)
|
|
@@ -51,7 +52,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await Fr(t);if(c.healthy)c
|
|
|
51
52
|
else
|
|
52
53
|
command copse "$@"
|
|
53
54
|
fi
|
|
54
|
-
}`}function
|
|
55
|
+
}`}function lu(){return`function copse
|
|
55
56
|
if test "$argv[1]" = "switch"; or test "$argv[1]" = "sw"
|
|
56
57
|
set output (command copse $argv 2>/dev/null)
|
|
57
58
|
set status_code $status
|
|
@@ -68,7 +69,7 @@ Fixed ${a} issue(s)${d>0?`, ${d} failed`:""}.`)}let c=await Fr(t);if(c.healthy)c
|
|
|
68
69
|
else
|
|
69
70
|
command copse $argv
|
|
70
71
|
end
|
|
71
|
-
end`}function
|
|
72
|
+
end`}function sb(){return`_copse_completions() {
|
|
72
73
|
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
73
74
|
local prev="\${COMP_WORDS[COMP_CWORD-1]}"
|
|
74
75
|
local commands="add list remove switch clean config doctor pin log archive rename clone import exec diff open status shell-init"
|
|
@@ -92,7 +93,7 @@ end`}function kg(){return`_copse_completions() {
|
|
|
92
93
|
;;
|
|
93
94
|
esac
|
|
94
95
|
}
|
|
95
|
-
complete -F _copse_completions copse`}function
|
|
96
|
+
complete -F _copse_completions copse`}function cb(){return`_copse() {
|
|
96
97
|
local -a commands
|
|
97
98
|
commands=(
|
|
98
99
|
'add:Add a new worktree'
|
|
@@ -129,7 +130,7 @@ complete -F _copse_completions copse`}function Og(){return`_copse() {
|
|
|
129
130
|
esac
|
|
130
131
|
fi
|
|
131
132
|
}
|
|
132
|
-
compdef _copse copse`}function
|
|
133
|
+
compdef _copse copse`}function ab(){return`complete -c copse -f
|
|
133
134
|
complete -c copse -n '__fish_use_subcommand' -a 'add' -d 'Add a new worktree'
|
|
134
135
|
complete -c copse -n '__fish_use_subcommand' -a 'list' -d 'List worktrees'
|
|
135
136
|
complete -c copse -n '__fish_use_subcommand' -a 'remove' -d 'Remove a worktree'
|
|
@@ -147,29 +148,28 @@ complete -c copse -n '__fish_use_subcommand' -a 'exec' -d 'Run command'
|
|
|
147
148
|
complete -c copse -n '__fish_use_subcommand' -a 'diff' -d 'Show diff'
|
|
148
149
|
complete -c copse -n '__fish_use_subcommand' -a 'open' -d 'Open in editor'
|
|
149
150
|
complete -c copse -n '__fish_use_subcommand' -a 'status' -d 'Show status'
|
|
150
|
-
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function
|
|
151
|
-
`+c),process.exit(0)}if(i==="fish")console.log(
|
|
152
|
-
`);let c=async(
|
|
153
|
-
`))console.log(` ${
|
|
154
|
-
`))console.log(` ${
|
|
155
|
-
`);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
`)}function
|
|
161
|
-
`)}
|
|
162
|
-
`))}let t=Ex();return e.set("config-schema.md",t),e}function Ex(){return["# Configuration Schema","","Config file path: `~/.config/copse/config.json`","","## Minimal Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env", ".env.local"],',' "linkFiles": ["node_modules"],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true'," }","}","```","","## Full Example","","```json","{",' "version": 1,',' "defaults": {',' "worktreeDir": "~/.copse/worktrees/{repo}-{branch}",',' "copyFiles": [".env"],',' "linkFiles": [],',' "postCreate": ["bun install"],',' "postRemove": [],',' "autoUpstream": true,',' "sharedDeps": {',' "strategy": "symlink",',' "paths": ["node_modules"]'," }"," },",' "repos": ['," {",' "path": "/path/to/repo",',' "copyFiles": [".env", ".env.local"],',' "monorepo": {',' "autoDetect": true,',' "hooks": ['," {",' "glob": "apps/*",',' "postCreate": ["bun install"]'," }"," ]"," }"," }"," ],",' "templates": {',' "frontend": {',' "base": "main",',' "copyFiles": [".env"],',' "postCreate": ["bun install", "bun run build"]'," },",' "review": {',' "base": "main",',' "postCreate": ["bun install"]'," }"," },",' "sessions": {',' "enabled": true,',' "autoCreate": false,',' "autoKill": true,',' "prefix": "copse",',' "defaultLayout": "dev",',' "layouts": {',' "dev": {',' "windows": [',' { "name": "editor", "command": "nvim ." },',' { "name": "server", "command": "bun run dev" },',' { "name": "shell" }'," ]"," }"," }"," },",' "lifecycle": {',' "autoCleanMerged": false,',' "staleAfterDays": 30,',' "maxWorktrees": 10'," },",' "theme": "default"',"}","```","","## Key Reference","","### defaults","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `worktreeDir` | string | `~/.copse/worktrees/{repo}-{branch}` | Directory pattern. Supports `{repo}` and `{branch}` variables |","| `copyFiles` | string[] | `[]` | Files to copy from main worktree on creation |","| `linkFiles` | string[] | `[]` | Files to symlink from main worktree on creation |","| `postCreate` | string[] | `[]` | Shell commands to run after worktree creation |","| `postRemove` | string[] | `[]` | Shell commands to run before worktree removal |","| `autoUpstream` | boolean | `false` | Automatically set upstream tracking branch |","| `base` | string | - | Default base ref for new branches. If it matches `<remote>/<branch>` of a known remote (e.g. `origin/main`), `copse add` auto-runs `git fetch <remote> <branch>` first |","| `sharedDeps.strategy` | string | `symlink` | Strategy for sharing deps: `symlink`, `hardlink`, or `copy` |","| `sharedDeps.paths` | string[] | `[]` | Paths to share between worktrees |","","### repos[]","","Per-repository overrides. Same keys as `defaults` plus:","","| Key | Type | Description |","|-----|------|-------------|","| `path` | string | **Required.** Absolute path to the repository |","| `monorepo.autoDetect` | boolean | Auto-detect monorepo tools (pnpm, turbo, nx, lerna) |","| `monorepo.extraPatterns` | string[] | Additional glob patterns for package discovery |","| `monorepo.hooks[]` | object[] | Per-package hooks matched by glob pattern |","| `monorepo.hooks[].glob` | string | Glob to match against focus paths |","| `monorepo.hooks[].copyFiles` | string[] | Package-level files to copy |","| `monorepo.hooks[].linkFiles` | string[] | Package-level files to symlink |","| `monorepo.hooks[].postCreate` | string[] | Package-level post-create hooks |","| `monorepo.hooks[].postRemove` | string[] | Package-level post-remove hooks |","","### workspaces[]","","Auto-discover git repositories under parent directories. Discovered repos are merged into `repos[]` at load time. Explicit `repos[]` entries with the same resolved path always take precedence.","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `path` | string | \u2014 | **Required.** Parent directory to scan. Supports `~` expansion. |","| `depth` | integer | `1` | Scan depth (1\u20133). `1` scans only immediate children. |","| `exclude` | string[] | `[]` | Glob patterns matched against directory names to skip. |","| `defaults` | object | \u2014 | Per-repo defaults applied to discovered repos. Same fields as `defaults`, but `monorepo` is not allowed. |","","Discovery rules: a directory is a repo only if it contains a `.git` **directory** (not a file). Linked worktrees and submodules are skipped. Discovered repos are not recursed into. Symbolic links are not followed.","","### templates","","Named presets applied via `copse add --template <name>` or `copse clone --template <name>`.","","| Key | Type | Description |","|-----|------|-------------|","| `base` | string | Default base branch for new worktrees |","| `worktreeDir` | string | Override directory pattern |","| `copyFiles` | string[] | Override files to copy |","| `linkFiles` | string[] | Override files to symlink |","| `postCreate` | string[] | Override post-create hooks |","| `postRemove` | string[] | Override post-remove hooks |","| `autoUpstream` | boolean | Override upstream tracking |","","### sessions","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `enabled` | boolean | `false` | Enable tmux session integration |","| `autoCreate` | boolean | `false` | Auto-create session on `copse add` |","| `autoKill` | boolean | `false` | Auto-kill session on `copse remove` |","| `prefix` | string | `copse` | Prefix for tmux session names |","| `defaultLayout` | string | - | Default layout name |","| `layouts.<name>.windows[]` | object[] | - | Window definitions |","| `layouts.<name>.windows[].name` | string | **Required.** | Window name |","| `layouts.<name>.windows[].command` | string | - | Command to run in window |","","### lifecycle","","| Key | Type | Default | Description |","|-----|------|---------|-------------|","| `autoCleanMerged` | boolean | `false` | Auto-clean merged worktrees |","| `staleAfterDays` | number | `30` | Days until a worktree is considered stale |","| `maxWorktrees` | number | `10` | Maximum number of worktrees |",""].join(`
|
|
163
|
-
`)}function Cu(e){let t=vx(e),n=Wr(yu(t),"references"),r=Sx(),i=Px(),s=yu(t);if(!As(s))wu(s,{recursive:!0});if(!As(n))wu(n,{recursive:!0});let c=As(t);vu(t,r,"utf-8");for(let[a,d]of i.entries())vu(Wr(n,a),d,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Ws,yx="Git worktree manager. Use when working with git worktrees \u2014 creating, switching, removing, listing, or managing worktrees across repositories. Also use for monorepo focus, tmux sessions, and worktree health checks.",$x,$u;var Su=xe(()=>{Ws=["claude-code","codex","opencode"];$x=[{command:"add",aliases:"-",description:"Create a new worktree from a branch, template, or PR."},{command:"remove",aliases:"rm",description:"Remove a worktree by branch or path."},{command:"list",aliases:"ls",description:"List worktrees with branch, path, status, and focus."},{command:"switch",aliases:"sw",description:"Print shell cd command for a target worktree."},{command:"status",aliases:"st",description:"Show status summary for worktrees."},{command:"clean",aliases:"-",description:"Clean merged worktrees and optionally report stale ones."},{command:"doctor",aliases:"-",description:"Run worktree health checks and optional auto-fixes."},{command:"exec",aliases:"-",description:"Run commands across non-main worktrees."},{command:"diff",aliases:"-",description:"Compare two refs or worktree branches."},{command:"pin",aliases:"unpin",description:"Pin or unpin worktrees and inspect pin metadata."},{command:"log",aliases:"logs",description:"Read or clear the activity log."},{command:"archive",aliases:"-",description:"Archive worktree changes as patch files."},{command:"rename",aliases:"-",description:"Rename a worktree branch and optionally move its path."},{command:"clone",aliases:"-",description:"Clone a repository and initialize copse setup."},{command:"import",aliases:"-",description:"Import an existing worktree into copse metadata."},{command:"session",aliases:"ss",description:"Manage tmux sessions for worktrees."},{command:"config",aliases:"-",description:"Initialize, inspect, validate, and manage config profiles."},{command:"open",aliases:"-",description:"Open a worktree path in your preferred editor."},{command:"shell-init",aliases:"-",description:"Generate shell integration and completions."},{command:"init",aliases:"-",description:"Initialize config or install/update copse AI agent skill files."}],$u=[{command:"add",summary:"Create a new worktree from a branch, template, or GitHub PR.",synopsis:"copse add [branch] [path]",options:[{flag:"--create",type:"boolean",alias:"-c",description:"Optional compatibility flag; missing branches are created automatically"},{flag:"--base",type:"string",alias:"-b",description:"Base branch/commit for new branch"},{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--template",type:"string",alias:"-t",description:"Use a named template from config"},{flag:"--pr",type:"number",alias:"-",description:"Create worktree from a GitHub PR number"},{flag:"--session",type:"boolean",alias:"-s",description:"Create a tmux session for this worktree"},{flag:"--layout",type:"string",alias:"-",description:"Session layout name from config"},{flag:"--no-fetch",type:"boolean",alias:"-",description:"Skip auto-fetch when base is a remote ref (e.g. origin/main)"}],examples:[["Create a feature branch worktree","copse add feature/auth --base main"],["Branch from fresh remote ref (auto-fetch)","copse add feature/auth --base origin/main"],["Create from PR with session layout","copse add feature/review --pr 123 --session --layout dev"]],notes:["Creates the branch automatically when it does not already exist.","Existing branches are reused as-is; --base only applies when a new branch is created.","Runs copyFiles, linkFiles, sharedDeps, postCreate hooks, monorepo hooks after creation.","Rolls back on hook failure.","Requires gh CLI for --pr.","Supports comma/space separated focus paths.","When --base matches '<remote>/<branch>' and <remote> is a known git remote, copse runs `git fetch <remote> <branch>` first (disable with --no-fetch).","Base resolution order: --base flag > template.base > repoConfig.base > defaults.base > git HEAD."],configKeys:["`defaults.worktreeDir` \u2014 Directory pattern for new worktrees","`defaults.copyFiles` \u2014 Files to copy from main worktree","`defaults.linkFiles` \u2014 Files to symlink from main worktree","`defaults.sharedDeps` \u2014 Shared dependency strategy and paths","`defaults.postCreate` \u2014 Hooks to run after worktree creation","`defaults.autoUpstream` \u2014 Auto-set upstream tracking branch","`defaults.base` \u2014 Default base ref for new branches (e.g. `origin/main` triggers auto-fetch)","`templates.*` \u2014 Named template overrides","`sessions.autoCreate` \u2014 Auto-create tmux session on add","`sessions.layouts` \u2014 Tmux session layout definitions"]},{command:"remove",summary:"Remove a worktree by branch name or path.",synopsis:"copse remove <branch-or-path>",options:[{flag:"--force",type:"boolean",alias:"-f",description:"Force removal even with uncommitted changes"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"}],examples:[["Remove a branch worktree","copse remove feature/auth"],["Force remove without prompt","copse remove feature/auth --force --yes"]],notes:["Runs postRemove hooks and monorepo postRemove hooks before removal.","Cannot remove main worktree.","Cannot remove locked worktrees.","Auto-kills tmux session if sessions.autoKill is enabled."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal","`sessions.autoKill` \u2014 Auto-kill tmux session on remove"]},{command:"list",summary:"List worktrees with branch, path, status, and focus details.",synopsis:"copse list",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--porcelain",type:"boolean",alias:"-p",description:"Machine-readable output"},{flag:"--all",type:"boolean",alias:"-a",description:"List worktrees from all configured repos"}],examples:[["Show all worktrees","copse list"],["Get machine-readable output","copse list --porcelain"]],notes:["Shows branch, path, status (clean/dirty/locked), focus paths.","Focus column truncated to 40 chars.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"switch",summary:"Switch shell context to a worktree by branch or path.",synopsis:"copse switch <branch-or-path>",options:[],examples:[["Switch using branch name","copse switch feature/auth"],["Switch using path","copse switch ~/.copse/worktrees/repo-feature-auth"]],notes:["Outputs cd command for shell eval.","Requires shell integration (copse shell-init).","Auto-switches tmux session if sessions.enabled and inside tmux.","Logs switch activity."],configKeys:["`sessions.enabled` \u2014 Enable tmux session switching","`sessions.prefix` \u2014 Tmux session name prefix"]},{command:"status",summary:"Show branch health, sync state, commit info, and focus.",synopsis:"copse status",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--all",type:"boolean",alias:"-a",description:"Show worktrees from all configured repos"}],examples:[["Print status table","copse status"],["Parse status in scripts","copse status --json"]],notes:["Shows branch, dirty count, sync status (ahead/behind), last commit info, focus paths.","Marks current worktree with *.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"clean",summary:"Remove merged worktrees and optionally inspect stale candidates.",synopsis:"copse clean",options:[{flag:"--dry-run",type:"boolean",alias:"-n",description:"Show what would be removed"},{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation"},{flag:"--stale",type:"boolean",alias:"-",description:"Also show stale worktrees based on lifecycle config"}],examples:[["Preview merged cleanup","copse clean --dry-run"],["Run cleanup without prompts","copse clean --yes"]],notes:["Only removes merged worktrees.","Skips pinned and dirty worktrees.","Runs git worktree prune after cleanup.","--stale uses lifecycle config (staleAfterDays, maxWorktrees)."],configKeys:["`lifecycle.staleAfterDays` \u2014 Days until a worktree is considered stale","`lifecycle.maxWorktrees` \u2014 Maximum allowed worktrees","`lifecycle.autoCleanMerged` \u2014 Auto-clean merged worktrees"]},{command:"doctor",summary:"Run health checks for worktree state and configuration.",synopsis:"copse doctor",options:[{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--fix",type:"boolean",alias:"-",description:"Auto-fix issues"}],examples:[["Run health checks","copse doctor"],["Auto-fix detectable issues","copse doctor --fix"]],notes:["Checks: git version (>=2.17), config validity, stale worktrees, orphaned directories, lock status, dirty worktrees.","Auto-fix: prune stale, remove orphans, unlock stale locks.","Exit code 0 if healthy, 1 if warnings/errors."],configKeys:[]},{command:"exec",summary:"Run a shell command across filtered non-main worktrees.",synopsis:"copse exec <command>",options:[{flag:"--all",type:"boolean",alias:"-a",description:"Run across all configured repos"},{flag:"--dirty",type:"boolean",alias:"-",description:"Only run in dirty worktrees"},{flag:"--clean",type:"boolean",alias:"-",description:"Only run in clean worktrees"},{flag:"--behind",type:"boolean",alias:"-",description:"Only run in worktrees behind upstream"},{flag:"--parallel",type:"boolean",alias:"-p",description:"Run commands in parallel"},{flag:"--json",type:"boolean",alias:"-j",description:"Output results as JSON"}],examples:[["Run tests in parallel",'copse exec "bun test" --parallel'],["Pull only behind worktrees",'copse exec "git pull" --behind']],notes:["Runs in non-main worktrees only.","Sets env vars: COPSE_BRANCH, COPSE_WORKTREE_PATH, COPSE_REPO_PATH.","Exit code 1 if any command fails.","--all also includes repos auto-discovered via the `workspaces` config."],configKeys:["`repos[].path` \u2014 Repository paths for --all flag","`workspaces[].path` \u2014 Parent directories whose git repos are auto-discovered for --all"]},{command:"diff",summary:"Diff two refs or worktree branches.",synopsis:"copse diff <ref1> [ref2]",options:[{flag:"--stat",type:"boolean",alias:"-s",description:"Show diffstat summary only"},{flag:"--name-only",type:"boolean",alias:"-n",description:"Show only names of changed files"}],examples:[["Show diffstat only","copse diff feature/a feature/b --stat"],["List changed file names","copse diff feature/a --name-only"]],notes:["ref2 defaults to HEAD.","Resolves worktree branch names to refs automatically."],configKeys:[]},{command:"pin",summary:"Pin or unpin worktrees and inspect pin metadata.",synopsis:"copse pin [branch]",options:[{flag:"--reason",type:"string",alias:"-",description:"Reason for pinning"},{flag:"--list",type:"boolean",alias:"-",description:"List pinned worktrees"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--unpin",type:"boolean",alias:"-",description:"Unpin instead of pinning"}],examples:[["Pin with a reason",'copse pin feature/auth --reason "active sprint"'],["Unpin a branch","copse pin feature/auth --unpin"]],notes:["Pinned worktrees are excluded from copse clean.","Also invokable as copse unpin <branch>.","Pin metadata stored in git internals."],configKeys:[]},{command:"log",summary:"View or clear activity log events.",synopsis:"copse log",options:[{flag:"--limit",type:"number",alias:"-",description:"default 20, Show the last N entries"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON"},{flag:"--clear",type:"boolean",alias:"-",description:"Clear the activity log"}],examples:[["Show recent entries","copse log --limit 50"],["Clear the log","copse log --clear"]],notes:["Events: create (green), delete (red), switch (blue), rename (yellow), archive (magenta), import (cyan).","Color-coded in terminal."],configKeys:[]},{command:"archive",summary:"Archive worktree changes as patch files before optional removal.",synopsis:"copse archive [branch]",options:[{flag:"--yes",type:"boolean",alias:"-y",description:"Skip confirmation prompt"},{flag:"--keep",type:"boolean",alias:"-",description:"Archive without removing the worktree"},{flag:"--list",type:"boolean",alias:"-",description:"List all archives"},{flag:"--json",type:"boolean",alias:"-j",description:"Output as JSON with --list"}],examples:[["Archive and remove","copse archive feature/done --yes"],["List archive records","copse archive --list --json"]],notes:["Archives stored as patch files in ~/.copse/archives/.","Cannot archive main worktree.","Runs postRemove hooks before removal unless --keep."],configKeys:["`defaults.postRemove` \u2014 Hooks to run before worktree removal"]},{command:"rename",summary:"Rename a worktree branch and optionally move its directory path.",synopsis:"copse rename <old> <new>",options:[{flag:"--move-path",type:"boolean",alias:"-",description:"Also rename the worktree directory path"}],examples:[["Rename a worktree branch","copse rename feature/old feature/new"],["Rename branch and directory","copse rename feature/old feature/new --move-path"]],notes:["Cannot rename main worktree.","Checks for branch name conflicts.","Logs rename activity.","--move-path replaces old branch slug with new one in directory name."],configKeys:[]},{command:"clone",summary:"Clone a repository and optionally apply copse template setup.",synopsis:"copse clone <url> [path]",options:[{flag:"--template",type:"string",alias:"-t",description:"Apply a named template after cloning"},{flag:"--init-config",type:"boolean",alias:"-",description:"default true, Initialize copse config after cloning"}],examples:[["Clone and initialize","copse clone https://github.com/user/repo.git"],["Clone with template and no config init","copse clone https://github.com/user/repo.git --template review --no-init-config"]],notes:["Auto-detects target path from URL.","Runs template postCreate hooks if template specified.","Use --no-init-config to skip config initialization."],configKeys:["`templates.*` \u2014 Named template overrides"]},{command:"import",summary:"Import an existing git worktree into copse metadata.",synopsis:"copse import <path>",options:[{flag:"--focus",type:"array",alias:"-f",description:"Focus packages for monorepo"},{flag:"--pin",type:"boolean",alias:"-",description:"Pin the worktree"}],examples:[["Import a worktree path","copse import /path/to/worktree"],["Import with focus and pin","copse import /path/to/worktree --focus apps/web,apps/api --pin"]],notes:["Validates that path is a valid git worktree.","Logs import activity.","Supports comma/space separated focus paths."],configKeys:[]},{command:"session",summary:"Manage tmux sessions for worktrees.",synopsis:"copse session [branch-or-path]",options:[{flag:"--list",type:"boolean",alias:"-l",description:"List active copse tmux sessions"},{flag:"--kill",type:"boolean",alias:"-k",description:"Kill the session for the specified worktree"},{flag:"--kill-all",type:"boolean",alias:"-",description:"Kill all copse tmux sessions"},{flag:"--layout",type:"string",alias:"-",description:"Use a named layout from config"},{flag:"--json",type:"boolean",alias:"-j",description:"Output in JSON format"}],examples:[["Attach or create a session","copse session feature/auth"],["List sessions as JSON","copse session --list --json"]],notes:["Requires tmux.","Session naming: branch feat/auth-token \u2192 tmux session cop_feat-auth-token.","Supports layout templates with multiple windows."],configKeys:["`sessions.enabled` \u2014 Enable tmux session integration","`sessions.autoCreate` \u2014 Auto-create session on worktree add","`sessions.autoKill` \u2014 Auto-kill session on worktree remove","`sessions.prefix` \u2014 Tmux session name prefix","`sessions.defaultLayout` \u2014 Default layout name","`sessions.layouts` \u2014 Layout definitions with windows"]},{command:"config",summary:"Initialize, inspect, edit, validate, and manage profiles.",synopsis:"copse config",options:[{flag:"--init",type:"boolean",alias:"-",description:"Create default config file"},{flag:"--show",type:"boolean",alias:"-s",description:"Print current config as JSON"},{flag:"--edit",type:"boolean",alias:"-e",description:"Open config in $EDITOR"},{flag:"--path",type:"boolean",alias:"-",description:"Print config file path"},{flag:"--validate",type:"boolean",alias:"-",description:"Validate config against schema"},{flag:"--profiles",type:"boolean",alias:"-",description:"List config profiles"},{flag:"--profile",type:"string",alias:"-",description:"Profile name for activation/deletion"},{flag:"--activate",type:"boolean",alias:"-",description:"Activate the specified profile"},{flag:"--delete",type:"boolean",alias:"-",description:"Delete the specified profile"}],examples:[["Initialize config","copse config --init"],["Activate a profile","copse config --profile work --activate"]],notes:["Config path: ~/.config/copse/config.json.","XDG-compliant."],configKeys:[]},{command:"open",summary:"Open the target or current worktree in an editor (focus-aware).",synopsis:"copse open [branch-or-path]",options:[{flag:"--editor",type:"string",alias:"-e",description:"Editor command to use"},{flag:"--focus",type:"string",alias:"-f",description:"Open a specific focus path (must match an existing focus entry)"},{flag:"--root",type:"boolean",alias:"-",description:"Force opening the worktree root, ignoring focus paths"},{flag:"--list-editors",type:"boolean",alias:"-",description:"List detected editors"}],examples:[["Open current worktree","copse open"],["Open with specific editor","copse open feature/auth --editor nvim"],["Open a specific focus path","copse open feature/auth --focus apps/web"],["Force open the worktree root","copse open feature/auth --root"]],notes:["Auto-detects editors: code, cursor, vim, nvim, emacs, nano, subl, zed, idea, webstorm.","Uses $VISUAL or $EDITOR env vars.","Defaults to current worktree if no branch specified.","Focus-aware: 0 focus paths \u2192 root, 1 focus path \u2192 that path, 2+ focus paths \u2192 errors and asks for --focus or --root (the TUI shows an interactive picker instead)."],configKeys:[]},{command:"shell-init",summary:"Generate shell integration wrappers and completions.",synopsis:"copse shell-init [shell]",options:[{flag:"--completions",type:"string",alias:"-",description:"Generate shell completions: bash, zsh, fish"}],examples:[["Generate shell wrapper","copse shell-init zsh"],["Generate completion script","copse shell-init --completions fish"]],notes:["Shell arg is auto-detected if omitted.","Generates wrapper function for copse switch to work with shell cd.","Supports bash, zsh, fish."],configKeys:[]},{command:"init",summary:"Initialize copse config or install AI agent skill files.",synopsis:"copse init",options:[{flag:"--skill",type:"string",alias:"-s",description:"Install AI agent skill: claude-code, codex, opencode"}],examples:[["Initialize config","copse init"],["Install Claude Code skill","copse init --skill claude-code"],["Install Codex skill","copse init --skill codex"]],notes:["Without --skill, reuses config initialization and creates only config.json.","With --skill, installs or updates SKILL.md + references/ directory.","Idempotent \u2014 running again updates existing files without breaking existing setup."],configKeys:[]}]});var Pu={};qe(Pu,{default:()=>Ox});import{dirname as Rx}from"path";var kx,Ox;var Eu=xe(()=>{Ye();Su();kx={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Ws.join(", ")})`,choices:Ws}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=jt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Cu(t),r=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${r} \u2192 ${Rx(n.filePath)}/`),console.log(" SKILL.md"),console.log(` references/ (${n.referenceCount} commands)`),process.exit(0)}catch(n){console.error(`Error: ${n.message}`),process.exit(1)}}},Ox=kx});import{notStrictEqual as Qu,strictEqual as _u}from"assert";var Fu={right:Wu,center:Iu};class js{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]==="string")return this.applyLayoutDSL(e[0]);let t=e.map((n)=>{if(typeof n==="string")return this.colFromString(n);return n});return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]==="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
|
|
164
|
-
`).
|
|
165
|
-
`)
|
|
166
|
-
`);
|
|
167
|
-
`);if(i.border)r.unshift("."+"-".repeat(this.negatePadding(i)+2)+"."),r.push("'"+"-".repeat(this.negatePadding(i)+2)+"'");if(i.padding)r.unshift(...Array(i.padding[0]||0).fill("")),r.push(...Array(i.padding[2]||0).fill(""));r.forEach((c,a)=>{if(!t[a])t.push([]);let d=t[a];for(let h=0;h<s;h++)if(d[h]===void 0)d.push("");d.push(c)})}),t}negatePadding(e){let t=e.width||0;if(e.padding)t-=(e.padding[3]||0)+(e.padding[1]||0);if(e.border)t-=4;return t}columnWidths(e){if(!this.wrap)return e.map((s)=>{return s.width||Pt.stringWidth(s.text)});let t=e.length,n=this.width,r=e.map((s)=>{if(s.width)return t--,n-=s.width,s.width;return}),i=t?Math.floor(n/t):0;return r.map((s,c)=>{if(s===void 0)return Math.max(i,Du(e[c]));return s})}}function Ns(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function Du(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function Au(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function Wu(e,t){e=e.trim();let n=Pt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function Iu(e,t){e=e.trim();let n=Pt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var Pt;function Ls(e,t){return Pt=t,new js({width:(e===null||e===void 0?void 0:e.width)||Au(),wrap:e===null||e===void 0?void 0:e.wrap})}var Vs=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function ri(e){return e.replace(Vs,"")}function Ks(e,t){let[n,r]=e.match(Vs)||["",""];e=ri(e);let i="";for(let s=0;s<e.length;s++){if(s!==0&&s%t===0)i+=`
|
|
168
|
-
`;i+=e.charAt(s)}if(n&&r)i=`${n}${i}${r}`;return i}function oi(e){return Ls(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:ri,wrap:Ks})}import{dirname as Gs,resolve as Hs}from"path";import{readdirSync as Tu,statSync as Bu}from"fs";function ii(e,t){let n=Hs(".",e),r;if(!Bu(n).isDirectory())n=Gs(n);while(!0){if(r=t(n,Tu(n)),r)return Hs(n,r);if(n=Gs(r=n),r===n)break}}import{inspect as ed}from"util";import{readFileSync as td}from"fs";import{fileURLToPath as nd}from"url";import{format as Lu}from"util";import{normalize as Vu,resolve as Ku}from"path";function Nn(e){if(!(e!==e.toLowerCase()&&e!==e.toUpperCase()))e=e.toLowerCase();if(e.indexOf("-")===-1&&e.indexOf("_")===-1)return e;else{let n="",r=!1,i=e.match(/^-+/);for(let s=i?i[0].length:0;s<e.length;s++){let c=e.charAt(s);if(r)r=!1,c=c.toUpperCase();if(s!==0&&(c==="-"||c==="_"))r=!0;else if(c!=="-"&&c!=="_")n+=c}return n}}function so(e,t){let n=e.toLowerCase();t=t||"-";let r="";for(let i=0;i<e.length;i++){let s=n.charAt(i),c=e.charAt(i);if(s!==c&&i>0)r+=`${t}${n.charAt(i)}`;else r+=c}return r}function co(e){if(e===null||e===void 0)return!1;if(typeof e==="number")return!0;if(/^0x[0-9a-f]+$/i.test(e))return!0;if(/^0[^.]/.test(e))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function Us(e){if(Array.isArray(e))return e.map((c)=>typeof c!=="string"?c+"":c);e=e.trim();let t=0,n=null,r=null,i=null,s=[];for(let c=0;c<e.length;c++){if(n=r,r=e.charAt(c),r===" "&&!i){if(n!==" ")t++;continue}if(r===i)i=null;else if((r==="'"||r==='"')&&!i)i=r;if(!s[t])s[t]="";s[t]+=r}return s}var At;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(At||(At={}));var cn;class ci{constructor(e){cn=e}parse(e,t){let n=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},t),r=Us(e),i=typeof e==="string",s=Nu(Object.assign(Object.create(null),n.alias)),c=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),a=Object.assign(Object.create(null),n.default),d=n.configObjects||[],h=n.envPrefix,p=c["populate--"],m=p?"--":"_",b=Object.create(null),D=Object.create(null),T=n.__||cn.format,v={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},E=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,k=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(u){let g=typeof u==="object"?u.key:u,M=Object.keys(u).map(function(P){return{boolean:"bools",string:"strings",number:"numbers"}[P]}).filter(Boolean).pop();if(M)v[M][g]=!0;v.arrays[g]=!0,v.keys.push(g)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(u){v.bools[u]=!0,v.keys.push(u)}),[].concat(n.string||[]).filter(Boolean).forEach(function(u){v.strings[u]=!0,v.keys.push(u)}),[].concat(n.number||[]).filter(Boolean).forEach(function(u){v.numbers[u]=!0,v.keys.push(u)}),[].concat(n.count||[]).filter(Boolean).forEach(function(u){v.counts[u]=!0,v.keys.push(u)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(u){v.normalize[u]=!0,v.keys.push(u)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([u,g])=>{if(typeof g==="number")v.nargs[u]=g,v.keys.push(u)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([u,g])=>{if(typeof g==="function")v.coercions[u]=g,v.keys.push(u)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(u){v.configs[u]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([u,g])=>{if(typeof g==="boolean"||typeof g==="function")v.configs[u]=g})}N(n.key,s,n.default,v.arrays),Object.keys(a).forEach(function(u){(v.aliases[u]||[]).forEach(function(g){a[g]=a[u]})});let O=null;I();let w=[],y=Object.assign(Object.create(null),{_:[]}),S={};for(let u=0;u<r.length;u++){let g=r[u],M=g.replace(/^-{3,}/,"---"),P,C,Q,oe,ge,le;if(g!=="--"&&/^-/.test(g)&&pe(g))B(g);else if(M.match(/^---+(=|$)/)){B(g);continue}else if(g.match(/^--.+=/)||!c["short-option-groups"]&&g.match(/^-.+=/)){if(oe=g.match(/^--?([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)if(W(oe[1],v.arrays))u=V(u,oe[1],r,oe[2]);else if(W(oe[1],v.nargs)!==!1)u=A(u,oe[1],r,oe[2]);else q(oe[1],oe[2],!0)}else if(g.match(k)&&c["boolean-negation"]){if(oe=g.match(k),oe!==null&&Array.isArray(oe)&&oe.length>=2)C=oe[1],q(C,W(C,v.arrays)?[!1]:!1)}else if(g.match(/^--.+/)||!c["short-option-groups"]&&g.match(/^-[^-]+/)){if(oe=g.match(/^--?(.+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],W(C,v.arrays))u=V(u,C,r);else if(W(C,v.nargs)!==!1)u=A(u,C,r);else if(ge=r[u+1],ge!==void 0&&(!ge.match(/^-/)||ge.match(E))&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else if(/^(true|false)$/.test(ge))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-.\..+=/)){if(oe=g.match(/^-([^=]+)=([\s\S]*)$/),oe!==null&&Array.isArray(oe)&&oe.length>=3)q(oe[1],oe[2])}else if(g.match(/^-.\..+/)&&!g.match(E)){if(ge=r[u+1],oe=g.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(C=oe[1],ge!==void 0&&!ge.match(/^-/)&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-[^-]+/)&&!g.match(E)){Q=g.slice(1,-1).split(""),P=!1;for(let Ie=0;Ie<Q.length;Ie++){if(ge=g.slice(Ie+2),Q[Ie+1]&&Q[Ie+1]==="="){if(le=g.slice(Ie+3),C=Q[Ie],W(C,v.arrays))u=V(u,C,r,le);else if(W(C,v.nargs)!==!1)u=A(u,C,r,le);else q(C,le);P=!0;break}if(ge==="-"){q(Q[Ie],ge);continue}if(/[A-Za-z]/.test(Q[Ie])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(ge)&&W(ge,v.bools)===!1){q(Q[Ie],ge),P=!0;break}if(Q[Ie+1]&&Q[Ie+1].match(/\W/)){q(Q[Ie],ge),P=!0;break}else q(Q[Ie],be(Q[Ie]))}if(C=g.slice(-1)[0],!P&&C!=="-")if(W(C,v.arrays))u=V(u,C,r);else if(W(C,v.nargs)!==!1)u=A(u,C,r);else if(ge=r[u+1],ge!==void 0&&(!/^(-|--)[^-]/.test(ge)||ge.match(E))&&!W(C,v.bools)&&!W(C,v.counts))q(C,ge),u++;else if(/^(true|false)$/.test(ge))q(C,ge),u++;else q(C,be(C))}else if(g.match(/^-[0-9]$/)&&g.match(E)&&W(g.slice(1),v.bools))C=g.slice(1),q(C,be(C));else if(g==="--"){w=r.slice(u+1);break}else if(c["halt-at-non-option"]){w=r.slice(u);break}else B(g)}if(_(y,!0),_(y,!1),X(y),he(),R(y,v.aliases,a,!0),me(y),c["set-placeholder-key"])Pe(y);if(Object.keys(v.counts).forEach(function(u){if(!F(y,u.split(".")))q(u,0)}),p&&w.length)y[m]=[];if(w.forEach(function(u){y[m].push(u)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(y).filter((u)=>u!=="--"&&u.includes("-")).forEach((u)=>{delete y[u]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((u)=>s[u])).forEach((u)=>{if(c["camel-case-expansion"]&&u.includes("-"))delete y[u.split(".").map((g)=>Nn(g)).join(".")];delete y[u]});function B(u){let g=J("_",u);if(typeof g==="string"||typeof g==="number")y._.push(g)}function A(u,g,M,P){let C,Q=W(g,v.nargs);if(Q=typeof Q!=="number"||isNaN(Q)?1:Q,Q===0){if(!Re(P))O=Error(T("Argument unexpected for: %s",g));return q(g,be(g)),u}let oe=Re(P)?0:1;if(c["nargs-eats-options"]){if(M.length-(u+1)+oe<Q)O=Error(T("Not enough arguments following: %s",g));oe=Q}else{for(C=u+1;C<M.length;C++)if(!M[C].match(/^-[^0-9]/)||M[C].match(E)||pe(M[C]))oe++;else break;if(oe<Q)O=Error(T("Not enough arguments following: %s",g))}let ge=Math.min(oe,Q);if(!Re(P)&&ge>0)q(g,P),ge--;for(C=u+1;C<ge+u+1;C++)q(g,M[C]);return u+ge}function V(u,g,M,P){let C=[],Q=P||M[u+1],oe=W(g,v.nargs);if(W(g,v.bools)&&!/^(true|false)$/.test(Q))C.push(!0);else if(Re(Q)||Re(P)&&/^-/.test(Q)&&!E.test(Q)&&!pe(Q)){if(a[g]!==void 0){let ge=a[g];C=Array.isArray(ge)?ge:[ge]}}else{if(!Re(P))C.push(U(g,P,!0));for(let ge=u+1;ge<M.length;ge++){if(!c["greedy-arrays"]&&C.length>0||oe&&typeof oe==="number"&&C.length>=oe)break;if(Q=M[ge],/^-/.test(Q)&&!E.test(Q)&&!pe(Q))break;u=ge,C.push(U(g,Q,i))}}if(typeof oe==="number"&&(oe&&C.length<oe||isNaN(oe)&&C.length===0))O=Error(T("Not enough arguments following: %s",g));return q(g,C),u}function q(u,g,M=i){if(/-/.test(u)&&c["camel-case-expansion"]){let Q=u.split(".").map(function(oe){return Nn(oe)}).join(".");H(u,Q)}let P=U(u,g,M),C=u.split(".");if(G(y,C,P),v.aliases[u])v.aliases[u].forEach(function(Q){let oe=Q.split(".");G(y,oe,P)});if(C.length>1&&c["dot-notation"])(v.aliases[C[0]]||[]).forEach(function(Q){let oe=Q.split("."),ge=[].concat(C);if(ge.shift(),oe=oe.concat(ge),!(v.aliases[u]||[]).includes(oe.join(".")))G(y,oe,P)});if(W(u,v.normalize)&&!W(u,v.arrays))[u].concat(v.aliases[u]||[]).forEach(function(oe){Object.defineProperty(S,oe,{enumerable:!0,get(){return g},set(ge){g=typeof ge==="string"?cn.normalize(ge):ge}})})}function H(u,g){if(!(v.aliases[u]&&v.aliases[u].length))v.aliases[u]=[g],b[g]=!0;if(!(v.aliases[g]&&v.aliases[g].length))H(g,u)}function U(u,g,M){if(M)g=ju(g);if(W(u,v.bools)||W(u,v.counts)){if(typeof g==="string")g=g==="true"}let P=Array.isArray(g)?g.map(function(C){return J(u,C)}):J(u,g);if(W(u,v.counts)&&(Re(P)||typeof P==="boolean"))P=si();if(W(u,v.normalize)&&W(u,v.arrays))if(Array.isArray(g))P=g.map((C)=>{return cn.normalize(C)});else P=cn.normalize(g);return P}function J(u,g){if(!c["parse-positional-numbers"]&&u==="_")return g;if(!W(u,v.strings)&&!W(u,v.bools)&&!Array.isArray(g)){if(co(g)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${g}`)))||!Re(g)&&W(u,v.numbers))g=Number(g)}return g}function X(u){let g=Object.create(null);R(g,v.aliases,a),Object.keys(v.configs).forEach(function(M){let P=u[M]||g[M];if(P)try{let C=null,Q=cn.resolve(cn.cwd(),P),oe=v.configs[M];if(typeof oe==="function"){try{C=oe(Q)}catch(ge){C=ge}if(C instanceof Error){O=C;return}}else C=cn.require(Q);re(C)}catch(C){if(C.name==="PermissionDenied")O=C;else if(u[M])O=Error(T("Invalid JSON config file: %s",P))}})}function re(u,g){Object.keys(u).forEach(function(M){let P=u[M],C=g?g+"."+M:M;if(typeof P==="object"&&P!==null&&!Array.isArray(P)&&c["dot-notation"])re(P,C);else if(!F(y,C.split("."))||W(C,v.arrays)&&c["combine-arrays"])q(C,P)})}function he(){if(typeof d<"u")d.forEach(function(u){re(u)})}function _(u,g){if(typeof h>"u")return;let M=typeof h==="string"?h:"",P=cn.env();Object.keys(P).forEach(function(C){if(M===""||C.lastIndexOf(M,0)===0){let Q=C.split("__").map(function(oe,ge){if(ge===0)oe=oe.substring(M.length);return Nn(oe)});if((g&&v.configs[Q.join(".")]||!g)&&!F(u,Q))q(Q.join("."),P[C])}})}function me(u){let g,M=new Set;Object.keys(u).forEach(function(P){if(!M.has(P)){if(g=W(P,v.coercions),typeof g==="function")try{let C=J(P,g(u[P]));[].concat(v.aliases[P]||[],P).forEach((Q)=>{M.add(Q),u[Q]=C})}catch(C){O=C}}})}function Pe(u){return v.keys.forEach((g)=>{if(~g.indexOf("."))return;if(typeof u[g]>"u")u[g]=void 0}),u}function R(u,g,M,P=!1){Object.keys(M).forEach(function(C){if(!F(u,C.split("."))){if(G(u,C.split("."),M[C]),P)D[C]=!0;(g[C]||[]).forEach(function(Q){if(F(u,Q.split(".")))return;G(u,Q.split("."),M[C])})}})}function F(u,g){let M=u;if(!c["dot-notation"])g=[g.join(".")];g.slice(0,-1).forEach(function(C){M=M[C]||{}});let P=g[g.length-1];if(typeof M!=="object")return!1;else return P in M}function G(u,g,M){let P=u;if(!c["dot-notation"])g=[g.join(".")];g.slice(0,-1).forEach(function(le){if(le=Js(le),typeof P==="object"&&P[le]===void 0)P[le]={};if(typeof P[le]!=="object"||Array.isArray(P[le])){if(Array.isArray(P[le]))P[le].push({});else P[le]=[P[le],{}];P=P[le][P[le].length-1]}else P=P[le]});let C=Js(g[g.length-1]),Q=W(g.join("."),v.arrays),oe=Array.isArray(M),ge=c["duplicate-arguments-array"];if(!ge&&W(C,v.nargs)){if(ge=!0,!Re(P[C])&&v.nargs[C]===1||Array.isArray(P[C])&&P[C].length===v.nargs[C])P[C]=void 0}if(M===si())P[C]=si(P[C]);else if(Array.isArray(P[C]))if(ge&&Q&&oe)P[C]=c["flatten-duplicate-arrays"]?P[C].concat(M):(Array.isArray(P[C][0])?P[C]:[P[C]]).concat([M]);else if(!ge&&Boolean(Q)===Boolean(oe))P[C]=M;else P[C]=P[C].concat([M]);else if(P[C]===void 0&&Q)P[C]=oe?M:[M];else if(ge&&!(P[C]===void 0||W(C,v.counts)||W(C,v.bools)))P[C]=[P[C],M];else P[C]=M}function N(...u){u.forEach(function(g){Object.keys(g||{}).forEach(function(M){if(v.aliases[M])return;v.aliases[M]=[].concat(s[M]||[]),v.aliases[M].concat(M).forEach(function(P){if(/-/.test(P)&&c["camel-case-expansion"]){let C=Nn(P);if(C!==M&&v.aliases[M].indexOf(C)===-1)v.aliases[M].push(C),b[C]=!0}}),v.aliases[M].concat(M).forEach(function(P){if(P.length>1&&/[A-Z]/.test(P)&&c["camel-case-expansion"]){let C=so(P,"-");if(C!==M&&v.aliases[M].indexOf(C)===-1)v.aliases[M].push(C),b[C]=!0}}),v.aliases[M].forEach(function(P){v.aliases[P]=[M].concat(v.aliases[M].filter(function(C){return P!==C}))})})})}function W(u,g){let M=[].concat(v.aliases[u]||[],u),P=Object.keys(g),C=M.find((Q)=>P.includes(Q));return C?g[C]:!1}function ee(u){let g=Object.keys(v);return[].concat(g.map((P)=>v[P])).some(function(P){return Array.isArray(P)?P.includes(u):P[u]})}function de(u,...g){return[].concat(...g).some(function(P){let C=u.match(P);return C&&ee(C[1])})}function ne(u){if(u.match(E)||!u.match(/^-[^-]+/))return!1;let g=!0,M,P=u.slice(1).split("");for(let C=0;C<P.length;C++){if(M=u.slice(C+2),!ee(P[C])){g=!1;break}if(P[C+1]&&P[C+1]==="="||M==="-"||/[A-Za-z]/.test(P[C])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(M)||P[C+1]&&P[C+1].match(/\W/))break}return g}function pe(u){return c["unknown-options-as-args"]&&Se(u)}function Se(u){if(u=u.replace(/^-{3,}/,"--"),u.match(E))return!1;if(ne(u))return!1;return!de(u,/^-+([^=]+?)=[\s\S]*$/,k,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function be(u){if(!W(u,v.bools)&&!W(u,v.counts)&&`${u}`in a)return a[u];else return ke(Fe(u))}function ke(u){return{[At.BOOLEAN]:!0,[At.STRING]:"",[At.NUMBER]:void 0,[At.ARRAY]:[]}[u]}function Fe(u){let g=At.BOOLEAN;if(W(u,v.strings))g=At.STRING;else if(W(u,v.numbers))g=At.NUMBER;else if(W(u,v.bools))g=At.BOOLEAN;else if(W(u,v.arrays))g=At.ARRAY;return g}function Re(u){return u===void 0}function I(){Object.keys(v.counts).find((u)=>{if(W(u,v.arrays))return O=Error(T("Invalid configuration: %s, opts.count excludes opts.array.",u)),!0;else if(W(u,v.nargs))return O=Error(T("Invalid configuration: %s, opts.count excludes opts.narg.",u)),!0;return!1})}return{aliases:Object.assign({},v.aliases),argv:Object.assign(S,y),configuration:c,defaulted:Object.assign({},D),error:O,newAliases:Object.assign({},b)}}}function Nu(e){let t=[],n=Object.create(null),r=!0;Object.keys(e).forEach(function(i){t.push([].concat(e[i],i))});while(r){r=!1;for(let i=0;i<t.length;i++)for(let s=i+1;s<t.length;s++)if(t[i].filter(function(a){return t[s].indexOf(a)!==-1}).length){t[i]=t[i].concat(t[s]),t.splice(s,1),r=!0;break}}return t.forEach(function(i){i=i.filter(function(c,a,d){return d.indexOf(c)===a});let s=i.pop();if(s!==void 0&&typeof s==="string")n[s]=i}),n}function si(e){return e!==void 0?e+1:1}function Js(e){if(e==="__proto__")return"___proto___";return e}function ju(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var ai,li,fi,zs=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,qs=(li=(ai=process===null||process===void 0?void 0:process.versions)===null||ai===void 0?void 0:ai.node)!==null&&li!==void 0?li:(fi=process===null||process===void 0?void 0:process.version)===null||fi===void 0?void 0:fi.slice(1);if(qs){if(Number(qs.match(/^([^.]+)/)[1])<zs)throw Error(`yargs parser supports a minimum Node.js version of ${zs}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var Gu=process?process.env:{},Xs=new ci({cwd:process.cwd,env:()=>{return Gu},format:Lu,normalize:Vu,resolve:Ku,require:(e)=>{return sn(e)}}),jr=function(t,n){return Xs.parse(t.slice(),n).argv};jr.detailed=function(e,t){return Xs.parse(e.slice(),t)};jr.camelCase=Nn;jr.decamelize=so;jr.looksLikeNumber=co;var ui=jr;import{basename as rd,dirname as od,extname as id,relative as sd,resolve as nc}from"path";function Ys(){if(Hu())return 0;return 1}function Hu(){return Uu()&&!process.defaultApp}function Uu(){return!!process.versions.electron}function di(e){return e.slice(Ys()+1)}function Zs(){return process.argv[Ys()]}class Ke extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Ke)}}import{readFileSync as Ju,statSync as zu,writeFile as qu}from"fs";import{format as Xu}from"util";import{resolve as Yu}from"path";var Qs={fs:{readFileSync:Ju,writeFile:qu},format:Xu,resolve:Yu,exists:(e)=>{try{return zu(e).isFile()}catch(t){return!1}}};var Jt;class _s{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles==="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage==="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};if(typeof e[e.length-1]==="function")n=e.pop();if(n=n||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n});else n();return Jt.format.apply(Jt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),r=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let s=r===1?t:n;if(this.cache[this.locale][t])s=this.cache[this.locale][t][r===1?"one":"other"];if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]={one:t,other:n},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:i});else i();let c=[s];if(~s.indexOf("%d"))c.push(r);return Jt.format.apply(Jt.format,c.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){if(!this.cache[this.locale])this._readLocaleFile();for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))this.cache[this.locale][t]=e[t]}_taggedLiteral(e,...t){let n="";return e.forEach(function(r,i){let s=t[i+1];if(n+=r,typeof s<"u")n+="%s"}),this.__.apply(this,[n].concat([].slice.call(t,1)))}_enqueueWrite(e){if(this.writeQueue.push(e),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let e=this,t=this.writeQueue[0],n=t.directory,r=t.locale,i=t.cb,s=this._resolveLocaleFile(n,r),c=JSON.stringify(this.cache[r],null,2);Jt.fs.writeFile(s,c,"utf-8",function(a){if(e.writeQueue.shift(),e.writeQueue.length>0)e._processWriteQueue();i(a)})}_readLocaleFile(){let e={},t=this._resolveLocaleFile(this.directory,this.locale);try{if(Jt.fs.readFileSync)e=JSON.parse(Jt.fs.readFileSync(t,"utf-8"))}catch(n){if(n instanceof SyntaxError)n.message="syntax error in "+t;if(n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Jt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let r=Jt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(r))n=r}return n}_fileExistsSync(e){return Jt.exists(e)}}function ec(e,t){Jt=t;let n=new _s(e);return{__:n.__.bind(n),__n:n.__n.bind(n),setLocale:n.setLocale.bind(n),getLocale:n.getLocale.bind(n),updateLocale:n.updateLocale.bind(n),locale:n.locale}}var Zu=(e)=>{return ec(e,Qs)},tc=Zu;var cd="require is not supported by ESM",rc="loading a directory of commands is not supported yet for ESM",Lr;try{Lr=nd(import.meta.url)}catch(e){Lr=process.cwd()}var ad=Lr.substring(0,Lr.lastIndexOf("node_modules")),hi={assert:{notStrictEqual:Qu,strictEqual:_u},cliui:oi,findUp:ii,getEnv:(e)=>{return process.env[e]},inspect:ed,getCallerFile:()=>{throw new Ke(rc)},getProcessArgvBin:Zs,mainFilename:ad||process.cwd(),Parser:ui,path:{basename:rd,dirname:od,extname:id,relative:sd,resolve:nc},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(e,t)=>process.emitWarning(e,t),execPath:()=>process.execPath,exit:process.exit,nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:td,require:()=>{throw new Ke(cd)},requireDirectory:()=>{throw new Ke(rc)},stringWidth:(e)=>{return[...e].length},y18n:tc({directory:nc(Lr,"../../../locales"),updateFiles:!1})};function xt(e,t,n,r){n.assert.notStrictEqual(e,t,r)}function mi(e,t){t.assert.strictEqual(typeof e,"string")}function or(e){return Object.keys(e)}function Ge(e){return!!e&&!!e.then&&typeof e.then==="function"}function $n(e){let n=e.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),r=/\.*[\][<>]/g,i=n.shift();if(!i)throw Error(`No command found in: ${e}`);let s={cmd:i.replace(r,""),demanded:[],optional:[]};return n.forEach((c,a)=>{let d=!1;if(c=c.replace(/\s/g,""),/\.+[\]>]/.test(c)&&a===n.length-1)d=!0;if(/^\[/.test(c))s.optional.push({cmd:c.replace(r,"").split("|"),variadic:d});else s.demanded.push({cmd:c.replace(r,"").split("|"),variadic:d})}),s}var ld=["first","second","third","fourth","fifth","sixth"];function we(e,t,n){function r(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[$n(`cmd ${e}`),t,n]}try{let i=0,[s,c,a]=r(),d=[].slice.call(c);while(d.length&&d[d.length-1]===void 0)d.pop();let h=a||d.length;if(h<s.demanded.length)throw new Ke(`Not enough arguments provided. Expected ${s.demanded.length} but received ${d.length}.`);let p=s.demanded.length+s.optional.length;if(h>p)throw new Ke(`Too many arguments provided. Expected max ${p} but received ${h}.`);s.demanded.forEach((m)=>{let b=d.shift(),D=oc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)ic(D,m.cmd,i);i+=1}),s.optional.forEach((m)=>{if(d.length===0)return;let b=d.shift(),D=oc(b);if(m.cmd.filter((v)=>v===D||v==="*").length===0)ic(D,m.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function oc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function ic(e,t,n){throw new Ke(`Invalid ${ld[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class pi{constructor(e){this.globalMiddleware=[],this.frozens=[],this.yargs=e}addMiddleware(e,t,n=!0,r=!1){if(we("<array|function> [boolean] [boolean] [boolean]",[e,t,n],arguments.length),Array.isArray(e)){for(let i=0;i<e.length;i++){if(typeof e[i]!=="function")throw Error("middleware must be a function");let s=e[i];s.applyBeforeValidation=t,s.global=n}Array.prototype.push.apply(this.globalMiddleware,e)}else if(typeof e==="function"){let i=e;i.applyBeforeValidation=t,i.global=n,i.mutates=r,this.globalMiddleware.push(e)}return this.yargs}addCoerceMiddleware(e,t){let n=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((r)=>{let i=[...n[t]||[],t];if(!r.option)return!0;else return!i.includes(r.option)}),e.option=t,this.addMiddleware(e,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let e=this.frozens.pop();if(e!==void 0)this.globalMiddleware=e}reset(){this.globalMiddleware=this.globalMiddleware.filter((e)=>e.global)}}function sc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function jn(e,t,n,r){return n.reduce((i,s)=>{if(s.applyBeforeValidation!==r)return i;if(s.mutates){if(s.applied)return i;s.applied=!0}if(Ge(i))return i.then((c)=>Promise.all([c,s(c,t)])).then(([c,a])=>Object.assign(c,a));else{let c=s(i,t);return Ge(c)?c.then((a)=>Object.assign(i,a)):Object.assign(i,c)}},e)}function Ln(e,t,n=(r)=>{throw r}){try{let r=fd(e)?e():e;return Ge(r)?r.then((i)=>t(i)):t(r)}catch(r){return n(r)}}function fd(e){return typeof e==="function"}function gi(e){for(let t=0,n=Object.keys(sn.cache),r;t<n.length;t++)if(r=sn.cache[n[t]],r.exports===e)return r;return null}var ir=/(^\*)|(^\$0)/;class ac{constructor(e,t,n,r){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=r,this.usage=e,this.globalMiddleware=n,this.validation=t}addDirectory(e,t,n,r){if(r=r||{},typeof r.recurse!=="boolean")r.recurse=!1;if(!Array.isArray(r.extensions))r.extensions=["js"];let i=typeof r.visit==="function"?r.visit:(s)=>s;r.visit=(s,c,a)=>{let d=i(s,c,a);if(d){if(this.requireCache.has(c))return d;else this.requireCache.add(c);this.addHandler(d)}return d},this.shim.requireDirectory({require:t,filename:n},e,r)}addHandler(e,t,n,r,i,s){let c=[],a=sc(i);if(r=r||(()=>{}),Array.isArray(e))if(ud(e))[e,...c]=e;else for(let d of e)this.addHandler(d);else if(hd(e)){let d=Array.isArray(e.command)||typeof e.command==="string"?e.command:this.moduleName(e);if(e.aliases)d=[].concat(d).concat(e.aliases);this.addHandler(d,this.extractDesc(e),e.builder,e.handler,e.middlewares,e.deprecated);return}else if(cc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let d=$n(e);c=c.map((m)=>$n(m).cmd);let h=!1,p=[d.cmd].concat(c).filter((m)=>{if(ir.test(m))return h=!0,!1;return!0});if(p.length===0&&h)p.push("$0");if(h)d.cmd=p[0],c=p.slice(1),e=e.replace(ir,d.cmd);if(c.forEach((m)=>{this.aliasMap[m]=d.cmd}),t!==!1)this.usage.command(e,t,h,c,s);if(this.handlers[d.cmd]={original:e,description:t,handler:r,builder:n||{},middlewares:a,deprecated:s,demanded:d.demanded,optional:d.optional},h)this.defaultCommand=this.handlers[d.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,r,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),d=a.commands.slice(),h=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let p=this.applyBuilderUpdateUsageAndParse(h,c,t,n.aliases,d,r,i,s);return Ge(p)?p.then((m)=>this.applyMiddlewareAndGetResult(h,c,m.innerArgv,a,i,m.aliases,t)):this.applyMiddlewareAndGetResult(h,c,p.innerArgv,a,i,p.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,r,i,s,c,a){let d=t.builder,h=n;if(ao(d)){n.getInternalMethods().getUsageInstance().freeze();let p=d(n.getInternalMethods().reset(r),a);if(Ge(p))return p.then((m)=>{return h=fc(m)?m:n,this.parseAndUpdateUsage(e,t,h,i,s,c)})}else if(dd(d))n.getInternalMethods().getUsageInstance().freeze(),h=n.getInternalMethods().reset(r),Object.keys(t.builder).forEach((p)=>{h.option(p,d[p])});return this.parseAndUpdateUsage(e,t,h,i,s,c)}parseAndUpdateUsage(e,t,n,r,i,s){if(e)n.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(n))n.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(r,t),t.description);let c=n.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,i,s);return Ge(c)?c.then((a)=>({aliases:n.parsed.aliases,innerArgv:a})):{aliases:n.parsed.aliases,innerArgv:c}}shouldUpdateUsage(e){return!e.getInternalMethods().getUsageInstance().getUsageDisabled()&&e.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(e,t){let n=ir.test(t.original)?t.original.replace(ir,"").trim():t.original,r=e.filter((i)=>{return!ir.test(i)});return r.push(n),`$0 ${r.join(" ")}`}handleValidationAndGetResult(e,t,n,r,i,s,c,a){if(!s.getInternalMethods().getHasOutput()){let d=s.getInternalMethods().runValidation(i,a,s.parsed.error,e);n=Ln(n,(h)=>{return d(h),h})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let d=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,d,!1,!1),n=jn(n,s,c,!1),n=Ln(n,(h)=>{let p=t.handler(h);return Ge(p)?p.then(()=>h):h}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(Ge(n)&&!s.getInternalMethods().hasParseCallback())n.catch((h)=>{try{s.getInternalMethods().getUsageInstance().fail(null,h)}catch(p){}})}if(!e)r.commands.pop(),r.fullCommands.pop();return n}applyMiddlewareAndGetResult(e,t,n,r,i,s,c){let a={};if(i)return n;if(!c.getInternalMethods().getHasOutput())a=this.populatePositionals(t,n,r,c);let d=this.globalMiddleware.getMiddleware().slice(0).concat(t.middlewares),h=jn(n,c,d,!0);return Ge(h)?h.then((p)=>this.handleValidationAndGetResult(e,t,p,r,s,c,d,a)):this.handleValidationAndGetResult(e,t,h,r,s,c,d,a)}populatePositionals(e,t,n,r){t._=t._.slice(n.commands.length);let i=e.demanded.slice(0),s=e.optional.slice(0),c={};this.validation.positionalCount(i.length,t._.length);while(i.length){let a=i.shift();this.populatePositional(a,t,c)}while(s.length){let a=s.shift();this.populatePositional(a,t,c)}return t._=n.commands.concat(t._.map((a)=>""+a)),this.postProcessPositionals(t,c,this.cmdToParseOptions(e.original),r),c}populatePositional(e,t,n){let r=e.cmd[0];if(e.variadic)n[r]=t._.splice(0).map(String);else if(t._.length)n[r]=[String(t._.shift())]}cmdToParseOptions(e){let t={array:[],default:{},alias:{},demand:{}},n=$n(e);return n.demanded.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s,t.demand[i]=!0}),n.optional.forEach((r)=>{let[i,...s]=r.cmd;if(r.variadic)t.array.push(i),t.default[i]=[];t.alias[i]=s}),t}postProcessPositionals(e,t,n,r){let i=Object.assign({},r.getOptions());i.default=Object.assign(n.default,i.default);for(let d of Object.keys(n.alias))i.alias[d]=(i.alias[d]||[]).concat(n.alias[d]);i.array=i.array.concat(n.array),i.config={};let s=[];if(Object.keys(t).forEach((d)=>{t[d].map((h)=>{if(i.configuration["unknown-options-as-args"])i.key[d]=!0;s.push(`--${d}`),s.push(h)})}),!s.length)return;let c=Object.assign({},i.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(s,Object.assign({},i,{configuration:c}));if(a.error)r.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{let d=Object.keys(t);Object.keys(t).forEach((h)=>{d.push(...a.aliases[h])}),Object.keys(a.argv).forEach((h)=>{if(d.includes(h)){if(!t[h])t[h]=a.argv[h];if(!this.isInConfigs(r,h)&&!this.isDefaulted(r,h)&&Object.prototype.hasOwnProperty.call(e,h)&&Object.prototype.hasOwnProperty.call(a.argv,h)&&(Array.isArray(e[h])||Array.isArray(a.argv[h])))e[h]=[].concat(e[h],a.argv[h]);else e[h]=a.argv[h]}})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some((r)=>Object.prototype.hasOwnProperty.call(r,t))||n.some((r)=>Object.prototype.hasOwnProperty.call(r,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=ir.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");e.getInternalMethods().getUsageInstance().usage(n,this.defaultCommand.description)}let t=this.defaultCommand.builder;if(ao(t))return t(e,!0);else if(!cc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=gi(e);if(!t)throw Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let r of[e,t,n]){if(typeof r==="string"||r===!1)return r;xt(r,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();xt(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function lc(e,t,n,r){return new ac(e,t,n,r)}function cc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function ud(e){return e.every((t)=>typeof t==="string")}function ao(e){return typeof e==="function"}function dd(e){return typeof e==="object"}function hd(e){return typeof e==="object"&&!Array.isArray(e)}function Cn(e={},t=()=>!0){let n={};return or(e).forEach((r)=>{if(t(r,e[r]))n[r]=e[r]}),n}function Sn(e){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((t)=>{let n=t;if(n._handle&&n.isTTY&&typeof n._handle.setBlocking==="function")n._handle.setBlocking(e)})}function md(e){return typeof e==="boolean"}function dc(e,t){let n=t.y18n.__,r={},i=[];r.failFn=function(J){i.push(J)};let s=null,c=null,a=!0;r.showHelpOnFail=function(J=!0,X){let[re,he]=typeof J==="string"?[!0,J]:[J,X];if(e.getInternalMethods().isGlobalContext())c=he;return s=he,a=re,r};let d=!1;r.fail=function(J,X){let re=e.getInternalMethods().getLoggerInstance();if(i.length)for(let he=i.length-1;he>=0;--he){let _=i[he];if(md(_)){if(X)throw X;else if(J)throw Error(J)}else _(J,X,r)}else{if(e.getExitProcess())Sn(!0);if(!d){if(d=!0,a)e.showHelp("error"),re.error();if(J||X)re.error(J||X);let he=s||c;if(he){if(J||X)re.error("");re.error(he)}}if(X=X||new Ke(J),e.getExitProcess())return e.exit(1);else if(e.getInternalMethods().hasParseCallback())return e.exit(1,X);else throw X}};let h=[],p=!1;r.usage=(U,J)=>{if(U===null)return p=!0,h=[],r;return p=!1,h.push([U,J||""]),r},r.getUsage=()=>{return h},r.getUsageDisabled=()=>{return p},r.getPositionalGroupName=()=>{return n("Positionals:")};let m=[];r.example=(U,J)=>{m.push([U,J||""])};let b=[];r.command=function(J,X,re,he,_=!1){if(re)b=b.map((me)=>{return me[2]=!1,me});b.push([J,X||"",re,he,_])},r.getCommands=()=>b;let D={};r.describe=function(J,X){if(Array.isArray(J))J.forEach((re)=>{r.describe(re,X)});else if(typeof J==="object")Object.keys(J).forEach((re)=>{r.describe(re,J[re])});else D[J]=X},r.getDescriptions=()=>D;let T=[];r.epilog=(U)=>{T.push(U)};let v=!1,E;r.wrap=(U)=>{v=!0,E=U},r.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!v)E=V(),v=!0;return E};let k="__yargsString__:";r.deferY18nLookup=(U)=>k+U,r.help=function(){if(y)return y;w();let J=e.customScriptName?e.$0:t.path.basename(e.$0),X=e.getDemandedOptions(),re=e.getDemandedCommands(),he=e.getDeprecatedOptions(),_=e.getGroups(),me=e.getOptions(),Pe=[];Pe=Pe.concat(Object.keys(D)),Pe=Pe.concat(Object.keys(X)),Pe=Pe.concat(Object.keys(re)),Pe=Pe.concat(Object.keys(me.default)),Pe=Pe.filter(B),Pe=Object.keys(Pe.reduce((ne,pe)=>{if(pe!=="_")ne[pe]=!0;return ne},{}));let R=r.getWrap(),F=t.cliui({width:R,wrap:!!R});if(!p){if(h.length)h.forEach((ne)=>{if(F.div({text:`${ne[0].replace(/\$0/g,J)}`}),ne[1])F.div({text:`${ne[1]}`,padding:[1,0,0,0]})}),F.div();else if(b.length){let ne=null;if(re._)ne=`${J} <${n("command")}>
|
|
169
|
-
`;
|
|
170
|
-
|
|
171
|
-
`);
|
|
172
|
-
`)}return F.toString().replace(/\s*$/,"")};function O(U,J,X){let re=0;if(!Array.isArray(U))U=Object.values(U).map((he)=>[he]);if(U.forEach((he)=>{re=Math.max(t.stringWidth(X?`${X} ${lo(he[0])}`:lo(he[0]))+uc(he[0]),re)}),J)re=Math.min(re,parseInt((J*0.5).toString(),10));return re}function w(){let U=e.getDemandedOptions(),J=e.getOptions();(Object.keys(J.alias)||[]).forEach((X)=>{J.alias[X].forEach((re)=>{if(D[re])r.describe(X,D[re]);if(re in U)e.demandOption(X,U[re]);if(J.boolean.includes(re))e.boolean(X);if(J.count.includes(re))e.count(X);if(J.string.includes(re))e.string(X);if(J.normalize.includes(re))e.normalize(X);if(J.array.includes(re))e.array(X);if(J.number.includes(re))e.number(X)})})}let y;r.cacheHelpMessage=function(){y=this.help()},r.clearCachedHelpMessage=function(){y=void 0},r.hasCachedHelpMessage=function(){return!!y};function S(U,J,X,re){let he=[],_=null;return Object.keys(X).forEach((me)=>{he=he.concat(X[me])}),U.forEach((me)=>{if(_=[me].concat(J[me]),!_.some((Pe)=>he.indexOf(Pe)!==-1))X[re].push(me)}),he}function B(U){return e.getOptions().hiddenOptions.indexOf(U)<0||e.parsed.argv[e.getOptions().showHiddenOpt]}r.showHelp=(U)=>{let J=e.getInternalMethods().getLoggerInstance();if(!U)U="error";(typeof U==="function"?U:J[U])(r.help())},r.functionDescription=(U)=>{return["(",U.name?t.Parser.decamelize(U.name,"-"):n("generated-value"),")"].join("")},r.stringifiedValues=function(J,X){let re="",he=X||", ",_=[].concat(J);if(!J||!_.length)return re;return _.forEach((me)=>{if(re.length)re+=he;re+=JSON.stringify(me)}),re};function A(U,J){let X=`[${n("default:")} `;if(U===void 0&&!J)return null;if(J)X+=J;else switch(typeof U){case"string":X+=`"${U}"`;break;case"object":X+=JSON.stringify(U);break;default:X+=U}return`${X}]`}function V(){if(t.process.stdColumns)return Math.min(80,t.process.stdColumns);else return 80}let q=null;r.version=(U)=>{q=U},r.showVersion=(U)=>{let J=e.getInternalMethods().getLoggerInstance();if(!U)U="error";(typeof U==="function"?U:J[U])(q)},r.reset=function(J){return s=null,d=!1,h=[],p=!1,T=[],m=[],b=[],D=Cn(D,(X)=>!J[X]),r};let H=[];return r.freeze=function(){H.push({failMessage:s,failureOutput:d,usages:h,usageDisabled:p,epilogs:T,examples:m,commands:b,descriptions:D})},r.unfreeze=function(J=!1){let X=H.pop();if(!X)return;if(J)D={...X.descriptions,...D},b=[...X.commands,...b],h=[...X.usages,...h],m=[...X.examples,...m],T=[...X.epilogs,...T];else({failMessage:s,failureOutput:d,usages:h,usageDisabled:p,epilogs:T,examples:m,commands:b,descriptions:D}=X)},r}function xi(e){return typeof e==="object"}function pd(e,t){return xi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function uc(e){return xi(e)?e.indentation:0}function lo(e){return xi(e)?e.text:e}var hc=`###-begin-{{app_name}}-completions-###
|
|
151
|
+
complete -c copse -n '__fish_seen_subcommand_from add switch rename pin archive' -a '(git branch --format="%(refname:short)" 2>/dev/null)'`}function lb(e){switch(e){case"bash":return sb();case"zsh":return cb();case"fish":return ab()}}var fb,ub;var uu=ge(()=>{fb={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??ib(process.env.SHELL);if(t){let s=i==="fish"?lu():au(),c=lb(i);console.log(s+`
|
|
152
|
+
`+c),process.exit(0)}if(i==="fish")console.log(lu()),process.exit(0);console.log(au()),process.exit(0)}},ub=fb});var hu={};Ne(hu,{default:()=>hb});import{resolve as ai}from"path";function du(e,t){if(e.length<=t)return e;return e.slice(0,t-3)+"..."}var db,hb;var mu=ge(()=>{Ve();Wt();qe();rn();Rt();db={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 Ge(),d=Pn(a),m=new Set([ai(u)]),p=[u];for(let w of d){let A=ai(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,d,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:d,dirtyCount:m,focus:p}}));if(e.json)console.log(JSON.stringify(n,null,2)),process.exit(0);let o=ai(process.cwd()),i=e.all&&new Set(n.map((a)=>a.repoName)).size>1,s=n.map((a)=>{let d=(ai(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} ${du(a.lastCommit.message,30)}`:"\u2014",W=a.focus&&a.focus.length>0?du(a.focus.join(", "),30):"\u2014";return{repo:a.repoName,branch:d,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 d of s)console.log(`${d.repo.padEnd(c.repo)} ${d.branch.padEnd(c.branch)} ${d.dirty.padEnd(c.dirty)} ${d.sync.padEnd(c.sync)} ${d.lastCommit.padEnd(c.lastCommit)} ${d.focus.padEnd(c.focus)}`)}else{let a=`${"Branch".padEnd(c.branch)} ${"Status".padEnd(c.dirty)} ${"Sync".padEnd(c.sync)} ${"Last Commit".padEnd(c.lastCommit)} ${"Focus".padEnd(c.focus)}`,u=`${"-".repeat(c.branch)} ${"-".repeat(c.dirty)} ${"-".repeat(c.sync)} ${"-".repeat(c.lastCommit)} ${"-".repeat(c.focus)}`;console.log(a),console.log(u);for(let d of s)console.log(`${d.branch.padEnd(c.branch)} ${d.dirty.padEnd(c.dirty)} ${d.sync.padEnd(c.sync)} ${d.lastCommit.padEnd(c.lastCommit)} ${d.focus.padEnd(c.focus)}`)}process.exit(0)}catch(t){if(t instanceof bt)if(t.stderr.includes("not a git repository"))console.error("Error: not a git repository (or any of the parent directories): .git"),console.error("Run copse from within a git repository.");else console.error(`Git error: ${t.message}`);else console.error(`Error: ${t.message}`);process.exit(1)}}};hb=db});var bu={};Ne(bu,{default:()=>gb});import{existsSync as pu}from"fs";function mb(e){if(e)return e;let t=process.env.VISUAL||process.env.EDITOR;if(t)return t;for(let n of gu)try{if(Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"}).exitCode===0)return n}catch{continue}return null}var gu,pb,gb;var wu=ge(()=>{Ve();rn();Rt();gu=["code","cursor","vim","nvim","emacs","nano","subl","zed","idea","webstorm"];pb={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 gu)try{let o=Bun.spawnSync(["which",n],{stdout:"pipe",stderr:"pipe"});if(o.exitCode===0){let i=new TextDecoder().decode(o.stdout).trim();console.log(` ${n}: ${i}`)}}catch{}process.exit(0)}try{let t=e["branch-or-path"],n=e.focus,o=Boolean(e.root),i;if(!t)i=process.cwd();else{let m=await Ge(),p=await se.list(m);i=Yt(p,t).path}if(!pu(i))console.error(`Error: worktree path does not exist: ${i}`),process.exit(1);let s;try{s=Jr(i,{explicitFocus:n,forceRoot:o})}catch(m){if(m instanceof Gr)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,!pu(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=mb(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)}}},gb=pb});var yu={};Ne(yu,{default:()=>wb});import{resolve as xu}from"path";var bb,wb;var Su=ge(()=>{Ve();qe();Rt();bb={command:"exec <command>",describe:"Run a command in each worktree",builder:(e)=>e.positional("command",{type:"string",describe:"Shell command to execute",demandOption:!0}).option("all",{type:"boolean",alias:"a",describe:"Run across all configured repos"}).option("dirty",{type:"boolean",describe:"Only run in dirty worktrees"}).option("clean",{type:"boolean",describe:"Only run in clean worktrees"}).option("behind",{type:"boolean",describe:"Only run in worktrees behind upstream"}).option("parallel",{type:"boolean",alias:"p",describe:"Run commands in parallel (default: sequential)"}).option("json",{type:"boolean",alias:"j",describe:"Output results as JSON"}),handler:async(e)=>{let t=e.command,n=!!e.parallel,o=!!e.json;try{let i;if(e.all){let d=Ae(),m=await Ge(),p=Pn(d),w=new Set([xu(m)]),A=[m];for(let W of p){let y=xu(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((d)=>!d.isMain);if(e.dirty)s=s.filter((d)=>d.isDirty);if(e.clean)s=s.filter((d)=>!d.isDirty);if(e.behind)s=(await Nt(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)...
|
|
153
|
+
`);let c=async(d)=>{let m=Bun.spawn(["sh","-c",t],{cwd:d.path,stdout:"pipe",stderr:"pipe",env:{...Bun.env,COPSE_BRANCH:d.branch??"",COPSE_WORKTREE_PATH:d.path,COPSE_REPO_PATH:d.repoPath}}),[p,w,A]=await Promise.all([new Response(m.stdout).text(),new Response(m.stderr).text(),m.exited]);return{branch:d.branch??"(detached)",path:d.path,exitCode:A,stdout:p.trim(),stderr:w.trim()}},a;if(n)a=await Nt(s,10,c);else{a=[];for(let d of s)a.push(await c(d))}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(`
|
|
154
|
+
`))console.log(` ${A}`);if(p.stderr)for(let A of p.stderr.split(`
|
|
155
|
+
`))console.log(` ${A}`);console.log()}let d=a.filter((p)=>p.exitCode===0).length,m=a.length-d;console.log(`Done: ${d} passed, ${m} failed`)}let u=a.some((d)=>d.exitCode!==0);process.exit(u?1:0)}catch(i){et(i)}}},wb=bb});var Ru={};Ne(Ru,{default:()=>yb});var xb,yb;var Cu=ge(()=>{Ve();Rt();xb={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 Ge(),c=await se.list(s),a=(p)=>{return c.find((A)=>A.branch===p)?.branch??p},u=a(t),d=a(n),m=await se.diffBetween(u,d,{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)}}},yb=xb});var vu={};Ne(vu,{default:()=>Rb});var Sb,Rb;var Ou=ge(()=>{Ve();Mo();Rt();Sb={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=Ms(n).map((w)=>({...w,pin:ar(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)),d=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(d)} ${"Reason".padEnd(m)} ${"Pinned At".padEnd(p)}`),console.log(`${"-".repeat(u)} ${"-".repeat(d)} ${"-".repeat(m)} ${"-".repeat(p)}`);for(let w of a)console.log(`${(w.branch??"(detached)").padEnd(u)} ${w.path.padEnd(d)} ${(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(!ar(s.path))console.warn(`Warning: worktree is not pinned: ${s.path}`),process.exit(0);Ps(s.path),console.log(`Unpinned worktree: ${s.path}`),process.exit(0)}if(ar(s.path))console.warn(`Warning: worktree is already pinned: ${s.path}`),process.exit(0);let c=typeof t.reason==="string"?t.reason:void 0;Fs(s.path,c),console.log(`Pinned worktree: ${s.path}`),process.exit(0)}catch(t){et(t)}}},Rb=Sb});var ku={};Ne(ku,{default:()=>Ob});function Cb(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 vb,Ob;var Eu=ge(()=>{Vn();Rt();vb={command:"log",aliases:["logs"],describe:"Show worktree activity log",builder:(e)=>e.option("limit",{type:"number",default:20,describe:"Show the last N entries"}).option("json",{type:"boolean",alias:"j",describe:"Output as JSON"}).option("clear",{type:"boolean",describe:"Clear the activity log"}),handler:async(e)=>{try{let t=await Ge();if(e.clear){if(!await Tn("Clear activity log? [y/N] "))console.log("Cancelled."),process.exit(0);Kl(t),console.log("Activity log cleared."),process.exit(0)}let n=typeof e.limit==="number"?e.limit:20,o=Vl(t,{limit:n});if(e.json)console.log(JSON.stringify(o,null,2)),process.exit(0);for(let i of o){let s=Cb(i.event),c=i.branch??"(unknown)",a=i.details?Object.entries(i.details).map(([u,d])=>`${u}=${d}`).join(" "):"";console.log(`[${i.timestamp}] ${s} ${c}${a?` (${a})`:""}`)}process.exit(0)}catch(t){et(t)}}},Ob=vb});var Fu={};Ne(Fu,{default:()=>Eb});import{basename as Du}from"path";var kb,Eb;var Pu=ge(()=>{Ve();ks();qe();Rt();yn();kb={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 w=await Ql();if(s)console.log(JSON.stringify(w,null,2));else if(w.length===0)console.log("No archives found.");else{console.log(`Archives:
|
|
156
|
+
`);for(let A of w){let W=new Date(A.archivedAt).toLocaleString();console.log(` ${A.repo}/${A.branch}`),console.log(` Date: ${W}`),console.log(` Commit: ${A.commitHash.slice(0,8)} ${A.message}`),console.log(` Patch: ${A.patchPath}`),console.log()}}process.exit(0)}if(!t)console.error("Error: branch name is required (or use --list to view archives)"),process.exit(1);let c=await Ge(),a=await se.list(c),u=Yt(a,t);if(u.isMain)console.error("Error: cannot archive the main worktree"),process.exit(1);let d=o?"Archive":"Archive and remove";if(!n){if(!await Tn(`${d} worktree '${u.branch??Du(u.path)}'? [y/N] `))console.log("Cancelled."),process.exit(0)}let m=Ae(),p=Du(c);await Es(m,{worktreePath:u.path,mainRepoPath:c,repoName:p,branch:u.branch??null,keep:o,force:!1},{onStepStart:(w)=>{if(w===Ie.postRemove)console.log("Running postRemove hooks...");else if(w===Ie.monorepoHooks)console.log(" Running monorepo postRemove hooks...")},onStepDone:(w,A)=>{if(w===cn.createArchive&&A)console.log(`Archived: ${A}`);else if(w===Ie.monorepoHooks)console.log(" \u2713 Monorepo hooks completed");else if(w===Ie.session&&A==="killed")console.log(" \u2713 Session killed");else if(w===Ie.worktree)console.log(`Removed worktree: ${u.path}`)},onStepError:(w,A)=>{if(w===Ie.postRemove)console.warn(`Warning: postRemove hook failed: ${A}`);else console.warn(` \u26A0 ${w}: ${A}`)},onHookOutput:(w)=>console.log(` ${w}`)}),process.exit(0)}catch(c){et(c)}}},Eb=kb});var Mu={};Ne(Mu,{default:()=>Fb});var Db,Fb;var Au=ge(()=>{Ve();Rt();yn();Db={command:"rename <old> <new>",describe:"Rename worktree branch",builder:(e)=>e.positional("old",{type:"string",demandOption:!0,describe:"Current branch name"}).positional("new",{type:"string",demandOption:!0,describe:"New branch name"}).option("move-path",{type:"boolean",describe:"Also rename the worktree directory path"}),handler:async(e)=>{let{old:t,new:n}=e,o=!!e["move-path"];try{let i=await Ge(),s=await se.list(i),c=Yt(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);await Is({mainRepoPath:i,oldBranch:t,newBranch:n,worktreePath:c.path,movePath:o},{onStepDone:(u,d)=>{if(u===yt.renameBranch)console.log(`Renamed branch: ${t} \u2192 ${n}`);else if(u===yt.movePath&&d&&d.includes("\u2192"))console.log(`Moved worktree: ${d}`)},onStepError:(u,d)=>console.warn(` \u26A0 ${u}: ${d}`)}),process.exit(0)}catch(i){et(i)}}},Fb=Db});var Wu={};Ne(Wu,{default:()=>Wb});import{basename as Pb,resolve as Mb}from"path";var Ab,Wb;var Lu=ge(()=>{Ve();Wt();qe();Po();Ab={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=Pb(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 bt)console.error(`Error: ${s.stderr||s.message}`);else console.error(`Error: ${s.message}`);process.exit(1)}if(o)try{let s=Tt();console.log(` \u2713 Config initialized: ${s}`)}catch(s){console.warn(` \u26A0 Could not initialize config: ${s.message}`)}if(n)try{let s=Ae(),c=Or(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=Mb(i),u=en(s,a),d=kr(u,c);if(d.postCreate.length>0)console.log(" Running postCreate hooks..."),await Bn(d.postCreate,{cwd:a,env:{COPSE_REPO_PATH:a},onOutput:(m)=>console.log(` ${m}`)}),console.log(" \u2713 Hooks completed");console.log(` \u2713 Template '${n}' applied`)}catch(s){if(s instanceof Fo)console.error(`Error: hook timed out: ${s.command}`);else if(s instanceof Do){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)}},Wb=Ab});var Iu={};Ne(Iu,{default:()=>Ib});var Lb,Ib;var ju=ge(()=>{Wt();yn();Lb={command:"import <path>",describe:"Adopt a worktree with copse metadata",builder:(e)=>e.positional("path",{type:"string",describe:"Existing worktree directory path",demandOption:!0}).option("focus",{type:"array",alias:"f",describe:"Focus packages for monorepo (comma or space separated paths)",string:!0}).option("pin",{type:"boolean",describe:"Pin the worktree"}),handler:async(e)=>{let t=e.path,o=e.focus?.flatMap((s)=>s.split(/[,\s]+/)).map((s)=>s.trim()).filter(Boolean)??[],i=!!e.pin;try{let s=await Ls({targetPath:t,focusPaths:o,pin:i}),c=s.branch??"unknown";if(console.log(`Imported worktree: ${c} at ${s.path}`),o.length>0)console.log(` Focus: ${o.join(", ")}`);if(i)console.log(" Pinned");process.exit(0)}catch(s){if(s instanceof so)console.error(`Error: ${s.reason}`);else console.error(`Error: ${s.message}`);process.exit(1)}}},Ib=Lb});var Hu={};Ne(Hu,{default:()=>Vb});import{basename as li}from"path";async function Hb(e,t,n){let[o,i]=await Promise.all([Ss(t),se.list(e)]);if(n){let s=o.map((c)=>{let a=i.find((d)=>{let m=d.branch??li(d.path);return In(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??li(p.path);return In(w,t)===s.name}),a=c?zt(c.path):null,u=s.attached?" (attached)":"",d=a?.layout?` [${a.layout}]`:"",m=c?.branch?` ${c.branch}`:"";console.log(` ${s.name}${m} ${s.windows} windows${d}${u}`)}}async function Bb(e,t){let[n,o]=await Promise.all([Ss(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),d=a.branch??li(a.path);return u?.name===s.name||In(d,t)===s.name});if(await ys(s.name),c)ws(c.path);i++,console.log(` \u2713 Killed ${s.name}`)}console.log(`
|
|
159
|
+
Killed ${i} session${i!==1?"s":""}.`)}var jb,Vb;var Bu=ge(()=>{Ve();qe();jn();Rt();jb={command:"session [branch-or-path]",aliases:["ss"],describe:"Manage tmux sessions for worktrees",builder:(e)=>e.positional("branch-or-path",{type:"string",describe:"Branch name or worktree path to open session for"}).option("list",{type:"boolean",alias:"l",describe:"List active copse tmux sessions"}).option("kill",{type:"boolean",alias:"k",describe:"Kill the session for the specified worktree"}).option("kill-all",{type:"boolean",describe:"Kill all copse tmux sessions"}).option("layout",{type:"string",describe:"Use a named layout from config"}).option("json",{type:"boolean",alias:"j",describe:"Output in JSON format"}),handler:async(e)=>{let t=e["branch-or-path"],n=!!e.list,o=!!e.kill,i=!!e["kill-all"],s=e.layout,c=!!e.json;if(!await Oo())console.error("Error: tmux is not installed or not in PATH."),console.error("Install tmux to use session management."),process.exit(1);try{let a=await Ge(),u=Ae(),d=Mn(u);if(n)await Hb(a,d.prefix,c),process.exit(0);if(i)await Bb(a,d.prefix),process.exit(0);if(!t)console.error("Error: specify a branch or worktree path, or use --list."),process.exit(1);let m=await se.list(a),p=Yt(m,t),w=p.branch??li(p.path);if(o){if(await Xr(w,p.path,d.prefix))console.log(`Killed session for '${w}'`);else console.log(`No active session for '${w}'`);process.exit(0)}let A=Er(u,s),W=await qr(w,p.path,{layout:A,prefix:d.prefix,attach:!0,layoutName:s??d.defaultLayout});console.log(`Session: ${W}`),process.exit(0)}catch(a){et(a)}}};Vb=jb});import{existsSync as qs,mkdirSync as Vu,writeFileSync as Ku}from"fs";import{dirname as Tu,join as Ho}from"path";function Kb(e){let t=process.env.HOME||process.env.USERPROFILE||"~";switch(e){case"claude-code":return Ho(t,".claude","skills","copse");case"codex":return Ho(t,".agents","skills","copse");case"opencode":return Ho(t,".config","opencode","skill","copse")}}function Tb(e){return Ho(Kb(e),"SKILL.md")}function Jb(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 zb(){let e=Gb.map((n)=>`| \`${n.command}\` | ${n.aliases} | ${n.description} |`),t=Uu.map((n)=>`- [\`copse ${n.command}\`](references/${n.command}.md)`);return["---","name: copse",`description: ${Ub}`,"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 qb(){let e=new Map;for(let n of Uu){let o=[`# copse ${n.command}`,"",n.summary,"","## Synopsis","","```",n.synopsis,"```","","## Options","",Jb(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=Xb();return e.set("config-schema.md",t),e}function Xb(){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 Gu(e){let t=Tb(e),n=Ho(Tu(t),"references"),o=zb(),i=qb(),s=Tu(t);if(!qs(s))Vu(s,{recursive:!0});if(!qs(n))Vu(n,{recursive:!0});let c=qs(t);Ku(t,o,"utf-8");for(let[a,u]of i.entries())Ku(Ho(n,a),u,"utf-8");return{filePath:t,referenceDir:n,referenceCount:i.size,platform:e,action:c?"updated":"created"}}var Xs,Ub="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.",Gb,Uu;var Ju=ge(()=>{Xs=["claude-code","codex","opencode"];Gb=[{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."}],Uu=[{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 zu={};Ne(zu,{default:()=>Qb});import{dirname as Yb}from"path";var Zb,Qb;var qu=ge(()=>{qe();Ju();Zb={command:"init",describe:"Initialize config or install copse integrations",builder:(e)=>e.option("skill",{type:"string",alias:"s",describe:`Install AI agent skill (${Xs.join(", ")})`,choices:Xs}),handler:async(e)=>{let t=e.skill;try{if(!t){let i=Tt();console.log(`\u2713 Initialized config \u2192 ${i}`),process.exit(0)}let n=Gu(t),o=n.action==="created"?"Installed":"Updated";console.log(`\u2713 ${o} \u2192 ${Yb(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)}}},Qb=Zb});import{notStrictEqual as wd,strictEqual as xd}from"assert";var Nu={right:ed,center:td};class $s{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){let t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]==="string")return this.applyLayoutDSL(e[0]);let t=e.map((n)=>{if(typeof n==="string")return this.colFromString(n);return n});return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]==="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){let t=e.split(`
|
|
164
|
+
`).map((o)=>o.split("\t")),n=0;return t.forEach((o)=>{if(o.length>1&&kt.stringWidth(o[0])>n)n=Math.min(Math.floor(this.width*0.5),kt.stringWidth(o[0]))}),t.forEach((o)=>{this.div(...o.map((i,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=kt.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){let e=[];return this.rows.forEach((t)=>{this.rowToString(t,e)}),e.filter((t)=>!t.hidden).map((t)=>t.text).join(`
|
|
165
|
+
`)}rowToString(e,t){return this.rasterize(e).forEach((n,o)=>{let i="";n.forEach((s,c)=>{let{width:a}=e[c],u=this.negatePadding(e[c]),d=s;if(u>kt.stringWidth(s))d+=" ".repeat(u-kt.stringWidth(s));if(e[c].align&&e[c].align!=="left"&&this.wrap){let p=Nu[e[c].align];if(d=p(d,u),kt.stringWidth(d)<u)d+=" ".repeat((a||0)-kt.stringWidth(d)-1)}let m=e[c].padding||[0,0,0,0];if(m[3])i+=" ".repeat(m[3]);if(i+=Ns(e[c],d,"| "),i+=d,i+=Ns(e[c],d," |"),m[1])i+=" ".repeat(m[1]);if(o===0&&t.length>0)i=this.renderInline(i,t[t.length-1])}),t.push({text:i.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){let n=e.match(/^ */),o=n?n[0].length:0,i=t.text,s=kt.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=kt.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 d=0;d<s;d++)if(u[d]===void 0)u.push("");u.push(c)})}),t}negatePadding(e){let t=e.width||0;if(e.padding)t-=(e.padding[3]||0)+(e.padding[1]||0);if(e.border)t-=4;return t}columnWidths(e){if(!this.wrap)return e.map((s)=>{return s.width||kt.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,$u(e[c]));return s})}}function Ns(e,t,n){if(e.border){if(/[.']-+[.']/.test(t))return"";if(t.trim().length!==0)return n;return" "}return""}function $u(e){let t=e.padding||[],n=1+(t[3]||0)+(t[1]||0);if(e.border)return n+4;return n}function _u(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function ed(e,t){e=e.trim();let n=kt.stringWidth(e);if(n<t)return" ".repeat(t-n)+e;return e}function td(e,t){e=e.trim();let n=kt.stringWidth(e);if(n>=t)return e;return" ".repeat(t-n>>1)+e}var kt;function _s(e,t){return kt=t,new $s({width:(e===null||e===void 0?void 0:e.width)||_u(),wrap:e===null||e===void 0?void 0:e.wrap})}var ec=new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)","g");function fi(e){return e.replace(ec,"")}function tc(e,t){let[n,o]=e.match(ec)||["",""];e=fi(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 ui(e){return _s(e,{stringWidth:(t)=>{return[...t].length},stripAnsi:fi,wrap:tc})}import{dirname as nc,resolve as oc}from"path";import{readdirSync as nd,statSync as od}from"fs";function di(e,t){let n=oc(".",e),o;if(!od(n).isDirectory())n=nc(n);while(!0){if(o=t(n,nd(n)),o)return oc(n,o);if(n=nc(o=n),o===n)break}}import{inspect as yd}from"util";import{readFileSync as Sd}from"fs";import{fileURLToPath as Rd}from"url";import{format as sd}from"util";import{normalize as cd,resolve as ad}from"path";function Un(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 lr(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 fr(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 rc(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 It;(function(e){e.BOOLEAN="boolean",e.STRING="string",e.NUMBER="number",e.ARRAY="array"})(It||(It={}));var fn;class mi{constructor(e){fn=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=rc(e),i=typeof e==="string",s=rd(Object.assign(Object.create(null),n.alias)),c=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},n.configuration),a=Object.assign(Object.create(null),n.default),u=n.configObjects||[],d=n.envPrefix,m=c["populate--"],p=m?"--":"_",w=Object.create(null),A=Object.create(null),W=n.__||fn.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:[]},R=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,k=new RegExp("^--"+c["negation-prefix"]+"(.+)");if([].concat(n.array||[]).filter(Boolean).forEach(function(h){let b=typeof h==="object"?h.key:h,P=Object.keys(h).map(function(F){return{boolean:"bools",string:"strings",number:"numbers"}[F]}).filter(Boolean).pop();if(P)y[P][b]=!0;y.arrays[b]=!0,y.keys.push(b)}),[].concat(n.boolean||[]).filter(Boolean).forEach(function(h){y.bools[h]=!0,y.keys.push(h)}),[].concat(n.string||[]).filter(Boolean).forEach(function(h){y.strings[h]=!0,y.keys.push(h)}),[].concat(n.number||[]).filter(Boolean).forEach(function(h){y.numbers[h]=!0,y.keys.push(h)}),[].concat(n.count||[]).filter(Boolean).forEach(function(h){y.counts[h]=!0,y.keys.push(h)}),[].concat(n.normalize||[]).filter(Boolean).forEach(function(h){y.normalize[h]=!0,y.keys.push(h)}),typeof n.narg==="object")Object.entries(n.narg).forEach(([h,b])=>{if(typeof b==="number")y.nargs[h]=b,y.keys.push(h)});if(typeof n.coerce==="object")Object.entries(n.coerce).forEach(([h,b])=>{if(typeof b==="function")y.coercions[h]=b,y.keys.push(h)});if(typeof n.config<"u"){if(Array.isArray(n.config)||typeof n.config==="string")[].concat(n.config).filter(Boolean).forEach(function(h){y.configs[h]=!0});else if(typeof n.config==="object")Object.entries(n.config).forEach(([h,b])=>{if(typeof b==="boolean"||typeof b==="function")y.configs[h]=b})}K(n.key,s,n.default,y.arrays),Object.keys(a).forEach(function(h){(y.aliases[h]||[]).forEach(function(b){a[b]=a[h]})});let D=null;L();let x=[],S=Object.assign(Object.create(null),{_:[]}),v={};for(let h=0;h<o.length;h++){let b=o[h],P=b.replace(/^-{3,}/,"---"),F,O,$,oe,be,le;if(b!=="--"&&/^-/.test(b)&&we(b))T(b);else if(P.match(/^---+(=|$)/)){T(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(I(oe[1],y.arrays))h=z(h,oe[1],o,oe[2]);else if(I(oe[1],y.nargs)!==!1)h=j(h,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)O=oe[1],Z(O,I(O,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(O=oe[1],I(O,y.arrays))h=z(h,O,o);else if(I(O,y.nargs)!==!1)h=j(h,O,o);else if(be=o[h+1],be!==void 0&&(!be.match(/^-/)||be.match(R))&&!I(O,y.bools)&&!I(O,y.counts))Z(O,be),h++;else if(/^(true|false)$/.test(be))Z(O,be),h++;else Z(O,pe(O))}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(R)){if(be=o[h+1],oe=b.match(/^-(.\..+)/),oe!==null&&Array.isArray(oe)&&oe.length>=2)if(O=oe[1],be!==void 0&&!be.match(/^-/)&&!I(O,y.bools)&&!I(O,y.counts))Z(O,be),h++;else Z(O,pe(O))}else if(b.match(/^-[^-]+/)&&!b.match(R)){$=b.slice(1,-1).split(""),F=!1;for(let He=0;He<$.length;He++){if(be=b.slice(He+2),$[He+1]&&$[He+1]==="="){if(le=b.slice(He+3),O=$[He],I(O,y.arrays))h=z(h,O,o,le);else if(I(O,y.nargs)!==!1)h=j(h,O,o,le);else Z(O,le);F=!0;break}if(be==="-"){Z($[He],be);continue}if(/[A-Za-z]/.test($[He])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(be)&&I(be,y.bools)===!1){Z($[He],be),F=!0;break}if($[He+1]&&$[He+1].match(/\W/)){Z($[He],be),F=!0;break}else Z($[He],pe($[He]))}if(O=b.slice(-1)[0],!F&&O!=="-")if(I(O,y.arrays))h=z(h,O,o);else if(I(O,y.nargs)!==!1)h=j(h,O,o);else if(be=o[h+1],be!==void 0&&(!/^(-|--)[^-]/.test(be)||be.match(R))&&!I(O,y.bools)&&!I(O,y.counts))Z(O,be),h++;else if(/^(true|false)$/.test(be))Z(O,be),h++;else Z(O,pe(O))}else if(b.match(/^-[0-9]$/)&&b.match(R)&&I(b.slice(1),y.bools))O=b.slice(1),Z(O,pe(O));else if(b==="--"){x=o.slice(h+1);break}else if(c["halt-at-non-option"]){x=o.slice(h);break}else T(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(h){if(!M(S,h.split(".")))Z(h,0)}),m&&x.length)S[p]=[];if(x.forEach(function(h){S[p].push(h)}),c["camel-case-expansion"]&&c["strip-dashed"])Object.keys(S).filter((h)=>h!=="--"&&h.includes("-")).forEach((h)=>{delete S[h]});if(c["strip-aliased"])[].concat(...Object.keys(s).map((h)=>s[h])).forEach((h)=>{if(c["camel-case-expansion"]&&h.includes("-"))delete S[h.split(".").map((b)=>Un(b)).join(".")];delete S[h]});function T(h){let b=q("_",h);if(typeof b==="string"||typeof b==="number")S._.push(b)}function j(h,b,P,F){let O,$=I(b,y.nargs);if($=typeof $!=="number"||isNaN($)?1:$,$===0){if(!We(F))D=Error(W("Argument unexpected for: %s",b));return Z(b,pe(b)),h}let oe=We(F)?0:1;if(c["nargs-eats-options"]){if(P.length-(h+1)+oe<$)D=Error(W("Not enough arguments following: %s",b));oe=$}else{for(O=h+1;O<P.length;O++)if(!P[O].match(/^-[^0-9]/)||P[O].match(R)||we(P[O]))oe++;else break;if(oe<$)D=Error(W("Not enough arguments following: %s",b))}let be=Math.min(oe,$);if(!We(F)&&be>0)Z(b,F),be--;for(O=h+1;O<be+h+1;O++)Z(b,P[O]);return h+be}function z(h,b,P,F){let O=[],$=F||P[h+1],oe=I(b,y.nargs);if(I(b,y.bools)&&!/^(true|false)$/.test($))O.push(!0);else if(We($)||We(F)&&/^-/.test($)&&!R.test($)&&!we($)){if(a[b]!==void 0){let be=a[b];O=Array.isArray(be)?be:[be]}}else{if(!We(F))O.push(J(b,F,!0));for(let be=h+1;be<P.length;be++){if(!c["greedy-arrays"]&&O.length>0||oe&&typeof oe==="number"&&O.length>=oe)break;if($=P[be],/^-/.test($)&&!R.test($)&&!we($))break;h=be,O.push(J(b,$,i))}}if(typeof oe==="number"&&(oe&&O.length<oe||isNaN(oe)&&O.length===0))D=Error(W("Not enough arguments following: %s",b));return Z(b,O),h}function Z(h,b,P=i){if(/-/.test(h)&&c["camel-case-expansion"]){let $=h.split(".").map(function(oe){return Un(oe)}).join(".");G(h,$)}let F=J(h,b,P),O=h.split(".");if(U(S,O,F),y.aliases[h])y.aliases[h].forEach(function($){let oe=$.split(".");U(S,oe,F)});if(O.length>1&&c["dot-notation"])(y.aliases[O[0]]||[]).forEach(function($){let oe=$.split("."),be=[].concat(O);if(be.shift(),oe=oe.concat(be),!(y.aliases[h]||[]).includes(oe.join(".")))U(S,oe,F)});if(I(h,y.normalize)&&!I(h,y.arrays))[h].concat(y.aliases[h]||[]).forEach(function(oe){Object.defineProperty(v,oe,{enumerable:!0,get(){return b},set(be){b=typeof be==="string"?fn.normalize(be):be}})})}function G(h,b){if(!(y.aliases[h]&&y.aliases[h].length))y.aliases[h]=[b],w[b]=!0;if(!(y.aliases[b]&&y.aliases[b].length))G(b,h)}function J(h,b,P){if(P)b=id(b);if(I(h,y.bools)||I(h,y.counts)){if(typeof b==="string")b=b==="true"}let F=Array.isArray(b)?b.map(function(O){return q(h,O)}):q(h,b);if(I(h,y.counts)&&(We(F)||typeof F==="boolean"))F=hi();if(I(h,y.normalize)&&I(h,y.arrays))if(Array.isArray(b))F=b.map((O)=>{return fn.normalize(O)});else F=fn.normalize(b);return F}function q(h,b){if(!c["parse-positional-numbers"]&&h==="_")return b;if(!I(h,y.strings)&&!I(h,y.bools)&&!Array.isArray(b)){if(fr(b)&&c["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${b}`)))||!We(b)&&I(h,y.numbers))b=Number(b)}return b}function Y(h){let b=Object.create(null);E(b,y.aliases,a),Object.keys(y.configs).forEach(function(P){let F=h[P]||b[P];if(F)try{let O=null,$=fn.resolve(fn.cwd(),F),oe=y.configs[P];if(typeof oe==="function"){try{O=oe($)}catch(be){O=be}if(O instanceof Error){D=O;return}}else O=fn.require($);ne(O)}catch(O){if(O.name==="PermissionDenied")D=O;else if(h[P])D=Error(W("Invalid JSON config file: %s",F))}})}function ne(h,b){Object.keys(h).forEach(function(P){let F=h[P],O=b?b+"."+P:P;if(typeof F==="object"&&F!==null&&!Array.isArray(F)&&c["dot-notation"])ne(F,O);else if(!M(S,O.split("."))||I(O,y.arrays)&&c["combine-arrays"])Z(O,F)})}function he(){if(typeof u<"u")u.forEach(function(h){ne(h)})}function _(h,b){if(typeof d>"u")return;let P=typeof d==="string"?d:"",F=fn.env();Object.keys(F).forEach(function(O){if(P===""||O.lastIndexOf(P,0)===0){let $=O.split("__").map(function(oe,be){if(be===0)oe=oe.substring(P.length);return Un(oe)});if((b&&y.configs[$.join(".")]||!b)&&!M(h,$))Z($.join("."),F[O])}})}function me(h){let b,P=new Set;Object.keys(h).forEach(function(F){if(!P.has(F)){if(b=I(F,y.coercions),typeof b==="function")try{let O=q(F,b(h[F]));[].concat(y.aliases[F]||[],F).forEach(($)=>{P.add($),h[$]=O})}catch(O){D=O}}})}function ke(h){return y.keys.forEach((b)=>{if(~b.indexOf("."))return;if(typeof h[b]>"u")h[b]=void 0}),h}function E(h,b,P,F=!1){Object.keys(P).forEach(function(O){if(!M(h,O.split("."))){if(U(h,O.split("."),P[O]),F)A[O]=!0;(b[O]||[]).forEach(function($){if(M(h,$.split(".")))return;U(h,$.split("."),P[O])})}})}function M(h,b){let P=h;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(O){P=P[O]||{}});let F=b[b.length-1];if(typeof P!=="object")return!1;else return F in P}function U(h,b,P){let F=h;if(!c["dot-notation"])b=[b.join(".")];b.slice(0,-1).forEach(function(le){if(le=ic(le),typeof F==="object"&&F[le]===void 0)F[le]={};if(typeof F[le]!=="object"||Array.isArray(F[le])){if(Array.isArray(F[le]))F[le].push({});else F[le]=[F[le],{}];F=F[le][F[le].length-1]}else F=F[le]});let O=ic(b[b.length-1]),$=I(b.join("."),y.arrays),oe=Array.isArray(P),be=c["duplicate-arguments-array"];if(!be&&I(O,y.nargs)){if(be=!0,!We(F[O])&&y.nargs[O]===1||Array.isArray(F[O])&&F[O].length===y.nargs[O])F[O]=void 0}if(P===hi())F[O]=hi(F[O]);else if(Array.isArray(F[O]))if(be&&$&&oe)F[O]=c["flatten-duplicate-arrays"]?F[O].concat(P):(Array.isArray(F[O][0])?F[O]:[F[O]]).concat([P]);else if(!be&&Boolean($)===Boolean(oe))F[O]=P;else F[O]=F[O].concat([P]);else if(F[O]===void 0&&$)F[O]=oe?P:[P];else if(be&&!(F[O]===void 0||I(O,y.counts)||I(O,y.bools)))F[O]=[F[O],P];else F[O]=P}function K(...h){h.forEach(function(b){Object.keys(b||{}).forEach(function(P){if(y.aliases[P])return;y.aliases[P]=[].concat(s[P]||[]),y.aliases[P].concat(P).forEach(function(F){if(/-/.test(F)&&c["camel-case-expansion"]){let O=Un(F);if(O!==P&&y.aliases[P].indexOf(O)===-1)y.aliases[P].push(O),w[O]=!0}}),y.aliases[P].concat(P).forEach(function(F){if(F.length>1&&/[A-Z]/.test(F)&&c["camel-case-expansion"]){let O=lr(F,"-");if(O!==P&&y.aliases[P].indexOf(O)===-1)y.aliases[P].push(O),w[O]=!0}}),y.aliases[P].forEach(function(F){y.aliases[F]=[P].concat(y.aliases[P].filter(function(O){return F!==O}))})})})}function I(h,b){let P=[].concat(y.aliases[h]||[],h),F=Object.keys(b),O=P.find(($)=>F.includes($));return O?b[O]:!1}function ee(h){let b=Object.keys(y);return[].concat(b.map((F)=>y[F])).some(function(F){return Array.isArray(F)?F.includes(h):F[h]})}function de(h,...b){return[].concat(...b).some(function(F){let O=h.match(F);return O&&ee(O[1])})}function ie(h){if(h.match(R)||!h.match(/^-[^-]+/))return!1;let b=!0,P,F=h.slice(1).split("");for(let O=0;O<F.length;O++){if(P=h.slice(O+2),!ee(F[O])){b=!1;break}if(F[O+1]&&F[O+1]==="="||P==="-"||/[A-Za-z]/.test(F[O])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(P)||F[O+1]&&F[O+1].match(/\W/))break}return b}function we(h){return c["unknown-options-as-args"]&&ve(h)}function ve(h){if(h=h.replace(/^-{3,}/,"--"),h.match(R))return!1;if(ie(h))return!1;return!de(h,/^-+([^=]+?)=[\s\S]*$/,k,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function pe(h){if(!I(h,y.bools)&&!I(h,y.counts)&&`${h}`in a)return a[h];else return Ee(De(h))}function Ee(h){return{[It.BOOLEAN]:!0,[It.STRING]:"",[It.NUMBER]:void 0,[It.ARRAY]:[]}[h]}function De(h){let b=It.BOOLEAN;if(I(h,y.strings))b=It.STRING;else if(I(h,y.numbers))b=It.NUMBER;else if(I(h,y.bools))b=It.BOOLEAN;else if(I(h,y.arrays))b=It.ARRAY;return b}function We(h){return h===void 0}function L(){Object.keys(y.counts).find((h)=>{if(I(h,y.arrays))return D=Error(W("Invalid configuration: %s, opts.count excludes opts.array.",h)),!0;else if(I(h,y.nargs))return D=Error(W("Invalid configuration: %s, opts.count excludes opts.narg.",h)),!0;return!1})}return{aliases:Object.assign({},y.aliases),argv:Object.assign(v,S),configuration:c,defaulted:Object.assign({},A),error:D,newAliases:Object.assign({},w)}}}function rd(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 hi(e){return e!==void 0?e+1:1}function ic(e){if(e==="__proto__")return"___proto___";return e}function id(e){return typeof e==="string"&&(e[0]==="'"||e[0]==='"')&&e[e.length-1]===e[0]?e.substring(1,e.length-1):e}var pi,gi,bi,sc=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):12,cc=(gi=(pi=process===null||process===void 0?void 0:process.versions)===null||pi===void 0?void 0:pi.node)!==null&&gi!==void 0?gi:(bi=process===null||process===void 0?void 0:process.version)===null||bi===void 0?void 0:bi.slice(1);if(cc){if(Number(cc.match(/^([^.]+)/)[1])<sc)throw Error(`yargs parser supports a minimum Node.js version of ${sc}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var ld=process?process.env:{},ac=new mi({cwd:process.cwd,env:()=>{return ld},format:sd,normalize:cd,resolve:ad,require:(e)=>{return ln(e)}}),Uo=function(t,n){return ac.parse(t.slice(),n).argv};Uo.detailed=function(e,t){return ac.parse(e.slice(),t)};Uo.camelCase=Un;Uo.decamelize=lr;Uo.looksLikeNumber=fr;var wi=Uo;import{basename as Cd,dirname as vd,extname as Od,relative as kd,resolve as pc}from"path";function lc(){if(fd())return 0;return 1}function fd(){return ud()&&!process.defaultApp}function ud(){return!!process.versions.electron}function xi(e){return e.slice(lc()+1)}function fc(){return process.argv[lc()]}class Je extends Error{constructor(e){super(e||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,Je)}}import{readFileSync as dd,statSync as hd,writeFile as md}from"fs";import{format as pd}from"util";import{resolve as gd}from"path";var uc={fs:{readFileSync:dd,writeFile:md},format:pd,resolve:gd,exists:(e)=>{try{return hd(e).isFile()}catch(t){return!1}}};var Zt;class dc{constructor(e){e=e||{},this.directory=e.directory||"./locales",this.updateFiles=typeof e.updateFiles==="boolean"?e.updateFiles:!0,this.locale=e.locale||"en",this.fallbackToLanguage=typeof e.fallbackToLanguage==="boolean"?e.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...e){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let t=e.shift(),n=function(){};if(typeof e[e.length-1]==="function")n=e.pop();if(n=n||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][t]&&this.updateFiles)this.cache[this.locale][t]=t,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:n});else n();return Zt.format.apply(Zt.format,[this.cache[this.locale][t]||t].concat(e))}__n(){let e=Array.prototype.slice.call(arguments),t=e.shift(),n=e.shift(),o=e.shift(),i=function(){};if(typeof e[e.length-1]==="function")i=e.pop();if(!this.cache[this.locale])this._readLocaleFile();let 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 Zt.format.apply(Zt.format,c.concat(e))}setLocale(e){this.locale=e}getLocale(){return this.locale}updateLocale(e){if(!this.cache[this.locale])this._readLocaleFile();for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))this.cache[this.locale][t]=e[t]}_taggedLiteral(e,...t){let n="";return e.forEach(function(o,i){let 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);Zt.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(Zt.fs.readFileSync)e=JSON.parse(Zt.fs.readFileSync(t,"utf-8"))}catch(n){if(n instanceof SyntaxError)n.message="syntax error in "+t;if(n.code==="ENOENT")e={};else throw n}this.cache[this.locale]=e}_resolveLocaleFile(e,t){let n=Zt.resolve(e,"./",t+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(n)&&~t.lastIndexOf("_")){let o=Zt.resolve(e,"./",t.split("_")[0]+".json");if(this._fileExistsSync(o))n=o}return n}_fileExistsSync(e){return Zt.exists(e)}}function hc(e,t){Zt=t;let n=new dc(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 bd=(e)=>{return hc(e,uc)},mc=bd;var Ed="require is not supported by ESM",gc="loading a directory of commands is not supported yet for ESM",Go;try{Go=Rd(import.meta.url)}catch(e){Go=process.cwd()}var Dd=Go.substring(0,Go.lastIndexOf("node_modules")),yi={assert:{notStrictEqual:wd,strictEqual:xd},cliui:ui,findUp:di,getEnv:(e)=>{return process.env[e]},inspect:yd,getCallerFile:()=>{throw new Je(gc)},getProcessArgvBin:fc,mainFilename:Dd||process.cwd(),Parser:wi,path:{basename:Cd,dirname:vd,extname:Od,relative:kd,resolve:pc},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:Sd,require:()=>{throw new Je(Ed)},requireDirectory:()=>{throw new Je(gc)},stringWidth:(e)=>{return[...e].length},y18n:mc({directory:pc(Go,"../../../locales"),updateFiles:!1})};function gt(e,t,n,o){n.assert.notStrictEqual(e,t,o)}function Si(e,t){t.assert.strictEqual(typeof e,"string")}function fo(e){return Object.keys(e)}function ze(e){return!!e&&!!e.then&&typeof e.then==="function"}function vn(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 Fd=["first","second","third","fourth","fifth","sixth"];function xe(e,t,n){function o(){return typeof e==="object"?[{demanded:[],optional:[]},e,t]:[vn(`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 d=a||u.length;if(d<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(d>m)throw new Je(`Too many arguments provided. Expected max ${m} but received ${d}.`);s.demanded.forEach((p)=>{let w=u.shift(),A=bc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)wc(A,p.cmd,i);i+=1}),s.optional.forEach((p)=>{if(u.length===0)return;let w=u.shift(),A=bc(w);if(p.cmd.filter((y)=>y===A||y==="*").length===0)wc(A,p.cmd,i);i+=1})}catch(i){console.warn(i.stack)}}function bc(e){if(Array.isArray(e))return"array";else if(e===null)return"null";return typeof e}function wc(e,t,n){throw new Je(`Invalid ${Fd[n]||"manyith"} argument. Expected ${t.join(" or ")} but received ${e}.`)}class Ri{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 xc(e){if(!e)return[];return e.map((t)=>{return t.applyBeforeValidation=!1,t})}function Gn(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 Jn(e,t,n=(o)=>{throw o}){try{let o=Pd(e)?e():e;return ze(o)?o.then((i)=>t(i)):t(o)}catch(o){return n(o)}}function Pd(e){return typeof e==="function"}function Ci(e){for(let t=0,n=Object.keys(ln.cache),o;t<n.length;t++)if(o=ln.cache[n[t]],o.exports===e)return o;return null}var uo=/(^\*)|(^\$0)/;class Sc{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=xc(i);if(o=o||(()=>{}),Array.isArray(e))if(Md(e))[e,...c]=e;else for(let u of e)this.addHandler(u);else if(Wd(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(yc(n)){this.addHandler([e].concat(c),t,n.builder,n.handler,n.middlewares,n.deprecated);return}if(typeof e==="string"){let u=vn(e);c=c.map((p)=>vn(p).cmd);let d=!1,m=[u.cmd].concat(c).filter((p)=>{if(uo.test(p))return d=!0,!1;return!0});if(m.length===0&&d)m.push("$0");if(d)u.cmd=m[0],c=m.slice(1),e=e.replace(uo,u.cmd);if(c.forEach((p)=>{this.aliasMap[p]=u.cmd}),t!==!1)this.usage.command(e,t,d,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},d)this.defaultCommand=this.handlers[u.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(e,t,n,o,i,s){let c=this.handlers[e]||this.handlers[this.aliasMap[e]]||this.defaultCommand,a=t.getInternalMethods().getContext(),u=a.commands.slice(),d=!e;if(e)a.commands.push(e),a.fullCommands.push(c.original);let m=this.applyBuilderUpdateUsageAndParse(d,c,t,n.aliases,u,o,i,s);return ze(m)?m.then((p)=>this.applyMiddlewareAndGetResult(d,c,p.innerArgv,a,i,p.aliases,t)):this.applyMiddlewareAndGetResult(d,c,m.innerArgv,a,i,m.aliases,t)}applyBuilderUpdateUsageAndParse(e,t,n,o,i,s,c,a){let u=t.builder,d=n;if(ur(u)){n.getInternalMethods().getUsageInstance().freeze();let m=u(n.getInternalMethods().reset(o),a);if(ze(m))return m.then((p)=>{return d=Cc(p)?p:n,this.parseAndUpdateUsage(e,t,d,i,s,c)})}else if(Ad(u))n.getInternalMethods().getUsageInstance().freeze(),d=n.getInternalMethods().reset(o),Object.keys(t.builder).forEach((m)=>{d.option(m,u[m])});return this.parseAndUpdateUsage(e,t,d,i,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=uo.test(t.original)?t.original.replace(uo,"").trim():t.original,o=e.filter((i)=>{return!uo.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=Jn(n,(d)=>{return u(d),d})}if(t.handler&&!s.getInternalMethods().getHasOutput()){s.getInternalMethods().setHasOutput();let u=!!s.getOptions().configuration["populate--"];if(s.getInternalMethods().postProcess(n,u,!1,!1),n=Gn(n,s,c,!1),n=Jn(n,(d)=>{let m=t.handler(d);return ze(m)?m.then(()=>d):d}),!e)s.getInternalMethods().getUsageInstance().cacheHelpMessage();if(ze(n)&&!s.getInternalMethods().hasParseCallback())n.catch((d)=>{try{s.getInternalMethods().getUsageInstance().fail(null,d)}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),d=Gn(n,c,u,!0);return ze(d)?d.then((m)=>this.handleValidationAndGetResult(e,t,m,o,s,c,u,a)):this.handleValidationAndGetResult(e,t,d,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=vn(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((d)=>{if(i.configuration["unknown-options-as-args"])i.key[u]=!0;s.push(`--${u}`),s.push(d)})}),!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((d)=>{u.push(...a.aliases[d])}),Object.keys(a.argv).forEach((d)=>{if(u.includes(d)){if(!t[d])t[d]=a.argv[d];if(!this.isInConfigs(o,d)&&!this.isDefaulted(o,d)&&Object.prototype.hasOwnProperty.call(e,d)&&Object.prototype.hasOwnProperty.call(a.argv,d)&&(Array.isArray(e[d])||Array.isArray(a.argv[d])))e[d]=[].concat(e[d],a.argv[d]);else e[d]=a.argv[d]}})}}isDefaulted(e,t){let{default:n}=e.getOptions();return Object.prototype.hasOwnProperty.call(n,t)||Object.prototype.hasOwnProperty.call(n,this.shim.Parser.camelCase(t))}isInConfigs(e,t){let{configObjects:n}=e.getOptions();return n.some((o)=>Object.prototype.hasOwnProperty.call(o,t))||n.some((o)=>Object.prototype.hasOwnProperty.call(o,this.shim.Parser.camelCase(t)))}runDefaultBuilderOn(e){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(e)){let n=uo.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(ur(t))return t(e,!0);else if(!yc(t))Object.keys(t).forEach((n)=>{e.option(n,t[n])});return}moduleName(e){let t=Ci(e);if(!t)throw Error(`No command name given for module: ${this.shim.inspect(e)}`);return this.commandFromFilename(t.filename)}commandFromFilename(e){return this.shim.path.basename(e,this.shim.path.extname(e))}extractDesc({describe:e,description:t,desc:n}){for(let o of[e,t,n]){if(typeof o==="string"||o===!1)return o;gt(o,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let e=this.frozens.pop();gt(e,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=e}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function Rc(e,t,n,o){return new Sc(e,t,n,o)}function yc(e){return typeof e==="object"&&!!e.builder&&typeof e.handler==="function"}function Md(e){return e.every((t)=>typeof t==="string")}function ur(e){return typeof e==="function"}function Ad(e){return typeof e==="object"}function Wd(e){return typeof e==="object"&&!Array.isArray(e)}function On(e={},t=()=>!0){let n={};return fo(e).forEach((o)=>{if(t(o,e[o]))n[o]=e[o]}),n}function kn(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 Ld(e){return typeof e==="boolean"}function Oc(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(Ld(_)){if(Y)throw Y;else if(q)throw Error(q)}else _(q,Y,o)}else{if(e.getExitProcess())kn(!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 d=[],m=!1;o.usage=(J,q)=>{if(J===null)return m=!0,d=[],o;return m=!1,d.push([J,q||""]),o},o.getUsage=()=>{return d},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,R;o.wrap=(J)=>{y=!0,R=J},o.getWrap=()=>{if(t.getEnv("YARGS_DISABLE_WRAP"))return null;if(!y)R=z(),y=!0;return R};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(T),ke=Object.keys(ke.reduce((ie,we)=>{if(we!=="_")ie[we]=!0;return ie},{}));let E=o.getWrap(),M=t.cliui({width:E,wrap:!!E});if(!m){if(d.length)d.forEach((ie)=>{if(M.div({text:`${ie[0].replace(/\$0/g,q)}`}),ie[1])M.div({text:`${ie[1]}`,padding:[1,0,0,0]})}),M.div();else if(w.length){let ie=null;if(ne._)ie=`${q} <${n("command")}>
|
|
169
|
+
`;else ie=`${q} [${n("command")}]
|
|
170
|
+
`;M.div(`${ie}`)}}if(w.length>1||w.length===1&&!w[0][2]){M.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 ve=q?`${q} `:"";w.forEach((pe)=>{let Ee=`${ve}${we}${pe[0].replace(/^\$0 ?/,"")}`;M.span({text:Ee,padding:[0,2,0,2],width:D(w,E,`${q}${we}`)+4},{text:pe[1]});let De=[];if(pe[2])De.push(`[${n("default")}]`);if(pe[3]&&pe[3].length)De.push(`[${n("aliases:")} ${pe[3].join(", ")}]`);if(pe[4])if(typeof pe[4]==="string")De.push(`[${n("deprecated: %s",pe[4])}]`);else De.push(`[${n("deprecated")}]`);if(De.length)M.div({text:De.join(" "),padding:[0,0,0,2],align:"right"});else M.div()}),M.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]=[];v(ke,me.alias,_,K);let I=(ie)=>/^--/.test(dr(ie)),ee=Object.keys(_).filter((ie)=>_[ie].length>0).map((ie)=>{let we=_[ie].filter(T).map((ve)=>{if(U.includes(ve))return ve;for(let pe=0,Ee;(Ee=U[pe])!==void 0;pe++)if((me.alias[Ee]||[]).includes(ve))return Ee;return ve});return{groupName:ie,normalizedKeys:we}}).filter(({normalizedKeys:ie})=>ie.length>0).map(({groupName:ie,normalizedKeys:we})=>{let ve=we.reduce((pe,Ee)=>{return pe[Ee]=[Ee].concat(me.alias[Ee]||[]).map((De)=>{if(ie===o.getPositionalGroupName())return De;else return(/^[0-9]$/.test(De)?me.boolean.includes(Ee)?"-":"--":De.length>1?"--":"-")+De}).sort((De,We)=>I(De)===I(We)?0:I(De)?1:-1).join(", "),pe},{});return{groupName:ie,normalizedKeys:we,switches:ve}});if(ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).some(({normalizedKeys:ie,switches:we})=>!ie.every((ve)=>I(we[ve]))))ee.filter(({groupName:ie})=>ie!==o.getPositionalGroupName()).forEach(({normalizedKeys:ie,switches:we})=>{ie.forEach((ve)=>{if(I(we[ve]))we[ve]=Id(we[ve],4)})});if(ee.forEach(({groupName:ie,normalizedKeys:we,switches:ve})=>{M.div(ie),we.forEach((pe)=>{let Ee=ve[pe],De=A[pe]||"",We=null;if(De.includes(k))De=n(De.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 L=(P)=>typeof P==="string"?`[${n("deprecated: %s",P)}]`:`[${n("deprecated")}]`,h=[pe in he?L(he[pe]):null,We,pe in Y?`[${n("required")}]`:null,me.choices&&me.choices[pe]?`[${n("choices:")} ${o.stringifiedValues(me.choices[pe])}]`:null,j(me.default[pe],me.defaultDescription[pe])].filter(Boolean).join(" ");M.span({text:dr(Ee),padding:[0,2,0,2+vc(Ee)],width:D(ve,E)+4},De);let b=e.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(h&&!b)M.div({text:h,padding:[0,0,0,2],align:"right"});else M.div()}),M.div()}),p.length)M.div(n("Examples:")),p.forEach((ie)=>{ie[0]=ie[0].replace(/\$0/g,q)}),p.forEach((ie)=>{if(ie[1]==="")M.div({text:ie[0],padding:[0,2,0,2]});else M.div({text:ie[0],padding:[0,2,0,2],width:D(p,E)+4},{text:ie[1]})}),M.div();if(W.length>0){let ie=W.map((we)=>we.replace(/\$0/g,q)).join(`
|
|
171
|
+
`);M.div(`${ie}
|
|
172
|
+
`)}return M.toString().replace(/\s*$/,"")};function D(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} ${dr(he[0])}`:dr(he[0]))+vc(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 v(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 T(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 j(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,d=[],m=!1,W=[],p=[],w=[],A=On(A,(Y)=>!q[Y]),o};let G=[];return o.freeze=function(){G.push({failMessage:s,failureOutput:u,usages:d,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A})},o.unfreeze=function(q=!1){let Y=G.pop();if(!Y)return;if(q)A={...Y.descriptions,...A},w=[...Y.commands,...w],d=[...Y.usages,...d],p=[...Y.examples,...p],W=[...Y.epilogs,...W];else({failMessage:s,failureOutput:u,usages:d,usageDisabled:m,epilogs:W,examples:p,commands:w,descriptions:A}=Y)},o}function vi(e){return typeof e==="object"}function Id(e,t){return vi(e)?{text:e.text,indentation:e.indentation+t}:{text:e,indentation:t}}function vc(e){return vi(e)?e.indentation:0}function dr(e){return vi(e)?e.text:e}var kc=`###-begin-{{app_name}}-completions-###
|
|
173
173
|
#
|
|
174
174
|
# yargs command completion script
|
|
175
175
|
#
|
|
@@ -197,7 +197,7 @@ _{{app_name}}_yargs_completions()
|
|
|
197
197
|
}
|
|
198
198
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
199
199
|
###-end-{{app_name}}-completions-###
|
|
200
|
-
`,
|
|
200
|
+
`,Ec=`#compdef {{app_name}}
|
|
201
201
|
###-begin-{{app_name}}-completions-###
|
|
202
202
|
#
|
|
203
203
|
# yargs command completion script
|
|
@@ -216,12 +216,12 @@ _{{app_name}}_yargs_completions()
|
|
|
216
216
|
}
|
|
217
217
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
218
218
|
###-end-{{app_name}}-completions-###
|
|
219
|
-
`;class
|
|
220
|
-
${
|
|
221
|
-
`)}`:"";t.fail(i("Missing required argument: %s","Missing required arguments: %s",Object.keys(
|
|
222
|
-
${
|
|
223
|
-
`;b.forEach((T)=>{D+=T}),t.fail(D)}};let d={};s.conflicts=function(m,b){if(we("<string|object> [array|string]",[m,b],arguments.length),typeof m==="object")Object.keys(m).forEach((D)=>{s.conflicts(D,m[D])});else{if(e.global(m),!d[m])d[m]=[];if(Array.isArray(b))b.forEach((D)=>s.conflicts(m,D));else d[m].push(b)}},s.getConflicting=()=>d,s.conflicting=function(m){if(Object.keys(m).forEach((b)=>{if(d[b])d[b].forEach((D)=>{if(D&&m[b]!==void 0&&m[D]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,D))})}),e.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(d).forEach((b)=>{d[b].forEach((D)=>{if(D&&m[n.Parser.camelCase(b)]!==void 0&&m[n.Parser.camelCase(D)]!==void 0)t.fail(r("Arguments %s and %s are mutually exclusive",b,D))})})},s.recommendCommands=function(m,b){b=b.sort((E,k)=>k.length-E.length);let T=null,v=1/0;for(let E=0,k;(k=b[E])!==void 0;E++){let O=xc(m,k);if(O<=3&&O<v)v=O,T=k}if(T)t.fail(r("Did you mean %s?",T))},s.reset=function(m){return c=Cn(c,(b)=>!m[b]),d=Cn(d,(b)=>!m[b]),s};let h=[];return s.freeze=function(){h.push({implied:c,conflicting:d})},s.unfreeze=function(){let m=h.pop();xt(m,void 0,n),{implied:c,conflicting:d}=m},s}var bi=[],Vr;function Kr(e,t,n,r){Vr=r;let i={};if(Object.prototype.hasOwnProperty.call(e,"extends")){if(typeof e.extends!=="string")return i;let s=/\.json|\..*rc$/.test(e.extends),c=null;if(!s)try{c=sn.resolve(e.extends)}catch(a){return e}else c=vd(t,e.extends);wd(c),bi.push(c),i=s?JSON.parse(Vr.readFileSync(c,"utf8")):sn(e.extends),delete e.extends,i=Kr(i,Vr.path.dirname(c),n,Vr)}return bi=[],n?vc(i,e):Object.assign({},i,e)}function wd(e){if(bi.indexOf(e)>-1)throw new Ke(`Circular extended configurations: '${e}'.`)}function vd(e,t){return Vr.path.resolve(e,t)}function vc(e,t){let n={};function r(i){return i&&typeof i==="object"&&!Array.isArray(i)}Object.assign(n,e);for(let i of Object.keys(t))if(r(t[i])&&r(n[i]))n[i]=vc(e[i],t[i]);else n[i]=t[i];return n}var ve=function(e,t,n,r,i){if(r==="m")throw TypeError("Private method is not writable");if(r==="a"&&!i)throw TypeError("Private accessor was defined without a setter");if(typeof t==="function"?e!==t||!i:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(e,n):i?i.value=n:t.set(e,n),n},$=function(e,t,n,r){if(n==="a"&&!r)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!r:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?r:n==="a"?r.call(e):r?r.value:t.get(e)},_e,Vn,Gr,Wt,Et,fo,Pn,Kn,uo,It,ho,Tt,Zt,Rt,Bt,mo,sr,ct,Ce,po,go,kt,Gn,cr,Hn,En,xo,Ee,Un,Jn,zn,Oe,bo,Qt,Xe;function Lc(e){return(t=[],n=e.process.cwd(),r)=>{let i=new Vc(t,n,r,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var yc=Symbol("copyDoubleDash"),$c=Symbol("copyDoubleDash"),wi=Symbol("deleteFromParserHintObject"),Cc=Symbol("emitWarning"),Sc=Symbol("freeze"),Pc=Symbol("getDollarZero"),qn=Symbol("getParserConfiguration"),Ec=Symbol("getUsageConfiguration"),vi=Symbol("guessLocale"),Rc=Symbol("guessVersion"),kc=Symbol("parsePositionalNumbers"),yi=Symbol("pkgUp"),Rn=Symbol("populateParserHintArray"),ar=Symbol("populateParserHintSingleValueDictionary"),$i=Symbol("populateParserHintArrayDictionary"),Ci=Symbol("populateParserHintDictionary"),Si=Symbol("sanitizeKey"),Pi=Symbol("setKey"),Ei=Symbol("unfreeze"),Oc=Symbol("validateAsync"),Mc=Symbol("getCommandInstance"),Fc=Symbol("getContext"),Dc=Symbol("getHasOutput"),Ac=Symbol("getLoggerInstance"),Wc=Symbol("getParseContext"),Ic=Symbol("getUsageInstance"),Tc=Symbol("getValidationInstance"),wo=Symbol("hasParseCallback"),Bc=Symbol("isGlobalContext"),Xn=Symbol("postProcess"),Nc=Symbol("rebase"),Ri=Symbol("reset"),Hr=Symbol("runYargsParserAndExecuteCommands"),ki=Symbol("runValidation"),jc=Symbol("setHasOutput"),Yn=Symbol("kTrackManuallySetKeys");class Vc{constructor(e=[],t,n,r){this.customScriptName=!1,this.parsed=!1,_e.set(this,void 0),Vn.set(this,void 0),Gr.set(this,{commands:[],fullCommands:[]}),Wt.set(this,null),Et.set(this,null),fo.set(this,"show-hidden"),Pn.set(this,null),Kn.set(this,!0),uo.set(this,{}),It.set(this,!0),ho.set(this,[]),Tt.set(this,void 0),Zt.set(this,{}),Rt.set(this,!1),Bt.set(this,null),mo.set(this,!0),sr.set(this,void 0),ct.set(this,""),Ce.set(this,void 0),po.set(this,void 0),go.set(this,{}),kt.set(this,null),Gn.set(this,null),cr.set(this,{}),Hn.set(this,{}),En.set(this,void 0),xo.set(this,!1),Ee.set(this,void 0),Un.set(this,!1),Jn.set(this,!1),zn.set(this,!1),Oe.set(this,void 0),bo.set(this,{}),Qt.set(this,null),Xe.set(this,void 0),ve(this,Ee,r,"f"),ve(this,En,e,"f"),ve(this,Vn,t,"f"),ve(this,po,n,"f"),ve(this,Tt,new pi(this),"f"),this.$0=this[Pc](),this[Ri](),ve(this,_e,$(this,_e,"f"),"f"),ve(this,Oe,$(this,Oe,"f"),"f"),ve(this,Xe,$(this,Xe,"f"),"f"),ve(this,Ce,$(this,Ce,"f"),"f"),$(this,Ce,"f").showHiddenOpt=$(this,fo,"f"),ve(this,sr,this[$c](),"f")}addHelpOpt(e,t){if(we("[string|boolean] [string]",[e,t],arguments.length),$(this,Bt,"f"))this[wi]($(this,Bt,"f")),ve(this,Bt,null,"f");if(e===!1&&t===void 0)return this;return ve(this,Bt,typeof e==="string"?e:"help","f"),this.boolean($(this,Bt,"f")),this.describe($(this,Bt,"f"),t||$(this,Oe,"f").deferY18nLookup("Show help")),this}help(e,t){return this.addHelpOpt(e,t)}addShowHiddenOpt(e,t){if(we("[string|boolean] [string]",[e,t],arguments.length),e===!1&&t===void 0)return this;let n=typeof e==="string"?e:$(this,fo,"f");return this.boolean(n),this.describe(n,t||$(this,Oe,"f").deferY18nLookup("Show hidden options")),$(this,Ce,"f").showHiddenOpt=n,this}showHidden(e,t){return this.addShowHiddenOpt(e,t)}alias(e,t){return we("<object|string|array> [string|array]",[e,t],arguments.length),this[$i](this.alias.bind(this),"alias",e,t),this}array(e){return we("<array|string>",[e],arguments.length),this[Rn]("array",e),this[Yn](e),this}boolean(e){return we("<array|string>",[e],arguments.length),this[Rn]("boolean",e),this[Yn](e),this}check(e,t){return we("<function> [boolean]",[e,t],arguments.length),this.middleware((n,r)=>{return Ln(()=>{return e(n,r.getOptions())},(i)=>{if(!i)$(this,Oe,"f").fail($(this,Ee,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)$(this,Oe,"f").fail(i.toString(),i);return n},(i)=>{return $(this,Oe,"f").fail(i.message?i.message:i.toString(),i),n})},!1,t),this}choices(e,t){return we("<object|string|array> [string|array]",[e,t],arguments.length),this[$i](this.choices.bind(this),"choices",e,t),this}coerce(e,t){if(we("<object|string|array> [function]",[e,t],arguments.length),Array.isArray(e)){if(!t)throw new Ke("coerce callback must be provided");for(let n of e)this.coerce(n,t);return this}else if(typeof e==="object"){for(let n of Object.keys(e))this.coerce(n,e[n]);return this}if(!t)throw new Ke("coerce callback must be provided");return $(this,Ce,"f").key[e]=!0,$(this,Tt,"f").addCoerceMiddleware((n,r)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Ln(()=>{return i=r.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=r.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let d of i[e])n[d]=c;return n},(c)=>{throw new Ke(c.message)})},e),this}conflicts(e,t){return we("<string|object> [string|array]",[e,t],arguments.length),$(this,Xe,"f").conflicts(e,t),this}config(e="config",t,n){if(we("[object|string] [string|function] [function]",[e,t,n],arguments.length),typeof e==="object"&&!Array.isArray(e))return e=Kr(e,$(this,Vn,"f"),this[qn]()["deep-merge-config"]||!1,$(this,Ee,"f")),$(this,Ce,"f").configObjects=($(this,Ce,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||$(this,Oe,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((r)=>{$(this,Ce,"f").config[r]=n||!0}),this}completion(e,t,n){if(we("[string] [string|boolean|function] [function]",[e,t,n],arguments.length),typeof t==="function")n=t,t=void 0;if(ve(this,Et,e||$(this,Et,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command($(this,Et,"f"),t),n)$(this,Wt,"f").registerFunction(n);return this}command(e,t,n,r,i,s){return we("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,r,i,s],arguments.length),$(this,_e,"f").addHandler(e,t,n,r,i,s),this}commands(e,t,n,r,i,s){return this.command(e,t,n,r,i,s)}commandDir(e,t){we("<string> [object]",[e,t],arguments.length);let n=$(this,po,"f")||$(this,Ee,"f").require;return $(this,_e,"f").addDirectory(e,n,$(this,Ee,"f").getCallerFile(),t),this}count(e){return we("<array|string>",[e],arguments.length),this[Rn]("count",e),this[Yn](e),this}default(e,t,n){if(we("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)mi(e,$(this,Ee,"f")),$(this,Ce,"f").defaultDescription[e]=n;if(typeof t==="function"){if(mi(e,$(this,Ee,"f")),!$(this,Ce,"f").defaultDescription[e])$(this,Ce,"f").defaultDescription[e]=$(this,Oe,"f").functionDescription(t);t=t.call()}return this[ar](this.default.bind(this),"default",e,t),this}defaults(e,t,n){return this.default(e,t,n)}demandCommand(e=1,t,n,r){if(we("[number] [number|string] [string|null|undefined] [string|null|undefined]",[e,t,n,r],arguments.length),typeof t!=="number")n=t,t=1/0;return this.global("_",!1),$(this,Ce,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:r},this}demand(e,t,n){if(Array.isArray(t))t.forEach((r)=>{xt(n,!0,$(this,Ee,"f")),this.demandOption(r,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")xt(n,!0,$(this,Ee,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((r)=>{xt(n,!0,$(this,Ee,"f")),this.demandOption(r,n)});else if(typeof n==="string")this.demandOption(e,n);else if(n===!0||typeof n>"u")this.demandOption(e);return this}demandOption(e,t){return we("<object|string|array> [string]",[e,t],arguments.length),this[ar](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return we("<string> [string|boolean]",[e,t],arguments.length),$(this,Ce,"f").deprecatedOptions[e]=t,this}describe(e,t){return we("<object|string|array> [string]",[e,t],arguments.length),this[Pi](e,!0),$(this,Oe,"f").describe(e,t),this}detectLocale(e){return we("<boolean>",[e],arguments.length),ve(this,Kn,e,"f"),this}env(e){if(we("[string|boolean]",[e],arguments.length),e===!1)delete $(this,Ce,"f").envPrefix;else $(this,Ce,"f").envPrefix=e||"";return this}epilogue(e){return we("<string>",[e],arguments.length),$(this,Oe,"f").epilog(e),this}epilog(e){return this.epilogue(e)}example(e,t){if(we("<string|array> [string]",[e,t],arguments.length),Array.isArray(e))e.forEach((n)=>this.example(...n));else $(this,Oe,"f").example(e,t);return this}exit(e,t){if(ve(this,Rt,!0,"f"),ve(this,Pn,t,"f"),$(this,It,"f"))$(this,Ee,"f").process.exit(e)}exitProcess(e=!0){return we("[boolean]",[e],arguments.length),ve(this,It,e,"f"),this}fail(e){if(we("<function|boolean>",[e],arguments.length),typeof e==="boolean"&&e!==!1)throw new Ke("Invalid first argument. Expected function or boolean 'false'");return $(this,Oe,"f").failFn(e),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(e,t){if(we("<array> [function]",[e,t],arguments.length),!t)return new Promise((n,r)=>{$(this,Wt,"f").getCompletion(e,(i,s)=>{if(i)r(i);else n(s)})});else return $(this,Wt,"f").getCompletion(e,t)}getDemandedOptions(){return we([],0),$(this,Ce,"f").demandedOptions}getDemandedCommands(){return we([],0),$(this,Ce,"f").demandedCommands}getDeprecatedOptions(){return we([],0),$(this,Ce,"f").deprecatedOptions}getDetectLocale(){return $(this,Kn,"f")}getExitProcess(){return $(this,It,"f")}getGroups(){return Object.assign({},$(this,Zt,"f"),$(this,Hn,"f"))}getHelp(){if(ve(this,Rt,!0,"f"),!$(this,Oe,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Hr]($(this,En,"f"),void 0,void 0,0,!0);if(Ge(t))return t.then(()=>{return $(this,Oe,"f").help()})}let e=$(this,_e,"f").runDefaultBuilderOn(this);if(Ge(e))return e.then(()=>{return $(this,Oe,"f").help()})}return Promise.resolve($(this,Oe,"f").help())}getOptions(){return $(this,Ce,"f")}getStrict(){return $(this,Un,"f")}getStrictCommands(){return $(this,Jn,"f")}getStrictOptions(){return $(this,zn,"f")}global(e,t){if(we("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)$(this,Ce,"f").local=$(this,Ce,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!$(this,Ce,"f").local.includes(n))$(this,Ce,"f").local.push(n)});return this}group(e,t){we("<string|array> <string>",[e,t],arguments.length);let n=$(this,Hn,"f")[t]||$(this,Zt,"f")[t];if($(this,Hn,"f")[t])delete $(this,Hn,"f")[t];let r={};return $(this,Zt,"f")[t]=(n||[]).concat(e).filter((i)=>{if(r[i])return!1;return r[i]=!0}),this}hide(e){return we("<string>",[e],arguments.length),$(this,Ce,"f").hiddenOptions.push(e),this}implies(e,t){return we("<string|object> [number|string|array]",[e,t],arguments.length),$(this,Xe,"f").implies(e,t),this}locale(e){if(we("[string]",[e],arguments.length),e===void 0)return this[vi](),$(this,Ee,"f").y18n.getLocale();return ve(this,Kn,!1,"f"),$(this,Ee,"f").y18n.setLocale(e),this}middleware(e,t,n){return $(this,Tt,"f").addMiddleware(e,!!t,n)}nargs(e,t){return we("<string|object|array> [number]",[e,t],arguments.length),this[ar](this.nargs.bind(this),"narg",e,t),this}normalize(e){return we("<array|string>",[e],arguments.length),this[Rn]("normalize",e),this}number(e){return we("<array|string>",[e],arguments.length),this[Rn]("number",e),this[Yn](e),this}option(e,t){if(we("<string|object> [object]",[e,t],arguments.length),typeof e==="object")Object.keys(e).forEach((n)=>{this.options(n,e[n])});else{if(typeof t!=="object")t={};if(this[Yn](e),$(this,Qt,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[Cc](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
224
|
-
`),void 0,"versionWarning");if(
|
|
225
|
-
`,"f");
|
|
226
|
-
`,"f");
|
|
227
|
-
`)}catch{}if(process.argv.length===2){let{launchTUI:e}=await Promise.resolve().then(() => (
|
|
219
|
+
`;class Dc{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(ur(u)){this.indexAfterLastReset=c+1;let d=this.yargs.getInternalMethods().reset();return u(d,!0),d.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=vn(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((R)=>{let k=w[R];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 d=(w)=>/^--/.test(w),m=(w)=>/^[^0-9]$/.test(w),p=!d(n)&&m(e)?"-":"--";if(t.push(p+u),o)t.push(p+"no-"+u)}customCompletion(e,t,n,o){if(gt(this.customCompletionFunction,null,this.shim),Hd(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(Bd(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?Ec:kc,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 Fc(e,t,n,o){return new Dc(e,t,n,o)}function Hd(e){return e.length<3}function Bd(e){return e.length>3}function Pc(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 Mc=["$0","--","_"];function Ac(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 R of Object.keys(A)){let k=A[R];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 R;let k=e.getInternalMethods().getCommandInstance().getCommands(),D=[],x=e.getInternalMethods().getContext();if(Object.keys(p).forEach((S)=>{if(!Mc.includes(S)&&!Object.prototype.hasOwnProperty.call(A,S)&&!Object.prototype.hasOwnProperty.call(e.getInternalMethods().getParseContext(),S)&&!s.isValidAndSomeAliasIsNotNew(S,w))D.push(S)}),y&&(x.commands.length>0||k.length>0||W))p._.slice(x.commands.length).forEach((S)=>{if(!k.includes(""+S))D.push(""+S)});if(y){let v=((R=e.getDemandedCommands()._)===null||R===void 0?void 0:R.max)||0,T=x.commands.length+v;if(T<p._.length)p._.slice(T).forEach((j)=>{if(j=String(j),!x.commands.includes(j)&&!D.includes(j))D.push(j)})}if(D.length)t.fail(i("Unknown argument: %s","Unknown arguments: %s",D.length,D.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((R)=>{if(Mc.indexOf(R)===-1&&Object.prototype.hasOwnProperty.call(w.choices,R))[].concat(p[R]).forEach((k)=>{if(w.choices[R].indexOf(k)===-1&&k!==void 0)A[R]=(A[R]||[]).concat(k)})});let W=Object.keys(A);if(!W.length)return;let y=o("Invalid values:");W.forEach((R)=>{y+=`
|
|
222
|
+
${o("Argument: %s, Given: %s, Choices: %s",R,t.stringifiedValues(A[R]),t.stringifiedValues(w.choices[R]))}`}),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 gt(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 R=W,k=y;if(R=a(p,R),y=a(p,y),R&&!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((R,k)=>k.length-R.length);let W=null,y=1/0;for(let R=0,k;(k=w[R])!==void 0;R++){let D=Pc(p,k);if(D<=3&&D<y)y=D,W=k}if(W)t.fail(o("Did you mean %s?",W))},s.reset=function(p){return c=On(c,(w)=>!p[w]),u=On(u,(w)=>!p[w]),s};let d=[];return s.freeze=function(){d.push({implied:c,conflicting:u})},s.unfreeze=function(){let p=d.pop();gt(p,void 0,n),{implied:c,conflicting:u}=p},s}var Oi=[],Jo;function zo(e,t,n,o){Jo=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=ln.resolve(e.extends)}catch(a){return e}else c=Kd(t,e.extends);Vd(c),Oi.push(c),i=s?JSON.parse(Jo.readFileSync(c,"utf8")):ln(e.extends),delete e.extends,i=zo(i,Jo.path.dirname(c),n,Jo)}return Oi=[],n?Wc(i,e):Object.assign({},i,e)}function Vd(e){if(Oi.indexOf(e)>-1)throw new Je(`Circular extended configurations: '${e}'.`)}function Kd(e,t){return Jo.path.resolve(e,t)}function Wc(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]=Wc(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},C=function(e,t,n,o){if(n==="a"&&!o)throw TypeError("Private accessor was defined without a getter");if(typeof t==="function"?e!==t||!o:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?o:n==="a"?o.call(e):o?o.value:t.get(e)},tt,zn,qo,jt,Et,hr,En,qn,mr,Ht,pr,Bt,$t,Dt,Vt,gr,ho,lt,Oe,br,wr,Ft,Xn,mo,Yn,Dn,xr,Fe,Zn,Qn,Nn,Pe,yr,_t,$e;function _c(e){return(t=[],n=e.process.cwd(),o)=>{let i=new ea(t,n,o,e);return Object.defineProperty(i,"argv",{get:()=>{return i.parse()},enumerable:!0}),i.help(),i.version(),i}}var Lc=Symbol("copyDoubleDash"),Ic=Symbol("copyDoubleDash"),ki=Symbol("deleteFromParserHintObject"),jc=Symbol("emitWarning"),Hc=Symbol("freeze"),Bc=Symbol("getDollarZero"),$n=Symbol("getParserConfiguration"),Vc=Symbol("getUsageConfiguration"),Ei=Symbol("guessLocale"),Kc=Symbol("guessVersion"),Tc=Symbol("parsePositionalNumbers"),Di=Symbol("pkgUp"),Fn=Symbol("populateParserHintArray"),po=Symbol("populateParserHintSingleValueDictionary"),Fi=Symbol("populateParserHintArrayDictionary"),Pi=Symbol("populateParserHintDictionary"),Mi=Symbol("sanitizeKey"),Ai=Symbol("setKey"),Wi=Symbol("unfreeze"),Uc=Symbol("validateAsync"),Gc=Symbol("getCommandInstance"),Jc=Symbol("getContext"),zc=Symbol("getHasOutput"),qc=Symbol("getLoggerInstance"),Xc=Symbol("getParseContext"),Yc=Symbol("getUsageInstance"),Zc=Symbol("getValidationInstance"),Sr=Symbol("hasParseCallback"),Qc=Symbol("isGlobalContext"),_n=Symbol("postProcess"),Nc=Symbol("rebase"),Li=Symbol("reset"),Xo=Symbol("runYargsParserAndExecuteCommands"),Ii=Symbol("runValidation"),$c=Symbol("setHasOutput"),eo=Symbol("kTrackManuallySetKeys");class ea{constructor(e=[],t,n,o){this.customScriptName=!1,this.parsed=!1,tt.set(this,void 0),zn.set(this,void 0),qo.set(this,{commands:[],fullCommands:[]}),jt.set(this,null),Et.set(this,null),hr.set(this,"show-hidden"),En.set(this,null),qn.set(this,!0),mr.set(this,{}),Ht.set(this,!0),pr.set(this,[]),Bt.set(this,void 0),$t.set(this,{}),Dt.set(this,!1),Vt.set(this,null),gr.set(this,!0),ho.set(this,void 0),lt.set(this,""),Oe.set(this,void 0),br.set(this,void 0),wr.set(this,{}),Ft.set(this,null),Xn.set(this,null),mo.set(this,{}),Yn.set(this,{}),Dn.set(this,void 0),xr.set(this,!1),Fe.set(this,void 0),Zn.set(this,!1),Qn.set(this,!1),Nn.set(this,!1),Pe.set(this,void 0),yr.set(this,{}),_t.set(this,null),$e.set(this,void 0),ye(this,Fe,o,"f"),ye(this,Dn,e,"f"),ye(this,zn,t,"f"),ye(this,br,n,"f"),ye(this,Bt,new Ri(this),"f"),this.$0=this[Bc](),this[Li](),ye(this,tt,C(this,tt,"f"),"f"),ye(this,Pe,C(this,Pe,"f"),"f"),ye(this,$e,C(this,$e,"f"),"f"),ye(this,Oe,C(this,Oe,"f"),"f"),C(this,Oe,"f").showHiddenOpt=C(this,hr,"f"),ye(this,ho,this[Ic](),"f")}addHelpOpt(e,t){if(xe("[string|boolean] [string]",[e,t],arguments.length),C(this,Vt,"f"))this[ki](C(this,Vt,"f")),ye(this,Vt,null,"f");if(e===!1&&t===void 0)return this;return ye(this,Vt,typeof e==="string"?e:"help","f"),this.boolean(C(this,Vt,"f")),this.describe(C(this,Vt,"f"),t||C(this,Pe,"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:C(this,hr,"f");return this.boolean(n),this.describe(n,t||C(this,Pe,"f").deferY18nLookup("Show hidden options")),C(this,Oe,"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[Fi](this.alias.bind(this),"alias",e,t),this}array(e){return xe("<array|string>",[e],arguments.length),this[Fn]("array",e),this[eo](e),this}boolean(e){return xe("<array|string>",[e],arguments.length),this[Fn]("boolean",e),this[eo](e),this}check(e,t){return xe("<function> [boolean]",[e,t],arguments.length),this.middleware((n,o)=>{return Jn(()=>{return e(n,o.getOptions())},(i)=>{if(!i)C(this,Pe,"f").fail(C(this,Fe,"f").y18n.__("Argument check failed: %s",e.toString()));else if(typeof i==="string"||i instanceof Error)C(this,Pe,"f").fail(i.toString(),i);return n},(i)=>{return C(this,Pe,"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[Fi](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 C(this,Oe,"f").key[e]=!0,C(this,Bt,"f").addCoerceMiddleware((n,o)=>{let i;if(!Object.prototype.hasOwnProperty.call(n,e))return n;return Jn(()=>{return i=o.getAliases(),t(n[e])},(c)=>{n[e]=c;let a=o.getInternalMethods().getParserConfiguration()["strip-aliased"];if(i[e]&&a!==!0)for(let u of i[e])n[u]=c;return n},(c)=>{throw new Je(c.message)})},e),this}conflicts(e,t){return xe("<string|object> [string|array]",[e,t],arguments.length),C(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=zo(e,C(this,zn,"f"),this[$n]()["deep-merge-config"]||!1,C(this,Fe,"f")),C(this,Oe,"f").configObjects=(C(this,Oe,"f").configObjects||[]).concat(e),this;if(typeof t==="function")n=t,t=void 0;return this.describe(e,t||C(this,Pe,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(e)?e:[e]).forEach((o)=>{C(this,Oe,"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,Et,e||C(this,Et,"f")||"completion","f"),!t&&t!==!1)t="generate completion script";if(this.command(C(this,Et,"f"),t),n)C(this,jt,"f").registerFunction(n);return this}command(e,t,n,o,i,s){return xe("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[e,t,n,o,i,s],arguments.length),C(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=C(this,br,"f")||C(this,Fe,"f").require;return C(this,tt,"f").addDirectory(e,n,C(this,Fe,"f").getCallerFile(),t),this}count(e){return xe("<array|string>",[e],arguments.length),this[Fn]("count",e),this[eo](e),this}default(e,t,n){if(xe("<object|string|array> [*] [string]",[e,t,n],arguments.length),n)Si(e,C(this,Fe,"f")),C(this,Oe,"f").defaultDescription[e]=n;if(typeof t==="function"){if(Si(e,C(this,Fe,"f")),!C(this,Oe,"f").defaultDescription[e])C(this,Oe,"f").defaultDescription[e]=C(this,Pe,"f").functionDescription(t);t=t.call()}return this[po](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),C(this,Oe,"f").demandedCommands._={min:e,max:t,minMsg:n,maxMsg:o},this}demand(e,t,n){if(Array.isArray(t))t.forEach((o)=>{gt(n,!0,C(this,Fe,"f")),this.demandOption(o,n)}),t=1/0;else if(typeof t!=="number")n=t,t=1/0;if(typeof e==="number")gt(n,!0,C(this,Fe,"f")),this.demandCommand(e,t,n,n);else if(Array.isArray(e))e.forEach((o)=>{gt(n,!0,C(this,Fe,"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[po](this.demandOption.bind(this),"demandedOptions",e,t),this}deprecateOption(e,t){return xe("<string> [string|boolean]",[e,t],arguments.length),C(this,Oe,"f").deprecatedOptions[e]=t,this}describe(e,t){return xe("<object|string|array> [string]",[e,t],arguments.length),this[Ai](e,!0),C(this,Pe,"f").describe(e,t),this}detectLocale(e){return xe("<boolean>",[e],arguments.length),ye(this,qn,e,"f"),this}env(e){if(xe("[string|boolean]",[e],arguments.length),e===!1)delete C(this,Oe,"f").envPrefix;else C(this,Oe,"f").envPrefix=e||"";return this}epilogue(e){return xe("<string>",[e],arguments.length),C(this,Pe,"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 C(this,Pe,"f").example(e,t);return this}exit(e,t){if(ye(this,Dt,!0,"f"),ye(this,En,t,"f"),C(this,Ht,"f"))C(this,Fe,"f").process.exit(e)}exitProcess(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,Ht,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 C(this,Pe,"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)=>{C(this,jt,"f").getCompletion(e,(i,s)=>{if(i)o(i);else n(s)})});else return C(this,jt,"f").getCompletion(e,t)}getDemandedOptions(){return xe([],0),C(this,Oe,"f").demandedOptions}getDemandedCommands(){return xe([],0),C(this,Oe,"f").demandedCommands}getDeprecatedOptions(){return xe([],0),C(this,Oe,"f").deprecatedOptions}getDetectLocale(){return C(this,qn,"f")}getExitProcess(){return C(this,Ht,"f")}getGroups(){return Object.assign({},C(this,$t,"f"),C(this,Yn,"f"))}getHelp(){if(ye(this,Dt,!0,"f"),!C(this,Pe,"f").hasCachedHelpMessage()){if(!this.parsed){let t=this[Xo](C(this,Dn,"f"),void 0,void 0,0,!0);if(ze(t))return t.then(()=>{return C(this,Pe,"f").help()})}let e=C(this,tt,"f").runDefaultBuilderOn(this);if(ze(e))return e.then(()=>{return C(this,Pe,"f").help()})}return Promise.resolve(C(this,Pe,"f").help())}getOptions(){return C(this,Oe,"f")}getStrict(){return C(this,Zn,"f")}getStrictCommands(){return C(this,Qn,"f")}getStrictOptions(){return C(this,Nn,"f")}global(e,t){if(xe("<string|array> [boolean]",[e,t],arguments.length),e=[].concat(e),t!==!1)C(this,Oe,"f").local=C(this,Oe,"f").local.filter((n)=>e.indexOf(n)===-1);else e.forEach((n)=>{if(!C(this,Oe,"f").local.includes(n))C(this,Oe,"f").local.push(n)});return this}group(e,t){xe("<string|array> <string>",[e,t],arguments.length);let n=C(this,Yn,"f")[t]||C(this,$t,"f")[t];if(C(this,Yn,"f")[t])delete C(this,Yn,"f")[t];let o={};return C(this,$t,"f")[t]=(n||[]).concat(e).filter((i)=>{if(o[i])return!1;return o[i]=!0}),this}hide(e){return xe("<string>",[e],arguments.length),C(this,Oe,"f").hiddenOptions.push(e),this}implies(e,t){return xe("<string|object> [number|string|array]",[e,t],arguments.length),C(this,$e,"f").implies(e,t),this}locale(e){if(xe("[string]",[e],arguments.length),e===void 0)return this[Ei](),C(this,Fe,"f").y18n.getLocale();return ye(this,qn,!1,"f"),C(this,Fe,"f").y18n.setLocale(e),this}middleware(e,t,n){return C(this,Bt,"f").addMiddleware(e,!!t,n)}nargs(e,t){return xe("<string|object|array> [number]",[e,t],arguments.length),this[po](this.nargs.bind(this),"narg",e,t),this}normalize(e){return xe("<array|string>",[e],arguments.length),this[Fn]("normalize",e),this}number(e){return xe("<array|string>",[e],arguments.length),this[Fn]("number",e),this[eo](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[eo](e),C(this,_t,"f")&&(e==="version"||(t===null||t===void 0?void 0:t.alias)==="version"))this[jc](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
224
|
+
`),void 0,"versionWarning");if(C(this,Oe,"f").key[e]=!0,t.alias)this.alias(e,t.alias);let n=t.deprecate||t.deprecated;if(n)this.deprecateOption(e,n);let o=t.demand||t.required||t.require;if(o)this.demand(e,o);if(t.demandOption)this.demandOption(e,typeof t.demandOption==="string"?t.demandOption:void 0);if(t.conflicts)this.conflicts(e,t.conflicts);if("default"in t)this.default(e,t.default);if(t.implies!==void 0)this.implies(e,t.implies);if(t.nargs!==void 0)this.nargs(e,t.nargs);if(t.config)this.config(e,t.configParser);if(t.normalize)this.normalize(e);if(t.choices)this.choices(e,t.choices);if(t.coerce)this.coerce(e,t.coerce);if(t.group)this.group(e,t.group);if(t.boolean||t.type==="boolean"){if(this.boolean(e),t.alias)this.boolean(t.alias)}if(t.array||t.type==="array"){if(this.array(e),t.alias)this.array(t.alias)}if(t.number||t.type==="number"){if(this.number(e),t.alias)this.number(t.alias)}if(t.string||t.type==="string"){if(this.string(e),t.alias)this.string(t.alias)}if(t.count||t.type==="count")this.count(e);if(typeof t.global==="boolean")this.global(e,t.global);if(t.defaultDescription)C(this,Oe,"f").defaultDescription[e]=t.defaultDescription;if(t.skipValidation)this.skipValidation(e);let i=t.describe||t.description||t.desc,s=C(this,Pe,"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[Hc](),typeof e>"u")e=C(this,Dn,"f");if(typeof t==="object")ye(this,Xn,t,"f"),t=n;if(typeof t==="function")ye(this,Ft,t,"f"),t=!1;if(!t)ye(this,Dn,e,"f");if(C(this,Ft,"f"))ye(this,Ht,!1,"f");let o=this[Xo](e,!!t),i=this.parsed;if(C(this,jt,"f").setParsed(this.parsed),ze(o))return o.then((s)=>{if(C(this,Ft,"f"))C(this,Ft,"f").call(this,C(this,En,"f"),s,C(this,lt,"f"));return s}).catch((s)=>{if(C(this,Ft,"f"))C(this,Ft,"f")(s,this.parsed.argv,C(this,lt,"f"));throw s}).finally(()=>{this[Wi](),this.parsed=i});else{if(C(this,Ft,"f"))C(this,Ft,"f").call(this,C(this,En,"f"),o,C(this,lt,"f"));this[Wi](),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,wr,e,"f"),this}pkgConf(e,t){xe("<string> [string]",[e,t],arguments.length);let n=null,o=this[Di](t||C(this,zn,"f"));if(o[e]&&typeof o[e]==="object")n=zo(o[e],t||C(this,zn,"f"),this[$n]()["deep-merge-config"]||!1,C(this,Fe,"f")),C(this,Oe,"f").configObjects=(C(this,Oe,"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=On(t,(s,c)=>{if(s==="type"&&!["string","number","boolean"].includes(c))return!1;return n.includes(s)});let o=C(this,qo,"f").fullCommands[C(this,qo,"f").fullCommands.length-1],i=o?C(this,tt,"f").cmdToParseOptions(o):{array:[],alias:{},default:{},demand:{}};return fo(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,C(this,Pe,"f").getPositionalGroupName()),this.option(e,t)}recommendCommands(e=!0){return xe("[boolean]",[e],arguments.length),ye(this,xr,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"&&C(this,Oe,"f").narg[e])return this;else this[po](this.requiresArg.bind(this),"narg",e,NaN);return this}showCompletionScript(e,t){return xe("[string] [string]",[e,t],arguments.length),e=e||this.$0,C(this,ho,"f").log(C(this,jt,"f").generateCompletionScript(e,t||C(this,Et,"f")||"completion")),this}showHelp(e){if(xe("[string|function]",[e],arguments.length),ye(this,Dt,!0,"f"),!C(this,Pe,"f").hasCachedHelpMessage()){if(!this.parsed){let n=this[Xo](C(this,Dn,"f"),void 0,void 0,0,!0);if(ze(n))return n.then(()=>{C(this,Pe,"f").showHelp(e)}),this}let t=C(this,tt,"f").runDefaultBuilderOn(this);if(ze(t))return t.then(()=>{C(this,Pe,"f").showHelp(e)}),this}return C(this,Pe,"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),C(this,Pe,"f").showHelpOnFail(e,t),this}showVersion(e){return xe("[string|function]",[e],arguments.length),C(this,Pe,"f").showVersion(e),this}skipValidation(e){return xe("<array|string>",[e],arguments.length),this[Fn]("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,Nn,e!==!1,"f"),this}string(e){return xe("<array|string>",[e],arguments.length),this[Fn]("string",e),this[eo](e),this}terminalWidth(){return xe([],0),C(this,Fe,"f").process.stdColumns}updateLocale(e){return this.updateStrings(e)}updateStrings(e){return xe("<object>",[e],arguments.length),ye(this,qn,!1,"f"),C(this,Fe,"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(gt(e,null,C(this,Fe,"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 C(this,Pe,"f").usage(e),this}usageConfiguration(e){return xe("<object>",[e],arguments.length),ye(this,yr,e,"f"),this}version(e,t,n){if(xe("[boolean|string] [string] [string]",[e,t,n],arguments.length),C(this,_t,"f"))this[ki](C(this,_t,"f")),C(this,Pe,"f").version(void 0),ye(this,_t,null,"f");if(arguments.length===0)n=this[Kc](),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||C(this,Pe,"f").deferY18nLookup("Show version number"),C(this,Pe,"f").version(n||void 0),this.boolean(C(this,_t,"f")),this.describe(C(this,_t,"f"),t),this}wrap(e){return xe("<number|null|undefined>",[e],arguments.length),C(this,Pe,"f").wrap(e),this}[(tt=new WeakMap,zn=new WeakMap,qo=new WeakMap,jt=new WeakMap,Et=new WeakMap,hr=new WeakMap,En=new WeakMap,qn=new WeakMap,mr=new WeakMap,Ht=new WeakMap,pr=new WeakMap,Bt=new WeakMap,$t=new WeakMap,Dt=new WeakMap,Vt=new WeakMap,gr=new WeakMap,ho=new WeakMap,lt=new WeakMap,Oe=new WeakMap,br=new WeakMap,wr=new WeakMap,Ft=new WeakMap,Xn=new WeakMap,mo=new WeakMap,Yn=new WeakMap,Dn=new WeakMap,xr=new WeakMap,Fe=new WeakMap,Zn=new WeakMap,Qn=new WeakMap,Nn=new WeakMap,Pe=new WeakMap,yr=new WeakMap,_t=new WeakMap,$e=new WeakMap,Lc)](e){if(!e._||!e["--"])return e;e._.push.apply(e._,e["--"]);try{delete e["--"]}catch(t){}return e}[Ic](){return{log:(...e)=>{if(!this[Sr]())console.log(...e);if(ye(this,Dt,!0,"f"),C(this,lt,"f").length)ye(this,lt,C(this,lt,"f")+`
|
|
225
|
+
`,"f");ye(this,lt,C(this,lt,"f")+e.join(" "),"f")},error:(...e)=>{if(!this[Sr]())console.error(...e);if(ye(this,Dt,!0,"f"),C(this,lt,"f").length)ye(this,lt,C(this,lt,"f")+`
|
|
226
|
+
`,"f");ye(this,lt,C(this,lt,"f")+e.join(" "),"f")}}}[ki](e){fo(C(this,Oe,"f")).forEach((t)=>{if(((o)=>o==="configObjects")(t))return;let n=C(this,Oe,"f")[t];if(Array.isArray(n)){if(n.includes(e))n.splice(n.indexOf(e),1)}else if(typeof n==="object")delete n[e]}),delete C(this,Pe,"f").getDescriptions()[e]}[jc](e,t,n){if(!C(this,mr,"f")[n])C(this,Fe,"f").process.emitWarning(e,t),C(this,mr,"f")[n]=!0}[Hc](){C(this,pr,"f").push({options:C(this,Oe,"f"),configObjects:C(this,Oe,"f").configObjects.slice(0),exitProcess:C(this,Ht,"f"),groups:C(this,$t,"f"),strict:C(this,Zn,"f"),strictCommands:C(this,Qn,"f"),strictOptions:C(this,Nn,"f"),completionCommand:C(this,Et,"f"),output:C(this,lt,"f"),exitError:C(this,En,"f"),hasOutput:C(this,Dt,"f"),parsed:this.parsed,parseFn:C(this,Ft,"f"),parseContext:C(this,Xn,"f")}),C(this,Pe,"f").freeze(),C(this,$e,"f").freeze(),C(this,tt,"f").freeze(),C(this,Bt,"f").freeze()}[Bc](){let e="",t;if(/\b(node|iojs|electron)(\.exe)?$/.test(C(this,Fe,"f").process.argv()[0]))t=C(this,Fe,"f").process.argv().slice(1,2);else t=C(this,Fe,"f").process.argv().slice(0,1);if(e=t.map((n)=>{let o=this[Nc](C(this,zn,"f"),n);return n.match(/^(\/|([a-zA-Z]:)?\\)/)&&o.length<n.length?o:n}).join(" ").trim(),C(this,Fe,"f").getEnv("_")&&C(this,Fe,"f").getProcessArgvBin()===C(this,Fe,"f").getEnv("_"))e=C(this,Fe,"f").getEnv("_").replace(`${C(this,Fe,"f").path.dirname(C(this,Fe,"f").process.execPath())}/`,"");return e}[$n](){return C(this,wr,"f")}[Vc](){return C(this,yr,"f")}[Ei](){if(!C(this,qn,"f"))return;let e=C(this,Fe,"f").getEnv("LC_ALL")||C(this,Fe,"f").getEnv("LC_MESSAGES")||C(this,Fe,"f").getEnv("LANG")||C(this,Fe,"f").getEnv("LANGUAGE")||"en_US";this.locale(e.replace(/[.:].*/,""))}[Kc](){return this[Di]().version||"unknown"}[Tc](e){let t=e["--"]?e["--"]:e._;for(let n=0,o;(o=t[n])!==void 0;n++)if(C(this,Fe,"f").Parser.looksLikeNumber(o)&&Number.isSafeInteger(Math.floor(parseFloat(`${o}`))))t[n]=Number(o);return e}[Di](e){let t=e||"*";if(C(this,mo,"f")[t])return C(this,mo,"f")[t];let n={};try{let o=e||C(this,Fe,"f").mainFilename;if(!e&&C(this,Fe,"f").path.extname(o))o=C(this,Fe,"f").path.dirname(o);let i=C(this,Fe,"f").findUp(o,(s,c)=>{if(c.includes("package.json"))return"package.json";else return});gt(i,void 0,C(this,Fe,"f")),n=JSON.parse(C(this,Fe,"f").readFileSync(i,"utf8"))}catch(o){}return C(this,mo,"f")[t]=n||{},C(this,mo,"f")[t]}[Fn](e,t){t=[].concat(t),t.forEach((n)=>{n=this[Mi](n),C(this,Oe,"f")[e].push(n)})}[po](e,t,n,o){this[Pi](e,t,n,o,(i,s,c)=>{C(this,Oe,"f")[i][s]=c})}[Fi](e,t,n,o){this[Pi](e,t,n,o,(i,s,c)=>{C(this,Oe,"f")[i][s]=(C(this,Oe,"f")[i][s]||[]).concat(c)})}[Pi](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 fo(n))e(s,n[s]);else i(t,this[Mi](n),o)}[Mi](e){if(e==="__proto__")return"___proto___";return e}[Ai](e,t){return this[po](this[Ai].bind(this),"key",e,t),this}[Wi](){var e,t,n,o,i,s,c,a,u,d,m,p;let w=C(this,pr,"f").pop();gt(w,void 0,C(this,Fe,"f"));let A;e=this,t=this,n=this,o=this,i=this,s=this,c=this,a=this,u=this,d=this,m=this,p=this,{options:{set value(W){ye(e,Oe,W,"f")}}.value,configObjects:A,exitProcess:{set value(W){ye(t,Ht,W,"f")}}.value,groups:{set value(W){ye(n,$t,W,"f")}}.value,output:{set value(W){ye(o,lt,W,"f")}}.value,exitError:{set value(W){ye(i,En,W,"f")}}.value,hasOutput:{set value(W){ye(s,Dt,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,Nn,W,"f")}}.value,completionCommand:{set value(W){ye(d,Et,W,"f")}}.value,parseFn:{set value(W){ye(m,Ft,W,"f")}}.value,parseContext:{set value(W){ye(p,Xn,W,"f")}}.value}=w,C(this,Oe,"f").configObjects=A,C(this,Pe,"f").unfreeze(),C(this,$e,"f").unfreeze(),C(this,tt,"f").unfreeze(),C(this,Bt,"f").unfreeze()}[Uc](e,t){return Jn(t,(n)=>{return e(n),n})}getInternalMethods(){return{getCommandInstance:this[Gc].bind(this),getContext:this[Jc].bind(this),getHasOutput:this[zc].bind(this),getLoggerInstance:this[qc].bind(this),getParseContext:this[Xc].bind(this),getParserConfiguration:this[$n].bind(this),getUsageConfiguration:this[Vc].bind(this),getUsageInstance:this[Yc].bind(this),getValidationInstance:this[Zc].bind(this),hasParseCallback:this[Sr].bind(this),isGlobalContext:this[Qc].bind(this),postProcess:this[_n].bind(this),reset:this[Li].bind(this),runValidation:this[Ii].bind(this),runYargsParserAndExecuteCommands:this[Xo].bind(this),setHasOutput:this[$c].bind(this)}}[Gc](){return C(this,tt,"f")}[Jc](){return C(this,qo,"f")}[zc](){return C(this,Dt,"f")}[qc](){return C(this,ho,"f")}[Xc](){return C(this,Xn,"f")||{}}[Yc](){return C(this,Pe,"f")}[Zc](){return C(this,$e,"f")}[Sr](){return!!C(this,Ft,"f")}[Qc](){return C(this,gr,"f")}[_n](e,t,n,o){if(n)return e;if(ze(e))return e;if(!t)e=this[Lc](e);if(this[$n]()["parse-positional-numbers"]||this[$n]()["parse-positional-numbers"]===void 0)e=this[Tc](e);if(o)e=Gn(e,this,C(this,Bt,"f").getMiddleware(),!1);return e}[Li](e={}){ye(this,Oe,C(this,Oe,"f")||{},"f");let t={};t.local=C(this,Oe,"f").local||[],t.configObjects=C(this,Oe,"f").configObjects||[];let n={};t.local.forEach((s)=>{n[s]=!0,(e[s]||[]).forEach((c)=>{n[c]=!0})}),Object.assign(C(this,Yn,"f"),Object.keys(C(this,$t,"f")).reduce((s,c)=>{let a=C(this,$t,"f")[c].filter((u)=>!(u in n));if(a.length>0)s[c]=a;return s},{})),ye(this,$t,{},"f");let o=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],i=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(o.forEach((s)=>{t[s]=(C(this,Oe,"f")[s]||[]).filter((c)=>!n[c])}),i.forEach((s)=>{t[s]=On(C(this,Oe,"f")[s],(c)=>!n[c])}),t.envPrefix=C(this,Oe,"f").envPrefix,ye(this,Oe,t,"f"),ye(this,Pe,C(this,Pe,"f")?C(this,Pe,"f").reset(n):Oc(this,C(this,Fe,"f")),"f"),ye(this,$e,C(this,$e,"f")?C(this,$e,"f").reset(n):Ac(this,C(this,Pe,"f"),C(this,Fe,"f")),"f"),ye(this,tt,C(this,tt,"f")?C(this,tt,"f").reset():Rc(C(this,Pe,"f"),C(this,$e,"f"),C(this,Bt,"f"),C(this,Fe,"f")),"f"),!C(this,jt,"f"))ye(this,jt,Fc(this,C(this,Pe,"f"),C(this,tt,"f"),C(this,Fe,"f")),"f");return C(this,Bt,"f").reset(),ye(this,Et,null,"f"),ye(this,lt,"","f"),ye(this,En,null,"f"),ye(this,Dt,!1,"f"),this.parsed=!1,this}[Nc](e,t){return C(this,Fe,"f").path.relative(e,t)}[Xo](e,t,n,o=0,i=!1){let s=!!n||i;e=e||C(this,Dn,"f"),C(this,Oe,"f").__=C(this,Fe,"f").y18n.__,C(this,Oe,"f").configuration=this[$n]();let c=!!C(this,Oe,"f").configuration["populate--"],a=Object.assign({},C(this,Oe,"f").configuration,{"populate--":!0}),u=C(this,Fe,"f").Parser.detailed(e,Object.assign({},C(this,Oe,"f"),{configuration:{"parse-positional-numbers":!1,...a}})),d=Object.assign(u.argv,C(this,Xn,"f")),m=void 0,p=u.aliases,w=!1,A=!1;if(Object.keys(d).forEach((W)=>{if(W===C(this,Vt,"f")&&d[W])w=!0;else if(W===C(this,_t,"f")&&d[W])A=!0}),d.$0=this.$0,this.parsed=u,o===0)C(this,Pe,"f").clearCachedHelpMessage();try{if(this[Ei](),t)return this[_n](d,c,!!n,!1);if(C(this,Vt,"f")){if([C(this,Vt,"f")].concat(p[C(this,Vt,"f")]||[]).filter((D)=>D.length>1).includes(""+d._[d._.length-1]))d._.pop(),w=!0}ye(this,gr,!1,"f");let W=C(this,tt,"f").getCommands(),y=C(this,jt,"f").completionKey in d,R=w||y||i;if(d._.length){if(W.length){let k;for(let D=o||0,x;d._[D]!==void 0;D++)if(x=String(d._[D]),W.includes(x)&&x!==C(this,Et,"f")){let S=C(this,tt,"f").runCommand(x,this,u,D+1,i,w||A||i);return this[_n](S,c,!!n,!1)}else if(!k&&x!==C(this,Et,"f")){k=x;break}if(!C(this,tt,"f").hasDefaultCommand()&&C(this,xr,"f")&&k&&!R)C(this,$e,"f").recommendCommands(k,W)}if(C(this,Et,"f")&&d._.includes(C(this,Et,"f"))&&!y){if(C(this,Ht,"f"))kn(!0);this.showCompletionScript(),this.exit(0)}}if(C(this,tt,"f").hasDefaultCommand()&&!R){let k=C(this,tt,"f").runCommand(null,this,u,0,i,w||A||i);return this[_n](k,c,!!n,!1)}if(y){if(C(this,Ht,"f"))kn(!0);e=[].concat(e);let k=e.slice(e.indexOf(`--${C(this,jt,"f").completionKey}`)+1);return C(this,jt,"f").getCompletion(k,(D,x)=>{if(D)throw new Je(D.message);(x||[]).forEach((S)=>{C(this,ho,"f").log(S)}),this.exit(0)}),this[_n](d,!c,!!n,!1)}if(!C(this,Dt,"f")){if(w){if(C(this,Ht,"f"))kn(!0);s=!0,this.showHelp("log"),this.exit(0)}else if(A){if(C(this,Ht,"f"))kn(!0);s=!0,C(this,Pe,"f").showVersion("log"),this.exit(0)}}if(!s&&C(this,Oe,"f").skipValidation.length>0)s=Object.keys(d).some((k)=>C(this,Oe,"f").skipValidation.indexOf(k)>=0&&d[k]===!0);if(!s){if(u.error)throw new Je(u.error.message);if(!y){let k=this[Ii](p,{},u.error);if(!n)m=Gn(d,this,C(this,Bt,"f").getMiddleware(),!0);if(m=this[Uc](k,m!==null&&m!==void 0?m:d),ze(m)&&!n)m=m.then(()=>{return Gn(d,this,C(this,Bt,"f").getMiddleware(),!1)})}}}catch(W){if(W instanceof Je)C(this,Pe,"f").fail(W.message,W);else throw W}return this[_n](m!==null&&m!==void 0?m:d,c,!!n,!0)}[Ii](e,t,n,o){let i={...this.getDemandedOptions()};return(s)=>{if(n)throw new Je(n.message);C(this,$e,"f").nonOptionCount(s),C(this,$e,"f").requiredArguments(s,i);let c=!1;if(C(this,Qn,"f"))c=C(this,$e,"f").unknownCommands(s);if(C(this,Zn,"f")&&!c)C(this,$e,"f").unknownArguments(s,e,t,!!o);else if(C(this,Nn,"f"))C(this,$e,"f").unknownArguments(s,e,{},!1,!1);C(this,$e,"f").limitedChoices(s),C(this,$e,"f").implications(s),C(this,$e,"f").conflicting(s)}}[$c](){ye(this,Dt,!0,"f")}[eo](e){if(typeof e==="string")C(this,Oe,"f").key[e]=!0;else for(let t of e)C(this,Oe,"f").key[t]=!0}}function Cc(e){return!!e&&typeof e.getInternalMethods==="function"}var Td=_c(yi),ta=Td;qe();import{readFileSync as Xu}from"fs";import{join as Ys}from"path";function Nb(){let e=import.meta.dir;for(let t=0;t<5;t++){let n=Ys(e,"package.json");try{return Xu(n,"utf-8"),n}catch{}e=Ys(e,"..")}return Ys(import.meta.dir,"../../package.json")}var $b=JSON.parse(Xu(Nb(),"utf-8")),_b=process.argv[2]==="init";if(!_b)try{let e=ha();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(() => (jf(),If));await e()}else{let[e,t,n,o,i,s,c,a,u,d,m,p,w,A,W,y,R,k,D,x]=await Promise.all([Promise.resolve().then(() => (Vf(),Bf)),Promise.resolve().then(() => (Tf(),Kf)),Promise.resolve().then(() => (Jf(),Gf)),Promise.resolve().then(() => (qf(),zf)),Promise.resolve().then(() => (Nf(),Qf)),Promise.resolve().then(() => (iu(),ru)),Promise.resolve().then(() => (cu(),su)),Promise.resolve().then(() => (uu(),fu)),Promise.resolve().then(() => (mu(),hu)),Promise.resolve().then(() => (wu(),bu)),Promise.resolve().then(() => (Su(),yu)),Promise.resolve().then(() => (Cu(),Ru)),Promise.resolve().then(() => (Ou(),vu)),Promise.resolve().then(() => (Eu(),ku)),Promise.resolve().then(() => (Pu(),Fu)),Promise.resolve().then(() => (Au(),Mu)),Promise.resolve().then(() => (Lu(),Wu)),Promise.resolve().then(() => (ju(),Iu)),Promise.resolve().then(() => (Bu(),Hu)),Promise.resolve().then(() => (qu(),zu))]);ta(xi(process.argv)).locale("en").scriptName("copse").version(`copse v${$b.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(d.default).command(m.default).command(p.default).command(w.default).command(A.default).command(W.default).command(y.default).command(R.default).command(k.default).command(D.default).command(x.default).completion("completion","Generate shell completion script").demandCommand(1,"Please specify a command. Run --help to see available commands.").strict().parse()}
|