chief-clancy 0.8.0 → 0.8.2

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,8 +1,8 @@
1
- var _f=Object.defineProperty;var ze=(e,t)=>{for(var r in t)_f(e,r,{get:t[r],enumerable:!0})};import{resolve as yb}from"node:path";import{fileURLToPath as bb}from"node:url";function Ce(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),s=r%60;return s>0?`${o}h ${s}m`:`${o}h`}import{execFileSync as pe}from"node:child_process";function Yr(...e){return pe("git",e,{encoding:"utf8"}).trim()}function Ua(){return Yr("rev-parse","--abbrev-ref","HEAD")}function Lt(){try{return pe("git",["diff","--quiet"],{stdio:"ignore"}),pe("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function We(e){try{return pe("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Gr(e,t){We(e)||Yr("checkout","-b",e,t)}function N(e,t=!1){Yr("checkout",...t?["-B"]:[],e)}function Fa(e){try{return pe("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function Zt(e){try{return pe("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function Ha(e,t=8e3){try{let r=pe("git",["diff",`${e}...HEAD`,"--stat"],{encoding:"utf8",timeout:1e4}).trim();return r?r.length>t?r.slice(0,t)+`
2
- ... (truncated)`:r:void 0}catch{return}}function Ve(e){try{return pe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var $=e=>`\x1B[2m${e}\x1B[0m`,Ne=e=>`\x1B[1m${e}\x1B[0m`;var O=e=>`\x1B[32m${e}\x1B[0m`,Oe=e=>`\x1B[31m${e}\x1B[0m`,z=e=>`\x1B[33m${e}\x1B[0m`;function qa(e){return{argv:e,dryRun:e.includes("--dry-run"),skipFeasibility:e.includes("--skip-feasibility"),startTime:Date.now(),cwd:process.cwd(),isAfk:process.env.CLANCY_AFK_MODE==="1"}}import{mkdirSync as wf,readFileSync as $f,unlinkSync as Ja,writeFileSync as xf}from"node:fs";import{dirname as kf,join as jt}from"node:path";function Ka(e,t){let r=jt(e,".clancy","lock.json");wf(kf(r),{recursive:!0}),xf(r,JSON.stringify(t,null,2),"utf8")}function Dt(e){let t=jt(e,".clancy","lock.json");try{let r=$f(t,"utf8");return JSON.parse(r)}catch{return}}function Mt(e){let t=jt(e,".clancy","lock.json");try{Ja(t)}catch{}}function Bt(e){let t=jt(e,".clancy","verify-attempt.txt");try{Ja(t)}catch{}}function Sf(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function Ya(e){if(!Sf(e.pid))return!0;let t=Date.now()-new Date(e.startedAt).getTime();if(Number.isNaN(t))return!0;let r=1440*60*1e3;return t>r}import{execFileSync as yl}from"node:child_process";import{readFileSync as qg}from"node:fs";import{join as Jg}from"node:path";var c={};ze(c,{$brand:()=>Vr,$input:()=>Es,$output:()=>As,NEVER:()=>Wr,TimePrecision:()=>ri,ZodMiniAny:()=>tu,ZodMiniArray:()=>iu,ZodMiniBase64:()=>Kc,ZodMiniBase64URL:()=>Yc,ZodMiniBigInt:()=>wt,ZodMiniBigIntFormat:()=>ia,ZodMiniBoolean:()=>_t,ZodMiniCIDRv4:()=>Hc,ZodMiniCIDRv6:()=>qc,ZodMiniCUID:()=>Zc,ZodMiniCUID2:()=>jc,ZodMiniCatch:()=>vu,ZodMiniCodec:()=>fa,ZodMiniCustom:()=>da,ZodMiniCustomStringFormat:()=>yt,ZodMiniDate:()=>br,ZodMiniDefault:()=>xu,ZodMiniDiscriminatedUnion:()=>uu,ZodMiniE164:()=>Gc,ZodMiniEmail:()=>Cc,ZodMiniEmoji:()=>Oc,ZodMiniEnum:()=>ca,ZodMiniExactOptional:()=>wu,ZodMiniFile:()=>bu,ZodMiniFunction:()=>Cu,ZodMiniGUID:()=>Nc,ZodMiniIPv4:()=>Uc,ZodMiniIPv6:()=>Fc,ZodMiniISODate:()=>kr,ZodMiniISODateTime:()=>xr,ZodMiniISODuration:()=>vr,ZodMiniISOTime:()=>Sr,ZodMiniIntersection:()=>lu,ZodMiniJWT:()=>Wc,ZodMiniKSUID:()=>Bc,ZodMiniLazy:()=>Pu,ZodMiniLiteral:()=>yu,ZodMiniMAC:()=>Jc,ZodMiniMap:()=>mu,ZodMiniNaN:()=>zu,ZodMiniNanoID:()=>Lc,ZodMiniNever:()=>nu,ZodMiniNonOptional:()=>la,ZodMiniNull:()=>Xc,ZodMiniNullable:()=>$u,ZodMiniNumber:()=>bt,ZodMiniNumberFormat:()=>qe,ZodMiniObject:()=>_r,ZodMiniOptional:()=>ua,ZodMiniPipe:()=>pa,ZodMiniPrefault:()=>ku,ZodMiniPromise:()=>Eu,ZodMiniReadonly:()=>Tu,ZodMiniRecord:()=>wr,ZodMiniSet:()=>hu,ZodMiniString:()=>He,ZodMiniStringFormat:()=>E,ZodMiniSuccess:()=>Su,ZodMiniSymbol:()=>Vc,ZodMiniTemplateLiteral:()=>Iu,ZodMiniTransform:()=>_u,ZodMiniTuple:()=>pu,ZodMiniType:()=>S,ZodMiniULID:()=>Dc,ZodMiniURL:()=>sa,ZodMiniUUID:()=>gt,ZodMiniUndefined:()=>Qc,ZodMiniUnion:()=>aa,ZodMiniUnknown:()=>ru,ZodMiniVoid:()=>su,ZodMiniXID:()=>Mc,ZodMiniXor:()=>cu,_default:()=>Kh,_function:()=>fg,any:()=>$h,array:()=>H,base64:()=>nh,base64url:()=>oh,bigint:()=>gh,boolean:()=>Je,catch:()=>Vh,catchall:()=>Ch,check:()=>og,cidrv4:()=>eh,cidrv6:()=>th,clone:()=>U,codec:()=>eg,coerce:()=>ha,config:()=>j,core:()=>Fe,cuid:()=>Km,cuid2:()=>Ym,custom:()=>Ru,date:()=>kh,decode:()=>wn,decodeAsync:()=>xn,describe:()=>ag,discriminatedUnion:()=>Oh,e164:()=>sh,email:()=>Zm,emoji:()=>qm,encode:()=>_n,encodeAsync:()=>$n,endsWith:()=>Hi,enum:()=>gu,exactOptional:()=>qh,extend:()=>ke,file:()=>Fh,flattenError:()=>hn,float32:()=>fh,float64:()=>dh,formatError:()=>gn,function:()=>fg,globalRegistry:()=>ce,gt:()=>dr,gte:()=>dt,guid:()=>jm,hash:()=>lh,hex:()=>uh,hostname:()=>ch,httpUrl:()=>Hm,includes:()=>Ui,instanceof:()=>ug,int:()=>ph,int32:()=>mh,int64:()=>yh,intersection:()=>Lh,ipv4:()=>Qm,ipv6:()=>Xm,iso:()=>ma,json:()=>pg,jwt:()=>ih,keyof:()=>Sh,ksuid:()=>Vm,lazy:()=>Au,length:()=>Di,literal:()=>Uh,locales:()=>pt,looseObject:()=>zh,looseRecord:()=>jh,lowercase:()=>Mi,lt:()=>fr,lte:()=>ft,mac:()=>rh,map:()=>Dh,maxLength:()=>ji,maxSize:()=>Oi,maximum:()=>ft,merge:()=>Ih,meta:()=>cg,mime:()=>Ji,minLength:()=>mt,minSize:()=>Li,minimum:()=>dt,multipleOf:()=>Ni,nan:()=>Qh,nanoid:()=>Jm,nativeEnum:()=>Bh,negative:()=>Ei,never:()=>ou,nonnegative:()=>Ci,nonoptional:()=>Gh,nonpositive:()=>Ri,normalize:()=>Ki,null:()=>eu,nullable:()=>$r,nullish:()=>Jh,number:()=>xe,object:()=>I,omit:()=>Ah,optional:()=>w,overwrite:()=>be,parse:()=>ge,parseAsync:()=>ye,partial:()=>Eh,partialRecord:()=>Zh,pick:()=>Ph,pipe:()=>Xh,positive:()=>Ai,prefault:()=>Yh,prettifyError:()=>bn,promise:()=>ng,property:()=>qi,readonly:()=>tg,record:()=>du,refine:()=>sg,regex:()=>ht,regexes:()=>re,registry:()=>lr,required:()=>Rh,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeExtend:()=>Th,safeParse:()=>Ie,safeParseAsync:()=>Pe,set:()=>Mh,size:()=>Zi,startsWith:()=>Fi,strictObject:()=>vh,string:()=>_,stringFormat:()=>ah,stringbool:()=>lg,success:()=>Wh,superRefine:()=>ig,symbol:()=>_h,templateLiteral:()=>rg,toJSONSchema:()=>hr,toLowerCase:()=>Gi,toUpperCase:()=>Wi,transform:()=>Hh,treeifyError:()=>yn,trim:()=>Yi,tuple:()=>fu,uint32:()=>hh,uint64:()=>bh,ulid:()=>Gm,undefined:()=>wh,union:()=>au,unknown:()=>yr,uppercase:()=>Bi,url:()=>Fm,util:()=>te,uuid:()=>Dm,uuidv4:()=>Mm,uuidv6:()=>Bm,uuidv7:()=>Um,void:()=>xh,xid:()=>Wm,xor:()=>Nh});var Fe={};ze(Fe,{$ZodAny:()=>Xo,$ZodArray:()=>os,$ZodAsyncError:()=>se,$ZodBase64:()=>Fo,$ZodBase64URL:()=>Ho,$ZodBigInt:()=>sr,$ZodBigIntFormat:()=>Go,$ZodBoolean:()=>ct,$ZodCIDRv4:()=>Mo,$ZodCIDRv6:()=>Bo,$ZodCUID:()=>Io,$ZodCUID2:()=>Po,$ZodCatch:()=>$s,$ZodCheck:()=>A,$ZodCheckBigIntFormat:()=>no,$ZodCheckEndsWith:()=>go,$ZodCheckGreaterThan:()=>Qt,$ZodCheckIncludes:()=>mo,$ZodCheckLengthEquals:()=>uo,$ZodCheckLessThan:()=>Vt,$ZodCheckLowerCase:()=>po,$ZodCheckMaxLength:()=>ao,$ZodCheckMaxSize:()=>oo,$ZodCheckMimeType:()=>bo,$ZodCheckMinLength:()=>co,$ZodCheckMinSize:()=>so,$ZodCheckMultipleOf:()=>to,$ZodCheckNumberFormat:()=>ro,$ZodCheckOverwrite:()=>_o,$ZodCheckProperty:()=>yo,$ZodCheckRegex:()=>lo,$ZodCheckSizeEquals:()=>io,$ZodCheckStartsWith:()=>ho,$ZodCheckStringFormat:()=>Me,$ZodCheckUpperCase:()=>fo,$ZodCodec:()=>lt,$ZodCustom:()=>Ps,$ZodCustomStringFormat:()=>Ko,$ZodDate:()=>ns,$ZodDefault:()=>ys,$ZodDiscriminatedUnion:()=>is,$ZodE164:()=>qo,$ZodEmail:()=>So,$ZodEmoji:()=>zo,$ZodEncodeError:()=>Le,$ZodEnum:()=>ps,$ZodError:()=>mn,$ZodExactOptional:()=>hs,$ZodFile:()=>ds,$ZodFunction:()=>zs,$ZodGUID:()=>xo,$ZodIPv4:()=>Zo,$ZodIPv6:()=>jo,$ZodISODate:()=>No,$ZodISODateTime:()=>Co,$ZodISODuration:()=>Lo,$ZodISOTime:()=>Oo,$ZodIntersection:()=>as,$ZodJWT:()=>Jo,$ZodKSUID:()=>Ro,$ZodLazy:()=>Is,$ZodLiteral:()=>fs,$ZodMAC:()=>Do,$ZodMap:()=>us,$ZodNaN:()=>xs,$ZodNanoID:()=>To,$ZodNever:()=>ts,$ZodNonOptional:()=>_s,$ZodNull:()=>Qo,$ZodNullable:()=>gs,$ZodNumber:()=>or,$ZodNumberFormat:()=>Yo,$ZodObject:()=>ir,$ZodObjectJIT:()=>wd,$ZodOptional:()=>cr,$ZodPipe:()=>ks,$ZodPrefault:()=>bs,$ZodPromise:()=>Ts,$ZodReadonly:()=>Ss,$ZodRealError:()=>G,$ZodRecord:()=>cs,$ZodRegistry:()=>ur,$ZodSet:()=>ls,$ZodString:()=>Be,$ZodStringFormat:()=>P,$ZodSuccess:()=>ws,$ZodSymbol:()=>Wo,$ZodTemplateLiteral:()=>vs,$ZodTransform:()=>ms,$ZodTuple:()=>ar,$ZodType:()=>x,$ZodULID:()=>Ao,$ZodURL:()=>vo,$ZodUUID:()=>ko,$ZodUndefined:()=>Vo,$ZodUnion:()=>ut,$ZodUnknown:()=>es,$ZodVoid:()=>rs,$ZodXID:()=>Eo,$ZodXor:()=>ss,$brand:()=>Vr,$constructor:()=>d,$input:()=>Es,$output:()=>As,Doc:()=>at,JSONSchema:()=>Rc,JSONSchemaGenerator:()=>gr,NEVER:()=>Wr,TimePrecision:()=>ri,_any:()=>ki,_array:()=>vd,_base64:()=>Qs,_base64url:()=>Xs,_bigint:()=>gi,_boolean:()=>mi,_catch:()=>Fd,_check:()=>Ec,_cidrv4:()=>Ws,_cidrv6:()=>Vs,_coercedBigint:()=>yi,_coercedBoolean:()=>hi,_coercedDate:()=>Ii,_coercedNumber:()=>ci,_coercedString:()=>Cs,_cuid:()=>Us,_cuid2:()=>Fs,_custom:()=>Qi,_date:()=>Ti,_decode:()=>rc,_decodeAsync:()=>oc,_default:()=>Md,_discriminatedUnion:()=>Id,_e164:()=>ei,_email:()=>Ns,_emoji:()=>Ms,_encode:()=>tc,_encodeAsync:()=>nc,_endsWith:()=>Hi,_enum:()=>Nd,_file:()=>Vi,_float32:()=>li,_float64:()=>pi,_gt:()=>dr,_gte:()=>dt,_guid:()=>Os,_includes:()=>Ui,_int:()=>ui,_int32:()=>fi,_int64:()=>bi,_intersection:()=>Pd,_ipv4:()=>Ks,_ipv6:()=>Ys,_isoDate:()=>oi,_isoDateTime:()=>ni,_isoDuration:()=>ii,_isoTime:()=>si,_jwt:()=>ti,_ksuid:()=>Js,_lazy:()=>Kd,_length:()=>Di,_literal:()=>Ld,_lowercase:()=>Mi,_lt:()=>fr,_lte:()=>ft,_mac:()=>Gs,_map:()=>Rd,_max:()=>ft,_maxLength:()=>ji,_maxSize:()=>Oi,_mime:()=>Ji,_min:()=>dt,_minLength:()=>mt,_minSize:()=>Li,_multipleOf:()=>Ni,_nan:()=>Pi,_nanoid:()=>Bs,_nativeEnum:()=>Od,_negative:()=>Ei,_never:()=>vi,_nonnegative:()=>Ci,_nonoptional:()=>Bd,_nonpositive:()=>Ri,_normalize:()=>Ki,_null:()=>xi,_nullable:()=>Dd,_number:()=>ai,_optional:()=>jd,_overwrite:()=>be,_parse:()=>qt,_parseAsync:()=>Jt,_pipe:()=>Hd,_positive:()=>Ai,_promise:()=>Yd,_property:()=>qi,_readonly:()=>qd,_record:()=>Ed,_refine:()=>Xi,_regex:()=>ht,_safeDecode:()=>ic,_safeDecodeAsync:()=>cc,_safeEncode:()=>sc,_safeEncodeAsync:()=>ac,_safeParse:()=>Kt,_safeParseAsync:()=>Yt,_set:()=>Cd,_size:()=>Zi,_slugify:()=>Sd,_startsWith:()=>Fi,_string:()=>Rs,_stringFormat:()=>Ue,_stringbool:()=>na,_success:()=>Ud,_superRefine:()=>ea,_symbol:()=>wi,_templateLiteral:()=>Jd,_toLowerCase:()=>Gi,_toUpperCase:()=>Wi,_transform:()=>Zd,_trim:()=>Yi,_tuple:()=>Ad,_uint32:()=>di,_uint64:()=>_i,_ulid:()=>Hs,_undefined:()=>$i,_union:()=>zd,_unknown:()=>Si,_uppercase:()=>Bi,_url:()=>pr,_uuid:()=>Ls,_uuidv4:()=>Zs,_uuidv6:()=>js,_uuidv7:()=>Ds,_void:()=>zi,_xid:()=>qs,_xor:()=>Td,clone:()=>U,config:()=>j,createStandardJSONSchemaMethod:()=>oa,createToJSONSchemaMethod:()=>Gd,decode:()=>wn,decodeAsync:()=>xn,describe:()=>ta,encode:()=>_n,encodeAsync:()=>$n,extractDefs:()=>we,finalize:()=>$e,flattenError:()=>hn,formatError:()=>gn,globalConfig:()=>Qe,globalRegistry:()=>ce,initializeContext:()=>_e,isValidBase64:()=>Uo,isValidBase64URL:()=>zc,isValidJWT:()=>Tc,locales:()=>pt,meta:()=>ra,parse:()=>ge,parseAsync:()=>ye,prettifyError:()=>bn,process:()=>T,regexes:()=>re,registry:()=>lr,safeDecode:()=>Sn,safeDecodeAsync:()=>zn,safeEncode:()=>kn,safeEncodeAsync:()=>vn,safeParse:()=>Ie,safeParseAsync:()=>Pe,toDotPath:()=>ec,toJSONSchema:()=>hr,treeifyError:()=>yn,util:()=>te,version:()=>wo});var Wr=Object.freeze({status:"aborted"});function d(e,t,r){function n(a,u){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:u,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,u);let l=i.prototype,p=Object.keys(l);for(let f=0;f<p.length;f++){let m=p[f];m in a||(a[m]=l[m].bind(a))}}let o=r?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var u;let l=r?.Parent?new s:this;n(l,a),(u=l._zod).deferred??(u.deferred=[]);for(let p of l._zod.deferred)p();return l}return Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var Vr=Symbol("zod_brand"),se=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Le=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Qe={};function j(e){return e&&Object.assign(Qe,e),Qe}var te={};ze(te,{BIGINT_FORMAT_RANGES:()=>cn,Class:()=>Xr,NUMBER_FORMAT_RANGES:()=>an,aborted:()=>he,allowsEval:()=>nn,assert:()=>Pf,assertEqual:()=>vf,assertIs:()=>Tf,assertNever:()=>If,assertNotEqual:()=>zf,assignProp:()=>de,base64ToUint8Array:()=>Va,base64urlToUint8Array:()=>Uf,cached:()=>Ze,captureStackTrace:()=>Ft,cleanEnum:()=>Bf,cleanRegex:()=>tt,clone:()=>U,cloneDef:()=>Rf,createTransparentProxy:()=>jf,defineLazy:()=>k,esc:()=>Ut,escapeRegex:()=>ee,extend:()=>Ht,finalizeIssue:()=>Y,floatSafeRemainder:()=>tn,getElementAtPath:()=>Cf,getEnumValues:()=>et,getLengthableOrigin:()=>ot,getParsedType:()=>Zf,getSizableOrigin:()=>nt,hexToUint8Array:()=>Hf,isObject:()=>Te,isPlainObject:()=>me,issue:()=>De,joinValues:()=>Af,jsonStringifyReplacer:()=>en,merge:()=>Df,mergeDefs:()=>ue,normalizeParams:()=>g,nullish:()=>fe,numKeys:()=>Lf,objectClone:()=>Ef,omit:()=>ln,optionalKeys:()=>sn,parsedType:()=>Mf,partial:()=>fn,pick:()=>un,prefixIssues:()=>V,primitiveTypes:()=>on,promiseAllObject:()=>Nf,propertyKeyTypes:()=>rt,randomString:()=>Of,required:()=>dn,safeExtend:()=>pn,shallowClone:()=>je,slugify:()=>rn,stringifyPrimitive:()=>Wa,uint8ArrayToBase64:()=>Qa,uint8ArrayToBase64url:()=>Ff,uint8ArrayToHex:()=>qf,unwrapMessage:()=>Xe});function vf(e){return e}function zf(e){return e}function Tf(e){}function If(e){throw new Error("Unexpected value in exhaustive check")}function Pf(e){}function et(e){let t=Object.values(e).filter(n=>typeof n=="number");return Object.entries(e).filter(([n,o])=>t.indexOf(+n)===-1).map(([n,o])=>o)}function Af(e,t="|"){return e.map(r=>Wa(r)).join(t)}function en(e,t){return typeof t=="bigint"?t.toString():t}function Ze(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function fe(e){return e==null}function tt(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function tn(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let u=n.match(/\d?e-(\d?)/);u?.[1]&&(o=Number.parseInt(u[1]))}let s=r>o?r:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}var Ga=Symbol("evaluating");function k(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==Ga)return n===void 0&&(n=Ga,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Ef(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function de(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ue(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Rf(e){return ue(e._zod.def)}function Cf(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Nf(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let s=0;s<t.length;s++)o[t[s]]=n[s];return o})}function Of(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function Ut(e){return JSON.stringify(e)}function rn(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ft="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var nn=Ze(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function me(e){if(Te(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(Te(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function je(e){return me(e)?{...e}:Array.isArray(e)?[...e]:e}function Lf(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Zf=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},rt=new Set(["string","number","symbol"]),on=new Set(["string","number","bigint","boolean","symbol","undefined"]);function ee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function g(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function jf(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,s){return t??(t=e()),Reflect.set(t,n,o,s)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function Wa(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function sn(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var an={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},cn={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function un(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=r.shape[a])}return de(this,"shape",i),i},checks:[]});return U(e,s)}function ln(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=ue(e._zod.def,{get shape(){let i={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return de(this,"shape",i),i},checks:[]});return U(e,s)}function Ht(e,t){if(!me(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let s=e._zod.def.shape;for(let i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ue(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return de(this,"shape",s),s}});return U(e,o)}function pn(e,t){if(!me(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return de(this,"shape",n),n}});return U(e,r)}function Df(e,t){let r=ue(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return de(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return U(e,r)}function fn(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let i=ue(t._zod.def,{get shape(){let a=t._zod.def.shape,u={...a};if(r)for(let l in r){if(!(l in a))throw new Error(`Unrecognized key: "${l}"`);r[l]&&(u[l]=e?new e({type:"optional",innerType:a[l]}):a[l])}else for(let l in a)u[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return de(this,"shape",u),u},checks:[]});return U(t,i)}function dn(e,t,r){let n=ue(t._zod.def,{get shape(){let o=t._zod.def.shape,s={...o};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(let i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return de(this,"shape",s),s}});return U(t,n)}function he(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function V(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Xe(e){return typeof e=="string"?e:e?.message}function Y(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=Xe(e.inst?._zod.def?.error?.(e))??Xe(t?.error?.(e))??Xe(r.customError?.(e))??Xe(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function nt(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function ot(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Mf(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function De(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Bf(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function Va(e){let t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}function Qa(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Uf(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return Va(t+r)}function Ff(e){return Qa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Hf(e){let t=e.replace(/^0x/,"");if(t.length%2!==0)throw new Error("Invalid hex string length");let r=new Uint8Array(t.length/2);for(let n=0;n<t.length;n+=2)r[n/2]=Number.parseInt(t.slice(n,n+2),16);return r}function qf(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Xr=class{constructor(...t){}};var Xa=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,en,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mn=d("$ZodError",Xa),G=d("$ZodError",Xa,{Parent:Error});function hn(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function gn(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>n({issues:i}));else if(s.code==="invalid_key")n({issues:s.issues});else if(s.code==="invalid_element")n({issues:s.issues});else if(s.path.length===0)r._errors.push(t(s));else{let i=r,a=0;for(;a<s.path.length;){let u=s.path[a];a===s.path.length-1?(i[u]=i[u]||{_errors:[]},i[u]._errors.push(t(s))):i[u]=i[u]||{_errors:[]},i=i[u],a++}}};return n(e),r}function yn(e,t=r=>r.message){let r={errors:[]},n=(o,s=[])=>{var i,a;for(let u of o.issues)if(u.code==="invalid_union"&&u.errors.length)u.errors.map(l=>n({issues:l},u.path));else if(u.code==="invalid_key")n({issues:u.issues},u.path);else if(u.code==="invalid_element")n({issues:u.issues},u.path);else{let l=[...s,...u.path];if(l.length===0){r.errors.push(t(u));continue}let p=r,f=0;for(;f<l.length;){let m=l[f],h=f===l.length-1;typeof m=="string"?(p.properties??(p.properties={}),(i=p.properties)[m]??(i[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(a=p.items)[m]??(a[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(u)),f++}}};return n(e),r}function ec(e){let t=[],r=e.map(n=>typeof n=="object"?n.key:n);for(let n of r)typeof n=="number"?t.push(`[${n}]`):typeof n=="symbol"?t.push(`[${JSON.stringify(String(n))}]`):/[^\w$]/.test(n)?t.push(`[${JSON.stringify(n)}]`):(t.length&&t.push("."),t.push(n));return t.join("")}function bn(e){let t=[],r=[...e.issues].sort((n,o)=>(n.path??[]).length-(o.path??[]).length);for(let n of r)t.push(`\u2716 ${n.message}`),n.path?.length&&t.push(` \u2192 at ${ec(n.path)}`);return t.join(`
3
- `)}var qt=e=>(t,r,n,o)=>{let s=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new se;if(i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>Y(u,s,j())));throw Ft(a,o?.callee),a}return i.value},ge=qt(G),Jt=e=>async(t,r,n,o)=>{let s=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let a=new(o?.Err??e)(i.issues.map(u=>Y(u,s,j())));throw Ft(a,o?.callee),a}return i.value},ye=Jt(G),Kt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new se;return s.issues.length?{success:!1,error:new(e??mn)(s.issues.map(i=>Y(i,o,j())))}:{success:!0,data:s.value}},Ie=Kt(G),Yt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>Y(i,o,j())))}:{success:!0,data:s.value}},Pe=Yt(G),tc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return qt(e)(t,r,o)},_n=tc(G),rc=e=>(t,r,n)=>qt(e)(t,r,n),wn=rc(G),nc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Jt(e)(t,r,o)},$n=nc(G),oc=e=>async(t,r,n)=>Jt(e)(t,r,n),xn=oc(G),sc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Kt(e)(t,r,o)},kn=sc(G),ic=e=>(t,r,n)=>Kt(e)(t,r,n),Sn=ic(G),ac=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Yt(e)(t,r,o)},vn=ac(G),cc=e=>async(t,r,n)=>Yt(e)(t,r,n),zn=cc(G);var re={};ze(re,{base64:()=>Un,base64url:()=>Gt,bigint:()=>Yn,boolean:()=>Wn,browserEmail:()=>ed,cidrv4:()=>Mn,cidrv6:()=>Bn,cuid:()=>Tn,cuid2:()=>In,date:()=>Hn,datetime:()=>Jn,domain:()=>nd,duration:()=>Cn,e164:()=>Fn,email:()=>On,emoji:()=>Ln,extendedDuration:()=>Kf,guid:()=>Nn,hex:()=>od,hostname:()=>rd,html5Email:()=>Vf,idnEmail:()=>Xf,integer:()=>Gn,ipv4:()=>Zn,ipv6:()=>jn,ksuid:()=>En,lowercase:()=>Xn,mac:()=>Dn,md5_base64:()=>id,md5_base64url:()=>ad,md5_hex:()=>sd,nanoid:()=>Rn,null:()=>Vn,number:()=>Wt,rfc5322Email:()=>Qf,sha1_base64:()=>ud,sha1_base64url:()=>ld,sha1_hex:()=>cd,sha256_base64:()=>fd,sha256_base64url:()=>dd,sha256_hex:()=>pd,sha384_base64:()=>hd,sha384_base64url:()=>gd,sha384_hex:()=>md,sha512_base64:()=>bd,sha512_base64url:()=>_d,sha512_hex:()=>yd,string:()=>Kn,time:()=>qn,ulid:()=>Pn,undefined:()=>Qn,unicodeEmail:()=>uc,uppercase:()=>eo,uuid:()=>Ae,uuid4:()=>Yf,uuid6:()=>Gf,uuid7:()=>Wf,xid:()=>An});var Tn=/^[cC][^\s-]{8,}$/,In=/^[0-9a-z]+$/,Pn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,An=/^[0-9a-vA-V]{20}$/,En=/^[A-Za-z0-9]{27}$/,Rn=/^[a-zA-Z0-9_-]{21}$/,Cn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kf=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Nn=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Ae=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Yf=Ae(4),Gf=Ae(6),Wf=Ae(7),On=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Vf=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Qf=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,uc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,Xf=uc,ed=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,td="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ln(){return new RegExp(td,"u")}var Zn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Dn=e=>{let t=ee(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},Mn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Bn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Un=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Gt=/^[A-Za-z0-9_-]*$/,rd=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,nd=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,Fn=/^\+[1-9]\d{6,14}$/,lc="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Hn=new RegExp(`^${lc}$`);function pc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function qn(e){return new RegExp(`^${pc(e)}$`)}function Jn(e){let t=pc({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${lc}T(?:${n})$`)}var Kn=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Yn=/^-?\d+n?$/,Gn=/^-?\d+$/,Wt=/^-?\d+(?:\.\d+)?$/,Wn=/^(?:true|false)$/i,Vn=/^null$/i;var Qn=/^undefined$/i;var Xn=/^[^A-Z]*$/,eo=/^[^a-z]*$/,od=/^[0-9a-fA-F]*$/;function st(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function it(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var sd=/^[0-9a-fA-F]{32}$/,id=st(22,"=="),ad=it(22),cd=/^[0-9a-fA-F]{40}$/,ud=st(27,"="),ld=it(27),pd=/^[0-9a-fA-F]{64}$/,fd=st(43,"="),dd=it(43),md=/^[0-9a-fA-F]{96}$/,hd=st(64,""),gd=it(64),yd=/^[0-9a-fA-F]{128}$/,bd=st(86,"=="),_d=it(86);var A=d("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),dc={number:"number",bigint:"bigint",object:"date"},Vt=d("$ZodCheckLessThan",(e,t)=>{A.init(e,t);let r=dc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Qt=d("$ZodCheckGreaterThan",(e,t)=>{A.init(e,t);let r=dc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),to=d("$ZodCheckMultipleOf",(e,t)=>{A.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):tn(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),ro=d("$ZodCheckNumberFormat",(e,t)=>{A.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,s]=an[t.format];e._zod.onattach.push(i=>{let a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,r&&(a.pattern=Gn)}),e._zod.check=i=>{let a=i.value;if(r){if(!Number.isInteger(a)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),no=d("$ZodCheckBigIntFormat",(e,t)=>{A.init(e,t);let[r,n]=cn[t.format];e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,s.minimum=r,s.maximum=n}),e._zod.check=o=>{let s=o.value;s<r&&o.issues.push({origin:"bigint",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>n&&o.issues.push({origin:"bigint",input:s,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),oo=d("$ZodCheckMaxSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;o.size<=t.maximum||n.issues.push({origin:nt(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),so=d("$ZodCheckMinSize",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;o.size>=t.minimum||n.issues.push({origin:nt(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),io=d("$ZodCheckSizeEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,s=o.size;if(s===t.size)return;let i=s>t.size;n.issues.push({origin:nt(o),...i?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ao=d("$ZodCheckMaxLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let i=ot(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),co=d("$ZodCheckMinLength",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let i=ot(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),uo=d("$ZodCheckLengthEquals",(e,t)=>{var r;A.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!fe(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,s=o.length;if(s===t.length)return;let i=ot(o),a=s>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Me=d("$ZodCheckStringFormat",(e,t)=>{var r,n;A.init(e,t),e._zod.onattach.push(o=>{let s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),lo=d("$ZodCheckRegex",(e,t)=>{Me.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),po=d("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Xn),Me.init(e,t)}),fo=d("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=eo),Me.init(e,t)}),mo=d("$ZodCheckIncludes",(e,t)=>{A.init(e,t);let r=ee(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),ho=d("$ZodCheckStartsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`^${ee(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),go=d("$ZodCheckEndsWith",(e,t)=>{A.init(e,t);let r=new RegExp(`.*${ee(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}});function fc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues))}var yo=d("$ZodCheckProperty",(e,t)=>{A.init(e,t),e._zod.check=r=>{let n=t.schema._zod.run({value:r.value[t.property],issues:[]},{});if(n instanceof Promise)return n.then(o=>fc(o,r,t.property));fc(n,r,t.property)}}),bo=d("$ZodCheckMimeType",(e,t)=>{A.init(e,t);let r=new Set(t.mime);e._zod.onattach.push(n=>{n._zod.bag.mime=t.mime}),e._zod.check=n=>{r.has(n.value.type)||n.issues.push({code:"invalid_value",values:t.mime,input:n.value.type,inst:e,continue:!t.abort})}}),_o=d("$ZodCheckOverwrite",(e,t)=>{A.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var at=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
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
4
  `).filter(i=>i),o=Math.min(...n.map(i=>i.length-i.trimStart().length)),s=n.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...r,o.join(`
5
- `))}};var wo={major:4,minor:3,patch:6};var x=d("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=wo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let s of o._zod.onattach)s(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,a,u)=>{let l=he(i),p;for(let f of a){if(f._zod.def.when){if(!f._zod.def.when(i))continue}else if(l)continue;let m=i.issues.length,h=f._zod.check(i);if(h instanceof Promise&&u?.async===!1)throw new se;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,i.issues.length!==m&&(l||(l=he(i,m)))});else{if(i.issues.length===m)continue;l||(l=he(i,m))}}return p?p.then(()=>i):i},s=(i,a,u)=>{if(he(i))return i.aborted=!0,i;let l=o(a,n,u);if(l instanceof Promise){if(u.async===!1)throw new se;return l.then(p=>e._zod.parse(p,u))}return e._zod.parse(l,u)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){let l=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return l instanceof Promise?l.then(p=>s(p,i,a)):s(l,i,a)}let u=e._zod.parse(i,a);if(u instanceof Promise){if(a.async===!1)throw new se;return u.then(l=>o(l,n,a))}return o(u,n,a)}}k(e,"~standard",()=>({validate:o=>{try{let s=Ie(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Pe(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Be=d("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Kn(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),P=d("$ZodStringFormat",(e,t)=>{Me.init(e,t),Be.init(e,t)}),xo=d("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Nn),P.init(e,t)}),ko=d("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Ae(n))}else t.pattern??(t.pattern=Ae());P.init(e,t)}),So=d("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=On),P.init(e,t)}),vo=d("$ZodURL",(e,t)=>{P.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),zo=d("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ln()),P.init(e,t)}),To=d("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Rn),P.init(e,t)}),Io=d("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Tn),P.init(e,t)}),Po=d("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=In),P.init(e,t)}),Ao=d("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Pn),P.init(e,t)}),Eo=d("$ZodXID",(e,t)=>{t.pattern??(t.pattern=An),P.init(e,t)}),Ro=d("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=En),P.init(e,t)}),Co=d("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Jn(t)),P.init(e,t)}),No=d("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Hn),P.init(e,t)}),Oo=d("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=qn(t)),P.init(e,t)}),Lo=d("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Cn),P.init(e,t)}),Zo=d("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Zn),P.init(e,t),e._zod.bag.format="ipv4"}),jo=d("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=jn),P.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Do=d("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=Dn(t.delimiter)),P.init(e,t),e._zod.bag.format="mac"}),Mo=d("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Mn),P.init(e,t)}),Bo=d("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Bn),P.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,s]=n;if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Uo(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Fo=d("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Un),P.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Uo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function zc(e){if(!Gt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Uo(r)}var Ho=d("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Gt),P.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{zc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),qo=d("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Fn),P.init(e,t)});function Tc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Jo=d("$ZodJWT",(e,t)=>{P.init(e,t),e._zod.check=r=>{Tc(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Ko=d("$ZodCustomStringFormat",(e,t)=>{P.init(e,t),e._zod.check=r=>{t.fn(r.value)||r.issues.push({code:"invalid_format",format:t.format,input:r.value,inst:e,continue:!t.abort})}}),or=d("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Wt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),r}}),Yo=d("$ZodNumberFormat",(e,t)=>{ro.init(e,t),or.init(e,t)}),ct=d("$ZodBoolean",(e,t)=>{x.init(e,t),e._zod.pattern=Wn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}let o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),sr=d("$ZodBigInt",(e,t)=>{x.init(e,t),e._zod.pattern=Yn,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=BigInt(r.value)}catch{}return typeof r.value=="bigint"||r.issues.push({expected:"bigint",code:"invalid_type",input:r.value,inst:e}),r}}),Go=d("$ZodBigIntFormat",(e,t)=>{no.init(e,t),sr.init(e,t)}),Wo=d("$ZodSymbol",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Vo=d("$ZodUndefined",(e,t)=>{x.init(e,t),e._zod.pattern=Qn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Qo=d("$ZodNull",(e,t)=>{x.init(e,t),e._zod.pattern=Vn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Xo=d("$ZodAny",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),es=d("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),ts=d("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),rs=d("$ZodVoid",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),ns=d("$ZodDate",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,s=o instanceof Date;return s&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...s?{received:"Invalid Date"}:{},inst:e}),r}});function hc(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var os=d("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let s=[];for(let i=0;i<o.length;i++){let a=o[i],u=t.element._zod.run({value:a,issues:[]},n);u instanceof Promise?s.push(u.then(l=>hc(l,r,i))):hc(u,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function nr(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...V(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Ic(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=sn(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Pc(e,t,r,n,o,s){let i=[],a=o.keySet,u=o.catchall._zod,l=u.def.type,p=u.optout==="optional";for(let f in t){if(a.has(f))continue;if(l==="never"){i.push(f);continue}let m=u.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>nr(h,r,f,t,p))):nr(m,r,f,t,p)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}var ir=d("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let u={...a};return Object.defineProperty(t,"shape",{value:u}),u}})}let n=Ze(()=>Ic(t));k(e._zod,"propValues",()=>{let a=t.shape,u={};for(let l in a){let p=a[l]._zod;if(p.values){u[l]??(u[l]=new Set);for(let f of p.values)u[l].add(f)}}return u});let o=Te,s=t.catchall,i;e._zod.parse=(a,u)=>{i??(i=n.value);let l=a.value;if(!o(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let p=[],f=i.shape;for(let m of i.keys){let h=f[m],y=h._zod.optout==="optional",b=h._zod.run({value:l[m],issues:[]},u);b instanceof Promise?p.push(b.then(v=>nr(v,a,m,l,y))):nr(b,a,m,l,y)}return s?Pc(p,l,a,u,n.value,e):p.length?Promise.all(p).then(()=>a):a}}),wd=d("$ZodObjectJIT",(e,t)=>{ir.init(e,t);let r=e._zod.parse,n=Ze(()=>Ic(t)),o=m=>{let h=new at(["shape","payload","ctx"]),y=n.value,b=R=>{let L=Ut(R);return`shape[${L}]._zod.run({ value: input[${L}], issues: [] }, ctx)`};h.write("const input = payload.value;");let v=Object.create(null),J=0;for(let R of y.keys)v[R]=`key_${J++}`;h.write("const newResult = {};");for(let R of y.keys){let L=v[R],K=Ut(R),Kr=m[R]?._zod?.optout==="optional";h.write(`const ${L} = ${b(R)};`),Kr?h.write(`
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
7
  if (${K} in input) {
8
8
  payload.issues = payload.issues.concat(${L}.issues.map(iss => ({
@@ -36,24 +36,24 @@ var _f=Object.defineProperty;var ze=(e,t)=>{for(var r in t)_f(e,r,{get:t[r],enum
36
36
  newResult[${K}] = ${L}.value;
37
37
  }
38
38
 
39
- `)}h.write("payload.value = newResult;"),h.write("return payload;");let X=h.compile();return(R,L)=>X(m,R,L)},s,i=Te,a=!Qe.jitless,l=a&&nn.value,p=t.catchall,f;e._zod.parse=(m,h)=>{f??(f=n.value);let y=m.value;return i(y)?a&&l&&h?.async===!1&&h.jitless!==!0?(s||(s=o(t.shape)),m=s(m,h),p?Pc([],y,m,h,f,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),m)}});function gc(e,t,r,n){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let o=e.filter(s=>!he(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Y(i,n,j())))}),t)}var ut=d("$ZodUnion",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),k(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),k(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),k(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>tt(s.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);if(l instanceof Promise)a.push(l),i=!0;else{if(l.issues.length===0)return l;a.push(l)}}return i?Promise.all(a).then(u=>gc(u,o,e,s)):gc(a,o,e,s)}});function yc(e,t,r,n){let o=e.filter(s=>s.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Y(i,n,j())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var ss=d("$ZodXor",(e,t)=>{ut.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(r)return n(o,s);let i=!1,a=[];for(let u of t.options){let l=u._zod.run({value:o.value,issues:[]},s);l instanceof Promise?(a.push(l),i=!0):a.push(l)}return i?Promise.all(a).then(u=>yc(u,o,e,s)):yc(a,o,e,s)}}),is=d("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ut.init(e,t);let r=e._zod.parse;k(e._zod,"propValues",()=>{let o={};for(let s of t.options){let i=s._zod.propValues;if(!i||Object.keys(i).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let[a,u]of Object.entries(i)){o[a]||(o[a]=new Set);for(let l of u)o[a].add(l)}}return o});let n=Ze(()=>{let o=t.options,s=new Map;for(let i of o){let a=i._zod.propValues?.[t.discriminator];if(!a||a.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let u of a){if(s.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);s.set(u,i)}}return s});e._zod.parse=(o,s)=>{let i=o.value;if(!Te(i))return o.issues.push({code:"invalid_type",expected:"object",input:i,inst:e}),o;let a=n.value.get(i?.[t.discriminator]);return a?a._zod.run(o,s):t.unionFallback?r(o,s):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:i,path:[t.discriminator],inst:e}),o)}}),as=d("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,s=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([u,l])=>bc(r,u,l)):bc(r,s,i)}});function $o(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(me(e)&&me(t)){let r=Object.keys(t),n=Object.keys(e).filter(s=>r.indexOf(s)!==-1),o={...e,...t};for(let s of n){let i=$o(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],s=t[n],i=$o(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function bc(e,t,r){let n=new Map,o;for(let a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).l=!0}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let u of a.keys)n.has(u)||n.set(u,{}),n.get(u).r=!0;else e.issues.push(a);let s=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),he(e))return e;let i=$o(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var ar=d("$ZodTuple",(e,t)=>{x.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let s=n.value;if(!Array.isArray(s))return n.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let i=[],a=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),u=a===-1?0:r.length-a;if(!t.rest){let p=s.length>r.length,f=s.length<u-1;if(p||f)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:s,inst:e,origin:"array"}),n}let l=-1;for(let p of r){if(l++,l>=s.length&&l>=u)continue;let f=p._zod.run({value:s[l],issues:[]},o);f instanceof Promise?i.push(f.then(m=>Xt(m,n,l))):Xt(f,n,l)}if(t.rest){let p=s.slice(r.length);for(let f of p){l++;let m=t.rest._zod.run({value:f,issues:[]},o);m instanceof Promise?i.push(m.then(h=>Xt(h,n,l))):Xt(m,n,l)}}return i.length?Promise.all(i).then(()=>n):n}});function Xt(e,t,r){e.issues.length&&t.issues.push(...V(r,e.issues)),t.value[r]=e.value}var cs=d("$ZodRecord",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!me(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let s=[],i=t.keyType._zod.values;if(i){r.value={};let a=new Set;for(let l of i)if(typeof l=="string"||typeof l=="number"||typeof l=="symbol"){a.add(typeof l=="number"?l.toString():l);let p=t.valueType._zod.run({value:o[l],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...V(l,f.issues)),r.value[l]=f.value})):(p.issues.length&&r.issues.push(...V(l,p.issues)),r.value[l]=p.value)}let u;for(let l in o)a.has(l)||(u=u??[],u.push(l));u&&u.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:u})}else{r.value={};for(let a of Reflect.ownKeys(o)){if(a==="__proto__")continue;let u=t.keyType._zod.run({value:a,issues:[]},n);if(u instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof a=="string"&&Wt.test(a)&&u.issues.length){let f=t.keyType._zod.run({value:Number(a),issues:[]},n);if(f instanceof Promise)throw new Error("Async schemas not supported in object keys currently");f.issues.length===0&&(u=f)}if(u.issues.length){t.mode==="loose"?r.value[a]=o[a]:r.issues.push({code:"invalid_key",origin:"record",issues:u.issues.map(f=>Y(f,n,j())),input:a,path:[a],inst:e});continue}let p=t.valueType._zod.run({value:o[a],issues:[]},n);p instanceof Promise?s.push(p.then(f=>{f.issues.length&&r.issues.push(...V(a,f.issues)),r.value[u.value]=f.value})):(p.issues.length&&r.issues.push(...V(a,p.issues)),r.value[u.value]=p.value)}}return s.length?Promise.all(s).then(()=>r):r}}),us=d("$ZodMap",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let s=[];r.value=new Map;for(let[i,a]of o){let u=t.keyType._zod.run({value:i,issues:[]},n),l=t.valueType._zod.run({value:a,issues:[]},n);u instanceof Promise||l instanceof Promise?s.push(Promise.all([u,l]).then(([p,f])=>{_c(p,f,r,i,o,e,n)})):_c(u,l,r,i,o,e,n)}return s.length?Promise.all(s).then(()=>r):r}});function _c(e,t,r,n,o,s,i){e.issues.length&&(rt.has(typeof n)?r.issues.push(...V(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:s,issues:e.issues.map(a=>Y(a,i,j()))})),t.issues.length&&(rt.has(typeof n)?r.issues.push(...V(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:s,key:n,issues:t.issues.map(a=>Y(a,i,j()))})),r.value.set(e.value,t.value)}var ls=d("$ZodSet",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let s=[];r.value=new Set;for(let i of o){let a=t.valueType._zod.run({value:i,issues:[]},n);a instanceof Promise?s.push(a.then(u=>wc(u,r))):wc(a,r)}return s.length?Promise.all(s).then(()=>r):r}});function wc(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var ps=d("$ZodEnum",(e,t)=>{x.init(e,t);let r=et(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>rt.has(typeof o)).map(o=>typeof o=="string"?ee(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{let i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),fs=d("$ZodLiteral",(e,t)=>{if(x.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?ee(n):n?ee(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let s=n.value;return r.has(s)||n.issues.push({code:"invalid_value",values:t.values,input:s,inst:e}),n}}),ds=d("$ZodFile",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),ms=d("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r));if(o instanceof Promise)throw new se;return r.value=o,r}});function $c(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var cr=d("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${tt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>$c(s,r.value)):$c(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),hs=d("$ZodExactOptional",(e,t)=>{cr.init(e,t),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),gs=d("$ZodNullable",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${tt(r.source)}|null)$`):void 0}),k(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),ys=d("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>xc(s,t)):xc(o,t)}});function xc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var bs=d("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),_s=d("$ZodNonOptional",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>kc(s,e)):kc(o,e)}});function kc(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var ws=d("$ZodSuccess",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Le("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),$s=d("$ZodCatch",(e,t)=>{x.init(e,t),k(e._zod,"optin",()=>t.innerType._zod.optin),k(e._zod,"optout",()=>t.innerType._zod.optout),k(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>Y(i,n,j()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(s=>Y(s,n,j()))},input:r.value}),r.issues=[]),r)}}),xs=d("$ZodNaN",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),ks=d("$ZodPipe",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>er(i,t.in,n)):er(s,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(s=>er(s,t.out,n)):er(o,t.out,n)}});function er(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var lt=d("$ZodCodec",(e,t)=>{x.init(e,t),k(e._zod,"values",()=>t.in._zod.values),k(e._zod,"optin",()=>t.in._zod.optin),k(e._zod,"optout",()=>t.out._zod.optout),k(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let s=t.in._zod.run(r,n);return s instanceof Promise?s.then(i=>tr(i,t,n)):tr(s,t,n)}else{let s=t.out._zod.run(r,n);return s instanceof Promise?s.then(i=>tr(i,t,n)):tr(s,t,n)}}});function tr(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(s=>rr(e,s,t.out,r)):rr(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(s=>rr(e,s,t.in,r)):rr(e,o,t.in,r)}}function rr(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var Ss=d("$ZodReadonly",(e,t)=>{x.init(e,t),k(e._zod,"propValues",()=>t.innerType._zod.propValues),k(e._zod,"values",()=>t.innerType._zod.values),k(e._zod,"optin",()=>t.innerType?._zod?.optin),k(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Sc):Sc(o)}});function Sc(e){return e.value=Object.freeze(e.value),e}var vs=d("$ZodTemplateLiteral",(e,t)=>{x.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let s=o.startsWith("^")?1:0,i=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(s,i))}else if(n===null||on.has(typeof n))r.push(ee(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),zs=d("$ZodFunction",(e,t)=>(x.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?ge(e._def.input,n):n,s=Reflect.apply(r,this,o);return e._def.output?ge(e._def.output,s):s}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await ye(e._def.input,n):n,s=await Reflect.apply(r,this,o);return e._def.output?await ye(e._def.output,s):s}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new ar({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),Ts=d("$ZodPromise",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Is=d("$ZodLazy",(e,t)=>{x.init(e,t),k(e._zod,"innerType",()=>t.getter()),k(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),k(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),k(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),k(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Ps=d("$ZodCustom",(e,t)=>{A.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(s=>vc(s,r,n,e));vc(o,r,n,e)}});function vc(e,t,r,n){if(!e){let o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(De(o))}}var pt={};ze(pt,{default:()=>xd});var xd={};var Ac,As=Symbol("ZodOutput"),Es=Symbol("ZodInput"),ur=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let n=r[0];return this._map.set(t,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let o={...n,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function lr(){return new ur}(Ac=globalThis).__zod_globalRegistry??(Ac.__zod_globalRegistry=lr());var ce=globalThis.__zod_globalRegistry;function Rs(e,t){return new e({type:"string",...g(t)})}function Cs(e,t){return new e({type:"string",coerce:!0,...g(t)})}function Ns(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function Os(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function Ls(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function Zs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function js(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function Ds(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function pr(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function Ms(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function Bs(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function Us(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function Fs(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function Hs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function qs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Js(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Ks(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ys(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Gs(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Ws(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Vs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Qs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Xs(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function ei(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function ti(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ri={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function ni(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function oi(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function si(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function ii(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function ai(e,t){return new e({type:"number",checks:[],...g(t)})}function ci(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function ui(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function li(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function pi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function fi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function di(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function mi(e,t){return new e({type:"boolean",...g(t)})}function hi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function gi(e,t){return new e({type:"bigint",...g(t)})}function yi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function bi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function _i(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function wi(e,t){return new e({type:"symbol",...g(t)})}function $i(e,t){return new e({type:"undefined",...g(t)})}function xi(e,t){return new e({type:"null",...g(t)})}function ki(e){return new e({type:"any"})}function Si(e){return new e({type:"unknown"})}function vi(e,t){return new e({type:"never",...g(t)})}function zi(e,t){return new e({type:"void",...g(t)})}function Ti(e,t){return new e({type:"date",...g(t)})}function Ii(e,t){return new e({type:"date",coerce:!0,...g(t)})}function Pi(e,t){return new e({type:"nan",...g(t)})}function fr(e,t){return new Vt({check:"less_than",...g(t),value:e,inclusive:!1})}function ft(e,t){return new Vt({check:"less_than",...g(t),value:e,inclusive:!0})}function dr(e,t){return new Qt({check:"greater_than",...g(t),value:e,inclusive:!1})}function dt(e,t){return new Qt({check:"greater_than",...g(t),value:e,inclusive:!0})}function Ai(e){return dr(0,e)}function Ei(e){return fr(0,e)}function Ri(e){return ft(0,e)}function Ci(e){return dt(0,e)}function Ni(e,t){return new to({check:"multiple_of",...g(t),value:e})}function Oi(e,t){return new oo({check:"max_size",...g(t),maximum:e})}function Li(e,t){return new so({check:"min_size",...g(t),minimum:e})}function Zi(e,t){return new io({check:"size_equals",...g(t),size:e})}function ji(e,t){return new ao({check:"max_length",...g(t),maximum:e})}function mt(e,t){return new co({check:"min_length",...g(t),minimum:e})}function Di(e,t){return new uo({check:"length_equals",...g(t),length:e})}function ht(e,t){return new lo({check:"string_format",format:"regex",...g(t),pattern:e})}function Mi(e){return new po({check:"string_format",format:"lowercase",...g(e)})}function Bi(e){return new fo({check:"string_format",format:"uppercase",...g(e)})}function Ui(e,t){return new mo({check:"string_format",format:"includes",...g(t),includes:e})}function Fi(e,t){return new ho({check:"string_format",format:"starts_with",...g(t),prefix:e})}function Hi(e,t){return new go({check:"string_format",format:"ends_with",...g(t),suffix:e})}function qi(e,t,r){return new yo({check:"property",property:e,schema:t,...g(r)})}function Ji(e,t){return new bo({check:"mime_type",mime:e,...g(t)})}function be(e){return new _o({check:"overwrite",tx:e})}function Ki(e){return be(t=>t.normalize(e))}function Yi(){return be(e=>e.trim())}function Gi(){return be(e=>e.toLowerCase())}function Wi(){return be(e=>e.toUpperCase())}function Sd(){return be(e=>rn(e))}function vd(e,t,r){return new e({type:"array",element:t,...g(r)})}function zd(e,t,r){return new e({type:"union",options:t,...g(r)})}function Td(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Id(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Pd(e,t,r){return new e({type:"intersection",left:t,right:r})}function Ad(e,t,r,n){let o=r instanceof x,s=o?n:r,i=o?r:null;return new e({type:"tuple",items:t,rest:i,...g(s)})}function Ed(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Rd(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Cd(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Nd(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,...g(r)})}function Od(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function Ld(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Vi(e,t){return new e({type:"file",...g(t)})}function Zd(e,t){return new e({type:"transform",transform:t})}function jd(e,t){return new e({type:"optional",innerType:t})}function Dd(e,t){return new e({type:"nullable",innerType:t})}function Md(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():je(r)}})}function Bd(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function Ud(e,t){return new e({type:"success",innerType:t})}function Fd(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function Hd(e,t,r){return new e({type:"pipe",in:t,out:r})}function qd(e,t){return new e({type:"readonly",innerType:t})}function Jd(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function Kd(e,t){return new e({type:"lazy",getter:t})}function Yd(e,t){return new e({type:"promise",innerType:t})}function Qi(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Xi(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function ea(e){let t=Ec(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(De(n,r.value,t._zod.def));else{let o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(De(o))}},e(r.value,r)));return t}function Ec(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function ta(e){let t=new A({check:"describe"});return t._zod.onattach=[r=>{let n=ce.get(r)??{};ce.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function ra(e){let t=new A({check:"meta"});return t._zod.onattach=[r=>{let n=ce.get(r)??{};ce.add(r,{...n,...e})}],t._zod.check=()=>{},t}function na(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let s=new Set(n),i=new Set(o),a=e.Codec??lt,u=e.Boolean??ct,l=e.String??Be,p=new l({type:"string",error:r.error}),f=new u({type:"boolean",error:r.error}),m=new a({type:"pipe",in:p,out:f,transform:((h,y)=>{let b=h;return r.case!=="sensitive"&&(b=b.toLowerCase()),s.has(b)?!0:i.has(b)?!1:(y.issues.push({code:"invalid_value",expected:"stringbool",values:[...s,...i],input:y.value,inst:m,continue:!1}),{})}),reverseTransform:((h,y)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Ue(e,t,r,n={}){let o=g(n),s={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:a=>r.test(a),...o};return r instanceof RegExp&&(s.pattern=r),new e(s)}function _e(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ce,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function T(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);let a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,p);else{let m=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let f=e._zod.parent;f&&(i.ref||(i.ref=f),T(f,t,p),t.seen.get(f).isParent=!0)}let u=t.metadataRegistry.get(e);return u&&Object.assign(i.schema,u),t.io==="input"&&F(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function we(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let i of e.seen.entries()){let a=e.metadataRegistry.get(i[0])?.id;if(a){let u=n.get(a);if(u&&u!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,i[0])}}let o=i=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let f=e.external.registry.get(i[0])?.id,m=e.external.uri??(y=>y);if(f)return{ref:m(f)};let h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${m("__shared")}#/${a}/${h}`}}if(i[1]===r)return{ref:"#"};let l=`#/${a}/`,p=i[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:l+p}},s=i=>{if(i[1].schema.$ref)return;let a=i[1],{ref:u,defId:l}=o(i);a.def={...a.schema},l&&(a.defId=l);let p=a.schema;for(let f in p)delete p[f];p.$ref=u};if(e.cycles==="throw")for(let i of e.seen.entries()){let a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
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
40
 
41
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let a=i[1];if(t===i[0]){s(i);continue}if(e.external){let l=e.external.registry.get(i[0])?.id;if(t!==i[0]&&l){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function $e(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=i=>{let a=e.seen.get(i);if(a.ref===null)return;let u=a.def??a.schema,l={...u},p=a.ref;if(a.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),i._zod.parent===p)for(let b in u)b==="$ref"||b==="allOf"||b in l||delete u[b];if(h.$ref&&m.def)for(let b in u)b==="$ref"||b==="allOf"||b in m.def&&JSON.stringify(u[b])===JSON.stringify(m.def[b])&&delete u[b]}let f=i._zod.parent;if(f&&f!==p){n(f);let m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(let h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:i,jsonSchema:u,path:a.path??[]})};for(let i of[...e.seen.entries()].reverse())n(i[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,r.def??r.schema);let s=e.external?.defs??{};for(let i of e.seen.entries()){let a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{let i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:oa(t,"input",e.processors),output:oa(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function F(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return F(n.element,r);if(n.type==="set")return F(n.valueType,r);if(n.type==="lazy")return F(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return F(n.innerType,r);if(n.type==="intersection")return F(n.left,r)||F(n.right,r);if(n.type==="record"||n.type==="map")return F(n.keyType,r)||F(n.valueType,r);if(n.type==="pipe")return F(n.in,r)||F(n.out,r);if(n.type==="object"){for(let o in n.shape)if(F(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(F(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(F(o,r))return!0;return!!(n.rest&&F(n.rest,r))}return!1}var Gd=(e,t={})=>r=>{let n=_e({...r,processors:t});return T(e,n),we(n,e),$e(n,e)},oa=(e,t,r={})=>n=>{let{libraryOptions:o,target:s}=n??{},i=_e({...o??{},target:s,io:t,processors:r});return T(e,i),we(i,e),$e(i,e)};var Wd={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Vd=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:s,maximum:i,format:a,patterns:u,contentEncoding:l}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Wd[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),l&&(o.contentEncoding=l),u&&u.size>0){let p=[...u];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Qd=(e,t,r,n)=>{let o=r,{minimum:s,maximum:i,format:a,multipleOf:u,exclusiveMaximum:l,exclusiveMinimum:p}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof s=="number"&&(o.minimum=s,typeof p=="number"&&t.target!=="draft-04"&&(p>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l),typeof i=="number"&&(o.maximum=i,typeof l=="number"&&t.target!=="draft-04"&&(l<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof u=="number"&&(o.multipleOf=u)},Xd=(e,t,r,n)=>{r.type="boolean"},em=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},tm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},rm=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},nm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},om=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},sm=(e,t,r,n)=>{r.not={}},im=(e,t,r,n)=>{},am=(e,t,r,n)=>{},cm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},um=(e,t,r,n)=>{let o=e._zod.def,s=et(o.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s},lm=(e,t,r,n)=>{let o=e._zod.def,s=[];for(let i of o.values)if(i===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof i=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(i))}else s.push(i);if(s.length!==0)if(s.length===1){let i=s[0];r.type=i===null?"null":typeof i,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[i]:r.const=i}else s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),s.every(i=>typeof i=="boolean")&&(r.type="boolean"),s.every(i=>i===null)&&(r.type="null"),r.enum=s},pm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},fm=(e,t,r,n)=>{let o=r,s=e._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=s.source},dm=(e,t,r,n)=>{let o=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:i,maximum:a,mime:u}=e._zod.bag;i!==void 0&&(s.minLength=i),a!==void 0&&(s.maxLength=a),u?u.length===1?(s.contentMediaType=u[0],Object.assign(o,s)):(Object.assign(o,s),o.anyOf=u.map(l=>({contentMediaType:l}))):Object.assign(o,s)},mm=(e,t,r,n)=>{r.type="boolean"},hm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},gm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},ym=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},bm=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},_m=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},wm=(e,t,r,n)=>{let o=r,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=T(s.element,t,{...n,path:[...n.path,"items"]})},$m=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object",o.properties={};let i=s.shape;for(let l in i)o.properties[l]=T(i[l],t,{...n,path:[...n.path,"properties",l]});let a=new Set(Object.keys(i)),u=new Set([...a].filter(l=>{let p=s.shape[l]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));u.size>0&&(o.required=Array.from(u)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=T(s.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},xm=(e,t,r,n)=>{let o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,u)=>T(a,t,{...n,path:[...n.path,s?"oneOf":"anyOf",u]}));s?r.oneOf=i:r.anyOf=i},km=(e,t,r,n)=>{let o=e._zod.def,s=T(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=T(o.right,t,{...n,path:[...n.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,u=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];r.allOf=u},Sm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="array";let i=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",u=s.items.map((m,h)=>T(m,t,{...n,path:[...n.path,i,h]})),l=s.rest?T(s.rest,t,{...n,path:[...n.path,a,...t.target==="openapi-3.0"?[s.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=u,l&&(o.items=l)):t.target==="openapi-3.0"?(o.items={anyOf:u},l&&o.items.anyOf.push(l),o.minItems=u.length,l||(o.maxItems=u.length)):(o.items=u,l&&(o.additionalItems=l));let{minimum:p,maximum:f}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof f=="number"&&(o.maxItems=f)},vm=(e,t,r,n)=>{let o=r,s=e._zod.def;o.type="object";let i=s.keyType,u=i._zod.bag?.patterns;if(s.mode==="loose"&&u&&u.size>0){let p=T(s.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let f of u)o.patternProperties[f.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=T(s.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=T(s.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let l=i._zod.values;if(l){let p=[...l].filter(f=>typeof f=="string"||typeof f=="number");p.length>0&&(o.required=p)}},zm=(e,t,r,n)=>{let o=e._zod.def,s=T(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},Tm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Im=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Pm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Am=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},Em=(e,t,r,n)=>{let o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;T(s,t,n);let i=t.seen.get(e);i.ref=s},Rm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType,r.readOnly=!0},Cm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Nm=(e,t,r,n)=>{let o=e._zod.def;T(o.innerType,t,n);let s=t.seen.get(e);s.ref=o.innerType},Om=(e,t,r,n)=>{let o=e._zod.innerType;T(o,t,n);let s=t.seen.get(e);s.ref=o},mr={string:Vd,number:Qd,boolean:Xd,bigint:em,symbol:tm,null:rm,undefined:nm,void:om,never:sm,any:im,unknown:am,date:cm,enum:um,literal:lm,nan:pm,template_literal:fm,file:dm,success:mm,custom:hm,function:gm,transform:ym,map:bm,set:_m,array:wm,object:$m,union:xm,intersection:km,tuple:Sm,record:vm,nullable:zm,nonoptional:Tm,default:Im,prefault:Pm,catch:Am,pipe:Em,readonly:Rm,promise:Cm,optional:Nm,lazy:Om};function hr(e,t){if("_idmap"in e){let n=e,o=_e({...t,processors:mr}),s={};for(let u of n._idmap.entries()){let[l,p]=u;T(p,o)}let i={},a={registry:n,uri:t?.uri,defs:s};o.external=a;for(let u of n._idmap.entries()){let[l,p]=u;we(o,p),i[l]=$e(o,p)}if(Object.keys(s).length>0){let u=o.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[u]:s}}return{schemas:i}}let r=_e({...t,processors:mr});return T(e,r),we(r,e),$e(r,e)}var gr=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=_e({processors:mr,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return T(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),we(this.ctx,t);let n=$e(this.ctx,t),{"~standard":o,...s}=n;return s}};var Rc={};var S=d("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");x.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>ge(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Ie(e,r,n),e.parseAsync=async(r,n)=>ye(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Pe(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>U(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),He=d("ZodMiniString",(e,t)=>{Be.init(e,t),S.init(e,t)});function _(e){return Rs(He,e)}var E=d("ZodMiniStringFormat",(e,t)=>{P.init(e,t),He.init(e,t)}),Cc=d("ZodMiniEmail",(e,t)=>{So.init(e,t),E.init(e,t)});function Zm(e){return Ns(Cc,e)}var Nc=d("ZodMiniGUID",(e,t)=>{xo.init(e,t),E.init(e,t)});function jm(e){return Os(Nc,e)}var gt=d("ZodMiniUUID",(e,t)=>{ko.init(e,t),E.init(e,t)});function Dm(e){return Ls(gt,e)}function Mm(e){return Zs(gt,e)}function Bm(e){return js(gt,e)}function Um(e){return Ds(gt,e)}var sa=d("ZodMiniURL",(e,t)=>{vo.init(e,t),E.init(e,t)});function Fm(e){return pr(sa,e)}function Hm(e){return pr(sa,{protocol:/^https?$/,hostname:re.domain,...g(e)})}var Oc=d("ZodMiniEmoji",(e,t)=>{zo.init(e,t),E.init(e,t)});function qm(e){return Ms(Oc,e)}var Lc=d("ZodMiniNanoID",(e,t)=>{To.init(e,t),E.init(e,t)});function Jm(e){return Bs(Lc,e)}var Zc=d("ZodMiniCUID",(e,t)=>{Io.init(e,t),E.init(e,t)});function Km(e){return Us(Zc,e)}var jc=d("ZodMiniCUID2",(e,t)=>{Po.init(e,t),E.init(e,t)});function Ym(e){return Fs(jc,e)}var Dc=d("ZodMiniULID",(e,t)=>{Ao.init(e,t),E.init(e,t)});function Gm(e){return Hs(Dc,e)}var Mc=d("ZodMiniXID",(e,t)=>{Eo.init(e,t),E.init(e,t)});function Wm(e){return qs(Mc,e)}var Bc=d("ZodMiniKSUID",(e,t)=>{Ro.init(e,t),E.init(e,t)});function Vm(e){return Js(Bc,e)}var Uc=d("ZodMiniIPv4",(e,t)=>{Zo.init(e,t),E.init(e,t)});function Qm(e){return Ks(Uc,e)}var Fc=d("ZodMiniIPv6",(e,t)=>{jo.init(e,t),E.init(e,t)});function Xm(e){return Ys(Fc,e)}var Hc=d("ZodMiniCIDRv4",(e,t)=>{Mo.init(e,t),E.init(e,t)});function eh(e){return Ws(Hc,e)}var qc=d("ZodMiniCIDRv6",(e,t)=>{Bo.init(e,t),E.init(e,t)});function th(e){return Vs(qc,e)}var Jc=d("ZodMiniMAC",(e,t)=>{Do.init(e,t),E.init(e,t)});function rh(e){return Gs(Jc,e)}var Kc=d("ZodMiniBase64",(e,t)=>{Fo.init(e,t),E.init(e,t)});function nh(e){return Qs(Kc,e)}var Yc=d("ZodMiniBase64URL",(e,t)=>{Ho.init(e,t),E.init(e,t)});function oh(e){return Xs(Yc,e)}var Gc=d("ZodMiniE164",(e,t)=>{qo.init(e,t),E.init(e,t)});function sh(e){return ei(Gc,e)}var Wc=d("ZodMiniJWT",(e,t)=>{Jo.init(e,t),E.init(e,t)});function ih(e){return ti(Wc,e)}var yt=d("ZodMiniCustomStringFormat",(e,t)=>{Ko.init(e,t),E.init(e,t)});function ah(e,t,r={}){return Ue(yt,e,t,r)}function ch(e){return Ue(yt,"hostname",re.hostname,e)}function uh(e){return Ue(yt,"hex",re.hex,e)}function lh(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=re[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Ue(yt,n,o,t)}var bt=d("ZodMiniNumber",(e,t)=>{or.init(e,t),S.init(e,t)});function xe(e){return ai(bt,e)}var qe=d("ZodMiniNumberFormat",(e,t)=>{Yo.init(e,t),bt.init(e,t)});function ph(e){return ui(qe,e)}function fh(e){return li(qe,e)}function dh(e){return pi(qe,e)}function mh(e){return fi(qe,e)}function hh(e){return di(qe,e)}var _t=d("ZodMiniBoolean",(e,t)=>{ct.init(e,t),S.init(e,t)});function Je(e){return mi(_t,e)}var wt=d("ZodMiniBigInt",(e,t)=>{sr.init(e,t),S.init(e,t)});function gh(e){return gi(wt,e)}var ia=d("ZodMiniBigIntFormat",(e,t)=>{Go.init(e,t),wt.init(e,t)});function yh(e){return bi(ia,e)}function bh(e){return _i(ia,e)}var Vc=d("ZodMiniSymbol",(e,t)=>{Wo.init(e,t),S.init(e,t)});function _h(e){return wi(Vc,e)}var Qc=d("ZodMiniUndefined",(e,t)=>{Vo.init(e,t),S.init(e,t)});function wh(e){return $i(Qc,e)}var Xc=d("ZodMiniNull",(e,t)=>{Qo.init(e,t),S.init(e,t)});function eu(e){return xi(Xc,e)}var tu=d("ZodMiniAny",(e,t)=>{Xo.init(e,t),S.init(e,t)});function $h(){return ki(tu)}var ru=d("ZodMiniUnknown",(e,t)=>{es.init(e,t),S.init(e,t)});function yr(){return Si(ru)}var nu=d("ZodMiniNever",(e,t)=>{ts.init(e,t),S.init(e,t)});function ou(e){return vi(nu,e)}var su=d("ZodMiniVoid",(e,t)=>{rs.init(e,t),S.init(e,t)});function xh(e){return zi(su,e)}var br=d("ZodMiniDate",(e,t)=>{ns.init(e,t),S.init(e,t)});function kh(e){return Ti(br,e)}var iu=d("ZodMiniArray",(e,t)=>{os.init(e,t),S.init(e,t)});function H(e,t){return new iu({type:"array",element:e,...g(t)})}function Sh(e){let t=e._zod.def.shape;return gu(Object.keys(t))}var _r=d("ZodMiniObject",(e,t)=>{ir.init(e,t),S.init(e,t),k(e,"shape",()=>t.shape)});function I(e,t){let r={type:"object",shape:e??{},...g(t)};return new _r(r)}function vh(e,t){return new _r({type:"object",shape:e,catchall:ou(),...g(t)})}function zh(e,t){return new _r({type:"object",shape:e,catchall:yr(),...g(t)})}function ke(e,t){return Ht(e,t)}function Th(e,t){return pn(e,t)}function Ih(e,t){return Ht(e,t)}function Ph(e,t){return un(e,t)}function Ah(e,t){return ln(e,t)}function Eh(e,t){return fn(ua,e,t)}function Rh(e,t){return dn(la,e,t)}function Ch(e,t){return e.clone({...e._zod.def,catchall:t})}var aa=d("ZodMiniUnion",(e,t)=>{ut.init(e,t),S.init(e,t)});function au(e,t){return new aa({type:"union",options:e,...g(t)})}var cu=d("ZodMiniXor",(e,t)=>{aa.init(e,t),ss.init(e,t)});function Nh(e,t){return new cu({type:"union",options:e,inclusive:!1,...g(t)})}var uu=d("ZodMiniDiscriminatedUnion",(e,t)=>{is.init(e,t),S.init(e,t)});function Oh(e,t,r){return new uu({type:"union",options:t,discriminator:e,...g(r)})}var lu=d("ZodMiniIntersection",(e,t)=>{as.init(e,t),S.init(e,t)});function Lh(e,t){return new lu({type:"intersection",left:e,right:t})}var pu=d("ZodMiniTuple",(e,t)=>{ar.init(e,t),S.init(e,t)});function fu(e,t,r){let n=t instanceof x,o=n?r:t,s=n?t:null;return new pu({type:"tuple",items:e,rest:s,...g(o)})}var wr=d("ZodMiniRecord",(e,t)=>{cs.init(e,t),S.init(e,t)});function du(e,t,r){return new wr({type:"record",keyType:e,valueType:t,...g(r)})}function Zh(e,t,r){let n=U(e);return n._zod.values=void 0,new wr({type:"record",keyType:n,valueType:t,...g(r)})}function jh(e,t,r){return new wr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var mu=d("ZodMiniMap",(e,t)=>{us.init(e,t),S.init(e,t)});function Dh(e,t,r){return new mu({type:"map",keyType:e,valueType:t,...g(r)})}var hu=d("ZodMiniSet",(e,t)=>{ls.init(e,t),S.init(e,t)});function Mh(e,t){return new hu({type:"set",valueType:e,...g(t)})}var ca=d("ZodMiniEnum",(e,t)=>{ps.init(e,t),S.init(e,t),e.options=Object.values(t.entries)});function gu(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new ca({type:"enum",entries:r,...g(t)})}function Bh(e,t){return new ca({type:"enum",entries:e,...g(t)})}var yu=d("ZodMiniLiteral",(e,t)=>{fs.init(e,t),S.init(e,t)});function Uh(e,t){return new yu({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var bu=d("ZodMiniFile",(e,t)=>{ds.init(e,t),S.init(e,t)});function Fh(e){return Vi(bu,e)}var _u=d("ZodMiniTransform",(e,t)=>{ms.init(e,t),S.init(e,t)});function Hh(e){return new _u({type:"transform",transform:e})}var ua=d("ZodMiniOptional",(e,t)=>{cr.init(e,t),S.init(e,t)});function w(e){return new ua({type:"optional",innerType:e})}var wu=d("ZodMiniExactOptional",(e,t)=>{hs.init(e,t),S.init(e,t)});function qh(e){return new wu({type:"optional",innerType:e})}var $u=d("ZodMiniNullable",(e,t)=>{gs.init(e,t),S.init(e,t)});function $r(e){return new $u({type:"nullable",innerType:e})}function Jh(e){return w($r(e))}var xu=d("ZodMiniDefault",(e,t)=>{ys.init(e,t),S.init(e,t)});function Kh(e,t){return new xu({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var ku=d("ZodMiniPrefault",(e,t)=>{bs.init(e,t),S.init(e,t)});function Yh(e,t){return new ku({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():je(t)}})}var la=d("ZodMiniNonOptional",(e,t)=>{_s.init(e,t),S.init(e,t)});function Gh(e,t){return new la({type:"nonoptional",innerType:e,...g(t)})}var Su=d("ZodMiniSuccess",(e,t)=>{ws.init(e,t),S.init(e,t)});function Wh(e){return new Su({type:"success",innerType:e})}var vu=d("ZodMiniCatch",(e,t)=>{$s.init(e,t),S.init(e,t)});function Vh(e,t){return new vu({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var zu=d("ZodMiniNaN",(e,t)=>{xs.init(e,t),S.init(e,t)});function Qh(e){return Pi(zu,e)}var pa=d("ZodMiniPipe",(e,t)=>{ks.init(e,t),S.init(e,t)});function Xh(e,t){return new pa({type:"pipe",in:e,out:t})}var fa=d("ZodMiniCodec",(e,t)=>{pa.init(e,t),lt.init(e,t)});function eg(e,t,r){return new fa({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Tu=d("ZodMiniReadonly",(e,t)=>{Ss.init(e,t),S.init(e,t)});function tg(e){return new Tu({type:"readonly",innerType:e})}var Iu=d("ZodMiniTemplateLiteral",(e,t)=>{vs.init(e,t),S.init(e,t)});function rg(e,t){return new Iu({type:"template_literal",parts:e,...g(t)})}var Pu=d("ZodMiniLazy",(e,t)=>{Is.init(e,t),S.init(e,t)});function Au(e){return new Pu({type:"lazy",getter:e})}var Eu=d("ZodMiniPromise",(e,t)=>{Ts.init(e,t),S.init(e,t)});function ng(e){return new Eu({type:"promise",innerType:e})}var da=d("ZodMiniCustom",(e,t)=>{Ps.init(e,t),S.init(e,t)});function og(e,t){let r=new A({check:"custom",...g(t)});return r._zod.check=e,r}function Ru(e,t){return Qi(da,e??(()=>!0),t)}function sg(e,t={}){return Xi(da,e,t)}function ig(e){return ea(e)}var ag=ta,cg=ra;function ug(e,t={}){let r=Ru(n=>n instanceof e,t);return r._zod.bag.Class=e,r._zod.check=n=>{n.value instanceof e||n.issues.push({code:"invalid_type",expected:e.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var lg=(...e)=>na({Codec:fa,Boolean:_t,String:He},...e);function pg(){let e=Au(()=>au([_(),xe(),Je(),eu(),H(e),du(_(),e)]));return e}var Cu=d("ZodMiniFunction",(e,t)=>{zs.init(e,t),S.init(e,t)});function fg(e){return new Cu({type:"function",input:Array.isArray(e?.input)?fu(e?.input):e?.input??H(yr()),output:e?.output??yr()})}var ma={};ze(ma,{ZodMiniISODate:()=>kr,ZodMiniISODateTime:()=>xr,ZodMiniISODuration:()=>vr,ZodMiniISOTime:()=>Sr,date:()=>mg,datetime:()=>dg,duration:()=>gg,time:()=>hg});var xr=d("ZodMiniISODateTime",(e,t)=>{Co.init(e,t),E.init(e,t)});function dg(e){return ni(xr,e)}var kr=d("ZodMiniISODate",(e,t)=>{No.init(e,t),E.init(e,t)});function mg(e){return oi(kr,e)}var Sr=d("ZodMiniISOTime",(e,t)=>{Oo.init(e,t),E.init(e,t)});function hg(e){return si(Sr,e)}var vr=d("ZodMiniISODuration",(e,t)=>{Lo.init(e,t),E.init(e,t)});function gg(e){return ii(vr,e)}var ha={};ze(ha,{bigint:()=>wg,boolean:()=>_g,date:()=>$g,number:()=>bg,string:()=>yg});function yg(e){return Cs(He,e)}function bg(e){return ci(bt,e)}function _g(e){return hi(_t,e)}function wg(e){return yi(wt,e)}function $g(e){return Ii(br,e)}var Q=_().check(mt(1)),xg=_().check(ht(/^https?:\/\/.+/)),Ke=I({CLANCY_BASE_BRANCH:w(_()),CLANCY_LABEL:w(_()),CLANCY_MODEL:w(_()),CLANCY_NOTIFY_WEBHOOK:w(_()),CLANCY_STATUS_IN_PROGRESS:w(_()),CLANCY_STATUS_DONE:w(_()),CLANCY_STATUS_REVIEW:w(_()),MAX_ITERATIONS:w(_()),PLAYWRIGHT_ENABLED:w(_()),PLAYWRIGHT_DEV_PORT:w(_()),CLANCY_ROLES:w(_()),CLANCY_PLAN_STATUS:w(_()),CLANCY_PLAN_LABEL:w(_()),CLANCY_PLAN_STATE_TYPE:w(_()),CLANCY_STATUS_PLANNED:w(_()),CLANCY_SKIP_COMMENTS:w(_()),GITHUB_TOKEN:w(_()),GITLAB_TOKEN:w(_()),BITBUCKET_USER:w(_()),BITBUCKET_TOKEN:w(_()),CLANCY_GIT_PLATFORM:w(_()),CLANCY_GIT_API_URL:w(_()),CLANCY_MAX_REWORK:w(_()),CLANCY_TDD:w(_()),CLANCY_MODE:w(_()),CLANCY_BRIEF_ISSUE_TYPE:w(_()),CLANCY_BRIEF_EPIC:w(_()),CLANCY_COMPONENT:w(_()),CLANCY_FIX_RETRIES:w(_()),CLANCY_VERIFY_COMMANDS:w(_()),CLANCY_TOKEN_RATE:w(_()),CLANCY_TIME_LIMIT:w(_()),CLANCY_BRANCH_GUARD:w(_()),CLANCY_LABEL_BRIEF:w(_()),CLANCY_LABEL_PLAN:w(_()),CLANCY_LABEL_BUILD:w(_())}),Ou=ke(Ke,{JIRA_BASE_URL:xg,JIRA_USER:Q,JIRA_API_TOKEN:Q,JIRA_PROJECT_KEY:Q,CLANCY_JQL_STATUS:w(_()),CLANCY_JQL_SPRINT:w(_())}),Lu=ke(Ke,{GITHUB_TOKEN:Q,GITHUB_REPO:Q}),Zu=ke(Ke,{LINEAR_API_KEY:Q,LINEAR_TEAM_ID:Q}),ju=ke(Ke,{SHORTCUT_API_TOKEN:Q,SHORTCUT_WORKFLOW:w(_())}),Du=ke(Ke,{NOTION_TOKEN:Q,NOTION_DATABASE_ID:Q,CLANCY_NOTION_STATUS:w(_()),CLANCY_NOTION_ASSIGNEE:w(_()),CLANCY_NOTION_LABELS:w(_()),CLANCY_NOTION_PARENT:w(_())}),Mu=ke(Ke,{AZDO_ORG:Q,AZDO_PROJECT:Q,AZDO_PAT:Q,CLANCY_AZDO_STATUS:w(_()),CLANCY_AZDO_WIT:w(_())});function zr(e){if(e.JIRA_BASE_URL){let t=Ou.safeParse(e);return t.success?{provider:"jira",env:t.data}:`\u2717 Jira env validation failed: ${t.error.message}`}if(e.GITHUB_TOKEN&&e.GITHUB_REPO){let t=Lu.safeParse(e);return t.success?{provider:"github",env:t.data}:`\u2717 GitHub env validation failed: ${t.error.message}`}if(e.LINEAR_API_KEY){let t=Zu.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}if(e.SHORTCUT_API_TOKEN){let t=ju.safeParse(e);return t.success?{provider:"shortcut",env:t.data}:`\u2717 Shortcut env validation failed: ${t.error.message}`}if(e.NOTION_DATABASE_ID){let t=Du.safeParse(e);return t.success?{provider:"notion",env:t.data}:`\u2717 Notion env validation failed: ${t.error.message}`}if(e.AZDO_ORG){let t=Mu.safeParse(e);return t.success?{provider:"azdo",env:t.data}:`\u2717 Azure DevOps env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, Linear, Shortcut, Notion, or Azure DevOps credentials in .clancy/.env"}function D(e){return e.env}import{appendFileSync as Bu,mkdirSync as kg,readFileSync as Sg}from"node:fs";import{dirname as vg,join as Uu}from"node:path";function zg(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),s=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${s}`}function C(e,t,r,n,o,s){let i=Uu(e,".clancy","progress.txt");kg(vg(i),{recursive:!0});let a=zg(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let f=`${a} | ${n} | ${t} | ${r}
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
42
  `;Bu(i,f,"utf8");return}let u=o!=null?` | pr:${o}`:"",l=s?` | parent:${s}`:"",p=`${a} | ${t} | ${r} | ${n}${u}${l}
43
- `;Bu(i,p,"utf8")}function Fu(e){let t=Uu(e,".clancy","progress.txt"),r;try{r=Sg(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
44
- `)){let s=o.trim();if(!s)continue;let i=s.split(" | ");if(i.length<4)continue;let a=i[0];if(i[1]==="BRIEF"||i[1]==="APPROVE_BRIEF"){n.push({timestamp:a,key:i[2],summary:i.slice(3).join(" | "),status:i[1]});continue}let u=i[1],l,p,f,m=[];for(let h=2;h<i.length;h++){let y=i[h],b=y.match(/^pr:(\d+)$/),v=y.match(/^parent:(.+)$/);b?p=parseInt(b[1],10):v?f=v[1]:h>=3&&!l&&y===y.toUpperCase()&&y.length>1?l=y:m.push(y)}l&&(l==="APPROVE"&&(l="APPROVE_PLAN"),n.push({timestamp:a,key:u,summary:m.join(" | "),status:l,...p!=null&&{prNumber:p},...f!=null&&{parent:f}}))}return n}function Hu(e,t){let r=Fu(e),n=t.toLowerCase(),o=0;for(let s of r)s.key.toLowerCase()===n&&s.status==="REWORK"&&o++;return o}function q(e,t){let r=Fu(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}function Tg(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function Tr(e,t,r,n){let o=[],s=r?Tg(r):!1;switch(e.provider){case"github":o.push(s?`Part of ${t.key}`:`Closes ${t.key}`);break;case"jira":o.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":o.push(`**Linear:** ${t.key}`);break}return o.push(""),t.description&&(o.push("## Description"),o.push(""),o.push(t.description),o.push("")),n&&(o.push("## \u26A0 Verification Warning"),o.push(""),o.push(n),o.push(""),o.push("This PR may need manual fixes before merging."),o.push("")),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.push(""),o.push("---"),o.push("<details>"),o.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),o.push(""),o.push("To request changes:"),o.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),o.push("- **General feedback** \u2014 reply with a comment starting with `Rework:` followed by what needs fixing. Comments without the `Rework:` prefix are treated as discussion."),o.push(""),o.push("Example: `Rework: The form validation doesn't handle empty passwords`"),o.push(""),o.push("</details>"),o.join(`
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
45
  `)}function qu(e,t,r,n){let o=[];o.push(`## ${e} \u2014 ${t}`),o.push(""),o.push("### Children"),o.push("");for(let s of r){let i=s.prNumber?` (#${s.prNumber})`:"";o.push(`- ${s.key} \u2014 ${s.summary}${i}`)}if(n==="github"){o.push(""),o.push("### Closes"),o.push("");let s=r.map(i=>i.key).filter(i=>i.startsWith("#"));e.startsWith("#")&&s.unshift(e),s.length>0&&o.push(s.map(i=>`Closes ${i}`).join(", "))}return o.push(""),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.join(`
46
- `)}import{execFileSync as Ig}from"node:child_process";function Ju(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],s=r?.[2]??n?.[2];if(!(!o||!s))return{hostname:o,path:s}}function Pg(e){let t=Ju(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(Ag(r)){case"github":{let s=n.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let s=n.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:r};let i=n.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function Ag(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function Se(e){let t;try{t=Ig("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Eg(t,e):Pg(t):{host:"none"}}function Eg(e,t){let r=Ju(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let s=o.split("/");return s.length>=2?{host:"github",owner:s[0],repo:s[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let s=o.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let s=o.match(/^scm\/([^/]+)\/(.+)$/);if(s)return{host:"bitbucket-server",projectKey:s[1],repoSlug:s[2],hostname:n};let i=o.split("/");return i.length>=2?{host:"bitbucket-server",projectKey:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function $t(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var Rg=I({id:xe(),links:I({html:w(I({href:w(_())}))}),participants:H(I({state:w(_()),role:_()}))}),Ku=I({values:H(Rg)}),Cg=I({content:I({raw:_()}),inline:w(I({path:w(_())})),created_on:_(),user:w(I({nickname:w(_())}))}),ya=I({values:H(Cg)}),Ng=I({id:xe(),links:I({self:w(H(I({href:w(_())})))}),reviewers:H(I({status:_()}))}),Yu=I({values:H(Ng)}),Og=I({text:_(),anchor:w(I({path:w(_())})),createdDate:xe(),author:w(I({slug:w(_())}))}),Lg=I({action:_(),comment:w(Og)}),ba=I({values:H(Lg)});async function Ee(e,t,r,n,o){let s=new AbortController,i=setTimeout(()=>s.abort(),3e4);try{let a=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:s.signal});if(!a.ok){let p=await a.text().catch(()=>""),f=o?.(a.status,p)??!1;return{ok:!1,error:`HTTP ${a.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:f}}let u=await a.json(),l=n(u);return!l.url&&!l.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:l.url,number:l.number}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(i)}}function Ye(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function ie(e){return e.trim().toLowerCase().startsWith("rework:")}function Re(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function Gu(e,t,r,n,o,s,i,a){return Ee(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ye(e,t)},{title:i,description:a,source:{branch:{name:o}},destination:{branch:{name:s}},close_source_branch:!0},u=>{let l=u;return{url:l.links?.html?.href??"",number:l.id??0}},(u,l)=>u===409&&l.includes("already exists"))}async function Wu(e,t,r,n,o,s,i,a){return Ee(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:i,description:a,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${s}`,repository:{slug:n,project:{key:r}}}},u=>{let l=u;return{url:l.links?.self?.[0]?.href??"",number:l.id??0}},(u,l)=>u===409&&(l.includes("already exists")||l.includes("Only one pull request")))}async function Vu(e,t,r,n,o,s){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ye(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:s}})})).ok}catch{return!1}}async function Qu(e,t,r,n,o,s){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:s})})).ok}catch{return!1}}async function Xu(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,a=await fetch(i,{headers:{Authorization:Ye(e,t)}});if(!a.ok)return;let u=Ku.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.html?.href??"",f=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${l.id}/comments?pagelen=100`,m=await fetch(f,{headers:{Authorization:Ye(e,t)}});if(!m.ok)return;let h=ya.parse(await m.json()),y=s?h.values.filter(X=>X.created_on>s):h.values,b=y.some(X=>X.inline!=null),v=y.some(X=>X.inline==null&&ie(X.content.raw));return{changesRequested:b||v,prNumber:l.id,prUrl:p}}catch{return}}async function el(e,t,r,n,o,s){try{let i=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,a=await fetch(i,{headers:{Authorization:Ye(e,t)}});if(!a.ok)return[];let u=ya.parse(await a.json()),l=s?u.values.filter(f=>f.created_on>s):u.values,p=[];for(let f of l)if(f.inline!=null){let m=f.inline.path?`[${f.inline.path}] `:"";p.push(`${m}${f.content.raw}`)}else ie(f.content.raw)&&p.push(Re(f.content.raw));return p}catch{return[]}}async function tl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return;let u=Yu.parse(await a.json());if(u.values.length===0)return;let l=u.values[0],p=l.links.self?.[0]?.href??"",f=`${t}/projects/${r}/repos/${n}/pull-requests/${l.id}/activities?limit=100`,m=await fetch(f,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=ba.parse(await m.json()),y=s?Date.parse(s):void 0,b=h.values.filter(R=>R.action==="COMMENTED"&&R.comment&&(y==null||R.comment.createdDate>y)),v=b.some(R=>R.comment.anchor!=null),J=b.some(R=>R.comment.anchor==null&&ie(R.comment.text));return{changesRequested:v||J,prNumber:l.id,prUrl:p}}catch{return}}async function rl(e,t,r,n,o,s){try{let i=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,a=await fetch(i,{headers:{Authorization:`Bearer ${e}`}});if(!a.ok)return[];let u=ba.parse(await a.json()),l=s?Date.parse(s):void 0,p=[];for(let f of u.values){if(f.action!=="COMMENTED"||!f.comment||l!=null&&f.comment.createdDate<=l)continue;let m=f.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else ie(m.text)&&p.push(Re(m.text))}return p}catch{return[]}}var Zg=c.object({number:c.number(),title:c.string(),body:c.optional(c.nullable(c.string())),pull_request:c.optional(c.unknown()),milestone:c.optional(c.nullable(c.object({title:c.string()}))),labels:c.optional(c.array(c.object({name:c.optional(c.string())})))}),nl=c.array(Zg),jg=c.object({id:c.number(),body:c.optional(c.nullable(c.string())),created_at:c.string(),user:c.optional(c.object({login:c.string()}))}),_a=c.array(jg),Dg=c.object({number:c.number(),html_url:c.string(),state:c.string()}),ol=c.array(Dg),Mg=c.object({state:c.string(),user:c.object({login:c.string()}),submitted_at:c.string()}),sl=c.array(Mg),Bg=c.object({body:c.optional(c.nullable(c.string())),path:c.optional(c.string()),created_at:c.optional(c.string()),user:c.optional(c.object({login:c.string()}))}),wa=c.array(Bg);var Z="https://api.github.com";async function Ir(e,t,r,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),1e4),i=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(s),i.ok)return{ok:!0};let a=r[i.status];return a?{ok:!1,error:a}:{ok:!1,error:`\u2717 HTTP ${i.status}`}}catch{return{ok:!1,error:n}}}function M(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function ve(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}async function il(e,t,r,n,o=Z,s,i){try{let a=M(e),u=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:a});if(!u.ok)return;let l=ol.parse(await u.json());if(l.length===0)return;let p=l[0],f=s?`&since=${s}`:"",[m,h]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${p.number}/comments?per_page=100${f}`,{headers:a}),fetch(`${o}/repos/${t}/issues/${p.number}/comments?per_page=100${f}`,{headers:a})]);if(!m.ok||!h.ok)return;let y=wa.parse(await m.json()),b=_a.parse(await h.json()),v=i?y.filter(ae=>ae.user?.login!==i):y,J=i?b.filter(ae=>ae.user?.login!==i):b,X=v.length>0,R=J.some(ae=>ae.body&&ie(ae.body)),L=X||R,K;if(!L)try{let ae=await fetch(`${o}/repos/${t}/pulls/${p.number}/reviews?per_page=100`,{headers:a});if(ae.ok){let Kr=sl.parse(await ae.json()),Ma=new Map;for(let le of Kr)le.state==="PENDING"||le.state==="DISMISSED"||Ma.set(le.user.login,le.state);let Ba=[...Ma.entries()].filter(([,le])=>le==="CHANGES_REQUESTED");Ba.length>0&&(L=!0,K=Ba.map(([le])=>le))}}catch{}return{changesRequested:L,prNumber:p.number,prUrl:p.html_url,reviewers:K}}catch{return}}async function al(e,t,r,n=Z,o,s){try{let i=M(e),a=o?`&since=${o}`:"",[u,l]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${a}`,{headers:i}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${a}`,{headers:i})]);if(!u.ok||!l.ok)return[];let p=wa.parse(await u.json()),f=_a.parse(await l.json()),m=s?p.filter(b=>b.user?.login!==s):p,h=s?f.filter(b=>b.user?.login!==s):f,y=[];for(let b of m){if(!b.body)continue;let v=b.path?`[${b.path}] `:"";y.push(`${v}${b.body}`)}for(let b of h)b.body&&ie(b.body)&&y.push(Re(b.body));return y}catch{return[]}}async function cl(e,t,r,n,o=Z){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...M(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function ul(e,t,r,n,o=Z){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...M(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function ll(e,t,r,n,o,s,i=Z){return Ee(`${i}/repos/${t}/pulls`,M(e),{title:o,head:r,base:n,body:s},a=>{let u=a;return{url:u.html_url??"",number:u.number??0}},(a,u)=>a===422&&u.includes("already exists"))}var Ug=I({iid:xe(),web_url:_(),detailed_merge_status:w(_())}),pl=H(Ug),Fg=I({body:_(),resolvable:Je(),resolved:w(Je()),system:Je(),type:w($r(_())),created_at:w(_()),position:w(I({new_path:w(_())})),author:w(I({username:_()}))}),Hg=I({id:w(_()),notes:H(Fg)}),$a=H(Hg);async function fl(e,t,r,n,o,s,i){let a=encodeURIComponent(r);return Ee(`${t}/projects/${a}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:s,description:i,remove_source_branch:!0},u=>{let l=u;return{url:l.web_url??"",number:l.iid??0}},(u,l)=>u===409&&l.includes("already exists"))}async function dl(e,t,r,n,o){try{let s=encodeURIComponent(r);return(await fetch(`${t}/projects/${s}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function ml(e,t,r,n,o){let s=encodeURIComponent(r),i=0;for(let a of o)try{(await fetch(`${t}/projects/${s}/merge_requests/${n}/discussions/${a}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&i++}catch{}return i}async function hl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests?source_branch=${n}&state=opened`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return;let u=pl.parse(await a.json());if(u.length===0)return;let l=u[0],p=`${t}/projects/${s}/merge_requests/${l.iid}/discussions?per_page=100`,f=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!f.ok)return;let m=$a.parse(await f.json()),h=!1;for(let y of m){for(let b of y.notes)if(!b.system&&!(o&&b.created_at&&b.created_at<=o)){if(b.type==="DiffNote"&&b.resolvable!==!1&&b.resolved!==!0){h=!0;break}if(ie(b.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:l.iid,prUrl:l.web_url}}catch{return}}async function gl(e,t,r,n,o){try{let s=encodeURIComponent(r),i=`${t}/projects/${s}/merge_requests/${n}/discussions?per_page=100`,a=await fetch(i,{headers:{"PRIVATE-TOKEN":e}});if(!a.ok)return{comments:[],discussionIds:[]};let u=$a.parse(await a.json()),l=[],p=[];for(let f of u){let m=!1;for(let h of f.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let y=h.position?.new_path?`[${h.position.new_path}] `:"";l.push(`${y}${h.body}`),m=!0}else ie(h.body)&&(l.push(Re(h.body)),m=!0);m&&f.id&&p.push(f.id)}return{comments:l,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function xt(e,t){let r=D(e);switch(t.host){case"github":if(r.GITHUB_TOKEN)return{token:r.GITHUB_TOKEN};break;case"gitlab":if(r.GITLAB_TOKEN)return{token:r.GITLAB_TOKEN};break;case"bitbucket":if(r.BITBUCKET_USER&&r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN,username:r.BITBUCKET_USER};break;case"bitbucket-server":if(r.BITBUCKET_TOKEN)return{token:r.BITBUCKET_TOKEN};break}}async function kt(e,t,r,n,o,s){let i=xt(e,t);if(!i)return;let a=$t(t,D(e).CLANCY_GIT_API_URL);if(a)switch(t.host){case"github":return ll(i.token,`${t.owner}/${t.repo}`,r,n,o,s,a);case"gitlab":return fl(i.token,a,t.projectPath,r,n,o,s);case"bitbucket":return Gu(i.username,i.token,t.workspace,t.repoSlug,r,n,o,s);case"bitbucket-server":return Wu(i.token,a,t.projectKey,t.repoSlug,r,n,o,s);default:return}}function Pr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function xa(e,t){let r=Fa(e),n=We(e);if(r)return Zt(e)?!0:(console.log(z(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Oe(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(z(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log($(" To preserve this work, push it manually:")),console.log($(` git push -u origin ${e}`)),console.log($(" Then re-run /clancy:once to continue.")),!1;try{if(yl("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),yl("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),Ve(e))console.log(O(` \u2713 Created epic branch ${e}`));else return console.log(z(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Oe(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function ka(e,t,r,n,o,s=!1,i,a){if(!Ve(r)){console.log(z(`\u26A0 Could not push ${r} to origin.`)),console.log($(" The branch is still available locally. Push manually:")),console.log($(` git push -u origin ${r}`)),s||C(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,i),N(n);let y=Ce(Date.now()-o);return console.log(""),console.log(z(`\u26A0 ${t.key} implemented but push failed`)+$(` (${y})`)),!1}console.log(O(` \u2713 Pushed ${r}`));let l;try{let y=Jg(process.cwd(),".clancy","verify-attempt.txt"),b=qg(y,"utf8").trim(),v=parseInt(b,10);v>0&&(l=`Verification checks did not fully pass (${v} attempt(s)). Review carefully.`)}catch{}let p=D(e).CLANCY_GIT_PLATFORM,f=Se(p),m=`feat(${t.key}): ${t.title}`,h=Tr(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,l);if(f.host!=="none"&&f.host!=="unknown"&&f.host!=="azure"){let y=await kt(e,f,r,n,m,h);if(y?.ok)console.log(O(` \u2713 PR created: ${y.url}`)),s||C(process.cwd(),t.key,t.title,"PR_CREATED",y.number,i);else if(y&&!y.ok&&y.alreadyExists)console.log(z(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i);else if(y&&!y.ok){console.log(z(` \u26A0 PR/MR creation failed: ${y.error}`));let b=Pr(f,r,n);console.log(b?$(` Create one manually: ${b}`):$(" Branch pushed \u2014 create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}else{let b=Pr(f,r,n);console.log(b?$(` Create a PR: ${b}`):$(" Branch pushed to remote. Create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i)}}else f.host==="none"?(console.log(z(`\u26A0 No git remote configured. Branch available locally: ${r}`)),s||C(process.cwd(),t.key,t.title,"LOCAL",void 0,i)):(console.log($(" Branch pushed to remote. Create a PR/MR manually.")),s||C(process.cwd(),t.key,t.title,"PUSHED",void 0,i));if(e.provider!=="github"&&a){let y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;y&&await a.transitionTicket(t,y)}return N(n),!0}async function bl(e,t,r,n,o,s){console.log(""),console.log(O(`\u{1F389} All children of ${t} are done!`)),console.log($(` Creating epic PR: ${n} \u2192 ${o}`));let i=q(process.cwd(),"PR_CREATED"),a=q(process.cwd(),"DONE"),u=q(process.cwd(),"REWORK"),l=q(process.cwd(),"PUSHED"),p=[...i,...a,...u,...l].filter(J=>J.parent===t),f=D(e).CLANCY_GIT_PLATFORM,m=Se(f),h=`feat(${t}): ${r}`,y=qu(t,r,p,e.provider);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(z("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log($(` Push manually: git push origin ${n}`)),console.log($(` Then create a PR targeting ${o}`)),!1;let b=await kt(e,m,n,o,h,y);if(b?.ok){if(console.log(O(` \u2713 Epic PR created: ${b.url}`)),C(process.cwd(),t,r,"EPIC_PR_CREATED",b.number),e.provider!=="github"&&s){let J=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;J&&await s.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},J)}return!0}if(b&&!b.ok&&b.alreadyExists)return console.log(z(` \u26A0 An epic PR already exists for ${n}.`)),C(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(z(`\u26A0 Epic PR creation failed: ${b?.error??"unknown error"}`)),console.log($(" Create it manually:")),console.log($(` Branch: ${n} \u2192 ${o}`));let v=Pr(m,n,o);return v&&console.log($(` ${v}`)),!1}async function _l(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=e.baseBranch,i=e.hasParent,a=e.isRework??!1;e.originalBranch=Ua();let u=!1;if(i&&!a){let p=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId);p&&p.total===1&&(u=!0)}e.skipEpicBranch=u;let l=i&&!u?o:s;if(e.effectiveTarget=l,a){if(i&&!u){if(!xa(o,s))return e.originalBranch&&N(e.originalBranch),!1}else Gr(l,s);Zt(n)?N(n):(N(l),N(n,!0))}else if(i&&!u){if(!xa(o,s))return e.originalBranch&&N(e.originalBranch),!1;N(o),N(n,!0)}else Gr(s,s),N(s),N(n,!0);try{Ka(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:l,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log($(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function Kg(e){return e.includes("hooks.slack.com")}function Yg(e){return JSON.stringify({text:e})}function Gg(e){return JSON.stringify({type:"message",attachments:[{contentType:"application/vnd.microsoft.card.adaptive",content:{$schema:"http://adaptivecards.io/schemas/adaptive-card.json",type:"AdaptiveCard",version:"1.4",body:[{type:"TextBlock",text:e,wrap:!0}]}}]})}async function wl(e,t){let r=Kg(e)?Yg(t):Gg(t);try{let n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r});n.ok||console.warn(`\u26A0 Notification failed: HTTP ${n.status}`)}catch{console.warn("\u26A0 Notification failed: could not reach webhook")}}async function $l(e){let t=e.config,r=e.ticket,n=Ce(Date.now()-e.startTime);console.log(""),console.log(O(`\u{1F3C1} ${r.key} complete`)+$(` (${n})`)),console.log($(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await wl(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as Wg,mkdirSync as Vg}from"node:fs";import{dirname as Qg,join as Xg}from"node:path";function xl(e,t,r,n=6600){let o=Xg(e,".clancy","costs.log");Vg(Qg(o),{recursive:!0});let s=new Date(r).getTime(),i=Date.now(),a=Number.isNaN(s)?0:Math.max(0,i-s),u=Math.round(a/6e4),l=Math.round(u*n),f=`${new Date().toISOString()} | ${t} | ${u}min | ~${l} tokens (estimated)
47
- `;Wg(o,f,"utf8")}function kl(e){let t=e.config,r=e.ticket;try{let n=Dt(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");xl(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}import{mkdirSync as ey,readFileSync as ty,renameSync as ry,writeFileSync as ny}from"node:fs";import{join as Sl}from"node:path";function vl(e){return Sl(e,".clancy","quality.json")}function zl(e){try{let t=ty(vl(e),"utf8"),r=JSON.parse(t);if(r&&typeof r.tickets=="object"&&r.tickets!==null&&!Array.isArray(r.tickets))return Sa(r),r}catch{}return{tickets:{},summary:{totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0}}}function Sa(e){let t=Object.values(e.tickets),r=t.length;if(r===0){e.summary={totalTickets:0,avgReworkCycles:0,avgVerificationRetries:0,avgDuration:0};return}let n=0,o=0,s=0,i=0;for(let a of t)n+=a.reworkCycles,o+=a.verificationRetries,a.duration!=null&&(s+=a.duration,i++);e.summary={totalTickets:r,avgReworkCycles:Math.round(n/r*100)/100,avgVerificationRetries:Math.round(o/r*100)/100,avgDuration:i>0?Math.round(s/i*100)/100:0}}function Tl(e,t){let r=vl(e),n=r+".tmp";ey(Sl(e,".clancy"),{recursive:!0}),ny(n,JSON.stringify(t,null,2)+`
48
- `,"utf8"),ry(n,r)}function Il(e,t){return e.tickets[t]||(e.tickets[t]={reworkCycles:0,verificationRetries:0}),e.tickets[t]}function Pl(e,t){try{let r=zl(e),n=Il(r,t);n.reworkCycles++,Sa(r),Tl(e,r)}catch{}}function Al(e,t,r){try{let n=zl(e),o=Il(n,t);o.deliveredAt=new Date().toISOString(),o.duration=r,Sa(n),Tl(e,n)}catch{}}var oy=c.object({login:c.string()}),sy=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,Ar;function Er(e){return sy.test(e)}async function Rl(e,t){return Ir(`${Z}/repos/${t}`,M(e),{401:"\u2717 GitHub auth failed \u2014 check GITHUB_TOKEN",403:"\u2717 GitHub permission denied",404:`\u2717 GitHub repo "${t}" not found`},"\u2717 Could not reach GitHub \u2014 check network")}async function Rr(e,t){if(Ar)return Ar;try{let r=await fetch(`${t??Z}/user`,{headers:M(e)});if(!r.ok){let s=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${s}`),"@me"}let n=await r.json(),o=oy.safeParse(n);if(o.success)return Ar=o.data.login,Ar;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function Cl(e,t,r,n,o,s=5){let i,a=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&a.set("labels",r);try{i=await fetch(`${Z}/repos/${t}/issues?${a}`,{headers:M(e)})}catch(f){return console.warn(`\u26A0 GitHub API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let l=nl.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${l.error.message}`),[];let p=l.data.filter(f=>!f.pull_request);return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`#${f.number}`,title:f.title,description:f.body??"",provider:"github",milestone:f.milestone?.title,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function Nl(e,t,r,n){if(!Er(t))return!1;let o=/Blocked by #(\d+)/gi,s=new Set,i;for(;(i=o.exec(n))!==null;){let a=parseInt(i[1],10);!Number.isNaN(a)&&a!==r&&s.add(a)}if(!s.size)return!1;try{for(let a of s){let u=await fetch(`${Z}/repos/${t}/issues/${a}`,{headers:M(e)});if(!u.ok)continue;if((await u.json()).state!=="closed")return!0}return!1}catch{return!1}}async function Ol(e,t,r){if(Er(t))try{let n=await El(e,t,`Epic: #${r}`);return n&&n.total>0?n:await El(e,t,`Parent: #${r}`)}catch{return}}async function El(e,t,r){let n=M(e),o=`"${r}" repo:${t} is:issue`,s=new URLSearchParams({q:o,per_page:"1"}),i=await fetch(`${Z}/search/issues?${s}`,{headers:n});if(!i.ok)return;let u=(await i.json()).total_count??0;if(u===0)return{total:0,incomplete:0};let l=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:l,per_page:"1"}),f=await fetch(`${Z}/search/issues?${p}`,{headers:n});if(!f.ok)return{total:u,incomplete:u};let h=(await f.json()).total_count??0;return{total:u,incomplete:h}}function Cr(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function Nr(e,t,r){return r?e==="github"?`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`:`epic/${r.toLowerCase()}`:t}async function Ll(e){let t=q(process.cwd(),"PR_CREATED"),r=q(process.cwd(),"REWORK"),n=q(process.cwd(),"PUSHED"),o=q(process.cwd(),"PUSH_FAILED"),s=[...t,...r,...n,...o];if(s.length===0)return;let i=D(e).CLANCY_GIT_PLATFORM,a=Se(i);if(a.host==="none"||a.host==="unknown"||a.host==="azure")return;let u=xt(e,a);if(!u)return;let l=$t(a,D(e).CLANCY_GIT_API_URL);if(!l)return;let p;if(a.host==="github")try{p=await Rr(u.token,l)}catch{}let f=s.slice(0,5);for(let m of f){let h=Cr(e.provider,m.key),y;if(m.timestamp){let v=new Date(m.timestamp.replace(" ","T")+"Z");y=Number.isNaN(v.getTime())?void 0:v.toISOString()}let b;switch(a.host){case"github":b=await il(u.token,`${a.owner}/${a.repo}`,h,a.owner,l,y,p);break;case"gitlab":b=await hl(u.token,l,a.projectPath,h,y);break;case"bitbucket":b=await Xu(u.username,u.token,a.workspace,a.repoSlug,h,y);break;case"bitbucket-server":b=await tl(u.token,l,a.projectKey,a.repoSlug,h,y);break}if(b?.changesRequested){let v=[],J;switch(a.host){case"github":v=await al(u.token,`${a.owner}/${a.repo}`,b.prNumber,l,y,p);break;case"gitlab":{let R=await gl(u.token,l,a.projectPath,b.prNumber,y);v=R.comments,J=R.discussionIds;break}case"bitbucket":v=await el(u.username,u.token,a.workspace,a.repoSlug,b.prNumber,y);break;case"bitbucket-server":v=await rl(u.token,l,a.projectKey,a.repoSlug,b.prNumber,y);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:v,prNumber:b.prNumber,discussionIds:J,reviewers:b.reviewers??[]}}}}function iy(e){if(e.length===0)return"[clancy] Rework pushed addressing reviewer feedback.";let t=e.length,r=e.slice(0,3).map(o=>`- ${o.slice(0,80)}`).join(`
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(`
49
49
  `),n=e.length>3?`
50
50
  - ...`:"";return`[clancy] Rework pushed addressing ${t} feedback item${t!==1?"s":""}.
51
51
 
52
- ${r}${n}`}async function Zl(e,t,r,n,o){let s=D(e).CLANCY_GIT_PLATFORM,i=Se(s);if(i.host==="none"||i.host==="unknown"||i.host==="azure")return;let a=xt(e,i);if(!a)return;let u=$t(i,D(e).CLANCY_GIT_API_URL);if(!u)return;let l=iy(r);try{let p=!1;switch(i.host){case"github":p=await cl(a.token,`${i.owner}/${i.repo}`,t,l,u);break;case"gitlab":p=await dl(a.token,u,i.projectPath,t,l);break;case"bitbucket":p=await Vu(a.username,a.token,i.workspace,i.repoSlug,t,l);break;case"bitbucket-server":p=await Qu(a.token,u,i.projectKey,i.repoSlug,t,l);break}p&&console.log($(" \u2713 Posted rework comment"))}catch{}if(i.host==="gitlab"&&n&&n.length>0)try{let p=await ml(a.token,u,i.projectPath,t,n);p>0&&console.log($(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(i.host==="github"&&o&&o.length>0)try{await ul(a.token,`${i.owner}/${i.repo}`,t,o,u)&&console.log($(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function jl(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,s=e.hasParent,i=e.skipEpicBranch??!1,a=e.isRework??!1,u=s&&!i?r.parentInfo:void 0;if(a){if(!await ka(t,r,n,o,e.startTime,!0,u,e.board))return C(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,u),!1;C(e.cwd,r.key,r.title,"REWORK",e.reworkPrNumber,u),Pl(e.cwd,r.key),e.reworkPrNumber!=null&&await Zl(t,e.reworkPrNumber,e.prFeedback??[],e.reworkDiscussionIds,e.reworkReviewers)}else{if(!await ka(t,r,n,o,e.startTime,!1,u,e.board))return!1;Al(e.cwd,r.key,Date.now()-e.startTime)}return!0}function Dl(e){if(!e.dryRun)return!0;let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,s=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(z("\u2500\u2500 Dry Run \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(` Ticket: ${Ne(`[${r.key}]`)} ${r.title}`),e.isRework&&console.log(" Mode: Rework"),console.log(` ${s}:${" ".repeat(14-s.length)}${r.parentInfo}`),t.provider!=="github"&&console.log(` Blockers: ${r.blockers}`),console.log(` Target branch: ${n} \u2192 ${o}`),r.description&&console.log(` Description: ${r.description}`),console.log(z("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log($(" No changes made. Remove --dry-run to run for real.")),!1}async function Ml(e){let t=e.config,r=e.board;try{let n=q(e.cwd,"PR_CREATED"),o=q(e.cwd,"REWORK"),s=q(e.cwd,"PUSHED"),i=[...n,...o,...s],a=new Set(q(e.cwd,"EPIC_PR_CREATED").map(p=>p.key)),u=new Set(i.map(p=>p.parent).filter(p=>!!p).filter(p=>!a.has(p))),l=t.env.CLANCY_BASE_BRANCH??"main";for(let p of u){let f=await r.fetchChildrenStatus(p);if(f&&f.incomplete===0&&f.total>0){let m=Nr(t.provider,l,p),h=await bl(t,p,p,m,l,r);console.log(h?O(` \u2713 Epic ${p} complete \u2014 PR created`):z(`\u26A0 Epic PR creation failed for ${p}. Create manually:
52
+ ${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:
53
53
  git push origin ${m}
54
- Then create a PR targeting ${l}`))}}}catch{}return!0}import{spawnSync as Bl}from"node:child_process";function Ul(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Bl("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function Fl(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Bl("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}function ay(e){return["You are evaluating whether a ticket can be implemented as pure code changes in a repository.","",`Ticket: [${e.key}] ${e.title}`,"Description:",e.description,"","Can this ticket be completed entirely through code changes committed to a git repository?","","Answer INFEASIBLE if the ticket requires ANY of:","- Manual testing or configuration in external tools or admin panels","- Access to external services, APIs, or platforms not available in the codebase","- Physical, hardware, or infrastructure changes","- Design assets that do not yet exist","- Deployment or infrastructure changes outside the repository","- Human judgment calls that require stakeholder input","","Answer with exactly one line in this format:","FEASIBLE","or","INFEASIBLE: one-line reason","","Do not include any other text."].join(`
55
- `)}function cy(e){let t=e.trim().split(`
56
- `).pop()?.trim()??"";return/^INFEASIBLE/i.test(t)?{feasible:!1,reason:t.replace(/^INFEASIBLE:?\s*/i,"").trim()||void 0}:{feasible:!0}}function Hl(e,t){let r=ay(e),{stdout:n,ok:o}=Ul(r,t);return o?cy(n):{feasible:!0}}function ql(e){let t=e.config,r=e.ticket;if(!e.isRework&&!e.skipFeasibility){console.log($(" Checking feasibility..."));let n=Hl({key:r.key,title:r.title,description:r.description},t.env.CLANCY_MODEL);if(!n.feasible){let o=n.reason??"not implementable as code changes";return console.log(z(`\u23ED\uFE0F Ticket skipped [${r.key}]: ${o}`)),C(e.cwd,r.key,r.title,"SKIPPED"),!1}console.log(O(" \u2713 Feasibility check passed"))}return console.log(""),!0}var Jl=`
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=`
57
57
  ## Test-Driven Development
58
58
 
59
59
  You MUST follow the red-green-refactor cycle for every behaviour change:
@@ -67,7 +67,7 @@ You MUST follow the red-green-refactor cycle for every behaviour change:
67
67
 
68
68
  Repeat for each behaviour. Do not write implementation code without a failing test first.
69
69
  Design interfaces for testability \u2014 prefer pure functions and thin boundaries
70
- so modules are easy to test in isolation.`;function uy(e){switch(e){case"jira":return"Jira ticket";case"github":return"GitHub Issue";case"linear":return"Linear issue";case"shortcut":return"Shortcut story";case"notion":return"Notion page";case"azdo":return"Azure DevOps work item"}}function ly(e){return e==="github"?"Milestone":e==="notion"?"Parent page":"Epic"}function Kl(e){let t=e.feedbackComments.length>0?e.feedbackComments.map((n,o)=>`${o+1}. ${n}`).join(`
70
+ 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(`
71
71
  `):"No reviewer comments found. Review the existing implementation and fix any issues.",r=e.previousContext?`
72
72
 
73
73
  ## Previous Implementation
@@ -91,7 +91,7 @@ Steps:
91
91
  2. Follow the conventions in GIT.md exactly
92
92
  3. Fix the issues identified in the reviewer feedback
93
93
  4. Commit your work following the conventions in GIT.md
94
- 5. When done, confirm you are finished.`}function Yl(e){let t=uy(e.provider),r=ly(e.provider),n=e.blockers&&e.provider!=="github"?`
94
+ 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"?`
95
95
  Blockers: ${e.blockers}`:"";return`You are implementing ${t} ${e.key}.
96
96
 
97
97
  ${e.provider==="github"?"Title":"Summary"}: ${e.title}
@@ -117,9 +117,9 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
117
117
  2. Follow the conventions in GIT.md exactly
118
118
  3. Implement the ${e.provider==="github"?"issue":"ticket"} fully
119
119
  4. Commit your work following the conventions in GIT.md
120
- 5. When done, confirm you are finished.`}function Gl(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,s=t.env.CLANCY_TDD==="true",i;n?i=Kl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:Ha(o),tdd:s}):i=Yl({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:s}),process.env.CLANCY_ONCE_ACTIVE="1";let a;try{a=Fl(i,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return a?!0:(console.log(z("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as va}from"node:child_process";import{existsSync as py,readFileSync as fy}from"node:fs";import{join as dy}from"node:path";function my(e){let t={};for(let r of e.split(`
121
- `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let s=n.slice(0,o).trim(),i=n.slice(o+1).trim();i.length>=2&&(i.startsWith('"')&&i.endsWith('"')||i.startsWith("'")&&i.endsWith("'"))&&(i=i.slice(1,-1)),t[s]=i}return t}function Wl(e){let t=dy(e,".clancy",".env");if(!py(t))return;let r=fy(t,"utf8");return my(r)}function hy(e){try{return va("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function gy(){try{return va("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function Or(e){for(let n of["claude","git"])if(!hy(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=Wl(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!gy())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{va("git",["ls-remote","origin","HEAD"],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{r="\u26A0 Could not reach origin. PR creation and rework detection may not work."}if(Lt()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
122
- ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_process";function Vl(e){let t=e.ticketBranch;if(!We(t))return;let r;try{r=St("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{N(t)}catch{return}let n=!1,o=!1;try{n=Lt()}catch{}try{o=St("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=St("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{N(r)}catch{}if(!(!n&&!o))return{branch:t,hasUncommitted:n,hasUnpushed:o}}async function Ql(e,t,r){try{if(N(r.branch),r.hasUncommitted)try{St("git",["add","-A"],{encoding:"utf8"}),St("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(O(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(z(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!Ve(r.branch))return console.log(z(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(O(` \u2713 Pushed ${r.branch}`));let o=D(e).CLANCY_GIT_PLATFORM,s=Se(o),i=`feat(${t.ticketKey}): ${t.ticketTitle}`,a=Tr(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(s.host!=="none"&&s.host!=="unknown"&&s.host!=="azure"){let u=await kt(e,s,r.branch,t.targetBranch,i,a);u?.ok?(console.log(O(` \u2713 PR created: ${u.url}`)),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",u.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log($(" Branch pushed \u2014 create a PR manually.")),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{N(t.targetBranch)}catch{}return!0}catch(n){return console.log(z(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function Xl(e){let t=Dt(e.cwd);if(!t)return!0;if(!Ya(t))return console.log(z(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log($(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),Mt(e.cwd),Bt(e.cwd);try{let r=Vl(t);if(r)if(e.isAfk){console.log(z(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=Or(e.cwd);if(n.ok){let o=zr(n.env);if(typeof o!="string"&&await Ql(o,t,r))return console.log(O(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(z(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log($(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}var za=c.object({id:c.number(),url:c.optional(c.string())}),ep=c.object({workItems:c.array(za)}),yy=c.object({rel:c.string(),url:c.string(),attributes:c.optional(c.object({name:c.optional(c.string())}))}),by=c.object({"System.Title":c.optional(c.string()),"System.Description":c.optional(c.nullable(c.string())),"System.State":c.optional(c.string()),"System.Tags":c.optional(c.nullable(c.string())),"System.AssignedTo":c.optional(c.nullable(c.object({displayName:c.optional(c.string()),uniqueName:c.optional(c.string())}))),"System.WorkItemType":c.optional(c.string())}),Ta=c.object({id:c.number(),fields:by,relations:c.optional(c.nullable(c.array(yy)))}),tp=c.object({value:c.array(Ta),count:c.optional(c.number())}),rp=c.object({id:c.string(),name:c.string(),state:c.optional(c.string())}),_y=c.object({source:c.optional(c.nullable(za)),target:c.optional(c.nullable(za))}),np=c.object({workItemRelations:c.optional(c.array(_y))});var Ge="7.1";function op(e){return`Basic ${btoa(`:${e}`)}`}function Tt(e){return!(e.includes("'")||e.includes("\\")||e.includes("--")||e.includes(";")||e.includes("/*")||/[^\x20-\x7E\t\n\r]/.test(e))}function vt(e){if(!Tt(e))throw new Error(`Unsafe WIQL value: ${e.slice(0,50)}`);return e}function It(e,t){return`https://dev.azure.com/${encodeURIComponent(e)}/${encodeURIComponent(t)}/_apis`}function Pt(e){return{Authorization:op(e),"Content-Type":"application/json"}}function wy(e){return{Authorization:op(e),"Content-Type":"application/json-patch+json"}}async function sp(e,t,r){let n;try{n=await fetch(`https://dev.azure.com/${encodeURIComponent(e)}/_apis/projects/${encodeURIComponent(t)}?api-version=${Ge}`,{headers:Pt(r)})}catch{return{ok:!1,error:"\u2717 Could not reach Azure DevOps \u2014 check network"}}if(!n.ok)return n.status===401||n.status===403?{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}:{ok:!1,error:`\u2717 Azure DevOps API returned HTTP ${n.status}`};try{let o=await n.json(),s=rp.safeParse(o);if(s.success&&s.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Azure DevOps auth failed \u2014 check AZDO_PAT"}}async function ip(e,t,r,n){try{let o=await fetch(`${It(e,t)}/wit/wiql?api-version=${Ge}`,{method:"POST",headers:Pt(r),body:JSON.stringify({query:n})});if(!o.ok)return console.warn(`\u26A0 Azure DevOps WIQL returned HTTP ${o.status}`),[];let s=await o.json(),i=ep.safeParse(s);return i.success?i.data.workItems.map(a=>a.id):(console.warn(`\u26A0 Unexpected Azure DevOps WIQL response: ${i.error.message}`),[])}catch(o){return console.warn(`\u26A0 Azure DevOps WIQL request failed: ${o instanceof Error?o.message:String(o)}`),[]}}async function Ia(e,t,r,n){if(!n.length)return[];let o=[];for(let s=0;s<n.length;s+=200){let a=n.slice(s,s+200).join(",");try{let u=await fetch(`${It(e,t)}/wit/workitems?ids=${a}&$expand=relations&api-version=${Ge}`,{headers:Pt(r)});if(!u.ok){console.warn(`\u26A0 Azure DevOps work items batch returned HTTP ${u.status}`);continue}let l=await u.json(),p=tp.safeParse(l);if(!p.success){console.warn(`\u26A0 Unexpected Azure DevOps work items response: ${p.error.message}`);continue}o.push(...p.data.value)}catch(u){console.warn(`\u26A0 Azure DevOps work items fetch failed: ${u instanceof Error?u.message:String(u)}`)}}return o}async function zt(e,t,r,n){try{let o=await fetch(`${It(e,t)}/wit/workitems/${n}?$expand=relations&api-version=${Ge}`,{headers:Pt(r)});if(!o.ok)return;let s=await o.json(),i=Ta.safeParse(s);return i.success?i.data:void 0}catch{return}}async function Lr(e,t,r,n,o){try{return(await fetch(`${It(e,t)}/wit/workitems/${n}?api-version=${Ge}`,{method:"PATCH",headers:wy(r),body:JSON.stringify(o)})).ok}catch{return!1}}function Zr(e){return e?e.split(";").map(t=>t.trim()).filter(Boolean):[]}function Pa(e){return e.join("; ")}function ap(e){let t=e.match(/workItems\/(\d+)/i);if(!t)return;let r=parseInt(t[1],10);return Number.isNaN(r)?void 0:r}async function cp(e,t,r,n,o,s,i=5){let a=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${vt(t)}' AND [System.State] = '${vt(n)}' AND [System.AssignedTo] = @Me`;o&&(a+=` AND [System.WorkItemType] = '${vt(o)}'`),a+=" ORDER BY [System.CreatedDate] ASC";let u=await ip(e,t,r,a);if(!u.length)return[];let l=u.slice(0,i*2),f=(await Ia(e,t,r,l)).map(m=>$y(m));return s&&(f=f.filter(m=>!m.labels?.some(h=>h==="clancy:hitl"))),f.slice(0,i)}function $y(e){let t=Zr(e.fields["System.Tags"]),r;if(e.relations){for(let n of e.relations)if(n.rel==="System.LinkTypes.Hierarchy-Reverse"){r=ap(n.url);break}}return{key:`azdo-${e.id}`,title:e.fields["System.Title"]??"",description:e.fields["System.Description"]??"",provider:"azdo",workItemId:e.id,parentId:r,labels:t}}var Aa=new Set(["Done","Closed","Completed","Resolved"]);async function up(e,t,r,n){try{let o=await zt(e,t,r,n);if(!o)return!1;let s=(o.relations??[]).filter(i=>i.rel==="System.LinkTypes.Dependency-Reverse");if(!s.length)return!1;for(let i of s){let a=ap(i.url);if(a===void 0)continue;let u=await zt(e,t,r,a);if(!u)continue;let l=u.fields["System.State"];if(!l||!Aa.has(l))return!0}return!1}catch{return!1}}async function lp(e,t,r,n,o){try{if(o){let s=`Epic: ${o}`,i=await xy(e,t,r,s);if(i&&i.total>0)return i}return await ky(e,t,r,n)}catch{return}}async function xy(e,t,r,n){try{let o=`SELECT [System.Id] FROM WorkItems WHERE [System.TeamProject] = '${vt(t)}' AND [System.Description] CONTAINS '${vt(n)}'`,s=await ip(e,t,r,o);if(!s.length)return{total:0,incomplete:0};let i=await Ia(e,t,r,s),a=i.length,u=i.filter(l=>{let p=l.fields["System.State"];return!p||!Aa.has(p)}).length;return{total:a,incomplete:u}}catch{return}}async function ky(e,t,r,n){try{if(Number.isNaN(n))return;let o=`SELECT [System.Id] FROM WorkItemLinks WHERE [Source].[System.Id] = ${n} AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' MODE (MustContain)`,s=await fetch(`${It(e,t)}/wit/wiql?api-version=${Ge}`,{method:"POST",headers:Pt(r),body:JSON.stringify({query:o})});if(!s.ok)return;let i=await s.json(),a=np.safeParse(i);if(!a.success)return;let l=(a.data.workItemRelations??[]).filter(h=>h.target?.id!==void 0&&h.target.id!==n).map(h=>h.target.id);if(!l.length)return{total:0,incomplete:0};let p=await Ia(e,t,r,l),f=p.length,m=p.filter(h=>{let y=h.fields["System.State"];return!y||!Aa.has(y)}).length;return{total:f,incomplete:m}}catch{return}}function pp(e){let t=e.AZDO_ORG,r=e.AZDO_PROJECT,n=e.AZDO_PAT,o=e.CLANCY_AZDO_STATUS??"New",s=e.CLANCY_AZDO_WIT;return{async ping(){return sp(t,r,n)},validateInputs(){if(!t.trim())return"\u2717 AZDO_ORG must not be empty";if(!r.trim())return"\u2717 AZDO_PROJECT must not be empty";if(!n.trim())return"\u2717 AZDO_PAT must not be empty";if(!Tt(r))return"\u2717 AZDO_PROJECT contains unsafe characters for WIQL queries";if(!Tt(o))return"\u2717 CLANCY_AZDO_STATUS contains unsafe characters for WIQL queries";if(s&&!Tt(s))return"\u2717 CLANCY_AZDO_WIT contains unsafe characters for WIQL queries"},async fetchTicket(i){return(await this.fetchTickets(i))[0]},async fetchTickets(i){let a=await cp(t,r,n,o,s,i.excludeHitl);if(i.buildLabel){let u=i.buildLabel;a=a.filter(l=>l.labels?.includes(u))}return a.map(u=>({key:u.key,title:u.title,description:u.description,parentInfo:u.parentId?`azdo-${u.parentId}`:"none",blockers:"None",issueId:String(u.workItemId),labels:u.labels??[],status:o}))},async fetchBlockerStatus(i){let a=jr(i.key);return a===void 0?!1:up(t,r,n,a)},async fetchChildrenStatus(i,a){let u=a??i.replace("azdo-",""),l=parseInt(u,10);if(!Number.isNaN(l))return lp(t,r,n,l,i)},async transitionTicket(i,a){let u=jr(i.key);if(u===void 0)return!1;let l=await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.State",value:a}]);return l&&console.log(` \u2192 Transitioned to ${a}`),l},async ensureLabel(i){},async addLabel(i,a){try{let u=jr(i);if(u===void 0)return;let l=await zt(t,r,n,u);if(!l)return;let p=Zr(l.fields["System.Tags"]);if(p.includes(a))return;let f=[...p,a];await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Pa(f)}])}catch(u){console.warn(`\u26A0 addLabel failed: ${u instanceof Error?u.message:String(u)}`)}},async removeLabel(i,a){try{let u=jr(i);if(u===void 0)return;let l=await zt(t,r,n,u);if(!l)return;let p=Zr(l.fields["System.Tags"]);if(!p.includes(a))return;let f=p.filter(m=>m!==a);await Lr(t,r,n,u,[{op:"replace",path:"/fields/System.Tags",value:Pa(f)}])}catch(u){console.warn(`\u26A0 removeLabel failed: ${u instanceof Error?u.message:String(u)}`)}},sharedEnv(){return e}}}function jr(e){let t=parseInt(e.replace("azdo-",""),10);return Number.isNaN(t)?void 0:t}function fp(e){return{async ping(){return Rl(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!Er(e.GITHUB_REPO))return"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await Rr(e.GITHUB_TOKEN);return(await Cl(e.GITHUB_TOKEN,e.GITHUB_REPO,t.buildLabel??e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??"none",blockers:"None",labels:o.labels??[],status:"open"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:Nl(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t){let r=parseInt(t.replace("#",""),10);if(!Number.isNaN(r))return Ol(e.GITHUB_TOKEN,e.GITHUB_REPO,r)},async transitionTicket(){return!1},async ensureLabel(t){try{let r=M(e.GITHUB_TOKEN),n=await fetch(`${Z}/repos/${e.GITHUB_REPO}/labels/${encodeURIComponent(t)}`,{headers:r});if(n.ok)return;if(n.status===404){let o=await fetch(`${Z}/repos/${e.GITHUB_REPO}/labels`,{method:"POST",headers:{...r,"Content-Type":"application/json"},body:JSON.stringify({name:t,color:"0075ca"})});!o.ok&&o.status!==422&&console.warn(`\u26A0 ensureLabel create returned HTTP ${o.status}`)}else console.warn(`\u26A0 ensureLabel GET returned HTTP ${n.status}`)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=M(e.GITHUB_TOKEN),s=await fetch(`${Z}/repos/${e.GITHUB_REPO}/issues/${n}/labels`,{method:"POST",headers:{...o,"Content-Type":"application/json"},body:JSON.stringify({labels:[r]})});s.ok||console.warn(`\u26A0 addLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=parseInt(t.replace("#",""),10);if(Number.isNaN(n))return;let o=M(e.GITHUB_TOKEN),s=await fetch(`${Z}/repos/${e.GITHUB_REPO}/issues/${n}/labels/${encodeURIComponent(r)}`,{method:"DELETE",headers:o});!s.ok&&s.status!==404&&console.warn(`\u26A0 removeLabel returned HTTP ${s.status}`)}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}var Sy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string())}))}),vy=c.object({summary:c.string(),description:c.optional(c.unknown()),issuelinks:c.optional(c.array(Sy)),parent:c.optional(c.object({key:c.optional(c.string())})),customfield_10014:c.optional(c.nullable(c.string())),labels:c.optional(c.array(c.string()))}),zy=c.object({key:c.string(),fields:vy}),dp=c.object({total:c.optional(c.number()),isLast:c.optional(c.boolean()),issues:c.array(zy)}),Ty=c.object({id:c.string(),name:c.string()}),mp=c.object({transitions:c.array(Ty)}),Iy=c.object({type:c.optional(c.object({name:c.optional(c.string())})),inwardIssue:c.optional(c.object({key:c.optional(c.string()),fields:c.optional(c.object({status:c.optional(c.object({statusCategory:c.optional(c.object({key:c.optional(c.string())}))}))}))}))}),hp=c.object({fields:c.optional(c.object({issuelinks:c.optional(c.array(Iy))}))}),Ea=c.object({fields:c.optional(c.object({labels:c.optional(c.array(c.string()))}))});var Py=/^[a-zA-Z0-9 _\-'.]+$/,Ra=/^[A-Z][A-Z0-9]+-\d+$/;function yp(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function At(e){return Py.test(e)}async function bp(e,t,r){return Ir(`${e}/rest/api/3/project/${t}`,ve(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function Ay(e,t,r,n,o){let s=[`project="${e}"`];return r&&s.push("sprint in openSprints()"),n&&s.push(`labels = "${n}"`),o&&s.push('labels != "clancy:hitl"'),s.push("assignee=currentUser()"),s.push(`status="${t}"`),s.join(" AND ")+" ORDER BY priority ASC"}function Ey(e){if(!e||typeof e!="object")return"";let t=[];function r(n){if(typeof n=="string"){t.push(n);return}if(Array.isArray(n)){for(let o of n)r(o);return}if(n&&typeof n=="object")for(let o of Object.values(n))r(o)}return r(e),t.join(" ")}async function _p(e,t,r,n,o,s,i,a=5){let u=Ay(r,n,o,s,i),l;try{l=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:u,maxResults:a,fields:["summary","description","issuelinks","parent","customfield_10014","labels"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!l.ok)return console.warn(`\u26A0 Jira API returned HTTP ${l.status}`),[];let p;try{p=await l.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let f=dp.safeParse(p);return f.success?f.data.issues.map(m=>{let h=m.fields,y=(h.issuelinks??[]).filter(v=>v.type?.name==="Blocks"&&v.inwardIssue?.key).map(v=>v.inwardIssue?.key).filter(v=>!!v),b=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Ey(h.description),provider:"jira",epicKey:b,blockers:y,labels:h.labels}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${f.error.message}`),[])}async function wp(e,t,r){if(!Ra.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:ve(t)});if(!n.ok)return!1;let o=await n.json(),s=hp.safeParse(o);return s.success?(s.data.fields?.issuelinks??[]).some(a=>{if(a.type?.name!=="Blocks"||!a.inwardIssue?.key)return!1;let u=a.inwardIssue.fields?.status?.statusCategory?.key;return u?u!=="done":!1}):!1}catch{return!1}}async function $p(e,t,r){if(Ra.test(r))try{let n=r.split("-")[0],o=await gp(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await gp(e,t,`parent = ${r}`)}catch{return}}async function gp(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let s=(await n.json()).total??0;if(s===0)return{total:0,incomplete:0};let i=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!i.ok)return;let u=(await i.json()).total??0;return{total:s,incomplete:u}}async function Ry(e,t,r,n){if(!Ra.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:ve(t)})}catch(u){console.warn(`\u26A0 Jira transitions request failed: ${u instanceof Error?u.message:String(u)}`);return}if(!o.ok)return;let s;try{s=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let i=mp.safeParse(s);if(!i.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${i.error.message}`);return}return i.data.transitions.find(u=>u.name===n)?.id}async function xp(e,t,r,n){try{let o=await Ry(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...ve(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}function kp(e){let t=yp(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return bp(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!At(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL_BUILD&&!At(e.CLANCY_LABEL_BUILD))return"\u2717 CLANCY_LABEL_BUILD contains invalid characters";if(e.CLANCY_LABEL&&!At(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!At(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){let n=await _p(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,r.buildLabel??e.CLANCY_LABEL,r.excludeHitl),o=e.CLANCY_JQL_STATUS??"To Do";return n.map(s=>{let i=s.blockers.length?`Blocked by: ${s.blockers.join(", ")}`:"None";return{key:s.key,title:s.title,description:s.description,parentInfo:s.epicKey??"none",blockers:i,labels:s.labels??[],status:o}})},async fetchBlockerStatus(r){return wp(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return $p(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await xp(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){},async addLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 addLabel GET failed: HTTP ${o.status}`);return}let i=Ea.parse(await o.json()).fields?.labels??[];if(i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:[...i,n]}})});a.ok||console.warn(`\u26A0 addLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 addLabel failed: ${o instanceof Error?o.message:String(o)}`)}},async removeLabel(r,n){try{if(!/^[A-Z][A-Z0-9]+-\d+$/.test(r))return;let o=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}?fields=labels`,{headers:{Authorization:t,Accept:"application/json"}});if(!o.ok){console.warn(`\u26A0 removeLabel GET failed: HTTP ${o.status}`);return}let i=Ea.parse(await o.json()).fields?.labels??[];if(!i.includes(n))return;let a=await fetch(`${e.JIRA_BASE_URL}/rest/api/3/issue/${encodeURIComponent(r)}`,{method:"PUT",headers:{Authorization:t,"Content-Type":"application/json"},body:JSON.stringify({fields:{labels:i.filter(u=>u!==n)}})});a.ok||console.warn(`\u26A0 removeLabel PUT returned HTTP ${a.status}`)}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Cy=c.object({id:c.string(),identifier:c.string(),title:c.string(),description:c.optional(c.nullable(c.string())),parent:c.optional(c.nullable(c.object({identifier:c.string(),title:c.optional(c.string())}))),labels:c.optional(c.object({nodes:c.array(c.object({name:c.string()}))}))}),Sp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({assignedIssues:c.optional(c.object({nodes:c.array(Cy)}))}))}))}),vp=c.object({data:c.optional(c.object({viewer:c.optional(c.object({id:c.optional(c.string())}))}))}),zp=c.object({data:c.optional(c.object({workflowStates:c.optional(c.object({nodes:c.array(c.object({id:c.string()}))}))}))}),Tp=c.object({data:c.optional(c.object({issueUpdate:c.optional(c.object({success:c.optional(c.boolean())}))}))}),Ny=c.object({type:c.string(),relatedIssue:c.optional(c.object({state:c.optional(c.object({type:c.optional(c.string())}))}))}),Ip=c.object({data:c.optional(c.object({issue:c.optional(c.object({relations:c.optional(c.object({nodes:c.array(Ny)}))}))}))}),Oy=c.object({state:c.optional(c.object({type:c.optional(c.string())}))}),Pp=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(Oy)}))}))}),Ap=c.object({data:c.optional(c.object({team:c.optional(c.object({labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}))}),Ep=c.object({data:c.optional(c.object({issueLabels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.string()}))}))}))}),Rp=c.object({data:c.optional(c.object({issueLabelCreate:c.optional(c.object({issueLabel:c.optional(c.object({id:c.string()})),success:c.optional(c.boolean())}))}))}),Ca=c.object({data:c.optional(c.object({issueSearch:c.optional(c.object({nodes:c.array(c.object({id:c.string(),labels:c.optional(c.object({nodes:c.array(c.object({id:c.string(),name:c.optional(c.string())}))}))}))}))}))});var Ly=/^[a-zA-Z0-9_-]+$/,Cp="https://api.linear.app/graphql";function Np(e){return Ly.test(e)}async function W(e,t,r){let n;try{n=await fetch(Cp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:t,variables:r})})}catch(o){console.warn(`\u26A0 Linear API request failed: ${o instanceof Error?o.message:String(o)}`);return}if(!n.ok){console.warn(`\u26A0 Linear API returned HTTP ${n.status}`);return}try{return await n.json()}catch{console.warn("\u26A0 Linear API returned invalid JSON");return}}async function Op(e){let t;try{t=await fetch(Cp,{method:"POST",headers:{Authorization:e,"Content-Type":"application/json"},body:JSON.stringify({query:"{ viewer { id } }"})})}catch{return{ok:!1,error:"\u2717 Could not reach Linear \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}:{ok:!1,error:`\u2717 Linear API returned HTTP ${t.status}`};try{let r=await t.json(),n=vp.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Lp(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,s=o?"labels: { name: { eq: $label } }":"",i=["$teamId: String!",...o?["$label: String!"]:[]],a=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",s].filter(Boolean),u=`
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
123
  query(${i.join(", ")}) {
124
124
  viewer {
125
125
  assignedIssues(
@@ -141,7 +141,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
141
141
  }
142
142
  }
143
143
  }
144
- `,l={teamId:e.LINEAR_TEAM_ID};o&&(l.label=n);let p=await W(e.LINEAR_API_KEY,u,l),f=Sp.safeParse(p);if(!f.success)return console.warn(`\u26A0 Unexpected Linear response shape: ${f.error.message}`),[];let m=f.data.data?.viewer?.assignedIssues?.nodes;return m?.length?(t&&(m=m.filter(h=>!h.labels?.nodes?.some(y=>y.name==="clancy:hitl"))),m=m.slice(0,r),m.map(h=>({key:h.identifier,title:h.title,description:h.description??"",provider:"linear",issueId:h.id,parentIdentifier:h.parent?.identifier,labels:h.labels?.nodes?.map(y=>y.name).filter(y=>!!y)}))):[]}async function Zp(e,t){let n=await W(e,`
144
+ `,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,`
145
145
  query($issueId: String!) {
146
146
  issue(id: $issueId) {
147
147
  relations {
@@ -154,7 +154,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
154
154
  }
155
155
  }
156
156
  }
157
- `,{issueId:t}),o=Ip.safeParse(n);if(!o.success)return!1;let s=o.data.data?.issue?.relations?.nodes??[],i=new Set(["completed","canceled"]);return s.some(a=>{if(a.type!=="blockedBy")return!1;let u=a.relatedIssue?.state?.type;return u?!i.has(u):!1})}async function jp(e,t,r){try{if(r){let n=await Zy(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await jy(e,t)}catch{return}}async function Zy(e,t){let n=await W(e,`
157
+ `,{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,`
158
158
  query($filter: String!) {
159
159
  issueSearch(query: $filter) {
160
160
  nodes {
@@ -162,7 +162,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
162
162
  }
163
163
  }
164
164
  }
165
- `,{filter:t}),o=Pp.safeParse(n);if(!o.success)return;let s=o.data.data?.issueSearch?.nodes??[],i=s.length,a=new Set(["completed","canceled"]),u=s.filter(l=>!l.state?.type||!a.has(l.state.type)).length;return{total:i,incomplete:u}}async function jy(e,t){let n=await W(e,`
165
+ `,{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,`
166
166
  query($issueId: String!) {
167
167
  issue(id: $issueId) {
168
168
  children {
@@ -172,7 +172,7 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
172
172
  }
173
173
  }
174
174
  }
175
- `,{issueId:t});if(!n||typeof n!="object")return;let s=n.data?.issue?.children?.nodes;if(!s)return;let i=s.length,a=new Set(["completed","canceled"]),u=s.filter(l=>!l.state?.type||!a.has(l.state.type)).length;return{total:i,incomplete:u}}async function Dy(e,t,r){let o=await W(e,`
175
+ `,{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,`
176
176
  query($teamId: String!, $name: String!) {
177
177
  workflowStates(filter: {
178
178
  team: { id: { eq: $teamId } }
@@ -181,32 +181,32 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
181
181
  nodes { id }
182
182
  }
183
183
  }
184
- `,{teamId:t,name:r}),s=zp.safeParse(o);if(!s.success){console.warn(`\u26A0 Unexpected Linear workflowStates response: ${s.error.message}`);return}return s.data.data?.workflowStates?.nodes?.[0]?.id}async function My(e,t,r){let o=await W(e,`
184
+ `,{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,`
185
185
  mutation($issueId: String!, $stateId: String!) {
186
186
  issueUpdate(id: $issueId, input: { stateId: $stateId }) {
187
187
  success
188
188
  }
189
189
  }
190
- `,{issueId:t,stateId:r}),s=Tp.safeParse(o);return s.success?s.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${s.error.message}`),!1)}async function Dp(e,t,r,n){try{let o=await Dy(e,t,n);return o?await My(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function Mp(e){let t=new Map;return{async ping(){return Op(e.LINEAR_API_KEY)},validateInputs(){if(!Np(e.LINEAR_TEAM_ID))return"\u2717 LINEAR_TEAM_ID contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){return(await Lp({LINEAR_API_KEY:e.LINEAR_API_KEY,LINEAR_TEAM_ID:e.LINEAR_TEAM_ID,CLANCY_LABEL:r.buildLabel??e.CLANCY_LABEL},r.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.parentIdentifier??"none",blockers:"None",linearIssueId:o.issueId,issueId:o.issueId,labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(r){return r.issueId?Zp(e.LINEAR_API_KEY,r.issueId):!1},async fetchChildrenStatus(r,n){return jp(e.LINEAR_API_KEY,n??r,r)},async transitionTicket(r,n){if(!r.linearIssueId)return!1;let o=await Dp(e.LINEAR_API_KEY,e.LINEAR_TEAM_ID,r.linearIssueId,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},async ensureLabel(r){try{if(t.has(r))return;let o=await W(e.LINEAR_API_KEY,`
190
+ `,{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,`
191
191
  query($teamId: String!) {
192
192
  team(id: $teamId) {
193
193
  labels { nodes { id name } }
194
194
  }
195
195
  }
196
- `,{teamId:e.LINEAR_TEAM_ID}),i=Ap.parse(o)?.data?.team?.labels?.nodes?.find(b=>b.name===r);if(i){t.set(r,i.id);return}let u=await W(e.LINEAR_API_KEY,`
196
+ `,{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,`
197
197
  query($name: String!) {
198
198
  issueLabels(filter: { name: { eq: $name } }) {
199
199
  nodes { id name }
200
200
  }
201
201
  }
202
- `,{name:r}),p=Ep.parse(u)?.data?.issueLabels?.nodes?.[0];if(p){t.set(r,p.id);return}let m=await W(e.LINEAR_API_KEY,`
202
+ `,{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,`
203
203
  mutation($teamId: String!, $name: String!) {
204
204
  issueLabelCreate(input: { teamId: $teamId, name: $name, color: "#0075ca" }) {
205
205
  issueLabel { id }
206
206
  success
207
207
  }
208
208
  }
209
- `,{teamId:e.LINEAR_TEAM_ID,name:r}),y=Rp.parse(m)?.data?.issueLabelCreate?.issueLabel?.id;y&&t.set(r,y)}catch(n){console.warn(`\u26A0 ensureLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async addLabel(r,n){try{await this.ensureLabel(n);let o=t.get(n);if(!o)return;let i=await W(e.LINEAR_API_KEY,`
209
+ `,{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,`
210
210
  query($identifier: String!) {
211
211
  issueSearch: issues(filter: { identifier: { eq: $identifier } }, first: 1) {
212
212
  nodes {
@@ -236,4 +236,4 @@ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as St}from"node:child_
236
236
  success
237
237
  }
238
238
  }
239
- `,{issueId:u.id,labelIds:f})}catch(o){console.warn(`\u26A0 removeLabel failed: ${o instanceof Error?o.message:String(o)}`)}},sharedEnv(){return e}}}var Bp=c.object({plain_text:c.string()}),By=c.object({type:c.literal("status"),status:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Uy=c.object({type:c.literal("select"),select:c.nullable(c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}))}),Fy=c.object({id:c.optional(c.string()),name:c.string(),color:c.optional(c.string())}),Hy=c.object({type:c.literal("multi_select"),multi_select:c.array(Fy)}),qy=c.object({type:c.literal("people"),people:c.array(c.object({id:c.string(),name:c.optional(c.nullable(c.string()))}))}),Jy=c.object({type:c.literal("relation"),relation:c.array(c.object({id:c.string()}))}),Ky=c.object({type:c.literal("title"),title:c.array(Bp)}),Yy=c.object({type:c.literal("rich_text"),rich_text:c.array(Bp)}),Gy=c.union([By,Uy,Hy,qy,Jy,Ky,Yy,c.object({type:c.string()})]),Na=c.object({id:c.string(),url:c.optional(c.string()),properties:c.record(c.string(),Gy)}),Up=c.object({results:c.array(Na),has_more:c.boolean(),next_cursor:c.nullable(c.optional(c.string()))}),Fp=c.object({id:c.string(),type:c.optional(c.string()),name:c.optional(c.nullable(c.string())),avatar_url:c.optional(c.nullable(c.string()))});function Wy(e){if(!e)return;let t=parseInt(e,10);if(!Number.isNaN(t)&&t>=0)return t*1e3;let r=new Date(e);if(!Number.isNaN(r.getTime())){let n=r.getTime()-Date.now();return n>0?n:0}}function Oa(e,t,r){let n=t*2**e;return Math.min(n,r)}function Vy(e){return e===429||e>=500&&e<=599}async function Et(e,t,r){let n=Math.max(0,r?.maxRetries??3),o=r?.baseDelayMs??1e3,s=r?.maxDelayMs??1e4,i;for(let a=0;a<=n;a++)try{let u=await fetch(e,t);if(!Vy(u.status)||a===n)return u;let l;u.status===429?l=Wy(u.headers.get("Retry-After"))??Oa(a,o,s):l=Oa(a,o,s),await u.arrayBuffer().catch(()=>{}),await new Promise(p=>setTimeout(p,l))}catch(u){if(i=u,a===n)throw i;let l=Oa(a,o,s);await new Promise(p=>setTimeout(p,l))}throw i}var Mr="https://api.notion.com/v1",Qy="2022-06-28";function Br(e){return{Authorization:`Bearer ${e}`,"Notion-Version":Qy,"Content-Type":"application/json"}}async function qp(e){let t;try{t=await Et(`${Mr}/users/me`,{headers:Br(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Notion \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}:{ok:!1,error:`\u2717 Notion API returned HTTP ${t.status}`};try{let r=await t.json(),n=Fp.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Notion auth failed \u2014 check NOTION_TOKEN"}}async function Ur(e,t,r,n,o){let s={};r&&(s.filter=r),n&&(s.sorts=n),o&&(s.start_cursor=o);let i;try{i=await Et(`${Mr}/databases/${t}/query`,{method:"POST",headers:Br(e),body:JSON.stringify(s)})}catch(l){console.warn(`\u26A0 Notion API request failed: ${l instanceof Error?l.message:String(l)}`);return}if(!i.ok){console.warn(`\u26A0 Notion API returned HTTP ${i.status}`);return}let a;try{a=await i.json()}catch{console.warn("\u26A0 Notion API returned invalid JSON");return}let u=Up.safeParse(a);if(!u.success){console.warn(`\u26A0 Unexpected Notion response shape: ${u.error.message}`);return}return u.data}async function Rt(e,t,r){let n=[],o;for(let i=0;i<10;i++){let a=await Ur(e,t,r,void 0,o);if(!a||(n.push(...a.results),!a.has_more||!a.next_cursor))break;o=a.next_cursor}return n}async function Hp(e,t){try{let r=await Et(`${Mr}/pages/${t}`,{headers:Br(e)});if(!r.ok)return;let n=await r.json(),o=Na.safeParse(n);return o.success?o.data:void 0}catch{return}}async function Ct(e,t,r){try{return(await Et(`${Mr}/pages/${t}`,{method:"PATCH",headers:Br(e),body:JSON.stringify({properties:r})})).ok}catch{return!1}}async function Jp(e,t,r,n="Status"){try{let o=await Hp(e,r);if(!o)return!1;let s=Xy(o,"Blocked by");if(s?.type==="relation"){let u=s.relation;if(u.length>0){for(let l of u){let p=await Hp(e,l.id);if(!p)continue;let f=B(p,n,"status");if(f&&!Dr(f))return!0}return!1}}let i=r.replace(/-/g,"").slice(0,8),a=Yp(o);if(a){let u=a.match(/Blocked by (notion-[a-f0-9]{8})/gi);if(u){let l=await Rt(e,t);if(!l.length)return!1;for(let p of u){let f=p.replace(/blocked by notion-/i,"").toLowerCase();if(f!==i){for(let m of l)if(m.id.replace(/-/g,"").slice(0,8)===f){let y=B(m,n,"status");if(y&&!Dr(y))return!0}}}}}return!1}catch{return!1}}async function Kp(e,t,r,n="Epic",o="Status"){try{let s=await eb(e,t,`Epic: ${r}`,o);if(s&&s.total>0)return s;let i=await rb(e,t,r);return i?await tb(e,t,i.id,n,o):void 0}catch{return}}function B(e,t,r){let n=e.properties[t];if(!(!n||n.type!==r))switch(r){case"status":return n.status?.name;case"select":return n.select?.name;case"title":return n.title.map(s=>s.plain_text).join("");case"rich_text":return n.rich_text.map(s=>s.plain_text).join("");case"multi_select":return n.multi_select.map(s=>s.name);case"people":return n.people.map(s=>s.id);case"relation":return n.relation.map(s=>s.id);default:return}}function Xy(e,t){if(e.properties[t])return e.properties[t];let r=t.toLowerCase();for(let[n,o]of Object.entries(e.properties))if(n.toLowerCase()===r)return o}function Dr(e){let t=e.toLowerCase();return t==="done"||t==="complete"||t==="completed"||t==="closed"}function Yp(e){for(let t of["Description","description","Body","body"]){let r=B(e,t,"rich_text");if(r)return r}}async function eb(e,t,r,n="Status"){let o=await Rt(e,t);if(!o.length)return;let s=o.filter(u=>Yp(u)?.includes(r)),i=s.length;if(i===0)return{total:0,incomplete:0};let a=s.filter(u=>{let l=B(u,n,"status")??B(u,n,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function tb(e,t,r,n,o="Status"){let s=await Ur(e,t,{property:n,relation:{contains:r}});if(!s)return;let i=s.results.length;if(i===0)return{total:0,incomplete:0};let a=s.results.filter(u=>{let l=B(u,o,"status")??B(u,o,"select");return!l||!Dr(l)}).length;return{total:i,incomplete:a}}async function rb(e,t,r){let n=r.replace("notion-","");return n?(await Rt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var nb="Status",ob="Assignee",sb="Labels",ib="Epic";function Wp(e){let t=e.CLANCY_NOTION_STATUS??nb,r=e.CLANCY_NOTION_ASSIGNEE??ob,n=e.CLANCY_NOTION_LABELS??sb,o=e.CLANCY_NOTION_PARENT??ib;return{async ping(){return qp(e.NOTION_TOKEN)},validateInputs(){if(!/^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$/i.test(e.NOTION_DATABASE_ID))return"\u2717 NOTION_DATABASE_ID does not look like a valid UUID. Use the database ID from the Notion URL, not the full URL."},async fetchTicket(s){return(await this.fetchTickets(s))[0]},async fetchTickets(s){let i=ab(t,"To-do"),a=await Ur(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i);if(!a)return[];let u=a.results;s.excludeHitl&&(u=u.filter(p=>!B(p,n,"multi_select")?.includes("clancy:hitl")));let l=s.buildLabel??e.CLANCY_LABEL;return l&&(u=u.filter(p=>B(p,n,"multi_select")?.includes(l))),u.slice(0,5).map(p=>cb(p,{labelsProp:n,parentProp:o,assigneeProp:r}))},async fetchBlockerStatus(s){let i=s.issueId;return i?Jp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,i,t):!1},async fetchChildrenStatus(s){return Kp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s,o,t)},async transitionTicket(s,i){let a=s.issueId;if(!a)return!1;if(await Ct(e.NOTION_TOKEN,a,{[t]:{status:{name:i}}}))return console.log(` \u2192 Transitioned to ${i}`),!0;let l=await Ct(e.NOTION_TOKEN,a,{[t]:{select:{name:i}}});return l&&console.log(` \u2192 Transitioned to ${i}`),l},async ensureLabel(s){},async addLabel(s,i){try{let a=await Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=B(a,n,"multi_select")??[];if(u.includes(i))return;let l=[...u,i].map(p=>({name:p}));await Ct(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 addLabel failed: ${a instanceof Error?a.message:String(a)}`)}},async removeLabel(s,i){try{let a=await Gp(e.NOTION_TOKEN,e.NOTION_DATABASE_ID,s);if(!a)return;let u=B(a,n,"multi_select")??[];if(!u.includes(i))return;let l=u.filter(p=>p!==i).map(p=>({name:p}));await Ct(e.NOTION_TOKEN,a.id,{[n]:{multi_select:l}})}catch(a){console.warn(`\u26A0 removeLabel failed: ${a instanceof Error?a.message:String(a)}`)}},sharedEnv(){return e}}}function ab(e,t){let r=t??"To-do";return{or:[{property:e,status:{equals:r}},{property:e,select:{equals:r}}]}}function cb(e,t){let n=`notion-${e.id.replace(/-/g,"").slice(0,8)}`,o="";for(let[l,p]of Object.entries(e.properties))if(p.type==="title"){o=B(e,l,"title")??"";break}let s="";for(let l of["Description","description","Body","body"]){let p=B(e,l,"rich_text");if(p){s=p;break}}let i=B(e,t.parentProp,"relation"),a=i&&i.length>0?`notion-${i[0].replace(/-/g,"").slice(0,8)}`:"none",u=B(e,t.labelsProp,"multi_select")??[];return{key:n,title:o,description:s,parentInfo:a,blockers:"None",issueId:e.id,labels:u,status:"To-do"}}async function Gp(e,t,r){let n=r.replace("notion-","");return n?(await Rt(e,t)).find(s=>s.id.replace(/-/g,"").slice(0,8)===n):void 0}var ub=c.object({verb:c.string(),subject_id:c.number(),object_id:c.number()}),La=c.object({id:c.number(),name:c.string(),description:c.optional(c.nullable(c.string())),story_type:c.optional(c.string()),blocked:c.optional(c.boolean()),story_links:c.optional(c.array(ub)),label_ids:c.optional(c.array(c.number())),labels:c.optional(c.array(c.object({id:c.number(),name:c.string()}))),epic_id:c.optional(c.nullable(c.number())),workflow_state_id:c.optional(c.number()),owner_ids:c.optional(c.array(c.string()))}),Za=c.object({data:c.array(La),next:c.optional(c.nullable(c.string())),total:c.optional(c.number())}),Fr=La,lb=c.object({id:c.number(),name:c.string(),type:c.string()}),pb=c.object({id:c.number(),name:c.string(),states:c.array(lb)}),Vp=c.array(pb),Qp=c.object({id:c.number(),name:c.string()}),Xp=c.array(Qp),ef=Qp,tf=c.array(La),rf=c.object({id:c.string(),mention_name:c.optional(c.string())});var ne="https://api.app.shortcut.com/api/v3";function oe(e){return{"Shortcut-Token":e,"Content-Type":"application/json"}}var Hr;var Nt;async function nf(e){let t;try{t=await fetch(`${ne}/member-info`,{headers:oe(e)})}catch{return{ok:!1,error:"\u2717 Could not reach Shortcut \u2014 check network"}}if(!t.ok)return t.status===401||t.status===403?{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}:{ok:!1,error:`\u2717 Shortcut API returned HTTP ${t.status}`};try{let r=await t.json(),n=rf.safeParse(r);if(n.success&&n.data.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Shortcut auth failed \u2014 check SHORTCUT_API_TOKEN"}}async function Ot(e){if(Hr)return Hr;try{let t=await fetch(`${ne}/workflows`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /workflows returned HTTP ${t.status}`),[];let r=await t.json(),n=Vp.safeParse(r);return n.success?(Hr=n.data,Hr):(console.warn(`\u26A0 Unexpected Shortcut workflows response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /workflows request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function of(e,t,r){let n=await Ot(e);for(let o of n){if(r&&o.name!==r)continue;let s=o.states.find(i=>i.name.toLowerCase()===t.toLowerCase());if(s)return s.id}}async function sf(e,t,r){let n=await Ot(e),o=[];for(let s of n)if(!(r&&s.name!==r))for(let i of s.states)i.type===t&&o.push(i.id);return o}async function af(e,t,r,n,o,s=5){if(!t.length)return[];let i,a={};t.length&&(a.workflow_state_ids=t),n&&(a.owner_ids=[n]),r&&(a.label_name=r);try{i=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify(a)})}catch(f){return console.warn(`\u26A0 Shortcut API request failed: ${f instanceof Error?f.message:String(f)}`),[]}if(!i.ok)return console.warn(`\u26A0 Shortcut API returned HTTP ${i.status}`),[];let u;try{u=await i.json()}catch{return console.warn("\u26A0 Shortcut API returned invalid JSON"),[]}let l=Za.safeParse(u);if(!l.success)return console.warn(`\u26A0 Unexpected Shortcut response shape: ${l.error.message}`),[];let p=l.data.data;return o&&(p=p.filter(f=>!f.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,s).map(f=>({key:`sc-${f.id}`,title:f.name,description:f.description??"",provider:"shortcut",storyId:f.id,epicId:f.epic_id??void 0,labels:f.labels?.map(m=>m.name).filter(m=>!!m)}))}async function cf(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return!1;let n=await r.json(),o=Fr.safeParse(n);if(!o.success)return!1;let s=o.data;if(!s.blocked)return!1;let i=(s.story_links??[]).filter(l=>l.verb==="is blocked by");if(!i.length)return!1;let a=await Ot(e),u=new Set;for(let l of a)for(let p of l.states)p.type==="done"&&u.add(p.id);for(let l of i){let p=l.object_id,f=await fetch(`${ne}/stories/${p}`,{headers:oe(e)});if(!f.ok)continue;let m=await f.json(),h=Fr.safeParse(m);if(h.success&&h.data.workflow_state_id!==void 0&&!u.has(h.data.workflow_state_id))return!0}return!1}catch{return!1}}async function uf(e,t,r){try{if(r){let n=await fb(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await db(e,t)}catch{return}}async function fb(e,t){try{let r=await fetch(`${ne}/stories/search`,{method:"POST",headers:oe(e),body:JSON.stringify({query:t})});if(!r.ok)return;let n=await r.json(),o=Za.safeParse(n);if(!o.success)return;let s=o.data.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Ot(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function db(e,t){try{let r=await fetch(`${ne}/epics/${t}/stories`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=tf.safeParse(n);if(!o.success)return;let s=o.data,i=s.length;if(i===0)return{total:0,incomplete:0};let a=await Ot(e),u=new Set;for(let p of a)for(let f of p.states)f.type==="done"&&u.add(f.id);let l=s.filter(p=>p.workflow_state_id===void 0||!u.has(p.workflow_state_id)).length;return{total:i,incomplete:l}}catch{return}}async function lf(e,t,r){try{return(await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({workflow_state_id:r})})).ok}catch{return!1}}async function qr(e){if(Nt)return Nt;try{let t=await fetch(`${ne}/labels`,{headers:oe(e)});if(!t.ok)return console.warn(`\u26A0 Shortcut /labels returned HTTP ${t.status}`),[];let r=await t.json(),n=Xp.safeParse(r);return n.success?(Nt=n.data,Nt):(console.warn(`\u26A0 Unexpected Shortcut labels response: ${n.error.message}`),[])}catch(t){return console.warn(`\u26A0 Shortcut /labels request failed: ${t instanceof Error?t.message:String(t)}`),[]}}async function pf(e,t){try{let r=await fetch(`${ne}/labels`,{method:"POST",headers:oe(e),body:JSON.stringify({name:t,color:"#0075ca"})});if(!r.ok){console.warn(`\u26A0 Shortcut label create returned HTTP ${r.status}`);return}let n=await r.json(),o=ef.safeParse(n);return o.success?(Nt=void 0,o.data.id):void 0}catch(r){console.warn(`\u26A0 Shortcut label create failed: ${r instanceof Error?r.message:String(r)}`);return}}async function ja(e,t){try{let r=await fetch(`${ne}/stories/${t}`,{headers:oe(e)});if(!r.ok)return;let n=await r.json(),o=Fr.safeParse(n);return o.success?o.data.label_ids??[]:void 0}catch{return}}async function Da(e,t,r){try{let n=await fetch(`${ne}/stories/${t}`,{method:"PUT",headers:oe(e),body:JSON.stringify({label_ids:r})});return n.ok||console.warn(`\u26A0 Shortcut story label update returned HTTP ${n.status}`),n.ok}catch(n){return console.warn(`\u26A0 Shortcut story label update failed: ${n instanceof Error?n.message:String(n)}`),!1}}function ff(e){return{async ping(){return nf(e.SHORTCUT_API_TOKEN)},validateInputs(){},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){let r=await sf(e.SHORTCUT_API_TOKEN,"unstarted",e.SHORTCUT_WORKFLOW);return(await af(e.SHORTCUT_API_TOKEN,r,t.buildLabel??e.CLANCY_LABEL,void 0,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.epicId?`epic-${o.epicId}`:"none",blockers:"None",issueId:String(o.storyId),labels:o.labels??[],status:"unstarted"}))},async fetchBlockerStatus(t){let r=Jr(t.key);return r===void 0?!1:cf(e.SHORTCUT_API_TOKEN,r)},async fetchChildrenStatus(t,r){let n=r??t.replace(/^(sc-|epic-)/,""),o=parseInt(n,10);if(!Number.isNaN(o))return uf(e.SHORTCUT_API_TOKEN,o,t)},async transitionTicket(t,r){let n=Jr(t.key);if(n===void 0)return!1;let o=await of(e.SHORTCUT_API_TOKEN,r,e.SHORTCUT_WORKFLOW);if(o===void 0)return console.warn(`\u26A0 Shortcut workflow state "${r}" not found \u2014 check workflow configuration`),!1;let s=await lf(e.SHORTCUT_API_TOKEN,n,o);return s&&console.log(` \u2192 Transitioned to ${r}`),s},async ensureLabel(t){try{if((await qr(e.SHORTCUT_API_TOKEN)).find(o=>o.name===t))return;await pf(e.SHORTCUT_API_TOKEN,t)}catch(r){console.warn(`\u26A0 ensureLabel failed: ${r instanceof Error?r.message:String(r)}`)}},async addLabel(t,r){try{await this.ensureLabel(r);let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await ja(e.SHORTCUT_API_TOKEN,n);if(!i||i.includes(s.id))return;await Da(e.SHORTCUT_API_TOKEN,n,[...i,s.id])}catch(n){console.warn(`\u26A0 addLabel failed: ${n instanceof Error?n.message:String(n)}`)}},async removeLabel(t,r){try{let n=Jr(t);if(n===void 0)return;let s=(await qr(e.SHORTCUT_API_TOKEN)).find(a=>a.name===r);if(!s)return;let i=await ja(e.SHORTCUT_API_TOKEN,n);if(!i||!i.includes(s.id))return;await Da(e.SHORTCUT_API_TOKEN,n,i.filter(a=>a!==s.id))}catch(n){console.warn(`\u26A0 removeLabel failed: ${n instanceof Error?n.message:String(n)}`)}},sharedEnv(){return e}}}function Jr(e){let t=parseInt(e.replace("sc-",""),10);return Number.isNaN(t)?void 0:t}function df(e){switch(e.provider){case"jira":return kp(e.env);case"github":return fp(e.env);case"linear":return Mp(e.env);case"shortcut":return ff(e.env);case"notion":return Wp(e.env);case"azdo":return pp(e.env)}}async function mf(e){console.log($("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log($("\u2502")+Ne(" \u{1F916} Clancy \u2014 once mode ")+$("\u2502")),console.log($("\u2502")+$(` "Let's roll." `)+$("\u2502")),console.log($("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=Or(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=zr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=df(n),s=o.validateInputs();if(s)return console.log(s),!1;let i=await o.ping();return i.ok?(console.log(O("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(i.error),!1)}async function hf(e){let t=e.config;try{let r=await Ll(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(z(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function mb(e){return e.CLANCY_LABEL_BUILD||e.CLANCY_LABEL||void 0}function hb(e){return e.CLANCY_LABEL_PLAN||e.CLANCY_PLAN_LABEL||void 0}function gb(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function gf(e,t){let r=gb(t),n=e.sharedEnv(),o=mb(n),s=hb(n),i=await e.fetchTickets({excludeHitl:r,buildLabel:o});if(i.length)for(let a of i){if(s&&a.labels?.includes(s)){console.log(`Skipping ${a.key} \u2014 still has plan label`);continue}if(!await e.fetchBlockerStatus(a))return console.log(`Selected ${a.key}${a.status?` (status: ${a.status})`:""}`),a;console.log(`Skipping ${a.key} \u2014 blocked`)}}async function yf(e){let t=e.config;if(e.ticket||(e.ticket=await gf(e.board)),!e.ticket)return console.log($("No tickets found. All done!")),!1;if(e.isRework){let a=parseInt(D(t).CLANCY_MAX_REWORK??"3",10),u=Number.isFinite(a)&&a>0?a:3;if(Hu(e.cwd,e.ticket.key)>=u)return console.log(z(`\u26A0 ${e.ticket.key} has reached max rework cycles (${u}) \u2014 needs human intervention`)),C(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=Cr(t.provider,e.ticket.key),s=Nr(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=s,e.hasParent=e.ticket.parentInfo!=="none";let i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ne(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log($(` ${i}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${s}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(z(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function bf(e){let t=e.config,r=e.board,n=e.ticket,o=t.env.CLANCY_STATUS_IN_PROGRESS;return o&&await r.transitionTicket(n,o),!0}async function _b(e){let t=qa(e);if(await Xl(t))try{if(!await mf(t)||!await Ml(t)||!await hf(t)||!await yf(t)||!Dl(t)||!ql(t)||!await _l(t)||!await bf(t)||!Gl(t)||!await jl(t))return;kl(t),await $l(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ce(Date.now()-t.startTime);if(console.error(""),console.error(Oe("\u274C Clancy stopped")+$(` (${o})`)),console.error(Oe(` ${n}`)),console.error($(` "I'd rather let Herman go."`)),t.originalBranch)try{N(t.originalBranch)}catch{}}finally{t.lockOwner&&(Mt(t.cwd),Bt(t.cwd))}}process.argv[1]&&bb(import.meta.url)===yb(process.argv[1])&&_b(process.argv);export{_b as run};
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};