chief-clancy 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,58 +1,59 @@
1
- var Fl=Object.defineProperty;var xe=(e,t)=>{for(var r in t)Fl(e,r,{get:t[r],enumerable:!0})};import{resolve as ig}from"node:path";import{fileURLToPath as sg}from"node:url";function Ee(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),i=r%60;return i>0?`${o}h ${i}m`:`${o}h`}import{execFileSync as ce}from"node:child_process";function Er(...e){return ce("git",e,{encoding:"utf8"}).trim()}function dc(){return Er("rev-parse","--abbrev-ref","HEAD")}function kt(){try{return ce("git",["diff","--quiet"],{stdio:"ignore"}),ce("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function Ye(e){try{return ce("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Ar(e,t){Ye(e)||Er("checkout","-b",e,t)}function Z(e,t=!1){Er("checkout",...t?["-B"]:[],e)}function mc(e){try{return ce("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function vt(e){try{return ce("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function hc(e,t=8e3){try{let r=ce("git",["diff",`${e}...HEAD`,"--stat"],{encoding:"utf8",timeout:1e4}).trim();return r?r.length>t?r.slice(0,t)+`
2
- ... (truncated)`:r:void 0}catch{return}}function Ge(e){try{return ce("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var x=e=>`\x1B[2m${e}\x1B[0m`,Ae=e=>`\x1B[1m${e}\x1B[0m`;var N=e=>`\x1B[32m${e}\x1B[0m`,Te=e=>`\x1B[31m${e}\x1B[0m`,S=e=>`\x1B[33m${e}\x1B[0m`;function gc(e){return{argv:e,dryRun:e.includes("--dry-run"),skipFeasibility:e.includes("--skip-feasibility"),startTime:Date.now(),cwd:process.cwd(),isAfk:process.env.CLANCY_AFK_MODE==="1"}}import{mkdirSync as Jl,readFileSync as Yl,unlinkSync as _c,writeFileSync as Gl}from"node:fs";import{dirname as Kl,join as zt}from"node:path";function bc(e,t){let r=zt(e,".clancy","lock.json");Jl(Kl(r),{recursive:!0}),Gl(r,JSON.stringify(t,null,2),"utf8")}function St(e){let t=zt(e,".clancy","lock.json");try{let r=Yl(t,"utf8");return JSON.parse(r)}catch{return}}function Pt(e){let t=zt(e,".clancy","lock.json");try{_c(t)}catch{}}function It(e){let t=zt(e,".clancy","verify-attempt.txt");try{_c(t)}catch{}}function Hl(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function yc(e){if(!Hl(e.pid))return!0;let t=Date.now()-new Date(e.startedAt).getTime();if(Number.isNaN(t))return!0;let r=1440*60*1e3;return t>r}import{execFileSync as Mu}from"node:child_process";import{readFileSync as gh}from"node:fs";import{join as _h}from"node:path";var l={};xe(l,{$brand:()=>Rr,$input:()=>fi,$output:()=>pi,NEVER:()=>Tr,TimePrecision:()=>ji,ZodMiniAny:()=>Sa,ZodMiniArray:()=>Ta,ZodMiniBase64:()=>ba,ZodMiniBase64URL:()=>ya,ZodMiniBigInt:()=>ht,ZodMiniBigIntFormat:()=>Ds,ZodMiniBoolean:()=>mt,ZodMiniCIDRv4:()=>ha,ZodMiniCIDRv6:()=>ga,ZodMiniCUID:()=>aa,ZodMiniCUID2:()=>ua,ZodMiniCatch:()=>Va,ZodMiniCodec:()=>Ks,ZodMiniCustom:()=>Hs,ZodMiniCustomStringFormat:()=>ft,ZodMiniDate:()=>ir,ZodMiniDefault:()=>Ka,ZodMiniDiscriminatedUnion:()=>Za,ZodMiniE164:()=>$a,ZodMiniEmail:()=>oa,ZodMiniEmoji:()=>sa,ZodMiniEnum:()=>Fs,ZodMiniExactOptional:()=>Ya,ZodMiniFile:()=>Fa,ZodMiniFunction:()=>ou,ZodMiniGUID:()=>ia,ZodMiniIPv4:()=>da,ZodMiniIPv6:()=>ma,ZodMiniISODate:()=>lr,ZodMiniISODateTime:()=>ur,ZodMiniISODuration:()=>fr,ZodMiniISOTime:()=>pr,ZodMiniIntersection:()=>Na,ZodMiniJWT:()=>xa,ZodMiniKSUID:()=>fa,ZodMiniLazy:()=>eu,ZodMiniLiteral:()=>Ua,ZodMiniMAC:()=>_a,ZodMiniMap:()=>Ma,ZodMiniNaN:()=>Wa,ZodMiniNanoID:()=>ca,ZodMiniNever:()=>Ia,ZodMiniNonOptional:()=>Ys,ZodMiniNull:()=>va,ZodMiniNullable:()=>Ga,ZodMiniNumber:()=>dt,ZodMiniNumberFormat:()=>De,ZodMiniObject:()=>sr,ZodMiniOptional:()=>Js,ZodMiniPipe:()=>Gs,ZodMiniPrefault:()=>Ha,ZodMiniPromise:()=>ru,ZodMiniReadonly:()=>Qa,ZodMiniRecord:()=>cr,ZodMiniSet:()=>Ba,ZodMiniString:()=>Be,ZodMiniStringFormat:()=>T,ZodMiniSuccess:()=>qa,ZodMiniSymbol:()=>wa,ZodMiniTemplateLiteral:()=>Xa,ZodMiniTransform:()=>Ja,ZodMiniTuple:()=>La,ZodMiniType:()=>v,ZodMiniULID:()=>la,ZodMiniURL:()=>Bs,ZodMiniUUID:()=>pt,ZodMiniUndefined:()=>ka,ZodMiniUnion:()=>Us,ZodMiniUnknown:()=>Pa,ZodMiniVoid:()=>Aa,ZodMiniXID:()=>pa,ZodMiniXor:()=>Ca,_default:()=>bm,_function:()=>jm,any:()=>Gd,array:()=>F,base64:()=>Id,base64url:()=>Ed,bigint:()=>Dd,boolean:()=>Ue,catch:()=>wm,catchall:()=>om,check:()=>Em,cidrv4:()=>zd,cidrv6:()=>Sd,clone:()=>D,codec:()=>zm,coerce:()=>Vs,config:()=>O,core:()=>Me,cuid:()=>bd,cuid2:()=>yd,custom:()=>nu,date:()=>Hd,decode:()=>en,decodeAsync:()=>rn,describe:()=>Rm,discriminatedUnion:()=>sm,e164:()=>Ad,email:()=>ad,emoji:()=>gd,encode:()=>Xr,encodeAsync:()=>tn,endsWith:()=>zs,enum:()=>Da,exactOptional:()=>gm,extend:()=>gt,file:()=>mm,flattenError:()=>qr,float32:()=>jd,float64:()=>Od,formatError:()=>Vr,function:()=>jm,globalRegistry:()=>oe,gt:()=>er,gte:()=>at,guid:()=>ud,hash:()=>Nd,hex:()=>Zd,hostname:()=>Cd,httpUrl:()=>hd,includes:()=>ks,instanceof:()=>Zm,int:()=>Ld,int32:()=>Md,int64:()=>Ud,intersection:()=>cm,ipv4:()=>kd,ipv6:()=>vd,iso:()=>qs,json:()=>Lm,jwt:()=>Td,keyof:()=>qd,ksuid:()=>wd,lazy:()=>tu,length:()=>$s,literal:()=>dm,locales:()=>st,looseObject:()=>Wd,looseRecord:()=>um,lowercase:()=>xs,lt:()=>Xt,lte:()=>ct,mac:()=>Pd,map:()=>lm,maxLength:()=>ys,maxSize:()=>gs,maximum:()=>ct,merge:()=>Xd,meta:()=>Cm,mime:()=>Ps,minLength:()=>ut,minSize:()=>_s,minimum:()=>at,multipleOf:()=>hs,nan:()=>km,nanoid:()=>_d,nativeEnum:()=>fm,negative:()=>fs,never:()=>Ea,nonnegative:()=>ms,nonoptional:()=>$m,nonpositive:()=>ds,normalize:()=>Is,null:()=>za,nullable:()=>ar,nullish:()=>_m,number:()=>be,object:()=>I,omit:()=>tm,optional:()=>$,overwrite:()=>me,parse:()=>fe,parseAsync:()=>de,partial:()=>rm,partialRecord:()=>am,pick:()=>em,pipe:()=>vm,positive:()=>ps,prefault:()=>ym,prettifyError:()=>Qr,promise:()=>Im,property:()=>Ss,readonly:()=>Sm,record:()=>Oa,refine:()=>Am,regex:()=>lt,regexes:()=>ee,registry:()=>Wt,required:()=>nm,safeDecode:()=>on,safeDecodeAsync:()=>cn,safeEncode:()=>nn,safeEncodeAsync:()=>sn,safeExtend:()=>Qd,safeParse:()=>ke,safeParseAsync:()=>ve,set:()=>pm,size:()=>bs,startsWith:()=>vs,strictObject:()=>Vd,string:()=>y,stringFormat:()=>Rd,stringbool:()=>Nm,success:()=>xm,superRefine:()=>Tm,symbol:()=>Jd,templateLiteral:()=>Pm,toJSONSchema:()=>rr,toLowerCase:()=>As,toUpperCase:()=>Ts,transform:()=>hm,treeifyError:()=>Wr,trim:()=>Es,tuple:()=>ja,uint32:()=>Bd,uint64:()=>Fd,ulid:()=>$d,undefined:()=>Yd,union:()=>Ra,unknown:()=>or,uppercase:()=>ws,url:()=>md,util:()=>X,uuid:()=>ld,uuidv4:()=>pd,uuidv6:()=>fd,uuidv7:()=>dd,void:()=>Kd,xid:()=>xd,xor:()=>im});var Me={};xe(Me,{$ZodAny:()=>Zo,$ZodArray:()=>Mo,$ZodAsyncError:()=>te,$ZodBase64:()=>vo,$ZodBase64URL:()=>zo,$ZodBigInt:()=>Gt,$ZodBigIntFormat:()=>Ao,$ZodBoolean:()=>nt,$ZodCIDRv4:()=>xo,$ZodCIDRv6:()=>wo,$ZodCUID:()=>ao,$ZodCUID2:()=>uo,$ZodCatch:()=>ri,$ZodCheck:()=>A,$ZodCheckBigIntFormat:()=>On,$ZodCheckEndsWith:()=>Vn,$ZodCheckGreaterThan:()=>Mt,$ZodCheckIncludes:()=>Hn,$ZodCheckLengthEquals:()=>Jn,$ZodCheckLessThan:()=>Ot,$ZodCheckLowerCase:()=>Gn,$ZodCheckMaxLength:()=>Un,$ZodCheckMaxSize:()=>Mn,$ZodCheckMimeType:()=>Qn,$ZodCheckMinLength:()=>Fn,$ZodCheckMinSize:()=>Bn,$ZodCheckMultipleOf:()=>Ln,$ZodCheckNumberFormat:()=>jn,$ZodCheckOverwrite:()=>Xn,$ZodCheckProperty:()=>Wn,$ZodCheckRegex:()=>Yn,$ZodCheckSizeEquals:()=>Dn,$ZodCheckStartsWith:()=>qn,$ZodCheckStringFormat:()=>Le,$ZodCheckUpperCase:()=>Kn,$ZodCodec:()=>it,$ZodCustom:()=>li,$ZodCustomStringFormat:()=>Io,$ZodDate:()=>Oo,$ZodDefault:()=>Qo,$ZodDiscriminatedUnion:()=>Do,$ZodE164:()=>So,$ZodEmail:()=>oo,$ZodEmoji:()=>so,$ZodEncodeError:()=>Re,$ZodEnum:()=>Go,$ZodError:()=>Hr,$ZodExactOptional:()=>Vo,$ZodFile:()=>Ho,$ZodFunction:()=>ci,$ZodGUID:()=>ro,$ZodIPv4:()=>bo,$ZodIPv6:()=>yo,$ZodISODate:()=>ho,$ZodISODateTime:()=>mo,$ZodISODuration:()=>_o,$ZodISOTime:()=>go,$ZodIntersection:()=>Uo,$ZodJWT:()=>Po,$ZodKSUID:()=>fo,$ZodLazy:()=>ui,$ZodLiteral:()=>Ko,$ZodMAC:()=>$o,$ZodMap:()=>Jo,$ZodNaN:()=>ni,$ZodNanoID:()=>co,$ZodNever:()=>Lo,$ZodNonOptional:()=>ei,$ZodNull:()=>Co,$ZodNullable:()=>Wo,$ZodNumber:()=>Yt,$ZodNumberFormat:()=>Eo,$ZodObject:()=>Kt,$ZodObjectJIT:()=>Jp,$ZodOptional:()=>qt,$ZodPipe:()=>oi,$ZodPrefault:()=>Xo,$ZodPromise:()=>ai,$ZodReadonly:()=>ii,$ZodRealError:()=>H,$ZodRecord:()=>Fo,$ZodRegistry:()=>Vt,$ZodSet:()=>Yo,$ZodString:()=>je,$ZodStringFormat:()=>E,$ZodSuccess:()=>ti,$ZodSymbol:()=>To,$ZodTemplateLiteral:()=>si,$ZodTransform:()=>qo,$ZodTuple:()=>Ht,$ZodType:()=>w,$ZodULID:()=>lo,$ZodURL:()=>io,$ZodUUID:()=>no,$ZodUndefined:()=>Ro,$ZodUnion:()=>ot,$ZodUnknown:()=>No,$ZodVoid:()=>jo,$ZodXID:()=>po,$ZodXor:()=>Bo,$brand:()=>Rr,$constructor:()=>f,$input:()=>fi,$output:()=>pi,Doc:()=>rt,JSONSchema:()=>na,JSONSchemaGenerator:()=>nr,NEVER:()=>Tr,TimePrecision:()=>ji,_any:()=>os,_array:()=>qp,_base64:()=>Ci,_base64url:()=>Zi,_bigint:()=>Wi,_boolean:()=>qi,_catch:()=>mf,_check:()=>ra,_cidrv4:()=>Ti,_cidrv6:()=>Ri,_coercedBigint:()=>Qi,_coercedBoolean:()=>Vi,_coercedDate:()=>us,_coercedNumber:()=>Fi,_coercedString:()=>mi,_cuid:()=>ki,_cuid2:()=>vi,_custom:()=>Cs,_date:()=>as,_decode:()=>Pc,_decodeAsync:()=>Ec,_default:()=>pf,_discriminatedUnion:()=>Qp,_e164:()=>Ni,_email:()=>hi,_emoji:()=>xi,_encode:()=>Sc,_encodeAsync:()=>Ic,_endsWith:()=>zs,_enum:()=>of,_file:()=>Rs,_float32:()=>Yi,_float64:()=>Gi,_gt:()=>er,_gte:()=>at,_guid:()=>gi,_includes:()=>ks,_int:()=>Ji,_int32:()=>Ki,_int64:()=>Xi,_intersection:()=>Xp,_ipv4:()=>Ii,_ipv6:()=>Ei,_isoDate:()=>Mi,_isoDateTime:()=>Oi,_isoDuration:()=>Di,_isoTime:()=>Bi,_jwt:()=>Li,_ksuid:()=>Pi,_lazy:()=>bf,_length:()=>$s,_literal:()=>cf,_lowercase:()=>xs,_lt:()=>Xt,_lte:()=>ct,_mac:()=>Ai,_map:()=>rf,_max:()=>ct,_maxLength:()=>ys,_maxSize:()=>gs,_mime:()=>Ps,_min:()=>at,_minLength:()=>ut,_minSize:()=>_s,_multipleOf:()=>hs,_nan:()=>ls,_nanoid:()=>wi,_nativeEnum:()=>sf,_negative:()=>fs,_never:()=>ss,_nonnegative:()=>ms,_nonoptional:()=>ff,_nonpositive:()=>ds,_normalize:()=>Is,_null:()=>ns,_nullable:()=>lf,_number:()=>Ui,_optional:()=>uf,_overwrite:()=>me,_parse:()=>Rt,_parseAsync:()=>Ct,_pipe:()=>hf,_positive:()=>ps,_promise:()=>yf,_property:()=>Ss,_readonly:()=>gf,_record:()=>tf,_refine:()=>Zs,_regex:()=>lt,_safeDecode:()=>Tc,_safeDecodeAsync:()=>Cc,_safeEncode:()=>Ac,_safeEncodeAsync:()=>Rc,_safeParse:()=>Zt,_safeParseAsync:()=>Nt,_set:()=>nf,_size:()=>bs,_slugify:()=>Hp,_startsWith:()=>vs,_string:()=>di,_stringFormat:()=>Oe,_stringbool:()=>Os,_success:()=>df,_superRefine:()=>Ns,_symbol:()=>ts,_templateLiteral:()=>_f,_toLowerCase:()=>As,_toUpperCase:()=>Ts,_transform:()=>af,_trim:()=>Es,_tuple:()=>ef,_uint32:()=>Hi,_uint64:()=>es,_ulid:()=>zi,_undefined:()=>rs,_union:()=>Vp,_unknown:()=>is,_uppercase:()=>ws,_url:()=>Qt,_uuid:()=>_i,_uuidv4:()=>bi,_uuidv6:()=>yi,_uuidv7:()=>$i,_void:()=>cs,_xid:()=>Si,_xor:()=>Wp,clone:()=>D,config:()=>O,createStandardJSONSchemaMethod:()=>Ms,createToJSONSchemaMethod:()=>$f,decode:()=>en,decodeAsync:()=>rn,describe:()=>Ls,encode:()=>Xr,encodeAsync:()=>tn,extractDefs:()=>ge,finalize:()=>_e,flattenError:()=>qr,formatError:()=>Vr,globalConfig:()=>Ke,globalRegistry:()=>oe,initializeContext:()=>he,isValidBase64:()=>ko,isValidBase64URL:()=>Wc,isValidJWT:()=>Qc,locales:()=>st,meta:()=>js,parse:()=>fe,parseAsync:()=>de,prettifyError:()=>Qr,process:()=>P,regexes:()=>ee,registry:()=>Wt,safeDecode:()=>on,safeDecodeAsync:()=>cn,safeEncode:()=>nn,safeEncodeAsync:()=>sn,safeParse:()=>ke,safeParseAsync:()=>ve,toDotPath:()=>zc,toJSONSchema:()=>rr,treeifyError:()=>Wr,util:()=>X,version:()=>eo});var Tr=Object.freeze({status:"aborted"});function f(e,t,r){function n(c,a){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:a,constr:s,traits:new Set},enumerable:!1}),c._zod.traits.has(e))return;c._zod.traits.add(e),t(c,a);let u=s.prototype,p=Object.keys(u);for(let d=0;d<p.length;d++){let m=p[d];m in c||(c[m]=u[m].bind(c))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(c){var a;let u=r?.Parent?new i:this;n(u,c),(a=u._zod).deferred??(a.deferred=[]);for(let p of u._zod.deferred)p();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>r?.Parent&&c instanceof r.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var Rr=Symbol("zod_brand"),te=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Re=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Ke={};function O(e){return e&&Object.assign(Ke,e),Ke}var X={};xe(X,{BIGINT_FORMAT_RANGES:()=>Ur,Class:()=>Zr,NUMBER_FORMAT_RANGES:()=>Dr,aborted:()=>pe,allowsEval:()=>Or,assert:()=>Xl,assertEqual:()=>ql,assertIs:()=>Wl,assertNever:()=>Ql,assertNotEqual:()=>Vl,assignProp:()=>ue,base64ToUint8Array:()=>wc,base64urlToUint8Array:()=>fp,cached:()=>Ce,captureStackTrace:()=>At,cleanEnum:()=>pp,cleanRegex:()=>Ve,clone:()=>D,cloneDef:()=>rp,createTransparentProxy:()=>ap,defineLazy:()=>k,esc:()=>Et,escapeRegex:()=>Q,extend:()=>Tt,finalizeIssue:()=>K,floatSafeRemainder:()=>Lr,getElementAtPath:()=>np,getEnumValues:()=>qe,getLengthableOrigin:()=>Xe,getParsedType:()=>cp,getSizableOrigin:()=>Qe,hexToUint8Array:()=>mp,isObject:()=>we,isPlainObject:()=>le,issue:()=>Ne,joinValues:()=>ep,jsonStringifyReplacer:()=>Nr,merge:()=>up,mergeDefs:()=>ie,normalizeParams:()=>g,nullish:()=>ae,numKeys:()=>sp,objectClone:()=>tp,omit:()=>Jr,optionalKeys:()=>Br,parsedType:()=>lp,partial:()=>Gr,pick:()=>Fr,prefixIssues:()=>V,primitiveTypes:()=>Mr,promiseAllObject:()=>op,propertyKeyTypes:()=>We,randomString:()=>ip,required:()=>Kr,safeExtend:()=>Yr,shallowClone:()=>Ze,slugify:()=>jr,stringifyPrimitive:()=>xc,uint8ArrayToBase64:()=>kc,uint8ArrayToBase64url:()=>dp,uint8ArrayToHex:()=>hp,unwrapMessage:()=>He});function ql(e){return e}function Vl(e){return e}function Wl(e){}function Ql(e){throw new Error("Unexpected value in exhaustive check")}function Xl(e){}function qe(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function ep(e,t="|"){return e.map(r=>xc(r)).join(t)}function Nr(e,t){return typeof t=="bigint"?t.toString():t}function Ce(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ae(e){return e==null}function Ve(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Lr(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let a=n.match(/\d?e-(\d?)/);a?.[1]&&(o=Number.parseInt(a[1]))}let i=r>o?r:o,s=Number.parseInt(e.toFixed(i).replace(".","")),c=Number.parseInt(t.toFixed(i).replace(".",""));return s%c/10**i}var $c=Symbol("evaluating");function k(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==$c)return n===void 0&&(n=$c,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function tp(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function ue(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ie(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function rp(e){return ie(e._zod.def)}function np(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function op(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=n[i];return o})}function ip(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function Et(e){return JSON.stringify(e)}function jr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var At="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function we(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Or=Ce(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function le(e){if(we(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(we(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ze(e){return le(e)?{...e}:Array.isArray(e)?[...e]:e}function sp(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var cp=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},We=new Set(["string","number","symbol"]),Mr=new Set(["string","number","bigint","boolean","symbol","undefined"]);function Q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function ap(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function xc(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Br(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Dr={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ur={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Fr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ie(e._zod.def,{get shape(){let s={};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(s[c]=r.shape[c])}return ue(this,"shape",s),s},checks:[]});return D(e,i)}function Jr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ie(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&delete s[c]}return ue(this,"shape",s),s},checks:[]});return D(e,i)}function Tt(e,t){if(!le(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ie(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return ue(this,"shape",i),i}});return D(e,o)}function Yr(e,t){if(!le(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ie(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return ue(this,"shape",n),n}});return D(e,r)}function up(e,t){let r=ie(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return ue(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return D(e,r)}function Gr(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ie(t._zod.def,{get shape(){let c=t._zod.def.shape,a={...c};if(r)for(let u in r){if(!(u in c))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(a[u]=e?new e({type:"optional",innerType:c[u]}):c[u])}else for(let u in c)a[u]=e?new e({type:"optional",innerType:c[u]}):c[u];return ue(this,"shape",a),a},checks:[]});return D(t,s)}function Kr(e,t,r){let n=ie(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new e({type:"nonoptional",innerType:o[s]});return ue(this,"shape",i),i}});return D(t,n)}function pe(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function V(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function He(e){return typeof e=="string"?e:e?.message}function K(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=He(e.inst?._zod.def?.error?.(e))??He(t?.error?.(e))??He(r.customError?.(e))??He(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Qe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Xe(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function lp(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function Ne(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function pp(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function wc(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function kc(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function fp(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return wc(t+r)}function dp(e){return kc(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function mp(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function hp(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Zr=class{constructor(...t){}};var vc=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Nr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Hr=f("$ZodError",vc),H=f("$ZodError",vc,{Parent:Error});function qr(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Vr(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(s=>n({issues:s}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let s=r,c=0;for(;c<i.path.length;){let a=i.path[c];c===i.path.length-1?(s[a]=s[a]||{_errors:[]},s[a]._errors.push(t(i))):s[a]=s[a]||{_errors:[]},s=s[a],c++}}};return n(e),r}function Wr(e,t=r=>r.message){let r={errors:[]},n=(o,i=[])=>{var s,c;for(let a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(u=>n({issues:u},a.path));else if(a.code==="invalid_key")n({issues:a.issues},a.path);else if(a.code==="invalid_element")n({issues:a.issues},a.path);else{let u=[...i,...a.path];if(u.length===0){r.errors.push(t(a));continue}let p=r,d=0;for(;d<u.length;){let m=u[d],h=d===u.length-1;typeof m=="string"?(p.properties??(p.properties={}),(s=p.properties)[m]??(s[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(c=p.items)[m]??(c[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(a)),d++}}};return n(e),r}function zc(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function Qr(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${zc(n.path)}`);return t.join(`
3
- `)}var Rt=e=>(t,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new te;if(s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>K(a,i,O())));throw At(c,o?.callee),c}return s.value},fe=Rt(H),Ct=e=>async(t,r,n,o)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>K(a,i,O())));throw At(c,o?.callee),c}return s.value},de=Ct(H),Zt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new te;return i.issues.length?{success:!1,error:new(e??Hr)(i.issues.map(s=>K(s,o,O())))}:{success:!0,data:i.value}},ke=Zt(H),Nt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>K(s,o,O())))}:{success:!0,data:i.value}},ve=Nt(H),Sc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Rt(e)(t,r,o)},Xr=Sc(H),Pc=e=>(t,r,n)=>Rt(e)(t,r,n),en=Pc(H),Ic=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ct(e)(t,r,o)},tn=Ic(H),Ec=e=>async(t,r,n)=>Ct(e)(t,r,n),rn=Ec(H),Ac=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Zt(e)(t,r,o)},nn=Ac(H),Tc=e=>(t,r,n)=>Zt(e)(t,r,n),on=Tc(H),Rc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Nt(e)(t,r,o)},sn=Rc(H),Cc=e=>async(t,r,n)=>Nt(e)(t,r,n),cn=Cc(H);var ee={};xe(ee,{base64:()=>kn,base64url:()=>Lt,bigint:()=>En,boolean:()=>Tn,browserEmail:()=>vp,cidrv4:()=>xn,cidrv6:()=>wn,cuid:()=>an,cuid2:()=>un,date:()=>zn,datetime:()=>Pn,domain:()=>Pp,duration:()=>mn,e164:()=>vn,email:()=>gn,emoji:()=>_n,extendedDuration:()=>_p,guid:()=>hn,hex:()=>Ip,hostname:()=>Sp,html5Email:()=>xp,idnEmail:()=>kp,integer:()=>An,ipv4:()=>bn,ipv6:()=>yn,ksuid:()=>fn,lowercase:()=>Zn,mac:()=>$n,md5_base64:()=>Ap,md5_base64url:()=>Tp,md5_hex:()=>Ep,nanoid:()=>dn,null:()=>Rn,number:()=>jt,rfc5322Email:()=>wp,sha1_base64:()=>Cp,sha1_base64url:()=>Zp,sha1_hex:()=>Rp,sha256_base64:()=>Lp,sha256_base64url:()=>jp,sha256_hex:()=>Np,sha384_base64:()=>Mp,sha384_base64url:()=>Bp,sha384_hex:()=>Op,sha512_base64:()=>Up,sha512_base64url:()=>Fp,sha512_hex:()=>Dp,string:()=>In,time:()=>Sn,ulid:()=>ln,undefined:()=>Cn,unicodeEmail:()=>Zc,uppercase:()=>Nn,uuid:()=>ze,uuid4:()=>bp,uuid6:()=>yp,uuid7:()=>$p,xid:()=>pn});var an=/^[cC][^\s-]{8,}$/,un=/^[0-9a-z]+$/,ln=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,pn=/^[0-9a-vA-V]{20}$/,fn=/^[A-Za-z0-9]{27}$/,dn=/^[a-zA-Z0-9_-]{21}$/,mn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,_p=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,hn=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ze=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,bp=ze(4),yp=ze(6),$p=ze(7),gn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,xp=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,wp=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,Zc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,kp=Zc,vp=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,zp="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function _n(){return new RegExp(zp,"u")}var bn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,yn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$n=e=>{let t=Q(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},xn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,wn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,kn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Lt=/^[A-Za-z0-9_-]*$/,Sp=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,Pp=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,vn=/^\+[1-9]\d{6,14}$/,Nc="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",zn=new RegExp(`^${Nc}$`);function Lc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Sn(e){return new RegExp(`^${Lc(e)}$`)}function Pn(e){let t=Lc({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Nc}T(?:${n})$`)}var In=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},En=/^-?\d+n?$/,An=/^-?\d+$/,jt=/^-?\d+(?:\.\d+)?$/,Tn=/^(?:true|false)$/i,Rn=/^null$/i;var Cn=/^undefined$/i;var Zn=/^[^A-Z]*$/,Nn=/^[^a-z]*$/,Ip=/^[0-9a-fA-F]*$/;function et(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function tt(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var Ep=/^[0-9a-fA-F]{32}$/,Ap=et(22,"=="),Tp=tt(22),Rp=/^[0-9a-fA-F]{40}$/,Cp=et(27,"="),Zp=tt(27),Np=/^[0-9a-fA-F]{64}$/,Lp=et(43,"="),jp=tt(43),Op=/^[0-9a-fA-F]{96}$/,Mp=et(64,""),Bp=tt(64),Dp=/^[0-9a-fA-F]{128}$/,Up=et(86,"=="),Fp=tt(86);var A=f("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Oc={number:"number",bigint:"bigint",object:"date"},Ot=f("$ZodCheckLessThan",(e,t)=>{A.init(e,t);let r=Oc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Mt=f("$ZodCheckGreaterThan",(e,t)=>{A.init(e,t);let r=Oc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ln=f("$ZodCheckMultipleOf",(e,t)=>{A.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Lr(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),jn=f("$ZodCheckNumberFormat",(e,t)=>{A.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Dr[t.format];e._zod.onattach.push(s=>{let c=s._zod.bag;c.format=t.format,c.minimum=o,c.maximum=i,r&&(c.pattern=An)}),e._zod.check=s=>{let c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?s.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):s.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}c<o&&s.issues.push({origin:"number",input:c,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),c>i&&s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),On=f("$ZodCheckBigIntFormat",(e,t)=>{A.init(e,t);let[r,n]=Ur[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;i<r&&o.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),i>n&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),Mn=f("$ZodCheckMaxSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:Qe(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Bn=f("$ZodCheckMinSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:Qe(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Dn=f("$ZodCheckSizeEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let s=i>t.size;n.issues.push({origin:Qe(o),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Un=f("$ZodCheckMaxLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let s=Xe(o);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Fn=f("$ZodCheckMinLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let s=Xe(o);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Jn=f("$ZodCheckLengthEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ae(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let s=Xe(o),c=i>t.length;n.issues.push({origin:s,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Le=f("$ZodCheckStringFormat",(e,t)=>{var r,n;A.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Yn=f("$ZodCheckRegex",(e,t)=>{Le.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Gn=f("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Zn),Le.init(e,t)}),Kn=f("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Nn),Le.init(e,t)}),Hn=f("$ZodCheckIncludes",(e,t)=>{A.init(e,t);let r=Q(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),qn=f("$ZodCheckStartsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`^${Q(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Vn=f("$ZodCheckEndsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`.*${Q(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function jc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues))}var Wn=f("$ZodCheckProperty",(e,t)=>{A.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>jc(o,r,t.property));jc(n,r,t.property)}}),Qn=f("$ZodCheckMimeType",(e,t)=>{A.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),Xn=f("$ZodCheckOverwrite",(e,t)=>{A.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var rt=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
4
- `).filter(s=>s),o=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(`
5
- `))}};var eo={major:4,minor:3,patch:6};var w=f("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=eo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(s,c,a)=>{let u=pe(s),p;for(let d of c){if(d._zod.def.when){if(!d._zod.def.when(s))continue}else if(u)continue;let m=s.issues.length,h=d._zod.check(s);if(h instanceof Promise&&a?.async===!1)throw new te;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,s.issues.length!==m&&(u||(u=pe(s,m)))});else{if(s.issues.length===m)continue;u||(u=pe(s,m))}}return p?p.then(()=>s):s},i=(s,c,a)=>{if(pe(s))return s.aborted=!0,s;let u=o(c,n,a);if(u instanceof Promise){if(a.async===!1)throw new te;return u.then(p=>e._zod.parse(p,a))}return e._zod.parse(u,a)};e._zod.run=(s,c)=>{if(c.skipChecks)return e._zod.parse(s,c);if(c.direction==="backward"){let u=e._zod.parse({value:s.value,issues:[]},{...c,skipChecks:!0});return u instanceof Promise?u.then(p=>i(p,s,c)):i(u,s,c)}let a=e._zod.parse(s,c);if(a instanceof Promise){if(c.async===!1)throw new te;return a.then(u=>o(u,n,c))}return o(a,n,c)}}k(e,"~standard",()=>({validate:o=>{try{let i=ke(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ve(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),je=f("$ZodString",(e,t)=>{w.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??In(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),E=f("$ZodStringFormat",(e,t)=>{Le.init(e,t),je.init(e,t)}),ro=f("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=hn),E.init(e,t)}),no=f("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ze(n))}else t.pattern??(t.pattern=ze());E.init(e,t)}),oo=f("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=gn),E.init(e,t)}),io=f("$ZodURL",(e,t)=>{E.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),so=f("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=_n()),E.init(e,t)}),co=f("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=dn),E.init(e,t)}),ao=f("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=an),E.init(e,t)}),uo=f("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=un),E.init(e,t)}),lo=f("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ln),E.init(e,t)}),po=f("$ZodXID",(e,t)=>{t.pattern??(t.pattern=pn),E.init(e,t)}),fo=f("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=fn),E.init(e,t)}),mo=f("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Pn(t)),E.init(e,t)}),ho=f("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=zn),E.init(e,t)}),go=f("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Sn(t)),E.init(e,t)}),_o=f("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mn),E.init(e,t)}),bo=f("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=bn),E.init(e,t),e._zod.bag.format="ipv4"}),yo=f("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=yn),E.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),$o=f("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=$n(t.delimiter)),E.init(e,t),e._zod.bag.format="mac"}),xo=f("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=xn),E.init(e,t)}),wo=f("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=wn),E.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function ko(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var vo=f("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=kn),E.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{ko(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Wc(e){if(!Lt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return ko(r)}var zo=f("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Lt),E.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Wc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),So=f("$ZodE164",(e,t)=>{t.pattern??(t.pattern=vn),E.init(e,t)});function Qc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Po=f("$ZodJWT",(e,t)=>{E.init(e,t),e._zod.check=r=>{Qc(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Io=f("$ZodCustomStringFormat",(e,t)=>{E.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),Yt=f("$ZodNumber",(e,t)=>{w.init(e,t),e._zod.pattern=e._zod.bag.pattern??jt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Eo=f("$ZodNumberFormat",(e,t)=>{jn.init(e,t),Yt.init(e,t)}),nt=f("$ZodBoolean",(e,t)=>{w.init(e,t),e._zod.pattern=Tn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),Gt=f("$ZodBigInt",(e,t)=>{w.init(e,t),e._zod.pattern=En,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Ao=f("$ZodBigIntFormat",(e,t)=>{On.init(e,t),Gt.init(e,t)}),To=f("$ZodSymbol",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Ro=f("$ZodUndefined",(e,t)=>{w.init(e,t),e._zod.pattern=Cn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Co=f("$ZodNull",(e,t)=>{w.init(e,t),e._zod.pattern=Rn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Zo=f("$ZodAny",(e,t)=>{w.init(e,t),e._zod.parse=r=>r}),No=f("$ZodUnknown",(e,t)=>{w.init(e,t),e._zod.parse=r=>r}),Lo=f("$ZodNever",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),jo=f("$ZodVoid",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),Oo=f("$ZodDate",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Bc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var Mo=f("$ZodArray",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let c=o[s],a=t.element._zod.run({value:c,issues:[]},n);a instanceof Promise?i.push(a.then(u=>Bc(u,r,s))):Bc(a,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Jt(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...V(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Xc(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Br(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function ea(e,t,r,n,o,i){let s=[],c=o.keySet,a=o.catchall._zod,u=a.def.type,p=a.optout==="optional";for(let d in t){if(c.has(d))continue;if(u==="never"){s.push(d);continue}let m=a.run({value:t[d],issues:[]},n);m instanceof Promise?e.push(m.then(h=>Jt(h,r,d,t,p))):Jt(m,r,d,t,p)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Kt=f("$ZodObject",(e,t)=>{if(w.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let c=t.shape;Object.defineProperty(t,"shape",{get:()=>{let a={...c};return Object.defineProperty(t,"shape",{value:a}),a}})}let n=Ce(()=>Xc(t));k(e._zod,"propValues",()=>{let c=t.shape,a={};for(let u in c){let p=c[u]._zod;if(p.values){a[u]??(a[u]=new Set);for(let d of p.values)a[u].add(d)}}return a});let o=we,i=t.catchall,s;e._zod.parse=(c,a)=>{s??(s=n.value);let u=c.value;if(!o(u))return c.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),c;c.value={};let p=[],d=s.shape;for(let m of s.keys){let h=d[m],b=h._zod.optout==="optional",_=h._zod.run({value:u[m],issues:[]},a);_ instanceof Promise?p.push(_.then(z=>Jt(z,c,m,u,b))):Jt(_,c,m,u,b)}return i?ea(p,u,c,a,n.value,e):p.length?Promise.all(p).then(()=>c):c}}),Jp=f("$ZodObjectJIT",(e,t)=>{Kt.init(e,t);let r=e._zod.parse,n=Ce(()=>Xc(t)),o=m=>{let h=new rt(["shape","payload","ctx"]),b=n.value,_=R=>{let L=Et(R);return`shape[${L}]._zod.run({ value: input[${L}], issues: [] }, ctx)`};h.write("const input = payload.value;");let z=Object.create(null),Y=0;for(let R of b.keys)z[R]=`key_${Y++}`;h.write("const newResult = {};");for(let R of b.keys){let L=z[R],G=Et(R),Ir=m[R]?._zod?.optout==="optional";h.write(`const ${L} = ${_(R)};`),Ir?h.write(`
1
+ var _f=Object.defineProperty;var ze=(e,t)=>{for(var r in t)_f(e,r,{get:t[r],enumerable:!0})};import{resolve as yb}from"node:path";import{fileURLToPath as bb}from"node:url";function Ce(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),s=r%60;return s>0?`${o}h ${s}m`:`${o}h`}import{execFileSync as pe}from"node:child_process";function Yr(...e){return pe("git",e,{encoding:"utf8"}).trim()}function Ua(){return Yr("rev-parse","--abbrev-ref","HEAD")}function Lt(){try{return pe("git",["diff","--quiet"],{stdio:"ignore"}),pe("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function We(e){try{return pe("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Gr(e,t){We(e)||Yr("checkout","-b",e,t)}function N(e,t=!1){Yr("checkout",...t?["-B"]:[],e)}function Fa(e){try{return pe("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function Zt(e){try{return pe("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function Ha(e,t=8e3){try{let r=pe("git",["diff",`${e}...HEAD`,"--stat"],{encoding:"utf8",timeout:1e4}).trim();return r?r.length>t?r.slice(0,t)+`
2
+ ... (truncated)`:r:void 0}catch{return}}function Ve(e){try{return pe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var $=e=>`\x1B[2m${e}\x1B[0m`,Ne=e=>`\x1B[1m${e}\x1B[0m`;var O=e=>`\x1B[32m${e}\x1B[0m`,Oe=e=>`\x1B[31m${e}\x1B[0m`,z=e=>`\x1B[33m${e}\x1B[0m`;function qa(e){return{argv:e,dryRun:e.includes("--dry-run"),skipFeasibility:e.includes("--skip-feasibility"),startTime:Date.now(),cwd:process.cwd(),isAfk:process.env.CLANCY_AFK_MODE==="1"}}import{mkdirSync as wf,readFileSync as $f,unlinkSync as Ja,writeFileSync as xf}from"node:fs";import{dirname as kf,join as jt}from"node:path";function Ka(e,t){let r=jt(e,".clancy","lock.json");wf(kf(r),{recursive:!0}),xf(r,JSON.stringify(t,null,2),"utf8")}function Dt(e){let t=jt(e,".clancy","lock.json");try{let r=$f(t,"utf8");return JSON.parse(r)}catch{return}}function Mt(e){let t=jt(e,".clancy","lock.json");try{Ja(t)}catch{}}function Bt(e){let t=jt(e,".clancy","verify-attempt.txt");try{Ja(t)}catch{}}function Sf(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function Ya(e){if(!Sf(e.pid))return!0;let t=Date.now()-new Date(e.startedAt).getTime();if(Number.isNaN(t))return!0;let r=1440*60*1e3;return t>r}import{execFileSync as yl}from"node:child_process";import{readFileSync as qg}from"node:fs";import{join as Jg}from"node:path";var c={};ze(c,{$brand:()=>Vr,$input:()=>Es,$output:()=>As,NEVER:()=>Wr,TimePrecision:()=>ri,ZodMiniAny:()=>tu,ZodMiniArray:()=>iu,ZodMiniBase64:()=>Kc,ZodMiniBase64URL:()=>Yc,ZodMiniBigInt:()=>wt,ZodMiniBigIntFormat:()=>ia,ZodMiniBoolean:()=>_t,ZodMiniCIDRv4:()=>Hc,ZodMiniCIDRv6:()=>qc,ZodMiniCUID:()=>Zc,ZodMiniCUID2:()=>jc,ZodMiniCatch:()=>vu,ZodMiniCodec:()=>fa,ZodMiniCustom:()=>da,ZodMiniCustomStringFormat:()=>yt,ZodMiniDate:()=>br,ZodMiniDefault:()=>xu,ZodMiniDiscriminatedUnion:()=>uu,ZodMiniE164:()=>Gc,ZodMiniEmail:()=>Cc,ZodMiniEmoji:()=>Oc,ZodMiniEnum:()=>ca,ZodMiniExactOptional:()=>wu,ZodMiniFile:()=>bu,ZodMiniFunction:()=>Cu,ZodMiniGUID:()=>Nc,ZodMiniIPv4:()=>Uc,ZodMiniIPv6:()=>Fc,ZodMiniISODate:()=>kr,ZodMiniISODateTime:()=>xr,ZodMiniISODuration:()=>vr,ZodMiniISOTime:()=>Sr,ZodMiniIntersection:()=>lu,ZodMiniJWT:()=>Wc,ZodMiniKSUID:()=>Bc,ZodMiniLazy:()=>Pu,ZodMiniLiteral:()=>yu,ZodMiniMAC:()=>Jc,ZodMiniMap:()=>mu,ZodMiniNaN:()=>zu,ZodMiniNanoID:()=>Lc,ZodMiniNever:()=>nu,ZodMiniNonOptional:()=>la,ZodMiniNull:()=>Xc,ZodMiniNullable:()=>$u,ZodMiniNumber:()=>bt,ZodMiniNumberFormat:()=>qe,ZodMiniObject:()=>_r,ZodMiniOptional:()=>ua,ZodMiniPipe:()=>pa,ZodMiniPrefault:()=>ku,ZodMiniPromise:()=>Eu,ZodMiniReadonly:()=>Tu,ZodMiniRecord:()=>wr,ZodMiniSet:()=>hu,ZodMiniString:()=>He,ZodMiniStringFormat:()=>E,ZodMiniSuccess:()=>Su,ZodMiniSymbol:()=>Vc,ZodMiniTemplateLiteral:()=>Iu,ZodMiniTransform:()=>_u,ZodMiniTuple:()=>pu,ZodMiniType:()=>S,ZodMiniULID:()=>Dc,ZodMiniURL:()=>sa,ZodMiniUUID:()=>gt,ZodMiniUndefined:()=>Qc,ZodMiniUnion:()=>aa,ZodMiniUnknown:()=>ru,ZodMiniVoid:()=>su,ZodMiniXID:()=>Mc,ZodMiniXor:()=>cu,_default:()=>Kh,_function:()=>fg,any:()=>$h,array:()=>H,base64:()=>nh,base64url:()=>oh,bigint:()=>gh,boolean:()=>Je,catch:()=>Vh,catchall:()=>Ch,check:()=>og,cidrv4:()=>eh,cidrv6:()=>th,clone:()=>U,codec:()=>eg,coerce:()=>ha,config:()=>j,core:()=>Fe,cuid:()=>Km,cuid2:()=>Ym,custom:()=>Ru,date:()=>kh,decode:()=>wn,decodeAsync:()=>xn,describe:()=>ag,discriminatedUnion:()=>Oh,e164:()=>sh,email:()=>Zm,emoji:()=>qm,encode:()=>_n,encodeAsync:()=>$n,endsWith:()=>Hi,enum:()=>gu,exactOptional:()=>qh,extend:()=>ke,file:()=>Fh,flattenError:()=>hn,float32:()=>fh,float64:()=>dh,formatError:()=>gn,function:()=>fg,globalRegistry:()=>ce,gt:()=>dr,gte:()=>dt,guid:()=>jm,hash:()=>lh,hex:()=>uh,hostname:()=>ch,httpUrl:()=>Hm,includes:()=>Ui,instanceof:()=>ug,int:()=>ph,int32:()=>mh,int64:()=>yh,intersection:()=>Lh,ipv4:()=>Qm,ipv6:()=>Xm,iso:()=>ma,json:()=>pg,jwt:()=>ih,keyof:()=>Sh,ksuid:()=>Vm,lazy:()=>Au,length:()=>Di,literal:()=>Uh,locales:()=>pt,looseObject:()=>zh,looseRecord:()=>jh,lowercase:()=>Mi,lt:()=>fr,lte:()=>ft,mac:()=>rh,map:()=>Dh,maxLength:()=>ji,maxSize:()=>Oi,maximum:()=>ft,merge:()=>Ih,meta:()=>cg,mime:()=>Ji,minLength:()=>mt,minSize:()=>Li,minimum:()=>dt,multipleOf:()=>Ni,nan:()=>Qh,nanoid:()=>Jm,nativeEnum:()=>Bh,negative:()=>Ei,never:()=>ou,nonnegative:()=>Ci,nonoptional:()=>Gh,nonpositive:()=>Ri,normalize:()=>Ki,null:()=>eu,nullable:()=>$r,nullish:()=>Jh,number:()=>xe,object:()=>I,omit:()=>Ah,optional:()=>w,overwrite:()=>be,parse:()=>ge,parseAsync:()=>ye,partial:()=>Eh,partialRecord:()=>Zh,pick:()=>Ph,pipe:()=>Xh,positive:()=>Ai,prefault:()=>Yh,prettifyError:()=>bn,promise:()=>ng,property:()=>qi,readonly:()=>tg,record:()=>du,refine:()=>sg,regex:()=>ht,regexes:()=>re,registry:()=>lr,required:()=>Rh,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeExtend:()=>Th,safeParse:()=>Ie,safeParseAsync:()=>Pe,set:()=>Mh,size:()=>Zi,startsWith:()=>Fi,strictObject:()=>vh,string:()=>_,stringFormat:()=>ah,stringbool:()=>lg,success:()=>Wh,superRefine:()=>ig,symbol:()=>_h,templateLiteral:()=>rg,toJSONSchema:()=>hr,toLowerCase:()=>Gi,toUpperCase:()=>Wi,transform:()=>Hh,treeifyError:()=>yn,trim:()=>Yi,tuple:()=>fu,uint32:()=>hh,uint64:()=>bh,ulid:()=>Gm,undefined:()=>wh,union:()=>au,unknown:()=>yr,uppercase:()=>Bi,url:()=>Fm,util:()=>te,uuid:()=>Dm,uuidv4:()=>Mm,uuidv6:()=>Bm,uuidv7:()=>Um,void:()=>xh,xid:()=>Wm,xor:()=>Nh});var Fe={};ze(Fe,{$ZodAny:()=>Xo,$ZodArray:()=>os,$ZodAsyncError:()=>se,$ZodBase64:()=>Fo,$ZodBase64URL:()=>Ho,$ZodBigInt:()=>sr,$ZodBigIntFormat:()=>Go,$ZodBoolean:()=>ct,$ZodCIDRv4:()=>Mo,$ZodCIDRv6:()=>Bo,$ZodCUID:()=>Io,$ZodCUID2:()=>Po,$ZodCatch:()=>$s,$ZodCheck:()=>A,$ZodCheckBigIntFormat:()=>no,$ZodCheckEndsWith:()=>go,$ZodCheckGreaterThan:()=>Qt,$ZodCheckIncludes:()=>mo,$ZodCheckLengthEquals:()=>uo,$ZodCheckLessThan:()=>Vt,$ZodCheckLowerCase:()=>po,$ZodCheckMaxLength:()=>ao,$ZodCheckMaxSize:()=>oo,$ZodCheckMimeType:()=>bo,$ZodCheckMinLength:()=>co,$ZodCheckMinSize:()=>so,$ZodCheckMultipleOf:()=>to,$ZodCheckNumberFormat:()=>ro,$ZodCheckOverwrite:()=>_o,$ZodCheckProperty:()=>yo,$ZodCheckRegex:()=>lo,$ZodCheckSizeEquals:()=>io,$ZodCheckStartsWith:()=>ho,$ZodCheckStringFormat:()=>Me,$ZodCheckUpperCase:()=>fo,$ZodCodec:()=>lt,$ZodCustom:()=>Ps,$ZodCustomStringFormat:()=>Ko,$ZodDate:()=>ns,$ZodDefault:()=>ys,$ZodDiscriminatedUnion:()=>is,$ZodE164:()=>qo,$ZodEmail:()=>So,$ZodEmoji:()=>zo,$ZodEncodeError:()=>Le,$ZodEnum:()=>ps,$ZodError:()=>mn,$ZodExactOptional:()=>hs,$ZodFile:()=>ds,$ZodFunction:()=>zs,$ZodGUID:()=>xo,$ZodIPv4:()=>Zo,$ZodIPv6:()=>jo,$ZodISODate:()=>No,$ZodISODateTime:()=>Co,$ZodISODuration:()=>Lo,$ZodISOTime:()=>Oo,$ZodIntersection:()=>as,$ZodJWT:()=>Jo,$ZodKSUID:()=>Ro,$ZodLazy:()=>Is,$ZodLiteral:()=>fs,$ZodMAC:()=>Do,$ZodMap:()=>us,$ZodNaN:()=>xs,$ZodNanoID:()=>To,$ZodNever:()=>ts,$ZodNonOptional:()=>_s,$ZodNull:()=>Qo,$ZodNullable:()=>gs,$ZodNumber:()=>or,$ZodNumberFormat:()=>Yo,$ZodObject:()=>ir,$ZodObjectJIT:()=>wd,$ZodOptional:()=>cr,$ZodPipe:()=>ks,$ZodPrefault:()=>bs,$ZodPromise:()=>Ts,$ZodReadonly:()=>Ss,$ZodRealError:()=>G,$ZodRecord:()=>cs,$ZodRegistry:()=>ur,$ZodSet:()=>ls,$ZodString:()=>Be,$ZodStringFormat:()=>P,$ZodSuccess:()=>ws,$ZodSymbol:()=>Wo,$ZodTemplateLiteral:()=>vs,$ZodTransform:()=>ms,$ZodTuple:()=>ar,$ZodType:()=>x,$ZodULID:()=>Ao,$ZodURL:()=>vo,$ZodUUID:()=>ko,$ZodUndefined:()=>Vo,$ZodUnion:()=>ut,$ZodUnknown:()=>es,$ZodVoid:()=>rs,$ZodXID:()=>Eo,$ZodXor:()=>ss,$brand:()=>Vr,$constructor:()=>d,$input:()=>Es,$output:()=>As,Doc:()=>at,JSONSchema:()=>Rc,JSONSchemaGenerator:()=>gr,NEVER:()=>Wr,TimePrecision:()=>ri,_any:()=>ki,_array:()=>vd,_base64:()=>Qs,_base64url:()=>Xs,_bigint:()=>gi,_boolean:()=>mi,_catch:()=>Fd,_check:()=>Ec,_cidrv4:()=>Ws,_cidrv6:()=>Vs,_coercedBigint:()=>yi,_coercedBoolean:()=>hi,_coercedDate:()=>Ii,_coercedNumber:()=>ci,_coercedString:()=>Cs,_cuid:()=>Us,_cuid2:()=>Fs,_custom:()=>Qi,_date:()=>Ti,_decode:()=>rc,_decodeAsync:()=>oc,_default:()=>Md,_discriminatedUnion:()=>Id,_e164:()=>ei,_email:()=>Ns,_emoji:()=>Ms,_encode:()=>tc,_encodeAsync:()=>nc,_endsWith:()=>Hi,_enum:()=>Nd,_file:()=>Vi,_float32:()=>li,_float64:()=>pi,_gt:()=>dr,_gte:()=>dt,_guid:()=>Os,_includes:()=>Ui,_int:()=>ui,_int32:()=>fi,_int64:()=>bi,_intersection:()=>Pd,_ipv4:()=>Ks,_ipv6:()=>Ys,_isoDate:()=>oi,_isoDateTime:()=>ni,_isoDuration:()=>ii,_isoTime:()=>si,_jwt:()=>ti,_ksuid:()=>Js,_lazy:()=>Kd,_length:()=>Di,_literal:()=>Ld,_lowercase:()=>Mi,_lt:()=>fr,_lte:()=>ft,_mac:()=>Gs,_map:()=>Rd,_max:()=>ft,_maxLength:()=>ji,_maxSize:()=>Oi,_mime:()=>Ji,_min:()=>dt,_minLength:()=>mt,_minSize:()=>Li,_multipleOf:()=>Ni,_nan:()=>Pi,_nanoid:()=>Bs,_nativeEnum:()=>Od,_negative:()=>Ei,_never:()=>vi,_nonnegative:()=>Ci,_nonoptional:()=>Bd,_nonpositive:()=>Ri,_normalize:()=>Ki,_null:()=>xi,_nullable:()=>Dd,_number:()=>ai,_optional:()=>jd,_overwrite:()=>be,_parse:()=>qt,_parseAsync:()=>Jt,_pipe:()=>Hd,_positive:()=>Ai,_promise:()=>Yd,_property:()=>qi,_readonly:()=>qd,_record:()=>Ed,_refine:()=>Xi,_regex:()=>ht,_safeDecode:()=>ic,_safeDecodeAsync:()=>cc,_safeEncode:()=>sc,_safeEncodeAsync:()=>ac,_safeParse:()=>Kt,_safeParseAsync:()=>Yt,_set:()=>Cd,_size:()=>Zi,_slugify:()=>Sd,_startsWith:()=>Fi,_string:()=>Rs,_stringFormat:()=>Ue,_stringbool:()=>na,_success:()=>Ud,_superRefine:()=>ea,_symbol:()=>wi,_templateLiteral:()=>Jd,_toLowerCase:()=>Gi,_toUpperCase:()=>Wi,_transform:()=>Zd,_trim:()=>Yi,_tuple:()=>Ad,_uint32:()=>di,_uint64:()=>_i,_ulid:()=>Hs,_undefined:()=>$i,_union:()=>zd,_unknown:()=>Si,_uppercase:()=>Bi,_url:()=>pr,_uuid:()=>Ls,_uuidv4:()=>Zs,_uuidv6:()=>js,_uuidv7:()=>Ds,_void:()=>zi,_xid:()=>qs,_xor:()=>Td,clone:()=>U,config:()=>j,createStandardJSONSchemaMethod:()=>oa,createToJSONSchemaMethod:()=>Gd,decode:()=>wn,decodeAsync:()=>xn,describe:()=>ta,encode:()=>_n,encodeAsync:()=>$n,extractDefs:()=>we,finalize:()=>$e,flattenError:()=>hn,formatError:()=>gn,globalConfig:()=>Qe,globalRegistry:()=>ce,initializeContext:()=>_e,isValidBase64:()=>Uo,isValidBase64URL:()=>zc,isValidJWT:()=>Tc,locales:()=>pt,meta:()=>ra,parse:()=>ge,parseAsync:()=>ye,prettifyError:()=>bn,process:()=>T,regexes:()=>re,registry:()=>lr,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeParse:()=>Ie,safeParseAsync:()=>Pe,toDotPath:()=>ec,toJSONSchema:()=>hr,treeifyError:()=>yn,util:()=>te,version:()=>wo});var Wr=Object.freeze({status:"aborted"});function d(e,t,r){function n(a,u){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:u,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,u);let l=i.prototype,p=Object.keys(l);for(let f=0;f<p.length;f++){let m=p[f];m in a||(a[m]=l[m].bind(a))}}let o=r?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var u;let l=r?.Parent?new s:this;n(l,a),(u=l._zod).deferred??(u.deferred=[]);for(let p of l._zod.deferred)p();return l}return Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var Vr=Symbol("zod_brand"),se=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Le=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Qe={};function j(e){return e&&Object.assign(Qe,e),Qe}var te={};ze(te,{BIGINT_FORMAT_RANGES:()=>cn,Class:()=>Xr,NUMBER_FORMAT_RANGES:()=>an,aborted:()=>he,allowsEval:()=>nn,assert:()=>Pf,assertEqual:()=>vf,assertIs:()=>Tf,assertNever:()=>If,assertNotEqual:()=>zf,assignProp:()=>de,base64ToUint8Array:()=>Va,base64urlToUint8Array:()=>Uf,cached:()=>Ze,captureStackTrace:()=>Ft,cleanEnum:()=>Bf,cleanRegex:()=>tt,clone:()=>U,cloneDef:()=>Rf,createTransparentProxy:()=>jf,defineLazy:()=>k,esc:()=>Ut,escapeRegex:()=>ee,extend:()=>Ht,finalizeIssue:()=>Y,floatSafeRemainder:()=>tn,getElementAtPath:()=>Cf,getEnumValues:()=>et,getLengthableOrigin:()=>ot,getParsedType:()=>Zf,getSizableOrigin:()=>nt,hexToUint8Array:()=>Hf,isObject:()=>Te,isPlainObject:()=>me,issue:()=>De,joinValues:()=>Af,jsonStringifyReplacer:()=>en,merge:()=>Df,mergeDefs:()=>ue,normalizeParams:()=>g,nullish:()=>fe,numKeys:()=>Lf,objectClone:()=>Ef,omit:()=>ln,optionalKeys:()=>sn,parsedType:()=>Mf,partial:()=>fn,pick:()=>un,prefixIssues:()=>V,primitiveTypes:()=>on,promiseAllObject:()=>Nf,propertyKeyTypes:()=>rt,randomString:()=>Of,required:()=>dn,safeExtend:()=>pn,shallowClone:()=>je,slugify:()=>rn,stringifyPrimitive:()=>Wa,uint8ArrayToBase64:()=>Qa,uint8ArrayToBase64url:()=>Ff,uint8ArrayToHex:()=>qf,unwrapMessage:()=>Xe});function vf(e){return e}function zf(e){return e}function Tf(e){}function If(e){throw new Error("Unexpected value in exhaustive check")}function Pf(e){}function et(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Af(e,t="|"){return e.map(r=>Wa(r)).join(t)}function en(e,t){return typeof t=="bigint"?t.toString():t}function Ze(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function fe(e){return e==null}function tt(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function tn(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let u=n.match(/\d?e-(\d?)/);u?.[1]&&(o=Number.parseInt(u[1]))}let s=r>o?r:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}var Ga=Symbol("evaluating");function k(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Ga)return n===void 0&&(n=Ga,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Ef(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function de(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ue(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Rf(e){return ue(e._zod.def)}function Cf(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Nf(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let s=0;s<t.length;s++)o[t[s]]=n[s];return o})}function Of(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function Ut(e){return JSON.stringify(e)}function rn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ft="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var nn=Ze(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function me(e){if(Te(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(Te(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function je(e){return me(e)?{...e}:Array.isArray(e)?[...e]:e}function Lf(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Zf=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},rt=new Set(["string","number","symbol"]),on=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function jf(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,s){return t??(t=e()),Reflect.set(t,n,o,s)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function Wa(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function sn(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var an={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},cn={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function un(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=r.shape[a])}return de(this,"shape",i),i},checks:[]});return U(e,s)}function ln(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return de(this,"shape",i),i},checks:[]});return U(e,s)}function Ht(e,t){if(!me(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let s=e._zod.def.shape;for(let i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ue(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return de(this,"shape",s),s}});return U(e,o)}function pn(e,t){if(!me(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return de(this,"shape",n),n}});return U(e,r)}function Df(e,t){let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return de(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return U(e,r)}function fn(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let i=ue(t._zod.def,{get shape(){let a=t._zod.def.shape,u={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)u[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return de(this,"shape",u),u},checks:[]});return U(t,i)}function dn(e,t,r){let n=ue(t._zod.def,{get shape(){let o=t._zod.def.shape,s={...o};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(let i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return de(this,"shape",s),s}});return U(t,n)}function he(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function V(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Xe(e){return typeof e=="string"?e:e?.message}function Y(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=Xe(e.inst?._zod.def?.error?.(e))??Xe(t?.error?.(e))??Xe(r.customError?.(e))??Xe(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function nt(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function ot(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Mf(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function De(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Bf(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Va(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function Qa(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Uf(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Va(t+r)}function Ff(e){return Qa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Hf(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function qf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Xr=class{constructor(...t){}};var Xa=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,en,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mn=d("$ZodError",Xa),G=d("$ZodError",Xa,{Parent:Error});function hn(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function gn(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>n({issues:i}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let i=r,a=0;for(;a<s.path.length;){let u=s.path[a];a===s.path.length-1?(i[u]=i[u]||{_errors:[]},i[u]._errors.push(t(s))):i[u]=i[u]||{_errors:[]},i=i[u],a++}}};return n(e),r}function yn(e,t=r=>r.message){let r={errors:[]},n=(o,s=[])=>{var i,a;for(let u of o.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(l=>n({issues:l},u.path));else if(u.code==="invalid_key")n({issues:u.issues},u.path);else if(u.code==="invalid_element")n({issues:u.issues},u.path);else{let l=[...s,...u.path];if(l.length===0){r.errors.push(t(u));continue}let p=r,f=0;for(;f<l.length;){let m=l[f],h=f===l.length-1;typeof m=="string"?(p.properties??(p.properties={}),(i=p.properties)[m]??(i[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(a=p.items)[m]??(a[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(u)),f++}}};return n(e),r}function ec(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function bn(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${ec(n.path)}`);return t.join(`
3
+ `)}var qt=e=>(t,r,n,o)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new se;if(i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>Y(u,s,j())));throw Ft(a,o?.callee),a}return i.value},ge=qt(G),Jt=e=>async(t,r,n,o)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>Y(u,s,j())));throw Ft(a,o?.callee),a}return i.value},ye=Jt(G),Kt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new se;return s.issues.length?{success:!1,error:new(e??mn)(s.issues.map(i=>Y(i,o,j())))}:{success:!0,data:s.value}},Ie=Kt(G),Yt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>Y(i,o,j())))}:{success:!0,data:s.value}},Pe=Yt(G),tc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return qt(e)(t,r,o)},_n=tc(G),rc=e=>(t,r,n)=>qt(e)(t,r,n),wn=rc(G),nc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Jt(e)(t,r,o)},$n=nc(G),oc=e=>async(t,r,n)=>Jt(e)(t,r,n),xn=oc(G),sc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Kt(e)(t,r,o)},kn=sc(G),ic=e=>(t,r,n)=>Kt(e)(t,r,n),Sn=ic(G),ac=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yt(e)(t,r,o)},vn=ac(G),cc=e=>async(t,r,n)=>Yt(e)(t,r,n),zn=cc(G);var re={};ze(re,{base64:()=>Un,base64url:()=>Gt,bigint:()=>Yn,boolean:()=>Wn,browserEmail:()=>ed,cidrv4:()=>Mn,cidrv6:()=>Bn,cuid:()=>Tn,cuid2:()=>In,date:()=>Hn,datetime:()=>Jn,domain:()=>nd,duration:()=>Cn,e164:()=>Fn,email:()=>On,emoji:()=>Ln,extendedDuration:()=>Kf,guid:()=>Nn,hex:()=>od,hostname:()=>rd,html5Email:()=>Vf,idnEmail:()=>Xf,integer:()=>Gn,ipv4:()=>Zn,ipv6:()=>jn,ksuid:()=>En,lowercase:()=>Xn,mac:()=>Dn,md5_base64:()=>id,md5_base64url:()=>ad,md5_hex:()=>sd,nanoid:()=>Rn,null:()=>Vn,number:()=>Wt,rfc5322Email:()=>Qf,sha1_base64:()=>ud,sha1_base64url:()=>ld,sha1_hex:()=>cd,sha256_base64:()=>fd,sha256_base64url:()=>dd,sha256_hex:()=>pd,sha384_base64:()=>hd,sha384_base64url:()=>gd,sha384_hex:()=>md,sha512_base64:()=>bd,sha512_base64url:()=>_d,sha512_hex:()=>yd,string:()=>Kn,time:()=>qn,ulid:()=>Pn,undefined:()=>Qn,unicodeEmail:()=>uc,uppercase:()=>eo,uuid:()=>Ae,uuid4:()=>Yf,uuid6:()=>Gf,uuid7:()=>Wf,xid:()=>An});var Tn=/^[cC][^\s-]{8,}$/,In=/^[0-9a-z]+$/,Pn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,An=/^[0-9a-vA-V]{20}$/,En=/^[A-Za-z0-9]{27}$/,Rn=/^[a-zA-Z0-9_-]{21}$/,Cn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Nn=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ae=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Yf=Ae(4),Gf=Ae(6),Wf=Ae(7),On=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Vf=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Qf=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,uc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Xf=uc,ed=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,td="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ln(){return new RegExp(td,"u")}var Zn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Dn=e=>{let t=ee(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Mn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Bn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Un=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Gt=/^[A-Za-z0-9_-]*$/,rd=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,nd=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Fn=/^\+[1-9]\d{6,14}$/,lc="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Hn=new RegExp(`^${lc}$`);function pc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function qn(e){return new RegExp(`^${pc(e)}$`)}function Jn(e){let t=pc({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${lc}T(?:${n})$`)}var Kn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Yn=/^-?\d+n?$/,Gn=/^-?\d+$/,Wt=/^-?\d+(?:\.\d+)?$/,Wn=/^(?:true|false)$/i,Vn=/^null$/i;var Qn=/^undefined$/i;var Xn=/^[^A-Z]*$/,eo=/^[^a-z]*$/,od=/^[0-9a-fA-F]*$/;function st(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function it(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var sd=/^[0-9a-fA-F]{32}$/,id=st(22,"=="),ad=it(22),cd=/^[0-9a-fA-F]{40}$/,ud=st(27,"="),ld=it(27),pd=/^[0-9a-fA-F]{64}$/,fd=st(43,"="),dd=it(43),md=/^[0-9a-fA-F]{96}$/,hd=st(64,""),gd=it(64),yd=/^[0-9a-fA-F]{128}$/,bd=st(86,"=="),_d=it(86);var A=d("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),dc={number:"number",bigint:"bigint",object:"date"},Vt=d("$ZodCheckLessThan",(e,t)=>{A.init(e,t);let r=dc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Qt=d("$ZodCheckGreaterThan",(e,t)=>{A.init(e,t);let r=dc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),to=d("$ZodCheckMultipleOf",(e,t)=>{A.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):tn(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),ro=d("$ZodCheckNumberFormat",(e,t)=>{A.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,s]=an[t.format];e._zod.onattach.push(i=>{let a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,r&&(a.pattern=Gn)}),e._zod.check=i=>{let a=i.value;if(r){if(!Number.isInteger(a)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),no=d("$ZodCheckBigIntFormat",(e,t)=>{A.init(e,t);let[r,n]=cn[t.format];e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=n}),e._zod.check=o=>{let s=o.value;s<r&&o.issues.push({origin:"bigint",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>n&&o.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),oo=d("$ZodCheckMaxSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:nt(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),so=d("$ZodCheckMinSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:nt(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),io=d("$ZodCheckSizeEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,s=o.size;if(s===t.size)return;let i=s>t.size;n.issues.push({origin:nt(o),...i?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ao=d("$ZodCheckMaxLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let i=ot(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),co=d("$ZodCheckMinLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let i=ot(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),uo=d("$ZodCheckLengthEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,s=o.length;if(s===t.length)return;let i=ot(o),a=s>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Me=d("$ZodCheckStringFormat",(e,t)=>{var r,n;A.init(e,t),e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),lo=d("$ZodCheckRegex",(e,t)=>{Me.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),po=d("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Xn),Me.init(e,t)}),fo=d("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=eo),Me.init(e,t)}),mo=d("$ZodCheckIncludes",(e,t)=>{A.init(e,t);let r=ee(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),ho=d("$ZodCheckStartsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`^${ee(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),go=d("$ZodCheckEndsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`.*${ee(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function fc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues))}var yo=d("$ZodCheckProperty",(e,t)=>{A.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>fc(o,r,t.property));fc(n,r,t.property)}}),bo=d("$ZodCheckMimeType",(e,t)=>{A.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),_o=d("$ZodCheckOverwrite",(e,t)=>{A.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var at=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
4
+ `).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),s=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...r,o.join(`
5
+ `))}};var wo={major:4,minor:3,patch:6};var x=d("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=wo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let s of o._zod.onattach)s(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,a,u)=>{let l=he(i),p;for(let f of a){if(f._zod.def.when){if(!f._zod.def.when(i))continue}else if(l)continue;let m=i.issues.length,h=f._zod.check(i);if(h instanceof Promise&&u?.async===!1)throw new se;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,i.issues.length!==m&&(l||(l=he(i,m)))});else{if(i.issues.length===m)continue;l||(l=he(i,m))}}return p?p.then(()=>i):i},s=(i,a,u)=>{if(he(i))return i.aborted=!0,i;let l=o(a,n,u);if(l instanceof Promise){if(u.async===!1)throw new se;return l.then(p=>e._zod.parse(p,u))}return e._zod.parse(l,u)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){let l=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(p=>s(p,i,a)):s(l,i,a)}let u=e._zod.parse(i,a);if(u instanceof Promise){if(a.async===!1)throw new se;return u.then(l=>o(l,n,a))}return o(u,n,a)}}k(e,"~standard",()=>({validate:o=>{try{let s=Ie(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Pe(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Be=d("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Kn(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),P=d("$ZodStringFormat",(e,t)=>{Me.init(e,t),Be.init(e,t)}),xo=d("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Nn),P.init(e,t)}),ko=d("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Ae(n))}else t.pattern??(t.pattern=Ae());P.init(e,t)}),So=d("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=On),P.init(e,t)}),vo=d("$ZodURL",(e,t)=>{P.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),zo=d("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ln()),P.init(e,t)}),To=d("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Rn),P.init(e,t)}),Io=d("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Tn),P.init(e,t)}),Po=d("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=In),P.init(e,t)}),Ao=d("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Pn),P.init(e,t)}),Eo=d("$ZodXID",(e,t)=>{t.pattern??(t.pattern=An),P.init(e,t)}),Ro=d("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=En),P.init(e,t)}),Co=d("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Jn(t)),P.init(e,t)}),No=d("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Hn),P.init(e,t)}),Oo=d("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=qn(t)),P.init(e,t)}),Lo=d("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Cn),P.init(e,t)}),Zo=d("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Zn),P.init(e,t),e._zod.bag.format="ipv4"}),jo=d("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=jn),P.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Do=d("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=Dn(t.delimiter)),P.init(e,t),e._zod.bag.format="mac"}),Mo=d("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Mn),P.init(e,t)}),Bo=d("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Bn),P.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,s]=n;if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Uo(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Fo=d("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Un),P.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Uo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function zc(e){if(!Gt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Uo(r)}var Ho=d("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Gt),P.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{zc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),qo=d("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Fn),P.init(e,t)});function Tc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Jo=d("$ZodJWT",(e,t)=>{P.init(e,t),e._zod.check=r=>{Tc(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Ko=d("$ZodCustomStringFormat",(e,t)=>{P.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),or=d("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Wt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),Yo=d("$ZodNumberFormat",(e,t)=>{ro.init(e,t),or.init(e,t)}),ct=d("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=Wn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),sr=d("$ZodBigInt",(e,t)=>{x.init(e,t),e._zod.pattern=Yn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Go=d("$ZodBigIntFormat",(e,t)=>{no.init(e,t),sr.init(e,t)}),Wo=d("$ZodSymbol",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Vo=d("$ZodUndefined",(e,t)=>{x.init(e,t),e._zod.pattern=Qn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Qo=d("$ZodNull",(e,t)=>{x.init(e,t),e._zod.pattern=Vn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Xo=d("$ZodAny",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),es=d("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),ts=d("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),rs=d("$ZodVoid",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),ns=d("$ZodDate",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,s=o instanceof Date;return s&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...s?{received:"Invalid Date"}:{},inst:e}),r}});function hc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var os=d("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let s=[];for(let i=0;i<o.length;i++){let a=o[i],u=t.element._zod.run({value:a,issues:[]},n);u instanceof Promise?s.push(u.then(l=>hc(l,r,i))):hc(u,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function nr(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...V(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Ic(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=sn(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Pc(e,t,r,n,o,s){let i=[],a=o.keySet,u=o.catchall._zod,l=u.def.type,p=u.optout==="optional";for(let f in t){if(a.has(f))continue;if(l==="never"){i.push(f);continue}let m=u.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>nr(h,r,f,t,p))):nr(m,r,f,t,p)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}var ir=d("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let u={...a};return Object.defineProperty(t,"shape",{value:u}),u}})}let n=Ze(()=>Ic(t));k(e._zod,"propValues",()=>{let a=t.shape,u={};for(let l in a){let p=a[l]._zod;if(p.values){u[l]??(u[l]=new Set);for(let f of p.values)u[l].add(f)}}return u});let o=Te,s=t.catchall,i;e._zod.parse=(a,u)=>{i??(i=n.value);let l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let p=[],f=i.shape;for(let m of i.keys){let h=f[m],y=h._zod.optout==="optional",b=h._zod.run({value:l[m],issues:[]},u);b instanceof Promise?p.push(b.then(v=>nr(v,a,m,l,y))):nr(b,a,m,l,y)}return s?Pc(p,l,a,u,n.value,e):p.length?Promise.all(p).then(()=>a):a}}),wd=d("$ZodObjectJIT",(e,t)=>{ir.init(e,t);let r=e._zod.parse,n=Ze(()=>Ic(t)),o=m=>{let h=new at(["shape","payload","ctx"]),y=n.value,b=R=>{let L=Ut(R);return`shape[${L}]._zod.run({ value: input[${L}], issues: [] }, ctx)`};h.write("const input = payload.value;");let v=Object.create(null),J=0;for(let R of y.keys)v[R]=`key_${J++}`;h.write("const newResult = {};");for(let R of y.keys){let L=v[R],K=Ut(R),Kr=m[R]?._zod?.optout==="optional";h.write(`const ${L} = ${b(R)};`),Kr?h.write(`
6
6
  if (${L}.issues.length) {
7
- if (${G} in input) {
7
+ if (${K} in input) {
8
8
  payload.issues = payload.issues.concat(${L}.issues.map(iss => ({
9
9
  ...iss,
10
- path: iss.path ? [${G}, ...iss.path] : [${G}]
10
+ path: iss.path ? [${K}, ...iss.path] : [${K}]
11
11
  })));
12
12
  }
13
13
  }
14
14
 
15
15
  if (${L}.value === undefined) {
16
- if (${G} in input) {
17
- newResult[${G}] = undefined;
16
+ if (${K} in input) {
17
+ newResult[${K}] = undefined;
18
18
  }
19
19
  } else {
20
- newResult[${G}] = ${L}.value;
20
+ newResult[${K}] = ${L}.value;
21
21
  }
22
22
 
23
23
  `):h.write(`
24
24
  if (${L}.issues.length) {
25
25
  payload.issues = payload.issues.concat(${L}.issues.map(iss => ({
26
26
  ...iss,
27
- path: iss.path ? [${G}, ...iss.path] : [${G}]
27
+ path: iss.path ? [${K}, ...iss.path] : [${K}]
28
28
  })));
29
29
  }
30
30
 
31
31
  if (${L}.value === undefined) {
32
- if (${G} in input) {
33
- newResult[${G}] = undefined;
32
+ if (${K} in input) {
33
+ newResult[${K}] = undefined;
34
34
  }
35
35
  } else {
36
- newResult[${G}] = ${L}.value;
36
+ newResult[${K}] = ${L}.value;
37
37
  }
38
38
 
39
- `)}h.write("payload.value = newResult;"),h.write("return payload;");let W=h.compile();return(R,L)=>W(m,R,L)},i,s=we,c=!Ke.jitless,u=c&&Or.value,p=t.catchall,d;e._zod.parse=(m,h)=>{d??(d=n.value);let b=m.value;return s(b)?c&&u&&h?.async===!1&&h.jitless!==!0?(i||(i=o(t.shape)),m=i(m,h),p?ea([],b,m,h,d,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:b,inst:e}),m)}});function Dc(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!pe(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>K(s,n,O())))}),t)}var ot=f("$ZodUnion",(e,t)=>{w.init(e,t),k(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),k(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Ve(i.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)c.push(u),s=!0;else{if(u.issues.length===0)return u;c.push(u)}}return s?Promise.all(c).then(a=>Dc(a,o,e,i)):Dc(c,o,e,i)}});function Uc(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>K(s,n,O())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var Bo=f("$ZodXor",(e,t)=>{ot.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(c.push(u),s=!0):c.push(u)}return s?Promise.all(c).then(a=>Uc(a,o,e,i)):Uc(c,o,e,i)}}),Do=f("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ot.init(e,t);let r=e._zod.parse;k(e._zod,"propValues",()=>{let o={};for(let i of t.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let[c,a]of Object.entries(s)){o[c]||(o[c]=new Set);for(let u of a)o[c].add(u)}}return o});let n=Ce(()=>{let o=t.options,i=new Map;for(let s of o){let c=s._zod.propValues?.[t.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let a of c){if(i.has(a))throw new Error(`Duplicate discriminator value "${String(a)}"`);i.set(a,s)}}return i});e._zod.parse=(o,i)=>{let s=o.value;if(!we(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let c=n.value.get(s?.[t.discriminator]);return c?c._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:s,path:[t.discriminator],inst:e}),o)}}),Uo=f("$ZodIntersection",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,i=t.left._zod.run({value:o,issues:[]},n),s=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([a,u])=>Fc(r,a,u)):Fc(r,i,s)}});function to(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(le(e)&&le(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let s=to(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],i=t[n],s=to(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Fc(e,t,r){let n=new Map,o;for(let c of t.issues)if(c.code==="unrecognized_keys"){o??(o=c);for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).l=!0}else e.issues.push(c);for(let c of r.issues)if(c.code==="unrecognized_keys")for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).r=!0;else e.issues.push(c);let i=[...n].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(i.length&&o&&e.issues.push({...o,keys:i}),pe(e))return e;let s=to(t.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var Ht=f("$ZodTuple",(e,t)=>{w.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let s=[],c=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),a=c===-1?0:r.length-c;if(!t.rest){let p=i.length>r.length,d=i.length<a-1;if(p||d)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:i,inst:e,origin:"array"}),n}let u=-1;for(let p of r){if(u++,u>=i.length&&u>=a)continue;let d=p._zod.run({value:i[u],issues:[]},o);d instanceof Promise?s.push(d.then(m=>Bt(m,n,u))):Bt(d,n,u)}if(t.rest){let p=i.slice(r.length);for(let d of p){u++;let m=t.rest._zod.run({value:d,issues:[]},o);m instanceof Promise?s.push(m.then(h=>Bt(h,n,u))):Bt(m,n,u)}}return s.length?Promise.all(s).then(()=>n):n}});function Bt(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var Fo=f("$ZodRecord",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!le(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],s=t.keyType._zod.values;if(s){r.value={};let c=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){c.add(typeof u=="number"?u.toString():u);let p=t.valueType._zod.run({value:o[u],issues:[]},n);p instanceof Promise?i.push(p.then(d=>{d.issues.length&&r.issues.push(...V(u,d.issues)),r.value[u]=d.value})):(p.issues.length&&r.issues.push(...V(u,p.issues)),r.value[u]=p.value)}let a;for(let u in o)c.has(u)||(a=a??[],a.push(u));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{r.value={};for(let c of Reflect.ownKeys(o)){if(c==="__proto__")continue;let a=t.keyType._zod.run({value:c,issues:[]},n);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&jt.test(c)&&a.issues.length){let d=t.keyType._zod.run({value:Number(c),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(a=d)}if(a.issues.length){t.mode==="loose"?r.value[c]=o[c]:r.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(d=>K(d,n,O())),input:c,path:[c],inst:e});continue}let p=t.valueType._zod.run({value:o[c],issues:[]},n);p instanceof Promise?i.push(p.then(d=>{d.issues.length&&r.issues.push(...V(c,d.issues)),r.value[a.value]=d.value})):(p.issues.length&&r.issues.push(...V(c,p.issues)),r.value[a.value]=p.value)}}return i.length?Promise.all(i).then(()=>r):r}}),Jo=f("$ZodMap",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let i=[];r.value=new Map;for(let[s,c]of o){let a=t.keyType._zod.run({value:s,issues:[]},n),u=t.valueType._zod.run({value:c,issues:[]},n);a instanceof Promise||u instanceof Promise?i.push(Promise.all([a,u]).then(([p,d])=>{Jc(p,d,r,s,o,e,n)})):Jc(a,u,r,s,o,e,n)}return i.length?Promise.all(i).then(()=>r):r}});function Jc(e,t,r,n,o,i,s){e.issues.length&&(We.has(typeof n)?r.issues.push(...V(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(c=>K(c,s,O()))})),t.issues.length&&(We.has(typeof n)?r.issues.push(...V(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(c=>K(c,s,O()))})),r.value.set(e.value,t.value)}var Yo=f("$ZodSet",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let s of o){let c=t.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(a=>Yc(a,r))):Yc(c,r)}return i.length?Promise.all(i).then(()=>r):r}});function Yc(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var Go=f("$ZodEnum",(e,t)=>{w.init(e,t);let r=qe(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>We.has(typeof o)).map(o=>typeof o=="string"?Q(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:e}),o}}),Ko=f("$ZodLiteral",(e,t)=>{if(w.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?Q(n):n?Q(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),Ho=f("$ZodFile",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),qo=f("$ZodTransform",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Re(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r));if(o instanceof Promise)throw new te;return r.value=o,r}});function Gc(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var qt=f("$ZodOptional",(e,t)=>{w.init(e,t),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ve(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Gc(i,r.value)):Gc(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Vo=f("$ZodExactOptional",(e,t)=>{qt.init(e,t),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),Wo=f("$ZodNullable",(e,t)=>{w.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ve(r.source)}|null)$`):void 0}),k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Qo=f("$ZodDefault",(e,t)=>{w.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Kc(i,t)):Kc(o,t)}});function Kc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Xo=f("$ZodPrefault",(e,t)=>{w.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),ei=f("$ZodNonOptional",(e,t)=>{w.init(e,t),k(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Hc(i,e)):Hc(o,e)}});function Hc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var ti=f("$ZodSuccess",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Re("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),ri=f("$ZodCatch",(e,t)=>{w.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(s=>K(s,n,O()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>K(i,n,O()))},input:r.value}),r.issues=[]),r)}}),ni=f("$ZodNaN",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),oi=f("$ZodPipe",(e,t)=>{w.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Dt(s,t.in,n)):Dt(i,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Dt(i,t.out,n)):Dt(o,t.out,n)}});function Dt(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var it=f("$ZodCodec",(e,t)=>{w.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=t.in._zod.run(r,n);return i instanceof Promise?i.then(s=>Ut(s,t,n)):Ut(i,t,n)}else{let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Ut(s,t,n)):Ut(i,t,n)}}});function Ut(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>Ft(e,i,t.out,r)):Ft(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>Ft(e,i,t.in,r)):Ft(e,o,t.in,r)}}function Ft(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var ii=f("$ZodReadonly",(e,t)=>{w.init(e,t),k(e._zod,"propValues",()=>t.innerType._zod.propValues),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"optin",()=>t.innerType?._zod?.optin),k(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(qc):qc(o)}});function qc(e){return e.value=Object.freeze(e.value),e}var si=f("$ZodTemplateLiteral",(e,t)=>{w.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,s=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,s))}else if(n===null||Mr.has(typeof n))r.push(Q(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),ci=f("$ZodFunction",(e,t)=>(w.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?fe(e._def.input,n):n,i=Reflect.apply(r,this,o);return e._def.output?fe(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await de(e._def.input,n):n,i=await Reflect.apply(r,this,o);return e._def.output?await de(e._def.output,i):i}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Ht({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),ai=f("$ZodPromise",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),ui=f("$ZodLazy",(e,t)=>{w.init(e,t),k(e._zod,"innerType",()=>t.getter()),k(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),k(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),k(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),k(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),li=f("$ZodCustom",(e,t)=>{A.init(e,t),w.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Vc(i,r,n,e));Vc(o,r,n,e)}});function Vc(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(Ne(o))}}var st={};xe(st,{default:()=>Gp});var Gp={};var ta,pi=Symbol("ZodOutput"),fi=Symbol("ZodInput"),Vt=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function Wt(){return new Vt}(ta=globalThis).__zod_globalRegistry??(ta.__zod_globalRegistry=Wt());var oe=globalThis.__zod_globalRegistry;function di(e,t){return new e({type:"string",...g(t)})}function mi(e,t){return new e({type:"string",coerce:!0,...g(t)})}function hi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function gi(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function _i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function bi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function yi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function $i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function Qt(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function xi(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function wi(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function ki(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function vi(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function zi(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function Si(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Pi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Ii(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ei(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Ai(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Ti(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Ri(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Ci(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Zi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function Ni(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function Li(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ji={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Oi(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function Mi(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function Bi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function Di(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function Ui(e,t){return new e({type:"number",checks:[],...g(t)})}function Fi(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function Ji(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function Yi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function Gi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function Ki(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function Hi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function qi(e,t){return new e({type:"boolean",...g(t)})}function Vi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function Wi(e,t){return new e({type:"bigint",...g(t)})}function Qi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function Xi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function es(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function ts(e,t){return new e({type:"symbol",...g(t)})}function rs(e,t){return new e({type:"undefined",...g(t)})}function ns(e,t){return new e({type:"null",...g(t)})}function os(e){return new e({type:"any"})}function is(e){return new e({type:"unknown"})}function ss(e,t){return new e({type:"never",...g(t)})}function cs(e,t){return new e({type:"void",...g(t)})}function as(e,t){return new e({type:"date",...g(t)})}function us(e,t){return new e({type:"date",coerce:!0,...g(t)})}function ls(e,t){return new e({type:"nan",...g(t)})}function Xt(e,t){return new Ot({check:"less_than",...g(t),value:e,inclusive:!1})}function ct(e,t){return new Ot({check:"less_than",...g(t),value:e,inclusive:!0})}function er(e,t){return new Mt({check:"greater_than",...g(t),value:e,inclusive:!1})}function at(e,t){return new Mt({check:"greater_than",...g(t),value:e,inclusive:!0})}function ps(e){return er(0,e)}function fs(e){return Xt(0,e)}function ds(e){return ct(0,e)}function ms(e){return at(0,e)}function hs(e,t){return new Ln({check:"multiple_of",...g(t),value:e})}function gs(e,t){return new Mn({check:"max_size",...g(t),maximum:e})}function _s(e,t){return new Bn({check:"min_size",...g(t),minimum:e})}function bs(e,t){return new Dn({check:"size_equals",...g(t),size:e})}function ys(e,t){return new Un({check:"max_length",...g(t),maximum:e})}function ut(e,t){return new Fn({check:"min_length",...g(t),minimum:e})}function $s(e,t){return new Jn({check:"length_equals",...g(t),length:e})}function lt(e,t){return new Yn({check:"string_format",format:"regex",...g(t),pattern:e})}function xs(e){return new Gn({check:"string_format",format:"lowercase",...g(e)})}function ws(e){return new Kn({check:"string_format",format:"uppercase",...g(e)})}function ks(e,t){return new Hn({check:"string_format",format:"includes",...g(t),includes:e})}function vs(e,t){return new qn({check:"string_format",format:"starts_with",...g(t),prefix:e})}function zs(e,t){return new Vn({check:"string_format",format:"ends_with",...g(t),suffix:e})}function Ss(e,t,r){return new Wn({check:"property",property:e,schema:t,...g(r)})}function Ps(e,t){return new Qn({check:"mime_type",mime:e,...g(t)})}function me(e){return new Xn({check:"overwrite",tx:e})}function Is(e){return me(t=>t.normalize(e))}function Es(){return me(e=>e.trim())}function As(){return me(e=>e.toLowerCase())}function Ts(){return me(e=>e.toUpperCase())}function Hp(){return me(e=>jr(e))}function qp(e,t,r){return new e({type:"array",element:t,...g(r)})}function Vp(e,t,r){return new e({type:"union",options:t,...g(r)})}function Wp(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Qp(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Xp(e,t,r){return new e({type:"intersection",left:t,right:r})}function ef(e,t,r,n){let o=r instanceof w,i=o?n:r,s=o?r:null;return new e({type:"tuple",items:t,rest:s,...g(i)})}function tf(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function rf(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function nf(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function of(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,...g(r)})}function sf(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function cf(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Rs(e,t){return new e({type:"file",...g(t)})}function af(e,t){return new e({type:"transform",transform:t})}function uf(e,t){return new e({type:"optional",innerType:t})}function lf(e,t){return new e({type:"nullable",innerType:t})}function pf(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():Ze(r)}})}function ff(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function df(e,t){return new e({type:"success",innerType:t})}function mf(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function hf(e,t,r){return new e({type:"pipe",in:t,out:r})}function gf(e,t){return new e({type:"readonly",innerType:t})}function _f(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function bf(e,t){return new e({type:"lazy",getter:t})}function yf(e,t){return new e({type:"promise",innerType:t})}function Cs(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Zs(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function Ns(e){let t=ra(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Ne(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(Ne(o))}},e(r.value,r)));return t}function ra(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function Ls(e){let t=new A({check:"describe"});return t._zod.onattach=[r=>{let n=oe.get(r)??{};oe.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function js(e){let t=new A({check:"meta"});return t._zod.onattach=[r=>{let n=oe.get(r)??{};oe.add(r,{...n,...e})}],t._zod.check=()=>{},t}function Os(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let i=new Set(n),s=new Set(o),c=e.Codec??it,a=e.Boolean??nt,u=e.String??je,p=new u({type:"string",error:r.error}),d=new a({type:"boolean",error:r.error}),m=new c({type:"pipe",in:p,out:d,transform:((h,b)=>{let _=h;return r.case!=="sensitive"&&(_=_.toLowerCase()),i.has(_)?!0:s.has(_)?!1:(b.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:b.value,inst:m,continue:!1}),{})}),reverseTransform:((h,b)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Oe(e,t,r,n={}){let o=g(n),i={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:c=>r.test(c),...o};return r instanceof RegExp&&(i.pattern=r),new e(i)}function he(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??oe,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function P(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,s);let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,p);else{let m=s.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let d=e._zod.parent;d&&(s.ref||(s.ref=d),P(d,t,p),t.seen.get(d).isParent=!0)}let a=t.metadataRegistry.get(e);return a&&Object.assign(s.schema,a),t.io==="input"&&U(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&s.schema._prefault&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function ge(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of e.seen.entries()){let c=e.metadataRegistry.get(s[0])?.id;if(c){let a=n.get(c);if(a&&a!==s[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(c,s[0])}}let o=s=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let d=e.external.registry.get(s[0])?.id,m=e.external.uri??(b=>b);if(d)return{ref:m(d)};let h=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=h,{defId:h,ref:`${m("__shared")}#/${c}/${h}`}}if(s[1]===r)return{ref:"#"};let u=`#/${c}/`,p=s[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:u+p}},i=s=>{if(s[1].schema.$ref)return;let c=s[1],{ref:a,defId:u}=o(s);c.def={...c.schema},u&&(c.defId=u);let p=c.schema;for(let d in p)delete p[d];p.$ref=a};if(e.cycles==="throw")for(let s of e.seen.entries()){let c=s[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
40
-
41
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let c=s[1];if(t===s[0]){i(s);continue}if(e.external){let u=e.external.registry.get(s[0])?.id;if(t!==s[0]&&u){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1&&e.reused==="ref"){i(s);continue}}}function _e(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=s=>{let c=e.seen.get(s);if(c.ref===null)return;let a=c.def??c.schema,u={...a},p=c.ref;if(c.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(a.allOf=a.allOf??[],a.allOf.push(h)):Object.assign(a,h),Object.assign(a,u),s._zod.parent===p)for(let _ in a)_==="$ref"||_==="allOf"||_ in u||delete a[_];if(h.$ref&&m.def)for(let _ in a)_==="$ref"||_==="allOf"||_ in m.def&&JSON.stringify(a[_])===JSON.stringify(m.def[_])&&delete a[_]}let d=s._zod.parent;if(d&&d!==p){n(d);let m=e.seen.get(d);if(m?.schema.$ref&&(a.$ref=m.schema.$ref,m.def))for(let h in a)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(a[h])===JSON.stringify(m.def[h])&&delete a[h]}e.override({zodSchema:s,jsonSchema:a,path:c.path??[]})};for(let s of[...e.seen.entries()].reverse())n(s[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);let i=e.external?.defs??{};for(let s of e.seen.entries()){let c=s[1];c.def&&c.defId&&(i[c.defId]=c.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ms(t,"input",e.processors),output:Ms(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function U(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return U(n.element,r);if(n.type==="set")return U(n.valueType,r);if(n.type==="lazy")return U(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return U(n.innerType,r);if(n.type==="intersection")return U(n.left,r)||U(n.right,r);if(n.type==="record"||n.type==="map")return U(n.keyType,r)||U(n.valueType,r);if(n.type==="pipe")return U(n.in,r)||U(n.out,r);if(n.type==="object"){for(let o in n.shape)if(U(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(U(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(U(o,r))return!0;return!!(n.rest&&U(n.rest,r))}return!1}var $f=(e,t={})=>r=>{let n=he({...r,processors:t});return P(e,n),ge(n,e),_e(n,e)},Ms=(e,t,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=he({...o??{},target:i,io:t,processors:r});return P(e,s),ge(s,e),_e(s,e)};var xf={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},wf=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:c,patterns:a,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),c&&(o.format=xf[c]??c,o.format===""&&delete o.format,c==="time"&&delete o.format),u&&(o.contentEncoding=u),a&&a.size>0){let p=[...a];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},kf=(e,t,r,n)=>{let o=r,{minimum:i,maximum:s,format:c,multipleOf:a,exclusiveMaximum:u,exclusiveMinimum:p}=e._zod.bag;typeof c=="string"&&c.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof i=="number"&&(o.minimum=i,typeof p=="number"&&t.target!=="draft-04"&&(p>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof s=="number"&&(o.maximum=s,typeof u=="number"&&t.target!=="draft-04"&&(u<=s?delete o.maximum:delete o.exclusiveMaximum)),typeof a=="number"&&(o.multipleOf=a)},vf=(e,t,r,n)=>{r.type="boolean"},zf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Sf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Pf=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},If=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Ef=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Af=(e,t,r,n)=>{r.not={}},Tf=(e,t,r,n)=>{},Rf=(e,t,r,n)=>{},Cf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Zf=(e,t,r,n)=>{let o=e._zod.def,i=qe(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},Nf=(e,t,r,n)=>{let o=e._zod.def,i=[];for(let s of o.values)if(s===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[s]:r.const=s}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i},Lf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},jf=(e,t,r,n)=>{let o=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},Of=(e,t,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:a}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),a?a.length===1?(i.contentMediaType=a[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=a.map(u=>({contentMediaType:u}))):Object.assign(o,i)},Mf=(e,t,r,n)=>{r.type="boolean"},Bf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Df=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Uf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ff=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Jf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Yf=(e,t,r,n)=>{let o=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(o.minItems=s),typeof c=="number"&&(o.maxItems=c),o.type="array",o.items=P(i.element,t,{...n,path:[...n.path,"items"]})},Gf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=P(s[u],t,{...n,path:[...n.path,"properties",u]});let c=new Set(Object.keys(s)),a=new Set([...c].filter(u=>{let p=i.shape[u]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));a.size>0&&(o.required=Array.from(a)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=P(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Kf=(e,t,r,n)=>{let o=e._zod.def,i=o.inclusive===!1,s=o.options.map((c,a)=>P(c,t,{...n,path:[...n.path,i?"oneOf":"anyOf",a]}));i?r.oneOf=s:r.anyOf=s},Hf=(e,t,r,n)=>{let o=e._zod.def,i=P(o.left,t,{...n,path:[...n.path,"allOf",0]}),s=P(o.right,t,{...n,path:[...n.path,"allOf",1]}),c=u=>"allOf"in u&&Object.keys(u).length===1,a=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=a},qf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="array";let s=t.target==="draft-2020-12"?"prefixItems":"items",c=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",a=i.items.map((m,h)=>P(m,t,{...n,path:[...n.path,s,h]})),u=i.rest?P(i.rest,t,{...n,path:[...n.path,c,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=a,u&&(o.items=u)):t.target==="openapi-3.0"?(o.items={anyOf:a},u&&o.items.anyOf.push(u),o.minItems=a.length,u||(o.maxItems=a.length)):(o.items=a,u&&(o.additionalItems=u));let{minimum:p,maximum:d}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof d=="number"&&(o.maxItems=d)},Vf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object";let s=i.keyType,a=s._zod.bag?.patterns;if(i.mode==="loose"&&a&&a.size>0){let p=P(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of a)o.patternProperties[d.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=P(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=P(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let p=[...u].filter(d=>typeof d=="string"||typeof d=="number");p.length>0&&(o.required=p)}},Wf=(e,t,r,n)=>{let o=e._zod.def,i=P(o.innerType,t,n),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Qf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Xf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},ed=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},td=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},rd=(e,t,r,n)=>{let o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;P(i,t,n);let s=t.seen.get(e);s.ref=i},nd=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},od=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},id=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},sd=(e,t,r,n)=>{let o=e._zod.innerType;P(o,t,n);let i=t.seen.get(e);i.ref=o},tr={string:wf,number:kf,boolean:vf,bigint:zf,symbol:Sf,null:Pf,undefined:If,void:Ef,never:Af,any:Tf,unknown:Rf,date:Cf,enum:Zf,literal:Nf,nan:Lf,template_literal:jf,file:Of,success:Mf,custom:Bf,function:Df,transform:Uf,map:Ff,set:Jf,array:Yf,object:Gf,union:Kf,intersection:Hf,tuple:qf,record:Vf,nullable:Wf,nonoptional:Qf,default:Xf,prefault:ed,catch:td,pipe:rd,readonly:nd,promise:od,optional:id,lazy:sd};function rr(e,t){if("_idmap"in e){let n=e,o=he({...t,processors:tr}),i={};for(let a of n._idmap.entries()){let[u,p]=a;P(p,o)}let s={},c={registry:n,uri:t?.uri,defs:i};o.external=c;for(let a of n._idmap.entries()){let[u,p]=a;ge(o,p),s[u]=_e(o,p)}if(Object.keys(i).length>0){let a=o.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let r=he({...t,processors:tr});return P(e,r),ge(r,e),_e(r,e)}var nr=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=he({processors:tr,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return P(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),ge(this.ctx,t);let n=_e(this.ctx,t),{"~standard":o,...i}=n;return i}};var na={};var v=f("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");w.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>fe(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>ke(e,r,n),e.parseAsync=async(r,n)=>de(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>ve(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>D(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),Be=f("ZodMiniString",(e,t)=>{je.init(e,t),v.init(e,t)});function y(e){return di(Be,e)}var T=f("ZodMiniStringFormat",(e,t)=>{E.init(e,t),Be.init(e,t)}),oa=f("ZodMiniEmail",(e,t)=>{oo.init(e,t),T.init(e,t)});function ad(e){return hi(oa,e)}var ia=f("ZodMiniGUID",(e,t)=>{ro.init(e,t),T.init(e,t)});function ud(e){return gi(ia,e)}var pt=f("ZodMiniUUID",(e,t)=>{no.init(e,t),T.init(e,t)});function ld(e){return _i(pt,e)}function pd(e){return bi(pt,e)}function fd(e){return yi(pt,e)}function dd(e){return $i(pt,e)}var Bs=f("ZodMiniURL",(e,t)=>{io.init(e,t),T.init(e,t)});function md(e){return Qt(Bs,e)}function hd(e){return Qt(Bs,{protocol:/^https?$/,hostname:ee.domain,...g(e)})}var sa=f("ZodMiniEmoji",(e,t)=>{so.init(e,t),T.init(e,t)});function gd(e){return xi(sa,e)}var ca=f("ZodMiniNanoID",(e,t)=>{co.init(e,t),T.init(e,t)});function _d(e){return wi(ca,e)}var aa=f("ZodMiniCUID",(e,t)=>{ao.init(e,t),T.init(e,t)});function bd(e){return ki(aa,e)}var ua=f("ZodMiniCUID2",(e,t)=>{uo.init(e,t),T.init(e,t)});function yd(e){return vi(ua,e)}var la=f("ZodMiniULID",(e,t)=>{lo.init(e,t),T.init(e,t)});function $d(e){return zi(la,e)}var pa=f("ZodMiniXID",(e,t)=>{po.init(e,t),T.init(e,t)});function xd(e){return Si(pa,e)}var fa=f("ZodMiniKSUID",(e,t)=>{fo.init(e,t),T.init(e,t)});function wd(e){return Pi(fa,e)}var da=f("ZodMiniIPv4",(e,t)=>{bo.init(e,t),T.init(e,t)});function kd(e){return Ii(da,e)}var ma=f("ZodMiniIPv6",(e,t)=>{yo.init(e,t),T.init(e,t)});function vd(e){return Ei(ma,e)}var ha=f("ZodMiniCIDRv4",(e,t)=>{xo.init(e,t),T.init(e,t)});function zd(e){return Ti(ha,e)}var ga=f("ZodMiniCIDRv6",(e,t)=>{wo.init(e,t),T.init(e,t)});function Sd(e){return Ri(ga,e)}var _a=f("ZodMiniMAC",(e,t)=>{$o.init(e,t),T.init(e,t)});function Pd(e){return Ai(_a,e)}var ba=f("ZodMiniBase64",(e,t)=>{vo.init(e,t),T.init(e,t)});function Id(e){return Ci(ba,e)}var ya=f("ZodMiniBase64URL",(e,t)=>{zo.init(e,t),T.init(e,t)});function Ed(e){return Zi(ya,e)}var $a=f("ZodMiniE164",(e,t)=>{So.init(e,t),T.init(e,t)});function Ad(e){return Ni($a,e)}var xa=f("ZodMiniJWT",(e,t)=>{Po.init(e,t),T.init(e,t)});function Td(e){return Li(xa,e)}var ft=f("ZodMiniCustomStringFormat",(e,t)=>{Io.init(e,t),T.init(e,t)});function Rd(e,t,r={}){return Oe(ft,e,t,r)}function Cd(e){return Oe(ft,"hostname",ee.hostname,e)}function Zd(e){return Oe(ft,"hex",ee.hex,e)}function Nd(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=ee[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Oe(ft,n,o,t)}var dt=f("ZodMiniNumber",(e,t)=>{Yt.init(e,t),v.init(e,t)});function be(e){return Ui(dt,e)}var De=f("ZodMiniNumberFormat",(e,t)=>{Eo.init(e,t),dt.init(e,t)});function Ld(e){return Ji(De,e)}function jd(e){return Yi(De,e)}function Od(e){return Gi(De,e)}function Md(e){return Ki(De,e)}function Bd(e){return Hi(De,e)}var mt=f("ZodMiniBoolean",(e,t)=>{nt.init(e,t),v.init(e,t)});function Ue(e){return qi(mt,e)}var ht=f("ZodMiniBigInt",(e,t)=>{Gt.init(e,t),v.init(e,t)});function Dd(e){return Wi(ht,e)}var Ds=f("ZodMiniBigIntFormat",(e,t)=>{Ao.init(e,t),ht.init(e,t)});function Ud(e){return Xi(Ds,e)}function Fd(e){return es(Ds,e)}var wa=f("ZodMiniSymbol",(e,t)=>{To.init(e,t),v.init(e,t)});function Jd(e){return ts(wa,e)}var ka=f("ZodMiniUndefined",(e,t)=>{Ro.init(e,t),v.init(e,t)});function Yd(e){return rs(ka,e)}var va=f("ZodMiniNull",(e,t)=>{Co.init(e,t),v.init(e,t)});function za(e){return ns(va,e)}var Sa=f("ZodMiniAny",(e,t)=>{Zo.init(e,t),v.init(e,t)});function Gd(){return os(Sa)}var Pa=f("ZodMiniUnknown",(e,t)=>{No.init(e,t),v.init(e,t)});function or(){return is(Pa)}var Ia=f("ZodMiniNever",(e,t)=>{Lo.init(e,t),v.init(e,t)});function Ea(e){return ss(Ia,e)}var Aa=f("ZodMiniVoid",(e,t)=>{jo.init(e,t),v.init(e,t)});function Kd(e){return cs(Aa,e)}var ir=f("ZodMiniDate",(e,t)=>{Oo.init(e,t),v.init(e,t)});function Hd(e){return as(ir,e)}var Ta=f("ZodMiniArray",(e,t)=>{Mo.init(e,t),v.init(e,t)});function F(e,t){return new Ta({type:"array",element:e,...g(t)})}function qd(e){let t=e._zod.def.shape;return Da(Object.keys(t))}var sr=f("ZodMiniObject",(e,t)=>{Kt.init(e,t),v.init(e,t),k(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new sr(r)}function Vd(e,t){return new sr({type:"object",shape:e,catchall:Ea(),...g(t)})}function Wd(e,t){return new sr({type:"object",shape:e,catchall:or(),...g(t)})}function gt(e,t){return Tt(e,t)}function Qd(e,t){return Yr(e,t)}function Xd(e,t){return Tt(e,t)}function em(e,t){return Fr(e,t)}function tm(e,t){return Jr(e,t)}function rm(e,t){return Gr(Js,e,t)}function nm(e,t){return Kr(Ys,e,t)}function om(e,t){return e.clone({...e._zod.def,catchall:t})}var Us=f("ZodMiniUnion",(e,t)=>{ot.init(e,t),v.init(e,t)});function Ra(e,t){return new Us({type:"union",options:e,...g(t)})}var Ca=f("ZodMiniXor",(e,t)=>{Us.init(e,t),Bo.init(e,t)});function im(e,t){return new Ca({type:"union",options:e,inclusive:!1,...g(t)})}var Za=f("ZodMiniDiscriminatedUnion",(e,t)=>{Do.init(e,t),v.init(e,t)});function sm(e,t,r){return new Za({type:"union",options:t,discriminator:e,...g(r)})}var Na=f("ZodMiniIntersection",(e,t)=>{Uo.init(e,t),v.init(e,t)});function cm(e,t){return new Na({type:"intersection",left:e,right:t})}var La=f("ZodMiniTuple",(e,t)=>{Ht.init(e,t),v.init(e,t)});function ja(e,t,r){let n=t instanceof w,o=n?r:t,i=n?t:null;return new La({type:"tuple",items:e,rest:i,...g(o)})}var cr=f("ZodMiniRecord",(e,t)=>{Fo.init(e,t),v.init(e,t)});function Oa(e,t,r){return new cr({type:"record",keyType:e,valueType:t,...g(r)})}function am(e,t,r){let n=D(e);return n._zod.values=void 0,new cr({type:"record",keyType:n,valueType:t,...g(r)})}function um(e,t,r){return new cr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var Ma=f("ZodMiniMap",(e,t)=>{Jo.init(e,t),v.init(e,t)});function lm(e,t,r){return new Ma({type:"map",keyType:e,valueType:t,...g(r)})}var Ba=f("ZodMiniSet",(e,t)=>{Yo.init(e,t),v.init(e,t)});function pm(e,t){return new Ba({type:"set",valueType:e,...g(t)})}var Fs=f("ZodMiniEnum",(e,t)=>{Go.init(e,t),v.init(e,t),e.options=Object.values(t.entries)});function Da(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Fs({type:"enum",entries:r,...g(t)})}function fm(e,t){return new Fs({type:"enum",entries:e,...g(t)})}var Ua=f("ZodMiniLiteral",(e,t)=>{Ko.init(e,t),v.init(e,t)});function dm(e,t){return new Ua({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var Fa=f("ZodMiniFile",(e,t)=>{Ho.init(e,t),v.init(e,t)});function mm(e){return Rs(Fa,e)}var Ja=f("ZodMiniTransform",(e,t)=>{qo.init(e,t),v.init(e,t)});function hm(e){return new Ja({type:"transform",transform:e})}var Js=f("ZodMiniOptional",(e,t)=>{qt.init(e,t),v.init(e,t)});function $(e){return new Js({type:"optional",innerType:e})}var Ya=f("ZodMiniExactOptional",(e,t)=>{Vo.init(e,t),v.init(e,t)});function gm(e){return new Ya({type:"optional",innerType:e})}var Ga=f("ZodMiniNullable",(e,t)=>{Wo.init(e,t),v.init(e,t)});function ar(e){return new Ga({type:"nullable",innerType:e})}function _m(e){return $(ar(e))}var Ka=f("ZodMiniDefault",(e,t)=>{Qo.init(e,t),v.init(e,t)});function bm(e,t){return new Ka({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Ze(t)}})}var Ha=f("ZodMiniPrefault",(e,t)=>{Xo.init(e,t),v.init(e,t)});function ym(e,t){return new Ha({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Ze(t)}})}var Ys=f("ZodMiniNonOptional",(e,t)=>{ei.init(e,t),v.init(e,t)});function $m(e,t){return new Ys({type:"nonoptional",innerType:e,...g(t)})}var qa=f("ZodMiniSuccess",(e,t)=>{ti.init(e,t),v.init(e,t)});function xm(e){return new qa({type:"success",innerType:e})}var Va=f("ZodMiniCatch",(e,t)=>{ri.init(e,t),v.init(e,t)});function wm(e,t){return new Va({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Wa=f("ZodMiniNaN",(e,t)=>{ni.init(e,t),v.init(e,t)});function km(e){return ls(Wa,e)}var Gs=f("ZodMiniPipe",(e,t)=>{oi.init(e,t),v.init(e,t)});function vm(e,t){return new Gs({type:"pipe",in:e,out:t})}var Ks=f("ZodMiniCodec",(e,t)=>{Gs.init(e,t),it.init(e,t)});function zm(e,t,r){return new Ks({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Qa=f("ZodMiniReadonly",(e,t)=>{ii.init(e,t),v.init(e,t)});function Sm(e){return new Qa({type:"readonly",innerType:e})}var Xa=f("ZodMiniTemplateLiteral",(e,t)=>{si.init(e,t),v.init(e,t)});function Pm(e,t){return new Xa({type:"template_literal",parts:e,...g(t)})}var eu=f("ZodMiniLazy",(e,t)=>{ui.init(e,t),v.init(e,t)});function tu(e){return new eu({type:"lazy",getter:e})}var ru=f("ZodMiniPromise",(e,t)=>{ai.init(e,t),v.init(e,t)});function Im(e){return new ru({type:"promise",innerType:e})}var Hs=f("ZodMiniCustom",(e,t)=>{li.init(e,t),v.init(e,t)});function Em(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function nu(e,t){return Cs(Hs,e??(()=>!0),t)}function Am(e,t={}){return Zs(Hs,e,t)}function Tm(e){return Ns(e)}var Rm=Ls,Cm=js;function Zm(e,t={}){let r=nu(n=>n instanceof e,t);return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var Nm=(...e)=>Os({Codec:Ks,Boolean:mt,String:Be},...e);function Lm(){let e=tu(()=>Ra([y(),be(),Ue(),za(),F(e),Oa(y(),e)]));return e}var ou=f("ZodMiniFunction",(e,t)=>{ci.init(e,t),v.init(e,t)});function jm(e){return new ou({type:"function",input:Array.isArray(e?.input)?ja(e?.input):e?.input??F(or()),output:e?.output??or()})}var qs={};xe(qs,{ZodMiniISODate:()=>lr,ZodMiniISODateTime:()=>ur,ZodMiniISODuration:()=>fr,ZodMiniISOTime:()=>pr,date:()=>Mm,datetime:()=>Om,duration:()=>Dm,time:()=>Bm});var ur=f("ZodMiniISODateTime",(e,t)=>{mo.init(e,t),T.init(e,t)});function Om(e){return Oi(ur,e)}var lr=f("ZodMiniISODate",(e,t)=>{ho.init(e,t),T.init(e,t)});function Mm(e){return Mi(lr,e)}var pr=f("ZodMiniISOTime",(e,t)=>{go.init(e,t),T.init(e,t)});function Bm(e){return Bi(pr,e)}var fr=f("ZodMiniISODuration",(e,t)=>{_o.init(e,t),T.init(e,t)});function Dm(e){return Di(fr,e)}var Vs={};xe(Vs,{bigint:()=>Ym,boolean:()=>Jm,date:()=>Gm,number:()=>Fm,string:()=>Um});function Um(e){return mi(Be,e)}function Fm(e){return Fi(dt,e)}function Jm(e){return Vi(mt,e)}function Ym(e){return Qi(ht,e)}function Gm(e){return us(ir,e)}var Se=y().check(ut(1)),Km=y().check(lt(/^https?:\/\/.+/)),Qs=I({CLANCY_BASE_BRANCH:$(y()),CLANCY_LABEL:$(y()),CLANCY_MODEL:$(y()),CLANCY_NOTIFY_WEBHOOK:$(y()),CLANCY_STATUS_IN_PROGRESS:$(y()),CLANCY_STATUS_DONE:$(y()),CLANCY_STATUS_REVIEW:$(y()),MAX_ITERATIONS:$(y()),PLAYWRIGHT_ENABLED:$(y()),PLAYWRIGHT_DEV_PORT:$(y()),CLANCY_ROLES:$(y()),CLANCY_PLAN_STATUS:$(y()),CLANCY_PLAN_LABEL:$(y()),CLANCY_PLAN_STATE_TYPE:$(y()),CLANCY_STATUS_PLANNED:$(y()),CLANCY_SKIP_COMMENTS:$(y()),GITHUB_TOKEN:$(y()),GITLAB_TOKEN:$(y()),BITBUCKET_USER:$(y()),BITBUCKET_TOKEN:$(y()),CLANCY_GIT_PLATFORM:$(y()),CLANCY_GIT_API_URL:$(y()),CLANCY_MAX_REWORK:$(y()),CLANCY_TDD:$(y()),CLANCY_MODE:$(y()),CLANCY_BRIEF_ISSUE_TYPE:$(y()),CLANCY_BRIEF_EPIC:$(y()),CLANCY_COMPONENT:$(y()),CLANCY_FIX_RETRIES:$(y()),CLANCY_VERIFY_COMMANDS:$(y()),CLANCY_TOKEN_RATE:$(y()),CLANCY_TIME_LIMIT:$(y()),CLANCY_BRANCH_GUARD:$(y()),CLANCY_LABEL_BRIEF:$(y()),CLANCY_LABEL_PLAN:$(y()),CLANCY_LABEL_BUILD:$(y())}),su=gt(Qs,{JIRA_BASE_URL:Km,JIRA_USER:Se,JIRA_API_TOKEN:Se,JIRA_PROJECT_KEY:Se,CLANCY_JQL_STATUS:$(y()),CLANCY_JQL_SPRINT:$(y())}),cu=gt(Qs,{GITHUB_TOKEN:Se,GITHUB_REPO:Se}),au=gt(Qs,{LINEAR_API_KEY:Se,LINEAR_TEAM_ID:Se});function dr(e){if(e.JIRA_BASE_URL){let t=su.safeParse(e);return t.success?{provider:"jira",env:t.data}:`\u2717 Jira env validation failed: ${t.error.message}`}if(e.GITHUB_TOKEN&&e.GITHUB_REPO){let t=cu.safeParse(e);return t.success?{provider:"github",env:t.data}:`\u2717 GitHub env validation failed: ${t.error.message}`}if(e.LINEAR_API_KEY){let t=au.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, or Linear credentials in .clancy/.env"}function M(e){return e.env}import{appendFileSync as uu,mkdirSync as Hm,readFileSync as qm}from"node:fs";import{dirname as Vm,join as lu}from"node:path";function Wm(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),i=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${i}`}function C(e,t,r,n,o,i){let s=lu(e,".clancy","progress.txt");Hm(Vm(s),{recursive:!0});let c=Wm(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let d=`${c} | ${n} | ${t} | ${r}
42
- `;uu(s,d,"utf8");return}let a=o!=null?` | pr:${o}`:"",u=i?` | parent:${i}`:"",p=`${c} | ${t} | ${r} | ${n}${a}${u}
43
- `;uu(s,p,"utf8")}function pu(e){let t=lu(e,".clancy","progress.txt"),r;try{r=qm(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
44
- `)){let i=o.trim();if(!i)continue;let s=i.split(" | ");if(s.length<4)continue;let c=s[0];if(s[1]==="BRIEF"||s[1]==="APPROVE_BRIEF"){n.push({timestamp:c,key:s[2],summary:s.slice(3).join(" | "),status:s[1]});continue}let a=s[1],u,p,d,m=[];for(let h=2;h<s.length;h++){let b=s[h],_=b.match(/^pr:(\d+)$/),z=b.match(/^parent:(.+)$/);_?p=parseInt(_[1],10):z?d=z[1]:h>=3&&!u&&b===b.toUpperCase()&&b.length>1?u=b:m.push(b)}u&&(u==="APPROVE"&&(u="APPROVE_PLAN"),n.push({timestamp:c,key:a,summary:m.join(" | "),status:u,...p!=null&&{prNumber:p},...d!=null&&{parent:d}}))}return n}function fu(e,t){let r=pu(e),n=t.toLowerCase(),o=0;for(let i of r)i.key.toLowerCase()===n&&i.status==="REWORK"&&o++;return o}function J(e,t){let r=pu(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}function Qm(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function mr(e,t,r,n){let o=[],i=r?Qm(r):!1;switch(e.provider){case"github":o.push(i?`Part of ${t.key}`:`Closes ${t.key}`);break;case"jira":o.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":o.push(`**Linear:** ${t.key}`);break}return o.push(""),t.description&&(o.push("## Description"),o.push(""),o.push(t.description),o.push("")),n&&(o.push("## \u26A0 Verification Warning"),o.push(""),o.push(n),o.push(""),o.push("This PR may need manual fixes before merging."),o.push("")),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.push(""),o.push("---"),o.push("<details>"),o.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),o.push(""),o.push("To request changes:"),o.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),o.push("- **General feedback** \u2014 reply with a comment starting with `Rework:` followed by what needs fixing. Comments without the `Rework:` prefix are treated as discussion."),o.push(""),o.push("Example: `Rework: The form validation doesn't handle empty passwords`"),o.push(""),o.push("</details>"),o.join(`
45
- `)}function du(e,t,r,n){let o=[];o.push(`## ${e} \u2014 ${t}`),o.push(""),o.push("### Children"),o.push("");for(let i of r){let s=i.prNumber?` (#${i.prNumber})`:"";o.push(`- ${i.key} \u2014 ${i.summary}${s}`)}if(n==="github"){o.push(""),o.push("### Closes"),o.push("");let i=r.map(s=>s.key).filter(s=>s.startsWith("#"));e.startsWith("#")&&i.unshift(e),i.length>0&&o.push(i.map(s=>`Closes ${s}`).join(", "))}return o.push(""),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.join(`
46
- `)}import{execFileSync as Xm}from"node:child_process";function mu(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],i=r?.[2]??n?.[2];if(!(!o||!i))return{hostname:o,path:i}}function eh(e){let t=mu(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(th(r)){case"github":{let i=n.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let i=n.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:r};let s=n.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function th(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function ye(e){let t;try{t=Xm("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?rh(t,e):eh(t):{host:"none"}}function rh(e,t){let r=mu(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let i=o.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let i=o.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let i=o.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:n};let s=o.split("/");return s.length>=2?{host:"bitbucket-server",projectKey:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function _t(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var nh=I({id:be(),links:I({html:$(I({href:$(y())}))}),participants:F(I({state:$(y()),role:y()}))}),hu=I({values:F(nh)}),oh=I({content:I({raw:y()}),inline:$(I({path:$(y())})),created_on:y(),user:$(I({nickname:$(y())}))}),Xs=I({values:F(oh)}),ih=I({id:be(),links:I({self:$(F(I({href:$(y())})))}),reviewers:F(I({status:y()}))}),gu=I({values:F(ih)}),sh=I({text:y(),anchor:$(I({path:$(y())})),createdDate:be(),author:$(I({slug:$(y())}))}),ch=I({action:y(),comment:$(sh)}),ec=I({values:F(ch)});async function Pe(e,t,r,n,o){let i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{let c=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:i.signal});if(!c.ok){let p=await c.text().catch(()=>""),d=o?.(c.status,p)??!1;return{ok:!1,error:`HTTP ${c.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:d}}let a=await c.json(),u=n(a);return!u.url&&!u.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:u.url,number:u.number}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}finally{clearTimeout(s)}}function Fe(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function re(e){return e.trim().toLowerCase().startsWith("rework:")}function Ie(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function _u(e,t,r,n,o,i,s,c){return Pe(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Fe(e,t)},{title:s,description:c,source:{branch:{name:o}},destination:{branch:{name:i}},close_source_branch:!0},a=>{let u=a;return{url:u.links?.html?.href??"",number:u.id??0}},(a,u)=>a===409&&u.includes("already exists"))}async function bu(e,t,r,n,o,i,s,c){return Pe(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:s,description:c,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${i}`,repository:{slug:n,project:{key:r}}}},a=>{let u=a;return{url:u.links?.self?.[0]?.href??"",number:u.id??0}},(a,u)=>a===409&&(u.includes("already exists")||u.includes("Only one pull request")))}async function yu(e,t,r,n,o,i){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Fe(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:i}})})).ok}catch{return!1}}async function $u(e,t,r,n,o,i){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:i})})).ok}catch{return!1}}async function xu(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,c=await fetch(s,{headers:{Authorization:Fe(e,t)}});if(!c.ok)return;let a=hu.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],p=u.links.html?.href??"",d=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${u.id}/comments?pagelen=100`,m=await fetch(d,{headers:{Authorization:Fe(e,t)}});if(!m.ok)return;let h=Xs.parse(await m.json()),b=i?h.values.filter(W=>W.created_on>i):h.values,_=b.some(W=>W.inline!=null),z=b.some(W=>W.inline==null&&re(W.content.raw));return{changesRequested:_||z,prNumber:u.id,prUrl:p}}catch{return}}async function wu(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,c=await fetch(s,{headers:{Authorization:Fe(e,t)}});if(!c.ok)return[];let a=Xs.parse(await c.json()),u=i?a.values.filter(d=>d.created_on>i):a.values,p=[];for(let d of u)if(d.inline!=null){let m=d.inline.path?`[${d.inline.path}] `:"";p.push(`${m}${d.content.raw}`)}else re(d.content.raw)&&p.push(Ie(d.content.raw));return p}catch{return[]}}async function ku(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return;let a=gu.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],p=u.links.self?.[0]?.href??"",d=`${t}/projects/${r}/repos/${n}/pull-requests/${u.id}/activities?limit=100`,m=await fetch(d,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=ec.parse(await m.json()),b=i?Date.parse(i):void 0,_=h.values.filter(R=>R.action==="COMMENTED"&&R.comment&&(b==null||R.comment.createdDate>b)),z=_.some(R=>R.comment.anchor!=null),Y=_.some(R=>R.comment.anchor==null&&re(R.comment.text));return{changesRequested:z||Y,prNumber:u.id,prUrl:p}}catch{return}}async function vu(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return[];let a=ec.parse(await c.json()),u=i?Date.parse(i):void 0,p=[];for(let d of a.values){if(d.action!=="COMMENTED"||!d.comment||u!=null&&d.comment.createdDate<=u)continue;let m=d.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else re(m.text)&&p.push(Ie(m.text))}return p}catch{return[]}}var ah=l.object({number:l.number(),title:l.string(),body:l.optional(l.nullable(l.string())),pull_request:l.optional(l.unknown()),milestone:l.optional(l.nullable(l.object({title:l.string()}))),labels:l.optional(l.array(l.object({name:l.optional(l.string())})))}),zu=l.array(ah),uh=l.object({id:l.number(),body:l.optional(l.nullable(l.string())),created_at:l.string(),user:l.optional(l.object({login:l.string()}))}),tc=l.array(uh),lh=l.object({number:l.number(),html_url:l.string(),state:l.string()}),Su=l.array(lh),ph=l.object({state:l.string(),user:l.object({login:l.string()}),submitted_at:l.string()}),Pu=l.array(ph),fh=l.object({body:l.optional(l.nullable(l.string())),path:l.optional(l.string()),created_at:l.optional(l.string()),user:l.optional(l.object({login:l.string()}))}),rc=l.array(fh);var j="https://api.github.com";async function hr(e,t,r,n){try{let o=new AbortController,i=setTimeout(()=>o.abort(),1e4),s=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(i),s.ok)return{ok:!0};let c=r[s.status];return c?{ok:!1,error:c}:{ok:!1,error:`\u2717 HTTP ${s.status}`}}catch{return{ok:!1,error:n}}}function B(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function $e(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}async function Iu(e,t,r,n,o=j,i,s){try{let c=B(e),a=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:c});if(!a.ok)return;let u=Su.parse(await a.json());if(u.length===0)return;let p=u[0],d=i?`&since=${i}`:"",[m,h]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${p.number}/comments?per_page=100${d}`,{headers:c}),fetch(`${o}/repos/${t}/issues/${p.number}/comments?per_page=100${d}`,{headers:c})]);if(!m.ok||!h.ok)return;let b=rc.parse(await m.json()),_=tc.parse(await h.json()),z=s?b.filter(ne=>ne.user?.login!==s):b,Y=s?_.filter(ne=>ne.user?.login!==s):_,W=z.length>0,R=Y.some(ne=>ne.body&&re(ne.body)),L=W||R,G;if(!L)try{let ne=await fetch(`${o}/repos/${t}/pulls/${p.number}/reviews?per_page=100`,{headers:c});if(ne.ok){let Ir=Pu.parse(await ne.json()),pc=new Map;for(let se of Ir)se.state==="PENDING"||se.state==="DISMISSED"||pc.set(se.user.login,se.state);let fc=[...pc.entries()].filter(([,se])=>se==="CHANGES_REQUESTED");fc.length>0&&(L=!0,G=fc.map(([se])=>se))}}catch{}return{changesRequested:L,prNumber:p.number,prUrl:p.html_url,reviewers:G}}catch{return}}async function Eu(e,t,r,n=j,o,i){try{let s=B(e),c=o?`&since=${o}`:"",[a,u]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${c}`,{headers:s}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${c}`,{headers:s})]);if(!a.ok||!u.ok)return[];let p=rc.parse(await a.json()),d=tc.parse(await u.json()),m=i?p.filter(_=>_.user?.login!==i):p,h=i?d.filter(_=>_.user?.login!==i):d,b=[];for(let _ of m){if(!_.body)continue;let z=_.path?`[${_.path}] `:"";b.push(`${z}${_.body}`)}for(let _ of h)_.body&&re(_.body)&&b.push(Ie(_.body));return b}catch{return[]}}async function Au(e,t,r,n,o=j){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...B(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function Tu(e,t,r,n,o=j){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...B(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function Ru(e,t,r,n,o,i,s=j){return Pe(`${s}/repos/${t}/pulls`,B(e),{title:o,head:r,base:n,body:i},c=>{let a=c;return{url:a.html_url??"",number:a.number??0}},(c,a)=>c===422&&a.includes("already exists"))}var dh=I({iid:be(),web_url:y(),detailed_merge_status:$(y())}),Cu=F(dh),mh=I({body:y(),resolvable:Ue(),resolved:$(Ue()),system:Ue(),type:$(ar(y())),created_at:$(y()),position:$(I({new_path:$(y())})),author:$(I({username:y()}))}),hh=I({id:$(y()),notes:F(mh)}),nc=F(hh);async function Zu(e,t,r,n,o,i,s){let c=encodeURIComponent(r);return Pe(`${t}/projects/${c}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:i,description:s,remove_source_branch:!0},a=>{let u=a;return{url:u.web_url??"",number:u.iid??0}},(a,u)=>a===409&&u.includes("already exists"))}async function Nu(e,t,r,n,o){try{let i=encodeURIComponent(r);return(await fetch(`${t}/projects/${i}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function Lu(e,t,r,n,o){let i=encodeURIComponent(r),s=0;for(let c of o)try{(await fetch(`${t}/projects/${i}/merge_requests/${n}/discussions/${c}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&s++}catch{}return s}async function ju(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests?source_branch=${n}&state=opened`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return;let a=Cu.parse(await c.json());if(a.length===0)return;let u=a[0],p=`${t}/projects/${i}/merge_requests/${u.iid}/discussions?per_page=100`,d=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!d.ok)return;let m=nc.parse(await d.json()),h=!1;for(let b of m){for(let _ of b.notes)if(!_.system&&!(o&&_.created_at&&_.created_at<=o)){if(_.type==="DiffNote"&&_.resolvable!==!1&&_.resolved!==!0){h=!0;break}if(re(_.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:u.iid,prUrl:u.web_url}}catch{return}}async function Ou(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests/${n}/discussions?per_page=100`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return{comments:[],discussionIds:[]};let a=nc.parse(await c.json()),u=[],p=[];for(let d of a){let m=!1;for(let h of d.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let b=h.position?.new_path?`[${h.position.new_path}] `:"";u.push(`${b}${h.body}`),m=!0}else re(h.body)&&(u.push(Ie(h.body)),m=!0);m&&d.id&&p.push(d.id)}return{comments:u,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function bt(e,t){let r=M(e);switch(t.host){case"github":if(r.GITHUB_TOKEN)return{token:r.GITHUB_TOKEN};break;case"gitlab":if(r.GITLAB_TOKEN)return{token:r.GITLAB_TOKEN};break;case"bitbucket":if(r.BITBUCKET_USER&&r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN,username:r.BITBUCKET_USER};break;case"bitbucket-server":if(r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN};break}}async function yt(e,t,r,n,o,i){let s=bt(e,t);if(!s)return;let c=_t(t,M(e).CLANCY_GIT_API_URL);if(c)switch(t.host){case"github":return Ru(s.token,`${t.owner}/${t.repo}`,r,n,o,i,c);case"gitlab":return Zu(s.token,c,t.projectPath,r,n,o,i);case"bitbucket":return _u(s.username,s.token,t.workspace,t.repoSlug,r,n,o,i);case"bitbucket-server":return bu(s.token,c,t.projectKey,t.repoSlug,r,n,o,i);default:return}}function gr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function oc(e,t){let r=mc(e),n=Ye(e);if(r)return vt(e)?!0:(console.log(S(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Te(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(S(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log(x(" To preserve this work, push it manually:")),console.log(x(` git push -u origin ${e}`)),console.log(x(" Then re-run /clancy:once to continue.")),!1;try{if(Mu("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),Mu("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),Ge(e))console.log(N(` \u2713 Created epic branch ${e}`));else return console.log(S(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Te(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function ic(e,t,r,n,o,i=!1,s,c){if(!Ge(r)){console.log(S(`\u26A0 Could not push ${r} to origin.`)),console.log(x(" The branch is still available locally. Push manually:")),console.log(x(` git push -u origin ${r}`)),i||C(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,s),Z(n);let b=Ee(Date.now()-o);return console.log(""),console.log(S(`\u26A0 ${t.key} implemented but push failed`)+x(` (${b})`)),!1}console.log(N(` \u2713 Pushed ${r}`));let u;try{let b=_h(process.cwd(),".clancy","verify-attempt.txt"),_=gh(b,"utf8").trim(),z=parseInt(_,10);z>0&&(u=`Verification checks did not fully pass (${z} attempt(s)). Review carefully.`)}catch{}let p=M(e).CLANCY_GIT_PLATFORM,d=ye(p),m=`feat(${t.key}): ${t.title}`,h=mr(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,u);if(d.host!=="none"&&d.host!=="unknown"&&d.host!=="azure"){let b=await yt(e,d,r,n,m,h);if(b?.ok)console.log(N(` \u2713 PR created: ${b.url}`)),i||C(process.cwd(),t.key,t.title,"PR_CREATED",b.number,s);else if(b&&!b.ok&&b.alreadyExists)console.log(S(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s);else if(b&&!b.ok){console.log(S(` \u26A0 PR/MR creation failed: ${b.error}`));let _=gr(d,r,n);console.log(_?x(` Create one manually: ${_}`):x(" Branch pushed \u2014 create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}else{let _=gr(d,r,n);console.log(_?x(` Create a PR: ${_}`):x(" Branch pushed to remote. Create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}}else d.host==="none"?(console.log(S(`\u26A0 No git remote configured. Branch available locally: ${r}`)),i||C(process.cwd(),t.key,t.title,"LOCAL",void 0,s)):(console.log(x(" Branch pushed to remote. Create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s));if(e.provider!=="github"&&c){let b=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;b&&await c.transitionTicket(t,b)}return Z(n),!0}async function Bu(e,t,r,n,o,i){console.log(""),console.log(N(`\u{1F389} All children of ${t} are done!`)),console.log(x(` Creating epic PR: ${n} \u2192 ${o}`));let s=J(process.cwd(),"PR_CREATED"),c=J(process.cwd(),"DONE"),a=J(process.cwd(),"REWORK"),u=J(process.cwd(),"PUSHED"),p=[...s,...c,...a,...u].filter(Y=>Y.parent===t),d=M(e).CLANCY_GIT_PLATFORM,m=ye(d),h=`feat(${t}): ${r}`,b=du(t,r,p,e.provider);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(S("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log(x(` Push manually: git push origin ${n}`)),console.log(x(` Then create a PR targeting ${o}`)),!1;let _=await yt(e,m,n,o,h,b);if(_?.ok){if(console.log(N(` \u2713 Epic PR created: ${_.url}`)),C(process.cwd(),t,r,"EPIC_PR_CREATED",_.number),e.provider!=="github"&&i){let Y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;Y&&await i.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},Y)}return!0}if(_&&!_.ok&&_.alreadyExists)return console.log(S(` \u26A0 An epic PR already exists for ${n}.`)),C(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(S(`\u26A0 Epic PR creation failed: ${_?.error??"unknown error"}`)),console.log(x(" Create it manually:")),console.log(x(` Branch: ${n} \u2192 ${o}`));let z=gr(m,n,o);return z&&console.log(x(` ${z}`)),!1}async function Du(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,i=e.baseBranch,s=e.hasParent,c=e.isRework??!1;e.originalBranch=dc();let a=!1;if(s&&!c){let p=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId);p&&p.total===1&&(a=!0)}e.skipEpicBranch=a;let u=s&&!a?o:i;if(e.effectiveTarget=u,c){if(s&&!a){if(!oc(o,i))return e.originalBranch&&Z(e.originalBranch),!1}else Ar(u,i);vt(n)?Z(n):(Z(u),Z(n,!0))}else if(s&&!a){if(!oc(o,i))return e.originalBranch&&Z(e.originalBranch),!1;Z(o),Z(n,!0)}else Ar(i,i),Z(i),Z(n,!0);try{bc(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:u,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log(x(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function bh(e){return e.includes("hooks.slack.com")}function yh(e){return JSON.stringify({text:e})}function $h(e){return JSON.stringify({type:"message",attachments:[{contentType:"application/vnd.microsoft.card.adaptive",content:{$schema:"http://adaptivecards.io/schemas/adaptive-card.json",type:"AdaptiveCard",version:"1.4",body:[{type:"TextBlock",text:e,wrap:!0}]}}]})}async function Uu(e,t){let r=bh(e)?yh(t):$h(t);try{let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r});n.ok||console.warn(`\u26A0 Notification failed: HTTP ${n.status}`)}catch{console.warn("\u26A0 Notification failed: could not reach webhook")}}async function Fu(e){let t=e.config,r=e.ticket,n=Ee(Date.now()-e.startTime);console.log(""),console.log(N(`\u{1F3C1} ${r.key} complete`)+x(` (${n})`)),console.log(x(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await Uu(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as xh,mkdirSync as wh}from"node:fs";import{dirname as kh,join as vh}from"node:path";function Ju(e,t,r,n=6600){let o=vh(e,".clancy","costs.log");wh(kh(o),{recursive:!0});let i=new Date(r).getTime(),s=Date.now(),c=Number.isNaN(i)?0:Math.max(0,s-i),a=Math.round(c/6e4),u=Math.round(a*n),d=`${new Date().toISOString()} | ${t} | ${a}min | ~${u} tokens (estimated)
47
- `;xh(o,d,"utf8")}function Yu(e){let t=e.config,r=e.ticket;try{let n=St(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");Ju(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}var zh=l.object({login:l.string()}),Sh=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,_r;function br(e){return Sh.test(e)}async function Ku(e,t){return hr(`${j}/repos/${t}`,B(e),{401:"\u2717 GitHub auth failed \u2014 check GITHUB_TOKEN",403:"\u2717 GitHub permission denied",404:`\u2717 GitHub repo "${t}" not found`},"\u2717 Could not reach GitHub \u2014 check network")}async function Je(e,t){if(_r)return _r;try{let r=await fetch(`${t??j}/user`,{headers:B(e)});if(!r.ok){let i=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${i}`),"@me"}let n=await r.json(),o=zh.safeParse(n);if(o.success)return _r=o.data.login,_r;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function yr(e,t,r,n,o,i=5){let s,c=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&c.set("labels",r);try{s=await fetch(`${j}/repos/${t}/issues?${c}`,{headers:B(e)})}catch(d){return console.warn(`\u26A0 GitHub API request failed: ${d instanceof Error?d.message:String(d)}`),[]}if(!s.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${s.status}`),[];let a;try{a=await s.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let u=zu.safeParse(a);if(!u.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${u.error.message}`),[];let p=u.data.filter(d=>!d.pull_request);return o&&(p=p.filter(d=>!d.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,i).map(d=>({key:`#${d.number}`,title:d.title,description:d.body??"",provider:"github",milestone:d.milestone?.title,labels:d.labels?.map(m=>m.name).filter(m=>!!m)}))}async function $r(e,t,r,n){if(!br(t))return!1;let o=/Blocked by #(\d+)/gi,i=new Set,s;for(;(s=o.exec(n))!==null;){let c=parseInt(s[1],10);!Number.isNaN(c)&&c!==r&&i.add(c)}if(!i.size)return!1;try{for(let c of i){let a=await fetch(`${j}/repos/${t}/issues/${c}`,{headers:B(e)});if(!a.ok)continue;if((await a.json()).state!=="closed")return!0}return!1}catch{return!1}}async function Hu(e,t,r){if(br(t))try{let n=await Gu(e,t,`Epic: #${r}`);return n&&n.total>0?n:await Gu(e,t,`Parent: #${r}`)}catch{return}}async function Gu(e,t,r){let n=B(e),o=`"${r}" repo:${t} is:issue`,i=new URLSearchParams({q:o,per_page:"1"}),s=await fetch(`${j}/search/issues?${i}`,{headers:n});if(!s.ok)return;let a=(await s.json()).total_count??0;if(a===0)return{total:0,incomplete:0};let u=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:u,per_page:"1"}),d=await fetch(`${j}/search/issues?${p}`,{headers:n});if(!d.ok)return{total:a,incomplete:a};let h=(await d.json()).total_count??0;return{total:a,incomplete:h}}function xr(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function wr(e,t,r){return r?e==="github"?`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`:`epic/${r.toLowerCase()}`:t}async function qu(e){let t=J(process.cwd(),"PR_CREATED"),r=J(process.cwd(),"REWORK"),n=J(process.cwd(),"PUSHED"),o=J(process.cwd(),"PUSH_FAILED"),i=[...t,...r,...n,...o];if(i.length===0)return;let s=M(e).CLANCY_GIT_PLATFORM,c=ye(s);if(c.host==="none"||c.host==="unknown"||c.host==="azure")return;let a=bt(e,c);if(!a)return;let u=_t(c,M(e).CLANCY_GIT_API_URL);if(!u)return;let p;if(c.host==="github")try{p=await Je(a.token,u)}catch{}let d=i.slice(0,5);for(let m of d){let h=xr(e.provider,m.key),b;if(m.timestamp){let z=new Date(m.timestamp.replace(" ","T")+"Z");b=Number.isNaN(z.getTime())?void 0:z.toISOString()}let _;switch(c.host){case"github":_=await Iu(a.token,`${c.owner}/${c.repo}`,h,c.owner,u,b,p);break;case"gitlab":_=await ju(a.token,u,c.projectPath,h,b);break;case"bitbucket":_=await xu(a.username,a.token,c.workspace,c.repoSlug,h,b);break;case"bitbucket-server":_=await ku(a.token,u,c.projectKey,c.repoSlug,h,b);break}if(_?.changesRequested){let z=[],Y;switch(c.host){case"github":z=await Eu(a.token,`${c.owner}/${c.repo}`,_.prNumber,u,b,p);break;case"gitlab":{let R=await Ou(a.token,u,c.projectPath,_.prNumber,b);z=R.comments,Y=R.discussionIds;break}case"bitbucket":z=await wu(a.username,a.token,c.workspace,c.repoSlug,_.prNumber,b);break;case"bitbucket-server":z=await vu(a.token,u,c.projectKey,c.repoSlug,_.prNumber,b);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:z,prNumber:_.prNumber,discussionIds:Y,reviewers:_.reviewers??[]}}}}function Ph(e){if(e.length===0)return"[clancy] Rework pushed addressing reviewer feedback.";let t=e.length,r=e.slice(0,3).map(o=>`- ${o.slice(0,80)}`).join(`
39
+ `)}h.write("payload.value = newResult;"),h.write("return payload;");let X=h.compile();return(R,L)=>X(m,R,L)},s,i=Te,a=!Qe.jitless,l=a&&nn.value,p=t.catchall,f;e._zod.parse=(m,h)=>{f??(f=n.value);let y=m.value;return i(y)?a&&l&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),m=s(m,h),p?Pc([],y,m,h,f,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),m)}});function gc(e,t,r,n){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let o=e.filter(s=>!he(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Y(i,n,j())))}),t)}var ut=d("$ZodUnion",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),k(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>tt(s.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);if(l instanceof Promise)a.push(l),i=!0;else{if(l.issues.length===0)return l;a.push(l)}}return i?Promise.all(a).then(u=>gc(u,o,e,s)):gc(a,o,e,s)}});function yc(e,t,r,n){let o=e.filter(s=>s.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Y(i,n,j())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var ss=d("$ZodXor",(e,t)=>{ut.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);l instanceof Promise?(a.push(l),i=!0):a.push(l)}return i?Promise.all(a).then(u=>yc(u,o,e,s)):yc(a,o,e,s)}}),is=d("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ut.init(e,t);let r=e._zod.parse;k(e._zod,"propValues",()=>{let o={};for(let s of t.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,u]of Object.entries(i)){o[a]||(o[a]=new Set);for(let l of u)o[a].add(l)}}return o});let n=Ze(()=>{let o=t.options,s=new Map;for(let i of o){let a=i._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let u of a){if(s.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);s.set(u,i)}}return s});e._zod.parse=(o,s)=>{let i=o.value;if(!Te(i))return o.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),o;let a=n.value.get(i?.[t.discriminator]);return a?a._zod.run(o,s):t.unionFallback?r(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:i,path:[t.discriminator],inst:e}),o)}}),as=d("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([u,l])=>bc(r,u,l)):bc(r,s,i)}});function $o(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(me(e)&&me(t)){let r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(let s of n){let i=$o(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n],i=$o(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function bc(e,t,r){let n=new Map,o;for(let a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).l=!0}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).r=!0;else e.issues.push(a);let s=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),he(e))return e;let i=$o(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var ar=d("$ZodTuple",(e,t)=>{x.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let i=[],a=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),u=a===-1?0:r.length-a;if(!t.rest){let p=s.length>r.length,f=s.length<u-1;if(p||f)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:s,inst:e,origin:"array"}),n}let l=-1;for(let p of r){if(l++,l>=s.length&&l>=u)continue;let f=p._zod.run({value:s[l],issues:[]},o);f instanceof Promise?i.push(f.then(m=>Xt(m,n,l))):Xt(f,n,l)}if(t.rest){let p=s.slice(r.length);for(let f of p){l++;let m=t.rest._zod.run({value:f,issues:[]},o);m instanceof Promise?i.push(m.then(h=>Xt(h,n,l))):Xt(m,n,l)}}return i.length?Promise.all(i).then(()=>n):n}});function Xt(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var cs=d("$ZodRecord",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!me(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let s=[],i=t.keyType._zod.values;if(i){r.value={};let a=new Set;for(let l of i)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);let p=t.valueType._zod.run({value:o[l],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...V(l,f.issues)),r.value[l]=f.value})):(p.issues.length&&r.issues.push(...V(l,p.issues)),r.value[l]=p.value)}let u;for(let l in o)a.has(l)||(u=u??[],u.push(l));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__")continue;let u=t.keyType._zod.run({value:a,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Wt.test(a)&&u.issues.length){let f=t.keyType._zod.run({value:Number(a),issues:[]},n);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(u=f)}if(u.issues.length){t.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(f=>Y(f,n,j())),input:a,path:[a],inst:e});continue}let p=t.valueType._zod.run({value:o[a],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...V(a,f.issues)),r.value[u.value]=f.value})):(p.issues.length&&r.issues.push(...V(a,p.issues)),r.value[u.value]=p.value)}}return s.length?Promise.all(s).then(()=>r):r}}),us=d("$ZodMap",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let s=[];r.value=new Map;for(let[i,a]of o){let u=t.keyType._zod.run({value:i,issues:[]},n),l=t.valueType._zod.run({value:a,issues:[]},n);u instanceof Promise||l instanceof Promise?s.push(Promise.all([u,l]).then(([p,f])=>{_c(p,f,r,i,o,e,n)})):_c(u,l,r,i,o,e,n)}return s.length?Promise.all(s).then(()=>r):r}});function _c(e,t,r,n,o,s,i){e.issues.length&&(rt.has(typeof n)?r.issues.push(...V(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:s,issues:e.issues.map(a=>Y(a,i,j()))})),t.issues.length&&(rt.has(typeof n)?r.issues.push(...V(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:s,key:n,issues:t.issues.map(a=>Y(a,i,j()))})),r.value.set(e.value,t.value)}var ls=d("$ZodSet",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let i of o){let a=t.valueType._zod.run({value:i,issues:[]},n);a instanceof Promise?s.push(a.then(u=>wc(u,r))):wc(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function wc(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var ps=d("$ZodEnum",(e,t)=>{x.init(e,t);let r=et(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>rt.has(typeof o)).map(o=>typeof o=="string"?ee(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{let i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),fs=d("$ZodLiteral",(e,t)=>{if(x.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?ee(n):n?ee(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),n}}),ds=d("$ZodFile",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),ms=d("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r));if(o instanceof Promise)throw new se;return r.value=o,r}});function $c(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var cr=d("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${tt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>$c(s,r.value)):$c(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),hs=d("$ZodExactOptional",(e,t)=>{cr.init(e,t),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),gs=d("$ZodNullable",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${tt(r.source)}|null)$`):void 0}),k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),ys=d("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>xc(s,t)):xc(o,t)}});function xc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var bs=d("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),_s=d("$ZodNonOptional",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>kc(s,e)):kc(o,e)}});function kc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var ws=d("$ZodSuccess",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),$s=d("$ZodCatch",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>Y(i,n,j()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>Y(s,n,j()))},input:r.value}),r.issues=[]),r)}}),xs=d("$ZodNaN",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),ks=d("$ZodPipe",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>er(i,t.in,n)):er(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>er(s,t.out,n)):er(o,t.out,n)}});function er(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var lt=d("$ZodCodec",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=t.in._zod.run(r,n);return s instanceof Promise?s.then(i=>tr(i,t,n)):tr(s,t,n)}else{let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>tr(i,t,n)):tr(s,t,n)}}});function tr(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(s=>rr(e,s,t.out,r)):rr(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>rr(e,s,t.in,r)):rr(e,o,t.in,r)}}function rr(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var Ss=d("$ZodReadonly",(e,t)=>{x.init(e,t),k(e._zod,"propValues",()=>t.innerType._zod.propValues),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"optin",()=>t.innerType?._zod?.optin),k(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Sc):Sc(o)}});function Sc(e){return e.value=Object.freeze(e.value),e}var vs=d("$ZodTemplateLiteral",(e,t)=>{x.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=o.startsWith("^")?1:0,i=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(s,i))}else if(n===null||on.has(typeof n))r.push(ee(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),zs=d("$ZodFunction",(e,t)=>(x.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?ge(e._def.input,n):n,s=Reflect.apply(r,this,o);return e._def.output?ge(e._def.output,s):s}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await ye(e._def.input,n):n,s=await Reflect.apply(r,this,o);return e._def.output?await ye(e._def.output,s):s}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new ar({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),Ts=d("$ZodPromise",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Is=d("$ZodLazy",(e,t)=>{x.init(e,t),k(e._zod,"innerType",()=>t.getter()),k(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),k(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),k(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),k(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Ps=d("$ZodCustom",(e,t)=>{A.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>vc(s,r,n,e));vc(o,r,n,e)}});function vc(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(De(o))}}var pt={};ze(pt,{default:()=>xd});var xd={};var Ac,As=Symbol("ZodOutput"),Es=Symbol("ZodInput"),ur=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function lr(){return new ur}(Ac=globalThis).__zod_globalRegistry??(Ac.__zod_globalRegistry=lr());var ce=globalThis.__zod_globalRegistry;function Rs(e,t){return new e({type:"string",...g(t)})}function Cs(e,t){return new e({type:"string",coerce:!0,...g(t)})}function Ns(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function Os(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function Ls(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function Zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function js(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function Ds(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function pr(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function Ms(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function Bs(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function Us(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function Fs(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function Hs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function qs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Js(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Ks(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ys(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Gs(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Ws(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Vs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Qs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Xs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function ei(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function ti(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ri={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function ni(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function oi(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function si(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function ii(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function ai(e,t){return new e({type:"number",checks:[],...g(t)})}function ci(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function ui(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function li(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function pi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function fi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function di(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function mi(e,t){return new e({type:"boolean",...g(t)})}function hi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function gi(e,t){return new e({type:"bigint",...g(t)})}function yi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function bi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function _i(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function wi(e,t){return new e({type:"symbol",...g(t)})}function $i(e,t){return new e({type:"undefined",...g(t)})}function xi(e,t){return new e({type:"null",...g(t)})}function ki(e){return new e({type:"any"})}function Si(e){return new e({type:"unknown"})}function vi(e,t){return new e({type:"never",...g(t)})}function zi(e,t){return new e({type:"void",...g(t)})}function Ti(e,t){return new e({type:"date",...g(t)})}function Ii(e,t){return new e({type:"date",coerce:!0,...g(t)})}function Pi(e,t){return new e({type:"nan",...g(t)})}function fr(e,t){return new Vt({check:"less_than",...g(t),value:e,inclusive:!1})}function ft(e,t){return new Vt({check:"less_than",...g(t),value:e,inclusive:!0})}function dr(e,t){return new Qt({check:"greater_than",...g(t),value:e,inclusive:!1})}function dt(e,t){return new Qt({check:"greater_than",...g(t),value:e,inclusive:!0})}function Ai(e){return dr(0,e)}function Ei(e){return fr(0,e)}function Ri(e){return ft(0,e)}function Ci(e){return dt(0,e)}function Ni(e,t){return new to({check:"multiple_of",...g(t),value:e})}function Oi(e,t){return new oo({check:"max_size",...g(t),maximum:e})}function Li(e,t){return new so({check:"min_size",...g(t),minimum:e})}function Zi(e,t){return new io({check:"size_equals",...g(t),size:e})}function ji(e,t){return new ao({check:"max_length",...g(t),maximum:e})}function mt(e,t){return new co({check:"min_length",...g(t),minimum:e})}function Di(e,t){return new uo({check:"length_equals",...g(t),length:e})}function ht(e,t){return new lo({check:"string_format",format:"regex",...g(t),pattern:e})}function Mi(e){return new po({check:"string_format",format:"lowercase",...g(e)})}function Bi(e){return new fo({check:"string_format",format:"uppercase",...g(e)})}function Ui(e,t){return new mo({check:"string_format",format:"includes",...g(t),includes:e})}function Fi(e,t){return new ho({check:"string_format",format:"starts_with",...g(t),prefix:e})}function Hi(e,t){return new go({check:"string_format",format:"ends_with",...g(t),suffix:e})}function qi(e,t,r){return new yo({check:"property",property:e,schema:t,...g(r)})}function Ji(e,t){return new bo({check:"mime_type",mime:e,...g(t)})}function be(e){return new _o({check:"overwrite",tx:e})}function Ki(e){return be(t=>t.normalize(e))}function Yi(){return be(e=>e.trim())}function Gi(){return be(e=>e.toLowerCase())}function Wi(){return be(e=>e.toUpperCase())}function Sd(){return be(e=>rn(e))}function vd(e,t,r){return new e({type:"array",element:t,...g(r)})}function zd(e,t,r){return new e({type:"union",options:t,...g(r)})}function Td(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Id(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Pd(e,t,r){return new e({type:"intersection",left:t,right:r})}function Ad(e,t,r,n){let o=r instanceof x,s=o?n:r,i=o?r:null;return new e({type:"tuple",items:t,rest:i,...g(s)})}function Ed(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Rd(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Cd(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Nd(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,...g(r)})}function Od(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function Ld(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Vi(e,t){return new e({type:"file",...g(t)})}function Zd(e,t){return new e({type:"transform",transform:t})}function jd(e,t){return new e({type:"optional",innerType:t})}function Dd(e,t){return new e({type:"nullable",innerType:t})}function Md(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():je(r)}})}function Bd(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function Ud(e,t){return new e({type:"success",innerType:t})}function Fd(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function Hd(e,t,r){return new e({type:"pipe",in:t,out:r})}function qd(e,t){return new e({type:"readonly",innerType:t})}function Jd(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function Kd(e,t){return new e({type:"lazy",getter:t})}function Yd(e,t){return new e({type:"promise",innerType:t})}function Qi(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Xi(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function ea(e){let t=Ec(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(De(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(De(o))}},e(r.value,r)));return t}function Ec(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function ta(e){let t=new A({check:"describe"});return t._zod.onattach=[r=>{let n=ce.get(r)??{};ce.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function ra(e){let t=new A({check:"meta"});return t._zod.onattach=[r=>{let n=ce.get(r)??{};ce.add(r,{...n,...e})}],t._zod.check=()=>{},t}function na(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let s=new Set(n),i=new Set(o),a=e.Codec??lt,u=e.Boolean??ct,l=e.String??Be,p=new l({type:"string",error:r.error}),f=new u({type:"boolean",error:r.error}),m=new a({type:"pipe",in:p,out:f,transform:((h,y)=>{let b=h;return r.case!=="sensitive"&&(b=b.toLowerCase()),s.has(b)?!0:i.has(b)?!1:(y.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:y.value,inst:m,continue:!1}),{})}),reverseTransform:((h,y)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Ue(e,t,r,n={}){let o=g(n),s={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:a=>r.test(a),...o};return r instanceof RegExp&&(s.pattern=r),new e(s)}function _e(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ce,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function T(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);let a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{let m=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let f=e._zod.parent;f&&(i.ref||(i.ref=f),T(f,t,p),t.seen.get(f).isParent=!0)}let u=t.metadataRegistry.get(e);return u&&Object.assign(i.schema,u),t.io==="input"&&F(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function we(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let i of e.seen.entries()){let a=e.metadataRegistry.get(i[0])?.id;if(a){let u=n.get(a);if(u&&u!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,i[0])}}let o=i=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let f=e.external.registry.get(i[0])?.id,m=e.external.uri??(y=>y);if(f)return{ref:m(f)};let h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${m("__shared")}#/${a}/${h}`}}if(i[1]===r)return{ref:"#"};let l=`#/${a}/`,p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:l+p}},s=i=>{if(i[1].schema.$ref)return;let a=i[1],{ref:u,defId:l}=o(i);a.def={...a.schema},l&&(a.defId=l);let p=a.schema;for(let f in p)delete p[f];p.$ref=u};if(e.cycles==="throw")for(let i of e.seen.entries()){let a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
40
+
41
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let a=i[1];if(t===i[0]){s(i);continue}if(e.external){let l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function $e(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=i=>{let a=e.seen.get(i);if(a.ref===null)return;let u=a.def??a.schema,l={...u},p=a.ref;if(a.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),i._zod.parent===p)for(let b in u)b==="$ref"||b==="allOf"||b in l||delete u[b];if(h.$ref&&m.def)for(let b in u)b==="$ref"||b==="allOf"||b in m.def&&JSON.stringify(u[b])===JSON.stringify(m.def[b])&&delete u[b]}let f=i._zod.parent;if(f&&f!==p){n(f);let m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(let h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:i,jsonSchema:u,path:a.path??[]})};for(let i of[...e.seen.entries()].reverse())n(i[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,r.def??r.schema);let s=e.external?.defs??{};for(let i of e.seen.entries()){let a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:oa(t,"input",e.processors),output:oa(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function F(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return F(n.element,r);if(n.type==="set")return F(n.valueType,r);if(n.type==="lazy")return F(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return F(n.innerType,r);if(n.type==="intersection")return F(n.left,r)||F(n.right,r);if(n.type==="record"||n.type==="map")return F(n.keyType,r)||F(n.valueType,r);if(n.type==="pipe")return F(n.in,r)||F(n.out,r);if(n.type==="object"){for(let o in n.shape)if(F(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(F(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(F(o,r))return!0;return!!(n.rest&&F(n.rest,r))}return!1}var Gd=(e,t={})=>r=>{let n=_e({...r,processors:t});return T(e,n),we(n,e),$e(n,e)},oa=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=_e({...o??{},target:s,io:t,processors:r});return T(e,i),we(i,e),$e(i,e)};var Wd={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Vd=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:s,maximum:i,format:a,patterns:u,contentEncoding:l}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Wd[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),l&&(o.contentEncoding=l),u&&u.size>0){let p=[...u];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Qd=(e,t,r,n)=>{let o=r,{minimum:s,maximum:i,format:a,multipleOf:u,exclusiveMaximum:l,exclusiveMinimum:p}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof s=="number"&&(o.minimum=s,typeof p=="number"&&t.target!=="draft-04"&&(p>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l),typeof i=="number"&&(o.maximum=i,typeof l=="number"&&t.target!=="draft-04"&&(l<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof u=="number"&&(o.multipleOf=u)},Xd=(e,t,r,n)=>{r.type="boolean"},em=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},tm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},rm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},nm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},om=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},sm=(e,t,r,n)=>{r.not={}},im=(e,t,r,n)=>{},am=(e,t,r,n)=>{},cm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},um=(e,t,r,n)=>{let o=e._zod.def,s=et(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},lm=(e,t,r,n)=>{let o=e._zod.def,s=[];for(let i of o.values)if(i===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof i=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(i))}else s.push(i);if(s.length!==0)if(s.length===1){let i=s[0];r.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[i]:r.const=i}else s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),s.every(i=>typeof i=="boolean")&&(r.type="boolean"),s.every(i=>i===null)&&(r.type="null"),r.enum=s},pm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},fm=(e,t,r,n)=>{let o=r,s=e._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=s.source},dm=(e,t,r,n)=>{let o=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:i,maximum:a,mime:u}=e._zod.bag;i!==void 0&&(s.minLength=i),a!==void 0&&(s.maxLength=a),u?u.length===1?(s.contentMediaType=u[0],Object.assign(o,s)):(Object.assign(o,s),o.anyOf=u.map(l=>({contentMediaType:l}))):Object.assign(o,s)},mm=(e,t,r,n)=>{r.type="boolean"},hm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},gm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},ym=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},_m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},wm=(e,t,r,n)=>{let o=r,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=T(s.element,t,{...n,path:[...n.path,"items"]})},$m=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object",o.properties={};let i=s.shape;for(let l in i)o.properties[l]=T(i[l],t,{...n,path:[...n.path,"properties",l]});let a=new Set(Object.keys(i)),u=new Set([...a].filter(l=>{let p=s.shape[l]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));u.size>0&&(o.required=Array.from(u)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=T(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},xm=(e,t,r,n)=>{let o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,u)=>T(a,t,{...n,path:[...n.path,s?"oneOf":"anyOf",u]}));s?r.oneOf=i:r.anyOf=i},km=(e,t,r,n)=>{let o=e._zod.def,s=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,u=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];r.allOf=u},Sm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="array";let i=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",u=s.items.map((m,h)=>T(m,t,{...n,path:[...n.path,i,h]})),l=s.rest?T(s.rest,t,{...n,path:[...n.path,a,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=u,l&&(o.items=l)):t.target==="openapi-3.0"?(o.items={anyOf:u},l&&o.items.anyOf.push(l),o.minItems=u.length,l||(o.maxItems=u.length)):(o.items=u,l&&(o.additionalItems=l));let{minimum:p,maximum:f}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof f=="number"&&(o.maxItems=f)},vm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object";let i=s.keyType,u=i._zod.bag?.patterns;if(s.mode==="loose"&&u&&u.size>0){let p=T(s.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let f of u)o.patternProperties[f.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=T(s.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=T(s.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let l=i._zod.values;if(l){let p=[...l].filter(f=>typeof f=="string"||typeof f=="number");p.length>0&&(o.required=p)}},zm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Tm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Im=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Pm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Am=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Em=(e,t,r,n)=>{let o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;T(s,t,n);let i=t.seen.get(e);i.ref=s},Rm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Cm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Nm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Om=(e,t,r,n)=>{let o=e._zod.innerType;T(o,t,n);let s=t.seen.get(e);s.ref=o},mr={string:Vd,number:Qd,boolean:Xd,bigint:em,symbol:tm,null:rm,undefined:nm,void:om,never:sm,any:im,unknown:am,date:cm,enum:um,literal:lm,nan:pm,template_literal:fm,file:dm,success:mm,custom:hm,function:gm,transform:ym,map:bm,set:_m,array:wm,object:$m,union:xm,intersection:km,tuple:Sm,record:vm,nullable:zm,nonoptional:Tm,default:Im,prefault:Pm,catch:Am,pipe:Em,readonly:Rm,promise:Cm,optional:Nm,lazy:Om};function hr(e,t){if("_idmap"in e){let n=e,o=_e({...t,processors:mr}),s={};for(let u of n._idmap.entries()){let[l,p]=u;T(p,o)}let i={},a={registry:n,uri:t?.uri,defs:s};o.external=a;for(let u of n._idmap.entries()){let[l,p]=u;we(o,p),i[l]=$e(o,p)}if(Object.keys(s).length>0){let u=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[u]:s}}return{schemas:i}}let r=_e({...t,processors:mr});return T(e,r),we(r,e),$e(r,e)}var gr=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=_e({processors:mr,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return T(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),we(this.ctx,t);let n=$e(this.ctx,t),{"~standard":o,...s}=n;return s}};var Rc={};var S=d("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>ge(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Ie(e,r,n),e.parseAsync=async(r,n)=>ye(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Pe(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>U(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),He=d("ZodMiniString",(e,t)=>{Be.init(e,t),S.init(e,t)});function _(e){return Rs(He,e)}var E=d("ZodMiniStringFormat",(e,t)=>{P.init(e,t),He.init(e,t)}),Cc=d("ZodMiniEmail",(e,t)=>{So.init(e,t),E.init(e,t)});function Zm(e){return Ns(Cc,e)}var Nc=d("ZodMiniGUID",(e,t)=>{xo.init(e,t),E.init(e,t)});function jm(e){return Os(Nc,e)}var gt=d("ZodMiniUUID",(e,t)=>{ko.init(e,t),E.init(e,t)});function Dm(e){return Ls(gt,e)}function Mm(e){return Zs(gt,e)}function Bm(e){return js(gt,e)}function Um(e){return Ds(gt,e)}var sa=d("ZodMiniURL",(e,t)=>{vo.init(e,t),E.init(e,t)});function Fm(e){return pr(sa,e)}function Hm(e){return pr(sa,{protocol:/^https?$/,hostname:re.domain,...g(e)})}var Oc=d("ZodMiniEmoji",(e,t)=>{zo.init(e,t),E.init(e,t)});function qm(e){return Ms(Oc,e)}var Lc=d("ZodMiniNanoID",(e,t)=>{To.init(e,t),E.init(e,t)});function Jm(e){return Bs(Lc,e)}var Zc=d("ZodMiniCUID",(e,t)=>{Io.init(e,t),E.init(e,t)});function Km(e){return Us(Zc,e)}var jc=d("ZodMiniCUID2",(e,t)=>{Po.init(e,t),E.init(e,t)});function Ym(e){return Fs(jc,e)}var Dc=d("ZodMiniULID",(e,t)=>{Ao.init(e,t),E.init(e,t)});function Gm(e){return Hs(Dc,e)}var Mc=d("ZodMiniXID",(e,t)=>{Eo.init(e,t),E.init(e,t)});function Wm(e){return qs(Mc,e)}var Bc=d("ZodMiniKSUID",(e,t)=>{Ro.init(e,t),E.init(e,t)});function Vm(e){return Js(Bc,e)}var Uc=d("ZodMiniIPv4",(e,t)=>{Zo.init(e,t),E.init(e,t)});function Qm(e){return Ks(Uc,e)}var Fc=d("ZodMiniIPv6",(e,t)=>{jo.init(e,t),E.init(e,t)});function Xm(e){return Ys(Fc,e)}var Hc=d("ZodMiniCIDRv4",(e,t)=>{Mo.init(e,t),E.init(e,t)});function eh(e){return Ws(Hc,e)}var qc=d("ZodMiniCIDRv6",(e,t)=>{Bo.init(e,t),E.init(e,t)});function th(e){return Vs(qc,e)}var Jc=d("ZodMiniMAC",(e,t)=>{Do.init(e,t),E.init(e,t)});function rh(e){return Gs(Jc,e)}var Kc=d("ZodMiniBase64",(e,t)=>{Fo.init(e,t),E.init(e,t)});function nh(e){return Qs(Kc,e)}var Yc=d("ZodMiniBase64URL",(e,t)=>{Ho.init(e,t),E.init(e,t)});function oh(e){return Xs(Yc,e)}var Gc=d("ZodMiniE164",(e,t)=>{qo.init(e,t),E.init(e,t)});function sh(e){return ei(Gc,e)}var Wc=d("ZodMiniJWT",(e,t)=>{Jo.init(e,t),E.init(e,t)});function ih(e){return ti(Wc,e)}var yt=d("ZodMiniCustomStringFormat",(e,t)=>{Ko.init(e,t),E.init(e,t)});function ah(e,t,r={}){return Ue(yt,e,t,r)}function ch(e){return Ue(yt,"hostname",re.hostname,e)}function uh(e){return Ue(yt,"hex",re.hex,e)}function lh(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=re[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Ue(yt,n,o,t)}var bt=d("ZodMiniNumber",(e,t)=>{or.init(e,t),S.init(e,t)});function xe(e){return ai(bt,e)}var qe=d("ZodMiniNumberFormat",(e,t)=>{Yo.init(e,t),bt.init(e,t)});function ph(e){return ui(qe,e)}function fh(e){return li(qe,e)}function dh(e){return pi(qe,e)}function mh(e){return fi(qe,e)}function hh(e){return di(qe,e)}var _t=d("ZodMiniBoolean",(e,t)=>{ct.init(e,t),S.init(e,t)});function Je(e){return mi(_t,e)}var wt=d("ZodMiniBigInt",(e,t)=>{sr.init(e,t),S.init(e,t)});function gh(e){return gi(wt,e)}var ia=d("ZodMiniBigIntFormat",(e,t)=>{Go.init(e,t),wt.init(e,t)});function yh(e){return bi(ia,e)}function bh(e){return _i(ia,e)}var Vc=d("ZodMiniSymbol",(e,t)=>{Wo.init(e,t),S.init(e,t)});function _h(e){return wi(Vc,e)}var Qc=d("ZodMiniUndefined",(e,t)=>{Vo.init(e,t),S.init(e,t)});function wh(e){return $i(Qc,e)}var Xc=d("ZodMiniNull",(e,t)=>{Qo.init(e,t),S.init(e,t)});function eu(e){return xi(Xc,e)}var tu=d("ZodMiniAny",(e,t)=>{Xo.init(e,t),S.init(e,t)});function $h(){return ki(tu)}var ru=d("ZodMiniUnknown",(e,t)=>{es.init(e,t),S.init(e,t)});function yr(){return Si(ru)}var nu=d("ZodMiniNever",(e,t)=>{ts.init(e,t),S.init(e,t)});function ou(e){return vi(nu,e)}var su=d("ZodMiniVoid",(e,t)=>{rs.init(e,t),S.init(e,t)});function xh(e){return zi(su,e)}var br=d("ZodMiniDate",(e,t)=>{ns.init(e,t),S.init(e,t)});function kh(e){return Ti(br,e)}var iu=d("ZodMiniArray",(e,t)=>{os.init(e,t),S.init(e,t)});function H(e,t){return new iu({type:"array",element:e,...g(t)})}function Sh(e){let t=e._zod.def.shape;return gu(Object.keys(t))}var _r=d("ZodMiniObject",(e,t)=>{ir.init(e,t),S.init(e,t),k(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new _r(r)}function vh(e,t){return new _r({type:"object",shape:e,catchall:ou(),...g(t)})}function zh(e,t){return new _r({type:"object",shape:e,catchall:yr(),...g(t)})}function ke(e,t){return Ht(e,t)}function Th(e,t){return pn(e,t)}function Ih(e,t){return Ht(e,t)}function Ph(e,t){return un(e,t)}function Ah(e,t){return ln(e,t)}function Eh(e,t){return fn(ua,e,t)}function Rh(e,t){return dn(la,e,t)}function Ch(e,t){return e.clone({...e._zod.def,catchall:t})}var aa=d("ZodMiniUnion",(e,t)=>{ut.init(e,t),S.init(e,t)});function au(e,t){return new aa({type:"union",options:e,...g(t)})}var cu=d("ZodMiniXor",(e,t)=>{aa.init(e,t),ss.init(e,t)});function Nh(e,t){return new cu({type:"union",options:e,inclusive:!1,...g(t)})}var uu=d("ZodMiniDiscriminatedUnion",(e,t)=>{is.init(e,t),S.init(e,t)});function Oh(e,t,r){return new uu({type:"union",options:t,discriminator:e,...g(r)})}var lu=d("ZodMiniIntersection",(e,t)=>{as.init(e,t),S.init(e,t)});function Lh(e,t){return new lu({type:"intersection",left:e,right:t})}var pu=d("ZodMiniTuple",(e,t)=>{ar.init(e,t),S.init(e,t)});function fu(e,t,r){let n=t instanceof x,o=n?r:t,s=n?t:null;return new pu({type:"tuple",items:e,rest:s,...g(o)})}var wr=d("ZodMiniRecord",(e,t)=>{cs.init(e,t),S.init(e,t)});function du(e,t,r){return new wr({type:"record",keyType:e,valueType:t,...g(r)})}function Zh(e,t,r){let n=U(e);return n._zod.values=void 0,new wr({type:"record",keyType:n,valueType:t,...g(r)})}function jh(e,t,r){return new wr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var mu=d("ZodMiniMap",(e,t)=>{us.init(e,t),S.init(e,t)});function Dh(e,t,r){return new mu({type:"map",keyType:e,valueType:t,...g(r)})}var hu=d("ZodMiniSet",(e,t)=>{ls.init(e,t),S.init(e,t)});function Mh(e,t){return new hu({type:"set",valueType:e,...g(t)})}var ca=d("ZodMiniEnum",(e,t)=>{ps.init(e,t),S.init(e,t),e.options=Object.values(t.entries)});function gu(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new ca({type:"enum",entries:r,...g(t)})}function Bh(e,t){return new ca({type:"enum",entries:e,...g(t)})}var yu=d("ZodMiniLiteral",(e,t)=>{fs.init(e,t),S.init(e,t)});function Uh(e,t){return new yu({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var bu=d("ZodMiniFile",(e,t)=>{ds.init(e,t),S.init(e,t)});function Fh(e){return Vi(bu,e)}var _u=d("ZodMiniTransform",(e,t)=>{ms.init(e,t),S.init(e,t)});function Hh(e){return new _u({type:"transform",transform:e})}var ua=d("ZodMiniOptional",(e,t)=>{cr.init(e,t),S.init(e,t)});function w(e){return new ua({type:"optional",innerType:e})}var wu=d("ZodMiniExactOptional",(e,t)=>{hs.init(e,t),S.init(e,t)});function qh(e){return new wu({type:"optional",innerType:e})}var $u=d("ZodMiniNullable",(e,t)=>{gs.init(e,t),S.init(e,t)});function $r(e){return new $u({type:"nullable",innerType:e})}function Jh(e){return w($r(e))}var xu=d("ZodMiniDefault",(e,t)=>{ys.init(e,t),S.init(e,t)});function Kh(e,t){return new xu({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var ku=d("ZodMiniPrefault",(e,t)=>{bs.init(e,t),S.init(e,t)});function Yh(e,t){return new ku({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var la=d("ZodMiniNonOptional",(e,t)=>{_s.init(e,t),S.init(e,t)});function Gh(e,t){return new la({type:"nonoptional",innerType:e,...g(t)})}var Su=d("ZodMiniSuccess",(e,t)=>{ws.init(e,t),S.init(e,t)});function Wh(e){return new Su({type:"success",innerType:e})}var vu=d("ZodMiniCatch",(e,t)=>{$s.init(e,t),S.init(e,t)});function Vh(e,t){return new vu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var zu=d("ZodMiniNaN",(e,t)=>{xs.init(e,t),S.init(e,t)});function Qh(e){return Pi(zu,e)}var pa=d("ZodMiniPipe",(e,t)=>{ks.init(e,t),S.init(e,t)});function Xh(e,t){return new pa({type:"pipe",in:e,out:t})}var fa=d("ZodMiniCodec",(e,t)=>{pa.init(e,t),lt.init(e,t)});function eg(e,t,r){return new fa({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Tu=d("ZodMiniReadonly",(e,t)=>{Ss.init(e,t),S.init(e,t)});function tg(e){return new Tu({type:"readonly",innerType:e})}var Iu=d("ZodMiniTemplateLiteral",(e,t)=>{vs.init(e,t),S.init(e,t)});function rg(e,t){return new Iu({type:"template_literal",parts:e,...g(t)})}var Pu=d("ZodMiniLazy",(e,t)=>{Is.init(e,t),S.init(e,t)});function Au(e){return new Pu({type:"lazy",getter:e})}var Eu=d("ZodMiniPromise",(e,t)=>{Ts.init(e,t),S.init(e,t)});function ng(e){return new Eu({type:"promise",innerType:e})}var da=d("ZodMiniCustom",(e,t)=>{Ps.init(e,t),S.init(e,t)});function og(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function Ru(e,t){return Qi(da,e??(()=>!0),t)}function sg(e,t={}){return Xi(da,e,t)}function ig(e){return ea(e)}var ag=ta,cg=ra;function ug(e,t={}){let r=Ru(n=>n instanceof e,t);return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var lg=(...e)=>na({Codec:fa,Boolean:_t,String:He},...e);function pg(){let e=Au(()=>au([_(),xe(),Je(),eu(),H(e),du(_(),e)]));return e}var Cu=d("ZodMiniFunction",(e,t)=>{zs.init(e,t),S.init(e,t)});function fg(e){return new Cu({type:"function",input:Array.isArray(e?.input)?fu(e?.input):e?.input??H(yr()),output:e?.output??yr()})}var ma={};ze(ma,{ZodMiniISODate:()=>kr,ZodMiniISODateTime:()=>xr,ZodMiniISODuration:()=>vr,ZodMiniISOTime:()=>Sr,date:()=>mg,datetime:()=>dg,duration:()=>gg,time:()=>hg});var xr=d("ZodMiniISODateTime",(e,t)=>{Co.init(e,t),E.init(e,t)});function dg(e){return ni(xr,e)}var kr=d("ZodMiniISODate",(e,t)=>{No.init(e,t),E.init(e,t)});function mg(e){return oi(kr,e)}var Sr=d("ZodMiniISOTime",(e,t)=>{Oo.init(e,t),E.init(e,t)});function hg(e){return si(Sr,e)}var vr=d("ZodMiniISODuration",(e,t)=>{Lo.init(e,t),E.init(e,t)});function gg(e){return ii(vr,e)}var ha={};ze(ha,{bigint:()=>wg,boolean:()=>_g,date:()=>$g,number:()=>bg,string:()=>yg});function yg(e){return Cs(He,e)}function bg(e){return ci(bt,e)}function _g(e){return hi(_t,e)}function wg(e){return yi(wt,e)}function $g(e){return Ii(br,e)}var Q=_().check(mt(1)),xg=_().check(ht(/^https?:\/\/.+/)),Ke=I({CLANCY_BASE_BRANCH:w(_()),CLANCY_LABEL:w(_()),CLANCY_MODEL:w(_()),CLANCY_NOTIFY_WEBHOOK:w(_()),CLANCY_STATUS_IN_PROGRESS:w(_()),CLANCY_STATUS_DONE:w(_()),CLANCY_STATUS_REVIEW:w(_()),MAX_ITERATIONS:w(_()),PLAYWRIGHT_ENABLED:w(_()),PLAYWRIGHT_DEV_PORT:w(_()),CLANCY_ROLES:w(_()),CLANCY_PLAN_STATUS:w(_()),CLANCY_PLAN_LABEL:w(_()),CLANCY_PLAN_STATE_TYPE:w(_()),CLANCY_STATUS_PLANNED:w(_()),CLANCY_SKIP_COMMENTS:w(_()),GITHUB_TOKEN:w(_()),GITLAB_TOKEN:w(_()),BITBUCKET_USER:w(_()),BITBUCKET_TOKEN:w(_()),CLANCY_GIT_PLATFORM:w(_()),CLANCY_GIT_API_URL:w(_()),CLANCY_MAX_REWORK:w(_()),CLANCY_TDD:w(_()),CLANCY_MODE:w(_()),CLANCY_BRIEF_ISSUE_TYPE:w(_()),CLANCY_BRIEF_EPIC:w(_()),CLANCY_COMPONENT:w(_()),CLANCY_FIX_RETRIES:w(_()),CLANCY_VERIFY_COMMANDS:w(_()),CLANCY_TOKEN_RATE:w(_()),CLANCY_TIME_LIMIT:w(_()),CLANCY_BRANCH_GUARD:w(_()),CLANCY_LABEL_BRIEF:w(_()),CLANCY_LABEL_PLAN:w(_()),CLANCY_LABEL_BUILD:w(_())}),Ou=ke(Ke,{JIRA_BASE_URL:xg,JIRA_USER:Q,JIRA_API_TOKEN:Q,JIRA_PROJECT_KEY:Q,CLANCY_JQL_STATUS:w(_()),CLANCY_JQL_SPRINT:w(_())}),Lu=ke(Ke,{GITHUB_TOKEN:Q,GITHUB_REPO:Q}),Zu=ke(Ke,{LINEAR_API_KEY:Q,LINEAR_TEAM_ID:Q}),ju=ke(Ke,{SHORTCUT_API_TOKEN:Q,SHORTCUT_WORKFLOW:w(_())}),Du=ke(Ke,{NOTION_TOKEN:Q,NOTION_DATABASE_ID:Q,CLANCY_NOTION_STATUS:w(_()),CLANCY_NOTION_ASSIGNEE:w(_()),CLANCY_NOTION_LABELS:w(_()),CLANCY_NOTION_PARENT:w(_())}),Mu=ke(Ke,{AZDO_ORG:Q,AZDO_PROJECT:Q,AZDO_PAT:Q,CLANCY_AZDO_STATUS:w(_()),CLANCY_AZDO_WIT:w(_())});function zr(e){if(e.JIRA_BASE_URL){let t=Ou.safeParse(e);return t.success?{provider:"jira",env:t.data}:`\u2717 Jira env validation failed: ${t.error.message}`}if(e.GITHUB_TOKEN&&e.GITHUB_REPO){let t=Lu.safeParse(e);return t.success?{provider:"github",env:t.data}:`\u2717 GitHub env validation failed: ${t.error.message}`}if(e.LINEAR_API_KEY){let t=Zu.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}if(e.SHORTCUT_API_TOKEN){let t=ju.safeParse(e);return t.success?{provider:"shortcut",env:t.data}:`\u2717 Shortcut env validation failed: ${t.error.message}`}if(e.NOTION_DATABASE_ID){let t=Du.safeParse(e);return t.success?{provider:"notion",env:t.data}:`\u2717 Notion env validation failed: ${t.error.message}`}if(e.AZDO_ORG){let t=Mu.safeParse(e);return t.success?{provider:"azdo",env:t.data}:`\u2717 Azure DevOps env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, Linear, Shortcut, Notion, or Azure DevOps credentials in .clancy/.env"}function D(e){return e.env}import{appendFileSync as Bu,mkdirSync as kg,readFileSync as Sg}from"node:fs";import{dirname as vg,join as Uu}from"node:path";function zg(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),s=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${s}`}function C(e,t,r,n,o,s){let i=Uu(e,".clancy","progress.txt");kg(vg(i),{recursive:!0});let a=zg(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let f=`${a} | ${n} | ${t} | ${r}
42
+ `;Bu(i,f,"utf8");return}let u=o!=null?` | pr:${o}`:"",l=s?` | parent:${s}`:"",p=`${a} | ${t} | ${r} | ${n}${u}${l}
43
+ `;Bu(i,p,"utf8")}function Fu(e){let t=Uu(e,".clancy","progress.txt"),r;try{r=Sg(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
44
+ `)){let s=o.trim();if(!s)continue;let i=s.split(" | ");if(i.length<4)continue;let a=i[0];if(i[1]==="BRIEF"||i[1]==="APPROVE_BRIEF"){n.push({timestamp:a,key:i[2],summary:i.slice(3).join(" | "),status:i[1]});continue}let u=i[1],l,p,f,m=[];for(let h=2;h<i.length;h++){let y=i[h],b=y.match(/^pr:(\d+)$/),v=y.match(/^parent:(.+)$/);b?p=parseInt(b[1],10):v?f=v[1]:h>=3&&!l&&y===y.toUpperCase()&&y.length>1?l=y:m.push(y)}l&&(l==="APPROVE"&&(l="APPROVE_PLAN"),n.push({timestamp:a,key:u,summary:m.join(" | "),status:l,...p!=null&&{prNumber:p},...f!=null&&{parent:f}}))}return n}function Hu(e,t){let r=Fu(e),n=t.toLowerCase(),o=0;for(let s of r)s.key.toLowerCase()===n&&s.status==="REWORK"&&o++;return o}function q(e,t){let r=Fu(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}function Tg(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function Tr(e,t,r,n){let o=[],s=r?Tg(r):!1;switch(e.provider){case"github":o.push(s?`Part of ${t.key}`:`Closes ${t.key}`);break;case"jira":o.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":o.push(`**Linear:** ${t.key}`);break}return o.push(""),t.description&&(o.push("## Description"),o.push(""),o.push(t.description),o.push("")),n&&(o.push("## \u26A0 Verification Warning"),o.push(""),o.push(n),o.push(""),o.push("This PR may need manual fixes before merging."),o.push("")),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.push(""),o.push("---"),o.push("<details>"),o.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),o.push(""),o.push("To request changes:"),o.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),o.push("- **General feedback** \u2014 reply with a comment starting with `Rework:` followed by what needs fixing. Comments without the `Rework:` prefix are treated as discussion."),o.push(""),o.push("Example: `Rework: The form validation doesn't handle empty passwords`"),o.push(""),o.push("</details>"),o.join(`
45
+ `)}function qu(e,t,r,n){let o=[];o.push(`## ${e} \u2014 ${t}`),o.push(""),o.push("### Children"),o.push("");for(let s of r){let i=s.prNumber?` (#${s.prNumber})`:"";o.push(`- ${s.key} \u2014 ${s.summary}${i}`)}if(n==="github"){o.push(""),o.push("### Closes"),o.push("");let s=r.map(i=>i.key).filter(i=>i.startsWith("#"));e.startsWith("#")&&s.unshift(e),s.length>0&&o.push(s.map(i=>`Closes ${i}`).join(", "))}return o.push(""),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.join(`
46
+ `)}import{execFileSync as Ig}from"node:child_process";function Ju(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],s=r?.[2]??n?.[2];if(!(!o||!s))return{hostname:o,path:s}}function Pg(e){let t=Ju(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(Ag(r)){case"github":{let s=n.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let s=n.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:r};let i=n.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function Ag(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function Se(e){let t;try{t=Ig("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Eg(t,e):Pg(t):{host:"none"}}function Eg(e,t){let r=Ju(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let s=o.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let s=o.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let s=o.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:n};let i=o.split("/");return i.length>=2?{host:"bitbucket-server",projectKey:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function $t(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var Rg=I({id:xe(),links:I({html:w(I({href:w(_())}))}),participants:H(I({state:w(_()),role:_()}))}),Ku=I({values:H(Rg)}),Cg=I({content:I({raw:_()}),inline:w(I({path:w(_())})),created_on:_(),user:w(I({nickname:w(_())}))}),ya=I({values:H(Cg)}),Ng=I({id:xe(),links:I({self:w(H(I({href:w(_())})))}),reviewers:H(I({status:_()}))}),Yu=I({values:H(Ng)}),Og=I({text:_(),anchor:w(I({path:w(_())})),createdDate:xe(),author:w(I({slug:w(_())}))}),Lg=I({action:_(),comment:w(Og)}),ba=I({values:H(Lg)});async function Ee(e,t,r,n,o){let s=new AbortController,i=setTimeout(()=>s.abort(),3e4);try{let a=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:s.signal});if(!a.ok){let p=await a.text().catch(()=>""),f=o?.(a.status,p)??!1;return{ok:!1,error:`HTTP ${a.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:f}}let u=await a.json(),l=n(u);return!l.url&&!l.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:l.url,number:l.number}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(i)}}function Ye(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function ie(e){return e.trim().toLowerCase().startsWith("rework:")}function Re(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function Gu(e,t,r,n,o,s,i,a){return Ee(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ye(e,t)},{title:i,description:a,source:{branch:{name:o}},destination:{branch:{name:s}},close_source_branch:!0},u=>{let l=u;return{url:l.links?.html?.href??"",number:l.id??0}},(u,l)=>u===409&&l.includes("already exists"))}async function Wu(e,t,r,n,o,s,i,a){return Ee(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:i,description:a,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${s}`,repository:{slug:n,project:{key:r}}}},u=>{let l=u;return{url:l.links?.self?.[0]?.href??"",number:l.id??0}},(u,l)=>u===409&&(l.includes("already exists")||l.includes("Only one pull request")))}async function Vu(e,t,r,n,o,s){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ye(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:s}})})).ok}catch{return!1}}async function Qu(e,t,r,n,o,s){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:s})})).ok}catch{return!1}}async function Xu(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,a=await fetch(i,{headers:{Authorization:Ye(e,t)}});if(!a.ok)return;let u=Ku.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.html?.href??"",f=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${l.id}/comments?pagelen=100`,m=await fetch(f,{headers:{Authorization:Ye(e,t)}});if(!m.ok)return;let h=ya.parse(await m.json()),y=s?h.values.filter(X=>X.created_on>s):h.values,b=y.some(X=>X.inline!=null),v=y.some(X=>X.inline==null&&ie(X.content.raw));return{changesRequested:b||v,prNumber:l.id,prUrl:p}}catch{return}}async function el(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,a=await fetch(i,{headers:{Authorization:Ye(e,t)}});if(!a.ok)return[];let u=ya.parse(await a.json()),l=s?u.values.filter(f=>f.created_on>s):u.values,p=[];for(let f of l)if(f.inline!=null){let m=f.inline.path?`[${f.inline.path}] `:"";p.push(`${m}${f.content.raw}`)}else ie(f.content.raw)&&p.push(Re(f.content.raw));return p}catch{return[]}}async function tl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return;let u=Yu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.self?.[0]?.href??"",f=`${t}/projects/${r}/repos/${n}/pull-requests/${l.id}/activities?limit=100`,m=await fetch(f,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=ba.parse(await m.json()),y=s?Date.parse(s):void 0,b=h.values.filter(R=>R.action==="COMMENTED"&&R.comment&&(y==null||R.comment.createdDate>y)),v=b.some(R=>R.comment.anchor!=null),J=b.some(R=>R.comment.anchor==null&&ie(R.comment.text));return{changesRequested:v||J,prNumber:l.id,prUrl:p}}catch{return}}async function rl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return[];let u=ba.parse(await a.json()),l=s?Date.parse(s):void 0,p=[];for(let f of u.values){if(f.action!=="COMMENTED"||!f.comment||l!=null&&f.comment.createdDate<=l)continue;let m=f.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else ie(m.text)&&p.push(Re(m.text))}return p}catch{return[]}}var Zg=c.object({number:c.number(),title:c.string(),body:c.optional(c.nullable(c.string())),pull_request:c.optional(c.unknown()),milestone:c.optional(c.nullable(c.object({title:c.string()}))),labels:c.optional(c.array(c.object({name:c.optional(c.string())})))}),nl=c.array(Zg),jg=c.object({id:c.number(),body:c.optional(c.nullable(c.string())),created_at:c.string(),user:c.optional(c.object({login:c.string()}))}),_a=c.array(jg),Dg=c.object({number:c.number(),html_url:c.string(),state:c.string()}),ol=c.array(Dg),Mg=c.object({state:c.string(),user:c.object({login:c.string()}),submitted_at:c.string()}),sl=c.array(Mg),Bg=c.object({body:c.optional(c.nullable(c.string())),path:c.optional(c.string()),created_at:c.optional(c.string()),user:c.optional(c.object({login:c.string()}))}),wa=c.array(Bg);var Z="https://api.github.com";async function Ir(e,t,r,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),1e4),i=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(s),i.ok)return{ok:!0};let a=r[i.status];return a?{ok:!1,error:a}:{ok:!1,error:`\u2717 HTTP ${i.status}`}}catch{return{ok:!1,error:n}}}function M(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function ve(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}async function il(e,t,r,n,o=Z,s,i){try{let a=M(e),u=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:a});if(!u.ok)return;let l=ol.parse(await u.json());if(l.length===0)return;let p=l[0],f=s?`&since=${s}`:"",[m,h]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${p.number}/comments?per_page=100${f}`,{headers:a}),fetch(`${o}/repos/${t}/issues/${p.number}/comments?per_page=100${f}`,{headers:a})]);if(!m.ok||!h.ok)return;let y=wa.parse(await m.json()),b=_a.parse(await h.json()),v=i?y.filter(ae=>ae.user?.login!==i):y,J=i?b.filter(ae=>ae.user?.login!==i):b,X=v.length>0,R=J.some(ae=>ae.body&&ie(ae.body)),L=X||R,K;if(!L)try{let ae=await fetch(`${o}/repos/${t}/pulls/${p.number}/reviews?per_page=100`,{headers:a});if(ae.ok){let Kr=sl.parse(await ae.json()),Ma=new Map;for(let le of Kr)le.state==="PENDING"||le.state==="DISMISSED"||Ma.set(le.user.login,le.state);let Ba=[...Ma.entries()].filter(([,le])=>le==="CHANGES_REQUESTED");Ba.length>0&&(L=!0,K=Ba.map(([le])=>le))}}catch{}return{changesRequested:L,prNumber:p.number,prUrl:p.html_url,reviewers:K}}catch{return}}async function al(e,t,r,n=Z,o,s){try{let i=M(e),a=o?`&since=${o}`:"",[u,l]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${a}`,{headers:i}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${a}`,{headers:i})]);if(!u.ok||!l.ok)return[];let p=wa.parse(await u.json()),f=_a.parse(await l.json()),m=s?p.filter(b=>b.user?.login!==s):p,h=s?f.filter(b=>b.user?.login!==s):f,y=[];for(let b of m){if(!b.body)continue;let v=b.path?`[${b.path}] `:"";y.push(`${v}${b.body}`)}for(let b of h)b.body&&ie(b.body)&&y.push(Re(b.body));return y}catch{return[]}}async function cl(e,t,r,n,o=Z){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...M(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function ul(e,t,r,n,o=Z){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...M(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function ll(e,t,r,n,o,s,i=Z){return Ee(`${i}/repos/${t}/pulls`,M(e),{title:o,head:r,base:n,body:s},a=>{let u=a;return{url:u.html_url??"",number:u.number??0}},(a,u)=>a===422&&u.includes("already exists"))}var Ug=I({iid:xe(),web_url:_(),detailed_merge_status:w(_())}),pl=H(Ug),Fg=I({body:_(),resolvable:Je(),resolved:w(Je()),system:Je(),type:w($r(_())),created_at:w(_()),position:w(I({new_path:w(_())})),author:w(I({username:_()}))}),Hg=I({id:w(_()),notes:H(Fg)}),$a=H(Hg);async function fl(e,t,r,n,o,s,i){let a=encodeURIComponent(r);return Ee(`${t}/projects/${a}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:s,description:i,remove_source_branch:!0},u=>{let l=u;return{url:l.web_url??"",number:l.iid??0}},(u,l)=>u===409&&l.includes("already exists"))}async function dl(e,t,r,n,o){try{let s=encodeURIComponent(r);return(await fetch(`${t}/projects/${s}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function ml(e,t,r,n,o){let s=encodeURIComponent(r),i=0;for(let a of o)try{(await fetch(`${t}/projects/${s}/merge_requests/${n}/discussions/${a}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&i++}catch{}return i}async function hl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests?source_branch=${n}&state=opened`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return;let u=pl.parse(await a.json());if(u.length===0)return;let l=u[0],p=`${t}/projects/${s}/merge_requests/${l.iid}/discussions?per_page=100`,f=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!f.ok)return;let m=$a.parse(await f.json()),h=!1;for(let y of m){for(let b of y.notes)if(!b.system&&!(o&&b.created_at&&b.created_at<=o)){if(b.type==="DiffNote"&&b.resolvable!==!1&&b.resolved!==!0){h=!0;break}if(ie(b.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:l.iid,prUrl:l.web_url}}catch{return}}async function gl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests/${n}/discussions?per_page=100`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return{comments:[],discussionIds:[]};let u=$a.parse(await a.json()),l=[],p=[];for(let f of u){let m=!1;for(let h of f.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let y=h.position?.new_path?`[${h.position.new_path}] `:"";l.push(`${y}${h.body}`),m=!0}else ie(h.body)&&(l.push(Re(h.body)),m=!0);m&&f.id&&p.push(f.id)}return{comments:l,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function xt(e,t){let r=D(e);switch(t.host){case"github":if(r.GITHUB_TOKEN)return{token:r.GITHUB_TOKEN};break;case"gitlab":if(r.GITLAB_TOKEN)return{token:r.GITLAB_TOKEN};break;case"bitbucket":if(r.BITBUCKET_USER&&r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN,username:r.BITBUCKET_USER};break;case"bitbucket-server":if(r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN};break}}async function kt(e,t,r,n,o,s){let i=xt(e,t);if(!i)return;let a=$t(t,D(e).CLANCY_GIT_API_URL);if(a)switch(t.host){case"github":return ll(i.token,`${t.owner}/${t.repo}`,r,n,o,s,a);case"gitlab":return fl(i.token,a,t.projectPath,r,n,o,s);case"bitbucket":return Gu(i.username,i.token,t.workspace,t.repoSlug,r,n,o,s);case"bitbucket-server":return Wu(i.token,a,t.projectKey,t.repoSlug,r,n,o,s);default:return}}function Pr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function xa(e,t){let r=Fa(e),n=We(e);if(r)return Zt(e)?!0:(console.log(z(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Oe(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(z(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log($(" To preserve this work, push it manually:")),console.log($(` git push -u origin ${e}`)),console.log($(" Then re-run /clancy:once to continue.")),!1;try{if(yl("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),yl("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),Ve(e))console.log(O(` \u2713 Created epic branch ${e}`));else return console.log(z(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Oe(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function ka(e,t,r,n,o,s=!1,i,a){if(!Ve(r)){console.log(z(`\u26A0 Could not push ${r} to origin.`)),console.log($(" The branch is still available locally. Push manually:")),console.log($(` git push -u origin ${r}`)),s||C(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,i),N(n);let y=Ce(Date.now()-o);return console.log(""),console.log(z(`\u26A0 ${t.key} implemented but push failed`)+$(` (${y})`)),!1}console.log(O(` \u2713 Pushed ${r}`));let l;try{let y=Jg(process.cwd(),".clancy","verify-attempt.txt"),b=qg(y,"utf8").trim(),v=parseInt(b,10);v>0&&(l=`Verification checks did not fully pass (${v} attempt(s)). Review carefully.`)}catch{}let p=D(e).CLANCY_GIT_PLATFORM,f=Se(p),m=`feat(${t.key}): ${t.title}`,h=Tr(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,l);if(f.host!=="none"&&f.host!=="unknown"&&f.host!=="azure"){let y=await kt(e,f,r,n,m,h);if(y?.ok)console.log(O(` \u2713 PR created: ${y.url}`)),s||C(process.cwd(),t.key,t.title,"PR_CREATED",y.number,i);else if(y&&!y.ok&&y.alreadyExists)console.log(z(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i);else if(y&&!y.ok){console.log(z(` \u26A0 PR/MR creation failed: ${y.error}`));let b=Pr(f,r,n);console.log(b?$(` Create one manually: ${b}`):$(" Branch pushed \u2014 create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}else{let b=Pr(f,r,n);console.log(b?$(` Create a PR: ${b}`):$(" Branch pushed to remote. Create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}}else f.host==="none"?(console.log(z(`\u26A0 No git remote configured. Branch available locally: ${r}`)),s||C(process.cwd(),t.key,t.title,"LOCAL",void 0,i)):(console.log($(" Branch pushed to remote. Create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i));if(e.provider!=="github"&&a){let y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;y&&await a.transitionTicket(t,y)}return N(n),!0}async function bl(e,t,r,n,o,s){console.log(""),console.log(O(`\u{1F389} All children of ${t} are done!`)),console.log($(` Creating epic PR: ${n} \u2192 ${o}`));let i=q(process.cwd(),"PR_CREATED"),a=q(process.cwd(),"DONE"),u=q(process.cwd(),"REWORK"),l=q(process.cwd(),"PUSHED"),p=[...i,...a,...u,...l].filter(J=>J.parent===t),f=D(e).CLANCY_GIT_PLATFORM,m=Se(f),h=`feat(${t}): ${r}`,y=qu(t,r,p,e.provider);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(z("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log($(` Push manually: git push origin ${n}`)),console.log($(` Then create a PR targeting ${o}`)),!1;let b=await kt(e,m,n,o,h,y);if(b?.ok){if(console.log(O(` \u2713 Epic PR created: ${b.url}`)),C(process.cwd(),t,r,"EPIC_PR_CREATED",b.number),e.provider!=="github"&&s){let J=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;J&&await s.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},J)}return!0}if(b&&!b.ok&&b.alreadyExists)return console.log(z(` \u26A0 An epic PR already exists for ${n}.`)),C(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(z(`\u26A0 Epic PR creation failed: ${b?.error??"unknown error"}`)),console.log($(" Create it manually:")),console.log($(` Branch: ${n} \u2192 ${o}`));let v=Pr(m,n,o);return v&&console.log($(` ${v}`)),!1}async function _l(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=e.baseBranch,i=e.hasParent,a=e.isRework??!1;e.originalBranch=Ua();let u=!1;if(i&&!a){let p=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId);p&&p.total===1&&(u=!0)}e.skipEpicBranch=u;let l=i&&!u?o:s;if(e.effectiveTarget=l,a){if(i&&!u){if(!xa(o,s))return e.originalBranch&&N(e.originalBranch),!1}else Gr(l,s);Zt(n)?N(n):(N(l),N(n,!0))}else if(i&&!u){if(!xa(o,s))return e.originalBranch&&N(e.originalBranch),!1;N(o),N(n,!0)}else Gr(s,s),N(s),N(n,!0);try{Ka(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:l,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log($(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function Kg(e){return e.includes("hooks.slack.com")}function Yg(e){return JSON.stringify({text:e})}function Gg(e){return JSON.stringify({type:"message",attachments:[{contentType:"application/vnd.microsoft.card.adaptive",content:{$schema:"http://adaptivecards.io/schemas/adaptive-card.json",type:"AdaptiveCard",version:"1.4",body:[{type:"TextBlock",text:e,wrap:!0}]}}]})}async function wl(e,t){let r=Kg(e)?Yg(t):Gg(t);try{let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r});n.ok||console.warn(`\u26A0 Notification failed: HTTP ${n.status}`)}catch{console.warn("\u26A0 Notification failed: could not reach webhook")}}async function $l(e){let t=e.config,r=e.ticket,n=Ce(Date.now()-e.startTime);console.log(""),console.log(O(`\u{1F3C1} ${r.key} complete`)+$(` (${n})`)),console.log($(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await wl(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as Wg,mkdirSync as Vg}from"node:fs";import{dirname as Qg,join as Xg}from"node:path";function xl(e,t,r,n=6600){let o=Xg(e,".clancy","costs.log");Vg(Qg(o),{recursive:!0});let s=new Date(r).getTime(),i=Date.now(),a=Number.isNaN(s)?0:Math.max(0,i-s),u=Math.round(a/6e4),l=Math.round(u*n),f=`${new Date().toISOString()} | ${t} | ${u}min | ~${l} tokens (estimated)
47
+ `;Wg(o,f,"utf8")}function kl(e){let t=e.config,r=e.ticket;try{let n=Dt(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");xl(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}import{mkdirSync as ey,readFileSync as ty,renameSync as ry,writeFileSync as ny}from"node:fs";import{join as Sl}from"node:path";function vl(e){return Sl(e,".clancy","quality.json")}function zl(e){try{let t=ty(vl(e),"utf8"),r=JSON.parse(t);if(r&&typeof r.tickets=="object"&&r.tickets!==null&&!Array.isArray(r.tickets))return Sa(r),r}catch{}return{tickets:{},summary:{totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0}}}function Sa(e){let t=Object.values(e.tickets),r=t.length;if(r===0){e.summary={totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0};return}let n=0,o=0,s=0,i=0;for(let a of t)n+=a.reworkCycles,o+=a.verificationRetries,a.duration!=null&&(s+=a.duration,i++);e.summary={totalTickets:r,avgReworkCycles:Math.round(n/r*100)/100,avgVerificationRetries:Math.round(o/r*100)/100,avgDuration:i>0?Math.round(s/i*100)/100:0}}function Tl(e,t){let r=vl(e),n=r+".tmp";ey(Sl(e,".clancy"),{recursive:!0}),ny(n,JSON.stringify(t,null,2)+`
48
+ `,"utf8"),ry(n,r)}function Il(e,t){return e.tickets[t]||(e.tickets[t]={reworkCycles:0,verificationRetries:0}),e.tickets[t]}function Pl(e,t){try{let r=zl(e),n=Il(r,t);n.reworkCycles++,Sa(r),Tl(e,r)}catch{}}function Al(e,t,r){try{let n=zl(e),o=Il(n,t);o.deliveredAt=new Date().toISOString(),o.duration=r,Sa(n),Tl(e,n)}catch{}}var oy=c.object({login:c.string()}),sy=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,Ar;function Er(e){return sy.test(e)}async function Rl(e,t){return Ir(`${Z}/repos/${t}`,M(e),{401:"\u2717 GitHub auth failed \u2014 check GITHUB_TOKEN",403:"\u2717 GitHub permission denied",404:`\u2717 GitHub repo "${t}" not found`},"\u2717 Could not reach GitHub \u2014 check network")}async function Rr(e,t){if(Ar)return Ar;try{let r=await fetch(`${t??Z}/user`,{headers:M(e)});if(!r.ok){let s=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${s}`),"@me"}let n=await r.json(),o=oy.safeParse(n);if(o.success)return Ar=o.data.login,Ar;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function Cl(e,t,r,n,o,s=5){let i,a=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&a.set("labels",r);try{i=await fetch(`${Z}/repos/${t}/issues?${a}`,{headers:M(e)})}catch(f){return console.warn(`\u26A0 GitHub API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let l=nl.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${l.error.message}`),[];let p=l.data.filter(f=>!f.pull_request);return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`#${f.number}`,title:f.title,description:f.body??"",provider:"github",milestone:f.milestone?.title,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function Nl(e,t,r,n){if(!Er(t))return!1;let o=/Blocked by #(\d+)/gi,s=new Set,i;for(;(i=o.exec(n))!==null;){let a=parseInt(i[1],10);!Number.isNaN(a)&&a!==r&&s.add(a)}if(!s.size)return!1;try{for(let a of s){let u=await fetch(`${Z}/repos/${t}/issues/${a}`,{headers:M(e)});if(!u.ok)continue;if((await u.json()).state!=="closed")return!0}return!1}catch{return!1}}async function Ol(e,t,r){if(Er(t))try{let n=await El(e,t,`Epic: #${r}`);return n&&n.total>0?n:await El(e,t,`Parent: #${r}`)}catch{return}}async function El(e,t,r){let n=M(e),o=`"${r}" repo:${t} is:issue`,s=new URLSearchParams({q:o,per_page:"1"}),i=await fetch(`${Z}/search/issues?${s}`,{headers:n});if(!i.ok)return;let u=(await i.json()).total_count??0;if(u===0)return{total:0,incomplete:0};let l=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:l,per_page:"1"}),f=await fetch(`${Z}/search/issues?${p}`,{headers:n});if(!f.ok)return{total:u,incomplete:u};let h=(await f.json()).total_count??0;return{total:u,incomplete:h}}function Cr(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function Nr(e,t,r){return r?e==="github"?`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`:`epic/${r.toLowerCase()}`:t}async function Ll(e){let t=q(process.cwd(),"PR_CREATED"),r=q(process.cwd(),"REWORK"),n=q(process.cwd(),"PUSHED"),o=q(process.cwd(),"PUSH_FAILED"),s=[...t,...r,...n,...o];if(s.length===0)return;let i=D(e).CLANCY_GIT_PLATFORM,a=Se(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure")return;let u=xt(e,a);if(!u)return;let l=$t(a,D(e).CLANCY_GIT_API_URL);if(!l)return;let p;if(a.host==="github")try{p=await Rr(u.token,l)}catch{}let f=s.slice(0,5);for(let m of f){let h=Cr(e.provider,m.key),y;if(m.timestamp){let v=new Date(m.timestamp.replace(" ","T")+"Z");y=Number.isNaN(v.getTime())?void 0:v.toISOString()}let b;switch(a.host){case"github":b=await il(u.token,`${a.owner}/${a.repo}`,h,a.owner,l,y,p);break;case"gitlab":b=await hl(u.token,l,a.projectPath,h,y);break;case"bitbucket":b=await Xu(u.username,u.token,a.workspace,a.repoSlug,h,y);break;case"bitbucket-server":b=await tl(u.token,l,a.projectKey,a.repoSlug,h,y);break}if(b?.changesRequested){let v=[],J;switch(a.host){case"github":v=await al(u.token,`${a.owner}/${a.repo}`,b.prNumber,l,y,p);break;case"gitlab":{let R=await gl(u.token,l,a.projectPath,b.prNumber,y);v=R.comments,J=R.discussionIds;break}case"bitbucket":v=await el(u.username,u.token,a.workspace,a.repoSlug,b.prNumber,y);break;case"bitbucket-server":v=await rl(u.token,l,a.projectKey,a.repoSlug,b.prNumber,y);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:v,prNumber:b.prNumber,discussionIds:J,reviewers:b.reviewers??[]}}}}function iy(e){if(e.length===0)return"[clancy] Rework pushed addressing reviewer feedback.";let t=e.length,r=e.slice(0,3).map(o=>`- ${o.slice(0,80)}`).join(`
48
49
  `),n=e.length>3?`
49
50
  - ...`:"";return`[clancy] Rework pushed addressing ${t} feedback item${t!==1?"s":""}.
50
51
 
51
- ${r}${n}`}async function Vu(e,t,r,n,o){let i=M(e).CLANCY_GIT_PLATFORM,s=ye(i);if(s.host==="none"||s.host==="unknown"||s.host==="azure")return;let c=bt(e,s);if(!c)return;let a=_t(s,M(e).CLANCY_GIT_API_URL);if(!a)return;let u=Ph(r);try{let p=!1;switch(s.host){case"github":p=await Au(c.token,`${s.owner}/${s.repo}`,t,u,a);break;case"gitlab":p=await Nu(c.token,a,s.projectPath,t,u);break;case"bitbucket":p=await yu(c.username,c.token,s.workspace,s.repoSlug,t,u);break;case"bitbucket-server":p=await $u(c.token,a,s.projectKey,s.repoSlug,t,u);break}p&&console.log(x(" \u2713 Posted rework comment"))}catch{}if(s.host==="gitlab"&&n&&n.length>0)try{let p=await Lu(c.token,a,s.projectPath,t,n);p>0&&console.log(x(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(s.host==="github"&&o&&o.length>0)try{await Tu(c.token,`${s.owner}/${s.repo}`,t,o,a)&&console.log(x(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function Wu(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,i=e.hasParent,s=e.skipEpicBranch??!1,c=e.isRework??!1,a=i&&!s?r.parentInfo:void 0;if(c){if(!await ic(t,r,n,o,e.startTime,!0,a,e.board))return C(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,a),!1;C(e.cwd,r.key,r.title,"REWORK",e.reworkPrNumber,a),e.reworkPrNumber!=null&&await Vu(t,e.reworkPrNumber,e.prFeedback??[],e.reworkDiscussionIds,e.reworkReviewers)}else if(!await ic(t,r,n,o,e.startTime,!1,a,e.board))return!1;return!0}function Qu(e){if(!e.dryRun)return!0;let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(S("\u2500\u2500 Dry Run \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(` Ticket: ${Ae(`[${r.key}]`)} ${r.title}`),e.isRework&&console.log(" Mode: Rework"),console.log(` ${i}:${" ".repeat(14-i.length)}${r.parentInfo}`),t.provider!=="github"&&console.log(` Blockers: ${r.blockers}`),console.log(` Target branch: ${n} \u2192 ${o}`),r.description&&console.log(` Description: ${r.description}`),console.log(S("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(x(" No changes made. Remove --dry-run to run for real.")),!1}async function Xu(e){let t=e.config,r=e.board;try{let n=J(e.cwd,"PR_CREATED"),o=J(e.cwd,"REWORK"),i=J(e.cwd,"PUSHED"),s=[...n,...o,...i],c=new Set(J(e.cwd,"EPIC_PR_CREATED").map(p=>p.key)),a=new Set(s.map(p=>p.parent).filter(p=>!!p).filter(p=>!c.has(p))),u=t.env.CLANCY_BASE_BRANCH??"main";for(let p of a){let d=await r.fetchChildrenStatus(p);if(d&&d.incomplete===0&&d.total>0){let m=wr(t.provider,u,p),h=await Bu(t,p,p,m,u,r);console.log(h?N(` \u2713 Epic ${p} complete \u2014 PR created`):S(`\u26A0 Epic PR creation failed for ${p}. Create manually:
52
+ ${r}${n}`}async function Zl(e,t,r,n,o){let s=D(e).CLANCY_GIT_PLATFORM,i=Se(s);if(i.host==="none"||i.host==="unknown"||i.host==="azure")return;let a=xt(e,i);if(!a)return;let u=$t(i,D(e).CLANCY_GIT_API_URL);if(!u)return;let l=iy(r);try{let p=!1;switch(i.host){case"github":p=await cl(a.token,`${i.owner}/${i.repo}`,t,l,u);break;case"gitlab":p=await dl(a.token,u,i.projectPath,t,l);break;case"bitbucket":p=await Vu(a.username,a.token,i.workspace,i.repoSlug,t,l);break;case"bitbucket-server":p=await Qu(a.token,u,i.projectKey,i.repoSlug,t,l);break}p&&console.log($(" \u2713 Posted rework comment"))}catch{}if(i.host==="gitlab"&&n&&n.length>0)try{let p=await ml(a.token,u,i.projectPath,t,n);p>0&&console.log($(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(i.host==="github"&&o&&o.length>0)try{await ul(a.token,`${i.owner}/${i.repo}`,t,o,u)&&console.log($(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function jl(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,s=e.hasParent,i=e.skipEpicBranch??!1,a=e.isRework??!1,u=s&&!i?r.parentInfo:void 0;if(a){if(!await ka(t,r,n,o,e.startTime,!0,u,e.board))return C(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,u),!1;C(e.cwd,r.key,r.title,"REWORK",e.reworkPrNumber,u),Pl(e.cwd,r.key),e.reworkPrNumber!=null&&await Zl(t,e.reworkPrNumber,e.prFeedback??[],e.reworkDiscussionIds,e.reworkReviewers)}else{if(!await ka(t,r,n,o,e.startTime,!1,u,e.board))return!1;Al(e.cwd,r.key,Date.now()-e.startTime)}return!0}function Dl(e){if(!e.dryRun)return!0;let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(z("\u2500\u2500 Dry Run \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(` Ticket: ${Ne(`[${r.key}]`)} ${r.title}`),e.isRework&&console.log(" Mode: Rework"),console.log(` ${s}:${" ".repeat(14-s.length)}${r.parentInfo}`),t.provider!=="github"&&console.log(` Blockers: ${r.blockers}`),console.log(` Target branch: ${n} \u2192 ${o}`),r.description&&console.log(` Description: ${r.description}`),console.log(z("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log($(" No changes made. Remove --dry-run to run for real.")),!1}async function Ml(e){let t=e.config,r=e.board;try{let n=q(e.cwd,"PR_CREATED"),o=q(e.cwd,"REWORK"),s=q(e.cwd,"PUSHED"),i=[...n,...o,...s],a=new Set(q(e.cwd,"EPIC_PR_CREATED").map(p=>p.key)),u=new Set(i.map(p=>p.parent).filter(p=>!!p).filter(p=>!a.has(p))),l=t.env.CLANCY_BASE_BRANCH??"main";for(let p of u){let f=await r.fetchChildrenStatus(p);if(f&&f.incomplete===0&&f.total>0){let m=Nr(t.provider,l,p),h=await bl(t,p,p,m,l,r);console.log(h?O(` \u2713 Epic ${p} complete \u2014 PR created`):z(`\u26A0 Epic PR creation failed for ${p}. Create manually:
52
53
  git push origin ${m}
53
- Then create a PR targeting ${u}`))}}}catch{}return!0}import{spawnSync as el}from"node:child_process";function tl(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=el("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function rl(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=el("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}function Ih(e){return["You are evaluating whether a ticket can be implemented as pure code changes in a repository.","",`Ticket: [${e.key}] ${e.title}`,"Description:",e.description,"","Can this ticket be completed entirely through code changes committed to a git repository?","","Answer INFEASIBLE if the ticket requires ANY of:","- Manual testing or configuration in external tools or admin panels","- Access to external services, APIs, or platforms not available in the codebase","- Physical, hardware, or infrastructure changes","- Design assets that do not yet exist","- Deployment or infrastructure changes outside the repository","- Human judgment calls that require stakeholder input","","Answer with exactly one line in this format:","FEASIBLE","or","INFEASIBLE: one-line reason","","Do not include any other text."].join(`
54
- `)}function Eh(e){let t=e.trim().split(`
55
- `).pop()?.trim()??"";return/^INFEASIBLE/i.test(t)?{feasible:!1,reason:t.replace(/^INFEASIBLE:?\s*/i,"").trim()||void 0}:{feasible:!0}}function nl(e,t){let r=Ih(e),{stdout:n,ok:o}=tl(r,t);return o?Eh(n):{feasible:!0}}function ol(e){let t=e.config,r=e.ticket;if(!e.isRework&&!e.skipFeasibility){console.log(x(" Checking feasibility..."));let n=nl({key:r.key,title:r.title,description:r.description},t.env.CLANCY_MODEL);if(!n.feasible){let o=n.reason??"not implementable as code changes";return console.log(S(`\u23ED\uFE0F Ticket skipped [${r.key}]: ${o}`)),C(e.cwd,r.key,r.title,"SKIPPED"),!1}console.log(N(" \u2713 Feasibility check passed"))}return console.log(""),!0}var il=`
54
+ Then create a PR targeting ${l}`))}}}catch{}return!0}import{spawnSync as Bl}from"node:child_process";function Ul(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Bl("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function Fl(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Bl("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}function ay(e){return["You are evaluating whether a ticket can be implemented as pure code changes in a repository.","",`Ticket: [${e.key}] ${e.title}`,"Description:",e.description,"","Can this ticket be completed entirely through code changes committed to a git repository?","","Answer INFEASIBLE if the ticket requires ANY of:","- Manual testing or configuration in external tools or admin panels","- Access to external services, APIs, or platforms not available in the codebase","- Physical, hardware, or infrastructure changes","- Design assets that do not yet exist","- Deployment or infrastructure changes outside the repository","- Human judgment calls that require stakeholder input","","Answer with exactly one line in this format:","FEASIBLE","or","INFEASIBLE: one-line reason","","Do not include any other text."].join(`
55
+ `)}function cy(e){let t=e.trim().split(`
56
+ `).pop()?.trim()??"";return/^INFEASIBLE/i.test(t)?{feasible:!1,reason:t.replace(/^INFEASIBLE:?\s*/i,"").trim()||void 0}:{feasible:!0}}function Hl(e,t){let r=ay(e),{stdout:n,ok:o}=Ul(r,t);return o?cy(n):{feasible:!0}}function ql(e){let t=e.config,r=e.ticket;if(!e.isRework&&!e.skipFeasibility){console.log($(" Checking feasibility..."));let n=Hl({key:r.key,title:r.title,description:r.description},t.env.CLANCY_MODEL);if(!n.feasible){let o=n.reason??"not implementable as code changes";return console.log(z(`\u23ED\uFE0F Ticket skipped [${r.key}]: ${o}`)),C(e.cwd,r.key,r.title,"SKIPPED"),!1}console.log(O(" \u2713 Feasibility check passed"))}return console.log(""),!0}var Jl=`
56
57
  ## Test-Driven Development
57
58
 
58
59
  You MUST follow the red-green-refactor cycle for every behaviour change:
@@ -66,7 +67,7 @@ You MUST follow the red-green-refactor cycle for every behaviour change:
66
67
 
67
68
  Repeat for each behaviour. Do not write implementation code without a failing test first.
68
69
  Design interfaces for testability \u2014 prefer pure functions and thin boundaries
69
- so modules are easy to test in isolation.`;function Ah(e){switch(e){case"jira":return"Jira ticket";case"github":return"GitHub Issue";case"linear":return"Linear issue"}}function Th(e){return e==="github"?"Milestone":"Epic"}function sl(e){let t=e.feedbackComments.length>0?e.feedbackComments.map((n,o)=>`${o+1}. ${n}`).join(`
70
+ so modules are easy to test in isolation.`;function uy(e){switch(e){case"jira":return"Jira ticket";case"github":return"GitHub Issue";case"linear":return"Linear issue";case"shortcut":return"Shortcut story";case"notion":return"Notion page";case"azdo":return"Azure DevOps work item"}}function ly(e){return e==="github"?"Milestone":e==="notion"?"Parent page":"Epic"}function Kl(e){let t=e.feedbackComments.length>0?e.feedbackComments.map((n,o)=>`${o+1}. ${n}`).join(`
70
71
  `):"No reviewer comments found. Review the existing implementation and fix any issues.",r=e.previousContext?`
71
72
 
72
73
  ## Previous Implementation
@@ -82,7 +83,7 @@ ${e.description}
82
83
 
83
84
  ${t}${r}
84
85
 
85
- Address the specific feedback above. Don't re-implement unrelated areas. Focus only on what was flagged.${e.tdd?il:""}
86
+ Address the specific feedback above. Don't re-implement unrelated areas. Focus only on what was flagged.${e.tdd?Jl:""}
86
87
 
87
88
  Steps:
88
89
  1. Read core docs in .clancy/docs/: STACK.md, ARCHITECTURE.md, CONVENTIONS.md, GIT.md, DEFINITION-OF-DONE.md, CONCERNS.md
@@ -90,7 +91,7 @@ Steps:
90
91
  2. Follow the conventions in GIT.md exactly
91
92
  3. Fix the issues identified in the reviewer feedback
92
93
  4. Commit your work following the conventions in GIT.md
93
- 5. When done, confirm you are finished.`}function cl(e){let t=Ah(e.provider),r=Th(e.provider),n=e.blockers&&e.provider!=="github"?`
94
+ 5. When done, confirm you are finished.`}function Yl(e){let t=uy(e.provider),r=ly(e.provider),n=e.blockers&&e.provider!=="github"?`
94
95
  Blockers: ${e.blockers}`:"";return`You are implementing ${t} ${e.key}.
95
96
 
96
97
  ${e.provider==="github"?"Title":"Summary"}: ${e.title}
@@ -110,20 +111,20 @@ If you must SKIP this ${e.provider==="github"?"issue":"ticket"}:
110
111
  3. Append to .clancy/progress.txt: YYYY-MM-DD HH:MM | ${e.key} | {reason} | SKIPPED
111
112
  4. Stop \u2014 no branches, no file changes, no git operations.
112
113
 
113
- If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.tdd?il:""}
114
+ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.tdd?Jl:""}
114
115
  1. Read core docs in .clancy/docs/: STACK.md, ARCHITECTURE.md, CONVENTIONS.md, GIT.md, DEFINITION-OF-DONE.md, CONCERNS.md
115
116
  Also read if relevant to this ticket: INTEGRATIONS.md (external APIs/services/auth), TESTING.md (tests/specs/coverage), DESIGN-SYSTEM.md (UI/components/styles), ACCESSIBILITY.md (accessibility/ARIA/WCAG)
116
117
  2. Follow the conventions in GIT.md exactly
117
118
  3. Implement the ${e.provider==="github"?"issue":"ticket"} fully
118
119
  4. Commit your work following the conventions in GIT.md
119
- 5. When done, confirm you are finished.`}function al(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,i=t.env.CLANCY_TDD==="true",s;n?s=sl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:hc(o),tdd:i}):s=cl({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:i}),process.env.CLANCY_ONCE_ACTIVE="1";let c;try{c=rl(s,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return c?!0:(console.log(S("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as sc}from"node:child_process";import{existsSync as Rh,readFileSync as Ch}from"node:fs";import{join as Zh}from"node:path";function Nh(e){let t={};for(let r of e.split(`
120
- `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let i=n.slice(0,o).trim(),s=n.slice(o+1).trim();s.length>=2&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),t[i]=s}return t}function ul(e){let t=Zh(e,".clancy",".env");if(!Rh(t))return;let r=Ch(t,"utf8");return Nh(r)}function Lh(e){try{return sc("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function jh(){try{return sc("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function kr(e){for(let n of["claude","git"])if(!Lh(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=ul(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!jh())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{sc("git",["ls-remote","origin","HEAD"],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{r="\u26A0 Could not reach origin. PR creation and rework detection may not work."}if(kt()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
121
- ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_process";function ll(e){let t=e.ticketBranch;if(!Ye(t))return;let r;try{r=$t("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{Z(t)}catch{return}let n=!1,o=!1;try{n=kt()}catch{}try{o=$t("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=$t("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{Z(r)}catch{}if(!(!n&&!o))return{branch:t,hasUncommitted:n,hasUnpushed:o}}async function pl(e,t,r){try{if(Z(r.branch),r.hasUncommitted)try{$t("git",["add","-A"],{encoding:"utf8"}),$t("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(N(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(S(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!Ge(r.branch))return console.log(S(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(N(` \u2713 Pushed ${r.branch}`));let o=M(e).CLANCY_GIT_PLATFORM,i=ye(o),s=`feat(${t.ticketKey}): ${t.ticketTitle}`,c=mr(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(i.host!=="none"&&i.host!=="unknown"&&i.host!=="azure"){let a=await yt(e,i,r.branch,t.targetBranch,s,c);a?.ok?(console.log(N(` \u2713 PR created: ${a.url}`)),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",a.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log(x(" Branch pushed \u2014 create a PR manually.")),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{Z(t.targetBranch)}catch{}return!0}catch(n){return console.log(S(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function fl(e){let t=St(e.cwd);if(!t)return!0;if(!yc(t))return console.log(S(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log(x(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),Pt(e.cwd),It(e.cwd);try{let r=ll(t);if(r)if(e.isAfk){console.log(S(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=kr(e.cwd);if(n.ok){let o=dr(n.env);if(typeof o!="string"&&await pl(o,t,r))return console.log(N(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(S(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log(x(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}function dl(e){return{async ping(){return Ku(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!br(e.GITHUB_REPO))return"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await Je(e.GITHUB_TOKEN);return(await yr(e.GITHUB_TOKEN,e.GITHUB_REPO,e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??"none",blockers:"None"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:$r(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t){let r=parseInt(t.replace("#",""),10);if(!Number.isNaN(r))return Hu(e.GITHUB_TOKEN,e.GITHUB_REPO,r)},async transitionTicket(){return!1},async ensureLabel(t){try{let r=B(e.GITHUB_TOKEN),n=await fetch(`${j}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${j}/repos/${e.GITHUB_REPO}/labels`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({name:t,color:"0075ca"})});!o.ok&&o.status!==422&&console.warn(`\u26A0 ensureLabel create returned HTTP ${o.status}`)}else console.warn(`\u26A0 ensureLabel GET returned HTTP ${n.status}`)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=B(e.GITHUB_TOKEN),i=await fetch(`${j}/repos/${e.GITHUB_REPO}/issues/${n}/labels`,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({labels:[r]})});i.ok||console.warn(`\u26A0 addLabel returned HTTP ${i.status}`)}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=B(e.GITHUB_TOKEN),i=await fetch(`${j}/repos/${e.GITHUB_REPO}/issues/${n}/labels/${encodeURIComponent(r)}`,{method:"DELETE",headers:o});!i.ok&&i.status!==404&&console.warn(`\u26A0 removeLabel returned HTTP ${i.status}`)}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}var Oh=l.object({type:l.optional(l.object({name:l.optional(l.string())})),inwardIssue:l.optional(l.object({key:l.optional(l.string())}))}),Mh=l.object({summary:l.string(),description:l.optional(l.unknown()),issuelinks:l.optional(l.array(Oh)),parent:l.optional(l.object({key:l.optional(l.string())})),customfield_10014:l.optional(l.nullable(l.string())),labels:l.optional(l.array(l.string()))}),Bh=l.object({key:l.string(),fields:Mh}),ml=l.object({total:l.optional(l.number()),isLast:l.optional(l.boolean()),issues:l.array(Bh)}),Dh=l.object({id:l.string(),name:l.string()}),hl=l.object({transitions:l.array(Dh)}),Uh=l.object({type:l.optional(l.object({name:l.optional(l.string())})),inwardIssue:l.optional(l.object({key:l.optional(l.string()),fields:l.optional(l.object({status:l.optional(l.object({statusCategory:l.optional(l.object({key:l.optional(l.string())}))}))}))}))}),gl=l.object({fields:l.optional(l.object({issuelinks:l.optional(l.array(Uh))}))}),cc=l.object({fields:l.optional(l.object({labels:l.optional(l.array(l.string()))}))});var Fh=/^[a-zA-Z0-9 _\-'.]+$/,ac=/^[A-Z][A-Z0-9]+-\d+$/;function xt(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function wt(e){return Fh.test(e)}async function bl(e,t,r){return hr(`${e}/rest/api/3/project/${t}`,$e(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function Jh(e,t,r,n,o){let i=[`project="${e}"`];return r&&i.push("sprint in openSprints()"),n&&i.push(`labels = "${n}"`),o&&i.push('labels != "clancy:hitl"'),i.push("assignee=currentUser()"),i.push(`status="${t}"`),i.join(" AND ")+" ORDER BY priority ASC"}function Yh(e){if(!e||typeof e!="object")return"";let t=[];function r(n){if(typeof n=="string"){t.push(n);return}if(Array.isArray(n)){for(let o of n)r(o);return}if(n&&typeof n=="object")for(let o of Object.values(n))r(o)}return r(e),t.join(" ")}async function vr(e,t,r,n,o,i,s,c=5){let a=Jh(r,n,o,i,s),u;try{u=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:a,maxResults:c,fields:["summary","description","issuelinks","parent","customfield_10014","labels"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!u.ok)return console.warn(`\u26A0 Jira API returned HTTP ${u.status}`),[];let p;try{p=await u.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let d=ml.safeParse(p);return d.success?d.data.issues.map(m=>{let h=m.fields,b=(h.issuelinks??[]).filter(z=>z.type?.name==="Blocks"&&z.inwardIssue?.key).map(z=>z.inwardIssue?.key).filter(z=>!!z),_=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Yh(h.description),provider:"jira",epicKey:_,blockers:b,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${d.error.message}`),[])}async function zr(e,t,r){if(!ac.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:$e(t)});if(!n.ok)return!1;let o=await n.json(),i=gl.safeParse(o);return i.success?(i.data.fields?.issuelinks??[]).some(c=>{if(c.type?.name!=="Blocks"||!c.inwardIssue?.key)return!1;let a=c.inwardIssue.fields?.status?.statusCategory?.key;return a?a!=="done":!1}):!1}catch{return!1}}async function yl(e,t,r){if(ac.test(r))try{let n=r.split("-")[0],o=await _l(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await _l(e,t,`parent = ${r}`)}catch{return}}async function _l(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let i=(await n.json()).total??0;if(i===0)return{total:0,incomplete:0};let s=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!s.ok)return;let a=(await s.json()).total??0;return{total:i,incomplete:a}}async function Gh(e,t,r,n){if(!ac.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:$e(t)})}catch(a){console.warn(`\u26A0 Jira transitions request failed: ${a instanceof Error?a.message:String(a)}`);return}if(!o.ok)return;let i;try{i=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let s=hl.safeParse(i);if(!s.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${s.error.message}`);return}return s.data.transitions.find(a=>a.name===n)?.id}async function $l(e,t,r,n){try{let o=await Gh(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}function xl(e){let t=xt(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return bl(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!wt(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!wt(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!wt(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!wt(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){return(await vr(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,e.CLANCY_LABEL,r.excludeHitl)).map(o=>{let i=o.blockers.length?`Blocked by: ${o.blockers.join(", ")}`:"None";return{key:o.key,title:o.title,description:o.description,parentInfo:o.epicKey??"none",blockers:i}})},async fetchBlockerStatus(r){return zr(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return yl(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await $l(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){},async addLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 addLabel GET failed: HTTP ${o.status}`);return}let s=cc.parse(await o.json()).fields?.labels??[];if(s.includes(n))return;let c=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:[...s,n]}})});c.ok||console.warn(`\u26A0 addLabel PUT returned HTTP ${c.status}`)}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 removeLabel GET failed: HTTP ${o.status}`);return}let s=cc.parse(await o.json()).fields?.labels??[];if(!s.includes(n))return;let c=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:s.filter(a=>a!==n)}})});c.ok||console.warn(`\u26A0 removeLabel PUT returned HTTP ${c.status}`)}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Kh=l.object({id:l.string(),identifier:l.string(),title:l.string(),description:l.optional(l.nullable(l.string())),parent:l.optional(l.nullable(l.object({identifier:l.string(),title:l.optional(l.string())}))),labels:l.optional(l.object({nodes:l.array(l.object({name:l.string()}))}))}),wl=l.object({data:l.optional(l.object({viewer:l.optional(l.object({assignedIssues:l.optional(l.object({nodes:l.array(Kh)}))}))}))}),kl=l.object({data:l.optional(l.object({viewer:l.optional(l.object({id:l.optional(l.string())}))}))}),vl=l.object({data:l.optional(l.object({workflowStates:l.optional(l.object({nodes:l.array(l.object({id:l.string()}))}))}))}),zl=l.object({data:l.optional(l.object({issueUpdate:l.optional(l.object({success:l.optional(l.boolean())}))}))}),Hh=l.object({type:l.string(),relatedIssue:l.optional(l.object({state:l.optional(l.object({type:l.optional(l.string())}))}))}),Sl=l.object({data:l.optional(l.object({issue:l.optional(l.object({relations:l.optional(l.object({nodes:l.array(Hh)}))}))}))}),qh=l.object({state:l.optional(l.object({type:l.optional(l.string())}))}),Pl=l.object({data:l.optional(l.object({issueSearch:l.optional(l.object({nodes:l.array(qh)}))}))}),Il=l.object({data:l.optional(l.object({team:l.optional(l.object({labels:l.optional(l.object({nodes:l.array(l.object({id:l.string(),name:l.string()}))}))}))}))}),El=l.object({data:l.optional(l.object({issueLabels:l.optional(l.object({nodes:l.array(l.object({id:l.string(),name:l.string()}))}))}))}),Al=l.object({data:l.optional(l.object({issueLabelCreate:l.optional(l.object({issueLabel:l.optional(l.object({id:l.string()})),success:l.optional(l.boolean())}))}))}),uc=l.object({data:l.optional(l.object({issueSearch:l.optional(l.object({nodes:l.array(l.object({id:l.string(),labels:l.optional(l.object({nodes:l.array(l.object({id:l.string(),name:l.optional(l.string())}))}))}))}))}))});var Vh=/^[a-zA-Z0-9_-]+$/,Tl="https://api.linear.app/graphql";function Rl(e){return Vh.test(e)}async function q(e,t,r){let n;try{n=await fetch(Tl,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:r})})}catch(o){console.warn(`\u26A0 Linear API request failed: ${o instanceof Error?o.message:String(o)}`);return}if(!n.ok){console.warn(`\u26A0 Linear API returned HTTP ${n.status}`);return}try{return await n.json()}catch{console.warn("\u26A0 Linear API returned invalid JSON");return}}async function Cl(e){let t;try{t=await fetch(Tl,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:"{ viewer { id } }"})})}catch{return{ok:!1,error:"\u2717 Could not reach Linear \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}:{ok:!1,error:`\u2717 Linear API returned HTTP ${t.status}`};try{let r=await t.json(),n=kl.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Sr(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,i=o?"labels: { name: { eq: $label } }":"",s=["$teamId: String!",...o?["$label: String!"]:[]],c=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",i].filter(Boolean),a=`
122
- query(${s.join(", ")}) {
120
+ 5. When done, confirm you are finished.`}function Gl(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,s=t.env.CLANCY_TDD==="true",i;n?i=Kl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:Ha(o),tdd:s}):i=Yl({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:s}),process.env.CLANCY_ONCE_ACTIVE="1";let a;try{a=Fl(i,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return a?!0:(console.log(z("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as va}from"node:child_process";import{existsSync as py,readFileSync as fy}from"node:fs";import{join as dy}from"node:path";function my(e){let t={};for(let r of e.split(`
121
+ `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();i.length>=2&&(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),t[s]=i}return t}function Wl(e){let t=dy(e,".clancy",".env");if(!py(t))return;let r=fy(t,"utf8");return my(r)}function hy(e){try{return va("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function gy(){try{return va("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function Or(e){for(let n of["claude","git"])if(!hy(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=Wl(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!gy())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{va("git",["ls-remote","origin","HEAD"],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{r="\u26A0 Could not reach origin. PR creation and rework detection may not work."}if(Lt()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
122
+ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_process";function Vl(e){let t=e.ticketBranch;if(!We(t))return;let r;try{r=St("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{N(t)}catch{return}let n=!1,o=!1;try{n=Lt()}catch{}try{o=St("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=St("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{N(r)}catch{}if(!(!n&&!o))return{branch:t,hasUncommitted:n,hasUnpushed:o}}async function Ql(e,t,r){try{if(N(r.branch),r.hasUncommitted)try{St("git",["add","-A"],{encoding:"utf8"}),St("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(O(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(z(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!Ve(r.branch))return console.log(z(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(O(` \u2713 Pushed ${r.branch}`));let o=D(e).CLANCY_GIT_PLATFORM,s=Se(o),i=`feat(${t.ticketKey}): ${t.ticketTitle}`,a=Tr(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(s.host!=="none"&&s.host!=="unknown"&&s.host!=="azure"){let u=await kt(e,s,r.branch,t.targetBranch,i,a);u?.ok?(console.log(O(` \u2713 PR created: ${u.url}`)),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",u.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log($(" Branch pushed \u2014 create a PR manually.")),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{N(t.targetBranch)}catch{}return!0}catch(n){return console.log(z(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function Xl(e){let t=Dt(e.cwd);if(!t)return!0;if(!Ya(t))return console.log(z(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log($(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),Mt(e.cwd),Bt(e.cwd);try{let r=Vl(t);if(r)if(e.isAfk){console.log(z(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=Or(e.cwd);if(n.ok){let o=zr(n.env);if(typeof o!="string"&&await Ql(o,t,r))return console.log(O(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(z(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log($(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}var za=c.object({id:c.number(),url:c.optional(c.string())}),ep=c.object({workItems:c.array(za)}),yy=c.object({rel:c.string(),url:c.string(),attributes:c.optional(c.object({name:c.optional(c.string())}))}),by=c.object({"System.Title":c.optional(c.string()),"System.Description":c.optional(c.nullable(c.string())),"System.State":c.optional(c.string()),"System.Tags":c.optional(c.nullable(c.string())),"System.AssignedTo":c.optional(c.nullable(c.object({displayName:c.optional(c.string()),uniqueName:c.optional(c.string())}))),"System.WorkItemType":c.optional(c.string())}),Ta=c.object({id:c.number(),fields:by,relations:c.optional(c.nullable(c.array(yy)))}),tp=c.object({value:c.array(Ta),count:c.optional(c.number())}),rp=c.object({id:c.string(),name:c.string(),state:c.optional(c.string())}),_y=c.object({source:c.optional(c.nullable(za)),target:c.optional(c.nullable(za))}),np=c.object({workItemRelations:c.optional(c.array(_y))});var Ge="7.1";function op(e){return`Basic ${btoa(`:${e}`)}`}function Tt(e){return!(e.includes("'")||e.includes("\\")||e.includes("--")||e.includes(";")||e.includes("/*")||/[^\x20-\x7E\t\n\r]/.test(e))}function vt(e){if(!Tt(e))throw new Error(`Unsafe WIQL value: ${e.slice(0,50)}`);return e}function It(e,t){return`https://dev.azure.com/${encodeURIComponent(e)}/${encodeURIComponent(t)}/_apis`}function Pt(e){return{Authorization:op(e),"Content-Type":"application/json"}}function wy(e){return{Authorization:op(e),"Content-Type":"application/json-patch+json"}}async function sp(e,t,r){let n;try{n=await fetch(`https://dev.azure.com/${encodeURIComponent(e)}/_apis/projects/${encodeURIComponent(t)}?api-version=${Ge}`,{headers:Pt(r)})}catch{return{ok:!1,error:"\u2717 Could not reach Azure DevOps \u2014 check network"}}if(!n.ok)return n.status===401||n.status===403?{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}:{ok:!1,error:`\u2717 Azure DevOps API returned HTTP ${n.status}`};try{let o=await n.json(),s=rp.safeParse(o);if(s.success&&s.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}}async function ip(e,t,r,n){try{let o=await fetch(`${It(e,t)}/wit/wiql?api-version=${Ge}`,{method:"POST",headers:Pt(r),body:JSON.stringify({query:n})});if(!o.ok)return console.warn(`\u26A0 Azure DevOps WIQL returned HTTP ${o.status}`),[];let s=await o.json(),i=ep.safeParse(s);return i.success?i.data.workItems.map(a=>a.id):(console.warn(`\u26A0 Unexpected Azure DevOps WIQL response: ${i.error.message}`),[])}catch(o){return console.warn(`\u26A0 Azure DevOps WIQL request failed: ${o instanceof Error?o.message:String(o)}`),[]}}async function Ia(e,t,r,n){if(!n.length)return[];let o=[];for(let s=0;s<n.length;s+=200){let a=n.slice(s,s+200).join(",");try{let u=await fetch(`${It(e,t)}/wit/workitems?ids=${a}&$expand=relations&api-version=${Ge}`,{headers:Pt(r)});if(!u.ok){console.warn(`\u26A0 Azure DevOps work items batch returned HTTP ${u.status}`);continue}let l=await u.json(),p=tp.safeParse(l);if(!p.success){console.warn(`\u26A0 Unexpected Azure DevOps work items response: ${p.error.message}`);continue}o.push(...p.data.value)}catch(u){console.warn(`\u26A0 Azure DevOps work items fetch failed: ${u instanceof Error?u.message:String(u)}`)}}return o}async function zt(e,t,r,n){try{let o=await fetch(`${It(e,t)}/wit/workitems/${n}?$expand=relations&api-version=${Ge}`,{headers:Pt(r)});if(!o.ok)return;let s=await o.json(),i=Ta.safeParse(s);return i.success?i.data:void 0}catch{return}}async function Lr(e,t,r,n,o){try{return(await fetch(`${It(e,t)}/wit/workitems/${n}?api-version=${Ge}`,{method:"PATCH",headers:wy(r),body:JSON.stringify(o)})).ok}catch{return!1}}function Zr(e){return e?e.split(";").map(t=>t.trim()).filter(Boolean):[]}function Pa(e){return e.join("; ")}function ap(e){let t=e.match(/workItems\/(\d+)/i);if(!t)return;let r=parseInt(t[1],10);return Number.isNaN(r)?void 0:r}async function cp(e,t,r,n,o,s,i=5){let a=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${vt(t)}' AND [System.State] = '${vt(n)}' AND [System.AssignedTo] = @Me`;o&&(a+=` AND [System.WorkItemType] = '${vt(o)}'`),a+=" ORDER BY [System.CreatedDate] ASC";let u=await ip(e,t,r,a);if(!u.length)return[];let l=u.slice(0,i*2),f=(await Ia(e,t,r,l)).map(m=>$y(m));return s&&(f=f.filter(m=>!m.labels?.some(h=>h==="clancy:hitl"))),f.slice(0,i)}function $y(e){let t=Zr(e.fields["System.Tags"]),r;if(e.relations){for(let n of e.relations)if(n.rel==="System.LinkTypes.Hierarchy-Reverse"){r=ap(n.url);break}}return{key:`azdo-${e.id}`,title:e.fields["System.Title"]??"",description:e.fields["System.Description"]??"",provider:"azdo",workItemId:e.id,parentId:r,labels:t}}var Aa=new Set(["Done","Closed","Completed","Resolved"]);async function up(e,t,r,n){try{let o=await zt(e,t,r,n);if(!o)return!1;let s=(o.relations??[]).filter(i=>i.rel==="System.LinkTypes.Dependency-Reverse");if(!s.length)return!1;for(let i of s){let a=ap(i.url);if(a===void 0)continue;let u=await zt(e,t,r,a);if(!u)continue;let l=u.fields["System.State"];if(!l||!Aa.has(l))return!0}return!1}catch{return!1}}async function lp(e,t,r,n,o){try{if(o){let s=`Epic: ${o}`,i=await xy(e,t,r,s);if(i&&i.total>0)return i}return await ky(e,t,r,n)}catch{return}}async function xy(e,t,r,n){try{let o=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${vt(t)}' AND [System.Description] CONTAINS '${vt(n)}'`,s=await ip(e,t,r,o);if(!s.length)return{total:0,incomplete:0};let i=await Ia(e,t,r,s),a=i.length,u=i.filter(l=>{let p=l.fields["System.State"];return!p||!Aa.has(p)}).length;return{total:a,incomplete:u}}catch{return}}async function ky(e,t,r,n){try{if(Number.isNaN(n))return;let o=`SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[System.Id] = ${n} AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' MODE (MustContain)`,s=await fetch(`${It(e,t)}/wit/wiql?api-version=${Ge}`,{method:"POST",headers:Pt(r),body:JSON.stringify({query:o})});if(!s.ok)return;let i=await s.json(),a=np.safeParse(i);if(!a.success)return;let l=(a.data.workItemRelations??[]).filter(h=>h.target?.id!==void 0&&h.target.id!==n).map(h=>h.target.id);if(!l.length)return{total:0,incomplete:0};let p=await Ia(e,t,r,l),f=p.length,m=p.filter(h=>{let y=h.fields["System.State"];return!y||!Aa.has(y)}).length;return{total:f,incomplete:m}}catch{return}}function pp(e){let t=e.AZDO_ORG,r=e.AZDO_PROJECT,n=e.AZDO_PAT,o=e.CLANCY_AZDO_STATUS??"New",s=e.CLANCY_AZDO_WIT;return{async ping(){return sp(t,r,n)},validateInputs(){if(!t.trim())return"\u2717 AZDO_ORG must not be empty";if(!r.trim())return"\u2717 AZDO_PROJECT must not be empty";if(!n.trim())return"\u2717 AZDO_PAT must not be empty";if(!Tt(r))return"\u2717 AZDO_PROJECT contains unsafe characters for WIQL queries";if(!Tt(o))return"\u2717 CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries";if(s&&!Tt(s))return"\u2717 CLANCY_AZDO_WIT contains unsafe characters for WIQL queries"},async fetchTicket(i){return(await this.fetchTickets(i))[0]},async fetchTickets(i){let a=await cp(t,r,n,o,s,i.excludeHitl);if(i.buildLabel){let u=i.buildLabel;a=a.filter(l=>l.labels?.includes(u))}return a.map(u=>({key:u.key,title:u.title,description:u.description,parentInfo:u.parentId?`azdo-${u.parentId}`:"none",blockers:"None",issueId:String(u.workItemId),labels:u.labels??[],status:o}))},async fetchBlockerStatus(i){let a=jr(i.key);return a===void 0?!1:up(t,r,n,a)},async fetchChildrenStatus(i,a){let u=a??i.replace("azdo-",""),l=parseInt(u,10);if(!Number.isNaN(l))return lp(t,r,n,l,i)},async transitionTicket(i,a){let u=jr(i.key);if(u===void 0)return!1;let l=await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.State",value:a}]);return l&&console.log(` \u2192 Transitioned to ${a}`),l},async ensureLabel(i){},async addLabel(i,a){try{let u=jr(i);if(u===void 0)return;let l=await zt(t,r,n,u);if(!l)return;let p=Zr(l.fields["System.Tags"]);if(p.includes(a))return;let f=[...p,a];await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Pa(f)}])}catch(u){console.warn(`\u26A0 addLabel failed: ${u instanceof Error?u.message:String(u)}`)}},async removeLabel(i,a){try{let u=jr(i);if(u===void 0)return;let l=await zt(t,r,n,u);if(!l)return;let p=Zr(l.fields["System.Tags"]);if(!p.includes(a))return;let f=p.filter(m=>m!==a);await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Pa(f)}])}catch(u){console.warn(`\u26A0 removeLabel failed: ${u instanceof Error?u.message:String(u)}`)}},sharedEnv(){return e}}}function jr(e){let t=parseInt(e.replace("azdo-",""),10);return Number.isNaN(t)?void 0:t}function fp(e){return{async ping(){return Rl(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!Er(e.GITHUB_REPO))return"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await Rr(e.GITHUB_TOKEN);return(await Cl(e.GITHUB_TOKEN,e.GITHUB_REPO,t.buildLabel??e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??"none",blockers:"None",labels:o.labels??[],status:"open"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:Nl(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t){let r=parseInt(t.replace("#",""),10);if(!Number.isNaN(r))return Ol(e.GITHUB_TOKEN,e.GITHUB_REPO,r)},async transitionTicket(){return!1},async ensureLabel(t){try{let r=M(e.GITHUB_TOKEN),n=await fetch(`${Z}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${Z}/repos/${e.GITHUB_REPO}/labels`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({name:t,color:"0075ca"})});!o.ok&&o.status!==422&&console.warn(`\u26A0 ensureLabel create returned HTTP ${o.status}`)}else console.warn(`\u26A0 ensureLabel GET returned HTTP ${n.status}`)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=M(e.GITHUB_TOKEN),s=await fetch(`${Z}/repos/${e.GITHUB_REPO}/issues/${n}/labels`,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({labels:[r]})});s.ok||console.warn(`\u26A0 addLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=M(e.GITHUB_TOKEN),s=await fetch(`${Z}/repos/${e.GITHUB_REPO}/issues/${n}/labels/${encodeURIComponent(r)}`,{method:"DELETE",headers:o});!s.ok&&s.status!==404&&console.warn(`\u26A0 removeLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}var Sy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string())}))}),vy=c.object({summary:c.string(),description:c.optional(c.unknown()),issuelinks:c.optional(c.array(Sy)),parent:c.optional(c.object({key:c.optional(c.string())})),customfield_10014:c.optional(c.nullable(c.string())),labels:c.optional(c.array(c.string()))}),zy=c.object({key:c.string(),fields:vy}),dp=c.object({total:c.optional(c.number()),isLast:c.optional(c.boolean()),issues:c.array(zy)}),Ty=c.object({id:c.string(),name:c.string()}),mp=c.object({transitions:c.array(Ty)}),Iy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string()),fields:c.optional(c.object({status:c.optional(c.object({statusCategory:c.optional(c.object({key:c.optional(c.string())}))}))}))}))}),hp=c.object({fields:c.optional(c.object({issuelinks:c.optional(c.array(Iy))}))}),Ea=c.object({fields:c.optional(c.object({labels:c.optional(c.array(c.string()))}))});var Py=/^[a-zA-Z0-9 _\-'.]+$/,Ra=/^[A-Z][A-Z0-9]+-\d+$/;function yp(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function At(e){return Py.test(e)}async function bp(e,t,r){return Ir(`${e}/rest/api/3/project/${t}`,ve(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function Ay(e,t,r,n,o){let s=[`project="${e}"`];return r&&s.push("sprint in openSprints()"),n&&s.push(`labels = "${n}"`),o&&s.push('labels != "clancy:hitl"'),s.push("assignee=currentUser()"),s.push(`status="${t}"`),s.join(" AND ")+" ORDER BY priority ASC"}function Ey(e){if(!e||typeof e!="object")return"";let t=[];function r(n){if(typeof n=="string"){t.push(n);return}if(Array.isArray(n)){for(let o of n)r(o);return}if(n&&typeof n=="object")for(let o of Object.values(n))r(o)}return r(e),t.join(" ")}async function _p(e,t,r,n,o,s,i,a=5){let u=Ay(r,n,o,s,i),l;try{l=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:u,maxResults:a,fields:["summary","description","issuelinks","parent","customfield_10014","labels"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!l.ok)return console.warn(`\u26A0 Jira API returned HTTP ${l.status}`),[];let p;try{p=await l.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let f=dp.safeParse(p);return f.success?f.data.issues.map(m=>{let h=m.fields,y=(h.issuelinks??[]).filter(v=>v.type?.name==="Blocks"&&v.inwardIssue?.key).map(v=>v.inwardIssue?.key).filter(v=>!!v),b=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Ey(h.description),provider:"jira",epicKey:b,blockers:y,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${f.error.message}`),[])}async function wp(e,t,r){if(!Ra.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:ve(t)});if(!n.ok)return!1;let o=await n.json(),s=hp.safeParse(o);return s.success?(s.data.fields?.issuelinks??[]).some(a=>{if(a.type?.name!=="Blocks"||!a.inwardIssue?.key)return!1;let u=a.inwardIssue.fields?.status?.statusCategory?.key;return u?u!=="done":!1}):!1}catch{return!1}}async function $p(e,t,r){if(Ra.test(r))try{let n=r.split("-")[0],o=await gp(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await gp(e,t,`parent = ${r}`)}catch{return}}async function gp(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let s=(await n.json()).total??0;if(s===0)return{total:0,incomplete:0};let i=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!i.ok)return;let u=(await i.json()).total??0;return{total:s,incomplete:u}}async function Ry(e,t,r,n){if(!Ra.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:ve(t)})}catch(u){console.warn(`\u26A0 Jira transitions request failed: ${u instanceof Error?u.message:String(u)}`);return}if(!o.ok)return;let s;try{s=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let i=mp.safeParse(s);if(!i.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${i.error.message}`);return}return i.data.transitions.find(u=>u.name===n)?.id}async function xp(e,t,r,n){try{let o=await Ry(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}function kp(e){let t=yp(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return bp(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!At(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!At(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!At(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!At(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){let n=await _p(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,r.buildLabel??e.CLANCY_LABEL,r.excludeHitl),o=e.CLANCY_JQL_STATUS??"To Do";return n.map(s=>{let i=s.blockers.length?`Blocked by: ${s.blockers.join(", ")}`:"None";return{key:s.key,title:s.title,description:s.description,parentInfo:s.epicKey??"none",blockers:i,labels:s.labels??[],status:o}})},async fetchBlockerStatus(r){return wp(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return $p(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await xp(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){},async addLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 addLabel GET failed: HTTP ${o.status}`);return}let i=Ea.parse(await o.json()).fields?.labels??[];if(i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:[...i,n]}})});a.ok||console.warn(`\u26A0 addLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 removeLabel GET failed: HTTP ${o.status}`);return}let i=Ea.parse(await o.json()).fields?.labels??[];if(!i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:i.filter(u=>u!==n)}})});a.ok||console.warn(`\u26A0 removeLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Cy=c.object({id:c.string(),identifier:c.string(),title:c.string(),description:c.optional(c.nullable(c.string())),parent:c.optional(c.nullable(c.object({identifier:c.string(),title:c.optional(c.string())}))),labels:c.optional(c.object({nodes:c.array(c.object({name:c.string()}))}))}),Sp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({assignedIssues:c.optional(c.object({nodes:c.array(Cy)}))}))}))}),vp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({id:c.optional(c.string())}))}))}),zp=c.object({data:c.optional(c.object({workflowStates:c.optional(c.object({nodes:c.array(c.object({id:c.string()}))}))}))}),Tp=c.object({data:c.optional(c.object({issueUpdate:c.optional(c.object({success:c.optional(c.boolean())}))}))}),Ny=c.object({type:c.string(),relatedIssue:c.optional(c.object({state:c.optional(c.object({type:c.optional(c.string())}))}))}),Ip=c.object({data:c.optional(c.object({issue:c.optional(c.object({relations:c.optional(c.object({nodes:c.array(Ny)}))}))}))}),Oy=c.object({state:c.optional(c.object({type:c.optional(c.string())}))}),Pp=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(Oy)}))}))}),Ap=c.object({data:c.optional(c.object({team:c.optional(c.object({labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}))}),Ep=c.object({data:c.optional(c.object({issueLabels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}),Rp=c.object({data:c.optional(c.object({issueLabelCreate:c.optional(c.object({issueLabel:c.optional(c.object({id:c.string()})),success:c.optional(c.boolean())}))}))}),Ca=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(c.object({id:c.string(),labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.optional(c.string())}))}))}))}))}))});var Ly=/^[a-zA-Z0-9_-]+$/,Cp="https://api.linear.app/graphql";function Np(e){return Ly.test(e)}async function W(e,t,r){let n;try{n=await fetch(Cp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:r})})}catch(o){console.warn(`\u26A0 Linear API request failed: ${o instanceof Error?o.message:String(o)}`);return}if(!n.ok){console.warn(`\u26A0 Linear API returned HTTP ${n.status}`);return}try{return await n.json()}catch{console.warn("\u26A0 Linear API returned invalid JSON");return}}async function Op(e){let t;try{t=await fetch(Cp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:"{ viewer { id } }"})})}catch{return{ok:!1,error:"\u2717 Could not reach Linear \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}:{ok:!1,error:`\u2717 Linear API returned HTTP ${t.status}`};try{let r=await t.json(),n=vp.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Lp(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,s=o?"labels: { name: { eq: $label } }":"",i=["$teamId: String!",...o?["$label: String!"]:[]],a=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",s].filter(Boolean),u=`
123
+ query(${i.join(", ")}) {
123
124
  viewer {
124
125
  assignedIssues(
125
126
  filter: {
126
- ${c.join(`
127
+ ${a.join(`
127
128
  `)}
128
129
  }
129
130
  first: ${t?r*3:r}
@@ -140,7 +141,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
140
141
  }
141
142
  }
142
143
  }
143
- `,u={teamId:e.LINEAR_TEAM_ID};o&&(u.label=n);let p=await q(e.LINEAR_API_KEY,a,u),d=wl.safeParse(p);if(!d.success)return console.warn(`\u26A0 Unexpected Linear response shape: ${d.error.message}`),[];let m=d.data.data?.viewer?.assignedIssues?.nodes;return m?.length?(t&&(m=m.filter(h=>!h.labels?.nodes?.some(b=>b.name==="clancy:hitl"))),m=m.slice(0,r),m.map(h=>({key:h.identifier,title:h.title,description:h.description??"",provider:"linear",issueId:h.id,parentIdentifier:h.parent?.identifier,labels:h.labels?.nodes?.map(b=>b.name).filter(b=>!!b)}))):[]}async function Pr(e,t){let n=await q(e,`
144
+ `,l={teamId:e.LINEAR_TEAM_ID};o&&(l.label=n);let p=await W(e.LINEAR_API_KEY,u,l),f=Sp.safeParse(p);if(!f.success)return console.warn(`\u26A0 Unexpected Linear response shape: ${f.error.message}`),[];let m=f.data.data?.viewer?.assignedIssues?.nodes;return m?.length?(t&&(m=m.filter(h=>!h.labels?.nodes?.some(y=>y.name==="clancy:hitl"))),m=m.slice(0,r),m.map(h=>({key:h.identifier,title:h.title,description:h.description??"",provider:"linear",issueId:h.id,parentIdentifier:h.parent?.identifier,labels:h.labels?.nodes?.map(y=>y.name).filter(y=>!!y)}))):[]}async function Zp(e,t){let n=await W(e,`
144
145
  query($issueId: String!) {
145
146
  issue(id: $issueId) {
146
147
  relations {
@@ -153,7 +154,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
153
154
  }
154
155
  }
155
156
  }
156
- `,{issueId:t}),o=Sl.safeParse(n);if(!o.success)return!1;let i=o.data.data?.issue?.relations?.nodes??[],s=new Set(["completed","canceled"]);return i.some(c=>{if(c.type!=="blockedBy")return!1;let a=c.relatedIssue?.state?.type;return a?!s.has(a):!1})}async function Zl(e,t,r){try{if(r){let n=await Wh(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await Qh(e,t)}catch{return}}async function Wh(e,t){let n=await q(e,`
157
+ `,{issueId:t}),o=Ip.safeParse(n);if(!o.success)return!1;let s=o.data.data?.issue?.relations?.nodes??[],i=new Set(["completed","canceled"]);return s.some(a=>{if(a.type!=="blockedBy")return!1;let u=a.relatedIssue?.state?.type;return u?!i.has(u):!1})}async function jp(e,t,r){try{if(r){let n=await Zy(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await jy(e,t)}catch{return}}async function Zy(e,t){let n=await W(e,`
157
158
  query($filter: String!) {
158
159
  issueSearch(query: $filter) {
159
160
  nodes {
@@ -161,7 +162,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
161
162
  }
162
163
  }
163
164
  }
164
- `,{filter:t}),o=Pl.safeParse(n);if(!o.success)return;let i=o.data.data?.issueSearch?.nodes??[],s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function Qh(e,t){let n=await q(e,`
165
+ `,{filter:t}),o=Pp.safeParse(n);if(!o.success)return;let s=o.data.data?.issueSearch?.nodes??[],i=s.length,a=new Set(["completed","canceled"]),u=s.filter(l=>!l.state?.type||!a.has(l.state.type)).length;return{total:i,incomplete:u}}async function jy(e,t){let n=await W(e,`
165
166
  query($issueId: String!) {
166
167
  issue(id: $issueId) {
167
168
  children {
@@ -171,7 +172,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
171
172
  }
172
173
  }
173
174
  }
174
- `,{issueId:t});if(!n||typeof n!="object")return;let i=n.data?.issue?.children?.nodes;if(!i)return;let s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function Xh(e,t,r){let o=await q(e,`
175
+ `,{issueId:t});if(!n||typeof n!="object")return;let s=n.data?.issue?.children?.nodes;if(!s)return;let i=s.length,a=new Set(["completed","canceled"]),u=s.filter(l=>!l.state?.type||!a.has(l.state.type)).length;return{total:i,incomplete:u}}async function Dy(e,t,r){let o=await W(e,`
175
176
  query($teamId: String!, $name: String!) {
176
177
  workflowStates(filter: {
177
178
  team: { id: { eq: $teamId } }
@@ -180,32 +181,32 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
180
181
  nodes { id }
181
182
  }
182
183
  }
183
- `,{teamId:t,name:r}),i=vl.safeParse(o);if(!i.success){console.warn(`\u26A0 Unexpected Linear workflowStates response: ${i.error.message}`);return}return i.data.data?.workflowStates?.nodes?.[0]?.id}async function eg(e,t,r){let o=await q(e,`
184
+ `,{teamId:t,name:r}),s=zp.safeParse(o);if(!s.success){console.warn(`\u26A0 Unexpected Linear workflowStates response: ${s.error.message}`);return}return s.data.data?.workflowStates?.nodes?.[0]?.id}async function My(e,t,r){let o=await W(e,`
184
185
  mutation($issueId: String!, $stateId: String!) {
185
186
  issueUpdate(id: $issueId, input: { stateId: $stateId }) {
186
187
  success
187
188
  }
188
189
  }
189
- `,{issueId:t,stateId:r}),i=zl.safeParse(o);return i.success?i.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${i.error.message}`),!1)}async function Nl(e,t,r,n){try{let o=await Xh(e,t,n);return o?await eg(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function Ll(e){let t=new Map;return{async ping(){return Cl(e.LINEAR_API_KEY)},validateInputs(){if(!Rl(e.LINEAR_TEAM_ID))return"\u2717 LINEAR_TEAM_ID contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){return(await Sr({LINEAR_API_KEY:e.LINEAR_API_KEY,LINEAR_TEAM_ID:e.LINEAR_TEAM_ID,CLANCY_LABEL:e.CLANCY_LABEL},r.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.parentIdentifier??"none",blockers:"None",linearIssueId:o.issueId,issueId:o.issueId}))},async fetchBlockerStatus(r){return r.issueId?Pr(e.LINEAR_API_KEY,r.issueId):!1},async fetchChildrenStatus(r,n){return Zl(e.LINEAR_API_KEY,n??r,r)},async transitionTicket(r,n){if(!r.linearIssueId)return!1;let o=await Nl(e.LINEAR_API_KEY,e.LINEAR_TEAM_ID,r.linearIssueId,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){try{if(t.has(r))return;let o=await q(e.LINEAR_API_KEY,`
190
+ `,{issueId:t,stateId:r}),s=Tp.safeParse(o);return s.success?s.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${s.error.message}`),!1)}async function Dp(e,t,r,n){try{let o=await Dy(e,t,n);return o?await My(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function Mp(e){let t=new Map;return{async ping(){return Op(e.LINEAR_API_KEY)},validateInputs(){if(!Np(e.LINEAR_TEAM_ID))return"\u2717 LINEAR_TEAM_ID contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){return(await Lp({LINEAR_API_KEY:e.LINEAR_API_KEY,LINEAR_TEAM_ID:e.LINEAR_TEAM_ID,CLANCY_LABEL:r.buildLabel??e.CLANCY_LABEL},r.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.parentIdentifier??"none",blockers:"None",linearIssueId:o.issueId,issueId:o.issueId,labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(r){return r.issueId?Zp(e.LINEAR_API_KEY,r.issueId):!1},async fetchChildrenStatus(r,n){return jp(e.LINEAR_API_KEY,n??r,r)},async transitionTicket(r,n){if(!r.linearIssueId)return!1;let o=await Dp(e.LINEAR_API_KEY,e.LINEAR_TEAM_ID,r.linearIssueId,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){try{if(t.has(r))return;let o=await W(e.LINEAR_API_KEY,`
190
191
  query($teamId: String!) {
191
192
  team(id: $teamId) {
192
193
  labels { nodes { id name } }
193
194
  }
194
195
  }
195
- `,{teamId:e.LINEAR_TEAM_ID}),s=Il.parse(o)?.data?.team?.labels?.nodes?.find(_=>_.name===r);if(s){t.set(r,s.id);return}let a=await q(e.LINEAR_API_KEY,`
196
+ `,{teamId:e.LINEAR_TEAM_ID}),i=Ap.parse(o)?.data?.team?.labels?.nodes?.find(b=>b.name===r);if(i){t.set(r,i.id);return}let u=await W(e.LINEAR_API_KEY,`
196
197
  query($name: String!) {
197
198
  issueLabels(filter: { name: { eq: $name } }) {
198
199
  nodes { id name }
199
200
  }
200
201
  }
201
- `,{name:r}),p=El.parse(a)?.data?.issueLabels?.nodes?.[0];if(p){t.set(r,p.id);return}let m=await q(e.LINEAR_API_KEY,`
202
+ `,{name:r}),p=Ep.parse(u)?.data?.issueLabels?.nodes?.[0];if(p){t.set(r,p.id);return}let m=await W(e.LINEAR_API_KEY,`
202
203
  mutation($teamId: String!, $name: String!) {
203
204
  issueLabelCreate(input: { teamId: $teamId, name: $name, color: "#0075ca" }) {
204
205
  issueLabel { id }
205
206
  success
206
207
  }
207
208
  }
208
- `,{teamId:e.LINEAR_TEAM_ID,name:r}),b=Al.parse(m)?.data?.issueLabelCreate?.issueLabel?.id;b&&t.set(r,b)}catch(n){console.warn(`\u26A0 ensureLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async addLabel(r,n){try{await this.ensureLabel(n);let o=t.get(n);if(!o)return;let s=await q(e.LINEAR_API_KEY,`
209
+ `,{teamId:e.LINEAR_TEAM_ID,name:r}),y=Rp.parse(m)?.data?.issueLabelCreate?.issueLabel?.id;y&&t.set(r,y)}catch(n){console.warn(`\u26A0 ensureLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async addLabel(r,n){try{await this.ensureLabel(n);let o=t.get(n);if(!o)return;let i=await W(e.LINEAR_API_KEY,`
209
210
  query($identifier: String!) {
210
211
  issueSearch: issues(filter: { identifier: { eq: $identifier } }, first: 1) {
211
212
  nodes {
@@ -214,13 +215,13 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
214
215
  }
215
216
  }
216
217
  }
217
- `,{identifier:r}),a=uc.parse(s)?.data?.issueSearch?.nodes?.[0];if(!a)return;let u=a.labels?.nodes?.map(d=>d.id)??[];if(u.includes(o))return;await q(e.LINEAR_API_KEY,`
218
+ `,{identifier:r}),u=Ca.parse(i)?.data?.issueSearch?.nodes?.[0];if(!u)return;let l=u.labels?.nodes?.map(f=>f.id)??[];if(l.includes(o))return;await W(e.LINEAR_API_KEY,`
218
219
  mutation($issueId: String!, $labelIds: [String!]!) {
219
220
  issueUpdate(id: $issueId, input: { labelIds: $labelIds }) {
220
221
  success
221
222
  }
222
223
  }
223
- `,{issueId:a.id,labelIds:[...u,o]})}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{let o=t.get(n),s=await q(e.LINEAR_API_KEY,`
224
+ `,{issueId:u.id,labelIds:[...l,o]})}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{let o=t.get(n),i=await W(e.LINEAR_API_KEY,`
224
225
  query($identifier: String!) {
225
226
  issueSearch: issues(filter: { identifier: { eq: $identifier } }, first: 1) {
226
227
  nodes {
@@ -229,10 +230,10 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_
229
230
  }
230
231
  }
231
232
  }
232
- `,{identifier:r}),a=uc.parse(s)?.data?.issueSearch?.nodes?.[0];if(!a)return;let u=a.labels?.nodes??[],p=o??u.find(h=>h.name===n)?.id;if(!p)return;let d=u.map(h=>h.id).filter(h=>h!==p);if(d.length===u.length)return;await q(e.LINEAR_API_KEY,`
233
+ `,{identifier:r}),u=Ca.parse(i)?.data?.issueSearch?.nodes?.[0];if(!u)return;let l=u.labels?.nodes??[],p=o??l.find(h=>h.name===n)?.id;if(!p)return;let f=l.map(h=>h.id).filter(h=>h!==p);if(f.length===l.length)return;await W(e.LINEAR_API_KEY,`
233
234
  mutation($issueId: String!, $labelIds: [String!]!) {
234
235
  issueUpdate(id: $issueId, input: { labelIds: $labelIds }) {
235
236
  success
236
237
  }
237
238
  }
238
- `,{issueId:a.id,labelIds:d})}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}function jl(e){switch(e.provider){case"jira":return xl(e.env);case"github":return dl(e.env);case"linear":return Ll(e.env)}}async function Ol(e){console.log(x("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log(x("\u2502")+Ae(" \u{1F916} Clancy \u2014 once mode ")+x("\u2502")),console.log(x("\u2502")+x(` "Let's roll." `)+x("\u2502")),console.log(x("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=kr(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=dr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=jl(n),i=o.validateInputs();if(i)return console.log(i),!1;let s=await o.ping();return s.ok?(console.log(N("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(s.error),!1)}async function Ml(e){let t=e.config;try{let r=await qu(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(S(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function lc(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function tg(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function rg(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function ng(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=xt(r.JIRA_USER,r.JIRA_API_TOKEN),o=lc(r);return(await vr(r.JIRA_BASE_URL,n,r.JIRA_PROJECT_KEY,r.CLANCY_JQL_STATUS??"To Do",r.CLANCY_JQL_SPRINT,o,t)).map(s=>{let c=s.blockers.length?`Blocked by: ${s.blockers.join(", ")}`:"None";return{key:s.key,title:s.title,description:s.description,parentInfo:s.epicKey??"none",blockers:c,labels:s.labels??[]}})}case"github":{let{env:r}=e,n=lc(r),o=await Je(r.GITHUB_TOKEN);return(await yr(r.GITHUB_TOKEN,r.GITHUB_REPO,n,o,t)).map(s=>({key:s.key,title:s.title,description:s.description,parentInfo:s.milestone??"none",blockers:"None",labels:s.labels??[]}))}case"linear":{let{env:r}=e,n=lc(r);return(await Sr({LINEAR_API_KEY:r.LINEAR_API_KEY,LINEAR_TEAM_ID:r.LINEAR_TEAM_ID,CLANCY_LABEL:n},t)).map(i=>({key:i.key,title:i.title,description:i.description,parentInfo:i.parentIdentifier??"none",blockers:"None",linearIssueId:i.issueId,issueId:i.issueId,labels:i.labels??[]}))}}}async function og(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=xt(r.JIRA_USER,r.JIRA_API_TOKEN);return zr(r.JIRA_BASE_URL,n,t.key)}case"github":{let{env:r}=e,n=parseInt(t.key.replace("#",""),10);return Number.isNaN(n)?!1:$r(r.GITHUB_TOKEN,r.GITHUB_REPO,n,t.description)}case"linear":{let{env:r}=e;return t.issueId?Pr(r.LINEAR_API_KEY,t.issueId):!1}}}async function Bl(e,t){let r=rg(t),n=tg(e.env),o=await ng(e,r);if(o.length)for(let i of o){if(n&&i.labels?.includes(n)){console.log(`Skipping ${i.key} \u2014 still has plan label`);continue}if(!await og(e,i))return i;console.log(`Skipping ${i.key} \u2014 blocked`)}}async function Dl(e){let t=e.config;if(e.ticket||(e.ticket=await Bl(t)),!e.ticket)return console.log(x("No tickets found. All done!")),!1;if(e.isRework){let c=parseInt(M(t).CLANCY_MAX_REWORK??"3",10),a=Number.isFinite(c)&&c>0?c:3;if(fu(e.cwd,e.ticket.key)>=a)return console.log(S(`\u26A0 ${e.ticket.key} has reached max rework cycles (${a}) \u2014 needs human intervention`)),C(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=xr(t.provider,e.ticket.key),i=wr(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=i,e.hasParent=e.ticket.parentInfo!=="none";let s=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ae(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log(x(` ${s}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${i}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(S(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function Ul(e){let t=e.config,r=e.board,n=e.ticket,o=t.env.CLANCY_STATUS_IN_PROGRESS;return o&&await r.transitionTicket(n,o),!0}async function cg(e){let t=gc(e);if(await fl(t))try{if(!await Ol(t)||!await Xu(t)||!await Ml(t)||!await Dl(t)||!Qu(t)||!ol(t)||!await Du(t)||!await Ul(t)||!al(t)||!await Wu(t))return;Yu(t),await Fu(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ee(Date.now()-t.startTime);if(console.error(""),console.error(Te("\u274C Clancy stopped")+x(` (${o})`)),console.error(Te(` ${n}`)),console.error(x(` "I'd rather let Herman go."`)),t.originalBranch)try{Z(t.originalBranch)}catch{}}finally{t.lockOwner&&(Pt(t.cwd),It(t.cwd))}}process.argv[1]&&sg(import.meta.url)===ig(process.argv[1])&&cg(process.argv);export{cg as run};
239
+ `,{issueId:u.id,labelIds:f})}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Bp=c.object({plain_text:c.string()}),By=c.object({type:c.literal("status"),status:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Uy=c.object({type:c.literal("select"),select:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Fy=c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}),Hy=c.object({type:c.literal("multi_select"),multi_select:c.array(Fy)}),qy=c.object({type:c.literal("people"),people:c.array(c.object({id:c.string(),name:c.optional(c.nullable(c.string()))}))}),Jy=c.object({type:c.literal("relation"),relation:c.array(c.object({id:c.string()}))}),Ky=c.object({type:c.literal("title"),title:c.array(Bp)}),Yy=c.object({type:c.literal("rich_text"),rich_text:c.array(Bp)}),Gy=c.union([By,Uy,Hy,qy,Jy,Ky,Yy,c.object({type:c.string()})]),Na=c.object({id:c.string(),url:c.optional(c.string()),properties:c.record(c.string(),Gy)}),Up=c.object({results:c.array(Na),has_more:c.boolean(),next_cursor:c.nullable(c.optional(c.string()))}),Fp=c.object({id:c.string(),type:c.optional(c.string()),name:c.optional(c.nullable(c.string())),avatar_url:c.optional(c.nullable(c.string()))});function Wy(e){if(!e)return;let t=parseInt(e,10);if(!Number.isNaN(t)&&t>=0)return t*1e3;let r=new Date(e);if(!Number.isNaN(r.getTime())){let n=r.getTime()-Date.now();return n>0?n:0}}function Oa(e,t,r){let n=t*2**e;return Math.min(n,r)}function Vy(e){return e===429||e>=500&&e<=599}async function Et(e,t,r){let n=Math.max(0,r?.maxRetries??3),o=r?.baseDelayMs??1e3,s=r?.maxDelayMs??1e4,i;for(let a=0;a<=n;a++)try{let u=await fetch(e,t);if(!Vy(u.status)||a===n)return u;let l;u.status===429?l=Wy(u.headers.get("Retry-After"))??Oa(a,o,s):l=Oa(a,o,s),await u.arrayBuffer().catch(()=>{}),await new Promise(p=>setTimeout(p,l))}catch(u){if(i=u,a===n)throw i;let l=Oa(a,o,s);await new Promise(p=>setTimeout(p,l))}throw i}var Mr="https://api.notion.com/v1",Qy="2022-06-28";function Br(e){return{Authorization:`Bearer ${e}`,"Notion-Version":Qy,"Content-Type":"application/json"}}async function qp(e){let t;try{t=await Et(`${Mr}/users/me`,{headers:Br(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Notion \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}:{ok:!1,error:`\u2717 Notion API returned HTTP ${t.status}`};try{let r=await t.json(),n=Fp.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}}async function Ur(e,t,r,n,o){let s={};r&&(s.filter=r),n&&(s.sorts=n),o&&(s.start_cursor=o);let i;try{i=await Et(`${Mr}/databases/${t}/query`,{method:"POST",headers:Br(e),body:JSON.stringify(s)})}catch(l){console.warn(`\u26A0 Notion API request failed: ${l instanceof Error?l.message:String(l)}`);return}if(!i.ok){console.warn(`\u26A0 Notion API returned HTTP ${i.status}`);return}let a;try{a=await i.json()}catch{console.warn("\u26A0 Notion API returned invalid JSON");return}let u=Up.safeParse(a);if(!u.success){console.warn(`\u26A0 Unexpected Notion response shape: ${u.error.message}`);return}return u.data}async function Rt(e,t,r){let n=[],o;for(let i=0;i<10;i++){let a=await Ur(e,t,r,void 0,o);if(!a||(n.push(...a.results),!a.has_more||!a.next_cursor))break;o=a.next_cursor}return n}async function Hp(e,t){try{let r=await Et(`${Mr}/pages/${t}`,{headers:Br(e)});if(!r.ok)return;let n=await r.json(),o=Na.safeParse(n);return o.success?o.data:void 0}catch{return}}async function Ct(e,t,r){try{return(await Et(`${Mr}/pages/${t}`,{method:"PATCH",headers:Br(e),body:JSON.stringify({properties:r})})).ok}catch{return!1}}async function Jp(e,t,r,n="Status"){try{let o=await Hp(e,r);if(!o)return!1;let s=Xy(o,"Blocked by");if(s?.type==="relation"){let u=s.relation;if(u.length>0){for(let l of u){let p=await Hp(e,l.id);if(!p)continue;let f=B(p,n,"status");if(f&&!Dr(f))return!0}return!1}}let i=r.replace(/-/g,"").slice(0,8),a=Yp(o);if(a){let u=a.match(/Blocked by (notion-[a-f0-9]{8})/gi);if(u){let l=await Rt(e,t);if(!l.length)return!1;for(let p of u){let f=p.replace(/blocked by notion-/i,"").toLowerCase();if(f!==i){for(let m of l)if(m.id.replace(/-/g,"").slice(0,8)===f){let y=B(m,n,"status");if(y&&!Dr(y))return!0}}}}}return!1}catch{return!1}}async function Kp(e,t,r,n="Epic",o="Status"){try{let s=await eb(e,t,`Epic: ${r}`,o);if(s&&s.total>0)return s;let i=await rb(e,t,r);return i?await tb(e,t,i.id,n,o):void 0}catch{return}}function B(e,t,r){let n=e.properties[t];if(!(!n||n.type!==r))switch(r){case"status":return n.status?.name;case"select":return n.select?.name;case"title":return n.title.map(s=>s.plain_text).join("");case"rich_text":return n.rich_text.map(s=>s.plain_text).join("");case"multi_select":return n.multi_select.map(s=>s.name);case"people":return n.people.map(s=>s.id);case"relation":return n.relation.map(s=>s.id);default:return}}function Xy(e,t){if(e.properties[t])return e.properties[t];let r=t.toLowerCase();for(let[n,o]of Object.entries(e.properties))if(n.toLowerCase()===r)return o}function Dr(e){let t=e.toLowerCase();return t==="done"||t==="complete"||t==="completed"||t==="closed"}function Yp(e){for(let t of["Description","description","Body","body"]){let r=B(e,t,"rich_text");if(r)return r}}async function eb(e,t,r,n="Status"){let o=await Rt(e,t);if(!o.length)return;let s=o.filter(u=>Yp(u)?.includes(r)),i=s.length;if(i===0)return{total:0,incomplete:0};let a=s.filter(u=>{let l=B(u,n,"status")??B(u,n,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function tb(e,t,r,n,o="Status"){let s=await Ur(e,t,{property:n,relation:{contains:r}});if(!s)return;let i=s.results.length;if(i===0)return{total:0,incomplete:0};let a=s.results.filter(u=>{let l=B(u,o,"status")??B(u,o,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function rb(e,t,r){let n=r.replace("notion-","");return n?(await Rt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var nb="Status",ob="Assignee",sb="Labels",ib="Epic";function Wp(e){let t=e.CLANCY_NOTION_STATUS??nb,r=e.CLANCY_NOTION_ASSIGNEE??ob,n=e.CLANCY_NOTION_LABELS??sb,o=e.CLANCY_NOTION_PARENT??ib;return{async ping(){return qp(e.NOTION_TOKEN)},validateInputs(){if(!/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i.test(e.NOTION_DATABASE_ID))return"\u2717 NOTION_DATABASE_ID does not look like a valid UUID. Use the database ID from the Notion URL, not the full URL."},async fetchTicket(s){return(await this.fetchTickets(s))[0]},async fetchTickets(s){let i=ab(t,"To-do"),a=await Ur(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i);if(!a)return[];let u=a.results;s.excludeHitl&&(u=u.filter(p=>!B(p,n,"multi_select")?.includes("clancy:hitl")));let l=s.buildLabel??e.CLANCY_LABEL;return l&&(u=u.filter(p=>B(p,n,"multi_select")?.includes(l))),u.slice(0,5).map(p=>cb(p,{labelsProp:n,parentProp:o,assigneeProp:r}))},async fetchBlockerStatus(s){let i=s.issueId;return i?Jp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i,t):!1},async fetchChildrenStatus(s){return Kp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s,o,t)},async transitionTicket(s,i){let a=s.issueId;if(!a)return!1;if(await Ct(e.NOTION_TOKEN,a,{[t]:{status:{name:i}}}))return console.log(` \u2192 Transitioned to ${i}`),!0;let l=await Ct(e.NOTION_TOKEN,a,{[t]:{select:{name:i}}});return l&&console.log(` \u2192 Transitioned to ${i}`),l},async ensureLabel(s){},async addLabel(s,i){try{let a=await Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=B(a,n,"multi_select")??[];if(u.includes(i))return;let l=[...u,i].map(p=>({name:p}));await Ct(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 addLabel failed: ${a instanceof Error?a.message:String(a)}`)}},async removeLabel(s,i){try{let a=await Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=B(a,n,"multi_select")??[];if(!u.includes(i))return;let l=u.filter(p=>p!==i).map(p=>({name:p}));await Ct(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 removeLabel failed: ${a instanceof Error?a.message:String(a)}`)}},sharedEnv(){return e}}}function ab(e,t){let r=t??"To-do";return{or:[{property:e,status:{equals:r}},{property:e,select:{equals:r}}]}}function cb(e,t){let n=`notion-${e.id.replace(/-/g,"").slice(0,8)}`,o="";for(let[l,p]of Object.entries(e.properties))if(p.type==="title"){o=B(e,l,"title")??"";break}let s="";for(let l of["Description","description","Body","body"]){let p=B(e,l,"rich_text");if(p){s=p;break}}let i=B(e,t.parentProp,"relation"),a=i&&i.length>0?`notion-${i[0].replace(/-/g,"").slice(0,8)}`:"none",u=B(e,t.labelsProp,"multi_select")??[];return{key:n,title:o,description:s,parentInfo:a,blockers:"None",issueId:e.id,labels:u,status:"To-do"}}async function Gp(e,t,r){let n=r.replace("notion-","");return n?(await Rt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var ub=c.object({verb:c.string(),subject_id:c.number(),object_id:c.number()}),La=c.object({id:c.number(),name:c.string(),description:c.optional(c.nullable(c.string())),story_type:c.optional(c.string()),blocked:c.optional(c.boolean()),story_links:c.optional(c.array(ub)),label_ids:c.optional(c.array(c.number())),labels:c.optional(c.array(c.object({id:c.number(),name:c.string()}))),epic_id:c.optional(c.nullable(c.number())),workflow_state_id:c.optional(c.number()),owner_ids:c.optional(c.array(c.string()))}),Za=c.object({data:c.array(La),next:c.optional(c.nullable(c.string())),total:c.optional(c.number())}),Fr=La,lb=c.object({id:c.number(),name:c.string(),type:c.string()}),pb=c.object({id:c.number(),name:c.string(),states:c.array(lb)}),Vp=c.array(pb),Qp=c.object({id:c.number(),name:c.string()}),Xp=c.array(Qp),ef=Qp,tf=c.array(La),rf=c.object({id:c.string(),mention_name:c.optional(c.string())});var ne="https://api.app.shortcut.com/api/v3";function oe(e){return{"Shortcut-Token":e,"Content-Type":"application/json"}}var Hr;var Nt;async function nf(e){let t;try{t=await fetch(`${ne}/member-info`,{headers:oe(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Shortcut \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}:{ok:!1,error:`\u2717 Shortcut API returned HTTP ${t.status}`};try{let r=await t.json(),n=rf.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}}async function Ot(e){if(Hr)return Hr;try{let t=await fetch(`${ne}/workflows`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /workflows returned HTTP ${t.status}`),[];let r=await t.json(),n=Vp.safeParse(r);return n.success?(Hr=n.data,Hr):(console.warn(`\u26A0 Unexpected Shortcut workflows response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /workflows request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function of(e,t,r){let n=await Ot(e);for(let o of n){if(r&&o.name!==r)continue;let s=o.states.find(i=>i.name.toLowerCase()===t.toLowerCase());if(s)return s.id}}async function sf(e,t,r){let n=await Ot(e),o=[];for(let s of n)if(!(r&&s.name!==r))for(let i of s.states)i.type===t&&o.push(i.id);return o}async function af(e,t,r,n,o,s=5){if(!t.length)return[];let i,a={};t.length&&(a.workflow_state_ids=t),n&&(a.owner_ids=[n]),r&&(a.label_name=r);try{i=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify(a)})}catch(f){return console.warn(`\u26A0 Shortcut API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 Shortcut API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 Shortcut API returned invalid JSON"),[]}let l=Za.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected Shortcut response shape: ${l.error.message}`),[];let p=l.data.data;return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`sc-${f.id}`,title:f.name,description:f.description??"",provider:"shortcut",storyId:f.id,epicId:f.epic_id??void 0,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function cf(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return!1;let n=await r.json(),o=Fr.safeParse(n);if(!o.success)return!1;let s=o.data;if(!s.blocked)return!1;let i=(s.story_links??[]).filter(l=>l.verb==="is blocked by");if(!i.length)return!1;let a=await Ot(e),u=new Set;for(let l of a)for(let p of l.states)p.type==="done"&&u.add(p.id);for(let l of i){let p=l.object_id,f=await fetch(`${ne}/stories/${p}`,{headers:oe(e)});if(!f.ok)continue;let m=await f.json(),h=Fr.safeParse(m);if(h.success&&h.data.workflow_state_id!==void 0&&!u.has(h.data.workflow_state_id))return!0}return!1}catch{return!1}}async function uf(e,t,r){try{if(r){let n=await fb(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await db(e,t)}catch{return}}async function fb(e,t){try{let r=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify({query:t})});if(!r.ok)return;let n=await r.json(),o=Za.safeParse(n);if(!o.success)return;let s=o.data.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Ot(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function db(e,t){try{let r=await fetch(`${ne}/epics/${t}/stories`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=tf.safeParse(n);if(!o.success)return;let s=o.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Ot(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function lf(e,t,r){try{return(await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({workflow_state_id:r})})).ok}catch{return!1}}async function qr(e){if(Nt)return Nt;try{let t=await fetch(`${ne}/labels`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /labels returned HTTP ${t.status}`),[];let r=await t.json(),n=Xp.safeParse(r);return n.success?(Nt=n.data,Nt):(console.warn(`\u26A0 Unexpected Shortcut labels response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /labels request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function pf(e,t){try{let r=await fetch(`${ne}/labels`,{method:"POST",headers:oe(e),body:JSON.stringify({name:t,color:"#0075ca"})});if(!r.ok){console.warn(`\u26A0 Shortcut label create returned HTTP ${r.status}`);return}let n=await r.json(),o=ef.safeParse(n);return o.success?(Nt=void 0,o.data.id):void 0}catch(r){console.warn(`\u26A0 Shortcut label create failed: ${r instanceof Error?r.message:String(r)}`);return}}async function ja(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=Fr.safeParse(n);return o.success?o.data.label_ids??[]:void 0}catch{return}}async function Da(e,t,r){try{let n=await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({label_ids:r})});return n.ok||console.warn(`\u26A0 Shortcut story label update returned HTTP ${n.status}`),n.ok}catch(n){return console.warn(`\u26A0 Shortcut story label update failed: ${n instanceof Error?n.message:String(n)}`),!1}}function ff(e){return{async ping(){return nf(e.SHORTCUT_API_TOKEN)},validateInputs(){},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await sf(e.SHORTCUT_API_TOKEN,"unstarted",e.SHORTCUT_WORKFLOW);return(await af(e.SHORTCUT_API_TOKEN,r,t.buildLabel??e.CLANCY_LABEL,void 0,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.epicId?`epic-${o.epicId}`:"none",blockers:"None",issueId:String(o.storyId),labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(t){let r=Jr(t.key);return r===void 0?!1:cf(e.SHORTCUT_API_TOKEN,r)},async fetchChildrenStatus(t,r){let n=r??t.replace(/^(sc-|epic-)/,""),o=parseInt(n,10);if(!Number.isNaN(o))return uf(e.SHORTCUT_API_TOKEN,o,t)},async transitionTicket(t,r){let n=Jr(t.key);if(n===void 0)return!1;let o=await of(e.SHORTCUT_API_TOKEN,r,e.SHORTCUT_WORKFLOW);if(o===void 0)return console.warn(`\u26A0 Shortcut workflow state "${r}" not found \u2014 check workflow configuration`),!1;let s=await lf(e.SHORTCUT_API_TOKEN,n,o);return s&&console.log(` \u2192 Transitioned to ${r}`),s},async ensureLabel(t){try{if((await qr(e.SHORTCUT_API_TOKEN)).find(o=>o.name===t))return;await pf(e.SHORTCUT_API_TOKEN,t)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await ja(e.SHORTCUT_API_TOKEN,n);if(!i||i.includes(s.id))return;await Da(e.SHORTCUT_API_TOKEN,n,[...i,s.id])}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await ja(e.SHORTCUT_API_TOKEN,n);if(!i||!i.includes(s.id))return;await Da(e.SHORTCUT_API_TOKEN,n,i.filter(a=>a!==s.id))}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}function Jr(e){let t=parseInt(e.replace("sc-",""),10);return Number.isNaN(t)?void 0:t}function df(e){switch(e.provider){case"jira":return kp(e.env);case"github":return fp(e.env);case"linear":return Mp(e.env);case"shortcut":return ff(e.env);case"notion":return Wp(e.env);case"azdo":return pp(e.env)}}async function mf(e){console.log($("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log($("\u2502")+Ne(" \u{1F916} Clancy \u2014 once mode ")+$("\u2502")),console.log($("\u2502")+$(` "Let's roll." `)+$("\u2502")),console.log($("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=Or(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=zr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=df(n),s=o.validateInputs();if(s)return console.log(s),!1;let i=await o.ping();return i.ok?(console.log(O("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(i.error),!1)}async function hf(e){let t=e.config;try{let r=await Ll(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(z(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function mb(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function hb(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function gb(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function gf(e,t){let r=gb(t),n=e.sharedEnv(),o=mb(n),s=hb(n),i=await e.fetchTickets({excludeHitl:r,buildLabel:o});if(i.length)for(let a of i){if(s&&a.labels?.includes(s)){console.log(`Skipping ${a.key} \u2014 still has plan label`);continue}if(!await e.fetchBlockerStatus(a))return console.log(`Selected ${a.key}${a.status?` (status: ${a.status})`:""}`),a;console.log(`Skipping ${a.key} \u2014 blocked`)}}async function yf(e){let t=e.config;if(e.ticket||(e.ticket=await gf(e.board)),!e.ticket)return console.log($("No tickets found. All done!")),!1;if(e.isRework){let a=parseInt(D(t).CLANCY_MAX_REWORK??"3",10),u=Number.isFinite(a)&&a>0?a:3;if(Hu(e.cwd,e.ticket.key)>=u)return console.log(z(`\u26A0 ${e.ticket.key} has reached max rework cycles (${u}) \u2014 needs human intervention`)),C(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=Cr(t.provider,e.ticket.key),s=Nr(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=s,e.hasParent=e.ticket.parentInfo!=="none";let i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ne(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log($(` ${i}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${s}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(z(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function bf(e){let t=e.config,r=e.board,n=e.ticket,o=t.env.CLANCY_STATUS_IN_PROGRESS;return o&&await r.transitionTicket(n,o),!0}async function _b(e){let t=qa(e);if(await Xl(t))try{if(!await mf(t)||!await Ml(t)||!await hf(t)||!await yf(t)||!Dl(t)||!ql(t)||!await _l(t)||!await bf(t)||!Gl(t)||!await jl(t))return;kl(t),await $l(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ce(Date.now()-t.startTime);if(console.error(""),console.error(Oe("\u274C Clancy stopped")+$(` (${o})`)),console.error(Oe(` ${n}`)),console.error($(` "I'd rather let Herman go."`)),t.originalBranch)try{N(t.originalBranch)}catch{}}finally{t.lockOwner&&(Mt(t.cwd),Bt(t.cwd))}}process.argv[1]&&bb(import.meta.url)===yb(process.argv[1])&&_b(process.argv);export{_b as run};