chief-clancy 0.7.4 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 wf=Object.defineProperty;var ze=(e,t)=>{for(var r in t)wf(e,r,{get:t[r],enumerable:!0})};import{resolve as bb}from"node:path";import{fileURLToPath as _b}from"node:url";function Ne(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 fe}from"node:child_process";function Yr(...e){return fe("git",e,{encoding:"utf8"}).trim()}function Ua(){return Yr("rev-parse","--abbrev-ref","HEAD")}function Dt(){try{return fe("git",["diff","--quiet"],{stdio:"ignore"}),fe("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function et(e){try{return fe("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Gr(e,t){et(e)||Yr("checkout","-b",e,t)}function O(e,t=!1){Yr("checkout",...t?["-B"]:[],e)}function Fa(e){try{return fe("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function Mt(e){try{return fe("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function Ha(e,t=8e3){try{let r=fe("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 tt(e){try{return fe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var $=e=>`\x1B[2m${e}\x1B[0m`,Oe=e=>`\x1B[1m${e}\x1B[0m`;var N=e=>`\x1B[32m${e}\x1B[0m`,Le=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 $f,readFileSync as kf,unlinkSync as Ja,writeFileSync as xf}from"node:fs";import{dirname as Sf,join as Bt}from"node:path";function Ka(e,t){let r=Bt(e,".clancy","lock.json");$f(Sf(r),{recursive:!0}),xf(r,JSON.stringify(t,null,2),"utf8")}function Ut(e){let t=Bt(e,".clancy","lock.json");try{let r=kf(t,"utf8");return JSON.parse(r)}catch{return}}function Ft(e){let t=Bt(e,".clancy","lock.json");try{Ja(t)}catch{}}function Ht(e){let t=Bt(e,".clancy","verify-attempt.txt");try{Ja(t)}catch{}}function vf(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function Ya(e){if(!vf(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 Jg}from"node:fs";import{join as Kg}from"node:path";var c={};ze(c,{$brand:()=>Vr,$input:()=>As,$output:()=>Es,NEVER:()=>Wr,TimePrecision:()=>ri,ZodMiniAny:()=>tu,ZodMiniArray:()=>iu,ZodMiniBase64:()=>Kc,ZodMiniBase64URL:()=>Yc,ZodMiniBigInt:()=>St,ZodMiniBigIntFormat:()=>ia,ZodMiniBoolean:()=>xt,ZodMiniCIDRv4:()=>Hc,ZodMiniCIDRv6:()=>qc,ZodMiniCUID:()=>Zc,ZodMiniCUID2:()=>jc,ZodMiniCatch:()=>vu,ZodMiniCodec:()=>fa,ZodMiniCustom:()=>da,ZodMiniCustomStringFormat:()=>$t,ZodMiniDate:()=>$r,ZodMiniDefault:()=>ku,ZodMiniDiscriminatedUnion:()=>uu,ZodMiniE164:()=>Gc,ZodMiniEmail:()=>Cc,ZodMiniEmoji:()=>Oc,ZodMiniEnum:()=>ca,ZodMiniExactOptional:()=>wu,ZodMiniFile:()=>bu,ZodMiniFunction:()=>Cu,ZodMiniGUID:()=>Nc,ZodMiniIPv4:()=>Uc,ZodMiniIPv6:()=>Fc,ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,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:()=>kt,ZodMiniNumberFormat:()=>Je,ZodMiniObject:()=>kr,ZodMiniOptional:()=>ua,ZodMiniPipe:()=>pa,ZodMiniPrefault:()=>xu,ZodMiniPromise:()=>Au,ZodMiniReadonly:()=>Tu,ZodMiniRecord:()=>xr,ZodMiniSet:()=>hu,ZodMiniString:()=>qe,ZodMiniStringFormat:()=>A,ZodMiniSuccess:()=>Su,ZodMiniSymbol:()=>Vc,ZodMiniTemplateLiteral:()=>Iu,ZodMiniTransform:()=>_u,ZodMiniTuple:()=>pu,ZodMiniType:()=>v,ZodMiniULID:()=>Dc,ZodMiniURL:()=>sa,ZodMiniUUID:()=>wt,ZodMiniUndefined:()=>Qc,ZodMiniUnion:()=>aa,ZodMiniUnknown:()=>ru,ZodMiniVoid:()=>su,ZodMiniXID:()=>Mc,ZodMiniXor:()=>cu,_default:()=>Yh,_function:()=>dg,any:()=>kh,array:()=>J,base64:()=>oh,base64url:()=>sh,bigint:()=>yh,boolean:()=>Ke,catch:()=>Qh,catchall:()=>Nh,check:()=>sg,cidrv4:()=>th,cidrv6:()=>rh,clone:()=>H,codec:()=>tg,coerce:()=>ha,config:()=>B,core:()=>He,cuid:()=>Ym,cuid2:()=>Gm,custom:()=>Ru,date:()=>Sh,decode:()=>wn,decodeAsync:()=>kn,describe:()=>cg,discriminatedUnion:()=>Lh,e164:()=>ih,email:()=>jm,emoji:()=>Jm,encode:()=>_n,encodeAsync:()=>$n,endsWith:()=>Hi,enum:()=>gu,exactOptional:()=>Jh,extend:()=>Se,file:()=>Hh,flattenError:()=>hn,float32:()=>dh,float64:()=>mh,formatError:()=>gn,function:()=>dg,globalRegistry:()=>ce,gt:()=>gr,gte:()=>yt,guid:()=>Dm,hash:()=>ph,hex:()=>lh,hostname:()=>uh,httpUrl:()=>qm,includes:()=>Ui,instanceof:()=>lg,int:()=>fh,int32:()=>hh,int64:()=>bh,intersection:()=>Zh,ipv4:()=>Xm,ipv6:()=>eh,iso:()=>ma,json:()=>fg,jwt:()=>ah,keyof:()=>vh,ksuid:()=>Qm,lazy:()=>Eu,length:()=>Di,literal:()=>Fh,locales:()=>ht,looseObject:()=>Th,looseRecord:()=>Dh,lowercase:()=>Mi,lt:()=>hr,lte:()=>gt,mac:()=>nh,map:()=>Mh,maxLength:()=>ji,maxSize:()=>Oi,maximum:()=>gt,merge:()=>Ph,meta:()=>ug,mime:()=>Ji,minLength:()=>bt,minSize:()=>Li,minimum:()=>yt,multipleOf:()=>Ni,nan:()=>Xh,nanoid:()=>Km,nativeEnum:()=>Uh,negative:()=>Ai,never:()=>ou,nonnegative:()=>Ci,nonoptional:()=>Wh,nonpositive:()=>Ri,normalize:()=>Ki,null:()=>eu,nullable:()=>Sr,nullish:()=>Kh,number:()=>xe,object:()=>I,omit:()=>Ah,optional:()=>w,overwrite:()=>_e,parse:()=>ye,parseAsync:()=>be,partial:()=>Rh,partialRecord:()=>jh,pick:()=>Eh,pipe:()=>eg,positive:()=>Ei,prefault:()=>Gh,prettifyError:()=>bn,promise:()=>og,property:()=>qi,readonly:()=>rg,record:()=>du,refine:()=>ig,regex:()=>_t,regexes:()=>re,registry:()=>dr,required:()=>Ch,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>xn,safeEncodeAsync:()=>vn,safeExtend:()=>Ih,safeParse:()=>Ie,safeParseAsync:()=>Pe,set:()=>Bh,size:()=>Zi,startsWith:()=>Fi,strictObject:()=>zh,string:()=>_,stringFormat:()=>ch,stringbool:()=>pg,success:()=>Vh,superRefine:()=>ag,symbol:()=>wh,templateLiteral:()=>ng,toJSONSchema:()=>br,toLowerCase:()=>Gi,toUpperCase:()=>Wi,transform:()=>qh,treeifyError:()=>yn,trim:()=>Yi,tuple:()=>fu,uint32:()=>gh,uint64:()=>_h,ulid:()=>Wm,undefined:()=>$h,union:()=>au,unknown:()=>wr,uppercase:()=>Bi,url:()=>Hm,util:()=>te,uuid:()=>Mm,uuidv4:()=>Bm,uuidv6:()=>Um,uuidv7:()=>Fm,void:()=>xh,xid:()=>Vm,xor:()=>Oh});var He={};ze(He,{$ZodAny:()=>Xo,$ZodArray:()=>os,$ZodAsyncError:()=>se,$ZodBase64:()=>Fo,$ZodBase64URL:()=>Ho,$ZodBigInt:()=>cr,$ZodBigIntFormat:()=>Go,$ZodBoolean:()=>ft,$ZodCIDRv4:()=>Mo,$ZodCIDRv6:()=>Bo,$ZodCUID:()=>Io,$ZodCUID2:()=>Po,$ZodCatch:()=>$s,$ZodCheck:()=>E,$ZodCheckBigIntFormat:()=>no,$ZodCheckEndsWith:()=>go,$ZodCheckGreaterThan:()=>tr,$ZodCheckIncludes:()=>mo,$ZodCheckLengthEquals:()=>uo,$ZodCheckLessThan:()=>er,$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:()=>Be,$ZodCheckUpperCase:()=>fo,$ZodCodec:()=>mt,$ZodCustom:()=>Ps,$ZodCustomStringFormat:()=>Ko,$ZodDate:()=>ns,$ZodDefault:()=>ys,$ZodDiscriminatedUnion:()=>is,$ZodE164:()=>qo,$ZodEmail:()=>So,$ZodEmoji:()=>zo,$ZodEncodeError:()=>Ze,$ZodEnum:()=>ps,$ZodError:()=>mn,$ZodExactOptional:()=>hs,$ZodFile:()=>ds,$ZodFunction:()=>zs,$ZodGUID:()=>ko,$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:()=>ks,$ZodNanoID:()=>To,$ZodNever:()=>ts,$ZodNonOptional:()=>_s,$ZodNull:()=>Qo,$ZodNullable:()=>gs,$ZodNumber:()=>ar,$ZodNumberFormat:()=>Yo,$ZodObject:()=>ur,$ZodObjectJIT:()=>$d,$ZodOptional:()=>pr,$ZodPipe:()=>xs,$ZodPrefault:()=>bs,$ZodPromise:()=>Ts,$ZodReadonly:()=>Ss,$ZodRealError:()=>G,$ZodRecord:()=>cs,$ZodRegistry:()=>fr,$ZodSet:()=>ls,$ZodString:()=>Ue,$ZodStringFormat:()=>P,$ZodSuccess:()=>ws,$ZodSymbol:()=>Wo,$ZodTemplateLiteral:()=>vs,$ZodTransform:()=>ms,$ZodTuple:()=>lr,$ZodType:()=>k,$ZodULID:()=>Eo,$ZodURL:()=>vo,$ZodUUID:()=>xo,$ZodUndefined:()=>Vo,$ZodUnion:()=>dt,$ZodUnknown:()=>es,$ZodVoid:()=>rs,$ZodXID:()=>Ao,$ZodXor:()=>ss,$brand:()=>Vr,$constructor:()=>d,$input:()=>As,$output:()=>Es,Doc:()=>pt,JSONSchema:()=>Rc,JSONSchemaGenerator:()=>_r,NEVER:()=>Wr,TimePrecision:()=>ri,_any:()=>xi,_array:()=>zd,_base64:()=>Qs,_base64url:()=>Xs,_bigint:()=>gi,_boolean:()=>mi,_catch:()=>Hd,_check:()=>Ac,_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:()=>Bd,_discriminatedUnion:()=>Pd,_e164:()=>ei,_email:()=>Ns,_emoji:()=>Ms,_encode:()=>tc,_encodeAsync:()=>nc,_endsWith:()=>Hi,_enum:()=>Od,_file:()=>Vi,_float32:()=>li,_float64:()=>pi,_gt:()=>gr,_gte:()=>yt,_guid:()=>Os,_includes:()=>Ui,_int:()=>ui,_int32:()=>fi,_int64:()=>bi,_intersection:()=>Ed,_ipv4:()=>Ks,_ipv6:()=>Ys,_isoDate:()=>oi,_isoDateTime:()=>ni,_isoDuration:()=>ii,_isoTime:()=>si,_jwt:()=>ti,_ksuid:()=>Js,_lazy:()=>Yd,_length:()=>Di,_literal:()=>Zd,_lowercase:()=>Mi,_lt:()=>hr,_lte:()=>gt,_mac:()=>Gs,_map:()=>Cd,_max:()=>gt,_maxLength:()=>ji,_maxSize:()=>Oi,_mime:()=>Ji,_min:()=>yt,_minLength:()=>bt,_minSize:()=>Li,_multipleOf:()=>Ni,_nan:()=>Pi,_nanoid:()=>Bs,_nativeEnum:()=>Ld,_negative:()=>Ai,_never:()=>vi,_nonnegative:()=>Ci,_nonoptional:()=>Ud,_nonpositive:()=>Ri,_normalize:()=>Ki,_null:()=>ki,_nullable:()=>Md,_number:()=>ai,_optional:()=>Dd,_overwrite:()=>_e,_parse:()=>Yt,_parseAsync:()=>Gt,_pipe:()=>qd,_positive:()=>Ei,_promise:()=>Gd,_property:()=>qi,_readonly:()=>Jd,_record:()=>Rd,_refine:()=>Xi,_regex:()=>_t,_safeDecode:()=>ic,_safeDecodeAsync:()=>cc,_safeEncode:()=>sc,_safeEncodeAsync:()=>ac,_safeParse:()=>Wt,_safeParseAsync:()=>Vt,_set:()=>Nd,_size:()=>Zi,_slugify:()=>vd,_startsWith:()=>Fi,_string:()=>Rs,_stringFormat:()=>Fe,_stringbool:()=>na,_success:()=>Fd,_superRefine:()=>ea,_symbol:()=>wi,_templateLiteral:()=>Kd,_toLowerCase:()=>Gi,_toUpperCase:()=>Wi,_transform:()=>jd,_trim:()=>Yi,_tuple:()=>Ad,_uint32:()=>di,_uint64:()=>_i,_ulid:()=>Hs,_undefined:()=>$i,_union:()=>Td,_unknown:()=>Si,_uppercase:()=>Bi,_url:()=>mr,_uuid:()=>Ls,_uuidv4:()=>Zs,_uuidv6:()=>js,_uuidv7:()=>Ds,_void:()=>zi,_xid:()=>qs,_xor:()=>Id,clone:()=>H,config:()=>B,createStandardJSONSchemaMethod:()=>oa,createToJSONSchemaMethod:()=>Wd,decode:()=>wn,decodeAsync:()=>kn,describe:()=>ta,encode:()=>_n,encodeAsync:()=>$n,extractDefs:()=>$e,finalize:()=>ke,flattenError:()=>hn,formatError:()=>gn,globalConfig:()=>rt,globalRegistry:()=>ce,initializeContext:()=>we,isValidBase64:()=>Uo,isValidBase64URL:()=>zc,isValidJWT:()=>Tc,locales:()=>ht,meta:()=>ra,parse:()=>ye,parseAsync:()=>be,prettifyError:()=>bn,process:()=>T,regexes:()=>re,registry:()=>dr,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>xn,safeEncodeAsync:()=>vn,safeParse:()=>Ie,safeParseAsync:()=>Pe,toDotPath:()=>ec,toJSONSchema:()=>br,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.")}},Ze=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},rt={};function B(e){return e&&Object.assign(rt,e),rt}var te={};ze(te,{BIGINT_FORMAT_RANGES:()=>cn,Class:()=>Xr,NUMBER_FORMAT_RANGES:()=>an,aborted:()=>ge,allowsEval:()=>nn,assert:()=>Ef,assertEqual:()=>zf,assertIs:()=>If,assertNever:()=>Pf,assertNotEqual:()=>Tf,assignProp:()=>me,base64ToUint8Array:()=>Va,base64urlToUint8Array:()=>Ff,cached:()=>je,captureStackTrace:()=>Jt,cleanEnum:()=>Uf,cleanRegex:()=>st,clone:()=>H,cloneDef:()=>Cf,createTransparentProxy:()=>Df,defineLazy:()=>S,esc:()=>qt,escapeRegex:()=>ee,extend:()=>Kt,finalizeIssue:()=>Y,floatSafeRemainder:()=>tn,getElementAtPath:()=>Nf,getEnumValues:()=>ot,getLengthableOrigin:()=>ct,getParsedType:()=>jf,getSizableOrigin:()=>at,hexToUint8Array:()=>qf,isObject:()=>Te,isPlainObject:()=>he,issue:()=>Me,joinValues:()=>Af,jsonStringifyReplacer:()=>en,merge:()=>Mf,mergeDefs:()=>le,normalizeParams:()=>g,nullish:()=>de,numKeys:()=>Zf,objectClone:()=>Rf,omit:()=>ln,optionalKeys:()=>sn,parsedType:()=>Bf,partial:()=>fn,pick:()=>un,prefixIssues:()=>V,primitiveTypes:()=>on,promiseAllObject:()=>Of,propertyKeyTypes:()=>it,randomString:()=>Lf,required:()=>dn,safeExtend:()=>pn,shallowClone:()=>De,slugify:()=>rn,stringifyPrimitive:()=>Wa,uint8ArrayToBase64:()=>Qa,uint8ArrayToBase64url:()=>Hf,uint8ArrayToHex:()=>Jf,unwrapMessage:()=>nt});function zf(e){return e}function Tf(e){return e}function If(e){}function Pf(e){throw new Error("Unexpected value in exhaustive check")}function Ef(e){}function ot(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 je(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function de(e){return e==null}function st(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 S(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 Rf(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function me(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function le(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Cf(e){return le(e._zod.def)}function Nf(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Of(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 Lf(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function qt(e){return JSON.stringify(e)}function rn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Jt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var nn=je(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function he(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 De(e){return he(e)?{...e}:Array.isArray(e)?[...e]:e}function Zf(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var jf=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}`)}},it=new Set(["string","number","symbol"]),on=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function H(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 Df(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=le(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 me(this,"shape",i),i},checks:[]});return H(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=le(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 me(this,"shape",i),i},checks:[]});return H(e,s)}function Kt(e,t){if(!he(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=le(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return me(this,"shape",s),s}});return H(e,o)}function pn(e,t){if(!he(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=le(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return me(this,"shape",n),n}});return H(e,r)}function Mf(e,t){let r=le(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return me(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return H(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=le(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 me(this,"shape",u),u},checks:[]});return H(t,i)}function dn(e,t,r){let n=le(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 me(this,"shape",s),s}});return H(t,n)}function ge(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 nt(e){return typeof e=="string"?e:e?.message}function Y(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=nt(e.inst?._zod.def?.error?.(e))??nt(t?.error?.(e))??nt(r.customError?.(e))??nt(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function at(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function ct(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Bf(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 Me(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Uf(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 Ff(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Va(t+r)}function Hf(e){return Qa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function qf(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 Jf(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 Yt=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,B())));throw Jt(a,o?.callee),a}return i.value},ye=Yt(G),Gt=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,B())));throw Jt(a,o?.callee),a}return i.value},be=Gt(G),Wt=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,B())))}:{success:!0,data:s.value}},Ie=Wt(G),Vt=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,B())))}:{success:!0,data:s.value}},Pe=Vt(G),tc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yt(e)(t,r,o)},_n=tc(G),rc=e=>(t,r,n)=>Yt(e)(t,r,n),wn=rc(G),nc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Gt(e)(t,r,o)},$n=nc(G),oc=e=>async(t,r,n)=>Gt(e)(t,r,n),kn=oc(G),sc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Wt(e)(t,r,o)},xn=sc(G),ic=e=>(t,r,n)=>Wt(e)(t,r,n),Sn=ic(G),ac=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Vt(e)(t,r,o)},vn=ac(G),cc=e=>async(t,r,n)=>Vt(e)(t,r,n),zn=cc(G);var re={};ze(re,{base64:()=>Un,base64url:()=>Qt,bigint:()=>Yn,boolean:()=>Wn,browserEmail:()=>td,cidrv4:()=>Mn,cidrv6:()=>Bn,cuid:()=>Tn,cuid2:()=>In,date:()=>Hn,datetime:()=>Jn,domain:()=>od,duration:()=>Cn,e164:()=>Fn,email:()=>On,emoji:()=>Ln,extendedDuration:()=>Yf,guid:()=>Nn,hex:()=>sd,hostname:()=>nd,html5Email:()=>Qf,idnEmail:()=>ed,integer:()=>Gn,ipv4:()=>Zn,ipv6:()=>jn,ksuid:()=>An,lowercase:()=>Xn,mac:()=>Dn,md5_base64:()=>ad,md5_base64url:()=>cd,md5_hex:()=>id,nanoid:()=>Rn,null:()=>Vn,number:()=>Xt,rfc5322Email:()=>Xf,sha1_base64:()=>ld,sha1_base64url:()=>pd,sha1_hex:()=>ud,sha256_base64:()=>dd,sha256_base64url:()=>md,sha256_hex:()=>fd,sha384_base64:()=>gd,sha384_base64url:()=>yd,sha384_hex:()=>hd,sha512_base64:()=>_d,sha512_base64url:()=>wd,sha512_hex:()=>bd,string:()=>Kn,time:()=>qn,ulid:()=>Pn,undefined:()=>Qn,unicodeEmail:()=>uc,uppercase:()=>eo,uuid:()=>Ee,uuid4:()=>Gf,uuid6:()=>Wf,uuid7:()=>Vf,xid:()=>En});var Tn=/^[cC][^\s-]{8,}$/,In=/^[0-9a-z]+$/,Pn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,En=/^[0-9a-vA-V]{20}$/,An=/^[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)?)?)$/,Yf=/^[-+]?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})$/,Ee=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)$/,Gf=Ee(4),Wf=Ee(6),Vf=Ee(7),On=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Qf=/^[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])?)*$/,Xf=/^(([^<>()\[\]\\.,;:\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,ed=uc,td=/^[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])?)*$/,rd="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ln(){return new RegExp(rd,"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}=))?$/,Qt=/^[A-Za-z0-9_-]*$/,nd=/^(?=.{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])?)*\.?$/,od=/^([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+$/,Xt=/^-?\d+(?:\.\d+)?$/,Wn=/^(?:true|false)$/i,Vn=/^null$/i;var Qn=/^undefined$/i;var Xn=/^[^A-Z]*$/,eo=/^[^a-z]*$/,sd=/^[0-9a-fA-F]*$/;function ut(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function lt(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var id=/^[0-9a-fA-F]{32}$/,ad=ut(22,"=="),cd=lt(22),ud=/^[0-9a-fA-F]{40}$/,ld=ut(27,"="),pd=lt(27),fd=/^[0-9a-fA-F]{64}$/,dd=ut(43,"="),md=lt(43),hd=/^[0-9a-fA-F]{96}$/,gd=ut(64,""),yd=lt(64),bd=/^[0-9a-fA-F]{128}$/,_d=ut(86,"=="),wd=lt(86);var E=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"},er=d("$ZodCheckLessThan",(e,t)=>{E.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})}}),tr=d("$ZodCheckGreaterThan",(e,t)=>{E.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)=>{E.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)=>{E.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)=>{E.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;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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:at(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),so=d("$ZodCheckMinSize",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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:at(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),io=d("$ZodCheckSizeEquals",(e,t)=>{var r;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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:at(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;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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=ct(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;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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=ct(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;E.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!de(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=ct(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})}}),Be=d("$ZodCheckStringFormat",(e,t)=>{var r,n;E.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)=>{Be.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),Be.init(e,t)}),fo=d("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=eo),Be.init(e,t)}),mo=d("$ZodCheckIncludes",(e,t)=>{E.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)=>{E.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)=>{E.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)=>{E.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)=>{E.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)=>{E.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var pt=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 k=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=ge(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=ge(i,m)))});else{if(i.issues.length===m)continue;l||(l=ge(i,m))}}return p?p.then(()=>i):i},s=(i,a,u)=>{if(ge(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)}}S(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}))}),Ue=d("$ZodString",(e,t)=>{k.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)=>{Be.init(e,t),Ue.init(e,t)}),ko=d("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Nn),P.init(e,t)}),xo=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=Ee(n))}else t.pattern??(t.pattern=Ee());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)}),Eo=d("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Pn),P.init(e,t)}),Ao=d("$ZodXID",(e,t)=>{t.pattern??(t.pattern=En),P.init(e,t)}),Ro=d("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=An),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(!Qt.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=Qt),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})}}),ar=d("$ZodNumber",(e,t)=>{k.init(e,t),e._zod.pattern=e._zod.bag.pattern??Xt,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),ar.init(e,t)}),ft=d("$ZodBoolean",(e,t)=>{k.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}}),cr=d("$ZodBigInt",(e,t)=>{k.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),cr.init(e,t)}),Wo=d("$ZodSymbol",(e,t)=>{k.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)=>{k.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)=>{k.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)=>{k.init(e,t),e._zod.parse=r=>r}),es=d("$ZodUnknown",(e,t)=>{k.init(e,t),e._zod.parse=r=>r}),ts=d("$ZodNever",(e,t)=>{k.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)=>{k.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)=>{k.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)=>{k.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 ir(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=>ir(h,r,f,t,p))):ir(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 ur=d("$ZodObject",(e,t)=>{if(k.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=je(()=>Ic(t));S(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],b=h._zod.optout==="optional",y=h._zod.run({value:l[m],issues:[]},u);y instanceof Promise?p.push(y.then(x=>ir(x,a,m,l,b))):ir(y,a,m,l,b)}return s?Pc(p,l,a,u,n.value,e):p.length?Promise.all(p).then(()=>a):a}}),$d=d("$ZodObjectJIT",(e,t)=>{ur.init(e,t);let r=e._zod.parse,n=je(()=>Ic(t)),o=m=>{let h=new pt(["shape","payload","ctx"]),b=n.value,y=C=>{let L=qt(C);return`shape[${L}]._zod.run({ value: input[${L}], issues: [] }, ctx)`};h.write("const input = payload.value;");let x=Object.create(null),M=0;for(let C of b.keys)x[C]=`key_${M++}`;h.write("const newResult = {};");for(let C of b.keys){let L=x[C],K=qt(C),Kr=m[C]?._zod?.optout==="optional";h.write(`const ${L} = ${y(C)};`),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(C,L)=>X(m,C,L)},s,i=Te,a=!rt.jitless,l=a&&nn.value,p=t.catchall,f;e._zod.parse=(m,h)=>{f??(f=n.value);let b=m.value;return i(b)?a&&l&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),m=s(m,h),p?Pc([],b,m,h,f,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:b,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=>!ge(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,B())))}),t)}var dt=d("$ZodUnion",(e,t)=>{k.init(e,t),S(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),S(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),S(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),S(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=>st(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,B())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var ss=d("$ZodXor",(e,t)=>{dt.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,dt.init(e,t);let r=e._zod.parse;S(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=je(()=>{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)=>{k.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(he(e)&&he(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}),ge(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 lr=d("$ZodTuple",(e,t)=>{k.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=>rr(m,n,l))):rr(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=>rr(h,n,l))):rr(m,n,l)}}return i.length?Promise.all(i).then(()=>n):n}});function rr(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var cs=d("$ZodRecord",(e,t)=>{k.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!he(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"&&Xt.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,B())),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)=>{k.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&&(it.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,B()))})),t.issues.length&&(it.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,B()))})),r.value.set(e.value,t.value)}var ls=d("$ZodSet",(e,t)=>{k.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)=>{k.init(e,t);let r=ot(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>it.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(k.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)=>{k.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)=>{k.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ze(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 pr=d("$ZodOptional",(e,t)=>{k.init(e,t),e._zod.optin="optional",e._zod.optout="optional",S(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),S(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${st(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)=>{pr.init(e,t),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),gs=d("$ZodNullable",(e,t)=>{k.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${st(r.source)}|null)$`):void 0}),S(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)=>{k.init(e,t),e._zod.optin="optional",S(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=>kc(s,t)):kc(o,t)}});function kc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var bs=d("$ZodPrefault",(e,t)=>{k.init(e,t),e._zod.optin="optional",S(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)=>{k.init(e,t),S(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=>xc(s,e)):xc(o,e)}});function xc(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)=>{k.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ze("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)=>{k.init(e,t),S(e._zod,"optin",()=>t.innerType._zod.optin),S(e._zod,"optout",()=>t.innerType._zod.optout),S(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,B()))},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,B()))},input:r.value}),r.issues=[]),r)}}),ks=d("$ZodNaN",(e,t)=>{k.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)}),xs=d("$ZodPipe",(e,t)=>{k.init(e,t),S(e._zod,"values",()=>t.in._zod.values),S(e._zod,"optin",()=>t.in._zod.optin),S(e._zod,"optout",()=>t.out._zod.optout),S(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=>nr(i,t.in,n)):nr(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>nr(s,t.out,n)):nr(o,t.out,n)}});function nr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var mt=d("$ZodCodec",(e,t)=>{k.init(e,t),S(e._zod,"values",()=>t.in._zod.values),S(e._zod,"optin",()=>t.in._zod.optin),S(e._zod,"optout",()=>t.out._zod.optout),S(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=>or(i,t,n)):or(s,t,n)}else{let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>or(i,t,n)):or(s,t,n)}}});function or(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=>sr(e,s,t.out,r)):sr(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>sr(e,s,t.in,r)):sr(e,o,t.in,r)}}function sr(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)=>{k.init(e,t),S(e._zod,"propValues",()=>t.innerType._zod.propValues),S(e._zod,"values",()=>t.innerType._zod.values),S(e._zod,"optin",()=>t.innerType?._zod?.optin),S(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)=>{k.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)=>(k.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?ye(e._def.input,n):n,s=Reflect.apply(r,this,o);return e._def.output?ye(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 be(e._def.input,n):n,s=await Reflect.apply(r,this,o);return e._def.output?await be(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 lr({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)=>{k.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)=>{k.init(e,t),S(e._zod,"innerType",()=>t.getter()),S(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),S(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),S(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),S(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)=>{E.init(e,t),k.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(Me(o))}}var ht={};ze(ht,{default:()=>xd});var xd={};var Ec,Es=Symbol("ZodOutput"),As=Symbol("ZodInput"),fr=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 dr(){return new fr}(Ec=globalThis).__zod_globalRegistry??(Ec.__zod_globalRegistry=dr());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 mr(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 ki(e,t){return new e({type:"null",...g(t)})}function xi(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 hr(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!1})}function gt(e,t){return new er({check:"less_than",...g(t),value:e,inclusive:!0})}function gr(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!1})}function yt(e,t){return new tr({check:"greater_than",...g(t),value:e,inclusive:!0})}function Ei(e){return gr(0,e)}function Ai(e){return hr(0,e)}function Ri(e){return gt(0,e)}function Ci(e){return yt(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 bt(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 _t(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 _e(e){return new _o({check:"overwrite",tx:e})}function Ki(e){return _e(t=>t.normalize(e))}function Yi(){return _e(e=>e.trim())}function Gi(){return _e(e=>e.toLowerCase())}function Wi(){return _e(e=>e.toUpperCase())}function vd(){return _e(e=>rn(e))}function zd(e,t,r){return new e({type:"array",element:t,...g(r)})}function Td(e,t,r){return new e({type:"union",options:t,...g(r)})}function Id(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Pd(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Ed(e,t,r){return new e({type:"intersection",left:t,right:r})}function Ad(e,t,r,n){let o=r instanceof k,s=o?n:r,i=o?r:null;return new e({type:"tuple",items:t,rest:i,...g(s)})}function Rd(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Cd(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Nd(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Od(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 Ld(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function Zd(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 jd(e,t){return new e({type:"transform",transform:t})}function Dd(e,t){return new e({type:"optional",innerType:t})}function Md(e,t){return new e({type:"nullable",innerType:t})}function Bd(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():De(r)}})}function Ud(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function Fd(e,t){return new e({type:"success",innerType:t})}function Hd(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function qd(e,t,r){return new e({type:"pipe",in:t,out:r})}function Jd(e,t){return new e({type:"readonly",innerType:t})}function Kd(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function Yd(e,t){return new e({type:"lazy",getter:t})}function Gd(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=Ac(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Me(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(Me(o))}},e(r.value,r)));return t}function Ac(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function ta(e){let t=new E({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 E({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??mt,u=e.Boolean??ft,l=e.String??Ue,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,b)=>{let y=h;return r.case!=="sensitive"&&(y=y.toLowerCase()),s.has(y)?!0:i.has(y)?!1:(b.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:b.value,inst:m,continue:!1}),{})}),reverseTransform:((h,b)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Fe(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 we(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"&&q(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 $e(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??(b=>b);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 ke(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 y in u)y==="$ref"||y==="allOf"||y in l||delete u[y];if(h.$ref&&m.def)for(let y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}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 q(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 q(n.element,r);if(n.type==="set")return q(n.valueType,r);if(n.type==="lazy")return q(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 q(n.innerType,r);if(n.type==="intersection")return q(n.left,r)||q(n.right,r);if(n.type==="record"||n.type==="map")return q(n.keyType,r)||q(n.valueType,r);if(n.type==="pipe")return q(n.in,r)||q(n.out,r);if(n.type==="object"){for(let o in n.shape)if(q(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(q(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(q(o,r))return!0;return!!(n.rest&&q(n.rest,r))}return!1}var Wd=(e,t={})=>r=>{let n=we({...r,processors:t});return T(e,n),$e(n,e),ke(n,e)},oa=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=we({...o??{},target:s,io:t,processors:r});return T(e,i),$e(i,e),ke(i,e)};var Vd={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Qd=(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=Vd[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}))])}},Xd=(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)},em=(e,t,r,n)=>{r.type="boolean"},tm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},rm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},nm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},om=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},sm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},im=(e,t,r,n)=>{r.not={}},am=(e,t,r,n)=>{},cm=(e,t,r,n)=>{},um=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},lm=(e,t,r,n)=>{let o=e._zod.def,s=ot(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},pm=(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},fm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},dm=(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},mm=(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)},hm=(e,t,r,n)=>{r.type="boolean"},gm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ym=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},_m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},wm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},$m=(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"]})},km=(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},Sm=(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},vm=(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)},zm=(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)}},Tm=(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"}]},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},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,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Em=(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},Rm=(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},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,r.readOnly=!0},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.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Lm=(e,t,r,n)=>{let o=e._zod.innerType;T(o,t,n);let s=t.seen.get(e);s.ref=o},yr={string:Qd,number:Xd,boolean:em,bigint:tm,symbol:rm,null:nm,undefined:om,void:sm,never:im,any:am,unknown:cm,date:um,enum:lm,literal:pm,nan:fm,template_literal:dm,file:mm,success:hm,custom:gm,function:ym,transform:bm,map:_m,set:wm,array:$m,object:km,union:xm,intersection:Sm,tuple:vm,record:zm,nullable:Tm,nonoptional:Im,default:Pm,prefault:Em,catch:Am,pipe:Rm,readonly:Cm,promise:Nm,optional:Om,lazy:Lm};function br(e,t){if("_idmap"in e){let n=e,o=we({...t,processors:yr}),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;$e(o,p),i[l]=ke(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=we({...t,processors:yr});return T(e,r),$e(r,e),ke(r,e)}var _r=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=we({processors:yr,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)),$e(this.ctx,t);let n=ke(this.ctx,t),{"~standard":o,...s}=n;return s}};var Rc={};var v=d("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");k.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>ye(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Ie(e,r,n),e.parseAsync=async(r,n)=>be(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)=>H(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),qe=d("ZodMiniString",(e,t)=>{Ue.init(e,t),v.init(e,t)});function _(e){return Rs(qe,e)}var A=d("ZodMiniStringFormat",(e,t)=>{P.init(e,t),qe.init(e,t)}),Cc=d("ZodMiniEmail",(e,t)=>{So.init(e,t),A.init(e,t)});function jm(e){return Ns(Cc,e)}var Nc=d("ZodMiniGUID",(e,t)=>{ko.init(e,t),A.init(e,t)});function Dm(e){return Os(Nc,e)}var wt=d("ZodMiniUUID",(e,t)=>{xo.init(e,t),A.init(e,t)});function Mm(e){return Ls(wt,e)}function Bm(e){return Zs(wt,e)}function Um(e){return js(wt,e)}function Fm(e){return Ds(wt,e)}var sa=d("ZodMiniURL",(e,t)=>{vo.init(e,t),A.init(e,t)});function Hm(e){return mr(sa,e)}function qm(e){return mr(sa,{protocol:/^https?$/,hostname:re.domain,...g(e)})}var Oc=d("ZodMiniEmoji",(e,t)=>{zo.init(e,t),A.init(e,t)});function Jm(e){return Ms(Oc,e)}var Lc=d("ZodMiniNanoID",(e,t)=>{To.init(e,t),A.init(e,t)});function Km(e){return Bs(Lc,e)}var Zc=d("ZodMiniCUID",(e,t)=>{Io.init(e,t),A.init(e,t)});function Ym(e){return Us(Zc,e)}var jc=d("ZodMiniCUID2",(e,t)=>{Po.init(e,t),A.init(e,t)});function Gm(e){return Fs(jc,e)}var Dc=d("ZodMiniULID",(e,t)=>{Eo.init(e,t),A.init(e,t)});function Wm(e){return Hs(Dc,e)}var Mc=d("ZodMiniXID",(e,t)=>{Ao.init(e,t),A.init(e,t)});function Vm(e){return qs(Mc,e)}var Bc=d("ZodMiniKSUID",(e,t)=>{Ro.init(e,t),A.init(e,t)});function Qm(e){return Js(Bc,e)}var Uc=d("ZodMiniIPv4",(e,t)=>{Zo.init(e,t),A.init(e,t)});function Xm(e){return Ks(Uc,e)}var Fc=d("ZodMiniIPv6",(e,t)=>{jo.init(e,t),A.init(e,t)});function eh(e){return Ys(Fc,e)}var Hc=d("ZodMiniCIDRv4",(e,t)=>{Mo.init(e,t),A.init(e,t)});function th(e){return Ws(Hc,e)}var qc=d("ZodMiniCIDRv6",(e,t)=>{Bo.init(e,t),A.init(e,t)});function rh(e){return Vs(qc,e)}var Jc=d("ZodMiniMAC",(e,t)=>{Do.init(e,t),A.init(e,t)});function nh(e){return Gs(Jc,e)}var Kc=d("ZodMiniBase64",(e,t)=>{Fo.init(e,t),A.init(e,t)});function oh(e){return Qs(Kc,e)}var Yc=d("ZodMiniBase64URL",(e,t)=>{Ho.init(e,t),A.init(e,t)});function sh(e){return Xs(Yc,e)}var Gc=d("ZodMiniE164",(e,t)=>{qo.init(e,t),A.init(e,t)});function ih(e){return ei(Gc,e)}var Wc=d("ZodMiniJWT",(e,t)=>{Jo.init(e,t),A.init(e,t)});function ah(e){return ti(Wc,e)}var $t=d("ZodMiniCustomStringFormat",(e,t)=>{Ko.init(e,t),A.init(e,t)});function ch(e,t,r={}){return Fe($t,e,t,r)}function uh(e){return Fe($t,"hostname",re.hostname,e)}function lh(e){return Fe($t,"hex",re.hex,e)}function ph(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=re[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Fe($t,n,o,t)}var kt=d("ZodMiniNumber",(e,t)=>{ar.init(e,t),v.init(e,t)});function xe(e){return ai(kt,e)}var Je=d("ZodMiniNumberFormat",(e,t)=>{Yo.init(e,t),kt.init(e,t)});function fh(e){return ui(Je,e)}function dh(e){return li(Je,e)}function mh(e){return pi(Je,e)}function hh(e){return fi(Je,e)}function gh(e){return di(Je,e)}var xt=d("ZodMiniBoolean",(e,t)=>{ft.init(e,t),v.init(e,t)});function Ke(e){return mi(xt,e)}var St=d("ZodMiniBigInt",(e,t)=>{cr.init(e,t),v.init(e,t)});function yh(e){return gi(St,e)}var ia=d("ZodMiniBigIntFormat",(e,t)=>{Go.init(e,t),St.init(e,t)});function bh(e){return bi(ia,e)}function _h(e){return _i(ia,e)}var Vc=d("ZodMiniSymbol",(e,t)=>{Wo.init(e,t),v.init(e,t)});function wh(e){return wi(Vc,e)}var Qc=d("ZodMiniUndefined",(e,t)=>{Vo.init(e,t),v.init(e,t)});function $h(e){return $i(Qc,e)}var Xc=d("ZodMiniNull",(e,t)=>{Qo.init(e,t),v.init(e,t)});function eu(e){return ki(Xc,e)}var tu=d("ZodMiniAny",(e,t)=>{Xo.init(e,t),v.init(e,t)});function kh(){return xi(tu)}var ru=d("ZodMiniUnknown",(e,t)=>{es.init(e,t),v.init(e,t)});function wr(){return Si(ru)}var nu=d("ZodMiniNever",(e,t)=>{ts.init(e,t),v.init(e,t)});function ou(e){return vi(nu,e)}var su=d("ZodMiniVoid",(e,t)=>{rs.init(e,t),v.init(e,t)});function xh(e){return zi(su,e)}var $r=d("ZodMiniDate",(e,t)=>{ns.init(e,t),v.init(e,t)});function Sh(e){return Ti($r,e)}var iu=d("ZodMiniArray",(e,t)=>{os.init(e,t),v.init(e,t)});function J(e,t){return new iu({type:"array",element:e,...g(t)})}function vh(e){let t=e._zod.def.shape;return gu(Object.keys(t))}var kr=d("ZodMiniObject",(e,t)=>{ur.init(e,t),v.init(e,t),S(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new kr(r)}function zh(e,t){return new kr({type:"object",shape:e,catchall:ou(),...g(t)})}function Th(e,t){return new kr({type:"object",shape:e,catchall:wr(),...g(t)})}function Se(e,t){return Kt(e,t)}function Ih(e,t){return pn(e,t)}function Ph(e,t){return Kt(e,t)}function Eh(e,t){return un(e,t)}function Ah(e,t){return ln(e,t)}function Rh(e,t){return fn(ua,e,t)}function Ch(e,t){return dn(la,e,t)}function Nh(e,t){return e.clone({...e._zod.def,catchall:t})}var aa=d("ZodMiniUnion",(e,t)=>{dt.init(e,t),v.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 Oh(e,t){return new cu({type:"union",options:e,inclusive:!1,...g(t)})}var uu=d("ZodMiniDiscriminatedUnion",(e,t)=>{is.init(e,t),v.init(e,t)});function Lh(e,t,r){return new uu({type:"union",options:t,discriminator:e,...g(r)})}var lu=d("ZodMiniIntersection",(e,t)=>{as.init(e,t),v.init(e,t)});function Zh(e,t){return new lu({type:"intersection",left:e,right:t})}var pu=d("ZodMiniTuple",(e,t)=>{lr.init(e,t),v.init(e,t)});function fu(e,t,r){let n=t instanceof k,o=n?r:t,s=n?t:null;return new pu({type:"tuple",items:e,rest:s,...g(o)})}var xr=d("ZodMiniRecord",(e,t)=>{cs.init(e,t),v.init(e,t)});function du(e,t,r){return new xr({type:"record",keyType:e,valueType:t,...g(r)})}function jh(e,t,r){let n=H(e);return n._zod.values=void 0,new xr({type:"record",keyType:n,valueType:t,...g(r)})}function Dh(e,t,r){return new xr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var mu=d("ZodMiniMap",(e,t)=>{us.init(e,t),v.init(e,t)});function Mh(e,t,r){return new mu({type:"map",keyType:e,valueType:t,...g(r)})}var hu=d("ZodMiniSet",(e,t)=>{ls.init(e,t),v.init(e,t)});function Bh(e,t){return new hu({type:"set",valueType:e,...g(t)})}var ca=d("ZodMiniEnum",(e,t)=>{ps.init(e,t),v.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 Uh(e,t){return new ca({type:"enum",entries:e,...g(t)})}var yu=d("ZodMiniLiteral",(e,t)=>{fs.init(e,t),v.init(e,t)});function Fh(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),v.init(e,t)});function Hh(e){return Vi(bu,e)}var _u=d("ZodMiniTransform",(e,t)=>{ms.init(e,t),v.init(e,t)});function qh(e){return new _u({type:"transform",transform:e})}var ua=d("ZodMiniOptional",(e,t)=>{pr.init(e,t),v.init(e,t)});function w(e){return new ua({type:"optional",innerType:e})}var wu=d("ZodMiniExactOptional",(e,t)=>{hs.init(e,t),v.init(e,t)});function Jh(e){return new wu({type:"optional",innerType:e})}var $u=d("ZodMiniNullable",(e,t)=>{gs.init(e,t),v.init(e,t)});function Sr(e){return new $u({type:"nullable",innerType:e})}function Kh(e){return w(Sr(e))}var ku=d("ZodMiniDefault",(e,t)=>{ys.init(e,t),v.init(e,t)});function Yh(e,t){return new ku({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():De(t)}})}var xu=d("ZodMiniPrefault",(e,t)=>{bs.init(e,t),v.init(e,t)});function Gh(e,t){return new xu({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():De(t)}})}var la=d("ZodMiniNonOptional",(e,t)=>{_s.init(e,t),v.init(e,t)});function Wh(e,t){return new la({type:"nonoptional",innerType:e,...g(t)})}var Su=d("ZodMiniSuccess",(e,t)=>{ws.init(e,t),v.init(e,t)});function Vh(e){return new Su({type:"success",innerType:e})}var vu=d("ZodMiniCatch",(e,t)=>{$s.init(e,t),v.init(e,t)});function Qh(e,t){return new vu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var zu=d("ZodMiniNaN",(e,t)=>{ks.init(e,t),v.init(e,t)});function Xh(e){return Pi(zu,e)}var pa=d("ZodMiniPipe",(e,t)=>{xs.init(e,t),v.init(e,t)});function eg(e,t){return new pa({type:"pipe",in:e,out:t})}var fa=d("ZodMiniCodec",(e,t)=>{pa.init(e,t),mt.init(e,t)});function tg(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),v.init(e,t)});function rg(e){return new Tu({type:"readonly",innerType:e})}var Iu=d("ZodMiniTemplateLiteral",(e,t)=>{vs.init(e,t),v.init(e,t)});function ng(e,t){return new Iu({type:"template_literal",parts:e,...g(t)})}var Pu=d("ZodMiniLazy",(e,t)=>{Is.init(e,t),v.init(e,t)});function Eu(e){return new Pu({type:"lazy",getter:e})}var Au=d("ZodMiniPromise",(e,t)=>{Ts.init(e,t),v.init(e,t)});function og(e){return new Au({type:"promise",innerType:e})}var da=d("ZodMiniCustom",(e,t)=>{Ps.init(e,t),v.init(e,t)});function sg(e,t){let r=new E({check:"custom",...g(t)});return r._zod.check=e,r}function Ru(e,t){return Qi(da,e??(()=>!0),t)}function ig(e,t={}){return Xi(da,e,t)}function ag(e){return ea(e)}var cg=ta,ug=ra;function lg(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 pg=(...e)=>na({Codec:fa,Boolean:xt,String:qe},...e);function fg(){let e=Eu(()=>au([_(),xe(),Ke(),eu(),J(e),du(_(),e)]));return e}var Cu=d("ZodMiniFunction",(e,t)=>{zs.init(e,t),v.init(e,t)});function dg(e){return new Cu({type:"function",input:Array.isArray(e?.input)?fu(e?.input):e?.input??J(wr()),output:e?.output??wr()})}var ma={};ze(ma,{ZodMiniISODate:()=>zr,ZodMiniISODateTime:()=>vr,ZodMiniISODuration:()=>Ir,ZodMiniISOTime:()=>Tr,date:()=>hg,datetime:()=>mg,duration:()=>yg,time:()=>gg});var vr=d("ZodMiniISODateTime",(e,t)=>{Co.init(e,t),A.init(e,t)});function mg(e){return ni(vr,e)}var zr=d("ZodMiniISODate",(e,t)=>{No.init(e,t),A.init(e,t)});function hg(e){return oi(zr,e)}var Tr=d("ZodMiniISOTime",(e,t)=>{Oo.init(e,t),A.init(e,t)});function gg(e){return si(Tr,e)}var Ir=d("ZodMiniISODuration",(e,t)=>{Lo.init(e,t),A.init(e,t)});function yg(e){return ii(Ir,e)}var ha={};ze(ha,{bigint:()=>$g,boolean:()=>wg,date:()=>kg,number:()=>_g,string:()=>bg});function bg(e){return Cs(qe,e)}function _g(e){return ci(kt,e)}function wg(e){return hi(xt,e)}function $g(e){return yi(St,e)}function kg(e){return Ii($r,e)}var Q=_().check(bt(1)),xg=_().check(_t(/^https?:\/\/.+/)),Ye=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=Se(Ye,{JIRA_BASE_URL:xg,JIRA_USER:Q,JIRA_API_TOKEN:Q,JIRA_PROJECT_KEY:Q,CLANCY_JQL_STATUS:w(_()),CLANCY_JQL_SPRINT:w(_())}),Lu=Se(Ye,{GITHUB_TOKEN:Q,GITHUB_REPO:Q}),Zu=Se(Ye,{LINEAR_API_KEY:Q,LINEAR_TEAM_ID:Q}),ju=Se(Ye,{SHORTCUT_API_TOKEN:Q,SHORTCUT_WORKFLOW:w(_())}),Du=Se(Ye,{NOTION_TOKEN:Q,NOTION_DATABASE_ID:Q,CLANCY_NOTION_STATUS:w(_()),CLANCY_NOTION_ASSIGNEE:w(_()),CLANCY_NOTION_LABELS:w(_()),CLANCY_NOTION_PARENT:w(_())}),Mu=Se(Ye,{AZDO_ORG:Q,AZDO_PROJECT:Q,AZDO_PAT:Q,CLANCY_AZDO_STATUS:w(_()),CLANCY_AZDO_WIT:w(_())});function Pr(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 Z(e){return e.env}import{appendFileSync as Bu,mkdirSync as Sg,readFileSync as vg}from"node:fs";import{dirname as zg,join as Uu}from"node:path";function Tg(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 R(e,t,r,n,o,s){let i=Uu(e,".clancy","progress.txt");Sg(zg(i),{recursive:!0});let a=Tg(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=vg(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 b=i[h],y=b.match(/^pr:(\d+)$/),x=b.match(/^parent:(.+)$/);y?p=parseInt(y[1],10):x?f=x[1]:h>=3&&!l&&b===b.toUpperCase()&&b.length>1?l=b:m.push(b)}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 j(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 Ig(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function Ge(e,t,r,n,o){let s=[],i=r?Ig(r):!1;switch(e.provider){case"github":s.push(i?`Part of ${t.key}`:`Closes ${t.key}`),o&&!i&&s.push(`Closes ${o}`);break;case"jira":s.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":s.push(`**Linear:** ${t.key}`);break}return s.push(""),t.description&&(s.push("## Description"),s.push(""),s.push(t.description),s.push("")),n&&(s.push("## \u26A0 Verification Warning"),s.push(""),s.push(n),s.push(""),s.push("This PR may need manual fixes before merging."),s.push("")),s.push("---"),s.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),s.push(""),s.push("---"),s.push("<details>"),s.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),s.push(""),s.push("To request changes:"),s.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),s.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."),s.push(""),s.push("Example: `Rework: The form validation doesn't handle empty passwords`"),s.push(""),s.push("</details>"),s.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 Pg}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 Eg(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 ue(e){let t;try{t=Pg("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Rg(t,e):Eg(t):{host:"none"}}function Rg(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 vt(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 Cg=I({id:xe(),links:I({html:w(I({href:w(_())}))}),participants:J(I({state:w(_()),role:_()}))}),Ku=I({values:J(Cg)}),Ng=I({content:I({raw:_()}),inline:w(I({path:w(_())})),created_on:_(),user:w(I({nickname:w(_())}))}),ya=I({values:J(Ng)}),Og=I({id:xe(),links:I({self:w(J(I({href:w(_())})))}),reviewers:J(I({status:_()}))}),Yu=I({values:J(Og)}),Lg=I({text:_(),anchor:w(I({path:w(_())})),createdDate:xe(),author:w(I({slug:w(_())}))}),Zg=I({action:_(),comment:w(Lg)}),ba=I({values:J(Zg)});async function Ae(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 We(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 Ae(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:We(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 Ae(`${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:We(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:We(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:We(e,t)}});if(!m.ok)return;let h=ya.parse(await m.json()),b=s?h.values.filter(X=>X.created_on>s):h.values,y=b.some(X=>X.inline!=null),x=b.some(X=>X.inline==null&&ie(X.content.raw));return{changesRequested:y||x,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:We(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()),b=s?Date.parse(s):void 0,y=h.values.filter(C=>C.action==="COMMENTED"&&C.comment&&(b==null||C.comment.createdDate>b)),x=y.some(C=>C.comment.anchor!=null),M=y.some(C=>C.comment.anchor==null&&ie(C.comment.text));return{changesRequested:x||M,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 jg=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(jg),Dg=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(Dg),Mg=c.object({number:c.number(),html_url:c.string(),state:c.string()}),ol=c.array(Mg),Bg=c.object({state:c.string(),user:c.object({login:c.string()}),submitted_at:c.string()}),sl=c.array(Bg),Ug=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(Ug);var D="https://api.github.com";async function Er(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 U(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=D,s,i){try{let a=U(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 b=wa.parse(await m.json()),y=_a.parse(await h.json()),x=i?b.filter(ae=>ae.user?.login!==i):b,M=i?y.filter(ae=>ae.user?.login!==i):y,X=x.length>0,C=M.some(ae=>ae.body&&ie(ae.body)),L=X||C,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 pe of Kr)pe.state==="PENDING"||pe.state==="DISMISSED"||Ma.set(pe.user.login,pe.state);let Ba=[...Ma.entries()].filter(([,pe])=>pe==="CHANGES_REQUESTED");Ba.length>0&&(L=!0,K=Ba.map(([pe])=>pe))}}catch{}return{changesRequested:L,prNumber:p.number,prUrl:p.html_url,reviewers:K}}catch{return}}async function al(e,t,r,n=D,o,s){try{let i=U(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(y=>y.user?.login!==s):p,h=s?f.filter(y=>y.user?.login!==s):f,b=[];for(let y of m){if(!y.body)continue;let x=y.path?`[${y.path}] `:"";b.push(`${x}${y.body}`)}for(let y of h)y.body&&ie(y.body)&&b.push(Re(y.body));return b}catch{return[]}}async function cl(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function ul(e,t,r,n,o=D){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...U(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function ll(e,t,r,n,o,s,i=D){return Ae(`${i}/repos/${t}/pulls`,U(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 Fg=I({iid:xe(),web_url:_(),detailed_merge_status:w(_())}),pl=J(Fg),Hg=I({body:_(),resolvable:Ke(),resolved:w(Ke()),system:Ke(),type:w(Sr(_())),created_at:w(_()),position:w(I({new_path:w(_())})),author:w(I({username:_()}))}),qg=I({id:w(_()),notes:J(Hg)}),$a=J(qg);async function fl(e,t,r,n,o,s,i){let a=encodeURIComponent(r);return Ae(`${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 b of m){for(let y of b.notes)if(!y.system&&!(o&&y.created_at&&y.created_at<=o)){if(y.type==="DiffNote"&&y.resolvable!==!1&&y.resolved!==!0){h=!0;break}if(ie(y.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 b=h.position?.new_path?`[${h.position.new_path}] `:"";l.push(`${b}${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 zt(e,t){let r=Z(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 Ce(e,t,r,n,o,s){let i=zt(e,t);if(!i)return;let a=vt(t,Z(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 Ar(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 ka(e,t){let r=Fa(e),n=et(e);if(r)return Mt(e)?!0:(console.log(z(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Le(`\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"}),tt(e))console.log(N(` \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(Le(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function xa(e,t,r,n,o,s=!1,i,a,u){if(!tt(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||R(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,i),O(n);let y=Ne(Date.now()-o);return console.log(""),console.log(z(`\u26A0 ${t.key} implemented but push failed`)+$(` (${y})`)),!1}console.log(N(` \u2713 Pushed ${r}`));let p;try{let y=Kg(process.cwd(),".clancy","verify-attempt.txt"),x=Jg(y,"utf8").trim(),M=parseInt(x,10);M>0&&(p=`Verification checks did not fully pass (${M} attempt(s)). Review carefully.`)}catch{}let f=Z(e).CLANCY_GIT_PLATFORM,m=ue(f),h=`feat(${t.key}): ${t.title}`,b=Ge(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,p,u);if(m.host!=="none"&&m.host!=="unknown"&&m.host!=="azure"){let y=await Ce(e,m,r,n,h,b);if(y?.ok)console.log(N(` \u2713 PR created: ${y.url}`)),s||R(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||R(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 x=Ar(m,r,n);console.log(x?$(` Create one manually: ${x}`):$(" Branch pushed \u2014 create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}else{let x=Ar(m,r,n);console.log(x?$(` Create a PR: ${x}`):$(" Branch pushed to remote. Create a PR/MR manually.")),s||R(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}}else m.host==="none"?(console.log(z(`\u26A0 No git remote configured. Branch available locally: ${r}`)),s||R(process.cwd(),t.key,t.title,"LOCAL",void 0,i)):(console.log($(" Branch pushed to remote. Create a PR/MR manually.")),s||R(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 O(n),!0}async function bl(e,t,r,n,o,s){console.log(""),console.log(N(`\u{1F389} All children of ${t} are done!`)),console.log($(` Creating epic PR: ${n} \u2192 ${o}`));let i=j(process.cwd(),"PR_CREATED"),a=j(process.cwd(),"DONE"),u=j(process.cwd(),"REWORK"),l=j(process.cwd(),"PUSHED"),p=[...i,...a,...u,...l].filter(M=>M.parent===t),f=Z(e).CLANCY_GIT_PLATFORM,m=ue(f),h=`feat(${t}): ${r}`,b=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 y=await Ce(e,m,n,o,h,b);if(y?.ok){if(console.log(N(` \u2713 Epic PR created: ${y.url}`)),R(process.cwd(),t,r,"EPIC_PR_CREATED",y.number),e.provider!=="github"&&s){let M=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;M&&await s.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},M)}return!0}if(y&&!y.ok&&y.alreadyExists)return console.log(z(` \u26A0 An epic PR already exists for ${n}.`)),R(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(z(`\u26A0 Epic PR creation failed: ${y?.error??"unknown error"}`)),console.log($(" Create it manually:")),console.log($(` Branch: ${n} \u2192 ${o}`));let x=Ar(m,n,o);return x&&console.log($(` ${x}`)),!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(!ka(o,s))return e.originalBranch&&O(e.originalBranch),!1}else Gr(l,s);Mt(n)?O(n):(O(l),O(n,!0))}else if(i&&!u){if(!ka(o,s))return e.originalBranch&&O(e.originalBranch),!1;O(o),O(n,!0)}else Gr(s,s),O(s),O(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 Yg(e){return e.includes("hooks.slack.com")}function Gg(e){return JSON.stringify({text:e})}function Wg(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=Yg(e)?Gg(t):Wg(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=Ne(Date.now()-e.startTime);console.log(""),console.log(N(`\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 Vg,mkdirSync as Qg}from"node:fs";import{dirname as Xg,join as ey}from"node:path";function kl(e,t,r,n=6600){let o=ey(e,".clancy","costs.log");Qg(Xg(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
+ `;Vg(o,f,"utf8")}function xl(e){let t=e.config,r=e.ticket;try{let n=Ut(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");kl(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}import{mkdirSync as ty,readFileSync as ry,renameSync as ny,writeFileSync as oy}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=ry(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";ty(Sl(e,".clancy"),{recursive:!0}),oy(n,JSON.stringify(t,null,2)+`
48
+ `,"utf8"),ny(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 El(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 sy=c.object({login:c.string()}),iy=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,Rr;function Cr(e){return iy.test(e)}async function Rl(e,t){return Er(`${D}/repos/${t}`,U(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 Nr(e,t){if(Rr)return Rr;try{let r=await fetch(`${t??D}/user`,{headers:U(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=sy.safeParse(n);if(o.success)return Rr=o.data.login,Rr;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(`${D}/repos/${t}/issues?${a}`,{headers:U(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(!Cr(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(`${D}/repos/${t}/issues/${a}`,{headers:U(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(Cr(t))try{let n=await Al(e,t,`Epic: #${r}`);return n&&n.total>0?n:await Al(e,t,`Parent: #${r}`)}catch{return}}async function Al(e,t,r){let n=U(e),o=`"${r}" repo:${t} is:issue`,s=new URLSearchParams({q:o,per_page:"1"}),i=await fetch(`${D}/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(`${D}/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 Ve(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function Qe(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=j(process.cwd(),"PR_CREATED"),r=j(process.cwd(),"REWORK"),n=j(process.cwd(),"PUSHED"),o=j(process.cwd(),"PUSH_FAILED"),s=[...t,...r,...n,...o];if(s.length===0)return;let i=Z(e).CLANCY_GIT_PLATFORM,a=ue(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure")return;let u=zt(e,a);if(!u)return;let l=vt(a,Z(e).CLANCY_GIT_API_URL);if(!l)return;let p;if(a.host==="github")try{p=await Nr(u.token,l)}catch{}let f=s.slice(0,5);for(let m of f){let h=Ve(e.provider,m.key),b;if(m.timestamp){let x=new Date(m.timestamp.replace(" ","T")+"Z");b=Number.isNaN(x.getTime())?void 0:x.toISOString()}let y;switch(a.host){case"github":y=await il(u.token,`${a.owner}/${a.repo}`,h,a.owner,l,b,p);break;case"gitlab":y=await hl(u.token,l,a.projectPath,h,b);break;case"bitbucket":y=await Xu(u.username,u.token,a.workspace,a.repoSlug,h,b);break;case"bitbucket-server":y=await tl(u.token,l,a.projectKey,a.repoSlug,h,b);break}if(y?.changesRequested){let x=[],M;switch(a.host){case"github":x=await al(u.token,`${a.owner}/${a.repo}`,y.prNumber,l,b,p);break;case"gitlab":{let C=await gl(u.token,l,a.projectPath,y.prNumber,b);x=C.comments,M=C.discussionIds;break}case"bitbucket":x=await el(u.username,u.token,a.workspace,a.repoSlug,y.prNumber,b);break;case"bitbucket-server":x=await rl(u.token,l,a.projectKey,a.repoSlug,y.prNumber,b);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:x,prNumber:y.prNumber,discussionIds:M,reviewers:y.reviewers??[]}}}}function ay(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=Z(e).CLANCY_GIT_PLATFORM,i=ue(s);if(i.host==="none"||i.host==="unknown"||i.host==="azure")return;let a=zt(e,i);if(!a)return;let u=vt(i,Z(e).CLANCY_GIT_API_URL);if(!u)return;let l=ay(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,l=s&&i?r.parentInfo:void 0,p=l&&/^#\d+$/.test(l),f=l&&t.provider==="github"&&!p?void 0:l;if(a){if(!await xa(t,r,n,o,e.startTime,!0,u,e.board))return R(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,u),!1;R(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 xa(t,r,n,o,e.startTime,!1,u,e.board,f))return!1;El(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: ${Oe(`[${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=j(e.cwd,"PR_CREATED"),o=j(e.cwd,"REWORK"),s=j(e.cwd,"PUSHED"),i=[...n,...o,...s],a=new Set(j(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=Qe(t.provider,l,p),h=await bl(t,p,p,m,l,r);console.log(h?N(` \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 cy(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 uy(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=cy(e),{stdout:n,ok:o}=Ul(r,t);return o?uy(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}`)),R(e.cwd,r.key,r.title,"SKIPPED"),!1}console.log(N(" \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 ly(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 py(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=ly(e.provider),r=py(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 fy,readFileSync as dy}from"node:fs";import{join as my}from"node:path";function hy(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=my(e,".clancy",".env");if(!fy(t))return;let r=dy(t,"utf8");return hy(r)}function gy(e){try{return va("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function yy(){try{return va("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function Or(e){for(let n of["claude","git"])if(!gy(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(!yy())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(Dt()){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 Tt}from"node:child_process";function Vl(e){let t=e.ticketBranch;if(!et(t))return;let r;try{r=Tt("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{O(t)}catch{return}let n=!1,o=!1;try{n=Dt()}catch{}try{o=Tt("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=Tt("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{O(r)}catch{}if(!(!n&&!o))return{branch:t,hasUncommitted:n,hasUnpushed:o}}async function Ql(e,t,r){try{if(O(r.branch),r.hasUncommitted)try{Tt("git",["add","-A"],{encoding:"utf8"}),Tt("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(z(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!tt(r.branch))return console.log(z(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(N(` \u2713 Pushed ${r.branch}`));let o=Z(e).CLANCY_GIT_PLATFORM,s=ue(o),i=`feat(${t.ticketKey}): ${t.ticketTitle}`,a=Ge(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 Ce(e,s,r.branch,t.targetBranch,i,a);u?.ok?(console.log(N(` \u2713 PR created: ${u.url}`)),R(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.")),R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else R(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{O(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=Ut(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...`)),Ft(e.cwd),Ht(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=Pr(n.env);if(typeof o!="string"&&await Ql(o,t,r))return console.log(N(` \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}async function ep(e){let t=e.config;if(!t)return!0;try{let r=j(e.cwd,"PUSHED"),n=j(e.cwd,"PR_CREATED"),o=new Set(n.map(l=>l.key)),s=r.filter(l=>!o.has(l.key));if(!s.length)return!0;let i=Z(t).CLANCY_GIT_PLATFORM,a=ue(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure"){for(let l of s){console.log($(` Skipping PR retry for ${l.key} \u2014 remote host "${a.host}" does not support PR creation`));let p=l.parent&&l.parent!=="none"?l.parent:void 0;R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)}return!0}let u=t.env.CLANCY_BASE_BRANCH??"main";for(let l of s){console.log(z(` \u21BB Retrying PR creation for ${l.key} (previously pushed)`));let p=l.parent&&l.parent!=="none"?l.parent:void 0,f=Ve(t.provider,l.key),m=Qe(t.provider,u,p),h=`feat(${l.key}): ${l.summary}`,b=Ge(t,{key:l.key,title:l.summary,description:l.summary,provider:t.provider},m),y=await Ce(t,a,f,m,h,b);y?.ok?(console.log(N(` \u2713 PR created: ${y.url}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",y.number,p)):y&&!y.ok&&y.alreadyExists?(console.log($(` PR already exists for ${l.key}`)),R(e.cwd,l.key,l.summary,"PR_CREATED",void 0,p)):console.log(z(` \u26A0 PR retry failed for ${l.key}${y&&!y.ok?`: ${y.error}`:""} \u2014 create manually`))}}catch{}return!0}var za=c.object({id:c.number(),url:c.optional(c.string())}),tp=c.object({workItems:c.array(za)}),by=c.object({rel:c.string(),url:c.string(),attributes:c.optional(c.object({name:c.optional(c.string())}))}),_y=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:_y,relations:c.optional(c.nullable(c.array(by)))}),rp=c.object({value:c.array(Ta),count:c.optional(c.number())}),np=c.object({id:c.string(),name:c.string(),state:c.optional(c.string())}),wy=c.object({source:c.optional(c.nullable(za)),target:c.optional(c.nullable(za))}),op=c.object({workItemRelations:c.optional(c.array(wy))});var Xe="7.1";function sp(e){return`Basic ${btoa(`:${e}`)}`}function Et(e){return!(e.includes("'")||e.includes("\\")||e.includes("--")||e.includes(";")||e.includes("/*")||/[^\x20-\x7E\t\n\r]/.test(e))}function It(e){if(!Et(e))throw new Error(`Unsafe WIQL value: ${e.slice(0,50)}`);return e}function At(e,t){return`https://dev.azure.com/${encodeURIComponent(e)}/${encodeURIComponent(t)}/_apis`}function Rt(e){return{Authorization:sp(e),"Content-Type":"application/json"}}function $y(e){return{Authorization:sp(e),"Content-Type":"application/json-patch+json"}}async function ip(e,t,r){let n;try{n=await fetch(`https://dev.azure.com/${encodeURIComponent(e)}/_apis/projects/${encodeURIComponent(t)}?api-version=${Xe}`,{headers:Rt(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=np.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 ap(e,t,r,n){try{let o=await fetch(`${At(e,t)}/wit/wiql?api-version=${Xe}`,{method:"POST",headers:Rt(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=tp.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(`${At(e,t)}/wit/workitems?ids=${a}&$expand=relations&api-version=${Xe}`,{headers:Rt(r)});if(!u.ok){console.warn(`\u26A0 Azure DevOps work items batch returned HTTP ${u.status}`);continue}let l=await u.json(),p=rp.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 Pt(e,t,r,n){try{let o=await fetch(`${At(e,t)}/wit/workitems/${n}?$expand=relations&api-version=${Xe}`,{headers:Rt(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(`${At(e,t)}/wit/workitems/${n}?api-version=${Xe}`,{method:"PATCH",headers:$y(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 cp(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 up(e,t,r,n,o,s,i=5){let a=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${It(t)}' AND [System.State] = '${It(n)}' AND [System.AssignedTo] = @Me`;o&&(a+=` AND [System.WorkItemType] = '${It(o)}'`),a+=" ORDER BY [System.CreatedDate] ASC";let u=await ap(e,t,r,a);if(!u.length)return[];let l=u.slice(0,i*2),f=(await Ia(e,t,r,l)).map(m=>ky(m));return s&&(f=f.filter(m=>!m.labels?.some(h=>h==="clancy:hitl"))),f.slice(0,i)}function ky(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=cp(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 Ea=new Set(["Done","Closed","Completed","Resolved"]);async function lp(e,t,r,n){try{let o=await Pt(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=cp(i.url);if(a===void 0)continue;let u=await Pt(e,t,r,a);if(!u)continue;let l=u.fields["System.State"];if(!l||!Ea.has(l))return!0}return!1}catch{return!1}}async function pp(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 Sy(e,t,r,n)}catch{return}}async function xy(e,t,r,n){try{let o=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${It(t)}' AND [System.Description] CONTAINS '${It(n)}'`,s=await ap(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||!Ea.has(p)}).length;return{total:a,incomplete:u}}catch{return}}async function Sy(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(`${At(e,t)}/wit/wiql?api-version=${Xe}`,{method:"POST",headers:Rt(r),body:JSON.stringify({query:o})});if(!s.ok)return;let i=await s.json(),a=op.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 b=h.fields["System.State"];return!b||!Ea.has(b)}).length;return{total:f,incomplete:m}}catch{return}}function fp(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 ip(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(!Et(r))return"\u2717 AZDO_PROJECT contains unsafe characters for WIQL queries";if(!Et(o))return"\u2717 CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries";if(s&&!Et(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 up(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:lp(t,r,n,a)},async fetchChildrenStatus(i,a){let u=a??i.replace("azdo-",""),l=parseInt(u,10);if(!Number.isNaN(l))return pp(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 Pt(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 Pt(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 dp(e){return{async ping(){return Rl(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!Cr(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 Nr(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=U(e.GITHUB_TOKEN),n=await fetch(`${D}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${D}/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=U(e.GITHUB_TOKEN),s=await fetch(`${D}/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=U(e.GITHUB_TOKEN),s=await fetch(`${D}/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 vy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string())}))}),zy=c.object({summary:c.string(),description:c.optional(c.unknown()),issuelinks:c.optional(c.array(vy)),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()))}),Ty=c.object({key:c.string(),fields:zy}),mp=c.object({total:c.optional(c.number()),isLast:c.optional(c.boolean()),issues:c.array(Ty)}),Iy=c.object({id:c.string(),name:c.string()}),hp=c.object({transitions:c.array(Iy)}),Py=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())}))}))}))}))}),gp=c.object({fields:c.optional(c.object({issuelinks:c.optional(c.array(Py))}))}),Aa=c.object({fields:c.optional(c.object({labels:c.optional(c.array(c.string()))}))});var Ey=/^[a-zA-Z0-9 _\-'.]+$/,Ra=/^[A-Z][A-Z0-9]+-\d+$/;function bp(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function Ct(e){return Ey.test(e)}async function _p(e,t,r){return Er(`${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 Ry(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 wp(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=mp.safeParse(p);return f.success?f.data.issues.map(m=>{let h=m.fields,b=(h.issuelinks??[]).filter(x=>x.type?.name==="Blocks"&&x.inwardIssue?.key).map(x=>x.inwardIssue?.key).filter(x=>!!x),y=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Ry(h.description),provider:"jira",epicKey:y,blockers:b,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${f.error.message}`),[])}async function $p(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=gp.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 kp(e,t,r){if(Ra.test(r))try{let n=r.split("-")[0],o=await yp(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await yp(e,t,`parent = ${r}`)}catch{return}}async function yp(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 Cy(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=hp.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 Cy(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 Sp(e){let t=bp(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return _p(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!Ct(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!Ct(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!Ct(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!Ct(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 wp(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 $p(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return kp(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=Aa.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=Aa.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 Ny=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()}))}))}),vp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({assignedIssues:c.optional(c.object({nodes:c.array(Ny)}))}))}))}),zp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({id:c.optional(c.string())}))}))}),Tp=c.object({data:c.optional(c.object({workflowStates:c.optional(c.object({nodes:c.array(c.object({id:c.string()}))}))}))}),Ip=c.object({data:c.optional(c.object({issueUpdate:c.optional(c.object({success:c.optional(c.boolean())}))}))}),Oy=c.object({type:c.string(),relatedIssue:c.optional(c.object({state:c.optional(c.object({type:c.optional(c.string())}))}))}),Pp=c.object({data:c.optional(c.object({issue:c.optional(c.object({relations:c.optional(c.object({nodes:c.array(Oy)}))}))}))}),Ly=c.object({state:c.optional(c.object({type:c.optional(c.string())}))}),Ep=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(Ly)}))}))}),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()}))}))}))}))}),Rp=c.object({data:c.optional(c.object({issueLabels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}),Cp=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 Zy=/^[a-zA-Z0-9_-]+$/,Np="https://api.linear.app/graphql";function Op(e){return Zy.test(e)}async function W(e,t,r){let n;try{n=await fetch(Np,{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 Lp(e){let t;try{t=await fetch(Np,{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=zp.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 Zp(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=vp.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(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 jp(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=Pp.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 Dp(e,t,r){try{if(r){let n=await jy(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await Dy(e,t)}catch{return}}async function jy(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=Ep.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 Dy(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 My(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=Tp.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 By(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=Ip.safeParse(o);return s.success?s.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${s.error.message}`),!1)}async function Mp(e,t,r,n){try{let o=await My(e,t,n);return o?await By(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function Bp(e){let t=new Map;return{async ping(){return Lp(e.LINEAR_API_KEY)},validateInputs(){if(!Op(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 Zp({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?jp(e.LINEAR_API_KEY,r.issueId):!1},async fetchChildrenStatus(r,n){return Dp(e.LINEAR_API_KEY,n??r,r)},async transitionTicket(r,n){if(!r.linearIssueId)return!1;let o=await Mp(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(y=>y.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=Rp.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}),b=Cp.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 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 Up=c.object({plain_text:c.string()}),Uy=c.object({type:c.literal("status"),status:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Fy=c.object({type:c.literal("select"),select:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Hy=c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}),qy=c.object({type:c.literal("multi_select"),multi_select:c.array(Hy)}),Jy=c.object({type:c.literal("people"),people:c.array(c.object({id:c.string(),name:c.optional(c.nullable(c.string()))}))}),Ky=c.object({type:c.literal("relation"),relation:c.array(c.object({id:c.string()}))}),Yy=c.object({type:c.literal("title"),title:c.array(Up)}),Gy=c.object({type:c.literal("rich_text"),rich_text:c.array(Up)}),Wy=c.union([Uy,Fy,qy,Jy,Ky,Yy,Gy,c.object({type:c.string()})]),Na=c.object({id:c.string(),url:c.optional(c.string()),properties:c.record(c.string(),Wy)}),Fp=c.object({results:c.array(Na),has_more:c.boolean(),next_cursor:c.nullable(c.optional(c.string()))}),Hp=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 Vy(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 Qy(e){return e===429||e>=500&&e<=599}async function Nt(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(!Qy(u.status)||a===n)return u;let l;u.status===429?l=Vy(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",Xy="2022-06-28";function Br(e){return{Authorization:`Bearer ${e}`,"Notion-Version":Xy,"Content-Type":"application/json"}}async function Jp(e){let t;try{t=await Nt(`${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=Hp.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 Nt(`${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=Fp.safeParse(a);if(!u.success){console.warn(`\u26A0 Unexpected Notion response shape: ${u.error.message}`);return}return u.data}async function Ot(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 qp(e,t){try{let r=await Nt(`${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 Lt(e,t,r){try{return(await Nt(`${Mr}/pages/${t}`,{method:"PATCH",headers:Br(e),body:JSON.stringify({properties:r})})).ok}catch{return!1}}async function Kp(e,t,r,n="Status"){try{let o=await qp(e,r);if(!o)return!1;let s=eb(o,"Blocked by");if(s?.type==="relation"){let u=s.relation;if(u.length>0){for(let l of u){let p=await qp(e,l.id);if(!p)continue;let f=F(p,n,"status");if(f&&!Dr(f))return!0}return!1}}let i=r.replace(/-/g,"").slice(0,8),a=Gp(o);if(a){let u=a.match(/Blocked by (notion-[a-f0-9]{8})/gi);if(u){let l=await Ot(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 b=F(m,n,"status");if(b&&!Dr(b))return!0}}}}}return!1}catch{return!1}}async function Yp(e,t,r,n="Epic",o="Status"){try{let s=await tb(e,t,`Epic: ${r}`,o);if(s&&s.total>0)return s;let i=await nb(e,t,r);return i?await rb(e,t,i.id,n,o):void 0}catch{return}}function F(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 eb(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 Gp(e){for(let t of["Description","description","Body","body"]){let r=F(e,t,"rich_text");if(r)return r}}async function tb(e,t,r,n="Status"){let o=await Ot(e,t);if(!o.length)return;let s=o.filter(u=>Gp(u)?.includes(r)),i=s.length;if(i===0)return{total:0,incomplete:0};let a=s.filter(u=>{let l=F(u,n,"status")??F(u,n,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function rb(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=F(u,o,"status")??F(u,o,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function nb(e,t,r){let n=r.replace("notion-","");return n?(await Ot(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var ob="Status",sb="Assignee",ib="Labels",ab="Epic";function Vp(e){let t=e.CLANCY_NOTION_STATUS??ob,r=e.CLANCY_NOTION_ASSIGNEE??sb,n=e.CLANCY_NOTION_LABELS??ib,o=e.CLANCY_NOTION_PARENT??ab;return{async ping(){return Jp(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=cb(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=>!F(p,n,"multi_select")?.includes("clancy:hitl")));let l=s.buildLabel??e.CLANCY_LABEL;return l&&(u=u.filter(p=>F(p,n,"multi_select")?.includes(l))),u.slice(0,5).map(p=>ub(p,{labelsProp:n,parentProp:o,assigneeProp:r}))},async fetchBlockerStatus(s){let i=s.issueId;return i?Kp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i,t):!1},async fetchChildrenStatus(s){return Yp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s,o,t)},async transitionTicket(s,i){let a=s.issueId;if(!a)return!1;if(await Lt(e.NOTION_TOKEN,a,{[t]:{status:{name:i}}}))return console.log(` \u2192 Transitioned to ${i}`),!0;let l=await Lt(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 Wp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(u.includes(i))return;let l=[...u,i].map(p=>({name:p}));await Lt(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 Wp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=F(a,n,"multi_select")??[];if(!u.includes(i))return;let l=u.filter(p=>p!==i).map(p=>({name:p}));await Lt(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 cb(e,t){let r=t??"To-do";return{or:[{property:e,status:{equals:r}},{property:e,select:{equals:r}}]}}function ub(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=F(e,l,"title")??"";break}let s="";for(let l of["Description","description","Body","body"]){let p=F(e,l,"rich_text");if(p){s=p;break}}let i=F(e,t.parentProp,"relation"),a=i&&i.length>0?`notion-${i[0].replace(/-/g,"").slice(0,8)}`:"none",u=F(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 Wp(e,t,r){let n=r.replace("notion-","");return n?(await Ot(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var lb=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(lb)),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,pb=c.object({id:c.number(),name:c.string(),type:c.string()}),fb=c.object({id:c.number(),name:c.string(),states:c.array(pb)}),Qp=c.array(fb),Xp=c.object({id:c.number(),name:c.string()}),ef=c.array(Xp),tf=Xp,rf=c.array(La),nf=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 Zt;async function of(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=nf.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 jt(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=Qp.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 sf(e,t,r){let n=await jt(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 af(e,t,r){let n=await jt(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 cf(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 uf(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 jt(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 lf(e,t,r){try{if(r){let n=await db(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await mb(e,t)}catch{return}}async function db(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 jt(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 mb(e,t){try{let r=await fetch(`${ne}/epics/${t}/stories`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=rf.safeParse(n);if(!o.success)return;let s=o.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await jt(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 pf(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(Zt)return Zt;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=ef.safeParse(r);return n.success?(Zt=n.data,Zt):(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 ff(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=tf.safeParse(n);return o.success?(Zt=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 df(e){return{async ping(){return of(e.SHORTCUT_API_TOKEN)},validateInputs(){},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await af(e.SHORTCUT_API_TOKEN,"unstarted",e.SHORTCUT_WORKFLOW);return(await cf(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:uf(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 lf(e.SHORTCUT_API_TOKEN,o,t)},async transitionTicket(t,r){let n=Jr(t.key);if(n===void 0)return!1;let o=await sf(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 pf(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 ff(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 mf(e){switch(e.provider){case"jira":return Sp(e.env);case"github":return dp(e.env);case"linear":return Bp(e.env);case"shortcut":return df(e.env);case"notion":return Vp(e.env);case"azdo":return fp(e.env)}}async function hf(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")+Oe(" \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=Pr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=mf(n),s=o.validateInputs();if(s)return console.log(s),!1;let i=await o.ping();return i.ok?(console.log(N("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(i.error),!1)}async function gf(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 hb(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function gb(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function yb(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function yf(e,t){let r=yb(t),n=e.sharedEnv(),o=hb(n),s=gb(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 bf(e){let t=e.config;if(e.ticket||(e.ticket=await yf(e.board)),!e.ticket)return console.log($("No tickets found. All done!")),!1;if(e.isRework){let a=parseInt(Z(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`)),R(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=Ve(t.provider,e.ticket.key),s=Qe(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} ${Oe(`[${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 _f(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 wb(e){let t=qa(e);if(await Xl(t))try{if(!await hf(t)||!await Ml(t)||!await ep(t)||!await gf(t)||!await bf(t)||!Dl(t)||!ql(t)||!await _l(t)||!await _f(t)||!Gl(t)||!await jl(t))return;xl(t),await $l(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ne(Date.now()-t.startTime);if(console.error(""),console.error(Le("\u274C Clancy stopped")+$(` (${o})`)),console.error(Le(` ${n}`)),console.error($(` "I'd rather let Herman go."`)),t.originalBranch)try{O(t.originalBranch)}catch{}}finally{t.lockOwner&&(Ft(t.cwd),Ht(t.cwd))}}process.argv[1]&&_b(import.meta.url)===bb(process.argv[1])&&wb(process.argv);export{wb as run};