chief-clancy 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/README.md +3 -2
  2. package/dist/bundle/clancy-afk.js +6 -2
  3. package/dist/bundle/clancy-once.js +49 -48
  4. package/dist/installer/hook-installer/hook-installer.d.ts +2 -0
  5. package/dist/installer/hook-installer/hook-installer.d.ts.map +1 -1
  6. package/dist/installer/hook-installer/hook-installer.js +36 -1
  7. package/dist/installer/hook-installer/hook-installer.js.map +1 -1
  8. package/dist/installer/install.js +8 -0
  9. package/dist/installer/install.js.map +1 -1
  10. package/hooks/clancy-branch-guard.js +129 -0
  11. package/hooks/clancy-context-monitor.js +134 -46
  12. package/hooks/clancy-post-compact.js +53 -0
  13. package/hooks/package.json +3 -0
  14. package/package.json +7 -3
  15. package/src/agents/verification-gate.md +128 -0
  16. package/src/roles/setup/workflows/init.md +45 -0
  17. package/src/roles/setup/workflows/scaffold.md +30 -0
  18. package/src/roles/setup/workflows/settings.md +56 -0
  19. package/src/templates/.env.example.github +19 -1
  20. package/src/templates/.env.example.jira +25 -1
  21. package/src/templates/.env.example.linear +19 -1
  22. package/dist/schemas/bitbucket-pr.d.ts +0 -137
  23. package/dist/schemas/bitbucket-pr.d.ts.map +0 -1
  24. package/dist/schemas/bitbucket-pr.js +0 -75
  25. package/dist/schemas/bitbucket-pr.js.map +0 -1
  26. package/dist/schemas/env.d.ts +0 -150
  27. package/dist/schemas/env.d.ts.map +0 -1
  28. package/dist/schemas/env.js +0 -63
  29. package/dist/schemas/env.js.map +0 -1
  30. package/dist/schemas/github-issues.d.ts +0 -105
  31. package/dist/schemas/github-issues.d.ts.map +0 -1
  32. package/dist/schemas/github-issues.js +0 -54
  33. package/dist/schemas/github-issues.js.map +0 -1
  34. package/dist/schemas/gitlab-mr.d.ts +0 -73
  35. package/dist/schemas/gitlab-mr.d.ts.map +0 -1
  36. package/dist/schemas/gitlab-mr.js +0 -33
  37. package/dist/schemas/gitlab-mr.js.map +0 -1
  38. package/dist/schemas/jira.d.ts +0 -59
  39. package/dist/schemas/jira.d.ts.map +0 -1
  40. package/dist/schemas/jira.js +0 -56
  41. package/dist/schemas/jira.js.map +0 -1
  42. package/dist/schemas/linear.d.ts +0 -108
  43. package/dist/schemas/linear.d.ts.map +0 -1
  44. package/dist/schemas/linear.js +0 -84
  45. package/dist/schemas/linear.js.map +0 -1
  46. package/dist/scripts/afk/afk.d.ts +0 -21
  47. package/dist/scripts/afk/afk.d.ts.map +0 -1
  48. package/dist/scripts/afk/afk.js +0 -118
  49. package/dist/scripts/afk/afk.js.map +0 -1
  50. package/dist/scripts/board/github/github.d.ts +0 -104
  51. package/dist/scripts/board/github/github.d.ts.map +0 -1
  52. package/dist/scripts/board/github/github.js +0 -291
  53. package/dist/scripts/board/github/github.js.map +0 -1
  54. package/dist/scripts/board/jira/jira.d.ts +0 -139
  55. package/dist/scripts/board/jira/jira.d.ts.map +0 -1
  56. package/dist/scripts/board/jira/jira.js +0 -378
  57. package/dist/scripts/board/jira/jira.js.map +0 -1
  58. package/dist/scripts/board/linear/linear.d.ts +0 -129
  59. package/dist/scripts/board/linear/linear.d.ts.map +0 -1
  60. package/dist/scripts/board/linear/linear.js +0 -393
  61. package/dist/scripts/board/linear/linear.js.map +0 -1
  62. package/dist/scripts/once/board-ops/board-ops.d.ts +0 -26
  63. package/dist/scripts/once/board-ops/board-ops.d.ts.map +0 -1
  64. package/dist/scripts/once/board-ops/board-ops.js +0 -113
  65. package/dist/scripts/once/board-ops/board-ops.js.map +0 -1
  66. package/dist/scripts/once/deliver/deliver.d.ts +0 -37
  67. package/dist/scripts/once/deliver/deliver.d.ts.map +0 -1
  68. package/dist/scripts/once/deliver/deliver.js +0 -236
  69. package/dist/scripts/once/deliver/deliver.js.map +0 -1
  70. package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts +0 -22
  71. package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts.map +0 -1
  72. package/dist/scripts/once/fetch-ticket/fetch-ticket.js +0 -123
  73. package/dist/scripts/once/fetch-ticket/fetch-ticket.js.map +0 -1
  74. package/dist/scripts/once/git-token/git-token.d.ts +0 -13
  75. package/dist/scripts/once/git-token/git-token.d.ts.map +0 -1
  76. package/dist/scripts/once/git-token/git-token.js +0 -30
  77. package/dist/scripts/once/git-token/git-token.js.map +0 -1
  78. package/dist/scripts/once/once.d.ts +0 -12
  79. package/dist/scripts/once/once.d.ts.map +0 -1
  80. package/dist/scripts/once/once.js +0 -356
  81. package/dist/scripts/once/once.js.map +0 -1
  82. package/dist/scripts/once/pr-creation/pr-creation.d.ts +0 -11
  83. package/dist/scripts/once/pr-creation/pr-creation.d.ts.map +0 -1
  84. package/dist/scripts/once/pr-creation/pr-creation.js +0 -50
  85. package/dist/scripts/once/pr-creation/pr-creation.js.map +0 -1
  86. package/dist/scripts/once/rework/rework.d.ts +0 -32
  87. package/dist/scripts/once/rework/rework.d.ts.map +0 -1
  88. package/dist/scripts/once/rework/rework.js +0 -208
  89. package/dist/scripts/once/rework/rework.js.map +0 -1
  90. package/dist/scripts/once/types/types.d.ts +0 -13
  91. package/dist/scripts/once/types/types.d.ts.map +0 -1
  92. package/dist/scripts/once/types/types.js +0 -2
  93. package/dist/scripts/once/types/types.js.map +0 -1
  94. package/dist/scripts/shared/branch/branch.d.ts +0 -50
  95. package/dist/scripts/shared/branch/branch.d.ts.map +0 -1
  96. package/dist/scripts/shared/branch/branch.js +0 -61
  97. package/dist/scripts/shared/branch/branch.js.map +0 -1
  98. package/dist/scripts/shared/claude-cli/claude-cli.d.ts +0 -31
  99. package/dist/scripts/shared/claude-cli/claude-cli.d.ts.map +0 -1
  100. package/dist/scripts/shared/claude-cli/claude-cli.js +0 -60
  101. package/dist/scripts/shared/claude-cli/claude-cli.js.map +0 -1
  102. package/dist/scripts/shared/env-schema/env-schema.d.ts +0 -27
  103. package/dist/scripts/shared/env-schema/env-schema.d.ts.map +0 -1
  104. package/dist/scripts/shared/env-schema/env-schema.js +0 -47
  105. package/dist/scripts/shared/env-schema/env-schema.js.map +0 -1
  106. package/dist/scripts/shared/feasibility/feasibility.d.ts +0 -30
  107. package/dist/scripts/shared/feasibility/feasibility.d.ts.map +0 -1
  108. package/dist/scripts/shared/feasibility/feasibility.js +0 -68
  109. package/dist/scripts/shared/feasibility/feasibility.js.map +0 -1
  110. package/dist/scripts/shared/format/format.d.ts +0 -11
  111. package/dist/scripts/shared/format/format.d.ts.map +0 -1
  112. package/dist/scripts/shared/format/format.js +0 -18
  113. package/dist/scripts/shared/format/format.js.map +0 -1
  114. package/dist/scripts/shared/git-ops/git-ops.d.ts +0 -90
  115. package/dist/scripts/shared/git-ops/git-ops.d.ts.map +0 -1
  116. package/dist/scripts/shared/git-ops/git-ops.js +0 -190
  117. package/dist/scripts/shared/git-ops/git-ops.js.map +0 -1
  118. package/dist/scripts/shared/http/http.d.ts +0 -54
  119. package/dist/scripts/shared/http/http.d.ts.map +0 -1
  120. package/dist/scripts/shared/http/http.js +0 -76
  121. package/dist/scripts/shared/http/http.js.map +0 -1
  122. package/dist/scripts/shared/notify/notify.d.ts +0 -46
  123. package/dist/scripts/shared/notify/notify.d.ts.map +0 -1
  124. package/dist/scripts/shared/notify/notify.js +0 -88
  125. package/dist/scripts/shared/notify/notify.js.map +0 -1
  126. package/dist/scripts/shared/preflight/preflight.d.ts +0 -40
  127. package/dist/scripts/shared/preflight/preflight.d.ts.map +0 -1
  128. package/dist/scripts/shared/preflight/preflight.js +0 -96
  129. package/dist/scripts/shared/preflight/preflight.js.map +0 -1
  130. package/dist/scripts/shared/progress/progress.d.ts +0 -75
  131. package/dist/scripts/shared/progress/progress.d.ts.map +0 -1
  132. package/dist/scripts/shared/progress/progress.js +0 -210
  133. package/dist/scripts/shared/progress/progress.js.map +0 -1
  134. package/dist/scripts/shared/prompt/prompt.d.ts +0 -58
  135. package/dist/scripts/shared/prompt/prompt.d.ts.map +0 -1
  136. package/dist/scripts/shared/prompt/prompt.js +0 -123
  137. package/dist/scripts/shared/prompt/prompt.js.map +0 -1
  138. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts +0 -82
  139. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.d.ts.map +0 -1
  140. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js +0 -301
  141. package/dist/scripts/shared/pull-request/bitbucket/bitbucket.js.map +0 -1
  142. package/dist/scripts/shared/pull-request/github/github.d.ts +0 -72
  143. package/dist/scripts/shared/pull-request/github/github.d.ts.map +0 -1
  144. package/dist/scripts/shared/pull-request/github/github.js +0 -226
  145. package/dist/scripts/shared/pull-request/github/github.js.map +0 -1
  146. package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts +0 -74
  147. package/dist/scripts/shared/pull-request/gitlab/gitlab.d.ts.map +0 -1
  148. package/dist/scripts/shared/pull-request/gitlab/gitlab.js +0 -220
  149. package/dist/scripts/shared/pull-request/gitlab/gitlab.js.map +0 -1
  150. package/dist/scripts/shared/pull-request/post-pr/post-pr.d.ts +0 -31
  151. package/dist/scripts/shared/pull-request/post-pr/post-pr.d.ts.map +0 -1
  152. package/dist/scripts/shared/pull-request/post-pr/post-pr.js +0 -61
  153. package/dist/scripts/shared/pull-request/post-pr/post-pr.js.map +0 -1
  154. package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts +0 -40
  155. package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts.map +0 -1
  156. package/dist/scripts/shared/pull-request/pr-body/pr-body.js +0 -84
  157. package/dist/scripts/shared/pull-request/pr-body/pr-body.js.map +0 -1
  158. package/dist/scripts/shared/pull-request/rework-comment/rework-comment.d.ts +0 -23
  159. package/dist/scripts/shared/pull-request/rework-comment/rework-comment.d.ts.map +0 -1
  160. package/dist/scripts/shared/pull-request/rework-comment/rework-comment.js +0 -30
  161. package/dist/scripts/shared/pull-request/rework-comment/rework-comment.js.map +0 -1
  162. package/dist/scripts/shared/remote/remote.d.ts +0 -41
  163. package/dist/scripts/shared/remote/remote.d.ts.map +0 -1
  164. package/dist/scripts/shared/remote/remote.js +0 -227
  165. package/dist/scripts/shared/remote/remote.js.map +0 -1
  166. package/dist/types/board.d.ts +0 -13
  167. package/dist/types/board.d.ts.map +0 -1
  168. package/dist/types/board.js +0 -5
  169. package/dist/types/board.js.map +0 -1
  170. package/dist/types/index.d.ts +0 -4
  171. package/dist/types/index.d.ts.map +0 -1
  172. package/dist/types/index.js +0 -2
  173. package/dist/types/index.js.map +0 -1
  174. package/dist/types/remote.d.ts +0 -55
  175. package/dist/types/remote.d.ts.map +0 -1
  176. package/dist/types/remote.js +0 -5
  177. package/dist/types/remote.js.map +0 -1
  178. package/dist/utils/parse-json/parse-json.d.ts +0 -20
  179. package/dist/utils/parse-json/parse-json.d.ts.map +0 -1
  180. package/dist/utils/parse-json/parse-json.js +0 -27
  181. package/dist/utils/parse-json/parse-json.js.map +0 -1
@@ -1,51 +1,58 @@
1
- var Sl=Object.defineProperty;var we=(e,t)=>{for(var r in t)Sl(e,r,{get:t[r],enumerable:!0})};import{resolve as Th}from"node:path";import{fileURLToPath as Ah}from"node:url";function zt(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function yr(e,t,r){return r?e==="github"?`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`:`epic/${r.toLowerCase()}`:t}import{spawnSync as sc}from"node:child_process";function cc(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=sc("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function ac(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=sc("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}var l={};we(l,{$brand:()=>$r,$input:()=>ti,$output:()=>ei,NEVER:()=>xr,TimePrecision:()=>Si,ZodMiniAny:()=>ha,ZodMiniArray:()=>xa,ZodMiniBase64:()=>ca,ZodMiniBase64URL:()=>aa,ZodMiniBigInt:()=>_t,ZodMiniBigIntFormat:()=>Ts,ZodMiniBoolean:()=>gt,ZodMiniCIDRv4:()=>oa,ZodMiniCIDRv6:()=>ia,ZodMiniCUID:()=>Wc,ZodMiniCUID2:()=>Xc,ZodMiniCatch:()=>Ma,ZodMiniCodec:()=>js,ZodMiniCustom:()=>Os,ZodMiniCustomStringFormat:()=>mt,ZodMiniDate:()=>tr,ZodMiniDefault:()=>ja,ZodMiniDiscriminatedUnion:()=>wa,ZodMiniE164:()=>ua,ZodMiniEmail:()=>Yc,ZodMiniEmoji:()=>Kc,ZodMiniEnum:()=>Rs,ZodMiniExactOptional:()=>Ca,ZodMiniFile:()=>Ra,ZodMiniFunction:()=>Ya,ZodMiniGUID:()=>Hc,ZodMiniIPv4:()=>ra,ZodMiniIPv6:()=>na,ZodMiniISODate:()=>sr,ZodMiniISODateTime:()=>ir,ZodMiniISODuration:()=>ar,ZodMiniISOTime:()=>cr,ZodMiniIntersection:()=>za,ZodMiniJWT:()=>la,ZodMiniKSUID:()=>ta,ZodMiniLazy:()=>Fa,ZodMiniLiteral:()=>Aa,ZodMiniMAC:()=>sa,ZodMiniMap:()=>Ea,ZodMiniNaN:()=>Da,ZodMiniNanoID:()=>Vc,ZodMiniNever:()=>_a,ZodMiniNonOptional:()=>Cs,ZodMiniNull:()=>da,ZodMiniNullable:()=>Na,ZodMiniNumber:()=>ht,ZodMiniNumberFormat:()=>Be,ZodMiniObject:()=>rr,ZodMiniOptional:()=>Zs,ZodMiniPipe:()=>Ns,ZodMiniPrefault:()=>Oa,ZodMiniPromise:()=>qa,ZodMiniReadonly:()=>Ua,ZodMiniRecord:()=>nr,ZodMiniSet:()=>Ia,ZodMiniString:()=>Ue,ZodMiniStringFormat:()=>A,ZodMiniSuccess:()=>La,ZodMiniSymbol:()=>pa,ZodMiniTemplateLiteral:()=>Ba,ZodMiniTransform:()=>Za,ZodMiniTuple:()=>ka,ZodMiniType:()=>z,ZodMiniULID:()=>Qc,ZodMiniURL:()=>Is,ZodMiniUUID:()=>dt,ZodMiniUndefined:()=>fa,ZodMiniUnion:()=>As,ZodMiniUnknown:()=>ga,ZodMiniVoid:()=>ya,ZodMiniXID:()=>ea,ZodMiniXor:()=>va,_default:()=>Vd,_function:()=>hm,any:()=>zd,array:()=>U,base64:()=>sd,base64url:()=>cd,bigint:()=>yd,boolean:()=>Fe,catch:()=>em,catchall:()=>jd,check:()=>cm,cidrv4:()=>nd,cidrv6:()=>od,clone:()=>M,codec:()=>nm,coerce:()=>Ms,config:()=>L,core:()=>De,cuid:()=>Vf,cuid2:()=>Wf,custom:()=>Ga,date:()=>Sd,decode:()=>Fr,decodeAsync:()=>qr,describe:()=>lm,discriminatedUnion:()=>Ld,e164:()=>ad,email:()=>Df,emoji:()=>Hf,encode:()=>Br,encodeAsync:()=>Jr,endsWith:()=>ms,enum:()=>Ta,exactOptional:()=>Hd,extend:()=>bt,file:()=>Gd,flattenError:()=>Lr,float32:()=>hd,float64:()=>gd,formatError:()=>Mr,function:()=>hm,globalRegistry:()=>se,gt:()=>Vt,gte:()=>lt,guid:()=>Uf,hash:()=>dd,hex:()=>fd,hostname:()=>pd,httpUrl:()=>Yf,includes:()=>fs,instanceof:()=>fm,int:()=>md,int32:()=>_d,int64:()=>xd,intersection:()=>Md,ipv4:()=>td,ipv6:()=>rd,iso:()=>Ls,json:()=>mm,jwt:()=>ud,keyof:()=>Pd,ksuid:()=>ed,lazy:()=>Ja,length:()=>us,literal:()=>qd,locales:()=>at,looseObject:()=>Id,looseRecord:()=>Ud,lowercase:()=>ls,lt:()=>Kt,lte:()=>ut,mac:()=>id,map:()=>Bd,maxLength:()=>as,maxSize:()=>is,maximum:()=>ut,merge:()=>Ad,meta:()=>pm,mime:()=>gs,minLength:()=>pt,minSize:()=>ss,minimum:()=>lt,multipleOf:()=>os,nan:()=>tm,nanoid:()=>Kf,nativeEnum:()=>Jd,negative:()=>ts,never:()=>ba,nonnegative:()=>ns,nonoptional:()=>Xd,nonpositive:()=>rs,normalize:()=>_s,null:()=>ma,nullable:()=>or,nullish:()=>Kd,number:()=>ye,object:()=>E,omit:()=>Zd,optional:()=>x,overwrite:()=>he,parse:()=>de,parseAsync:()=>me,partial:()=>Cd,partialRecord:()=>Dd,pick:()=>Rd,pipe:()=>rm,positive:()=>es,prefault:()=>Wd,prettifyError:()=>Ur,promise:()=>sm,property:()=>hs,readonly:()=>om,record:()=>Pa,refine:()=>am,regex:()=>ft,regexes:()=>Q,registry:()=>Yt,required:()=>Nd,safeDecode:()=>Yr,safeDecodeAsync:()=>Kr,safeEncode:()=>Gr,safeEncodeAsync:()=>Hr,safeExtend:()=>Td,safeParse:()=>ke,safeParseAsync:()=>Se,set:()=>Fd,size:()=>cs,startsWith:()=>ds,strictObject:()=>Ed,string:()=>y,stringFormat:()=>ld,stringbool:()=>dm,success:()=>Qd,superRefine:()=>um,symbol:()=>vd,templateLiteral:()=>im,toJSONSchema:()=>Xt,toLowerCase:()=>ys,toUpperCase:()=>xs,transform:()=>Yd,treeifyError:()=>Dr,trim:()=>bs,tuple:()=>Sa,uint32:()=>bd,uint64:()=>$d,ulid:()=>Xf,undefined:()=>wd,union:()=>$a,unknown:()=>er,uppercase:()=>ps,url:()=>Gf,util:()=>X,uuid:()=>Bf,uuidv4:()=>Ff,uuidv6:()=>Jf,uuidv7:()=>qf,void:()=>kd,xid:()=>Qf,xor:()=>Od});var De={};we(De,{$ZodAny:()=>wo,$ZodArray:()=>Eo,$ZodAsyncError:()=>ne,$ZodBase64:()=>fo,$ZodBase64URL:()=>mo,$ZodBigInt:()=>Bt,$ZodBigIntFormat:()=>yo,$ZodBoolean:()=>it,$ZodCIDRv4:()=>uo,$ZodCIDRv6:()=>lo,$ZodCUID:()=>Wn,$ZodCUID2:()=>Xn,$ZodCatch:()=>qo,$ZodCheck:()=>T,$ZodCheckBigIntFormat:()=>Pn,$ZodCheckEndsWith:()=>Mn,$ZodCheckGreaterThan:()=>Nt,$ZodCheckIncludes:()=>On,$ZodCheckLengthEquals:()=>Zn,$ZodCheckLessThan:()=>Ct,$ZodCheckLowerCase:()=>Nn,$ZodCheckMaxLength:()=>An,$ZodCheckMaxSize:()=>En,$ZodCheckMimeType:()=>Un,$ZodCheckMinLength:()=>Rn,$ZodCheckMinSize:()=>In,$ZodCheckMultipleOf:()=>kn,$ZodCheckNumberFormat:()=>Sn,$ZodCheckOverwrite:()=>Bn,$ZodCheckProperty:()=>Dn,$ZodCheckRegex:()=>Cn,$ZodCheckSizeEquals:()=>Tn,$ZodCheckStartsWith:()=>Ln,$ZodCheckStringFormat:()=>Oe,$ZodCheckUpperCase:()=>jn,$ZodCodec:()=>ct,$ZodCustom:()=>Qo,$ZodCustomStringFormat:()=>_o,$ZodDate:()=>Po,$ZodDefault:()=>Uo,$ZodDiscriminatedUnion:()=>To,$ZodE164:()=>ho,$ZodEmail:()=>Yn,$ZodEmoji:()=>Kn,$ZodEncodeError:()=>Ze,$ZodEnum:()=>No,$ZodError:()=>Or,$ZodExactOptional:()=>Mo,$ZodFile:()=>Oo,$ZodFunction:()=>Vo,$ZodGUID:()=>qn,$ZodIPv4:()=>so,$ZodIPv6:()=>co,$ZodISODate:()=>no,$ZodISODateTime:()=>ro,$ZodISODuration:()=>io,$ZodISOTime:()=>oo,$ZodIntersection:()=>Ao,$ZodJWT:()=>go,$ZodKSUID:()=>to,$ZodLazy:()=>Xo,$ZodLiteral:()=>jo,$ZodMAC:()=>ao,$ZodMap:()=>Zo,$ZodNaN:()=>Go,$ZodNanoID:()=>Vn,$ZodNever:()=>ko,$ZodNonOptional:()=>Fo,$ZodNull:()=>vo,$ZodNullable:()=>Do,$ZodNumber:()=>Ut,$ZodNumberFormat:()=>bo,$ZodObject:()=>Ft,$ZodObjectJIT:()=>vp,$ZodOptional:()=>qt,$ZodPipe:()=>Yo,$ZodPrefault:()=>Bo,$ZodPromise:()=>Wo,$ZodReadonly:()=>Ho,$ZodRealError:()=>G,$ZodRecord:()=>Ro,$ZodRegistry:()=>Gt,$ZodSet:()=>Co,$ZodString:()=>Le,$ZodStringFormat:()=>I,$ZodSuccess:()=>Jo,$ZodSymbol:()=>xo,$ZodTemplateLiteral:()=>Ko,$ZodTransform:()=>Lo,$ZodTuple:()=>Jt,$ZodType:()=>$,$ZodULID:()=>Qn,$ZodURL:()=>Hn,$ZodUUID:()=>Gn,$ZodUndefined:()=>$o,$ZodUnion:()=>st,$ZodUnknown:()=>zo,$ZodVoid:()=>So,$ZodXID:()=>eo,$ZodXor:()=>Io,$brand:()=>$r,$constructor:()=>f,$input:()=>ti,$output:()=>ei,Doc:()=>ot,JSONSchema:()=>Gc,JSONSchemaGenerator:()=>Qt,NEVER:()=>xr,TimePrecision:()=>Si,_any:()=>Yi,_array:()=>Pp,_base64:()=>vi,_base64url:()=>wi,_bigint:()=>Di,_boolean:()=>Li,_catch:()=>qp,_check:()=>qc,_cidrv4:()=>xi,_cidrv6:()=>$i,_coercedBigint:()=>Ui,_coercedBoolean:()=>Mi,_coercedDate:()=>Xi,_coercedNumber:()=>Ri,_coercedString:()=>ni,_cuid:()=>fi,_cuid2:()=>di,_custom:()=>vs,_date:()=>Wi,_decode:()=>gc,_decodeAsync:()=>bc,_default:()=>Bp,_discriminatedUnion:()=>Tp,_e164:()=>zi,_email:()=>oi,_emoji:()=>li,_encode:()=>hc,_encodeAsync:()=>_c,_endsWith:()=>ms,_enum:()=>jp,_file:()=>$s,_float32:()=>Ci,_float64:()=>Ni,_gt:()=>Vt,_gte:()=>lt,_guid:()=>ii,_includes:()=>fs,_int:()=>Zi,_int32:()=>ji,_int64:()=>Bi,_intersection:()=>Ap,_ipv4:()=>_i,_ipv6:()=>bi,_isoDate:()=>Ei,_isoDateTime:()=>Pi,_isoDuration:()=>Ti,_isoTime:()=>Ii,_jwt:()=>ki,_ksuid:()=>gi,_lazy:()=>Kp,_length:()=>us,_literal:()=>Lp,_lowercase:()=>ls,_lt:()=>Kt,_lte:()=>ut,_mac:()=>yi,_map:()=>Cp,_max:()=>ut,_maxLength:()=>as,_maxSize:()=>is,_mime:()=>gs,_min:()=>lt,_minLength:()=>pt,_minSize:()=>ss,_multipleOf:()=>os,_nan:()=>Qi,_nanoid:()=>pi,_nativeEnum:()=>Op,_negative:()=>ts,_never:()=>Ki,_nonnegative:()=>ns,_nonoptional:()=>Fp,_nonpositive:()=>rs,_normalize:()=>_s,_null:()=>Gi,_nullable:()=>Up,_number:()=>Ai,_optional:()=>Dp,_overwrite:()=>he,_parse:()=>Et,_parseAsync:()=>It,_pipe:()=>Gp,_positive:()=>es,_promise:()=>Vp,_property:()=>hs,_readonly:()=>Yp,_record:()=>Zp,_refine:()=>ws,_regex:()=>ft,_safeDecode:()=>xc,_safeDecodeAsync:()=>vc,_safeEncode:()=>yc,_safeEncodeAsync:()=>$c,_safeParse:()=>Tt,_safeParseAsync:()=>At,_set:()=>Np,_size:()=>cs,_slugify:()=>Sp,_startsWith:()=>ds,_string:()=>ri,_stringFormat:()=>Me,_stringbool:()=>Ps,_success:()=>Jp,_superRefine:()=>zs,_symbol:()=>Ji,_templateLiteral:()=>Hp,_toLowerCase:()=>ys,_toUpperCase:()=>xs,_transform:()=>Mp,_trim:()=>bs,_tuple:()=>Rp,_uint32:()=>Oi,_uint64:()=>Fi,_ulid:()=>mi,_undefined:()=>qi,_union:()=>Ep,_unknown:()=>Hi,_uppercase:()=>ps,_url:()=>Ht,_uuid:()=>si,_uuidv4:()=>ci,_uuidv6:()=>ai,_uuidv7:()=>ui,_void:()=>Vi,_xid:()=>hi,_xor:()=>Ip,clone:()=>M,config:()=>L,createStandardJSONSchemaMethod:()=>Es,createToJSONSchemaMethod:()=>Wp,decode:()=>Fr,decodeAsync:()=>qr,describe:()=>ks,encode:()=>Br,encodeAsync:()=>Jr,extractDefs:()=>_e,finalize:()=>be,flattenError:()=>Lr,formatError:()=>Mr,globalConfig:()=>Ke,globalRegistry:()=>se,initializeContext:()=>ge,isValidBase64:()=>po,isValidBase64URL:()=>Dc,isValidJWT:()=>Uc,locales:()=>at,meta:()=>Ss,parse:()=>de,parseAsync:()=>me,prettifyError:()=>Ur,process:()=>P,regexes:()=>Q,registry:()=>Yt,safeDecode:()=>Yr,safeDecodeAsync:()=>Kr,safeEncode:()=>Gr,safeEncodeAsync:()=>Hr,safeParse:()=>ke,safeParseAsync:()=>Se,toDotPath:()=>mc,toJSONSchema:()=>Xt,treeifyError:()=>Dr,util:()=>X,version:()=>Fn});var xr=Object.freeze({status:"aborted"});function f(e,t,r){function n(c,a){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:a,constr:s,traits:new Set},enumerable:!1}),c._zod.traits.has(e))return;c._zod.traits.add(e),t(c,a);let u=s.prototype,p=Object.keys(u);for(let d=0;d<p.length;d++){let m=p[d];m in c||(c[m]=u[m].bind(c))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(c){var a;let u=r?.Parent?new i:this;n(u,c),(a=u._zod).deferred??(a.deferred=[]);for(let p of u._zod.deferred)p();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>r?.Parent&&c instanceof r.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var $r=Symbol("zod_brand"),ne=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"}},Ke={};function L(e){return e&&Object.assign(Ke,e),Ke}var X={};we(X,{BIGINT_FORMAT_RANGES:()=>Ar,Class:()=>wr,NUMBER_FORMAT_RANGES:()=>Tr,aborted:()=>fe,allowsEval:()=>Pr,assert:()=>Al,assertEqual:()=>Pl,assertIs:()=>Il,assertNever:()=>Tl,assertNotEqual:()=>El,assignProp:()=>le,base64ToUint8Array:()=>pc,base64urlToUint8Array:()=>Jl,cached:()=>Ce,captureStackTrace:()=>St,cleanEnum:()=>Fl,cleanRegex:()=>Xe,clone:()=>M,cloneDef:()=>Cl,createTransparentProxy:()=>Dl,defineLazy:()=>w,esc:()=>kt,escapeRegex:()=>W,extend:()=>Pt,finalizeIssue:()=>q,floatSafeRemainder:()=>kr,getElementAtPath:()=>Nl,getEnumValues:()=>We,getLengthableOrigin:()=>tt,getParsedType:()=>Ml,getSizableOrigin:()=>et,hexToUint8Array:()=>Gl,isObject:()=>ze,isPlainObject:()=>pe,issue:()=>je,joinValues:()=>Rl,jsonStringifyReplacer:()=>zr,merge:()=>Ul,mergeDefs:()=>ce,normalizeParams:()=>_,nullish:()=>ue,numKeys:()=>Ll,objectClone:()=>Zl,omit:()=>Zr,optionalKeys:()=>Ir,parsedType:()=>Bl,partial:()=>Nr,pick:()=>Rr,prefixIssues:()=>K,primitiveTypes:()=>Er,promiseAllObject:()=>jl,propertyKeyTypes:()=>Qe,randomString:()=>Ol,required:()=>jr,safeExtend:()=>Cr,shallowClone:()=>Ne,slugify:()=>Sr,stringifyPrimitive:()=>lc,uint8ArrayToBase64:()=>fc,uint8ArrayToBase64url:()=>ql,uint8ArrayToHex:()=>Yl,unwrapMessage:()=>Ve});function Pl(e){return e}function El(e){return e}function Il(e){}function Tl(e){throw new Error("Unexpected value in exhaustive check")}function Al(e){}function We(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 Rl(e,t="|"){return e.map(r=>lc(r)).join(t)}function zr(e,t){return typeof t=="bigint"?t.toString():t}function Ce(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ue(e){return e==null}function Xe(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function kr(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let a=n.match(/\d?e-(\d?)/);a?.[1]&&(o=Number.parseInt(a[1]))}let i=r>o?r:o,s=Number.parseInt(e.toFixed(i).replace(".","")),c=Number.parseInt(t.toFixed(i).replace(".",""));return s%c/10**i}var uc=Symbol("evaluating");function w(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==uc)return n===void 0&&(n=uc,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Zl(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function le(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function ce(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Cl(e){return ce(e._zod.def)}function Nl(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function jl(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=n[i];return o})}function Ol(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function kt(e){return JSON.stringify(e)}function Sr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var St="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ze(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Pr=Ce(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function pe(e){if(ze(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(ze(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ne(e){return pe(e)?{...e}:Array.isArray(e)?[...e]:e}function Ll(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var Ml=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}`)}},Qe=new Set(["string","number","symbol"]),Er=new Set(["string","number","bigint","boolean","symbol","undefined"]);function W(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(e,t,r){let n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function _(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 Dl(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function lc(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Ir(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Tr={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]},Ar={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Rr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=ce(e._zod.def,{get shape(){let s={};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(s[c]=r.shape[c])}return le(this,"shape",s),s},checks:[]});return M(e,i)}function Zr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=ce(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&delete s[c]}return le(this,"shape",s),s},checks:[]});return M(e,i)}function Pt(e,t){if(!pe(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=ce(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return le(this,"shape",i),i}});return M(e,o)}function Cr(e,t){if(!pe(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=ce(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return le(this,"shape",n),n}});return M(e,r)}function Ul(e,t){let r=ce(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return le(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return M(e,r)}function Nr(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=ce(t._zod.def,{get shape(){let c=t._zod.def.shape,a={...c};if(r)for(let u in r){if(!(u in c))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(a[u]=e?new e({type:"optional",innerType:c[u]}):c[u])}else for(let u in c)a[u]=e?new e({type:"optional",innerType:c[u]}):c[u];return le(this,"shape",a),a},checks:[]});return M(t,s)}function jr(e,t,r){let n=ce(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new e({type:"nonoptional",innerType:o[s]});return le(this,"shape",i),i}});return M(t,n)}function fe(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 K(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Ve(e){return typeof e=="string"?e:e?.message}function q(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=Ve(e.inst?._zod.def?.error?.(e))??Ve(t?.error?.(e))??Ve(r.customError?.(e))??Ve(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function et(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function tt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Bl(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 je(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function Fl(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function pc(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 fc(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function Jl(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return pc(t+r)}function ql(e){return fc(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Gl(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 Yl(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var wr=class{constructor(...t){}};var dc=(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,zr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Or=f("$ZodError",dc),G=f("$ZodError",dc,{Parent:Error});function Lr(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 Mr(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(s=>n({issues:s}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let s=r,c=0;for(;c<i.path.length;){let a=i.path[c];c===i.path.length-1?(s[a]=s[a]||{_errors:[]},s[a]._errors.push(t(i))):s[a]=s[a]||{_errors:[]},s=s[a],c++}}};return n(e),r}function Dr(e,t=r=>r.message){let r={errors:[]},n=(o,i=[])=>{var s,c;for(let a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(u=>n({issues:u},a.path));else if(a.code==="invalid_key")n({issues:a.issues},a.path);else if(a.code==="invalid_element")n({issues:a.issues},a.path);else{let u=[...i,...a.path];if(u.length===0){r.errors.push(t(a));continue}let p=r,d=0;for(;d<u.length;){let m=u[d],h=d===u.length-1;typeof m=="string"?(p.properties??(p.properties={}),(s=p.properties)[m]??(s[m]={errors:[]}),p=p.properties[m]):(p.items??(p.items=[]),(c=p.items)[m]??(c[m]={errors:[]}),p=p.items[m]),h&&p.errors.push(t(a)),d++}}};return n(e),r}function mc(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 Ur(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 ${mc(n.path)}`);return t.join(`
2
- `)}var Et=e=>(t,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new ne;if(s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>q(a,i,L())));throw St(c,o?.callee),c}return s.value},de=Et(G),It=e=>async(t,r,n,o)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>q(a,i,L())));throw St(c,o?.callee),c}return s.value},me=It(G),Tt=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new ne;return i.issues.length?{success:!1,error:new(e??Or)(i.issues.map(s=>q(s,o,L())))}:{success:!0,data:i.value}},ke=Tt(G),At=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>q(s,o,L())))}:{success:!0,data:i.value}},Se=At(G),hc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Et(e)(t,r,o)},Br=hc(G),gc=e=>(t,r,n)=>Et(e)(t,r,n),Fr=gc(G),_c=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return It(e)(t,r,o)},Jr=_c(G),bc=e=>async(t,r,n)=>It(e)(t,r,n),qr=bc(G),yc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Tt(e)(t,r,o)},Gr=yc(G),xc=e=>(t,r,n)=>Tt(e)(t,r,n),Yr=xc(G),$c=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return At(e)(t,r,o)},Hr=$c(G),vc=e=>async(t,r,n)=>At(e)(t,r,n),Kr=vc(G);var Q={};we(Q,{base64:()=>fn,base64url:()=>Rt,bigint:()=>bn,boolean:()=>xn,browserEmail:()=>rp,cidrv4:()=>ln,cidrv6:()=>pn,cuid:()=>Vr,cuid2:()=>Wr,date:()=>mn,datetime:()=>gn,domain:()=>ip,duration:()=>rn,e164:()=>dn,email:()=>on,emoji:()=>sn,extendedDuration:()=>Kl,guid:()=>nn,hex:()=>sp,hostname:()=>op,html5Email:()=>Ql,idnEmail:()=>tp,integer:()=>yn,ipv4:()=>cn,ipv6:()=>an,ksuid:()=>en,lowercase:()=>wn,mac:()=>un,md5_base64:()=>ap,md5_base64url:()=>up,md5_hex:()=>cp,nanoid:()=>tn,null:()=>$n,number:()=>Zt,rfc5322Email:()=>ep,sha1_base64:()=>pp,sha1_base64url:()=>fp,sha1_hex:()=>lp,sha256_base64:()=>mp,sha256_base64url:()=>hp,sha256_hex:()=>dp,sha384_base64:()=>_p,sha384_base64url:()=>bp,sha384_hex:()=>gp,sha512_base64:()=>xp,sha512_base64url:()=>$p,sha512_hex:()=>yp,string:()=>_n,time:()=>hn,ulid:()=>Xr,undefined:()=>vn,unicodeEmail:()=>wc,uppercase:()=>zn,uuid:()=>Pe,uuid4:()=>Vl,uuid6:()=>Wl,uuid7:()=>Xl,xid:()=>Qr});var Vr=/^[cC][^\s-]{8,}$/,Wr=/^[0-9a-z]+$/,Xr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Qr=/^[0-9a-vA-V]{20}$/,en=/^[A-Za-z0-9]{27}$/,tn=/^[a-zA-Z0-9_-]{21}$/,rn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Kl=/^[-+]?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})$/,Pe=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)$/,Vl=Pe(4),Wl=Pe(6),Xl=Pe(7),on=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ql=/^[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])?)*$/,ep=/^(([^<>()\[\]\\.,;:\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,}))$/,wc=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,tp=wc,rp=/^[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])?)*$/,np="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function sn(){return new RegExp(np,"u")}var cn=/^(?:(?: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])$/,an=/^(([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}|:))$/,un=e=>{let t=W(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},ln=/^((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])$/,pn=/^(([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])$/,fn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Rt=/^[A-Za-z0-9_-]*$/,op=/^(?=.{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])?)*\.?$/,ip=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,dn=/^\+[1-9]\d{6,14}$/,zc="(?:(?:\\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])))",mn=new RegExp(`^${zc}$`);function kc(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 hn(e){return new RegExp(`^${kc(e)}$`)}function gn(e){let t=kc({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(`^${zc}T(?:${n})$`)}var _n=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},bn=/^-?\d+n?$/,yn=/^-?\d+$/,Zt=/^-?\d+(?:\.\d+)?$/,xn=/^(?:true|false)$/i,$n=/^null$/i;var vn=/^undefined$/i;var wn=/^[^A-Z]*$/,zn=/^[^a-z]*$/,sp=/^[0-9a-fA-F]*$/;function rt(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function nt(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var cp=/^[0-9a-fA-F]{32}$/,ap=rt(22,"=="),up=nt(22),lp=/^[0-9a-fA-F]{40}$/,pp=rt(27,"="),fp=nt(27),dp=/^[0-9a-fA-F]{64}$/,mp=rt(43,"="),hp=nt(43),gp=/^[0-9a-fA-F]{96}$/,_p=rt(64,""),bp=nt(64),yp=/^[0-9a-fA-F]{128}$/,xp=rt(86,"=="),$p=nt(86);var T=f("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Pc={number:"number",bigint:"bigint",object:"date"},Ct=f("$ZodCheckLessThan",(e,t)=>{T.init(e,t);let r=Pc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Nt=f("$ZodCheckGreaterThan",(e,t)=>{T.init(e,t);let r=Pc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),kn=f("$ZodCheckMultipleOf",(e,t)=>{T.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):kr(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})}}),Sn=f("$ZodCheckNumberFormat",(e,t)=>{T.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Tr[t.format];e._zod.onattach.push(s=>{let c=s._zod.bag;c.format=t.format,c.minimum=o,c.maximum=i,r&&(c.pattern=yn)}),e._zod.check=s=>{let c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?s.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):s.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}c<o&&s.issues.push({origin:"number",input:c,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),c>i&&s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Pn=f("$ZodCheckBigIntFormat",(e,t)=>{T.init(e,t);let[r,n]=Ar[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;i<r&&o.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),i>n&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),En=f("$ZodCheckMaxSize",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(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:et(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),In=f("$ZodCheckMinSize",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(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:et(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Tn=f("$ZodCheckSizeEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let s=i>t.size;n.issues.push({origin:et(o),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),An=f("$ZodCheckMaxLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let s=tt(o);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Rn=f("$ZodCheckMinLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let s=tt(o);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Zn=f("$ZodCheckLengthEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ue(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let s=tt(o),c=i>t.length;n.issues.push({origin:s,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Oe=f("$ZodCheckStringFormat",(e,t)=>{var r,n;T.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Cn=f("$ZodCheckRegex",(e,t)=>{Oe.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})}}),Nn=f("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=wn),Oe.init(e,t)}),jn=f("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=zn),Oe.init(e,t)}),On=f("$ZodCheckIncludes",(e,t)=>{T.init(e,t);let r=W(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Ln=f("$ZodCheckStartsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`^${W(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})}}),Mn=f("$ZodCheckEndsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`.*${W(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 Sc(e,t,r){e.issues.length&&t.issues.push(...K(r,e.issues))}var Dn=f("$ZodCheckProperty",(e,t)=>{T.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=>Sc(o,r,t.property));Sc(n,r,t.property)}}),Un=f("$ZodCheckMimeType",(e,t)=>{T.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})}}),Bn=f("$ZodCheckOverwrite",(e,t)=>{T.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var ot=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 jl=Object.defineProperty;var $e=(e,t)=>{for(var r in t)jl(e,r,{get:t[r],enumerable:!0})};import{resolve as Xh}from"node:path";import{fileURLToPath as Qh}from"node:url";function Ee(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;if(r<60)return n>0?`${r}m ${n}s`:`${r}m`;let o=Math.floor(r/60),i=r%60;return i>0?`${o}h ${i}m`:`${o}h`}import{execFileSync as se}from"node:child_process";function Ir(...e){return se("git",e,{encoding:"utf8"}).trim()}function lc(){return Ir("rev-parse","--abbrev-ref","HEAD")}function wt(){try{return se("git",["diff","--quiet"],{stdio:"ignore"}),se("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function Ke(e){try{return se("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Tr(e,t){Ke(e)||Ir("checkout","-b",e,t)}function Z(e,t=!1){Ir("checkout",...t?["-B"]:[],e)}function pc(e){try{return se("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function vt(e){try{return se("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function fc(e,t=8e3){try{let r=se("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 Ye(e){try{return se("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}var x=e=>`\x1B[2m${e}\x1B[0m`,Ie=e=>`\x1B[1m${e}\x1B[0m`;var N=e=>`\x1B[32m${e}\x1B[0m`,Te=e=>`\x1B[31m${e}\x1B[0m`,S=e=>`\x1B[33m${e}\x1B[0m`;function dc(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 Ll,readFileSync as Ml,unlinkSync as mc,writeFileSync as Bl}from"node:fs";import{dirname as Dl,join as kt}from"node:path";function hc(e,t){let r=kt(e,".clancy","lock.json");Ll(Dl(r),{recursive:!0}),Bl(r,JSON.stringify(t,null,2),"utf8")}function zt(e){let t=kt(e,".clancy","lock.json");try{let r=Ml(t,"utf8");return JSON.parse(r)}catch{return}}function St(e){let t=kt(e,".clancy","lock.json");try{mc(t)}catch{}}function Pt(e){let t=kt(e,".clancy","verify-attempt.txt");try{mc(t)}catch{}}function Ul(e){try{return process.kill(e,0),!0}catch(t){return t instanceof Error&&"code"in t&&t.code==="EPERM"}}function gc(e){if(!Ul(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 Ou}from"node:child_process";import{readFileSync as lh}from"node:fs";import{join as ph}from"node:path";var p={};$e(p,{$brand:()=>Rr,$input:()=>fi,$output:()=>pi,NEVER:()=>Ar,TimePrecision:()=>ji,ZodMiniAny:()=>va,ZodMiniArray:()=>Ea,ZodMiniBase64:()=>ha,ZodMiniBase64URL:()=>ga,ZodMiniBigInt:()=>ht,ZodMiniBigIntFormat:()=>Ds,ZodMiniBoolean:()=>mt,ZodMiniCIDRv4:()=>fa,ZodMiniCIDRv6:()=>da,ZodMiniCUID:()=>ia,ZodMiniCUID2:()=>sa,ZodMiniCatch:()=>Ga,ZodMiniCodec:()=>Gs,ZodMiniCustom:()=>qs,ZodMiniCustomStringFormat:()=>ft,ZodMiniDate:()=>or,ZodMiniDefault:()=>Ja,ZodMiniDiscriminatedUnion:()=>Aa,ZodMiniE164:()=>_a,ZodMiniEmail:()=>ta,ZodMiniEmoji:()=>na,ZodMiniEnum:()=>Fs,ZodMiniExactOptional:()=>Ua,ZodMiniFile:()=>Ba,ZodMiniFunction:()=>tu,ZodMiniGUID:()=>ra,ZodMiniIPv4:()=>la,ZodMiniIPv6:()=>pa,ZodMiniISODate:()=>ur,ZodMiniISODateTime:()=>ar,ZodMiniISODuration:()=>pr,ZodMiniISOTime:()=>lr,ZodMiniIntersection:()=>Ra,ZodMiniJWT:()=>ya,ZodMiniKSUID:()=>ua,ZodMiniLazy:()=>Wa,ZodMiniLiteral:()=>Ma,ZodMiniMAC:()=>ma,ZodMiniMap:()=>Oa,ZodMiniNaN:()=>qa,ZodMiniNanoID:()=>oa,ZodMiniNever:()=>za,ZodMiniNonOptional:()=>Ks,ZodMiniNull:()=>xa,ZodMiniNullable:()=>Fa,ZodMiniNumber:()=>dt,ZodMiniNumberFormat:()=>Be,ZodMiniObject:()=>ir,ZodMiniOptional:()=>Js,ZodMiniPipe:()=>Ys,ZodMiniPrefault:()=>Ka,ZodMiniPromise:()=>Qa,ZodMiniReadonly:()=>Ha,ZodMiniRecord:()=>sr,ZodMiniSet:()=>ja,ZodMiniString:()=>Me,ZodMiniStringFormat:()=>A,ZodMiniSuccess:()=>Ya,ZodMiniSymbol:()=>ba,ZodMiniTemplateLiteral:()=>Va,ZodMiniTransform:()=>Da,ZodMiniTuple:()=>Ca,ZodMiniType:()=>k,ZodMiniULID:()=>ca,ZodMiniURL:()=>Bs,ZodMiniUUID:()=>pt,ZodMiniUndefined:()=>$a,ZodMiniUnion:()=>Us,ZodMiniUnknown:()=>ka,ZodMiniVoid:()=>Pa,ZodMiniXID:()=>aa,ZodMiniXor:()=>Ta,_default:()=>fm,_function:()=>Am,any:()=>Bd,array:()=>D,base64:()=>wd,base64url:()=>vd,bigint:()=>Nd,boolean:()=>De,catch:()=>gm,catchall:()=>Xd,check:()=>vm,cidrv4:()=>bd,cidrv6:()=>$d,clone:()=>M,codec:()=>bm,coerce:()=>Vs,config:()=>j,core:()=>Le,cuid:()=>fd,cuid2:()=>dd,custom:()=>eu,date:()=>Ud,decode:()=>en,decodeAsync:()=>rn,describe:()=>Sm,discriminatedUnion:()=>em,e164:()=>kd,email:()=>rd,emoji:()=>ld,encode:()=>Qr,encodeAsync:()=>tn,endsWith:()=>zs,enum:()=>La,exactOptional:()=>lm,extend:()=>gt,file:()=>am,flattenError:()=>Hr,float32:()=>Ad,float64:()=>Rd,formatError:()=>Vr,function:()=>Am,globalRegistry:()=>ne,gt:()=>Qt,gte:()=>at,guid:()=>nd,hash:()=>Id,hex:()=>Ed,hostname:()=>Pd,httpUrl:()=>ud,includes:()=>vs,instanceof:()=>Em,int:()=>Td,int32:()=>Cd,int64:()=>Od,intersection:()=>tm,ipv4:()=>_d,ipv6:()=>yd,iso:()=>Hs,json:()=>Tm,jwt:()=>zd,keyof:()=>Fd,ksuid:()=>gd,lazy:()=>Xa,length:()=>$s,literal:()=>cm,locales:()=>st,looseObject:()=>Kd,looseRecord:()=>nm,lowercase:()=>xs,lt:()=>Xt,lte:()=>ct,mac:()=>xd,map:()=>om,maxLength:()=>bs,maxSize:()=>gs,maximum:()=>ct,merge:()=>Gd,meta:()=>Pm,mime:()=>Ps,minLength:()=>ut,minSize:()=>_s,minimum:()=>at,multipleOf:()=>hs,nan:()=>_m,nanoid:()=>pd,nativeEnum:()=>sm,negative:()=>fs,never:()=>Sa,nonnegative:()=>ms,nonoptional:()=>mm,nonpositive:()=>ds,normalize:()=>Es,null:()=>wa,nullable:()=>cr,nullish:()=>pm,number:()=>_e,object:()=>E,omit:()=>Hd,optional:()=>$,overwrite:()=>de,parse:()=>pe,parseAsync:()=>fe,partial:()=>Vd,partialRecord:()=>rm,pick:()=>qd,pipe:()=>ym,positive:()=>ps,prefault:()=>dm,prettifyError:()=>Xr,promise:()=>wm,property:()=>Ss,readonly:()=>$m,record:()=>Na,refine:()=>km,regex:()=>lt,regexes:()=>X,registry:()=>Vt,required:()=>Wd,safeDecode:()=>on,safeDecodeAsync:()=>cn,safeEncode:()=>nn,safeEncodeAsync:()=>sn,safeExtend:()=>Yd,safeParse:()=>we,safeParseAsync:()=>ve,set:()=>im,size:()=>ys,startsWith:()=>ks,strictObject:()=>Jd,string:()=>b,stringFormat:()=>Sd,stringbool:()=>Im,success:()=>hm,superRefine:()=>zm,symbol:()=>Ld,templateLiteral:()=>xm,toJSONSchema:()=>tr,toLowerCase:()=>Ts,toUpperCase:()=>As,transform:()=>um,treeifyError:()=>Wr,trim:()=>Is,tuple:()=>Za,uint32:()=>Zd,uint64:()=>jd,ulid:()=>md,undefined:()=>Md,union:()=>Ia,unknown:()=>nr,uppercase:()=>ws,url:()=>ad,util:()=>W,uuid:()=>od,uuidv4:()=>id,uuidv6:()=>sd,uuidv7:()=>cd,void:()=>Dd,xid:()=>hd,xor:()=>Qd});var Le={};$e(Le,{$ZodAny:()=>Zo,$ZodArray:()=>Mo,$ZodAsyncError:()=>ee,$ZodBase64:()=>ko,$ZodBase64URL:()=>zo,$ZodBigInt:()=>Kt,$ZodBigIntFormat:()=>To,$ZodBoolean:()=>nt,$ZodCIDRv4:()=>xo,$ZodCIDRv6:()=>wo,$ZodCUID:()=>ao,$ZodCUID2:()=>uo,$ZodCatch:()=>ri,$ZodCheck:()=>T,$ZodCheckBigIntFormat:()=>Ln,$ZodCheckEndsWith:()=>Vn,$ZodCheckGreaterThan:()=>Lt,$ZodCheckIncludes:()=>qn,$ZodCheckLengthEquals:()=>Jn,$ZodCheckLessThan:()=>jt,$ZodCheckLowerCase:()=>Yn,$ZodCheckMaxLength:()=>Un,$ZodCheckMaxSize:()=>Mn,$ZodCheckMimeType:()=>Xn,$ZodCheckMinLength:()=>Fn,$ZodCheckMinSize:()=>Bn,$ZodCheckMultipleOf:()=>On,$ZodCheckNumberFormat:()=>jn,$ZodCheckOverwrite:()=>Qn,$ZodCheckProperty:()=>Wn,$ZodCheckRegex:()=>Kn,$ZodCheckSizeEquals:()=>Dn,$ZodCheckStartsWith:()=>Hn,$ZodCheckStringFormat:()=>Ne,$ZodCheckUpperCase:()=>Gn,$ZodCodec:()=>it,$ZodCustom:()=>li,$ZodCustomStringFormat:()=>Eo,$ZodDate:()=>Lo,$ZodDefault:()=>Xo,$ZodDiscriminatedUnion:()=>Do,$ZodE164:()=>So,$ZodEmail:()=>oo,$ZodEmoji:()=>so,$ZodEncodeError:()=>Ae,$ZodEnum:()=>Yo,$ZodError:()=>qr,$ZodExactOptional:()=>Vo,$ZodFile:()=>qo,$ZodFunction:()=>ci,$ZodGUID:()=>ro,$ZodIPv4:()=>yo,$ZodIPv6:()=>bo,$ZodISODate:()=>ho,$ZodISODateTime:()=>mo,$ZodISODuration:()=>_o,$ZodISOTime:()=>go,$ZodIntersection:()=>Uo,$ZodJWT:()=>Po,$ZodKSUID:()=>fo,$ZodLazy:()=>ui,$ZodLiteral:()=>Go,$ZodMAC:()=>$o,$ZodMap:()=>Jo,$ZodNaN:()=>ni,$ZodNanoID:()=>co,$ZodNever:()=>Oo,$ZodNonOptional:()=>ei,$ZodNull:()=>Co,$ZodNullable:()=>Wo,$ZodNumber:()=>Jt,$ZodNumberFormat:()=>Io,$ZodObject:()=>Yt,$ZodObjectJIT:()=>Lp,$ZodOptional:()=>qt,$ZodPipe:()=>oi,$ZodPrefault:()=>Qo,$ZodPromise:()=>ai,$ZodReadonly:()=>ii,$ZodRealError:()=>Y,$ZodRecord:()=>Fo,$ZodRegistry:()=>Ht,$ZodSet:()=>Ko,$ZodString:()=>Oe,$ZodStringFormat:()=>I,$ZodSuccess:()=>ti,$ZodSymbol:()=>Ao,$ZodTemplateLiteral:()=>si,$ZodTransform:()=>Ho,$ZodTuple:()=>Gt,$ZodType:()=>w,$ZodULID:()=>lo,$ZodURL:()=>io,$ZodUUID:()=>no,$ZodUndefined:()=>Ro,$ZodUnion:()=>ot,$ZodUnknown:()=>No,$ZodVoid:()=>jo,$ZodXID:()=>po,$ZodXor:()=>Bo,$brand:()=>Rr,$constructor:()=>f,$input:()=>fi,$output:()=>pi,Doc:()=>rt,JSONSchema:()=>ea,JSONSchemaGenerator:()=>rr,NEVER:()=>Ar,TimePrecision:()=>ji,_any:()=>os,_array:()=>Fp,_base64:()=>Ci,_base64url:()=>Zi,_bigint:()=>Wi,_boolean:()=>Hi,_catch:()=>af,_check:()=>Qc,_cidrv4:()=>Ai,_cidrv6:()=>Ri,_coercedBigint:()=>Xi,_coercedBoolean:()=>Vi,_coercedDate:()=>us,_coercedNumber:()=>Fi,_coercedString:()=>mi,_cuid:()=>vi,_cuid2:()=>ki,_custom:()=>Cs,_date:()=>as,_decode:()=>kc,_decodeAsync:()=>Sc,_default:()=>of,_discriminatedUnion:()=>Yp,_e164:()=>Ni,_email:()=>hi,_emoji:()=>xi,_encode:()=>vc,_encodeAsync:()=>zc,_endsWith:()=>zs,_enum:()=>Xp,_file:()=>Rs,_float32:()=>Ki,_float64:()=>Yi,_gt:()=>Qt,_gte:()=>at,_guid:()=>gi,_includes:()=>vs,_int:()=>Ji,_int32:()=>Gi,_int64:()=>Qi,_intersection:()=>Gp,_ipv4:()=>Ei,_ipv6:()=>Ii,_isoDate:()=>Mi,_isoDateTime:()=>Li,_isoDuration:()=>Di,_isoTime:()=>Bi,_jwt:()=>Oi,_ksuid:()=>Pi,_lazy:()=>ff,_length:()=>$s,_literal:()=>ef,_lowercase:()=>xs,_lt:()=>Xt,_lte:()=>ct,_mac:()=>Ti,_map:()=>Vp,_max:()=>ct,_maxLength:()=>bs,_maxSize:()=>gs,_mime:()=>Ps,_min:()=>at,_minLength:()=>ut,_minSize:()=>_s,_multipleOf:()=>hs,_nan:()=>ls,_nanoid:()=>wi,_nativeEnum:()=>Qp,_negative:()=>fs,_never:()=>ss,_nonnegative:()=>ms,_nonoptional:()=>sf,_nonpositive:()=>ds,_normalize:()=>Es,_null:()=>ns,_nullable:()=>nf,_number:()=>Ui,_optional:()=>rf,_overwrite:()=>de,_parse:()=>At,_parseAsync:()=>Rt,_pipe:()=>uf,_positive:()=>ps,_promise:()=>df,_property:()=>Ss,_readonly:()=>lf,_record:()=>Hp,_refine:()=>Zs,_regex:()=>lt,_safeDecode:()=>Ec,_safeDecodeAsync:()=>Tc,_safeEncode:()=>Pc,_safeEncodeAsync:()=>Ic,_safeParse:()=>Ct,_safeParseAsync:()=>Zt,_set:()=>Wp,_size:()=>ys,_slugify:()=>Up,_startsWith:()=>ks,_string:()=>di,_stringFormat:()=>je,_stringbool:()=>Ls,_success:()=>cf,_superRefine:()=>Ns,_symbol:()=>ts,_templateLiteral:()=>pf,_toLowerCase:()=>Ts,_toUpperCase:()=>As,_transform:()=>tf,_trim:()=>Is,_tuple:()=>qp,_uint32:()=>qi,_uint64:()=>es,_ulid:()=>zi,_undefined:()=>rs,_union:()=>Jp,_unknown:()=>is,_uppercase:()=>ws,_url:()=>Wt,_uuid:()=>_i,_uuidv4:()=>yi,_uuidv6:()=>bi,_uuidv7:()=>$i,_void:()=>cs,_xid:()=>Si,_xor:()=>Kp,clone:()=>M,config:()=>j,createStandardJSONSchemaMethod:()=>Ms,createToJSONSchemaMethod:()=>mf,decode:()=>en,decodeAsync:()=>rn,describe:()=>Os,encode:()=>Qr,encodeAsync:()=>tn,extractDefs:()=>he,finalize:()=>ge,flattenError:()=>Hr,formatError:()=>Vr,globalConfig:()=>Ge,globalRegistry:()=>ne,initializeContext:()=>me,isValidBase64:()=>vo,isValidBase64URL:()=>qc,isValidJWT:()=>Hc,locales:()=>st,meta:()=>js,parse:()=>pe,parseAsync:()=>fe,prettifyError:()=>Xr,process:()=>P,regexes:()=>X,registry:()=>Vt,safeDecode:()=>on,safeDecodeAsync:()=>cn,safeEncode:()=>nn,safeEncodeAsync:()=>sn,safeParse:()=>we,safeParseAsync:()=>ve,toDotPath:()=>wc,toJSONSchema:()=>tr,treeifyError:()=>Wr,util:()=>W,version:()=>eo});var Ar=Object.freeze({status:"aborted"});function f(e,t,r){function n(c,a){if(c._zod||Object.defineProperty(c,"_zod",{value:{def:a,constr:s,traits:new Set},enumerable:!1}),c._zod.traits.has(e))return;c._zod.traits.add(e),t(c,a);let u=s.prototype,l=Object.keys(u);for(let d=0;d<l.length;d++){let m=l[d];m in c||(c[m]=u[m].bind(c))}}let o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(c){var a;let u=r?.Parent?new i:this;n(u,c),(a=u._zod).deferred??(a.deferred=[]);for(let l of u._zod.deferred)l();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>r?.Parent&&c instanceof r.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var Rr=Symbol("zod_brand"),ee=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ae=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}},Ge={};function j(e){return e&&Object.assign(Ge,e),Ge}var W={};$e(W,{BIGINT_FORMAT_RANGES:()=>Ur,Class:()=>Zr,NUMBER_FORMAT_RANGES:()=>Dr,aborted:()=>le,allowsEval:()=>Lr,assert:()=>Gl,assertEqual:()=>Fl,assertIs:()=>Kl,assertNever:()=>Yl,assertNotEqual:()=>Jl,assignProp:()=>ae,base64ToUint8Array:()=>bc,base64urlToUint8Array:()=>sp,cached:()=>Re,captureStackTrace:()=>It,cleanEnum:()=>ip,cleanRegex:()=>Ve,clone:()=>M,cloneDef:()=>Vl,createTransparentProxy:()=>rp,defineLazy:()=>v,esc:()=>Et,escapeRegex:()=>V,extend:()=>Tt,finalizeIssue:()=>K,floatSafeRemainder:()=>Or,getElementAtPath:()=>Wl,getEnumValues:()=>He,getLengthableOrigin:()=>Qe,getParsedType:()=>tp,getSizableOrigin:()=>Xe,hexToUint8Array:()=>ap,isObject:()=>xe,isPlainObject:()=>ue,issue:()=>Ze,joinValues:()=>ql,jsonStringifyReplacer:()=>Nr,merge:()=>np,mergeDefs:()=>oe,normalizeParams:()=>g,nullish:()=>ce,numKeys:()=>ep,objectClone:()=>Hl,omit:()=>Jr,optionalKeys:()=>Br,parsedType:()=>op,partial:()=>Yr,pick:()=>Fr,prefixIssues:()=>G,primitiveTypes:()=>Mr,promiseAllObject:()=>Xl,propertyKeyTypes:()=>We,randomString:()=>Ql,required:()=>Gr,safeExtend:()=>Kr,shallowClone:()=>Ce,slugify:()=>jr,stringifyPrimitive:()=>yc,uint8ArrayToBase64:()=>$c,uint8ArrayToBase64url:()=>cp,uint8ArrayToHex:()=>up,unwrapMessage:()=>qe});function Fl(e){return e}function Jl(e){return e}function Kl(e){}function Yl(e){throw new Error("Unexpected value in exhaustive check")}function Gl(e){}function He(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 ql(e,t="|"){return e.map(r=>yc(r)).join(t)}function Nr(e,t){return typeof t=="bigint"?t.toString():t}function Re(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ce(e){return e==null}function Ve(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Or(e,t){let r=(e.toString().split(".")[1]||"").length,n=t.toString(),o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){let a=n.match(/\d?e-(\d?)/);a?.[1]&&(o=Number.parseInt(a[1]))}let i=r>o?r:o,s=Number.parseInt(e.toFixed(i).replace(".","")),c=Number.parseInt(t.toFixed(i).replace(".",""));return s%c/10**i}var _c=Symbol("evaluating");function v(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==_c)return n===void 0&&(n=_c,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Hl(e){return Object.create(Object.getPrototypeOf(e),Object.getOwnPropertyDescriptors(e))}function ae(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function oe(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function Vl(e){return oe(e._zod.def)}function Wl(e,t){return t?t.reduce((r,n)=>r?.[n],e):e}function Xl(e){let t=Object.keys(e),r=t.map(n=>e[n]);return Promise.all(r).then(n=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=n[i];return o})}function Ql(e=10){let t="abcdefghijklmnopqrstuvwxyz",r="";for(let n=0;n<e;n++)r+=t[Math.floor(Math.random()*t.length)];return r}function Et(e){return JSON.stringify(e)}function jr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var It="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function xe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Lr=Re(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function ue(e){if(xe(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(xe(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ce(e){return ue(e)?{...e}:Array.isArray(e)?[...e]:e}function ep(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var tp=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},We=new Set(["string","number","symbol"]),Mr=new Set(["string","number","bigint","boolean","symbol","undefined"]);function V(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(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 rp(e){let t;return new Proxy({},{get(r,n,o){return t??(t=e()),Reflect.get(t,n,o)},set(r,n,o,i){return t??(t=e()),Reflect.set(t,n,o,i)},has(r,n){return t??(t=e()),Reflect.has(t,n)},deleteProperty(r,n){return t??(t=e()),Reflect.deleteProperty(t,n)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,n){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,n)},defineProperty(r,n,o){return t??(t=e()),Reflect.defineProperty(t,n,o)}})}function yc(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Br(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Dr={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Ur={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function Fr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let i=oe(e._zod.def,{get shape(){let s={};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&(s[c]=r.shape[c])}return ae(this,"shape",s),s},checks:[]});return M(e,i)}function Jr(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let i=oe(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let c in t){if(!(c in r.shape))throw new Error(`Unrecognized key: "${c}"`);t[c]&&delete s[c]}return ae(this,"shape",s),s},checks:[]});return M(e,i)}function Tt(e,t){if(!ue(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let i=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(i,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let o=oe(e._zod.def,{get shape(){let i={...e._zod.def.shape,...t};return ae(this,"shape",i),i}});return M(e,o)}function Kr(e,t){if(!ue(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=oe(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return ae(this,"shape",n),n}});return M(e,r)}function np(e,t){let r=oe(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return ae(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:[]});return M(e,r)}function Yr(e,t,r){let o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let s=oe(t._zod.def,{get shape(){let c=t._zod.def.shape,a={...c};if(r)for(let u in r){if(!(u in c))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(a[u]=e?new e({type:"optional",innerType:c[u]}):c[u])}else for(let u in c)a[u]=e?new e({type:"optional",innerType:c[u]}):c[u];return ae(this,"shape",a),a},checks:[]});return M(t,s)}function Gr(e,t,r){let n=oe(t._zod.def,{get shape(){let o=t._zod.def.shape,i={...o};if(r)for(let s in r){if(!(s in i))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=new e({type:"nonoptional",innerType:o[s]}))}else for(let s in o)i[s]=new e({type:"nonoptional",innerType:o[s]});return ae(this,"shape",i),i}});return M(t,n)}function le(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 G(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function qe(e){return typeof e=="string"?e:e?.message}function K(e,t,r){let n={...e,path:e.path??[]};if(!e.message){let o=qe(e.inst?._zod.def?.error?.(e))??qe(t?.error?.(e))??qe(r.customError?.(e))??qe(r.localeError?.(e))??"Invalid input";n.message=o}return delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function Xe(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Qe(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function op(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 Ze(...e){let[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}function ip(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function bc(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 $c(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t)}function sp(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r="=".repeat((4-t.length%4)%4);return bc(t+r)}function cp(e){return $c(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function ap(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 up(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}var Zr=class{constructor(...t){}};var xc=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Nr,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},qr=f("$ZodError",xc),Y=f("$ZodError",xc,{Parent:Error});function Hr(e,t=r=>r.message){let r={},n=[];for(let o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function Vr(e,t=r=>r.message){let r={_errors:[]},n=o=>{for(let i of o.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(s=>n({issues:s}));else if(i.code==="invalid_key")n({issues:i.issues});else if(i.code==="invalid_element")n({issues:i.issues});else if(i.path.length===0)r._errors.push(t(i));else{let s=r,c=0;for(;c<i.path.length;){let a=i.path[c];c===i.path.length-1?(s[a]=s[a]||{_errors:[]},s[a]._errors.push(t(i))):s[a]=s[a]||{_errors:[]},s=s[a],c++}}};return n(e),r}function Wr(e,t=r=>r.message){let r={errors:[]},n=(o,i=[])=>{var s,c;for(let a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(u=>n({issues:u},a.path));else if(a.code==="invalid_key")n({issues:a.issues},a.path);else if(a.code==="invalid_element")n({issues:a.issues},a.path);else{let u=[...i,...a.path];if(u.length===0){r.errors.push(t(a));continue}let l=r,d=0;for(;d<u.length;){let m=u[d],h=d===u.length-1;typeof m=="string"?(l.properties??(l.properties={}),(s=l.properties)[m]??(s[m]={errors:[]}),l=l.properties[m]):(l.items??(l.items=[]),(c=l.items)[m]??(c[m]={errors:[]}),l=l.items[m]),h&&l.errors.push(t(a)),d++}}};return n(e),r}function wc(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 Xr(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 ${wc(n.path)}`);return t.join(`
3
+ `)}var At=e=>(t,r,n,o)=>{let i=n?Object.assign(n,{async:!1}):{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new ee;if(s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>K(a,i,j())));throw It(c,o?.callee),c}return s.value},pe=At(Y),Rt=e=>async(t,r,n,o)=>{let i=n?Object.assign(n,{async:!0}):{async:!0},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(o?.Err??e)(s.issues.map(a=>K(a,i,j())));throw It(c,o?.callee),c}return s.value},fe=Rt(Y),Ct=e=>(t,r,n)=>{let o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new ee;return i.issues.length?{success:!1,error:new(e??qr)(i.issues.map(s=>K(s,o,j())))}:{success:!0,data:i.value}},we=Ct(Y),Zt=e=>async(t,r,n)=>{let o=n?Object.assign(n,{async:!0}):{async:!0},i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>K(s,o,j())))}:{success:!0,data:i.value}},ve=Zt(Y),vc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return At(e)(t,r,o)},Qr=vc(Y),kc=e=>(t,r,n)=>At(e)(t,r,n),en=kc(Y),zc=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Rt(e)(t,r,o)},tn=zc(Y),Sc=e=>async(t,r,n)=>Rt(e)(t,r,n),rn=Sc(Y),Pc=e=>(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Ct(e)(t,r,o)},nn=Pc(Y),Ec=e=>(t,r,n)=>Ct(e)(t,r,n),on=Ec(Y),Ic=e=>async(t,r,n)=>{let o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return Zt(e)(t,r,o)},sn=Ic(Y),Tc=e=>async(t,r,n)=>Zt(e)(t,r,n),cn=Tc(Y);var X={};$e(X,{base64:()=>vn,base64url:()=>Nt,bigint:()=>In,boolean:()=>An,browserEmail:()=>yp,cidrv4:()=>xn,cidrv6:()=>wn,cuid:()=>an,cuid2:()=>un,date:()=>zn,datetime:()=>Pn,domain:()=>xp,duration:()=>mn,e164:()=>kn,email:()=>gn,emoji:()=>_n,extendedDuration:()=>pp,guid:()=>hn,hex:()=>wp,hostname:()=>$p,html5Email:()=>hp,idnEmail:()=>_p,integer:()=>Tn,ipv4:()=>yn,ipv6:()=>bn,ksuid:()=>fn,lowercase:()=>Zn,mac:()=>$n,md5_base64:()=>kp,md5_base64url:()=>zp,md5_hex:()=>vp,nanoid:()=>dn,null:()=>Rn,number:()=>Ot,rfc5322Email:()=>gp,sha1_base64:()=>Pp,sha1_base64url:()=>Ep,sha1_hex:()=>Sp,sha256_base64:()=>Tp,sha256_base64url:()=>Ap,sha256_hex:()=>Ip,sha384_base64:()=>Cp,sha384_base64url:()=>Zp,sha384_hex:()=>Rp,sha512_base64:()=>Op,sha512_base64url:()=>jp,sha512_hex:()=>Np,string:()=>En,time:()=>Sn,ulid:()=>ln,undefined:()=>Cn,unicodeEmail:()=>Ac,uppercase:()=>Nn,uuid:()=>ke,uuid4:()=>fp,uuid6:()=>dp,uuid7:()=>mp,xid:()=>pn});var an=/^[cC][^\s-]{8,}$/,un=/^[0-9a-z]+$/,ln=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,pn=/^[0-9a-vA-V]{20}$/,fn=/^[A-Za-z0-9]{27}$/,dn=/^[a-zA-Z0-9_-]{21}$/,mn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,pp=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,hn=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,ke=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)$/,fp=ke(4),dp=ke(6),mp=ke(7),gn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,hp=/^[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])?)*$/,gp=/^(([^<>()\[\]\\.,;:\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,}))$/,Ac=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,_p=Ac,yp=/^[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])?)*$/,bp="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function _n(){return new RegExp(bp,"u")}var yn=/^(?:(?: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])$/,bn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,$n=e=>{let t=V(e??":");return new RegExp(`^(?:[0-9A-F]{2}${t}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${t}){5}[0-9a-f]{2}$`)},xn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,wn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,vn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Nt=/^[A-Za-z0-9_-]*$/,$p=/^(?=.{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])?)*\.?$/,xp=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,kn=/^\+[1-9]\d{6,14}$/,Rc="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",zn=new RegExp(`^${Rc}$`);function Cc(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Sn(e){return new RegExp(`^${Cc(e)}$`)}function Pn(e){let t=Cc({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(`^${Rc}T(?:${n})$`)}var En=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},In=/^-?\d+n?$/,Tn=/^-?\d+$/,Ot=/^-?\d+(?:\.\d+)?$/,An=/^(?:true|false)$/i,Rn=/^null$/i;var Cn=/^undefined$/i;var Zn=/^[^A-Z]*$/,Nn=/^[^a-z]*$/,wp=/^[0-9a-fA-F]*$/;function et(e,t){return new RegExp(`^[A-Za-z0-9+/]{${e}}${t}$`)}function tt(e){return new RegExp(`^[A-Za-z0-9_-]{${e}}$`)}var vp=/^[0-9a-fA-F]{32}$/,kp=et(22,"=="),zp=tt(22),Sp=/^[0-9a-fA-F]{40}$/,Pp=et(27,"="),Ep=tt(27),Ip=/^[0-9a-fA-F]{64}$/,Tp=et(43,"="),Ap=tt(43),Rp=/^[0-9a-fA-F]{96}$/,Cp=et(64,""),Zp=tt(64),Np=/^[0-9a-fA-F]{128}$/,Op=et(86,"=="),jp=tt(86);var T=f("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Nc={number:"number",bigint:"bigint",object:"date"},jt=f("$ZodCheckLessThan",(e,t)=>{T.init(e,t);let r=Nc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Lt=f("$ZodCheckGreaterThan",(e,t)=>{T.init(e,t);let r=Nc[typeof t.value];e._zod.onattach.push(n=>{let o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),On=f("$ZodCheckMultipleOf",(e,t)=>{T.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):Or(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),jn=f("$ZodCheckNumberFormat",(e,t)=>{T.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Dr[t.format];e._zod.onattach.push(s=>{let c=s._zod.bag;c.format=t.format,c.minimum=o,c.maximum=i,r&&(c.pattern=Tn)}),e._zod.check=s=>{let c=s.value;if(r){if(!Number.isInteger(c)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:c,inst:e});return}if(!Number.isSafeInteger(c)){c>0?s.issues.push({input:c,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):s.issues.push({input:c,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}c<o&&s.issues.push({origin:"number",input:c,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),c>i&&s.issues.push({origin:"number",input:c,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ln=f("$ZodCheckBigIntFormat",(e,t)=>{T.init(e,t);let[r,n]=Ur[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=r,i.maximum=n}),e._zod.check=o=>{let i=o.value;i<r&&o.issues.push({origin:"bigint",input:i,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),i>n&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:n,inclusive:!0,inst:e,continue:!t.abort})}}),Mn=f("$ZodCheckMaxSize",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(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:Xe(o),code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Bn=f("$ZodCheckMinSize",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(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:Xe(o),code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Dn=f("$ZodCheckSizeEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(o)&&o.size!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=n=>{let o=n.value,i=o.size;if(i===t.size)return;let s=i>t.size;n.issues.push({origin:Xe(o),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Un=f("$ZodCheckMaxLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let o=n.value;if(o.length<=t.maximum)return;let s=Qe(o);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Fn=f("$ZodCheckMinLength",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let o=n.value;if(o.length>=t.minimum)return;let s=Qe(o);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Jn=f("$ZodCheckLengthEquals",(e,t)=>{var r;T.init(e,t),(r=e._zod.def).when??(r.when=n=>{let o=n.value;return!ce(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{let o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{let o=n.value,i=o.length;if(i===t.length)return;let s=Qe(o),c=i>t.length;n.issues.push({origin:s,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Ne=f("$ZodCheckStringFormat",(e,t)=>{var r,n;T.init(e,t),e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Kn=f("$ZodCheckRegex",(e,t)=>{Ne.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})}}),Yn=f("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Zn),Ne.init(e,t)}),Gn=f("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Nn),Ne.init(e,t)}),qn=f("$ZodCheckIncludes",(e,t)=>{T.init(e,t);let r=V(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),Hn=f("$ZodCheckStartsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`^${V(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{let o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Vn=f("$ZodCheckEndsWith",(e,t)=>{T.init(e,t);let r=new RegExp(`.*${V(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 Zc(e,t,r){e.issues.length&&t.issues.push(...G(r,e.issues))}var Wn=f("$ZodCheckProperty",(e,t)=>{T.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=>Zc(o,r,t.property));Zc(n,r,t.property)}}),Xn=f("$ZodCheckMimeType",(e,t)=>{T.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})}}),Qn=f("$ZodCheckOverwrite",(e,t)=>{T.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var rt=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let n=t.split(`
3
4
  `).filter(s=>s),o=Math.min(...n.map(s=>s.length-s.trimStart().length)),i=n.map(s=>s.slice(o)).map(s=>" ".repeat(this.indent*2)+s);for(let s of i)this.content.push(s)}compile(){let t=Function,r=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...r,o.join(`
4
- `))}};var Fn={major:4,minor:3,patch:6};var $=f("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Fn;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(s,c,a)=>{let u=fe(s),p;for(let d of c){if(d._zod.def.when){if(!d._zod.def.when(s))continue}else if(u)continue;let m=s.issues.length,h=d._zod.check(s);if(h instanceof Promise&&a?.async===!1)throw new ne;if(p||h instanceof Promise)p=(p??Promise.resolve()).then(async()=>{await h,s.issues.length!==m&&(u||(u=fe(s,m)))});else{if(s.issues.length===m)continue;u||(u=fe(s,m))}}return p?p.then(()=>s):s},i=(s,c,a)=>{if(fe(s))return s.aborted=!0,s;let u=o(c,n,a);if(u instanceof Promise){if(a.async===!1)throw new ne;return u.then(p=>e._zod.parse(p,a))}return e._zod.parse(u,a)};e._zod.run=(s,c)=>{if(c.skipChecks)return e._zod.parse(s,c);if(c.direction==="backward"){let u=e._zod.parse({value:s.value,issues:[]},{...c,skipChecks:!0});return u instanceof Promise?u.then(p=>i(p,s,c)):i(u,s,c)}let a=e._zod.parse(s,c);if(a instanceof Promise){if(c.async===!1)throw new ne;return a.then(u=>o(u,n,c))}return o(a,n,c)}}w(e,"~standard",()=>({validate:o=>{try{let i=ke(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Se(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Le=f("$ZodString",(e,t)=>{$.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??_n(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}}),I=f("$ZodStringFormat",(e,t)=>{Oe.init(e,t),Le.init(e,t)}),qn=f("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=nn),I.init(e,t)}),Gn=f("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Pe(n))}else t.pattern??(t.pattern=Pe());I.init(e,t)}),Yn=f("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=on),I.init(e,t)}),Hn=f("$ZodURL",(e,t)=>{I.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})}}}),Kn=f("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=sn()),I.init(e,t)}),Vn=f("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=tn),I.init(e,t)}),Wn=f("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Vr),I.init(e,t)}),Xn=f("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Wr),I.init(e,t)}),Qn=f("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Xr),I.init(e,t)}),eo=f("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Qr),I.init(e,t)}),to=f("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=en),I.init(e,t)}),ro=f("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=gn(t)),I.init(e,t)}),no=f("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=mn),I.init(e,t)}),oo=f("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=hn(t)),I.init(e,t)}),io=f("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=rn),I.init(e,t)}),so=f("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=cn),I.init(e,t),e._zod.bag.format="ipv4"}),co=f("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=an),I.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})}}}),ao=f("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=un(t.delimiter)),I.init(e,t),e._zod.bag.format="mac"}),uo=f("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ln),I.init(e,t)}),lo=f("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=pn),I.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function po(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var fo=f("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=fn),I.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{po(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Dc(e){if(!Rt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return po(r)}var mo=f("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Rt),I.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Dc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),ho=f("$ZodE164",(e,t)=>{t.pattern??(t.pattern=dn),I.init(e,t)});function Uc(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 go=f("$ZodJWT",(e,t)=>{I.init(e,t),e._zod.check=r=>{Uc(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),_o=f("$ZodCustomStringFormat",(e,t)=>{I.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})}}),Ut=f("$ZodNumber",(e,t)=>{$.init(e,t),e._zod.pattern=e._zod.bag.pattern??Zt,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),bo=f("$ZodNumberFormat",(e,t)=>{Sn.init(e,t),Ut.init(e,t)}),it=f("$ZodBoolean",(e,t)=>{$.init(e,t),e._zod.pattern=xn,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}}),Bt=f("$ZodBigInt",(e,t)=>{$.init(e,t),e._zod.pattern=bn,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}}),yo=f("$ZodBigIntFormat",(e,t)=>{Pn.init(e,t),Bt.init(e,t)}),xo=f("$ZodSymbol",(e,t)=>{$.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}}),$o=f("$ZodUndefined",(e,t)=>{$.init(e,t),e._zod.pattern=vn,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}}),vo=f("$ZodNull",(e,t)=>{$.init(e,t),e._zod.pattern=$n,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}}),wo=f("$ZodAny",(e,t)=>{$.init(e,t),e._zod.parse=r=>r}),zo=f("$ZodUnknown",(e,t)=>{$.init(e,t),e._zod.parse=r=>r}),ko=f("$ZodNever",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),So=f("$ZodVoid",(e,t)=>{$.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}}),Po=f("$ZodDate",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function Ic(e,t,r){e.issues.length&&t.issues.push(...K(r,e.issues)),t.value[r]=e.value}var Eo=f("$ZodArray",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let c=o[s],a=t.element._zod.run({value:c,issues:[]},n);a instanceof Promise?i.push(a.then(u=>Ic(u,r,s))):Ic(a,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Dt(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...K(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Bc(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=Ir(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Fc(e,t,r,n,o,i){let s=[],c=o.keySet,a=o.catchall._zod,u=a.def.type,p=a.optout==="optional";for(let d in t){if(c.has(d))continue;if(u==="never"){s.push(d);continue}let m=a.run({value:t[d],issues:[]},n);m instanceof Promise?e.push(m.then(h=>Dt(h,r,d,t,p))):Dt(m,r,d,t,p)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Ft=f("$ZodObject",(e,t)=>{if($.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let c=t.shape;Object.defineProperty(t,"shape",{get:()=>{let a={...c};return Object.defineProperty(t,"shape",{value:a}),a}})}let n=Ce(()=>Bc(t));w(e._zod,"propValues",()=>{let c=t.shape,a={};for(let u in c){let p=c[u]._zod;if(p.values){a[u]??(a[u]=new Set);for(let d of p.values)a[u].add(d)}}return a});let o=ze,i=t.catchall,s;e._zod.parse=(c,a)=>{s??(s=n.value);let u=c.value;if(!o(u))return c.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),c;c.value={};let p=[],d=s.shape;for(let m of s.keys){let h=d[m],b=h._zod.optout==="optional",g=h._zod.run({value:u[m],issues:[]},a);g instanceof Promise?p.push(g.then(v=>Dt(v,c,m,u,b))):Dt(g,c,m,u,b)}return i?Fc(p,u,c,a,n.value,e):p.length?Promise.all(p).then(()=>c):c}}),vp=f("$ZodObjectJIT",(e,t)=>{Ft.init(e,t);let r=e._zod.parse,n=Ce(()=>Bc(t)),o=m=>{let h=new ot(["shape","payload","ctx"]),b=n.value,g=S=>{let N=kt(S);return`shape[${N}]._zod.run({ value: input[${N}], issues: [] }, ctx)`};h.write("const input = payload.value;");let v=Object.create(null),te=0;for(let S of b.keys)v[S]=`key_${te++}`;h.write("const newResult = {};");for(let S of b.keys){let N=v[S],j=kt(S),ae=m[S]?._zod?.optout==="optional";h.write(`const ${N} = ${g(S)};`),ae?h.write(`
5
- if (${N}.issues.length) {
6
- if (${j} in input) {
7
- payload.issues = payload.issues.concat(${N}.issues.map(iss => ({
5
+ `))}};var eo={major:4,minor:3,patch:6};var w=f("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=eo;let n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(let o of n)for(let i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(s,c,a)=>{let u=le(s),l;for(let d of c){if(d._zod.def.when){if(!d._zod.def.when(s))continue}else if(u)continue;let m=s.issues.length,h=d._zod.check(s);if(h instanceof Promise&&a?.async===!1)throw new ee;if(l||h instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await h,s.issues.length!==m&&(u||(u=le(s,m)))});else{if(s.issues.length===m)continue;u||(u=le(s,m))}}return l?l.then(()=>s):s},i=(s,c,a)=>{if(le(s))return s.aborted=!0,s;let u=o(c,n,a);if(u instanceof Promise){if(a.async===!1)throw new ee;return u.then(l=>e._zod.parse(l,a))}return e._zod.parse(u,a)};e._zod.run=(s,c)=>{if(c.skipChecks)return e._zod.parse(s,c);if(c.direction==="backward"){let u=e._zod.parse({value:s.value,issues:[]},{...c,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,s,c)):i(u,s,c)}let a=e._zod.parse(s,c);if(a instanceof Promise){if(c.async===!1)throw new ee;return a.then(u=>o(u,n,c))}return o(a,n,c)}}v(e,"~standard",()=>({validate:o=>{try{let i=we(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ve(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),Oe=f("$ZodString",(e,t)=>{w.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??En(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}}),I=f("$ZodStringFormat",(e,t)=>{Ne.init(e,t),Oe.init(e,t)}),ro=f("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=hn),I.init(e,t)}),no=f("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=ke(n))}else t.pattern??(t.pattern=ke());I.init(e,t)}),oo=f("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=gn),I.init(e,t)}),io=f("$ZodURL",(e,t)=>{I.init(e,t),e._zod.check=r=>{try{let n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),so=f("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=_n()),I.init(e,t)}),co=f("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=dn),I.init(e,t)}),ao=f("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=an),I.init(e,t)}),uo=f("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=un),I.init(e,t)}),lo=f("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ln),I.init(e,t)}),po=f("$ZodXID",(e,t)=>{t.pattern??(t.pattern=pn),I.init(e,t)}),fo=f("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=fn),I.init(e,t)}),mo=f("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Pn(t)),I.init(e,t)}),ho=f("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=zn),I.init(e,t)}),go=f("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Sn(t)),I.init(e,t)}),_o=f("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=mn),I.init(e,t)}),yo=f("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=yn),I.init(e,t),e._zod.bag.format="ipv4"}),bo=f("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=bn),I.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),$o=f("$ZodMAC",(e,t)=>{t.pattern??(t.pattern=$n(t.delimiter)),I.init(e,t),e._zod.bag.format="mac"}),xo=f("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=xn),I.init(e,t)}),wo=f("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=wn),I.init(e,t),e._zod.check=r=>{let n=r.value.split("/");try{if(n.length!==2)throw new Error;let[o,i]=n;if(!i)throw new Error;let s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function vo(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var ko=f("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=vn),I.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{vo(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function qc(e){if(!Nt.test(e))return!1;let t=e.replace(/[-_]/g,n=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return vo(r)}var zo=f("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Nt),I.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{qc(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),So=f("$ZodE164",(e,t)=>{t.pattern??(t.pattern=kn),I.init(e,t)});function Hc(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Po=f("$ZodJWT",(e,t)=>{I.init(e,t),e._zod.check=r=>{Hc(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Eo=f("$ZodCustomStringFormat",(e,t)=>{I.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})}}),Jt=f("$ZodNumber",(e,t)=>{w.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ot,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}let o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Io=f("$ZodNumberFormat",(e,t)=>{jn.init(e,t),Jt.init(e,t)}),nt=f("$ZodBoolean",(e,t)=>{w.init(e,t),e._zod.pattern=An,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}}),Kt=f("$ZodBigInt",(e,t)=>{w.init(e,t),e._zod.pattern=In,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}}),To=f("$ZodBigIntFormat",(e,t)=>{Ln.init(e,t),Kt.init(e,t)}),Ao=f("$ZodSymbol",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o=="symbol"||r.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),r}}),Ro=f("$ZodUndefined",(e,t)=>{w.init(e,t),e._zod.pattern=Cn,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),r}}),Co=f("$ZodNull",(e,t)=>{w.init(e,t),e._zod.pattern=Rn,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let o=r.value;return o===null||r.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),r}}),Zo=f("$ZodAny",(e,t)=>{w.init(e,t),e._zod.parse=r=>r}),No=f("$ZodUnknown",(e,t)=>{w.init(e,t),e._zod.parse=r=>r}),Oo=f("$ZodNever",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)}),jo=f("$ZodVoid",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return typeof o>"u"||r.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),r}}),Lo=f("$ZodDate",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=new Date(r.value)}catch{}let o=r.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||r.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),r}});function jc(e,t,r){e.issues.length&&t.issues.push(...G(r,e.issues)),t.value[r]=e.value}var Mo=f("$ZodArray",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let c=o[s],a=t.element._zod.run({value:c,issues:[]},n);a instanceof Promise?i.push(a.then(u=>jc(u,r,s))):jc(a,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Ft(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...G(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function Vc(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=Br(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function Wc(e,t,r,n,o,i){let s=[],c=o.keySet,a=o.catchall._zod,u=a.def.type,l=a.optout==="optional";for(let d in t){if(c.has(d))continue;if(u==="never"){s.push(d);continue}let m=a.run({value:t[d],issues:[]},n);m instanceof Promise?e.push(m.then(h=>Ft(h,r,d,t,l))):Ft(m,r,d,t,l)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Yt=f("$ZodObject",(e,t)=>{if(w.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let c=t.shape;Object.defineProperty(t,"shape",{get:()=>{let a={...c};return Object.defineProperty(t,"shape",{value:a}),a}})}let n=Re(()=>Vc(t));v(e._zod,"propValues",()=>{let c=t.shape,a={};for(let u in c){let l=c[u]._zod;if(l.values){a[u]??(a[u]=new Set);for(let d of l.values)a[u].add(d)}}return a});let o=xe,i=t.catchall,s;e._zod.parse=(c,a)=>{s??(s=n.value);let u=c.value;if(!o(u))return c.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),c;c.value={};let l=[],d=s.shape;for(let m of s.keys){let h=d[m],y=h._zod.optout==="optional",_=h._zod.run({value:u[m],issues:[]},a);_ instanceof Promise?l.push(_.then(z=>Ft(z,c,m,u,y))):Ft(_,c,m,u,y)}return i?Wc(l,u,c,a,n.value,e):l.length?Promise.all(l).then(()=>c):c}}),Lp=f("$ZodObjectJIT",(e,t)=>{Yt.init(e,t);let r=e._zod.parse,n=Re(()=>Vc(t)),o=m=>{let h=new rt(["shape","payload","ctx"]),y=n.value,_=R=>{let O=Et(R);return`shape[${O}]._zod.run({ value: input[${O}], issues: [] }, ctx)`};h.write("const input = payload.value;");let z=Object.create(null),F=0;for(let R of y.keys)z[R]=`key_${F++}`;h.write("const newResult = {};");for(let R of y.keys){let O=z[R],J=Et(R),Er=m[R]?._zod?.optout==="optional";h.write(`const ${O} = ${_(R)};`),Er?h.write(`
6
+ if (${O}.issues.length) {
7
+ if (${J} in input) {
8
+ payload.issues = payload.issues.concat(${O}.issues.map(iss => ({
8
9
  ...iss,
9
- path: iss.path ? [${j}, ...iss.path] : [${j}]
10
+ path: iss.path ? [${J}, ...iss.path] : [${J}]
10
11
  })));
11
12
  }
12
13
  }
13
14
 
14
- if (${N}.value === undefined) {
15
- if (${j} in input) {
16
- newResult[${j}] = undefined;
15
+ if (${O}.value === undefined) {
16
+ if (${J} in input) {
17
+ newResult[${J}] = undefined;
17
18
  }
18
19
  } else {
19
- newResult[${j}] = ${N}.value;
20
+ newResult[${J}] = ${O}.value;
20
21
  }
21
22
 
22
23
  `):h.write(`
23
- if (${N}.issues.length) {
24
- payload.issues = payload.issues.concat(${N}.issues.map(iss => ({
24
+ if (${O}.issues.length) {
25
+ payload.issues = payload.issues.concat(${O}.issues.map(iss => ({
25
26
  ...iss,
26
- path: iss.path ? [${j}, ...iss.path] : [${j}]
27
+ path: iss.path ? [${J}, ...iss.path] : [${J}]
27
28
  })));
28
29
  }
29
30
 
30
- if (${N}.value === undefined) {
31
- if (${j} in input) {
32
- newResult[${j}] = undefined;
31
+ if (${O}.value === undefined) {
32
+ if (${J} in input) {
33
+ newResult[${J}] = undefined;
33
34
  }
34
35
  } else {
35
- newResult[${j}] = ${N}.value;
36
+ newResult[${J}] = ${O}.value;
36
37
  }
37
38
 
38
- `)}h.write("payload.value = newResult;"),h.write("return payload;");let Z=h.compile();return(S,N)=>Z(m,S,N)},i,s=ze,c=!Ke.jitless,u=c&&Pr.value,p=t.catchall,d;e._zod.parse=(m,h)=>{d??(d=n.value);let b=m.value;return s(b)?c&&u&&h?.async===!1&&h.jitless!==!0?(i||(i=o(t.shape)),m=i(m,h),p?Fc([],b,m,h,d,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:b,inst:e}),m)}});function Tc(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!fe(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>q(s,n,L())))}),t)}var st=f("$ZodUnion",(e,t)=>{$.init(e,t),w(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),w(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),w(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),w(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Xe(i.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)c.push(u),s=!0;else{if(u.issues.length===0)return u;c.push(u)}}return s?Promise.all(c).then(a=>Tc(a,o,e,i)):Tc(c,o,e,i)}});function Ac(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>q(s,n,L())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var Io=f("$ZodXor",(e,t)=>{st.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(c.push(u),s=!0):c.push(u)}return s?Promise.all(c).then(a=>Ac(a,o,e,i)):Ac(c,o,e,i)}}),To=f("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,st.init(e,t);let r=e._zod.parse;w(e._zod,"propValues",()=>{let o={};for(let i of t.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let[c,a]of Object.entries(s)){o[c]||(o[c]=new Set);for(let u of a)o[c].add(u)}}return o});let n=Ce(()=>{let o=t.options,i=new Map;for(let s of o){let c=s._zod.propValues?.[t.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let a of c){if(i.has(a))throw new Error(`Duplicate discriminator value "${String(a)}"`);i.set(a,s)}}return i});e._zod.parse=(o,i)=>{let s=o.value;if(!ze(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let c=n.value.get(s?.[t.discriminator]);return c?c._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:s,path:[t.discriminator],inst:e}),o)}}),Ao=f("$ZodIntersection",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,i=t.left._zod.run({value:o,issues:[]},n),s=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([a,u])=>Rc(r,a,u)):Rc(r,i,s)}});function Jn(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(pe(e)&&pe(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let s=Jn(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],i=t[n],s=Jn(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Rc(e,t,r){let n=new Map,o;for(let c of t.issues)if(c.code==="unrecognized_keys"){o??(o=c);for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).l=!0}else e.issues.push(c);for(let c of r.issues)if(c.code==="unrecognized_keys")for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).r=!0;else e.issues.push(c);let i=[...n].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(i.length&&o&&e.issues.push({...o,keys:i}),fe(e))return e;let s=Jn(t.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var Jt=f("$ZodTuple",(e,t)=>{$.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let s=[],c=[...r].reverse().findIndex(p=>p._zod.optin!=="optional"),a=c===-1?0:r.length-c;if(!t.rest){let p=i.length>r.length,d=i.length<a-1;if(p||d)return n.issues.push({...p?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:i,inst:e,origin:"array"}),n}let u=-1;for(let p of r){if(u++,u>=i.length&&u>=a)continue;let d=p._zod.run({value:i[u],issues:[]},o);d instanceof Promise?s.push(d.then(m=>jt(m,n,u))):jt(d,n,u)}if(t.rest){let p=i.slice(r.length);for(let d of p){u++;let m=t.rest._zod.run({value:d,issues:[]},o);m instanceof Promise?s.push(m.then(h=>jt(h,n,u))):jt(m,n,u)}}return s.length?Promise.all(s).then(()=>n):n}});function jt(e,t,r){e.issues.length&&t.issues.push(...K(r,e.issues)),t.value[r]=e.value}var Ro=f("$ZodRecord",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!pe(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],s=t.keyType._zod.values;if(s){r.value={};let c=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){c.add(typeof u=="number"?u.toString():u);let p=t.valueType._zod.run({value:o[u],issues:[]},n);p instanceof Promise?i.push(p.then(d=>{d.issues.length&&r.issues.push(...K(u,d.issues)),r.value[u]=d.value})):(p.issues.length&&r.issues.push(...K(u,p.issues)),r.value[u]=p.value)}let a;for(let u in o)c.has(u)||(a=a??[],a.push(u));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{r.value={};for(let c of Reflect.ownKeys(o)){if(c==="__proto__")continue;let a=t.keyType._zod.run({value:c,issues:[]},n);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&Zt.test(c)&&a.issues.length){let d=t.keyType._zod.run({value:Number(c),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(a=d)}if(a.issues.length){t.mode==="loose"?r.value[c]=o[c]:r.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(d=>q(d,n,L())),input:c,path:[c],inst:e});continue}let p=t.valueType._zod.run({value:o[c],issues:[]},n);p instanceof Promise?i.push(p.then(d=>{d.issues.length&&r.issues.push(...K(c,d.issues)),r.value[a.value]=d.value})):(p.issues.length&&r.issues.push(...K(c,p.issues)),r.value[a.value]=p.value)}}return i.length?Promise.all(i).then(()=>r):r}}),Zo=f("$ZodMap",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let i=[];r.value=new Map;for(let[s,c]of o){let a=t.keyType._zod.run({value:s,issues:[]},n),u=t.valueType._zod.run({value:c,issues:[]},n);a instanceof Promise||u instanceof Promise?i.push(Promise.all([a,u]).then(([p,d])=>{Zc(p,d,r,s,o,e,n)})):Zc(a,u,r,s,o,e,n)}return i.length?Promise.all(i).then(()=>r):r}});function Zc(e,t,r,n,o,i,s){e.issues.length&&(Qe.has(typeof n)?r.issues.push(...K(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(c=>q(c,s,L()))})),t.issues.length&&(Qe.has(typeof n)?r.issues.push(...K(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(c=>q(c,s,L()))})),r.value.set(e.value,t.value)}var Co=f("$ZodSet",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let s of o){let c=t.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(a=>Cc(a,r))):Cc(c,r)}return i.length?Promise.all(i).then(()=>r):r}});function Cc(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var No=f("$ZodEnum",(e,t)=>{$.init(e,t);let r=We(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Qe.has(typeof o)).map(o=>typeof o=="string"?W(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:e}),o}}),jo=f("$ZodLiteral",(e,t)=>{if($.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"?W(n):n?W(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),Oo=f("$ZodFile",(e,t)=>{$.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}}),Lo=f("$ZodTransform",(e,t)=>{$.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(s=>(r.value=s,r));if(o instanceof Promise)throw new ne;return r.value=o,r}});function Nc(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var qt=f("$ZodOptional",(e,t)=>{$.init(e,t),e._zod.optin="optional",e._zod.optout="optional",w(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),w(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Xe(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Nc(i,r.value)):Nc(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Mo=f("$ZodExactOptional",(e,t)=>{qt.init(e,t),w(e._zod,"values",()=>t.innerType._zod.values),w(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),Do=f("$ZodNullable",(e,t)=>{$.init(e,t),w(e._zod,"optin",()=>t.innerType._zod.optin),w(e._zod,"optout",()=>t.innerType._zod.optout),w(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Xe(r.source)}|null)$`):void 0}),w(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)}),Uo=f("$ZodDefault",(e,t)=>{$.init(e,t),e._zod.optin="optional",w(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>jc(i,t)):jc(o,t)}});function jc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Bo=f("$ZodPrefault",(e,t)=>{$.init(e,t),e._zod.optin="optional",w(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))}),Fo=f("$ZodNonOptional",(e,t)=>{$.init(e,t),w(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Oc(i,e)):Oc(o,e)}});function Oc(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 Jo=f("$ZodSuccess",(e,t)=>{$.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(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),qo=f("$ZodCatch",(e,t)=>{$.init(e,t),w(e._zod,"optin",()=>t.innerType._zod.optin),w(e._zod,"optout",()=>t.innerType._zod.optout),w(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(s=>q(s,n,L()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>q(i,n,L()))},input:r.value}),r.issues=[]),r)}}),Go=f("$ZodNaN",(e,t)=>{$.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)}),Yo=f("$ZodPipe",(e,t)=>{$.init(e,t),w(e._zod,"values",()=>t.in._zod.values),w(e._zod,"optin",()=>t.in._zod.optin),w(e._zod,"optout",()=>t.out._zod.optout),w(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Ot(s,t.in,n)):Ot(i,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ot(i,t.out,n)):Ot(o,t.out,n)}});function Ot(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var ct=f("$ZodCodec",(e,t)=>{$.init(e,t),w(e._zod,"values",()=>t.in._zod.values),w(e._zod,"optin",()=>t.in._zod.optin),w(e._zod,"optout",()=>t.out._zod.optout),w(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=t.in._zod.run(r,n);return i instanceof Promise?i.then(s=>Lt(s,t,n)):Lt(i,t,n)}else{let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Lt(s,t,n)):Lt(i,t,n)}}});function Lt(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>Mt(e,i,t.out,r)):Mt(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>Mt(e,i,t.in,r)):Mt(e,o,t.in,r)}}function Mt(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var Ho=f("$ZodReadonly",(e,t)=>{$.init(e,t),w(e._zod,"propValues",()=>t.innerType._zod.propValues),w(e._zod,"values",()=>t.innerType._zod.values),w(e._zod,"optin",()=>t.innerType?._zod?.optin),w(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(Lc):Lc(o)}});function Lc(e){return e.value=Object.freeze(e.value),e}var Ko=f("$ZodTemplateLiteral",(e,t)=>{$.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,s=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,s))}else if(n===null||Er.has(typeof n))r.push(W(`${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)}),Vo=f("$ZodFunction",(e,t)=>($.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?de(e._def.input,n):n,i=Reflect.apply(r,this,o);return e._def.output?de(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await me(e._def.input,n):n,i=await Reflect.apply(r,this,o);return e._def.output?await me(e._def.output,i):i}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Jt({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)),Wo=f("$ZodPromise",(e,t)=>{$.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),Xo=f("$ZodLazy",(e,t)=>{$.init(e,t),w(e._zod,"innerType",()=>t.getter()),w(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),w(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),w(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),w(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),Qo=f("$ZodCustom",(e,t)=>{T.init(e,t),$.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Mc(i,r,n,e));Mc(o,r,n,e)}});function Mc(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(je(o))}}var at={};we(at,{default:()=>zp});var zp={};var Jc,ei=Symbol("ZodOutput"),ti=Symbol("ZodInput"),Gt=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 Yt(){return new Gt}(Jc=globalThis).__zod_globalRegistry??(Jc.__zod_globalRegistry=Yt());var se=globalThis.__zod_globalRegistry;function ri(e,t){return new e({type:"string",..._(t)})}function ni(e,t){return new e({type:"string",coerce:!0,..._(t)})}function oi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function ii(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function si(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function ci(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function ai(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function ui(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function Ht(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function li(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function pi(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function fi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function di(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function mi(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function hi(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function gi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function _i(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function bi(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function yi(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,..._(t)})}function xi(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function $i(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function vi(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function wi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function zi(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function ki(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}var Si={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Pi(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function Ei(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Ii(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function Ti(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Ai(e,t){return new e({type:"number",checks:[],..._(t)})}function Ri(e,t){return new e({type:"number",coerce:!0,checks:[],..._(t)})}function Zi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ci(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",..._(t)})}function Ni(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",..._(t)})}function ji(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",..._(t)})}function Oi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",..._(t)})}function Li(e,t){return new e({type:"boolean",..._(t)})}function Mi(e,t){return new e({type:"boolean",coerce:!0,..._(t)})}function Di(e,t){return new e({type:"bigint",..._(t)})}function Ui(e,t){return new e({type:"bigint",coerce:!0,..._(t)})}function Bi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",..._(t)})}function Fi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",..._(t)})}function Ji(e,t){return new e({type:"symbol",..._(t)})}function qi(e,t){return new e({type:"undefined",..._(t)})}function Gi(e,t){return new e({type:"null",..._(t)})}function Yi(e){return new e({type:"any"})}function Hi(e){return new e({type:"unknown"})}function Ki(e,t){return new e({type:"never",..._(t)})}function Vi(e,t){return new e({type:"void",..._(t)})}function Wi(e,t){return new e({type:"date",..._(t)})}function Xi(e,t){return new e({type:"date",coerce:!0,..._(t)})}function Qi(e,t){return new e({type:"nan",..._(t)})}function Kt(e,t){return new Ct({check:"less_than",..._(t),value:e,inclusive:!1})}function ut(e,t){return new Ct({check:"less_than",..._(t),value:e,inclusive:!0})}function Vt(e,t){return new Nt({check:"greater_than",..._(t),value:e,inclusive:!1})}function lt(e,t){return new Nt({check:"greater_than",..._(t),value:e,inclusive:!0})}function es(e){return Vt(0,e)}function ts(e){return Kt(0,e)}function rs(e){return ut(0,e)}function ns(e){return lt(0,e)}function os(e,t){return new kn({check:"multiple_of",..._(t),value:e})}function is(e,t){return new En({check:"max_size",..._(t),maximum:e})}function ss(e,t){return new In({check:"min_size",..._(t),minimum:e})}function cs(e,t){return new Tn({check:"size_equals",..._(t),size:e})}function as(e,t){return new An({check:"max_length",..._(t),maximum:e})}function pt(e,t){return new Rn({check:"min_length",..._(t),minimum:e})}function us(e,t){return new Zn({check:"length_equals",..._(t),length:e})}function ft(e,t){return new Cn({check:"string_format",format:"regex",..._(t),pattern:e})}function ls(e){return new Nn({check:"string_format",format:"lowercase",..._(e)})}function ps(e){return new jn({check:"string_format",format:"uppercase",..._(e)})}function fs(e,t){return new On({check:"string_format",format:"includes",..._(t),includes:e})}function ds(e,t){return new Ln({check:"string_format",format:"starts_with",..._(t),prefix:e})}function ms(e,t){return new Mn({check:"string_format",format:"ends_with",..._(t),suffix:e})}function hs(e,t,r){return new Dn({check:"property",property:e,schema:t,..._(r)})}function gs(e,t){return new Un({check:"mime_type",mime:e,..._(t)})}function he(e){return new Bn({check:"overwrite",tx:e})}function _s(e){return he(t=>t.normalize(e))}function bs(){return he(e=>e.trim())}function ys(){return he(e=>e.toLowerCase())}function xs(){return he(e=>e.toUpperCase())}function Sp(){return he(e=>Sr(e))}function Pp(e,t,r){return new e({type:"array",element:t,..._(r)})}function Ep(e,t,r){return new e({type:"union",options:t,..._(r)})}function Ip(e,t,r){return new e({type:"union",options:t,inclusive:!1,..._(r)})}function Tp(e,t,r,n){return new e({type:"union",options:r,discriminator:t,..._(n)})}function Ap(e,t,r){return new e({type:"intersection",left:t,right:r})}function Rp(e,t,r,n){let o=r instanceof $,i=o?n:r,s=o?r:null;return new e({type:"tuple",items:t,rest:s,..._(i)})}function Zp(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,..._(n)})}function Cp(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,..._(n)})}function Np(e,t,r){return new e({type:"set",valueType:t,..._(r)})}function jp(e,t,r){let n=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:n,..._(r)})}function Op(e,t,r){return new e({type:"enum",entries:t,..._(r)})}function Lp(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],..._(r)})}function $s(e,t){return new e({type:"file",..._(t)})}function Mp(e,t){return new e({type:"transform",transform:t})}function Dp(e,t){return new e({type:"optional",innerType:t})}function Up(e,t){return new e({type:"nullable",innerType:t})}function Bp(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():Ne(r)}})}function Fp(e,t,r){return new e({type:"nonoptional",innerType:t,..._(r)})}function Jp(e,t){return new e({type:"success",innerType:t})}function qp(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function Gp(e,t,r){return new e({type:"pipe",in:t,out:r})}function Yp(e,t){return new e({type:"readonly",innerType:t})}function Hp(e,t,r){return new e({type:"template_literal",parts:t,..._(r)})}function Kp(e,t){return new e({type:"lazy",getter:t})}function Vp(e,t){return new e({type:"promise",innerType:t})}function vs(e,t,r){let n=_(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function ws(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function zs(e){let t=qc(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(je(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(je(o))}},e(r.value,r)));return t}function qc(e,t){let r=new T({check:"custom",..._(t)});return r._zod.check=e,r}function ks(e){let t=new T({check:"describe"});return t._zod.onattach=[r=>{let n=se.get(r)??{};se.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function Ss(e){let t=new T({check:"meta"});return t._zod.onattach=[r=>{let n=se.get(r)??{};se.add(r,{...n,...e})}],t._zod.check=()=>{},t}function Ps(e,t){let r=_(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let i=new Set(n),s=new Set(o),c=e.Codec??ct,a=e.Boolean??it,u=e.String??Le,p=new u({type:"string",error:r.error}),d=new a({type:"boolean",error:r.error}),m=new c({type:"pipe",in:p,out:d,transform:((h,b)=>{let g=h;return r.case!=="sensitive"&&(g=g.toLowerCase()),i.has(g)?!0:s.has(g)?!1:(b.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:b.value,inst:m,continue:!1}),{})}),reverseTransform:((h,b)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function Me(e,t,r,n={}){let o=_(n),i={..._(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:c=>r.test(c),...o};return r instanceof RegExp&&(i.pattern=r),new e(i)}function ge(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??se,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function P(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,s);let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else{let p={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,p);else{let m=s.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,p)}let d=e._zod.parent;d&&(s.ref||(s.ref=d),P(d,t,p),t.seen.get(d).isParent=!0)}let a=t.metadataRegistry.get(e);return a&&Object.assign(s.schema,a),t.io==="input"&&D(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&s.schema._prefault&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function _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 s of e.seen.entries()){let c=e.metadataRegistry.get(s[0])?.id;if(c){let a=n.get(c);if(a&&a!==s[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(c,s[0])}}let o=s=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let d=e.external.registry.get(s[0])?.id,m=e.external.uri??(b=>b);if(d)return{ref:m(d)};let h=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=h,{defId:h,ref:`${m("__shared")}#/${c}/${h}`}}if(s[1]===r)return{ref:"#"};let u=`#/${c}/`,p=s[1].schema.id??`__schema${e.counter++}`;return{defId:p,ref:u+p}},i=s=>{if(s[1].schema.$ref)return;let c=s[1],{ref:a,defId:u}=o(s);c.def={...c.schema},u&&(c.defId=u);let p=c.schema;for(let d in p)delete p[d];p.$ref=a};if(e.cycles==="throw")for(let s of e.seen.entries()){let c=s[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
39
-
40
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let c=s[1];if(t===s[0]){i(s);continue}if(e.external){let u=e.external.registry.get(s[0])?.id;if(t!==s[0]&&u){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1&&e.reused==="ref"){i(s);continue}}}function be(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=s=>{let c=e.seen.get(s);if(c.ref===null)return;let a=c.def??c.schema,u={...a},p=c.ref;if(c.ref=null,p){n(p);let m=e.seen.get(p),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(a.allOf=a.allOf??[],a.allOf.push(h)):Object.assign(a,h),Object.assign(a,u),s._zod.parent===p)for(let g in a)g==="$ref"||g==="allOf"||g in u||delete a[g];if(h.$ref&&m.def)for(let g in a)g==="$ref"||g==="allOf"||g in m.def&&JSON.stringify(a[g])===JSON.stringify(m.def[g])&&delete a[g]}let d=s._zod.parent;if(d&&d!==p){n(d);let m=e.seen.get(d);if(m?.schema.$ref&&(a.$ref=m.schema.$ref,m.def))for(let h in a)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(a[h])===JSON.stringify(m.def[h])&&delete a[h]}e.override({zodSchema:s,jsonSchema:a,path:c.path??[]})};for(let s of[...e.seen.entries()].reverse())n(s[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);let i=e.external?.defs??{};for(let s of e.seen.entries()){let c=s[1];c.def&&c.defId&&(i[c.defId]=c.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Es(t,"input",e.processors),output:Es(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function D(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 D(n.element,r);if(n.type==="set")return D(n.valueType,r);if(n.type==="lazy")return D(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 D(n.innerType,r);if(n.type==="intersection")return D(n.left,r)||D(n.right,r);if(n.type==="record"||n.type==="map")return D(n.keyType,r)||D(n.valueType,r);if(n.type==="pipe")return D(n.in,r)||D(n.out,r);if(n.type==="object"){for(let o in n.shape)if(D(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(D(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(D(o,r))return!0;return!!(n.rest&&D(n.rest,r))}return!1}var Wp=(e,t={})=>r=>{let n=ge({...r,processors:t});return P(e,n),_e(n,e),be(n,e)},Es=(e,t,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=ge({...o??{},target:i,io:t,processors:r});return P(e,s),_e(s,e),be(s,e)};var Xp={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Qp=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:c,patterns:a,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),c&&(o.format=Xp[c]??c,o.format===""&&delete o.format,c==="time"&&delete o.format),u&&(o.contentEncoding=u),a&&a.size>0){let p=[...a];p.length===1?o.pattern=p[0].source:p.length>1&&(o.allOf=[...p.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},ef=(e,t,r,n)=>{let o=r,{minimum:i,maximum:s,format:c,multipleOf:a,exclusiveMaximum:u,exclusiveMinimum:p}=e._zod.bag;typeof c=="string"&&c.includes("int")?o.type="integer":o.type="number",typeof p=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=p,o.exclusiveMinimum=!0):o.exclusiveMinimum=p),typeof i=="number"&&(o.minimum=i,typeof p=="number"&&t.target!=="draft-04"&&(p>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof s=="number"&&(o.maximum=s,typeof u=="number"&&t.target!=="draft-04"&&(u<=s?delete o.maximum:delete o.exclusiveMaximum)),typeof a=="number"&&(o.multipleOf=a)},tf=(e,t,r,n)=>{r.type="boolean"},rf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},nf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},of=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},sf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},cf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},af=(e,t,r,n)=>{r.not={}},uf=(e,t,r,n)=>{},lf=(e,t,r,n)=>{},pf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},ff=(e,t,r,n)=>{let o=e._zod.def,i=We(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},df=(e,t,r,n)=>{let o=e._zod.def,i=[];for(let s of o.values)if(s===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[s]:r.const=s}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i},mf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},hf=(e,t,r,n)=>{let o=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},gf=(e,t,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:a}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),a?a.length===1?(i.contentMediaType=a[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=a.map(u=>({contentMediaType:u}))):Object.assign(o,i)},_f=(e,t,r,n)=>{r.type="boolean"},bf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},yf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},xf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},$f=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},vf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},wf=(e,t,r,n)=>{let o=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(o.minItems=s),typeof c=="number"&&(o.maxItems=c),o.type="array",o.items=P(i.element,t,{...n,path:[...n.path,"items"]})},zf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=P(s[u],t,{...n,path:[...n.path,"properties",u]});let c=new Set(Object.keys(s)),a=new Set([...c].filter(u=>{let p=i.shape[u]._zod;return t.io==="input"?p.optin===void 0:p.optout===void 0}));a.size>0&&(o.required=Array.from(a)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=P(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},kf=(e,t,r,n)=>{let o=e._zod.def,i=o.inclusive===!1,s=o.options.map((c,a)=>P(c,t,{...n,path:[...n.path,i?"oneOf":"anyOf",a]}));i?r.oneOf=s:r.anyOf=s},Sf=(e,t,r,n)=>{let o=e._zod.def,i=P(o.left,t,{...n,path:[...n.path,"allOf",0]}),s=P(o.right,t,{...n,path:[...n.path,"allOf",1]}),c=u=>"allOf"in u&&Object.keys(u).length===1,a=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=a},Pf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="array";let s=t.target==="draft-2020-12"?"prefixItems":"items",c=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",a=i.items.map((m,h)=>P(m,t,{...n,path:[...n.path,s,h]})),u=i.rest?P(i.rest,t,{...n,path:[...n.path,c,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=a,u&&(o.items=u)):t.target==="openapi-3.0"?(o.items={anyOf:a},u&&o.items.anyOf.push(u),o.minItems=a.length,u||(o.maxItems=a.length)):(o.items=a,u&&(o.additionalItems=u));let{minimum:p,maximum:d}=e._zod.bag;typeof p=="number"&&(o.minItems=p),typeof d=="number"&&(o.maxItems=d)},Ef=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object";let s=i.keyType,a=s._zod.bag?.patterns;if(i.mode==="loose"&&a&&a.size>0){let p=P(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of a)o.patternProperties[d.source]=p}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=P(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=P(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let p=[...u].filter(d=>typeof d=="string"||typeof d=="number");p.length>0&&(o.required=p)}},If=(e,t,r,n)=>{let o=e._zod.def,i=P(o.innerType,t,n),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Tf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Af=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},Rf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Zf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Cf=(e,t,r,n)=>{let o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;P(i,t,n);let s=t.seen.get(e);s.ref=i},Nf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},jf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Of=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Lf=(e,t,r,n)=>{let o=e._zod.innerType;P(o,t,n);let i=t.seen.get(e);i.ref=o},Wt={string:Qp,number:ef,boolean:tf,bigint:rf,symbol:nf,null:of,undefined:sf,void:cf,never:af,any:uf,unknown:lf,date:pf,enum:ff,literal:df,nan:mf,template_literal:hf,file:gf,success:_f,custom:bf,function:yf,transform:xf,map:$f,set:vf,array:wf,object:zf,union:kf,intersection:Sf,tuple:Pf,record:Ef,nullable:If,nonoptional:Tf,default:Af,prefault:Rf,catch:Zf,pipe:Cf,readonly:Nf,promise:jf,optional:Of,lazy:Lf};function Xt(e,t){if("_idmap"in e){let n=e,o=ge({...t,processors:Wt}),i={};for(let a of n._idmap.entries()){let[u,p]=a;P(p,o)}let s={},c={registry:n,uri:t?.uri,defs:i};o.external=c;for(let a of n._idmap.entries()){let[u,p]=a;_e(o,p),s[u]=be(o,p)}if(Object.keys(i).length>0){let a=o.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let r=ge({...t,processors:Wt});return P(e,r),_e(r,e),be(r,e)}var Qt=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=ge({processors:Wt,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return P(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),_e(this.ctx,t);let n=be(this.ctx,t),{"~standard":o,...i}=n;return i}};var Gc={};var z=f("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");$.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>de(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>ke(e,r,n),e.parseAsync=async(r,n)=>me(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Se(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)=>M(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),Ue=f("ZodMiniString",(e,t)=>{Le.init(e,t),z.init(e,t)});function y(e){return ri(Ue,e)}var A=f("ZodMiniStringFormat",(e,t)=>{I.init(e,t),Ue.init(e,t)}),Yc=f("ZodMiniEmail",(e,t)=>{Yn.init(e,t),A.init(e,t)});function Df(e){return oi(Yc,e)}var Hc=f("ZodMiniGUID",(e,t)=>{qn.init(e,t),A.init(e,t)});function Uf(e){return ii(Hc,e)}var dt=f("ZodMiniUUID",(e,t)=>{Gn.init(e,t),A.init(e,t)});function Bf(e){return si(dt,e)}function Ff(e){return ci(dt,e)}function Jf(e){return ai(dt,e)}function qf(e){return ui(dt,e)}var Is=f("ZodMiniURL",(e,t)=>{Hn.init(e,t),A.init(e,t)});function Gf(e){return Ht(Is,e)}function Yf(e){return Ht(Is,{protocol:/^https?$/,hostname:Q.domain,..._(e)})}var Kc=f("ZodMiniEmoji",(e,t)=>{Kn.init(e,t),A.init(e,t)});function Hf(e){return li(Kc,e)}var Vc=f("ZodMiniNanoID",(e,t)=>{Vn.init(e,t),A.init(e,t)});function Kf(e){return pi(Vc,e)}var Wc=f("ZodMiniCUID",(e,t)=>{Wn.init(e,t),A.init(e,t)});function Vf(e){return fi(Wc,e)}var Xc=f("ZodMiniCUID2",(e,t)=>{Xn.init(e,t),A.init(e,t)});function Wf(e){return di(Xc,e)}var Qc=f("ZodMiniULID",(e,t)=>{Qn.init(e,t),A.init(e,t)});function Xf(e){return mi(Qc,e)}var ea=f("ZodMiniXID",(e,t)=>{eo.init(e,t),A.init(e,t)});function Qf(e){return hi(ea,e)}var ta=f("ZodMiniKSUID",(e,t)=>{to.init(e,t),A.init(e,t)});function ed(e){return gi(ta,e)}var ra=f("ZodMiniIPv4",(e,t)=>{so.init(e,t),A.init(e,t)});function td(e){return _i(ra,e)}var na=f("ZodMiniIPv6",(e,t)=>{co.init(e,t),A.init(e,t)});function rd(e){return bi(na,e)}var oa=f("ZodMiniCIDRv4",(e,t)=>{uo.init(e,t),A.init(e,t)});function nd(e){return xi(oa,e)}var ia=f("ZodMiniCIDRv6",(e,t)=>{lo.init(e,t),A.init(e,t)});function od(e){return $i(ia,e)}var sa=f("ZodMiniMAC",(e,t)=>{ao.init(e,t),A.init(e,t)});function id(e){return yi(sa,e)}var ca=f("ZodMiniBase64",(e,t)=>{fo.init(e,t),A.init(e,t)});function sd(e){return vi(ca,e)}var aa=f("ZodMiniBase64URL",(e,t)=>{mo.init(e,t),A.init(e,t)});function cd(e){return wi(aa,e)}var ua=f("ZodMiniE164",(e,t)=>{ho.init(e,t),A.init(e,t)});function ad(e){return zi(ua,e)}var la=f("ZodMiniJWT",(e,t)=>{go.init(e,t),A.init(e,t)});function ud(e){return ki(la,e)}var mt=f("ZodMiniCustomStringFormat",(e,t)=>{_o.init(e,t),A.init(e,t)});function ld(e,t,r={}){return Me(mt,e,t,r)}function pd(e){return Me(mt,"hostname",Q.hostname,e)}function fd(e){return Me(mt,"hex",Q.hex,e)}function dd(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=Q[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return Me(mt,n,o,t)}var ht=f("ZodMiniNumber",(e,t)=>{Ut.init(e,t),z.init(e,t)});function ye(e){return Ai(ht,e)}var Be=f("ZodMiniNumberFormat",(e,t)=>{bo.init(e,t),ht.init(e,t)});function md(e){return Zi(Be,e)}function hd(e){return Ci(Be,e)}function gd(e){return Ni(Be,e)}function _d(e){return ji(Be,e)}function bd(e){return Oi(Be,e)}var gt=f("ZodMiniBoolean",(e,t)=>{it.init(e,t),z.init(e,t)});function Fe(e){return Li(gt,e)}var _t=f("ZodMiniBigInt",(e,t)=>{Bt.init(e,t),z.init(e,t)});function yd(e){return Di(_t,e)}var Ts=f("ZodMiniBigIntFormat",(e,t)=>{yo.init(e,t),_t.init(e,t)});function xd(e){return Bi(Ts,e)}function $d(e){return Fi(Ts,e)}var pa=f("ZodMiniSymbol",(e,t)=>{xo.init(e,t),z.init(e,t)});function vd(e){return Ji(pa,e)}var fa=f("ZodMiniUndefined",(e,t)=>{$o.init(e,t),z.init(e,t)});function wd(e){return qi(fa,e)}var da=f("ZodMiniNull",(e,t)=>{vo.init(e,t),z.init(e,t)});function ma(e){return Gi(da,e)}var ha=f("ZodMiniAny",(e,t)=>{wo.init(e,t),z.init(e,t)});function zd(){return Yi(ha)}var ga=f("ZodMiniUnknown",(e,t)=>{zo.init(e,t),z.init(e,t)});function er(){return Hi(ga)}var _a=f("ZodMiniNever",(e,t)=>{ko.init(e,t),z.init(e,t)});function ba(e){return Ki(_a,e)}var ya=f("ZodMiniVoid",(e,t)=>{So.init(e,t),z.init(e,t)});function kd(e){return Vi(ya,e)}var tr=f("ZodMiniDate",(e,t)=>{Po.init(e,t),z.init(e,t)});function Sd(e){return Wi(tr,e)}var xa=f("ZodMiniArray",(e,t)=>{Eo.init(e,t),z.init(e,t)});function U(e,t){return new xa({type:"array",element:e,..._(t)})}function Pd(e){let t=e._zod.def.shape;return Ta(Object.keys(t))}var rr=f("ZodMiniObject",(e,t)=>{Ft.init(e,t),z.init(e,t),w(e,"shape",()=>t.shape)});function E(e,t){let r={type:"object",shape:e??{},..._(t)};return new rr(r)}function Ed(e,t){return new rr({type:"object",shape:e,catchall:ba(),..._(t)})}function Id(e,t){return new rr({type:"object",shape:e,catchall:er(),..._(t)})}function bt(e,t){return Pt(e,t)}function Td(e,t){return Cr(e,t)}function Ad(e,t){return Pt(e,t)}function Rd(e,t){return Rr(e,t)}function Zd(e,t){return Zr(e,t)}function Cd(e,t){return Nr(Zs,e,t)}function Nd(e,t){return jr(Cs,e,t)}function jd(e,t){return e.clone({...e._zod.def,catchall:t})}var As=f("ZodMiniUnion",(e,t)=>{st.init(e,t),z.init(e,t)});function $a(e,t){return new As({type:"union",options:e,..._(t)})}var va=f("ZodMiniXor",(e,t)=>{As.init(e,t),Io.init(e,t)});function Od(e,t){return new va({type:"union",options:e,inclusive:!1,..._(t)})}var wa=f("ZodMiniDiscriminatedUnion",(e,t)=>{To.init(e,t),z.init(e,t)});function Ld(e,t,r){return new wa({type:"union",options:t,discriminator:e,..._(r)})}var za=f("ZodMiniIntersection",(e,t)=>{Ao.init(e,t),z.init(e,t)});function Md(e,t){return new za({type:"intersection",left:e,right:t})}var ka=f("ZodMiniTuple",(e,t)=>{Jt.init(e,t),z.init(e,t)});function Sa(e,t,r){let n=t instanceof $,o=n?r:t,i=n?t:null;return new ka({type:"tuple",items:e,rest:i,..._(o)})}var nr=f("ZodMiniRecord",(e,t)=>{Ro.init(e,t),z.init(e,t)});function Pa(e,t,r){return new nr({type:"record",keyType:e,valueType:t,..._(r)})}function Dd(e,t,r){let n=M(e);return n._zod.values=void 0,new nr({type:"record",keyType:n,valueType:t,..._(r)})}function Ud(e,t,r){return new nr({type:"record",keyType:e,valueType:t,mode:"loose",..._(r)})}var Ea=f("ZodMiniMap",(e,t)=>{Zo.init(e,t),z.init(e,t)});function Bd(e,t,r){return new Ea({type:"map",keyType:e,valueType:t,..._(r)})}var Ia=f("ZodMiniSet",(e,t)=>{Co.init(e,t),z.init(e,t)});function Fd(e,t){return new Ia({type:"set",valueType:e,..._(t)})}var Rs=f("ZodMiniEnum",(e,t)=>{No.init(e,t),z.init(e,t),e.options=Object.values(t.entries)});function Ta(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Rs({type:"enum",entries:r,..._(t)})}function Jd(e,t){return new Rs({type:"enum",entries:e,..._(t)})}var Aa=f("ZodMiniLiteral",(e,t)=>{jo.init(e,t),z.init(e,t)});function qd(e,t){return new Aa({type:"literal",values:Array.isArray(e)?e:[e],..._(t)})}var Ra=f("ZodMiniFile",(e,t)=>{Oo.init(e,t),z.init(e,t)});function Gd(e){return $s(Ra,e)}var Za=f("ZodMiniTransform",(e,t)=>{Lo.init(e,t),z.init(e,t)});function Yd(e){return new Za({type:"transform",transform:e})}var Zs=f("ZodMiniOptional",(e,t)=>{qt.init(e,t),z.init(e,t)});function x(e){return new Zs({type:"optional",innerType:e})}var Ca=f("ZodMiniExactOptional",(e,t)=>{Mo.init(e,t),z.init(e,t)});function Hd(e){return new Ca({type:"optional",innerType:e})}var Na=f("ZodMiniNullable",(e,t)=>{Do.init(e,t),z.init(e,t)});function or(e){return new Na({type:"nullable",innerType:e})}function Kd(e){return x(or(e))}var ja=f("ZodMiniDefault",(e,t)=>{Uo.init(e,t),z.init(e,t)});function Vd(e,t){return new ja({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Ne(t)}})}var Oa=f("ZodMiniPrefault",(e,t)=>{Bo.init(e,t),z.init(e,t)});function Wd(e,t){return new Oa({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Ne(t)}})}var Cs=f("ZodMiniNonOptional",(e,t)=>{Fo.init(e,t),z.init(e,t)});function Xd(e,t){return new Cs({type:"nonoptional",innerType:e,..._(t)})}var La=f("ZodMiniSuccess",(e,t)=>{Jo.init(e,t),z.init(e,t)});function Qd(e){return new La({type:"success",innerType:e})}var Ma=f("ZodMiniCatch",(e,t)=>{qo.init(e,t),z.init(e,t)});function em(e,t){return new Ma({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Da=f("ZodMiniNaN",(e,t)=>{Go.init(e,t),z.init(e,t)});function tm(e){return Qi(Da,e)}var Ns=f("ZodMiniPipe",(e,t)=>{Yo.init(e,t),z.init(e,t)});function rm(e,t){return new Ns({type:"pipe",in:e,out:t})}var js=f("ZodMiniCodec",(e,t)=>{Ns.init(e,t),ct.init(e,t)});function nm(e,t,r){return new js({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Ua=f("ZodMiniReadonly",(e,t)=>{Ho.init(e,t),z.init(e,t)});function om(e){return new Ua({type:"readonly",innerType:e})}var Ba=f("ZodMiniTemplateLiteral",(e,t)=>{Ko.init(e,t),z.init(e,t)});function im(e,t){return new Ba({type:"template_literal",parts:e,..._(t)})}var Fa=f("ZodMiniLazy",(e,t)=>{Xo.init(e,t),z.init(e,t)});function Ja(e){return new Fa({type:"lazy",getter:e})}var qa=f("ZodMiniPromise",(e,t)=>{Wo.init(e,t),z.init(e,t)});function sm(e){return new qa({type:"promise",innerType:e})}var Os=f("ZodMiniCustom",(e,t)=>{Qo.init(e,t),z.init(e,t)});function cm(e,t){let r=new T({check:"custom",..._(t)});return r._zod.check=e,r}function Ga(e,t){return vs(Os,e??(()=>!0),t)}function am(e,t={}){return ws(Os,e,t)}function um(e){return zs(e)}var lm=ks,pm=Ss;function fm(e,t={}){let r=Ga(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 dm=(...e)=>Ps({Codec:js,Boolean:gt,String:Ue},...e);function mm(){let e=Ja(()=>$a([y(),ye(),Fe(),ma(),U(e),Pa(y(),e)]));return e}var Ya=f("ZodMiniFunction",(e,t)=>{Vo.init(e,t),z.init(e,t)});function hm(e){return new Ya({type:"function",input:Array.isArray(e?.input)?Sa(e?.input):e?.input??U(er()),output:e?.output??er()})}var Ls={};we(Ls,{ZodMiniISODate:()=>sr,ZodMiniISODateTime:()=>ir,ZodMiniISODuration:()=>ar,ZodMiniISOTime:()=>cr,date:()=>_m,datetime:()=>gm,duration:()=>ym,time:()=>bm});var ir=f("ZodMiniISODateTime",(e,t)=>{ro.init(e,t),A.init(e,t)});function gm(e){return Pi(ir,e)}var sr=f("ZodMiniISODate",(e,t)=>{no.init(e,t),A.init(e,t)});function _m(e){return Ei(sr,e)}var cr=f("ZodMiniISOTime",(e,t)=>{oo.init(e,t),A.init(e,t)});function bm(e){return Ii(cr,e)}var ar=f("ZodMiniISODuration",(e,t)=>{io.init(e,t),A.init(e,t)});function ym(e){return Ti(ar,e)}var Ms={};we(Ms,{bigint:()=>wm,boolean:()=>vm,date:()=>zm,number:()=>$m,string:()=>xm});function xm(e){return ni(Ue,e)}function $m(e){return Ri(ht,e)}function vm(e){return Mi(gt,e)}function wm(e){return Ui(_t,e)}function zm(e){return Xi(tr,e)}var Ee=y().check(pt(1)),km=y().check(ft(/^https?:\/\/.+/)),Us=E({CLANCY_BASE_BRANCH:x(y()),CLANCY_LABEL:x(y()),CLANCY_MODEL:x(y()),CLANCY_NOTIFY_WEBHOOK:x(y()),CLANCY_STATUS_IN_PROGRESS:x(y()),CLANCY_STATUS_DONE:x(y()),CLANCY_STATUS_REVIEW:x(y()),MAX_ITERATIONS:x(y()),PLAYWRIGHT_ENABLED:x(y()),PLAYWRIGHT_DEV_PORT:x(y()),CLANCY_ROLES:x(y()),CLANCY_PLAN_STATUS:x(y()),CLANCY_PLAN_LABEL:x(y()),CLANCY_PLAN_STATE_TYPE:x(y()),CLANCY_STATUS_PLANNED:x(y()),CLANCY_SKIP_COMMENTS:x(y()),GITHUB_TOKEN:x(y()),GITLAB_TOKEN:x(y()),BITBUCKET_USER:x(y()),BITBUCKET_TOKEN:x(y()),CLANCY_GIT_PLATFORM:x(y()),CLANCY_GIT_API_URL:x(y()),CLANCY_MAX_REWORK:x(y()),CLANCY_TDD:x(y()),CLANCY_MODE:x(y()),CLANCY_BRIEF_ISSUE_TYPE:x(y()),CLANCY_BRIEF_EPIC:x(y()),CLANCY_COMPONENT:x(y())}),Ka=bt(Us,{JIRA_BASE_URL:km,JIRA_USER:Ee,JIRA_API_TOKEN:Ee,JIRA_PROJECT_KEY:Ee,CLANCY_JQL_STATUS:x(y()),CLANCY_JQL_SPRINT:x(y())}),Va=bt(Us,{GITHUB_TOKEN:Ee,GITHUB_REPO:Ee}),Wa=bt(Us,{LINEAR_API_KEY:Ee,LINEAR_TEAM_ID:Ee});function Xa(e){if(e.JIRA_BASE_URL){let t=Ka.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=Va.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=Wa.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, or Linear credentials in .clancy/.env"}function Sm(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(`
41
- `)}function Pm(e){let t=e.trim().split(`
42
- `).pop()?.trim()??"";return/^INFEASIBLE/i.test(t)?{feasible:!1,reason:t.replace(/^INFEASIBLE:?\s*/i,"").trim()||void 0}:{feasible:!0}}function Qa(e,t){let r=Sm(e),{stdout:n,ok:o}=cc(r,t);return o?Pm(n):{feasible:!0}}function yt(e){let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60),n=t%60;return n>0?`${r}m ${n}s`:`${r}m`}import{execFileSync as xe}from"node:child_process";function Bs(...e){return xe("git",e,{encoding:"utf8"}).trim()}function eu(){return Bs("rev-parse","--abbrev-ref","HEAD")}function tu(){try{return xe("git",["diff","--quiet"],{stdio:"ignore"}),xe("git",["diff","--cached","--quiet"],{stdio:"ignore"}),!1}catch{return!0}}function Fs(e){try{return xe("git",["show-ref","--verify","--quiet",`refs/heads/${e}`],{stdio:"ignore"}),!0}catch{return!1}}function Js(e,t){Fs(e)||Bs("checkout","-b",e,t)}function Y(e,t=!1){Bs("checkout",...t?["-B"]:[],e)}function ru(e){try{return xe("git",["ls-remote","--heads","origin",e],{encoding:"utf8",timeout:15e3}).trim().length>0}catch{return!1}}function ur(e){try{return xe("git",["fetch","origin",`${e}:${e}`],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function nu(e,t=8e3){try{let r=xe("git",["diff",`${e}...HEAD`,"--stat"],{encoding:"utf8",timeout:1e4}).trim();return r?r.length>t?r.slice(0,t)+`
43
- ... (truncated)`:r:void 0}catch{return}}function qs(e){try{return xe("git",["push","-u","origin",e],{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function Em(e){return e.includes("hooks.slack.com")}function Im(e){return JSON.stringify({text:e})}function Tm(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 ou(e,t){let r=Em(e)?Im(t):Tm(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")}}import{execFileSync as Gs}from"node:child_process";import{existsSync as Am,readFileSync as Rm}from"node:fs";import{join as Zm}from"node:path";function Cm(e){let t={};for(let r of e.split(`
44
- `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let i=n.slice(0,o).trim(),s=n.slice(o+1).trim();s.length>=2&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),t[i]=s}return t}function iu(e){let t=Zm(e,".clancy",".env");if(!Am(t))return;let r=Rm(t,"utf8");return Cm(r)}function Nm(e){try{return Gs("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function jm(){try{return Gs("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function su(e){for(let n of["claude","git"])if(!Nm(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=iu(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!jm())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{Gs("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(tu()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
45
- ${n}`:n}return{ok:!0,env:t,warning:r}}import{appendFileSync as cu,mkdirSync as Om,readFileSync as Lm}from"node:fs";import{dirname as Mm,join as au}from"node:path";function Dm(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),i=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${i}`}function B(e,t,r,n,o,i){let s=au(e,".clancy","progress.txt");Om(Mm(s),{recursive:!0});let c=Dm(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let d=`${c} | ${n} | ${t} | ${r}
46
- `;cu(s,d,"utf8");return}let a=o!=null?` | pr:${o}`:"",u=i?` | parent:${i}`:"",p=`${c} | ${t} | ${r} | ${n}${a}${u}
47
- `;cu(s,p,"utf8")}function uu(e){let t=au(e,".clancy","progress.txt"),r;try{r=Lm(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
48
- `)){let i=o.trim();if(!i)continue;let s=i.split(" | ");if(s.length<4)continue;let c=s[0];if(s[1]==="BRIEF"||s[1]==="APPROVE_BRIEF"){n.push({timestamp:c,key:s[2],summary:s.slice(3).join(" | "),status:s[1]});continue}let a=s[1],u,p,d,m=[];for(let h=2;h<s.length;h++){let b=s[h],g=b.match(/^pr:(\d+)$/),v=b.match(/^parent:(.+)$/);g?p=parseInt(g[1],10):v?d=v[1]:h>=3&&!u&&b===b.toUpperCase()&&b.length>1?u=b:m.push(b)}u&&(u==="APPROVE"&&(u="APPROVE_PLAN"),n.push({timestamp:c,key:a,summary:m.join(" | "),status:u,...p!=null&&{prNumber:p},...d!=null&&{parent:d}}))}return n}function lu(e,t){let r=uu(e),n=t.toLowerCase(),o=0;for(let i of r)i.key.toLowerCase()===n&&i.status==="REWORK"&&o++;return o}function F(e,t){let r=uu(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}var pu=`
39
+ `)}h.write("payload.value = newResult;"),h.write("return payload;");let H=h.compile();return(R,O)=>H(m,R,O)},i,s=xe,c=!Ge.jitless,u=c&&Lr.value,l=t.catchall,d;e._zod.parse=(m,h)=>{d??(d=n.value);let y=m.value;return s(y)?c&&u&&h?.async===!1&&h.jitless!==!0?(i||(i=o(t.shape)),m=i(m,h),l?Wc([],y,m,h,d,e):m):r(m,h):(m.issues.push({expected:"object",code:"invalid_type",input:y,inst:e}),m)}});function Lc(e,t,r,n){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter(i=>!le(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>K(s,n,j())))}),t)}var ot=f("$ZodUnion",(e,t)=>{w.init(e,t),v(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),v(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),v(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),v(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(i=>i._zod.pattern);return new RegExp(`^(${o.map(i=>Ve(i.source)).join("|")})$`)}});let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);if(u instanceof Promise)c.push(u),s=!0;else{if(u.issues.length===0)return u;c.push(u)}}return s?Promise.all(c).then(a=>Lc(a,o,e,i)):Lc(c,o,e,i)}});function Mc(e,t,r,n){let o=e.filter(i=>i.issues.length===0);return o.length===1?(t.value=o[0].value,t):(o.length===0?t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>K(s,n,j())))}):t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:[],inclusive:!1}),t)}var Bo=f("$ZodXor",(e,t)=>{ot.init(e,t),t.inclusive=!1;let r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,i)=>{if(r)return n(o,i);let s=!1,c=[];for(let a of t.options){let u=a._zod.run({value:o.value,issues:[]},i);u instanceof Promise?(c.push(u),s=!0):c.push(u)}return s?Promise.all(c).then(a=>Mc(a,o,e,i)):Mc(c,o,e,i)}}),Do=f("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,ot.init(e,t);let r=e._zod.parse;v(e._zod,"propValues",()=>{let o={};for(let i of t.options){let s=i._zod.propValues;if(!s||Object.keys(s).length===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(i)}"`);for(let[c,a]of Object.entries(s)){o[c]||(o[c]=new Set);for(let u of a)o[c].add(u)}}return o});let n=Re(()=>{let o=t.options,i=new Map;for(let s of o){let c=s._zod.propValues?.[t.discriminator];if(!c||c.size===0)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(s)}"`);for(let a of c){if(i.has(a))throw new Error(`Duplicate discriminator value "${String(a)}"`);i.set(a,s)}}return i});e._zod.parse=(o,i)=>{let s=o.value;if(!xe(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let c=n.value.get(s?.[t.discriminator]);return c?c._zod.run(o,i):t.unionFallback?r(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,input:s,path:[t.discriminator],inst:e}),o)}}),Uo=f("$ZodIntersection",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value,i=t.left._zod.run({value:o,issues:[]},n),s=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([a,u])=>Bc(r,a,u)):Bc(r,i,s)}});function to(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ue(e)&&ue(t)){let r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(let i of n){let s=to(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let o=e[n],i=t[n],s=to(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Bc(e,t,r){let n=new Map,o;for(let c of t.issues)if(c.code==="unrecognized_keys"){o??(o=c);for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).l=!0}else e.issues.push(c);for(let c of r.issues)if(c.code==="unrecognized_keys")for(let a of c.keys)n.has(a)||n.set(a,{}),n.get(a).r=!0;else e.issues.push(c);let i=[...n].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(i.length&&o&&e.issues.push({...o,keys:i}),le(e))return e;let s=to(t.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var Gt=f("$ZodTuple",(e,t)=>{w.init(e,t);let r=t.items;e._zod.parse=(n,o)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({input:i,inst:e,expected:"tuple",code:"invalid_type"}),n;n.value=[];let s=[],c=[...r].reverse().findIndex(l=>l._zod.optin!=="optional"),a=c===-1?0:r.length-c;if(!t.rest){let l=i.length>r.length,d=i.length<a-1;if(l||d)return n.issues.push({...l?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:i,inst:e,origin:"array"}),n}let u=-1;for(let l of r){if(u++,u>=i.length&&u>=a)continue;let d=l._zod.run({value:i[u],issues:[]},o);d instanceof Promise?s.push(d.then(m=>Mt(m,n,u))):Mt(d,n,u)}if(t.rest){let l=i.slice(r.length);for(let d of l){u++;let m=t.rest._zod.run({value:d,issues:[]},o);m instanceof Promise?s.push(m.then(h=>Mt(h,n,u))):Mt(m,n,u)}}return s.length?Promise.all(s).then(()=>n):n}});function Mt(e,t,r){e.issues.length&&t.issues.push(...G(r,e.issues)),t.value[r]=e.value}var Fo=f("$ZodRecord",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!ue(o))return r.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),r;let i=[],s=t.keyType._zod.values;if(s){r.value={};let c=new Set;for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){c.add(typeof u=="number"?u.toString():u);let l=t.valueType._zod.run({value:o[u],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...G(u,d.issues)),r.value[u]=d.value})):(l.issues.length&&r.issues.push(...G(u,l.issues)),r.value[u]=l.value)}let a;for(let u in o)c.has(u)||(a=a??[],a.push(u));a&&a.length>0&&r.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:a})}else{r.value={};for(let c of Reflect.ownKeys(o)){if(c==="__proto__")continue;let a=t.keyType._zod.run({value:c,issues:[]},n);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(typeof c=="string"&&Ot.test(c)&&a.issues.length){let d=t.keyType._zod.run({value:Number(c),issues:[]},n);if(d instanceof Promise)throw new Error("Async schemas not supported in object keys currently");d.issues.length===0&&(a=d)}if(a.issues.length){t.mode==="loose"?r.value[c]=o[c]:r.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(d=>K(d,n,j())),input:c,path:[c],inst:e});continue}let l=t.valueType._zod.run({value:o[c],issues:[]},n);l instanceof Promise?i.push(l.then(d=>{d.issues.length&&r.issues.push(...G(c,d.issues)),r.value[a.value]=d.value})):(l.issues.length&&r.issues.push(...G(c,l.issues)),r.value[a.value]=l.value)}}return i.length?Promise.all(i).then(()=>r):r}}),Jo=f("$ZodMap",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Map))return r.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),r;let i=[];r.value=new Map;for(let[s,c]of o){let a=t.keyType._zod.run({value:s,issues:[]},n),u=t.valueType._zod.run({value:c,issues:[]},n);a instanceof Promise||u instanceof Promise?i.push(Promise.all([a,u]).then(([l,d])=>{Dc(l,d,r,s,o,e,n)})):Dc(a,u,r,s,o,e,n)}return i.length?Promise.all(i).then(()=>r):r}});function Dc(e,t,r,n,o,i,s){e.issues.length&&(We.has(typeof n)?r.issues.push(...G(n,e.issues)):r.issues.push({code:"invalid_key",origin:"map",input:o,inst:i,issues:e.issues.map(c=>K(c,s,j()))})),t.issues.length&&(We.has(typeof n)?r.issues.push(...G(n,t.issues)):r.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:n,issues:t.issues.map(c=>K(c,s,j()))})),r.value.set(e.value,t.value)}var Ko=f("$ZodSet",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;if(!(o instanceof Set))return r.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),r;let i=[];r.value=new Set;for(let s of o){let c=t.valueType._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(a=>Uc(a,r))):Uc(c,r)}return i.length?Promise.all(i).then(()=>r):r}});function Uc(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var Yo=f("$ZodEnum",(e,t)=>{w.init(e,t);let r=He(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>We.has(typeof o)).map(o=>typeof o=="string"?V(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{let s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:e}),o}}),Go=f("$ZodLiteral",(e,t)=>{if(w.init(e,t),t.values.length===0)throw new Error("Cannot create literal schema with no valid values");let r=new Set(t.values);e._zod.values=r,e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?V(n):n?V(n.toString()):String(n)).join("|")})$`),e._zod.parse=(n,o)=>{let i=n.value;return r.has(i)||n.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),n}}),qo=f("$ZodFile",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{let o=r.value;return o instanceof File||r.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),r}}),Ho=f("$ZodTransform",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ae(e.constructor.name);let o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(r.value=s,r));if(o instanceof Promise)throw new ee;return r.value=o,r}});function Fc(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var qt=f("$ZodOptional",(e,t)=>{w.init(e,t),e._zod.optin="optional",e._zod.optout="optional",v(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),v(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ve(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Fc(i,r.value)):Fc(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Vo=f("$ZodExactOptional",(e,t)=>{qt.init(e,t),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),Wo=f("$ZodNullable",(e,t)=>{w.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${Ve(r.source)}|null)$`):void 0}),v(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)}),Xo=f("$ZodDefault",(e,t)=>{w.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Jc(i,t)):Jc(o,t)}});function Jc(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Qo=f("$ZodPrefault",(e,t)=>{w.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),ei=f("$ZodNonOptional",(e,t)=>{w.init(e,t),v(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Kc(i,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 ti=f("$ZodSuccess",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ae("ZodSuccess");let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.issues.length===0,r)):(r.value=o.issues.length===0,r)}}),ri=f("$ZodCatch",(e,t)=>{w.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);let o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(s=>K(s,n,j()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>K(i,n,j()))},input:r.value}),r.issues=[]),r)}}),ni=f("$ZodNaN",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>((typeof r.value!="number"||!Number.isNaN(r.value))&&r.issues.push({input:r.value,inst:e,expected:"nan",code:"invalid_type"}),r)}),oi=f("$ZodPipe",(e,t)=>{w.init(e,t),v(e._zod,"values",()=>t.in._zod.values),v(e._zod,"optin",()=>t.in._zod.optin),v(e._zod,"optout",()=>t.out._zod.optout),v(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Bt(s,t.in,n)):Bt(i,t.in,n)}let o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Bt(i,t.out,n)):Bt(o,t.out,n)}});function Bt(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var it=f("$ZodCodec",(e,t)=>{w.init(e,t),v(e._zod,"values",()=>t.in._zod.values),v(e._zod,"optin",()=>t.in._zod.optin),v(e._zod,"optout",()=>t.out._zod.optout),v(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if((n.direction||"forward")==="forward"){let i=t.in._zod.run(r,n);return i instanceof Promise?i.then(s=>Dt(s,t,n)):Dt(i,t,n)}else{let i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>Dt(s,t,n)):Dt(i,t,n)}}});function Dt(e,t,r){if(e.issues.length)return e.aborted=!0,e;if((r.direction||"forward")==="forward"){let o=t.transform(e.value,e);return o instanceof Promise?o.then(i=>Ut(e,i,t.out,r)):Ut(e,o,t.out,r)}else{let o=t.reverseTransform(e.value,e);return o instanceof Promise?o.then(i=>Ut(e,i,t.in,r)):Ut(e,o,t.in,r)}}function Ut(e,t,r,n){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:t,issues:e.issues},n)}var ii=f("$ZodReadonly",(e,t)=>{w.init(e,t),v(e._zod,"propValues",()=>t.innerType._zod.propValues),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"optin",()=>t.innerType?._zod?.optin),v(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(Yc):Yc(o)}});function Yc(e){return e.value=Object.freeze(e.value),e}var si=f("$ZodTemplateLiteral",(e,t)=>{w.init(e,t);let r=[];for(let n of t.parts)if(typeof n=="object"&&n!==null){if(!n._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...n._zod.traits].shift()}`);let o=n._zod.pattern instanceof RegExp?n._zod.pattern.source:n._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${n._zod.traits}`);let i=o.startsWith("^")?1:0,s=o.endsWith("$")?o.length-1:o.length;r.push(o.slice(i,s))}else if(n===null||Mr.has(typeof n))r.push(V(`${n}`));else throw new Error(`Invalid template literal part: ${n}`);e._zod.pattern=new RegExp(`^${r.join("")}$`),e._zod.parse=(n,o)=>typeof n.value!="string"?(n.issues.push({input:n.value,inst:e,expected:"string",code:"invalid_type"}),n):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(n.value)||n.issues.push({input:n.value,inst:e,code:"invalid_format",format:t.format??"template_literal",pattern:e._zod.pattern.source}),n)}),ci=f("$ZodFunction",(e,t)=>(w.init(e,t),e._def=t,e._zod.def=t,e.implement=r=>{if(typeof r!="function")throw new Error("implement() must be called with a function");return function(...n){let o=e._def.input?pe(e._def.input,n):n,i=Reflect.apply(r,this,o);return e._def.output?pe(e._def.output,i):i}},e.implementAsync=r=>{if(typeof r!="function")throw new Error("implementAsync() must be called with a function");return async function(...n){let o=e._def.input?await fe(e._def.input,n):n,i=await Reflect.apply(r,this,o);return e._def.output?await fe(e._def.output,i):i}},e._zod.parse=(r,n)=>typeof r.value!="function"?(r.issues.push({code:"invalid_type",expected:"function",input:r.value,inst:e}),r):(e._def.output&&e._def.output._zod.def.type==="promise"?r.value=e.implementAsync(r.value):r.value=e.implement(r.value),r),e.input=(...r)=>{let n=e.constructor;return Array.isArray(r[0])?new n({type:"function",input:new Gt({type:"tuple",items:r[0],rest:r[1]}),output:e._def.output}):new n({type:"function",input:r[0],output:e._def.output})},e.output=r=>{let n=e.constructor;return new n({type:"function",input:e._def.input,output:r})},e)),ai=f("$ZodPromise",(e,t)=>{w.init(e,t),e._zod.parse=(r,n)=>Promise.resolve(r.value).then(o=>t.innerType._zod.run({value:o,issues:[]},n))}),ui=f("$ZodLazy",(e,t)=>{w.init(e,t),v(e._zod,"innerType",()=>t.getter()),v(e._zod,"pattern",()=>e._zod.innerType?._zod?.pattern),v(e._zod,"propValues",()=>e._zod.innerType?._zod?.propValues),v(e._zod,"optin",()=>e._zod.innerType?._zod?.optin??void 0),v(e._zod,"optout",()=>e._zod.innerType?._zod?.optout??void 0),e._zod.parse=(r,n)=>e._zod.innerType._zod.run(r,n)}),li=f("$ZodCustom",(e,t)=>{T.init(e,t),w.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{let n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Gc(i,r,n,e));Gc(o,r,n,e)}});function Gc(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(Ze(o))}}var st={};$e(st,{default:()=>Bp});var Bp={};var Xc,pi=Symbol("ZodOutput"),fi=Symbol("ZodInput"),Ht=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 Vt(){return new Ht}(Xc=globalThis).__zod_globalRegistry??(Xc.__zod_globalRegistry=Vt());var ne=globalThis.__zod_globalRegistry;function di(e,t){return new e({type:"string",...g(t)})}function mi(e,t){return new e({type:"string",coerce:!0,...g(t)})}function hi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...g(t)})}function gi(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...g(t)})}function _i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...g(t)})}function yi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...g(t)})}function bi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...g(t)})}function $i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...g(t)})}function Wt(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...g(t)})}function xi(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...g(t)})}function wi(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...g(t)})}function vi(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...g(t)})}function ki(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...g(t)})}function zi(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...g(t)})}function Si(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...g(t)})}function Pi(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...g(t)})}function Ei(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...g(t)})}function Ii(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...g(t)})}function Ti(e,t){return new e({type:"string",format:"mac",check:"string_format",abort:!1,...g(t)})}function Ai(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...g(t)})}function Ri(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...g(t)})}function Ci(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...g(t)})}function Zi(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...g(t)})}function Ni(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...g(t)})}function Oi(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...g(t)})}var ji={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Li(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...g(t)})}function Mi(e,t){return new e({type:"string",format:"date",check:"string_format",...g(t)})}function Bi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...g(t)})}function Di(e,t){return new e({type:"string",format:"duration",check:"string_format",...g(t)})}function Ui(e,t){return new e({type:"number",checks:[],...g(t)})}function Fi(e,t){return new e({type:"number",coerce:!0,checks:[],...g(t)})}function Ji(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...g(t)})}function Ki(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",...g(t)})}function Yi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",...g(t)})}function Gi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",...g(t)})}function qi(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",...g(t)})}function Hi(e,t){return new e({type:"boolean",...g(t)})}function Vi(e,t){return new e({type:"boolean",coerce:!0,...g(t)})}function Wi(e,t){return new e({type:"bigint",...g(t)})}function Xi(e,t){return new e({type:"bigint",coerce:!0,...g(t)})}function Qi(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...g(t)})}function es(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...g(t)})}function ts(e,t){return new e({type:"symbol",...g(t)})}function rs(e,t){return new e({type:"undefined",...g(t)})}function ns(e,t){return new e({type:"null",...g(t)})}function os(e){return new e({type:"any"})}function is(e){return new e({type:"unknown"})}function ss(e,t){return new e({type:"never",...g(t)})}function cs(e,t){return new e({type:"void",...g(t)})}function as(e,t){return new e({type:"date",...g(t)})}function us(e,t){return new e({type:"date",coerce:!0,...g(t)})}function ls(e,t){return new e({type:"nan",...g(t)})}function Xt(e,t){return new jt({check:"less_than",...g(t),value:e,inclusive:!1})}function ct(e,t){return new jt({check:"less_than",...g(t),value:e,inclusive:!0})}function Qt(e,t){return new Lt({check:"greater_than",...g(t),value:e,inclusive:!1})}function at(e,t){return new Lt({check:"greater_than",...g(t),value:e,inclusive:!0})}function ps(e){return Qt(0,e)}function fs(e){return Xt(0,e)}function ds(e){return ct(0,e)}function ms(e){return at(0,e)}function hs(e,t){return new On({check:"multiple_of",...g(t),value:e})}function gs(e,t){return new Mn({check:"max_size",...g(t),maximum:e})}function _s(e,t){return new Bn({check:"min_size",...g(t),minimum:e})}function ys(e,t){return new Dn({check:"size_equals",...g(t),size:e})}function bs(e,t){return new Un({check:"max_length",...g(t),maximum:e})}function ut(e,t){return new Fn({check:"min_length",...g(t),minimum:e})}function $s(e,t){return new Jn({check:"length_equals",...g(t),length:e})}function lt(e,t){return new Kn({check:"string_format",format:"regex",...g(t),pattern:e})}function xs(e){return new Yn({check:"string_format",format:"lowercase",...g(e)})}function ws(e){return new Gn({check:"string_format",format:"uppercase",...g(e)})}function vs(e,t){return new qn({check:"string_format",format:"includes",...g(t),includes:e})}function ks(e,t){return new Hn({check:"string_format",format:"starts_with",...g(t),prefix:e})}function zs(e,t){return new Vn({check:"string_format",format:"ends_with",...g(t),suffix:e})}function Ss(e,t,r){return new Wn({check:"property",property:e,schema:t,...g(r)})}function Ps(e,t){return new Xn({check:"mime_type",mime:e,...g(t)})}function de(e){return new Qn({check:"overwrite",tx:e})}function Es(e){return de(t=>t.normalize(e))}function Is(){return de(e=>e.trim())}function Ts(){return de(e=>e.toLowerCase())}function As(){return de(e=>e.toUpperCase())}function Up(){return de(e=>jr(e))}function Fp(e,t,r){return new e({type:"array",element:t,...g(r)})}function Jp(e,t,r){return new e({type:"union",options:t,...g(r)})}function Kp(e,t,r){return new e({type:"union",options:t,inclusive:!1,...g(r)})}function Yp(e,t,r,n){return new e({type:"union",options:r,discriminator:t,...g(n)})}function Gp(e,t,r){return new e({type:"intersection",left:t,right:r})}function qp(e,t,r,n){let o=r instanceof w,i=o?n:r,s=o?r:null;return new e({type:"tuple",items:t,rest:s,...g(i)})}function Hp(e,t,r,n){return new e({type:"record",keyType:t,valueType:r,...g(n)})}function Vp(e,t,r,n){return new e({type:"map",keyType:t,valueType:r,...g(n)})}function Wp(e,t,r){return new e({type:"set",valueType:t,...g(r)})}function Xp(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 Qp(e,t,r){return new e({type:"enum",entries:t,...g(r)})}function ef(e,t,r){return new e({type:"literal",values:Array.isArray(t)?t:[t],...g(r)})}function Rs(e,t){return new e({type:"file",...g(t)})}function tf(e,t){return new e({type:"transform",transform:t})}function rf(e,t){return new e({type:"optional",innerType:t})}function nf(e,t){return new e({type:"nullable",innerType:t})}function of(e,t,r){return new e({type:"default",innerType:t,get defaultValue(){return typeof r=="function"?r():Ce(r)}})}function sf(e,t,r){return new e({type:"nonoptional",innerType:t,...g(r)})}function cf(e,t){return new e({type:"success",innerType:t})}function af(e,t,r){return new e({type:"catch",innerType:t,catchValue:typeof r=="function"?r:()=>r})}function uf(e,t,r){return new e({type:"pipe",in:t,out:r})}function lf(e,t){return new e({type:"readonly",innerType:t})}function pf(e,t,r){return new e({type:"template_literal",parts:t,...g(r)})}function ff(e,t){return new e({type:"lazy",getter:t})}function df(e,t){return new e({type:"promise",innerType:t})}function Cs(e,t,r){let n=g(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Zs(e,t,r){return new e({type:"custom",check:"custom",fn:t,...g(r)})}function Ns(e){let t=Qc(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(Ze(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(Ze(o))}},e(r.value,r)));return t}function Qc(e,t){let r=new T({check:"custom",...g(t)});return r._zod.check=e,r}function Os(e){let t=new T({check:"describe"});return t._zod.onattach=[r=>{let n=ne.get(r)??{};ne.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function js(e){let t=new T({check:"meta"});return t._zod.onattach=[r=>{let n=ne.get(r)??{};ne.add(r,{...n,...e})}],t._zod.check=()=>{},t}function Ls(e,t){let r=g(t),n=r.truthy??["true","1","yes","on","y","enabled"],o=r.falsy??["false","0","no","off","n","disabled"];r.case!=="sensitive"&&(n=n.map(h=>typeof h=="string"?h.toLowerCase():h),o=o.map(h=>typeof h=="string"?h.toLowerCase():h));let i=new Set(n),s=new Set(o),c=e.Codec??it,a=e.Boolean??nt,u=e.String??Oe,l=new u({type:"string",error:r.error}),d=new a({type:"boolean",error:r.error}),m=new c({type:"pipe",in:l,out:d,transform:((h,y)=>{let _=h;return r.case!=="sensitive"&&(_=_.toLowerCase()),i.has(_)?!0:s.has(_)?!1:(y.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:y.value,inst:m,continue:!1}),{})}),reverseTransform:((h,y)=>h===!0?n[0]||"true":o[0]||"false"),error:r.error});return m}function je(e,t,r,n={}){let o=g(n),i={...g(n),check:"string_format",type:"string",format:t,fn:typeof r=="function"?r:c=>r.test(c),...o};return r instanceof RegExp&&(i.pattern=r),new e(i)}function me(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??ne,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function P(e,t,r={path:[],schemaPath:[]}){var n;let o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;let s={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,s);let c=e._zod.toJSONSchema?.();if(c)s.schema=c;else{let l={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,l);else{let m=s.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,m,l)}let d=e._zod.parent;d&&(s.ref||(s.ref=d),P(d,t,l),t.seen.get(d).isParent=!0)}let a=t.metadataRegistry.get(e);return a&&Object.assign(s.schema,a),t.io==="input"&&B(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&s.schema._prefault&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function he(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=new Map;for(let s of e.seen.entries()){let c=e.metadataRegistry.get(s[0])?.id;if(c){let a=n.get(c);if(a&&a!==s[0])throw new Error(`Duplicate schema id "${c}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(c,s[0])}}let o=s=>{let c=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let d=e.external.registry.get(s[0])?.id,m=e.external.uri??(y=>y);if(d)return{ref:m(d)};let h=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=h,{defId:h,ref:`${m("__shared")}#/${c}/${h}`}}if(s[1]===r)return{ref:"#"};let u=`#/${c}/`,l=s[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:u+l}},i=s=>{if(s[1].schema.$ref)return;let c=s[1],{ref:a,defId:u}=o(s);c.def={...c.schema},u&&(c.defId=u);let l=c.schema;for(let d in l)delete l[d];l.$ref=a};if(e.cycles==="throw")for(let s of e.seen.entries()){let c=s[1];if(c.cycle)throw new Error(`Cycle detected: #/${c.cycle?.join("/")}/<root>
40
+
41
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let c=s[1];if(t===s[0]){i(s);continue}if(e.external){let u=e.external.registry.get(s[0])?.id;if(t!==s[0]&&u){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(c.cycle){i(s);continue}if(c.count>1&&e.reused==="ref"){i(s);continue}}}function ge(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=s=>{let c=e.seen.get(s);if(c.ref===null)return;let a=c.def??c.schema,u={...a},l=c.ref;if(c.ref=null,l){n(l);let m=e.seen.get(l),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(a.allOf=a.allOf??[],a.allOf.push(h)):Object.assign(a,h),Object.assign(a,u),s._zod.parent===l)for(let _ in a)_==="$ref"||_==="allOf"||_ in u||delete a[_];if(h.$ref&&m.def)for(let _ in a)_==="$ref"||_==="allOf"||_ in m.def&&JSON.stringify(a[_])===JSON.stringify(m.def[_])&&delete a[_]}let d=s._zod.parent;if(d&&d!==l){n(d);let m=e.seen.get(d);if(m?.schema.$ref&&(a.$ref=m.schema.$ref,m.def))for(let h in a)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(a[h])===JSON.stringify(m.def[h])&&delete a[h]}e.override({zodSchema:s,jsonSchema:a,path:c.path??[]})};for(let s of[...e.seen.entries()].reverse())n(s[0]);let o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);let i=e.external?.defs??{};for(let s of e.seen.entries()){let c=s[1];c.def&&c.defId&&(i[c.defId]=c.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?o.$defs=i:o.definitions=i);try{let s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Ms(t,"input",e.processors),output:Ms(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function B(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 B(n.element,r);if(n.type==="set")return B(n.valueType,r);if(n.type==="lazy")return B(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 B(n.innerType,r);if(n.type==="intersection")return B(n.left,r)||B(n.right,r);if(n.type==="record"||n.type==="map")return B(n.keyType,r)||B(n.valueType,r);if(n.type==="pipe")return B(n.in,r)||B(n.out,r);if(n.type==="object"){for(let o in n.shape)if(B(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(let o of n.options)if(B(o,r))return!0;return!1}if(n.type==="tuple"){for(let o of n.items)if(B(o,r))return!0;return!!(n.rest&&B(n.rest,r))}return!1}var mf=(e,t={})=>r=>{let n=me({...r,processors:t});return P(e,n),he(n,e),ge(n,e)},Ms=(e,t,r={})=>n=>{let{libraryOptions:o,target:i}=n??{},s=me({...o??{},target:i,io:t,processors:r});return P(e,s),he(s,e),ge(s,e)};var hf={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},gf=(e,t,r,n)=>{let o=r;o.type="string";let{minimum:i,maximum:s,format:c,patterns:a,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),c&&(o.format=hf[c]??c,o.format===""&&delete o.format,c==="time"&&delete o.format),u&&(o.contentEncoding=u),a&&a.size>0){let l=[...a];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},_f=(e,t,r,n)=>{let o=r,{minimum:i,maximum:s,format:c,multipleOf:a,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof c=="string"&&c.includes("int")?o.type="integer":o.type="number",typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l),typeof i=="number"&&(o.minimum=i,typeof l=="number"&&t.target!=="draft-04"&&(l>=i?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof s=="number"&&(o.maximum=s,typeof u=="number"&&t.target!=="draft-04"&&(u<=s?delete o.maximum:delete o.exclusiveMaximum)),typeof a=="number"&&(o.multipleOf=a)},yf=(e,t,r,n)=>{r.type="boolean"},bf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},$f=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},xf=(e,t,r,n)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},wf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},vf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},kf=(e,t,r,n)=>{r.not={}},zf=(e,t,r,n)=>{},Sf=(e,t,r,n)=>{},Pf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Ef=(e,t,r,n)=>{let o=e._zod.def,i=He(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},If=(e,t,r,n)=>{let o=e._zod.def,i=[];for(let s of o.values)if(s===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(s))}else i.push(s);if(i.length!==0)if(i.length===1){let s=i[0];r.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[s]:r.const=s}else i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),i.every(s=>typeof s=="boolean")&&(r.type="boolean"),i.every(s=>s===null)&&(r.type="null"),r.enum=i},Tf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Af=(e,t,r,n)=>{let o=r,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");o.type="string",o.pattern=i.source},Rf=(e,t,r,n)=>{let o=r,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:c,mime:a}=e._zod.bag;s!==void 0&&(i.minLength=s),c!==void 0&&(i.maxLength=c),a?a.length===1?(i.contentMediaType=a[0],Object.assign(o,i)):(Object.assign(o,i),o.anyOf=a.map(u=>({contentMediaType:u}))):Object.assign(o,i)},Cf=(e,t,r,n)=>{r.type="boolean"},Zf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Nf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Of=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},jf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Lf=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Mf=(e,t,r,n)=>{let o=r,i=e._zod.def,{minimum:s,maximum:c}=e._zod.bag;typeof s=="number"&&(o.minItems=s),typeof c=="number"&&(o.maxItems=c),o.type="array",o.items=P(i.element,t,{...n,path:[...n.path,"items"]})},Bf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object",o.properties={};let s=i.shape;for(let u in s)o.properties[u]=P(s[u],t,{...n,path:[...n.path,"properties",u]});let c=new Set(Object.keys(s)),a=new Set([...c].filter(u=>{let l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));a.size>0&&(o.required=Array.from(a)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=P(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Df=(e,t,r,n)=>{let o=e._zod.def,i=o.inclusive===!1,s=o.options.map((c,a)=>P(c,t,{...n,path:[...n.path,i?"oneOf":"anyOf",a]}));i?r.oneOf=s:r.anyOf=s},Uf=(e,t,r,n)=>{let o=e._zod.def,i=P(o.left,t,{...n,path:[...n.path,"allOf",0]}),s=P(o.right,t,{...n,path:[...n.path,"allOf",1]}),c=u=>"allOf"in u&&Object.keys(u).length===1,a=[...c(i)?i.allOf:[i],...c(s)?s.allOf:[s]];r.allOf=a},Ff=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="array";let s=t.target==="draft-2020-12"?"prefixItems":"items",c=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",a=i.items.map((m,h)=>P(m,t,{...n,path:[...n.path,s,h]})),u=i.rest?P(i.rest,t,{...n,path:[...n.path,c,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(o.prefixItems=a,u&&(o.items=u)):t.target==="openapi-3.0"?(o.items={anyOf:a},u&&o.items.anyOf.push(u),o.minItems=a.length,u||(o.maxItems=a.length)):(o.items=a,u&&(o.additionalItems=u));let{minimum:l,maximum:d}=e._zod.bag;typeof l=="number"&&(o.minItems=l),typeof d=="number"&&(o.maxItems=d)},Jf=(e,t,r,n)=>{let o=r,i=e._zod.def;o.type="object";let s=i.keyType,a=s._zod.bag?.patterns;if(i.mode==="loose"&&a&&a.size>0){let l=P(i.valueType,t,{...n,path:[...n.path,"patternProperties","*"]});o.patternProperties={};for(let d of a)o.patternProperties[d.source]=l}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(o.propertyNames=P(i.keyType,t,{...n,path:[...n.path,"propertyNames"]})),o.additionalProperties=P(i.valueType,t,{...n,path:[...n.path,"additionalProperties"]});let u=s._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(o.required=l)}},Kf=(e,t,r,n)=>{let o=e._zod.def,i=P(o.innerType,t,n),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},Yf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Gf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},qf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},Hf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Vf=(e,t,r,n)=>{let o=e._zod.def,i=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;P(i,t,n);let s=t.seen.get(e);s.ref=i},Wf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Xf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},Qf=(e,t,r,n)=>{let o=e._zod.def;P(o.innerType,t,n);let i=t.seen.get(e);i.ref=o.innerType},ed=(e,t,r,n)=>{let o=e._zod.innerType;P(o,t,n);let i=t.seen.get(e);i.ref=o},er={string:gf,number:_f,boolean:yf,bigint:bf,symbol:$f,null:xf,undefined:wf,void:vf,never:kf,any:zf,unknown:Sf,date:Pf,enum:Ef,literal:If,nan:Tf,template_literal:Af,file:Rf,success:Cf,custom:Zf,function:Nf,transform:Of,map:jf,set:Lf,array:Mf,object:Bf,union:Df,intersection:Uf,tuple:Ff,record:Jf,nullable:Kf,nonoptional:Yf,default:Gf,prefault:qf,catch:Hf,pipe:Vf,readonly:Wf,promise:Xf,optional:Qf,lazy:ed};function tr(e,t){if("_idmap"in e){let n=e,o=me({...t,processors:er}),i={};for(let a of n._idmap.entries()){let[u,l]=a;P(l,o)}let s={},c={registry:n,uri:t?.uri,defs:i};o.external=c;for(let a of n._idmap.entries()){let[u,l]=a;he(o,l),s[u]=ge(o,l)}if(Object.keys(i).length>0){let a=o.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[a]:i}}return{schemas:s}}let r=me({...t,processors:er});return P(e,r),he(r,e),ge(r,e)}var rr=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=me({processors:er,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return P(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),he(this.ctx,t);let n=ge(this.ctx,t),{"~standard":o,...i}=n;return i}};var ea={};var k=f("ZodMiniType",(e,t)=>{if(!e._zod)throw new Error("Uninitialized schema in ZodMiniType.");w.init(e,t),e.def=t,e.type=t.type,e.parse=(r,n)=>pe(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>we(e,r,n),e.parseAsync=async(r,n)=>fe(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>ve(e,r,n),e.check=(...r)=>e.clone({...t,checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),e.with=e.check,e.clone=(r,n)=>M(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.apply=r=>r(e)}),Me=f("ZodMiniString",(e,t)=>{Oe.init(e,t),k.init(e,t)});function b(e){return di(Me,e)}var A=f("ZodMiniStringFormat",(e,t)=>{I.init(e,t),Me.init(e,t)}),ta=f("ZodMiniEmail",(e,t)=>{oo.init(e,t),A.init(e,t)});function rd(e){return hi(ta,e)}var ra=f("ZodMiniGUID",(e,t)=>{ro.init(e,t),A.init(e,t)});function nd(e){return gi(ra,e)}var pt=f("ZodMiniUUID",(e,t)=>{no.init(e,t),A.init(e,t)});function od(e){return _i(pt,e)}function id(e){return yi(pt,e)}function sd(e){return bi(pt,e)}function cd(e){return $i(pt,e)}var Bs=f("ZodMiniURL",(e,t)=>{io.init(e,t),A.init(e,t)});function ad(e){return Wt(Bs,e)}function ud(e){return Wt(Bs,{protocol:/^https?$/,hostname:X.domain,...g(e)})}var na=f("ZodMiniEmoji",(e,t)=>{so.init(e,t),A.init(e,t)});function ld(e){return xi(na,e)}var oa=f("ZodMiniNanoID",(e,t)=>{co.init(e,t),A.init(e,t)});function pd(e){return wi(oa,e)}var ia=f("ZodMiniCUID",(e,t)=>{ao.init(e,t),A.init(e,t)});function fd(e){return vi(ia,e)}var sa=f("ZodMiniCUID2",(e,t)=>{uo.init(e,t),A.init(e,t)});function dd(e){return ki(sa,e)}var ca=f("ZodMiniULID",(e,t)=>{lo.init(e,t),A.init(e,t)});function md(e){return zi(ca,e)}var aa=f("ZodMiniXID",(e,t)=>{po.init(e,t),A.init(e,t)});function hd(e){return Si(aa,e)}var ua=f("ZodMiniKSUID",(e,t)=>{fo.init(e,t),A.init(e,t)});function gd(e){return Pi(ua,e)}var la=f("ZodMiniIPv4",(e,t)=>{yo.init(e,t),A.init(e,t)});function _d(e){return Ei(la,e)}var pa=f("ZodMiniIPv6",(e,t)=>{bo.init(e,t),A.init(e,t)});function yd(e){return Ii(pa,e)}var fa=f("ZodMiniCIDRv4",(e,t)=>{xo.init(e,t),A.init(e,t)});function bd(e){return Ai(fa,e)}var da=f("ZodMiniCIDRv6",(e,t)=>{wo.init(e,t),A.init(e,t)});function $d(e){return Ri(da,e)}var ma=f("ZodMiniMAC",(e,t)=>{$o.init(e,t),A.init(e,t)});function xd(e){return Ti(ma,e)}var ha=f("ZodMiniBase64",(e,t)=>{ko.init(e,t),A.init(e,t)});function wd(e){return Ci(ha,e)}var ga=f("ZodMiniBase64URL",(e,t)=>{zo.init(e,t),A.init(e,t)});function vd(e){return Zi(ga,e)}var _a=f("ZodMiniE164",(e,t)=>{So.init(e,t),A.init(e,t)});function kd(e){return Ni(_a,e)}var ya=f("ZodMiniJWT",(e,t)=>{Po.init(e,t),A.init(e,t)});function zd(e){return Oi(ya,e)}var ft=f("ZodMiniCustomStringFormat",(e,t)=>{Eo.init(e,t),A.init(e,t)});function Sd(e,t,r={}){return je(ft,e,t,r)}function Pd(e){return je(ft,"hostname",X.hostname,e)}function Ed(e){return je(ft,"hex",X.hex,e)}function Id(e,t){let r=t?.enc??"hex",n=`${e}_${r}`,o=X[n];if(!o)throw new Error(`Unrecognized hash format: ${n}`);return je(ft,n,o,t)}var dt=f("ZodMiniNumber",(e,t)=>{Jt.init(e,t),k.init(e,t)});function _e(e){return Ui(dt,e)}var Be=f("ZodMiniNumberFormat",(e,t)=>{Io.init(e,t),dt.init(e,t)});function Td(e){return Ji(Be,e)}function Ad(e){return Ki(Be,e)}function Rd(e){return Yi(Be,e)}function Cd(e){return Gi(Be,e)}function Zd(e){return qi(Be,e)}var mt=f("ZodMiniBoolean",(e,t)=>{nt.init(e,t),k.init(e,t)});function De(e){return Hi(mt,e)}var ht=f("ZodMiniBigInt",(e,t)=>{Kt.init(e,t),k.init(e,t)});function Nd(e){return Wi(ht,e)}var Ds=f("ZodMiniBigIntFormat",(e,t)=>{To.init(e,t),ht.init(e,t)});function Od(e){return Qi(Ds,e)}function jd(e){return es(Ds,e)}var ba=f("ZodMiniSymbol",(e,t)=>{Ao.init(e,t),k.init(e,t)});function Ld(e){return ts(ba,e)}var $a=f("ZodMiniUndefined",(e,t)=>{Ro.init(e,t),k.init(e,t)});function Md(e){return rs($a,e)}var xa=f("ZodMiniNull",(e,t)=>{Co.init(e,t),k.init(e,t)});function wa(e){return ns(xa,e)}var va=f("ZodMiniAny",(e,t)=>{Zo.init(e,t),k.init(e,t)});function Bd(){return os(va)}var ka=f("ZodMiniUnknown",(e,t)=>{No.init(e,t),k.init(e,t)});function nr(){return is(ka)}var za=f("ZodMiniNever",(e,t)=>{Oo.init(e,t),k.init(e,t)});function Sa(e){return ss(za,e)}var Pa=f("ZodMiniVoid",(e,t)=>{jo.init(e,t),k.init(e,t)});function Dd(e){return cs(Pa,e)}var or=f("ZodMiniDate",(e,t)=>{Lo.init(e,t),k.init(e,t)});function Ud(e){return as(or,e)}var Ea=f("ZodMiniArray",(e,t)=>{Mo.init(e,t),k.init(e,t)});function D(e,t){return new Ea({type:"array",element:e,...g(t)})}function Fd(e){let t=e._zod.def.shape;return La(Object.keys(t))}var ir=f("ZodMiniObject",(e,t)=>{Yt.init(e,t),k.init(e,t),v(e,"shape",()=>t.shape)});function E(e,t){let r={type:"object",shape:e??{},...g(t)};return new ir(r)}function Jd(e,t){return new ir({type:"object",shape:e,catchall:Sa(),...g(t)})}function Kd(e,t){return new ir({type:"object",shape:e,catchall:nr(),...g(t)})}function gt(e,t){return Tt(e,t)}function Yd(e,t){return Kr(e,t)}function Gd(e,t){return Tt(e,t)}function qd(e,t){return Fr(e,t)}function Hd(e,t){return Jr(e,t)}function Vd(e,t){return Yr(Js,e,t)}function Wd(e,t){return Gr(Ks,e,t)}function Xd(e,t){return e.clone({...e._zod.def,catchall:t})}var Us=f("ZodMiniUnion",(e,t)=>{ot.init(e,t),k.init(e,t)});function Ia(e,t){return new Us({type:"union",options:e,...g(t)})}var Ta=f("ZodMiniXor",(e,t)=>{Us.init(e,t),Bo.init(e,t)});function Qd(e,t){return new Ta({type:"union",options:e,inclusive:!1,...g(t)})}var Aa=f("ZodMiniDiscriminatedUnion",(e,t)=>{Do.init(e,t),k.init(e,t)});function em(e,t,r){return new Aa({type:"union",options:t,discriminator:e,...g(r)})}var Ra=f("ZodMiniIntersection",(e,t)=>{Uo.init(e,t),k.init(e,t)});function tm(e,t){return new Ra({type:"intersection",left:e,right:t})}var Ca=f("ZodMiniTuple",(e,t)=>{Gt.init(e,t),k.init(e,t)});function Za(e,t,r){let n=t instanceof w,o=n?r:t,i=n?t:null;return new Ca({type:"tuple",items:e,rest:i,...g(o)})}var sr=f("ZodMiniRecord",(e,t)=>{Fo.init(e,t),k.init(e,t)});function Na(e,t,r){return new sr({type:"record",keyType:e,valueType:t,...g(r)})}function rm(e,t,r){let n=M(e);return n._zod.values=void 0,new sr({type:"record",keyType:n,valueType:t,...g(r)})}function nm(e,t,r){return new sr({type:"record",keyType:e,valueType:t,mode:"loose",...g(r)})}var Oa=f("ZodMiniMap",(e,t)=>{Jo.init(e,t),k.init(e,t)});function om(e,t,r){return new Oa({type:"map",keyType:e,valueType:t,...g(r)})}var ja=f("ZodMiniSet",(e,t)=>{Ko.init(e,t),k.init(e,t)});function im(e,t){return new ja({type:"set",valueType:e,...g(t)})}var Fs=f("ZodMiniEnum",(e,t)=>{Yo.init(e,t),k.init(e,t),e.options=Object.values(t.entries)});function La(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(n=>[n,n])):e;return new Fs({type:"enum",entries:r,...g(t)})}function sm(e,t){return new Fs({type:"enum",entries:e,...g(t)})}var Ma=f("ZodMiniLiteral",(e,t)=>{Go.init(e,t),k.init(e,t)});function cm(e,t){return new Ma({type:"literal",values:Array.isArray(e)?e:[e],...g(t)})}var Ba=f("ZodMiniFile",(e,t)=>{qo.init(e,t),k.init(e,t)});function am(e){return Rs(Ba,e)}var Da=f("ZodMiniTransform",(e,t)=>{Ho.init(e,t),k.init(e,t)});function um(e){return new Da({type:"transform",transform:e})}var Js=f("ZodMiniOptional",(e,t)=>{qt.init(e,t),k.init(e,t)});function $(e){return new Js({type:"optional",innerType:e})}var Ua=f("ZodMiniExactOptional",(e,t)=>{Vo.init(e,t),k.init(e,t)});function lm(e){return new Ua({type:"optional",innerType:e})}var Fa=f("ZodMiniNullable",(e,t)=>{Wo.init(e,t),k.init(e,t)});function cr(e){return new Fa({type:"nullable",innerType:e})}function pm(e){return $(cr(e))}var Ja=f("ZodMiniDefault",(e,t)=>{Xo.init(e,t),k.init(e,t)});function fm(e,t){return new Ja({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Ce(t)}})}var Ka=f("ZodMiniPrefault",(e,t)=>{Qo.init(e,t),k.init(e,t)});function dm(e,t){return new Ka({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Ce(t)}})}var Ks=f("ZodMiniNonOptional",(e,t)=>{ei.init(e,t),k.init(e,t)});function mm(e,t){return new Ks({type:"nonoptional",innerType:e,...g(t)})}var Ya=f("ZodMiniSuccess",(e,t)=>{ti.init(e,t),k.init(e,t)});function hm(e){return new Ya({type:"success",innerType:e})}var Ga=f("ZodMiniCatch",(e,t)=>{ri.init(e,t),k.init(e,t)});function gm(e,t){return new Ga({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var qa=f("ZodMiniNaN",(e,t)=>{ni.init(e,t),k.init(e,t)});function _m(e){return ls(qa,e)}var Ys=f("ZodMiniPipe",(e,t)=>{oi.init(e,t),k.init(e,t)});function ym(e,t){return new Ys({type:"pipe",in:e,out:t})}var Gs=f("ZodMiniCodec",(e,t)=>{Ys.init(e,t),it.init(e,t)});function bm(e,t,r){return new Gs({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Ha=f("ZodMiniReadonly",(e,t)=>{ii.init(e,t),k.init(e,t)});function $m(e){return new Ha({type:"readonly",innerType:e})}var Va=f("ZodMiniTemplateLiteral",(e,t)=>{si.init(e,t),k.init(e,t)});function xm(e,t){return new Va({type:"template_literal",parts:e,...g(t)})}var Wa=f("ZodMiniLazy",(e,t)=>{ui.init(e,t),k.init(e,t)});function Xa(e){return new Wa({type:"lazy",getter:e})}var Qa=f("ZodMiniPromise",(e,t)=>{ai.init(e,t),k.init(e,t)});function wm(e){return new Qa({type:"promise",innerType:e})}var qs=f("ZodMiniCustom",(e,t)=>{li.init(e,t),k.init(e,t)});function vm(e,t){let r=new T({check:"custom",...g(t)});return r._zod.check=e,r}function eu(e,t){return Cs(qs,e??(()=>!0),t)}function km(e,t={}){return Zs(qs,e,t)}function zm(e){return Ns(e)}var Sm=Os,Pm=js;function Em(e,t={}){let r=eu(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 Im=(...e)=>Ls({Codec:Gs,Boolean:mt,String:Me},...e);function Tm(){let e=Xa(()=>Ia([b(),_e(),De(),wa(),D(e),Na(b(),e)]));return e}var tu=f("ZodMiniFunction",(e,t)=>{ci.init(e,t),k.init(e,t)});function Am(e){return new tu({type:"function",input:Array.isArray(e?.input)?Za(e?.input):e?.input??D(nr()),output:e?.output??nr()})}var Hs={};$e(Hs,{ZodMiniISODate:()=>ur,ZodMiniISODateTime:()=>ar,ZodMiniISODuration:()=>pr,ZodMiniISOTime:()=>lr,date:()=>Cm,datetime:()=>Rm,duration:()=>Nm,time:()=>Zm});var ar=f("ZodMiniISODateTime",(e,t)=>{mo.init(e,t),A.init(e,t)});function Rm(e){return Li(ar,e)}var ur=f("ZodMiniISODate",(e,t)=>{ho.init(e,t),A.init(e,t)});function Cm(e){return Mi(ur,e)}var lr=f("ZodMiniISOTime",(e,t)=>{go.init(e,t),A.init(e,t)});function Zm(e){return Bi(lr,e)}var pr=f("ZodMiniISODuration",(e,t)=>{_o.init(e,t),A.init(e,t)});function Nm(e){return Di(pr,e)}var Vs={};$e(Vs,{bigint:()=>Mm,boolean:()=>Lm,date:()=>Bm,number:()=>jm,string:()=>Om});function Om(e){return mi(Me,e)}function jm(e){return Fi(dt,e)}function Lm(e){return Vi(mt,e)}function Mm(e){return Xi(ht,e)}function Bm(e){return us(or,e)}var ze=b().check(ut(1)),Dm=b().check(lt(/^https?:\/\/.+/)),Xs=E({CLANCY_BASE_BRANCH:$(b()),CLANCY_LABEL:$(b()),CLANCY_MODEL:$(b()),CLANCY_NOTIFY_WEBHOOK:$(b()),CLANCY_STATUS_IN_PROGRESS:$(b()),CLANCY_STATUS_DONE:$(b()),CLANCY_STATUS_REVIEW:$(b()),MAX_ITERATIONS:$(b()),PLAYWRIGHT_ENABLED:$(b()),PLAYWRIGHT_DEV_PORT:$(b()),CLANCY_ROLES:$(b()),CLANCY_PLAN_STATUS:$(b()),CLANCY_PLAN_LABEL:$(b()),CLANCY_PLAN_STATE_TYPE:$(b()),CLANCY_STATUS_PLANNED:$(b()),CLANCY_SKIP_COMMENTS:$(b()),GITHUB_TOKEN:$(b()),GITLAB_TOKEN:$(b()),BITBUCKET_USER:$(b()),BITBUCKET_TOKEN:$(b()),CLANCY_GIT_PLATFORM:$(b()),CLANCY_GIT_API_URL:$(b()),CLANCY_MAX_REWORK:$(b()),CLANCY_TDD:$(b()),CLANCY_MODE:$(b()),CLANCY_BRIEF_ISSUE_TYPE:$(b()),CLANCY_BRIEF_EPIC:$(b()),CLANCY_COMPONENT:$(b()),CLANCY_FIX_RETRIES:$(b()),CLANCY_VERIFY_COMMANDS:$(b()),CLANCY_TOKEN_RATE:$(b()),CLANCY_TIME_LIMIT:$(b()),CLANCY_BRANCH_GUARD:$(b())}),nu=gt(Xs,{JIRA_BASE_URL:Dm,JIRA_USER:ze,JIRA_API_TOKEN:ze,JIRA_PROJECT_KEY:ze,CLANCY_JQL_STATUS:$(b()),CLANCY_JQL_SPRINT:$(b())}),ou=gt(Xs,{GITHUB_TOKEN:ze,GITHUB_REPO:ze}),iu=gt(Xs,{LINEAR_API_KEY:ze,LINEAR_TEAM_ID:ze});function fr(e){if(e.JIRA_BASE_URL){let t=nu.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=ou.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=iu.safeParse(e);return t.success?{provider:"linear",env:t.data}:`\u2717 Linear env validation failed: ${t.error.message}`}return"\u2717 No board detected \u2014 set Jira, GitHub, or Linear credentials in .clancy/.env"}function L(e){return e.env}import{appendFileSync as su,mkdirSync as Um,readFileSync as Fm}from"node:fs";import{dirname as Jm,join as cu}from"node:path";function Km(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),o=String(e.getUTCHours()).padStart(2,"0"),i=String(e.getUTCMinutes()).padStart(2,"0");return`${t}-${r}-${n} ${o}:${i}`}function C(e,t,r,n,o,i){let s=cu(e,".clancy","progress.txt");Um(Jm(s),{recursive:!0});let c=Km(new Date);if(n==="BRIEF"||n==="APPROVE_BRIEF"){let d=`${c} | ${n} | ${t} | ${r}
42
+ `;su(s,d,"utf8");return}let a=o!=null?` | pr:${o}`:"",u=i?` | parent:${i}`:"",l=`${c} | ${t} | ${r} | ${n}${a}${u}
43
+ `;su(s,l,"utf8")}function au(e){let t=cu(e,".clancy","progress.txt"),r;try{r=Fm(t,"utf8")}catch{return[]}let n=[];for(let o of r.split(`
44
+ `)){let i=o.trim();if(!i)continue;let s=i.split(" | ");if(s.length<4)continue;let c=s[0];if(s[1]==="BRIEF"||s[1]==="APPROVE_BRIEF"){n.push({timestamp:c,key:s[2],summary:s.slice(3).join(" | "),status:s[1]});continue}let a=s[1],u,l,d,m=[];for(let h=2;h<s.length;h++){let y=s[h],_=y.match(/^pr:(\d+)$/),z=y.match(/^parent:(.+)$/);_?l=parseInt(_[1],10):z?d=z[1]:h>=3&&!u&&y===y.toUpperCase()&&y.length>1?u=y:m.push(y)}u&&(u==="APPROVE"&&(u="APPROVE_PLAN"),n.push({timestamp:c,key:a,summary:m.join(" | "),status:u,...l!=null&&{prNumber:l},...d!=null&&{parent:d}}))}return n}function uu(e,t){let r=au(e),n=t.toLowerCase(),o=0;for(let i of r)i.key.toLowerCase()===n&&i.status==="REWORK"&&o++;return o}function U(e,t){let r=au(e),n=new Map;for(let o of r)n.set(o.key,o);return[...n.values()].filter(o=>o.status===t)}function Ym(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function dr(e,t,r,n){let o=[],i=r?Ym(r):!1;switch(e.provider){case"github":o.push(i?`Part of ${t.key}`:`Closes ${t.key}`);break;case"jira":o.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":o.push(`**Linear:** ${t.key}`);break}return o.push(""),t.description&&(o.push("## Description"),o.push(""),o.push(t.description),o.push("")),n&&(o.push("## \u26A0 Verification Warning"),o.push(""),o.push(n),o.push(""),o.push("This PR may need manual fixes before merging."),o.push("")),o.push("---"),o.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),o.push(""),o.push("---"),o.push("<details>"),o.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),o.push(""),o.push("To request changes:"),o.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),o.push("- **General feedback** \u2014 reply with a comment starting with `Rework:` followed by what needs fixing. Comments without the `Rework:` prefix are treated as discussion."),o.push(""),o.push("Example: `Rework: The form validation doesn't handle empty passwords`"),o.push(""),o.push("</details>"),o.join(`
45
+ `)}function lu(e,t,r){let n=[];n.push(`## ${e} \u2014 ${t}`),n.push(""),n.push("### Children"),n.push("");for(let o of r){let i=o.prNumber?` (#${o.prNumber})`:"";n.push(`- ${o.key} \u2014 ${o.summary}${i}`)}return n.push(""),n.push("---"),n.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),n.join(`
46
+ `)}import{execFileSync as Gm}from"node:child_process";function pu(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],i=r?.[2]??n?.[2];if(!(!o||!i))return{hostname:o,path:i}}function qm(e){let t=pu(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(Hm(r)){case"github":{let i=n.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let i=n.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:r};let s=n.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function Hm(e){let t=e.toLowerCase();return t==="github.com"||t.includes("github")?"github":t==="gitlab.com"||t.includes("gitlab")?"gitlab":t==="bitbucket.org"||t.includes("bitbucket")?"bitbucket":t.includes("dev.azure")||t.includes("visualstudio")?"azure":"unknown"}function ye(e){let t;try{t=Gm("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?Vm(t,e):qm(t):{host:"none"}}function Vm(e,t){let r=pu(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let i=o.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let i=o.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let i=o.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:n};let s=o.split("/");return s.length>=2?{host:"bitbucket-server",projectKey:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function _t(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var Wm=E({id:_e(),links:E({html:$(E({href:$(b())}))}),participants:D(E({state:$(b()),role:b()}))}),fu=E({values:D(Wm)}),Xm=E({content:E({raw:b()}),inline:$(E({path:$(b())})),created_on:b(),user:$(E({nickname:$(b())}))}),Qs=E({values:D(Xm)}),Qm=E({id:_e(),links:E({self:$(D(E({href:$(b())})))}),reviewers:D(E({status:b()}))}),du=E({values:D(Qm)}),eh=E({text:b(),anchor:$(E({path:$(b())})),createdDate:_e(),author:$(E({slug:$(b())}))}),th=E({action:b(),comment:$(eh)}),ec=E({values:D(th)});async function Se(e,t,r,n,o){let i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{let c=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:i.signal});if(!c.ok){let l=await c.text().catch(()=>""),d=o?.(c.status,l)??!1;return{ok:!1,error:`HTTP ${c.status}${l?`: ${l.slice(0,200)}`:""}`,alreadyExists:d}}let a=await c.json(),u=n(a);return!u.url&&!u.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:u.url,number:u.number}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}finally{clearTimeout(s)}}function Ue(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function te(e){return e.trim().toLowerCase().startsWith("rework:")}function Pe(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function mu(e,t,r,n,o,i,s,c){return Se(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ue(e,t)},{title:s,description:c,source:{branch:{name:o}},destination:{branch:{name:i}},close_source_branch:!0},a=>{let u=a;return{url:u.links?.html?.href??"",number:u.id??0}},(a,u)=>a===409&&u.includes("already exists"))}async function hu(e,t,r,n,o,i,s,c){return Se(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:s,description:c,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${i}`,repository:{slug:n,project:{key:r}}}},a=>{let u=a;return{url:u.links?.self?.[0]?.href??"",number:u.id??0}},(a,u)=>a===409&&(u.includes("already exists")||u.includes("Only one pull request")))}async function gu(e,t,r,n,o,i){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ue(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:i}})})).ok}catch{return!1}}async function _u(e,t,r,n,o,i){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:i})})).ok}catch{return!1}}async function yu(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,c=await fetch(s,{headers:{Authorization:Ue(e,t)}});if(!c.ok)return;let a=fu.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],l=u.links.html?.href??"",d=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${u.id}/comments?pagelen=100`,m=await fetch(d,{headers:{Authorization:Ue(e,t)}});if(!m.ok)return;let h=Qs.parse(await m.json()),y=i?h.values.filter(H=>H.created_on>i):h.values,_=y.some(H=>H.inline!=null),z=y.some(H=>H.inline==null&&te(H.content.raw));return{changesRequested:_||z,prNumber:u.id,prUrl:l}}catch{return}}async function bu(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,c=await fetch(s,{headers:{Authorization:Ue(e,t)}});if(!c.ok)return[];let a=Qs.parse(await c.json()),u=i?a.values.filter(d=>d.created_on>i):a.values,l=[];for(let d of u)if(d.inline!=null){let m=d.inline.path?`[${d.inline.path}] `:"";l.push(`${m}${d.content.raw}`)}else te(d.content.raw)&&l.push(Pe(d.content.raw));return l}catch{return[]}}async function $u(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return;let a=du.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],l=u.links.self?.[0]?.href??"",d=`${t}/projects/${r}/repos/${n}/pull-requests/${u.id}/activities?limit=100`,m=await fetch(d,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=ec.parse(await m.json()),y=i?Date.parse(i):void 0,_=h.values.filter(R=>R.action==="COMMENTED"&&R.comment&&(y==null||R.comment.createdDate>y)),z=_.some(R=>R.comment.anchor!=null),F=_.some(R=>R.comment.anchor==null&&te(R.comment.text));return{changesRequested:z||F,prNumber:u.id,prUrl:l}}catch{return}}async function xu(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return[];let a=ec.parse(await c.json()),u=i?Date.parse(i):void 0,l=[];for(let d of a.values){if(d.action!=="COMMENTED"||!d.comment||u!=null&&d.comment.createdDate<=u)continue;let m=d.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";l.push(`${h}${m.text}`)}else te(m.text)&&l.push(Pe(m.text))}return l}catch{return[]}}var rh=p.object({number:p.number(),title:p.string(),body:p.optional(p.nullable(p.string())),pull_request:p.optional(p.unknown()),milestone:p.optional(p.nullable(p.object({title:p.string()}))),labels:p.optional(p.array(p.object({name:p.optional(p.string())})))}),wu=p.array(rh),nh=p.object({id:p.number(),body:p.optional(p.nullable(p.string())),created_at:p.string(),user:p.optional(p.object({login:p.string()}))}),tc=p.array(nh),oh=p.object({number:p.number(),html_url:p.string(),state:p.string()}),vu=p.array(oh),ih=p.object({state:p.string(),user:p.object({login:p.string()}),submitted_at:p.string()}),ku=p.array(ih),sh=p.object({body:p.optional(p.nullable(p.string())),path:p.optional(p.string()),created_at:p.optional(p.string()),user:p.optional(p.object({login:p.string()}))}),rc=p.array(sh);var q="https://api.github.com";async function mr(e,t,r,n){try{let o=new AbortController,i=setTimeout(()=>o.abort(),1e4),s=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(i),s.ok)return{ok:!0};let c=r[s.status];return c?{ok:!1,error:c}:{ok:!1,error:`\u2717 HTTP ${s.status}`}}catch{return{ok:!1,error:n}}}function Q(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function be(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}async function zu(e,t,r,n,o=q,i,s){try{let c=Q(e),a=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:c});if(!a.ok)return;let u=vu.parse(await a.json());if(u.length===0)return;let l=u[0],d=i?`&since=${i}`:"",[m,h]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${l.number}/comments?per_page=100${d}`,{headers:c}),fetch(`${o}/repos/${t}/issues/${l.number}/comments?per_page=100${d}`,{headers:c})]);if(!m.ok||!h.ok)return;let y=rc.parse(await m.json()),_=tc.parse(await h.json()),z=s?y.filter(re=>re.user?.login!==s):y,F=s?_.filter(re=>re.user?.login!==s):_,H=z.length>0,R=F.some(re=>re.body&&te(re.body)),O=H||R,J;if(!O)try{let re=await fetch(`${o}/repos/${t}/pulls/${l.number}/reviews?per_page=100`,{headers:c});if(re.ok){let Er=ku.parse(await re.json()),ac=new Map;for(let ie of Er)ie.state==="PENDING"||ie.state==="DISMISSED"||ac.set(ie.user.login,ie.state);let uc=[...ac.entries()].filter(([,ie])=>ie==="CHANGES_REQUESTED");uc.length>0&&(O=!0,J=uc.map(([ie])=>ie))}}catch{}return{changesRequested:O,prNumber:l.number,prUrl:l.html_url,reviewers:J}}catch{return}}async function Su(e,t,r,n=q,o,i){try{let s=Q(e),c=o?`&since=${o}`:"",[a,u]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${c}`,{headers:s}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${c}`,{headers:s})]);if(!a.ok||!u.ok)return[];let l=rc.parse(await a.json()),d=tc.parse(await u.json()),m=i?l.filter(_=>_.user?.login!==i):l,h=i?d.filter(_=>_.user?.login!==i):d,y=[];for(let _ of m){if(!_.body)continue;let z=_.path?`[${_.path}] `:"";y.push(`${z}${_.body}`)}for(let _ of h)_.body&&te(_.body)&&y.push(Pe(_.body));return y}catch{return[]}}async function Pu(e,t,r,n,o=q){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...Q(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function Eu(e,t,r,n,o=q){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...Q(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function Iu(e,t,r,n,o,i,s=q){return Se(`${s}/repos/${t}/pulls`,Q(e),{title:o,head:r,base:n,body:i},c=>{let a=c;return{url:a.html_url??"",number:a.number??0}},(c,a)=>c===422&&a.includes("already exists"))}var ch=E({iid:_e(),web_url:b(),detailed_merge_status:$(b())}),Tu=D(ch),ah=E({body:b(),resolvable:De(),resolved:$(De()),system:De(),type:$(cr(b())),created_at:$(b()),position:$(E({new_path:$(b())})),author:$(E({username:b()}))}),uh=E({id:$(b()),notes:D(ah)}),nc=D(uh);async function Au(e,t,r,n,o,i,s){let c=encodeURIComponent(r);return Se(`${t}/projects/${c}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:i,description:s,remove_source_branch:!0},a=>{let u=a;return{url:u.web_url??"",number:u.iid??0}},(a,u)=>a===409&&u.includes("already exists"))}async function Ru(e,t,r,n,o){try{let i=encodeURIComponent(r);return(await fetch(`${t}/projects/${i}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function Cu(e,t,r,n,o){let i=encodeURIComponent(r),s=0;for(let c of o)try{(await fetch(`${t}/projects/${i}/merge_requests/${n}/discussions/${c}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&s++}catch{}return s}async function Zu(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests?source_branch=${n}&state=opened`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return;let a=Tu.parse(await c.json());if(a.length===0)return;let u=a[0],l=`${t}/projects/${i}/merge_requests/${u.iid}/discussions?per_page=100`,d=await fetch(l,{headers:{"PRIVATE-TOKEN":e}});if(!d.ok)return;let m=nc.parse(await d.json()),h=!1;for(let y of m){for(let _ of y.notes)if(!_.system&&!(o&&_.created_at&&_.created_at<=o)){if(_.type==="DiffNote"&&_.resolvable!==!1&&_.resolved!==!0){h=!0;break}if(te(_.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:u.iid,prUrl:u.web_url}}catch{return}}async function Nu(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests/${n}/discussions?per_page=100`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return{comments:[],discussionIds:[]};let a=nc.parse(await c.json()),u=[],l=[];for(let d of a){let m=!1;for(let h of d.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let y=h.position?.new_path?`[${h.position.new_path}] `:"";u.push(`${y}${h.body}`),m=!0}else te(h.body)&&(u.push(Pe(h.body)),m=!0);m&&d.id&&l.push(d.id)}return{comments:u,discussionIds:l}}catch{return{comments:[],discussionIds:[]}}}function yt(e,t){let r=L(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 bt(e,t,r,n,o,i){let s=yt(e,t);if(!s)return;let c=_t(t,L(e).CLANCY_GIT_API_URL);if(c)switch(t.host){case"github":return Iu(s.token,`${t.owner}/${t.repo}`,r,n,o,i,c);case"gitlab":return Au(s.token,c,t.projectPath,r,n,o,i);case"bitbucket":return mu(s.username,s.token,t.workspace,t.repoSlug,r,n,o,i);case"bitbucket-server":return hu(s.token,c,t.projectKey,t.repoSlug,r,n,o,i);default:return}}function hr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function oc(e,t){let r=pc(e),n=Ke(e);if(r)return vt(e)?!0:(console.log(S(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Te(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(S(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log(x(" To preserve this work, push it manually:")),console.log(x(` git push -u origin ${e}`)),console.log(x(" Then re-run /clancy:once to continue.")),!1;try{if(Ou("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),Ou("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),Ye(e))console.log(N(` \u2713 Created epic branch ${e}`));else return console.log(S(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Te(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function ic(e,t,r,n,o,i=!1,s,c){if(!Ye(r)){console.log(S(`\u26A0 Could not push ${r} to origin.`)),console.log(x(" The branch is still available locally. Push manually:")),console.log(x(` git push -u origin ${r}`)),i||C(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,s),Z(n);let y=Ee(Date.now()-o);return console.log(""),console.log(S(`\u26A0 ${t.key} implemented but push failed`)+x(` (${y})`)),!1}console.log(N(` \u2713 Pushed ${r}`));let u;try{let y=ph(process.cwd(),".clancy","verify-attempt.txt"),_=lh(y,"utf8").trim(),z=parseInt(_,10);z>0&&(u=`Verification checks did not fully pass (${z} attempt(s)). Review carefully.`)}catch{}let l=L(e).CLANCY_GIT_PLATFORM,d=ye(l),m=`feat(${t.key}): ${t.title}`,h=dr(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n,u);if(d.host!=="none"&&d.host!=="unknown"&&d.host!=="azure"){let y=await bt(e,d,r,n,m,h);if(y?.ok)console.log(N(` \u2713 PR created: ${y.url}`)),i||C(process.cwd(),t.key,t.title,"PR_CREATED",y.number,s);else if(y&&!y.ok&&y.alreadyExists)console.log(S(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s);else if(y&&!y.ok){console.log(S(` \u26A0 PR/MR creation failed: ${y.error}`));let _=hr(d,r,n);console.log(_?x(` Create one manually: ${_}`):x(" Branch pushed \u2014 create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}else{let _=hr(d,r,n);console.log(_?x(` Create a PR: ${_}`):x(" Branch pushed to remote. Create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}}else d.host==="none"?(console.log(S(`\u26A0 No git remote configured. Branch available locally: ${r}`)),i||C(process.cwd(),t.key,t.title,"LOCAL",void 0,s)):(console.log(x(" Branch pushed to remote. Create a PR/MR manually.")),i||C(process.cwd(),t.key,t.title,"PUSHED",void 0,s));if(e.provider!=="github"&&c){let y=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;y&&await c.transitionTicket(t,y)}return Z(n),!0}async function ju(e,t,r,n,o,i){console.log(""),console.log(N(`\u{1F389} All children of ${t} are done!`)),console.log(x(` Creating epic PR: ${n} \u2192 ${o}`));let s=U(process.cwd(),"PR_CREATED"),c=U(process.cwd(),"DONE"),a=U(process.cwd(),"REWORK"),u=U(process.cwd(),"PUSHED"),l=[...s,...c,...a,...u].filter(F=>F.parent===t),d=L(e).CLANCY_GIT_PLATFORM,m=ye(d),h=`feat(${t}): ${r}`,y=lu(t,r,l);if(m.host==="none"||m.host==="unknown"||m.host==="azure")return console.log(S("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log(x(` Push manually: git push origin ${n}`)),console.log(x(` Then create a PR targeting ${o}`)),!1;let _=await bt(e,m,n,o,h,y);if(_?.ok){if(console.log(N(` \u2713 Epic PR created: ${_.url}`)),C(process.cwd(),t,r,"EPIC_PR_CREATED",_.number),e.provider!=="github"&&i){let F=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;F&&await i.transitionTicket({key:t,title:r,description:"",parentInfo:"none",blockers:"None"},F)}return!0}if(_&&!_.ok&&_.alreadyExists)return console.log(S(` \u26A0 An epic PR already exists for ${n}.`)),C(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(S(`\u26A0 Epic PR creation failed: ${_?.error??"unknown error"}`)),console.log(x(" Create it manually:")),console.log(x(` Branch: ${n} \u2192 ${o}`));let z=hr(m,n,o);return z&&console.log(x(` ${z}`)),!1}async function Lu(e){let t=e.board,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,i=e.baseBranch,s=e.hasParent,c=e.isRework??!1;e.originalBranch=lc();let a=!1;if(s&&!c){let l=await t.fetchChildrenStatus(r.parentInfo,r.linearIssueId);l&&l.total===1&&(a=!0)}e.skipEpicBranch=a;let u=s&&!a?o:i;if(e.effectiveTarget=u,c){if(s&&!a){if(!oc(o,i))return e.originalBranch&&Z(e.originalBranch),!1}else Tr(u,i);vt(n)?Z(n):(Z(u),Z(n,!0))}else if(s&&!a){if(!oc(o,i))return e.originalBranch&&Z(e.originalBranch),!1;Z(o),Z(n,!0)}else Tr(i,i),Z(i),Z(n,!0);try{hc(e.cwd,{pid:process.pid,ticketKey:r.key,ticketTitle:r.title,ticketBranch:n,targetBranch:u,parentKey:r.parentInfo,description:(r.description??"").slice(0,2e3),startedAt:new Date().toISOString()}),e.lockOwner=!0}catch{console.log(x(" (warning: could not write lock file \u2014 crash recovery disabled)"))}return!0}function fh(e){return e.includes("hooks.slack.com")}function dh(e){return JSON.stringify({text:e})}function mh(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 Mu(e,t){let r=fh(e)?dh(t):mh(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 Bu(e){let t=e.config,r=e.ticket,n=Ee(Date.now()-e.startTime);console.log(""),console.log(N(`\u{1F3C1} ${r.key} complete`)+x(` (${n})`)),console.log(x(` "Bake 'em away, toys."`));let o=t.env.CLANCY_NOTIFY_WEBHOOK;return o&&await Mu(o,`\u2713 Clancy completed [${r.key}] ${r.title}`),!0}import{appendFileSync as hh,mkdirSync as gh}from"node:fs";import{dirname as _h,join as yh}from"node:path";function Du(e,t,r,n=6600){let o=yh(e,".clancy","costs.log");gh(_h(o),{recursive:!0});let i=new Date(r).getTime(),s=Date.now(),c=Number.isNaN(i)?0:Math.max(0,s-i),a=Math.round(c/6e4),u=Math.round(a*n),d=`${new Date().toISOString()} | ${t} | ${a}min | ~${u} tokens (estimated)
47
+ `;hh(o,d,"utf8")}function Uu(e){let t=e.config,r=e.ticket;try{let n=zt(e.cwd);if(n){let o=Number(t.env.CLANCY_TOKEN_RATE??"6600");Du(e.cwd,r.key,n.startedAt,Number.isFinite(o)&&o>0?o:6600)}}catch{}return!0}var bh=p.object({login:p.string()}),$h=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,gr;function _r(e){return $h.test(e)}async function Ju(e,t){return mr(`${q}/repos/${t}`,Q(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 Fe(e,t){if(gr)return gr;try{let r=await fetch(`${t??q}/user`,{headers:Q(e)});if(!r.ok){let i=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${i}`),"@me"}let n=await r.json(),o=bh.safeParse(n);if(o.success)return gr=o.data.login,gr;console.warn("\u26A0 Unexpected GitHub /user response \u2014 falling back to @me")}catch(r){console.warn(`\u26A0 GitHub /user request failed: ${r instanceof Error?r.message:String(r)} \u2014 falling back to @me`)}return"@me"}async function yr(e,t,r,n,o,i=5){let s,c=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&c.set("labels",r);try{s=await fetch(`${q}/repos/${t}/issues?${c}`,{headers:Q(e)})}catch(d){return console.warn(`\u26A0 GitHub API request failed: ${d instanceof Error?d.message:String(d)}`),[]}if(!s.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${s.status}`),[];let a;try{a=await s.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let u=wu.safeParse(a);if(!u.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${u.error.message}`),[];let l=u.data.filter(d=>!d.pull_request);return o&&(l=l.filter(d=>!d.labels?.some(m=>m.name==="clancy:hitl"))),l.slice(0,i).map(d=>({key:`#${d.number}`,title:d.title,description:d.body??"",provider:"github",milestone:d.milestone?.title}))}async function br(e,t,r,n){if(!_r(t))return!1;let o=/Blocked by #(\d+)/gi,i=new Set,s;for(;(s=o.exec(n))!==null;){let c=parseInt(s[1],10);!Number.isNaN(c)&&c!==r&&i.add(c)}if(!i.size)return!1;try{for(let c of i){let a=await fetch(`${q}/repos/${t}/issues/${c}`,{headers:Q(e)});if(!a.ok)continue;if((await a.json()).state!=="closed")return!0}return!1}catch{return!1}}async function Ku(e,t,r){if(_r(t))try{let n=await Fu(e,t,`Epic: #${r}`);return n&&n.total>0?n:await Fu(e,t,`Parent: #${r}`)}catch{return}}async function Fu(e,t,r){let n=Q(e),o=`"${r}" repo:${t} is:issue`,i=new URLSearchParams({q:o,per_page:"1"}),s=await fetch(`${q}/search/issues?${i}`,{headers:n});if(!s.ok)return;let a=(await s.json()).total_count??0;if(a===0)return{total:0,incomplete:0};let u=`"${r}" repo:${t} is:issue is:open`,l=new URLSearchParams({q:u,per_page:"1"}),d=await fetch(`${q}/search/issues?${l}`,{headers:n});if(!d.ok)return{total:a,incomplete:a};let h=(await d.json()).total_count??0;return{total:a,incomplete:h}}function $r(e,t){return e==="github"?`feature/issue-${t.replace("#","")}`:`feature/${t.toLowerCase()}`}function xr(e,t,r){return r?e==="github"?`milestone/${r.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"")}`:`epic/${r.toLowerCase()}`:t}async function Yu(e){let t=U(process.cwd(),"PR_CREATED"),r=U(process.cwd(),"REWORK"),n=U(process.cwd(),"PUSHED"),o=U(process.cwd(),"PUSH_FAILED"),i=[...t,...r,...n,...o];if(i.length===0)return;let s=L(e).CLANCY_GIT_PLATFORM,c=ye(s);if(c.host==="none"||c.host==="unknown"||c.host==="azure")return;let a=yt(e,c);if(!a)return;let u=_t(c,L(e).CLANCY_GIT_API_URL);if(!u)return;let l;if(c.host==="github")try{l=await Fe(a.token,u)}catch{}let d=i.slice(0,5);for(let m of d){let h=$r(e.provider,m.key),y;if(m.timestamp){let z=new Date(m.timestamp.replace(" ","T")+"Z");y=Number.isNaN(z.getTime())?void 0:z.toISOString()}let _;switch(c.host){case"github":_=await zu(a.token,`${c.owner}/${c.repo}`,h,c.owner,u,y,l);break;case"gitlab":_=await Zu(a.token,u,c.projectPath,h,y);break;case"bitbucket":_=await yu(a.username,a.token,c.workspace,c.repoSlug,h,y);break;case"bitbucket-server":_=await $u(a.token,u,c.projectKey,c.repoSlug,h,y);break}if(_?.changesRequested){let z=[],F;switch(c.host){case"github":z=await Su(a.token,`${c.owner}/${c.repo}`,_.prNumber,u,y,l);break;case"gitlab":{let R=await Nu(a.token,u,c.projectPath,_.prNumber,y);z=R.comments,F=R.discussionIds;break}case"bitbucket":z=await bu(a.username,a.token,c.workspace,c.repoSlug,_.prNumber,y);break;case"bitbucket-server":z=await xu(a.token,u,c.projectKey,c.repoSlug,_.prNumber,y);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:z,prNumber:_.prNumber,discussionIds:F,reviewers:_.reviewers??[]}}}}function xh(e){if(e.length===0)return"[clancy] Rework pushed addressing reviewer feedback.";let t=e.length,r=e.slice(0,3).map(o=>`- ${o.slice(0,80)}`).join(`
48
+ `),n=e.length>3?`
49
+ - ...`:"";return`[clancy] Rework pushed addressing ${t} feedback item${t!==1?"s":""}.
50
+
51
+ ${r}${n}`}async function Gu(e,t,r,n,o){let i=L(e).CLANCY_GIT_PLATFORM,s=ye(i);if(s.host==="none"||s.host==="unknown"||s.host==="azure")return;let c=yt(e,s);if(!c)return;let a=_t(s,L(e).CLANCY_GIT_API_URL);if(!a)return;let u=xh(r);try{let l=!1;switch(s.host){case"github":l=await Pu(c.token,`${s.owner}/${s.repo}`,t,u,a);break;case"gitlab":l=await Ru(c.token,a,s.projectPath,t,u);break;case"bitbucket":l=await gu(c.username,c.token,s.workspace,s.repoSlug,t,u);break;case"bitbucket-server":l=await _u(c.token,a,s.projectKey,s.repoSlug,t,u);break}l&&console.log(x(" \u2713 Posted rework comment"))}catch{}if(s.host==="gitlab"&&n&&n.length>0)try{let l=await Cu(c.token,a,s.projectPath,t,n);l>0&&console.log(x(` \u2713 Resolved ${l} discussion thread${l!==1?"s":""}`))}catch{}if(s.host==="github"&&o&&o.length>0)try{await Eu(c.token,`${s.owner}/${s.repo}`,t,o,a)&&console.log(x(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function qu(e){let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.effectiveTarget,i=e.hasParent,s=e.skipEpicBranch??!1,c=e.isRework??!1,a=i&&!s?r.parentInfo:void 0;if(c){if(!await ic(t,r,n,o,e.startTime,!0,a,e.board))return C(e.cwd,r.key,r.title,"PUSH_FAILED",void 0,a),!1;C(e.cwd,r.key,r.title,"REWORK",e.reworkPrNumber,a),e.reworkPrNumber!=null&&await Gu(t,e.reworkPrNumber,e.prFeedback??[],e.reworkDiscussionIds,e.reworkReviewers)}else if(!await ic(t,r,n,o,e.startTime,!1,a,e.board))return!1;return!0}function Hu(e){if(!e.dryRun)return!0;let t=e.config,r=e.ticket,n=e.ticketBranch,o=e.targetBranch,i=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(S("\u2500\u2500 Dry Run \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(` Ticket: ${Ie(`[${r.key}]`)} ${r.title}`),e.isRework&&console.log(" Mode: Rework"),console.log(` ${i}:${" ".repeat(14-i.length)}${r.parentInfo}`),t.provider!=="github"&&console.log(` Blockers: ${r.blockers}`),console.log(` Target branch: ${n} \u2192 ${o}`),r.description&&console.log(` Description: ${r.description}`),console.log(S("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500")),console.log(x(" No changes made. Remove --dry-run to run for real.")),!1}async function Vu(e){let t=e.config,r=e.board;try{let n=U(e.cwd,"PR_CREATED"),o=U(e.cwd,"REWORK"),i=U(e.cwd,"PUSHED"),s=[...n,...o,...i],c=new Set(U(e.cwd,"EPIC_PR_CREATED").map(l=>l.key)),a=new Set(s.map(l=>l.parent).filter(l=>!!l).filter(l=>!c.has(l))),u=t.env.CLANCY_BASE_BRANCH??"main";for(let l of a){let d=await r.fetchChildrenStatus(l);if(d&&d.incomplete===0&&d.total>0){let m=xr(t.provider,u,l),h=await ju(t,l,l,m,u,r);console.log(h?N(` \u2713 Epic ${l} complete \u2014 PR created`):S(`\u26A0 Epic PR creation failed for ${l}. Create manually:
52
+ git push origin ${m}
53
+ Then create a PR targeting ${u}`))}}}catch{}return!0}import{spawnSync as Wu}from"node:child_process";function Xu(e,t){let r=["-p","--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Wu("claude",r,{input:e,stdio:["pipe","pipe","pipe"],encoding:"utf8"});return{stdout:n.stdout??"",ok:n.status===0&&!n.error}}function Qu(e,t){let r=["--dangerously-skip-permissions"];t&&r.push("--model",t);let n=Wu("claude",r,{input:e,stdio:["pipe","inherit","inherit"],encoding:"utf8"});return n.status===0&&!n.error}function wh(e){return["You are evaluating whether a ticket can be implemented as pure code changes in a repository.","",`Ticket: [${e.key}] ${e.title}`,"Description:",e.description,"","Can this ticket be completed entirely through code changes committed to a git repository?","","Answer INFEASIBLE if the ticket requires ANY of:","- Manual testing or configuration in external tools or admin panels","- Access to external services, APIs, or platforms not available in the codebase","- Physical, hardware, or infrastructure changes","- Design assets that do not yet exist","- Deployment or infrastructure changes outside the repository","- Human judgment calls that require stakeholder input","","Answer with exactly one line in this format:","FEASIBLE","or","INFEASIBLE: one-line reason","","Do not include any other text."].join(`
54
+ `)}function vh(e){let t=e.trim().split(`
55
+ `).pop()?.trim()??"";return/^INFEASIBLE/i.test(t)?{feasible:!1,reason:t.replace(/^INFEASIBLE:?\s*/i,"").trim()||void 0}:{feasible:!0}}function el(e,t){let r=wh(e),{stdout:n,ok:o}=Xu(r,t);return o?vh(n):{feasible:!0}}function tl(e){let t=e.config,r=e.ticket;if(!e.isRework&&!e.skipFeasibility){console.log(x(" Checking feasibility..."));let n=el({key:r.key,title:r.title,description:r.description},t.env.CLANCY_MODEL);if(!n.feasible){let o=n.reason??"not implementable as code changes";return console.log(S(`\u23ED\uFE0F Ticket skipped [${r.key}]: ${o}`)),C(e.cwd,r.key,r.title,"SKIPPED"),!1}console.log(N(" \u2713 Feasibility check passed"))}return console.log(""),!0}var rl=`
49
56
  ## Test-Driven Development
50
57
 
51
58
  You MUST follow the red-green-refactor cycle for every behaviour change:
@@ -59,7 +66,7 @@ You MUST follow the red-green-refactor cycle for every behaviour change:
59
66
 
60
67
  Repeat for each behaviour. Do not write implementation code without a failing test first.
61
68
  Design interfaces for testability \u2014 prefer pure functions and thin boundaries
62
- so modules are easy to test in isolation.`;function Um(e){switch(e){case"jira":return"Jira ticket";case"github":return"GitHub Issue";case"linear":return"Linear issue"}}function Bm(e){return e==="github"?"Milestone":"Epic"}function fu(e){let t=e.feedbackComments.length>0?e.feedbackComments.map((n,o)=>`${o+1}. ${n}`).join(`
69
+ so modules are easy to test in isolation.`;function kh(e){switch(e){case"jira":return"Jira ticket";case"github":return"GitHub Issue";case"linear":return"Linear issue"}}function zh(e){return e==="github"?"Milestone":"Epic"}function nl(e){let t=e.feedbackComments.length>0?e.feedbackComments.map((n,o)=>`${o+1}. ${n}`).join(`
63
70
  `):"No reviewer comments found. Review the existing implementation and fix any issues.",r=e.previousContext?`
64
71
 
65
72
  ## Previous Implementation
@@ -75,7 +82,7 @@ ${e.description}
75
82
 
76
83
  ${t}${r}
77
84
 
78
- Address the specific feedback above. Don't re-implement unrelated areas. Focus only on what was flagged.${e.tdd?pu:""}
85
+ Address the specific feedback above. Don't re-implement unrelated areas. Focus only on what was flagged.${e.tdd?rl:""}
79
86
 
80
87
  Steps:
81
88
  1. Read core docs in .clancy/docs/: STACK.md, ARCHITECTURE.md, CONVENTIONS.md, GIT.md, DEFINITION-OF-DONE.md, CONCERNS.md
@@ -83,7 +90,7 @@ Steps:
83
90
  2. Follow the conventions in GIT.md exactly
84
91
  3. Fix the issues identified in the reviewer feedback
85
92
  4. Commit your work following the conventions in GIT.md
86
- 5. When done, confirm you are finished.`}function du(e){let t=Um(e.provider),r=Bm(e.provider),n=e.blockers&&e.provider!=="github"?`
93
+ 5. When done, confirm you are finished.`}function ol(e){let t=kh(e.provider),r=zh(e.provider),n=e.blockers&&e.provider!=="github"?`
87
94
  Blockers: ${e.blockers}`:"";return`You are implementing ${t} ${e.key}.
88
95
 
89
96
  ${e.provider==="github"?"Title":"Summary"}: ${e.title}
@@ -103,13 +110,15 @@ If you must SKIP this ${e.provider==="github"?"issue":"ticket"}:
103
110
  3. Append to .clancy/progress.txt: YYYY-MM-DD HH:MM | ${e.key} | {reason} | SKIPPED
104
111
  4. Stop \u2014 no branches, no file changes, no git operations.
105
112
 
106
- If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.tdd?pu:""}
113
+ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.tdd?rl:""}
107
114
  1. Read core docs in .clancy/docs/: STACK.md, ARCHITECTURE.md, CONVENTIONS.md, GIT.md, DEFINITION-OF-DONE.md, CONCERNS.md
108
115
  Also read if relevant to this ticket: INTEGRATIONS.md (external APIs/services/auth), TESTING.md (tests/specs/coverage), DESIGN-SYSTEM.md (UI/components/styles), ACCESSIBILITY.md (accessibility/ARIA/WCAG)
109
116
  2. Follow the conventions in GIT.md exactly
110
117
  3. Implement the ${e.provider==="github"?"issue":"ticket"} fully
111
118
  4. Commit your work following the conventions in GIT.md
112
- 5. When done, confirm you are finished.`}var k=e=>`\x1B[2m${e}\x1B[0m`,lr=e=>`\x1B[1m${e}\x1B[0m`;var oe=e=>`\x1B[32m${e}\x1B[0m`,Je=e=>`\x1B[31m${e}\x1B[0m`,C=e=>`\x1B[33m${e}\x1B[0m`;var Fm=l.object({number:l.number(),title:l.string(),body:l.optional(l.nullable(l.string())),pull_request:l.optional(l.unknown()),milestone:l.optional(l.nullable(l.object({title:l.string()}))),labels:l.optional(l.array(l.object({name:l.optional(l.string())})))}),mu=l.array(Fm),Jm=l.object({id:l.number(),body:l.optional(l.nullable(l.string())),created_at:l.string(),user:l.optional(l.object({login:l.string()}))}),Ys=l.array(Jm),qm=l.object({number:l.number(),html_url:l.string(),state:l.string()}),hu=l.array(qm),Gm=l.object({state:l.string(),user:l.object({login:l.string()}),submitted_at:l.string()}),gu=l.array(Gm),Ym=l.object({body:l.optional(l.nullable(l.string())),path:l.optional(l.string()),created_at:l.optional(l.string()),user:l.optional(l.object({login:l.string()}))}),Hs=l.array(Ym);var V="https://api.github.com";async function pr(e,t,r,n){try{let o=new AbortController,i=setTimeout(()=>o.abort(),1e4),s=await fetch(e,{headers:t,signal:o.signal});if(clearTimeout(i),s.ok)return{ok:!0};let c=r[s.status];return c?{ok:!1,error:c}:{ok:!1,error:`\u2717 HTTP ${s.status}`}}catch{return{ok:!1,error:n}}}function ee(e){return{Authorization:`Bearer ${e}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}}function $e(e){return{Authorization:`Basic ${e}`,Accept:"application/json"}}var Hm=l.object({login:l.string()}),Km=/^[a-zA-Z0-9_.-]+\/[a-zA-Z0-9_.-]+$/,fr;function dr(e){return Km.test(e)}async function bu(e,t){return pr(`${V}/repos/${t}`,ee(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 mr(e,t){if(fr)return fr;try{let r=await fetch(`${t??V}/user`,{headers:ee(e)});if(!r.ok){let i=r.status===401||r.status===403?' Fine-grained PATs need "Account permissions \u2192 read" (or classic PATs need read:user scope).':"";return console.warn(`\u26A0 GitHub /user returned HTTP ${r.status} \u2014 falling back to @me.${i}`),"@me"}let n=await r.json(),o=Hm.safeParse(n);if(o.success)return fr=o.data.login,fr;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 yu(e,t,r,n,o,i=5){let s,c=new URLSearchParams({state:"open",assignee:n??"@me",per_page:"10"});r&&c.set("labels",r);try{s=await fetch(`${V}/repos/${t}/issues?${c}`,{headers:ee(e)})}catch(d){return console.warn(`\u26A0 GitHub API request failed: ${d instanceof Error?d.message:String(d)}`),[]}if(!s.ok)return console.warn(`\u26A0 GitHub API returned HTTP ${s.status}`),[];let a;try{a=await s.json()}catch{return console.warn("\u26A0 GitHub API returned invalid JSON"),[]}let u=mu.safeParse(a);if(!u.success)return console.warn(`\u26A0 Unexpected GitHub response shape: ${u.error.message}`),[];let p=u.data.filter(d=>!d.pull_request);return o&&(p=p.filter(d=>!d.labels?.some(m=>m.name==="clancy:hitl"))),p.slice(0,i).map(d=>({key:`#${d.number}`,title:d.title,description:d.body??"",provider:"github",milestone:d.milestone?.title}))}async function xu(e,t,r,n){if(!dr(t))return!1;let o=/Blocked by #(\d+)/gi,i=new Set,s;for(;(s=o.exec(n))!==null;){let c=parseInt(s[1],10);!Number.isNaN(c)&&c!==r&&i.add(c)}if(!i.size)return!1;try{for(let c of i){let a=await fetch(`${V}/repos/${t}/issues/${c}`,{headers:ee(e)});if(!a.ok)continue;if((await a.json()).state!=="closed")return!0}return!1}catch{return!1}}async function $u(e,t,r){if(dr(t))try{let n=await _u(e,t,`Epic: #${r}`);return n&&n.total>0?n:await _u(e,t,`Parent: #${r}`)}catch{return}}async function _u(e,t,r){let n=ee(e),o=`"${r}" repo:${t} is:issue`,i=new URLSearchParams({q:o,per_page:"1"}),s=await fetch(`${V}/search/issues?${i}`,{headers:n});if(!s.ok)return;let a=(await s.json()).total_count??0;if(a===0)return{total:0,incomplete:0};let u=`"${r}" repo:${t} is:issue is:open`,p=new URLSearchParams({q:u,per_page:"1"}),d=await fetch(`${V}/search/issues?${p}`,{headers:n});if(!d.ok)return{total:a,incomplete:a};let h=(await d.json()).total_count??0;return{total:a,incomplete:h}}var Vm=l.object({type:l.optional(l.object({name:l.optional(l.string())})),inwardIssue:l.optional(l.object({key:l.optional(l.string())}))}),Wm=l.object({summary:l.string(),description:l.optional(l.unknown()),issuelinks:l.optional(l.array(Vm)),parent:l.optional(l.object({key:l.optional(l.string())})),customfield_10014:l.optional(l.nullable(l.string()))}),Xm=l.object({key:l.string(),fields:Wm}),vu=l.object({total:l.optional(l.number()),isLast:l.optional(l.boolean()),issues:l.array(Xm)}),Qm=l.object({id:l.string(),name:l.string()}),wu=l.object({transitions:l.array(Qm)}),eh=l.object({type:l.optional(l.object({name:l.optional(l.string())})),inwardIssue:l.optional(l.object({key:l.optional(l.string()),fields:l.optional(l.object({status:l.optional(l.object({statusCategory:l.optional(l.object({key:l.optional(l.string())}))}))}))}))}),zu=l.object({fields:l.optional(l.object({issuelinks:l.optional(l.array(eh))}))});var th=/^[a-zA-Z0-9 _\-'.]+$/,Ks=/^[A-Z][A-Z0-9]+-\d+$/;function Ie(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function hr(e){return th.test(e)}async function Su(e,t,r){return pr(`${e}/rest/api/3/project/${t}`,$e(r),{401:"\u2717 Jira auth failed \u2014 check credentials",403:"\u2717 Jira permission denied for this project",404:`\u2717 Jira project "${t}" not found`},"\u2717 Could not reach Jira \u2014 check network")}function rh(e,t,r,n,o){let i=[`project="${e}"`];return r&&i.push("sprint in openSprints()"),n&&i.push(`labels = "${n}"`),o&&i.push('labels != "clancy:hitl"'),i.push("assignee=currentUser()"),i.push(`status="${t}"`),i.join(" AND ")+" ORDER BY priority ASC"}function nh(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 Pu(e,t,r,n,o,i,s,c=5){let a=rh(r,n,o,i,s),u;try{u=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:a,maxResults:c,fields:["summary","description","issuelinks","parent","customfield_10014"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!u.ok)return console.warn(`\u26A0 Jira API returned HTTP ${u.status}`),[];let p;try{p=await u.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let d=vu.safeParse(p);return d.success?d.data.issues.map(m=>{let h=m.fields,b=(h.issuelinks??[]).filter(v=>v.type?.name==="Blocks"&&v.inwardIssue?.key).map(v=>v.inwardIssue?.key).filter(v=>!!v),g=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:nh(h.description),provider:"jira",epicKey:g,blockers:b}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${d.error.message}`),[])}async function Eu(e,t,r){if(!Ks.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:$e(t)});if(!n.ok)return!1;let o=await n.json(),i=zu.safeParse(o);return i.success?(i.data.fields?.issuelinks??[]).some(c=>{if(c.type?.name!=="Blocks"||!c.inwardIssue?.key)return!1;let a=c.inwardIssue.fields?.status?.statusCategory?.key;return a?a!=="done":!1}):!1}catch{return!1}}async function Iu(e,t,r){if(Ks.test(r))try{let n=r.split("-")[0],o=await ku(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await ku(e,t,`parent = ${r}`)}catch{return}}async function ku(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let i=(await n.json()).total??0;if(i===0)return{total:0,incomplete:0};let s=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!s.ok)return;let a=(await s.json()).total??0;return{total:i,incomplete:a}}async function oh(e,t,r,n){if(!Ks.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:$e(t)})}catch(a){console.warn(`\u26A0 Jira transitions request failed: ${a instanceof Error?a.message:String(a)}`);return}if(!o.ok)return;let i;try{i=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let s=wu.safeParse(i);if(!s.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${s.error.message}`);return}return s.data.transitions.find(a=>a.name===n)?.id}async function Tu(e,t,r,n){try{let o=await oh(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...$e(t),"Content-Type":"application/json"},body:JSON.stringify({transition:{id:o}})})).ok:(console.warn(`\u26A0 Jira transition "${n}" not found for ${r}`),!1)}catch{return!1}}var ih=l.object({id:l.string(),identifier:l.string(),title:l.string(),description:l.optional(l.nullable(l.string())),parent:l.optional(l.nullable(l.object({identifier:l.string(),title:l.optional(l.string())}))),labels:l.optional(l.object({nodes:l.array(l.object({name:l.string()}))}))}),Au=l.object({data:l.optional(l.object({viewer:l.optional(l.object({assignedIssues:l.optional(l.object({nodes:l.array(ih)}))}))}))}),Ru=l.object({data:l.optional(l.object({viewer:l.optional(l.object({id:l.optional(l.string())}))}))}),Zu=l.object({data:l.optional(l.object({workflowStates:l.optional(l.object({nodes:l.array(l.object({id:l.string()}))}))}))}),Cu=l.object({data:l.optional(l.object({issueUpdate:l.optional(l.object({success:l.optional(l.boolean())}))}))}),sh=l.object({type:l.string(),relatedIssue:l.optional(l.object({state:l.optional(l.object({type:l.optional(l.string())}))}))}),Nu=l.object({data:l.optional(l.object({issue:l.optional(l.object({relations:l.optional(l.object({nodes:l.array(sh)}))}))}))}),ch=l.object({state:l.optional(l.object({type:l.optional(l.string())}))}),ju=l.object({data:l.optional(l.object({issueSearch:l.optional(l.object({nodes:l.array(ch)}))}))});var ah=/^[a-zA-Z0-9_-]+$/,Ou="https://api.linear.app/graphql";function Lu(e){return ah.test(e)}async function qe(e,t,r){let n;try{n=await fetch(Ou,{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 Mu(e){let t;try{t=await fetch(Ou,{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=Ru.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 Du(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,i=o?"labels: { name: { eq: $label } }":"",s=["$teamId: String!",...o?["$label: String!"]:[]],c=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",i].filter(Boolean),a=`
119
+ 5. When done, confirm you are finished.`}function il(e){let t=e.config,r=e.ticket,n=e.isRework??!1,o=e.targetBranch,i=t.env.CLANCY_TDD==="true",s;n?s=nl({key:r.key,title:r.title,description:r.description,provider:t.provider,feedbackComments:e.prFeedback??[],previousContext:fc(o),tdd:i}):s=ol({provider:t.provider,key:r.key,title:r.title,description:r.description,parentInfo:r.parentInfo,blockers:t.provider!=="github"?r.blockers:void 0,tdd:i}),process.env.CLANCY_ONCE_ACTIVE="1";let c;try{c=Qu(s,t.env.CLANCY_MODEL)}finally{delete process.env.CLANCY_ONCE_ACTIVE}return c?!0:(console.log(S("\u26A0 Claude session exited with an error. Skipping merge.")),!1)}import{execFileSync as sc}from"node:child_process";import{existsSync as Sh,readFileSync as Ph}from"node:fs";import{join as Eh}from"node:path";function Ih(e){let t={};for(let r of e.split(`
120
+ `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let o=n.indexOf("=");if(o===-1)continue;let i=n.slice(0,o).trim(),s=n.slice(o+1).trim();s.length>=2&&(s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'"))&&(s=s.slice(1,-1)),t[i]=s}return t}function sl(e){let t=Eh(e,".clancy",".env");if(!Sh(t))return;let r=Ph(t,"utf8");return Ih(r)}function Th(e){try{return sc("which",[e],{stdio:"ignore"}),!0}catch{return!1}}function Ah(){try{return sc("git",["rev-parse","--git-dir"],{stdio:"ignore"}),!0}catch{return!1}}function wr(e){for(let n of["claude","git"])if(!Th(n))return{ok:!1,error:`\u2717 ${n} is required but not found`};let t=sl(e);if(!t)return{ok:!1,error:"\u2717 .clancy/.env not found \u2014 run /clancy:init first"};if(!Ah())return{ok:!1,error:"\u2717 Not inside a git repository"};let r;try{sc("git",["ls-remote","origin","HEAD"],{encoding:"utf8",timeout:5e3,stdio:["pipe","pipe","pipe"]})}catch{r="\u26A0 Could not reach origin. PR creation and rework detection may not work."}if(wt()){let n="\u26A0 Working directory has uncommitted changes \u2014 they will be included in the branch";r=r?`${r}
121
+ ${n}`:n}return{ok:!0,env:t,warning:r}}import{execFileSync as $t}from"node:child_process";function cl(e){let t=e.ticketBranch;if(!Ke(t))return;let r;try{r=$t("git",["rev-parse","--abbrev-ref","HEAD"],{encoding:"utf8"}).trim()}catch{return}try{Z(t)}catch{return}let n=!1,o=!1;try{n=wt()}catch{}try{o=$t("git",["log",`origin/${t}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{try{o=$t("git",["log",`origin/${e.targetBranch}..${t}`,"--oneline"],{encoding:"utf8"}).trim().length>0}catch{}}try{Z(r)}catch{}if(!(!n&&!o))return{branch:t,hasUncommitted:n,hasUnpushed:o}}async function al(e,t,r){try{if(Z(r.branch),r.hasUncommitted)try{$t("git",["add","-A"],{encoding:"utf8"}),$t("git",["commit","-m",`fix(${t.ticketKey}): resume after crash`],{encoding:"utf8"}),console.log(N(` \u2713 Committed in-progress work for ${t.ticketKey}`))}catch{return console.log(S(` \u26A0 Could not commit changes on ${r.branch}`)),!1}if(!Ye(r.branch))return console.log(S(` \u26A0 Could not push ${r.branch} to origin`)),!1;console.log(N(` \u2713 Pushed ${r.branch}`));let o=L(e).CLANCY_GIT_PLATFORM,i=ye(o),s=`feat(${t.ticketKey}): ${t.ticketTitle}`,c=dr(e,{key:t.ticketKey,title:t.ticketTitle,description:"",provider:e.provider},t.targetBranch);if(i.host!=="none"&&i.host!=="unknown"&&i.host!=="azure"){let a=await bt(e,i,r.branch,t.targetBranch,s,c);a?.ok?(console.log(N(` \u2713 PR created: ${a.url}`)),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",a.number,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0)):(console.log(x(" Branch pushed \u2014 create a PR manually.")),C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0))}else C(process.cwd(),t.ticketKey,t.ticketTitle,"RESUMED",void 0,t.parentKey&&t.parentKey!=="none"?t.parentKey:void 0);try{Z(t.targetBranch)}catch{}return!0}catch(n){return console.log(S(` \u26A0 Resume failed: ${n instanceof Error?n.message:String(n)}`)),!1}}async function ul(e){let t=zt(e.cwd);if(!t)return!0;if(!gc(t))return console.log(S(`\u26A0 Another Clancy session is running (PID ${t.pid}, ticket ${t.ticketKey}). Aborting.`)),!1;console.log(x(` Stale lock found (PID ${t.pid}, ticket ${t.ticketKey}). Cleaning up...`)),St(e.cwd),Pt(e.cwd);try{let r=cl(t);if(r)if(e.isAfk){console.log(S(` \u21BB Resuming crashed session: ${t.ticketKey} on ${r.branch}`));let n=wr(e.cwd);if(n.ok){let o=fr(n.env);if(typeof o!="string"&&await al(o,t,r))return console.log(N(` \u2713 Resumed ${t.ticketKey}`)),!1}}else console.log(S(` Found in-progress work on ${r.branch}.`+(r.hasUncommitted?" Has uncommitted changes.":"")+(r.hasUnpushed?" Has unpushed commits.":""))),console.log(x(" Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually."))}catch{}return!0}function ll(e){return{async ping(){return Ju(e.GITHUB_TOKEN,e.GITHUB_REPO)},validateInputs(){if(!_r(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 Fe(e.GITHUB_TOKEN);return(await yr(e.GITHUB_TOKEN,e.GITHUB_REPO,e.CLANCY_LABEL,r,t.excludeHitl)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.milestone??"none",blockers:"None"}))},async fetchBlockerStatus(t){let r=parseInt(t.key.replace("#",""),10);return Number.isNaN(r)?!1:br(e.GITHUB_TOKEN,e.GITHUB_REPO,r,t.description)},async fetchChildrenStatus(t){let r=parseInt(t.replace("#",""),10);if(!Number.isNaN(r))return Ku(e.GITHUB_TOKEN,e.GITHUB_REPO,r)},async transitionTicket(){return!1},sharedEnv(){return e}}}var Rh=p.object({type:p.optional(p.object({name:p.optional(p.string())})),inwardIssue:p.optional(p.object({key:p.optional(p.string())}))}),Ch=p.object({summary:p.string(),description:p.optional(p.unknown()),issuelinks:p.optional(p.array(Rh)),parent:p.optional(p.object({key:p.optional(p.string())})),customfield_10014:p.optional(p.nullable(p.string()))}),Zh=p.object({key:p.string(),fields:Ch}),pl=p.object({total:p.optional(p.number()),isLast:p.optional(p.boolean()),issues:p.array(Zh)}),Nh=p.object({id:p.string(),name:p.string()}),fl=p.object({transitions:p.array(Nh)}),Oh=p.object({type:p.optional(p.object({name:p.optional(p.string())})),inwardIssue:p.optional(p.object({key:p.optional(p.string()),fields:p.optional(p.object({status:p.optional(p.object({statusCategory:p.optional(p.object({key:p.optional(p.string())}))}))}))}))}),dl=p.object({fields:p.optional(p.object({issuelinks:p.optional(p.array(Oh))}))});var jh=/^[a-zA-Z0-9 _\-'.]+$/,cc=/^[A-Z][A-Z0-9]+-\d+$/;function xt(e,t){return Buffer.from(`${e}:${t}`).toString("base64")}function vr(e){return jh.test(e)}async function hl(e,t,r){return mr(`${e}/rest/api/3/project/${t}`,be(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 Lh(e,t,r,n,o){let i=[`project="${e}"`];return r&&i.push("sprint in openSprints()"),n&&i.push(`labels = "${n}"`),o&&i.push('labels != "clancy:hitl"'),i.push("assignee=currentUser()"),i.push(`status="${t}"`),i.join(" AND ")+" ORDER BY priority ASC"}function Mh(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 kr(e,t,r,n,o,i,s,c=5){let a=Lh(r,n,o,i,s),u;try{u=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...be(t),"Content-Type":"application/json"},body:JSON.stringify({jql:a,maxResults:c,fields:["summary","description","issuelinks","parent","customfield_10014"]})})}catch(m){return console.warn(`\u26A0 Jira API request failed: ${m instanceof Error?m.message:String(m)}`),[]}if(!u.ok)return console.warn(`\u26A0 Jira API returned HTTP ${u.status}`),[];let l;try{l=await u.json()}catch{return console.warn("\u26A0 Jira API returned invalid JSON"),[]}let d=pl.safeParse(l);return d.success?d.data.issues.map(m=>{let h=m.fields,y=(h.issuelinks??[]).filter(z=>z.type?.name==="Blocks"&&z.inwardIssue?.key).map(z=>z.inwardIssue?.key).filter(z=>!!z),_=h.parent?.key??h.customfield_10014??void 0;return{key:m.key,title:h.summary,description:Mh(h.description),provider:"jira",epicKey:_,blockers:y}}):(console.warn(`\u26A0 Unexpected Jira response shape: ${d.error.message}`),[])}async function zr(e,t,r){if(!cc.test(r))return!1;try{let n=await fetch(`${e}/rest/api/3/issue/${r}?fields=issuelinks`,{headers:be(t)});if(!n.ok)return!1;let o=await n.json(),i=dl.safeParse(o);return i.success?(i.data.fields?.issuelinks??[]).some(c=>{if(c.type?.name!=="Blocks"||!c.inwardIssue?.key)return!1;let a=c.inwardIssue.fields?.status?.statusCategory?.key;return a?a!=="done":!1}):!1}catch{return!1}}async function gl(e,t,r){if(cc.test(r))try{let n=r.split("-")[0],o=await ml(e,t,`project = "${n}" AND description ~ "Epic: ${r}"`);return o&&o.total>0?o:await ml(e,t,`parent = ${r}`)}catch{return}}async function ml(e,t,r){let n=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...be(t),"Content-Type":"application/json"},body:JSON.stringify({jql:r,maxResults:0})});if(!n.ok)return;let i=(await n.json()).total??0;if(i===0)return{total:0,incomplete:0};let s=await fetch(`${e}/rest/api/3/search/jql`,{method:"POST",headers:{...be(t),"Content-Type":"application/json"},body:JSON.stringify({jql:`${r} AND statusCategory != "done"`,maxResults:0})});if(!s.ok)return;let a=(await s.json()).total??0;return{total:i,incomplete:a}}async function Bh(e,t,r,n){if(!cc.test(r))return;let o;try{o=await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{headers:be(t)})}catch(a){console.warn(`\u26A0 Jira transitions request failed: ${a instanceof Error?a.message:String(a)}`);return}if(!o.ok)return;let i;try{i=await o.json()}catch{console.warn("\u26A0 Jira transitions returned invalid JSON");return}let s=fl.safeParse(i);if(!s.success){console.warn(`\u26A0 Unexpected Jira transitions response: ${s.error.message}`);return}return s.data.transitions.find(a=>a.name===n)?.id}async function _l(e,t,r,n){try{let o=await Bh(e,t,r,n);return o?(await fetch(`${e}/rest/api/3/issue/${r}/transitions`,{method:"POST",headers:{...be(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 yl(e){let t=xt(e.JIRA_USER,e.JIRA_API_TOKEN);return{async ping(){return hl(e.JIRA_BASE_URL,e.JIRA_PROJECT_KEY,t)},validateInputs(){if(!vr(e.JIRA_PROJECT_KEY))return"\u2717 JIRA_PROJECT_KEY contains invalid characters";if(e.CLANCY_LABEL&&!vr(e.CLANCY_LABEL))return"\u2717 CLANCY_LABEL contains invalid characters";if(e.CLANCY_JQL_STATUS&&!vr(e.CLANCY_JQL_STATUS))return"\u2717 CLANCY_JQL_STATUS contains invalid characters"},async fetchTicket(r){return(await this.fetchTickets(r))[0]},async fetchTickets(r){return(await kr(e.JIRA_BASE_URL,t,e.JIRA_PROJECT_KEY,e.CLANCY_JQL_STATUS??"To Do",e.CLANCY_JQL_SPRINT,e.CLANCY_LABEL,r.excludeHitl)).map(o=>{let i=o.blockers.length?`Blocked by: ${o.blockers.join(", ")}`:"None";return{key:o.key,title:o.title,description:o.description,parentInfo:o.epicKey??"none",blockers:i}})},async fetchBlockerStatus(r){return zr(e.JIRA_BASE_URL,t,r.key)},async fetchChildrenStatus(r){return gl(e.JIRA_BASE_URL,t,r)},async transitionTicket(r,n){let o=await _l(e.JIRA_BASE_URL,t,r.key,n);return o&&console.log(` \u2192 Transitioned to ${n}`),o},sharedEnv(){return e}}}var Dh=p.object({id:p.string(),identifier:p.string(),title:p.string(),description:p.optional(p.nullable(p.string())),parent:p.optional(p.nullable(p.object({identifier:p.string(),title:p.optional(p.string())}))),labels:p.optional(p.object({nodes:p.array(p.object({name:p.string()}))}))}),bl=p.object({data:p.optional(p.object({viewer:p.optional(p.object({assignedIssues:p.optional(p.object({nodes:p.array(Dh)}))}))}))}),$l=p.object({data:p.optional(p.object({viewer:p.optional(p.object({id:p.optional(p.string())}))}))}),xl=p.object({data:p.optional(p.object({workflowStates:p.optional(p.object({nodes:p.array(p.object({id:p.string()}))}))}))}),wl=p.object({data:p.optional(p.object({issueUpdate:p.optional(p.object({success:p.optional(p.boolean())}))}))}),Uh=p.object({type:p.string(),relatedIssue:p.optional(p.object({state:p.optional(p.object({type:p.optional(p.string())}))}))}),vl=p.object({data:p.optional(p.object({issue:p.optional(p.object({relations:p.optional(p.object({nodes:p.array(Uh)}))}))}))}),Fh=p.object({state:p.optional(p.object({type:p.optional(p.string())}))}),kl=p.object({data:p.optional(p.object({issueSearch:p.optional(p.object({nodes:p.array(Fh)}))}))});var Jh=/^[a-zA-Z0-9_-]+$/,zl="https://api.linear.app/graphql";function Sl(e){return Jh.test(e)}async function Je(e,t,r){let n;try{n=await fetch(zl,{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 Pl(e){let t;try{t=await fetch(zl,{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=$l.safeParse(r);if(n.success&&n.data.data?.viewer?.id)return{ok:!0}}catch{}return{ok:!1,error:"\u2717 Linear auth failed \u2014 check LINEAR_API_KEY"}}async function Sr(e,t,r=5){let n=e.CLANCY_LABEL?.trim(),o=!!n,i=o?"labels: { name: { eq: $label } }":"",s=["$teamId: String!",...o?["$label: String!"]:[]],c=['state: { type: { eq: "unstarted" } }',"team: { id: { eq: $teamId } }",i].filter(Boolean),a=`
113
122
  query(${s.join(", ")}) {
114
123
  viewer {
115
124
  assignedIssues(
@@ -131,7 +140,7 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
131
140
  }
132
141
  }
133
142
  }
134
- `,u={teamId:e.LINEAR_TEAM_ID};o&&(u.label=n);let p=await qe(e.LINEAR_API_KEY,a,u),d=Au.safeParse(p);if(!d.success)return console.warn(`\u26A0 Unexpected Linear response shape: ${d.error.message}`),[];let m=d.data.data?.viewer?.assignedIssues?.nodes;return m?.length?(t&&(m=m.filter(h=>!h.labels?.nodes?.some(b=>b.name==="clancy:hitl"))),m=m.slice(0,r),m.map(h=>({key:h.identifier,title:h.title,description:h.description??"",provider:"linear",issueId:h.id,parentIdentifier:h.parent?.identifier}))):[]}async function Uu(e,t){let n=await qe(e,`
143
+ `,u={teamId:e.LINEAR_TEAM_ID};o&&(u.label=n);let l=await Je(e.LINEAR_API_KEY,a,u),d=bl.safeParse(l);if(!d.success)return console.warn(`\u26A0 Unexpected Linear response shape: ${d.error.message}`),[];let m=d.data.data?.viewer?.assignedIssues?.nodes;return m?.length?(t&&(m=m.filter(h=>!h.labels?.nodes?.some(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}))):[]}async function Pr(e,t){let n=await Je(e,`
135
144
  query($issueId: String!) {
136
145
  issue(id: $issueId) {
137
146
  relations {
@@ -144,7 +153,7 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
144
153
  }
145
154
  }
146
155
  }
147
- `,{issueId:t}),o=Nu.safeParse(n);if(!o.success)return!1;let i=o.data.data?.issue?.relations?.nodes??[],s=new Set(["completed","canceled"]);return i.some(c=>{if(c.type!=="blockedBy")return!1;let a=c.relatedIssue?.state?.type;return a?!s.has(a):!1})}async function Bu(e,t,r){try{if(r){let n=await uh(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await lh(e,t)}catch{return}}async function uh(e,t){let n=await qe(e,`
156
+ `,{issueId:t}),o=vl.safeParse(n);if(!o.success)return!1;let i=o.data.data?.issue?.relations?.nodes??[],s=new Set(["completed","canceled"]);return i.some(c=>{if(c.type!=="blockedBy")return!1;let a=c.relatedIssue?.state?.type;return a?!s.has(a):!1})}async function El(e,t,r){try{if(r){let n=await Kh(e,`Epic: ${r}`);if(n&&n.total>0)return n}return await Yh(e,t)}catch{return}}async function Kh(e,t){let n=await Je(e,`
148
157
  query($filter: String!) {
149
158
  issueSearch(query: $filter) {
150
159
  nodes {
@@ -152,7 +161,7 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
152
161
  }
153
162
  }
154
163
  }
155
- `,{filter:t}),o=ju.safeParse(n);if(!o.success)return;let i=o.data.data?.issueSearch?.nodes??[],s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function lh(e,t){let n=await qe(e,`
164
+ `,{filter:t}),o=kl.safeParse(n);if(!o.success)return;let i=o.data.data?.issueSearch?.nodes??[],s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function Yh(e,t){let n=await Je(e,`
156
165
  query($issueId: String!) {
157
166
  issue(id: $issueId) {
158
167
  children {
@@ -162,7 +171,7 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
162
171
  }
163
172
  }
164
173
  }
165
- `,{issueId:t});if(!n||typeof n!="object")return;let i=n.data?.issue?.children?.nodes;if(!i)return;let s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function ph(e,t,r){let o=await qe(e,`
174
+ `,{issueId:t});if(!n||typeof n!="object")return;let i=n.data?.issue?.children?.nodes;if(!i)return;let s=i.length,c=new Set(["completed","canceled"]),a=i.filter(u=>!u.state?.type||!c.has(u.state.type)).length;return{total:s,incomplete:a}}async function Gh(e,t,r){let o=await Je(e,`
166
175
  query($teamId: String!, $name: String!) {
167
176
  workflowStates(filter: {
168
177
  team: { id: { eq: $teamId } }
@@ -171,18 +180,10 @@ If the ${e.provider==="github"?"issue":"ticket"} IS implementable, continue:${e.
171
180
  nodes { id }
172
181
  }
173
182
  }
174
- `,{teamId:t,name:r}),i=Zu.safeParse(o);if(!i.success){console.warn(`\u26A0 Unexpected Linear workflowStates response: ${i.error.message}`);return}return i.data.data?.workflowStates?.nodes?.[0]?.id}async function fh(e,t,r){let o=await qe(e,`
183
+ `,{teamId:t,name:r}),i=xl.safeParse(o);if(!i.success){console.warn(`\u26A0 Unexpected Linear workflowStates response: ${i.error.message}`);return}return i.data.data?.workflowStates?.nodes?.[0]?.id}async function qh(e,t,r){let o=await Je(e,`
175
184
  mutation($issueId: String!, $stateId: String!) {
176
185
  issueUpdate(id: $issueId, input: { stateId: $stateId }) {
177
186
  success
178
187
  }
179
188
  }
180
- `,{issueId:t,stateId:r}),i=Cu.safeParse(o);return i.success?i.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${i.error.message}`),!1)}async function Fu(e,t,r,n){try{let o=await ph(e,t,n);return o?await fh(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function H(e){return e.env}async function Ju(e){switch(e.provider){case"jira":{let{env:t}=e,r=Ie(t.JIRA_USER,t.JIRA_API_TOKEN);return Su(t.JIRA_BASE_URL,t.JIRA_PROJECT_KEY,r)}case"github":return bu(e.env.GITHUB_TOKEN,e.env.GITHUB_REPO);case"linear":return Mu(e.env.LINEAR_API_KEY)}}function qu(e){switch(e.provider){case"jira":{let{env:t}=e;return hr(t.JIRA_PROJECT_KEY)?t.CLANCY_LABEL&&!hr(t.CLANCY_LABEL)?"\u2717 CLANCY_LABEL contains invalid characters":t.CLANCY_JQL_STATUS&&!hr(t.CLANCY_JQL_STATUS)?"\u2717 CLANCY_JQL_STATUS contains invalid characters":void 0:"\u2717 JIRA_PROJECT_KEY contains invalid characters"}case"github":return dr(e.env.GITHUB_REPO)?void 0:"\u2717 GITHUB_REPO format is invalid \u2014 expected owner/repo";case"linear":return Lu(e.env.LINEAR_TEAM_ID)?void 0:"\u2717 LINEAR_TEAM_ID contains invalid characters"}}async function xt(e,t,r){switch(e.provider){case"jira":{let{env:n}=e,o=Ie(n.JIRA_USER,n.JIRA_API_TOKEN),i=t.key;await Tu(n.JIRA_BASE_URL,o,i,r)&&console.log(` \u2192 Transitioned to ${r}`);break}case"github":break;case"linear":{let{env:n}=e;if(!t.linearIssueId)break;await Fu(n.LINEAR_API_KEY,n.LINEAR_TEAM_ID,t.linearIssueId,r)&&console.log(` \u2192 Transitioned to ${r}`);break}}}async function Vs(e,t,r){switch(e.provider){case"jira":{let{env:n}=e,o=Ie(n.JIRA_USER,n.JIRA_API_TOKEN);return Iu(n.JIRA_BASE_URL,o,t)}case"github":{let n=parseInt(t.replace("#",""),10);return Number.isNaN(n)?void 0:$u(e.env.GITHUB_TOKEN,e.env.GITHUB_REPO,n)}case"linear":return r?Bu(e.env.LINEAR_API_KEY,r,t):void 0}}import{execFileSync as gl}from"node:child_process";function dh(e){return e.startsWith("epic/")||e.startsWith("milestone/")}function Gu(e,t,r){let n=[],o=r?dh(r):!1;switch(e.provider){case"github":n.push(o?`Part of ${t.key}`:`Closes ${t.key}`);break;case"jira":n.push(`**Jira:** [${t.key}](${e.env.JIRA_BASE_URL}/browse/${t.key})`);break;case"linear":n.push(`**Linear:** ${t.key}`);break}return n.push(""),t.description&&(n.push("## Description"),n.push(""),n.push(t.description),n.push("")),n.push("---"),n.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),n.push(""),n.push("---"),n.push("<details>"),n.push("<summary><strong>Rework instructions</strong> (click to expand)</summary>"),n.push(""),n.push("To request changes:"),n.push("- **Code comments** \u2014 leave inline comments on specific lines. These are always picked up automatically."),n.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."),n.push(""),n.push("Example: `Rework: The form validation doesn't handle empty passwords`"),n.push(""),n.push("</details>"),n.join(`
181
- `)}function Yu(e,t,r){let n=[];n.push(`## ${e} \u2014 ${t}`),n.push(""),n.push("### Children"),n.push("");for(let o of r){let i=o.prNumber?` (#${o.prNumber})`:"";n.push(`- ${o.key} \u2014 ${o.summary}${i}`)}return n.push(""),n.push("---"),n.push("*Created by [Clancy](https://github.com/Pushedskydiver/clancy)*"),n.join(`
182
- `)}import{execFileSync as mh}from"node:child_process";function Hu(e){let t=e.trim().replace(/\.git$/,""),r=t.match(/^git@([^:]+):(.+)$/),n=t.match(/^(?:https?|ssh):\/\/(?:[^@]+@)?([^/:]+)(?::\d+)?\/(.+)$/),o=r?.[1]??n?.[1],i=r?.[2]??n?.[2];if(!(!o||!i))return{hostname:o,path:i}}function hh(e){let t=Hu(e);if(!t)return{host:"unknown",url:e};let{hostname:r,path:n}=t;switch(gh(r)){case"github":{let i=n.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:r}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:n,hostname:r};case"bitbucket":{let i=n.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:r};let s=n.split("/");return s.length>=2?{host:"bitbucket",workspace:s[0],repoSlug:s[1],hostname:r}:{host:"unknown",url:e}}case"azure":return{host:"azure",url:e};default:return{host:"unknown",url:e}}}function gh(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 Ge(e){let t;try{t=mh("git",["remote","get-url","origin"],{encoding:"utf8"}).trim()}catch{return{host:"none"}}return t?e?_h(t,e):hh(t):{host:"none"}}function _h(e,t){let r=Hu(e);if(!r)return{host:"unknown",url:e};let{hostname:n,path:o}=r;switch(t.toLowerCase()){case"github":{let i=o.split("/");return i.length>=2?{host:"github",owner:i[0],repo:i[1],hostname:n}:{host:"unknown",url:e}}case"gitlab":return{host:"gitlab",projectPath:o,hostname:n};case"bitbucket":{let i=o.split("/");return i.length>=2?{host:"bitbucket",workspace:i[0],repoSlug:i[1],hostname:n}:{host:"unknown",url:e}}case"bitbucket-server":{let i=o.match(/^scm\/([^/]+)\/(.+)$/);if(i)return{host:"bitbucket-server",projectKey:i[1],repoSlug:i[2],hostname:n};let s=o.split("/");return s.length>=2?{host:"bitbucket-server",projectKey:s[0],repoSlug:s[1],hostname:n}:{host:"unknown",url:e}}default:return{host:"unknown",url:e}}}function $t(e,t){if(t)return t.replace(/\/$/,"");switch(e.host){case"github":return e.hostname==="github.com"?"https://api.github.com":`https://${e.hostname}/api/v3`;case"gitlab":return`https://${e.hostname}/api/v4`;case"bitbucket":return"https://api.bitbucket.org/2.0";case"bitbucket-server":return`https://${e.hostname}/rest/api/1.0`;default:return}}var bh=E({id:ye(),links:E({html:x(E({href:x(y())}))}),participants:U(E({state:x(y()),role:y()}))}),Ku=E({values:U(bh)}),yh=E({content:E({raw:y()}),inline:x(E({path:x(y())})),created_on:y(),user:x(E({nickname:x(y())}))}),Ws=E({values:U(yh)}),xh=E({id:ye(),links:E({self:x(U(E({href:x(y())})))}),reviewers:U(E({status:y()}))}),Vu=E({values:U(xh)}),$h=E({text:y(),anchor:x(E({path:x(y())})),createdDate:ye(),author:x(E({slug:x(y())}))}),vh=E({action:y(),comment:x($h)}),Xs=E({values:U(vh)});async function Te(e,t,r,n,o){let i=new AbortController,s=setTimeout(()=>i.abort(),3e4);try{let c=await fetch(e,{method:"POST",headers:{...t,"Content-Type":"application/json"},body:JSON.stringify(r),signal:i.signal});if(!c.ok){let p=await c.text().catch(()=>""),d=o?.(c.status,p)??!1;return{ok:!1,error:`HTTP ${c.status}${p?`: ${p.slice(0,200)}`:""}`,alreadyExists:d}}let a=await c.json(),u=n(a);return!u.url&&!u.number?{ok:!1,error:"PR created but response missing URL and number"}:{ok:!0,url:u.url,number:u.number}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}finally{clearTimeout(s)}}function Ye(e,t){return`Basic ${Buffer.from(`${e}:${t}`).toString("base64")}`}function ie(e){return e.trim().toLowerCase().startsWith("rework:")}function Ae(e){return e.trim().replace(/^rework:\s*/i,"").trim()}async function Wu(e,t,r,n,o,i,s,c){return Te(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests`,{Authorization:Ye(e,t)},{title:s,description:c,source:{branch:{name:o}},destination:{branch:{name:i}},close_source_branch:!0},a=>{let u=a;return{url:u.links?.html?.href??"",number:u.id??0}},(a,u)=>a===409&&u.includes("already exists"))}async function Xu(e,t,r,n,o,i,s,c){return Te(`${t}/projects/${r}/repos/${n}/pull-requests`,{Authorization:`Bearer ${e}`},{title:s,description:c,fromRef:{id:`refs/heads/${o}`,repository:{slug:n,project:{key:r}}},toRef:{id:`refs/heads/${i}`,repository:{slug:n,project:{key:r}}}},a=>{let u=a;return{url:u.links?.self?.[0]?.href??"",number:u.id??0}},(a,u)=>a===409&&(u.includes("already exists")||u.includes("Only one pull request")))}async function Qu(e,t,r,n,o,i){try{return(await fetch(`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments`,{method:"POST",headers:{Authorization:Ye(e,t),"Content-Type":"application/json"},body:JSON.stringify({content:{raw:i}})})).ok}catch{return!1}}async function el(e,t,r,n,o,i){try{return(await fetch(`${t}/projects/${r}/repos/${n}/pull-requests/${o}/comments`,{method:"POST",headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json"},body:JSON.stringify({text:i})})).ok}catch{return!1}}async function tl(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests?q=source.branch.name="${o}"&state=OPEN`,c=await fetch(s,{headers:{Authorization:Ye(e,t)}});if(!c.ok)return;let a=Ku.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],p=u.links.html?.href??"",d=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${u.id}/comments?pagelen=100`,m=await fetch(d,{headers:{Authorization:Ye(e,t)}});if(!m.ok)return;let h=Ws.parse(await m.json()),b=i?h.values.filter(Z=>Z.created_on>i):h.values,g=b.some(Z=>Z.inline!=null),v=b.some(Z=>Z.inline==null&&ie(Z.content.raw));return{changesRequested:g||v,prNumber:u.id,prUrl:p}}catch{return}}async function rl(e,t,r,n,o,i){try{let s=`https://api.bitbucket.org/2.0/repositories/${r}/${n}/pullrequests/${o}/comments?pagelen=100`,c=await fetch(s,{headers:{Authorization:Ye(e,t)}});if(!c.ok)return[];let a=Ws.parse(await c.json()),u=i?a.values.filter(d=>d.created_on>i):a.values,p=[];for(let d of u)if(d.inline!=null){let m=d.inline.path?`[${d.inline.path}] `:"";p.push(`${m}${d.content.raw}`)}else ie(d.content.raw)&&p.push(Ae(d.content.raw));return p}catch{return[]}}async function nl(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests?state=OPEN&at=refs/heads/${o}`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return;let a=Vu.parse(await c.json());if(a.values.length===0)return;let u=a.values[0],p=u.links.self?.[0]?.href??"",d=`${t}/projects/${r}/repos/${n}/pull-requests/${u.id}/activities?limit=100`,m=await fetch(d,{headers:{Authorization:`Bearer ${e}`}});if(!m.ok)return;let h=Xs.parse(await m.json()),b=i?Date.parse(i):void 0,g=h.values.filter(S=>S.action==="COMMENTED"&&S.comment&&(b==null||S.comment.createdDate>b)),v=g.some(S=>S.comment.anchor!=null),te=g.some(S=>S.comment.anchor==null&&ie(S.comment.text));return{changesRequested:v||te,prNumber:u.id,prUrl:p}}catch{return}}async function ol(e,t,r,n,o,i){try{let s=`${t}/projects/${r}/repos/${n}/pull-requests/${o}/activities?limit=100`,c=await fetch(s,{headers:{Authorization:`Bearer ${e}`}});if(!c.ok)return[];let a=Xs.parse(await c.json()),u=i?Date.parse(i):void 0,p=[];for(let d of a.values){if(d.action!=="COMMENTED"||!d.comment||u!=null&&d.comment.createdDate<=u)continue;let m=d.comment;if(m.anchor!=null){let h=m.anchor.path?`[${m.anchor.path}] `:"";p.push(`${h}${m.text}`)}else ie(m.text)&&p.push(Ae(m.text))}return p}catch{return[]}}async function il(e,t,r,n,o=V,i,s){try{let c=ee(e),a=await fetch(`${o}/repos/${t}/pulls?head=${n}:${r}&state=open`,{headers:c});if(!a.ok)return;let u=hu.parse(await a.json());if(u.length===0)return;let p=u[0],d=i?`&since=${i}`:"",[m,h]=await Promise.all([fetch(`${o}/repos/${t}/pulls/${p.number}/comments?per_page=100${d}`,{headers:c}),fetch(`${o}/repos/${t}/issues/${p.number}/comments?per_page=100${d}`,{headers:c})]);if(!m.ok||!h.ok)return;let b=Hs.parse(await m.json()),g=Ys.parse(await h.json()),v=s?b.filter(O=>O.user?.login!==s):b,te=s?g.filter(O=>O.user?.login!==s):g,Z=v.length>0,S=te.some(O=>O.body&&ie(O.body)),N=Z||S,j;if(!N)try{let O=await fetch(`${o}/repos/${t}/pulls/${p.number}/reviews?per_page=100`,{headers:c});if(O.ok){let ae=gu.parse(await O.json()),He=new Map;for(let re of ae)re.state==="PENDING"||re.state==="DISMISSED"||He.set(re.user.login,re.state);let Re=[...He.entries()].filter(([,re])=>re==="CHANGES_REQUESTED");Re.length>0&&(N=!0,j=Re.map(([re])=>re))}}catch{}return{changesRequested:N,prNumber:p.number,prUrl:p.html_url,reviewers:j}}catch{return}}async function sl(e,t,r,n=V,o,i){try{let s=ee(e),c=o?`&since=${o}`:"",[a,u]=await Promise.all([fetch(`${n}/repos/${t}/pulls/${r}/comments?per_page=100${c}`,{headers:s}),fetch(`${n}/repos/${t}/issues/${r}/comments?per_page=100${c}`,{headers:s})]);if(!a.ok||!u.ok)return[];let p=Hs.parse(await a.json()),d=Ys.parse(await u.json()),m=i?p.filter(g=>g.user?.login!==i):p,h=i?d.filter(g=>g.user?.login!==i):d,b=[];for(let g of m){if(!g.body)continue;let v=g.path?`[${g.path}] `:"";b.push(`${v}${g.body}`)}for(let g of h)g.body&&ie(g.body)&&b.push(Ae(g.body));return b}catch{return[]}}async function cl(e,t,r,n,o=V){try{return(await fetch(`${o}/repos/${t}/issues/${r}/comments`,{method:"POST",headers:{...ee(e),"Content-Type":"application/json"},body:JSON.stringify({body:n})})).ok}catch{return!1}}async function al(e,t,r,n,o=V){try{return(await fetch(`${o}/repos/${t}/pulls/${r}/requested_reviewers`,{method:"POST",headers:{...ee(e),"Content-Type":"application/json"},body:JSON.stringify({reviewers:n})})).ok}catch{return!1}}async function ul(e,t,r,n,o,i,s=V){return Te(`${s}/repos/${t}/pulls`,ee(e),{title:o,head:r,base:n,body:i},c=>{let a=c;return{url:a.html_url??"",number:a.number??0}},(c,a)=>c===422&&a.includes("already exists"))}var wh=E({iid:ye(),web_url:y(),detailed_merge_status:x(y())}),ll=U(wh),zh=E({body:y(),resolvable:Fe(),resolved:x(Fe()),system:Fe(),type:x(or(y())),created_at:x(y()),position:x(E({new_path:x(y())})),author:x(E({username:y()}))}),kh=E({id:x(y()),notes:U(zh)}),Qs=U(kh);async function pl(e,t,r,n,o,i,s){let c=encodeURIComponent(r);return Te(`${t}/projects/${c}/merge_requests`,{"PRIVATE-TOKEN":e},{source_branch:n,target_branch:o,title:i,description:s,remove_source_branch:!0},a=>{let u=a;return{url:u.web_url??"",number:u.iid??0}},(a,u)=>a===409&&u.includes("already exists"))}async function fl(e,t,r,n,o){try{let i=encodeURIComponent(r);return(await fetch(`${t}/projects/${i}/merge_requests/${n}/notes`,{method:"POST",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({body:o})})).ok}catch{return!1}}async function dl(e,t,r,n,o){let i=encodeURIComponent(r),s=0;for(let c of o)try{(await fetch(`${t}/projects/${i}/merge_requests/${n}/discussions/${c}`,{method:"PUT",headers:{"PRIVATE-TOKEN":e,"Content-Type":"application/json"},body:JSON.stringify({resolved:!0})})).ok&&s++}catch{}return s}async function ml(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests?source_branch=${n}&state=opened`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return;let a=ll.parse(await c.json());if(a.length===0)return;let u=a[0],p=`${t}/projects/${i}/merge_requests/${u.iid}/discussions?per_page=100`,d=await fetch(p,{headers:{"PRIVATE-TOKEN":e}});if(!d.ok)return;let m=Qs.parse(await d.json()),h=!1;for(let b of m){for(let g of b.notes)if(!g.system&&!(o&&g.created_at&&g.created_at<=o)){if(g.type==="DiffNote"&&g.resolvable!==!1&&g.resolved!==!0){h=!0;break}if(ie(g.body)){h=!0;break}}if(h)break}return{changesRequested:h,prNumber:u.iid,prUrl:u.web_url}}catch{return}}async function hl(e,t,r,n,o){try{let i=encodeURIComponent(r),s=`${t}/projects/${i}/merge_requests/${n}/discussions?per_page=100`,c=await fetch(s,{headers:{"PRIVATE-TOKEN":e}});if(!c.ok)return{comments:[],discussionIds:[]};let a=Qs.parse(await c.json()),u=[],p=[];for(let d of a){let m=!1;for(let h of d.notes)if(!h.system&&!(o&&h.created_at&&h.created_at<=o))if(h.type==="DiffNote"&&h.resolvable!==!1&&h.resolved!==!0){let b=h.position?.new_path?`[${h.position.new_path}] `:"";u.push(`${b}${h.body}`),m=!0}else ie(h.body)&&(u.push(Ae(h.body)),m=!0);m&&d.id&&p.push(d.id)}return{comments:u,discussionIds:p}}catch{return{comments:[],discussionIds:[]}}}function vt(e,t){let r=H(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 ec(e,t,r,n,o,i){let s=vt(e,t);if(!s)return;let c=$t(t,H(e).CLANCY_GIT_API_URL);if(c)switch(t.host){case"github":return ul(s.token,`${t.owner}/${t.repo}`,r,n,o,i,c);case"gitlab":return pl(s.token,c,t.projectPath,r,n,o,i);case"bitbucket":return Wu(s.username,s.token,t.workspace,t.repoSlug,r,n,o,i);case"bitbucket-server":return Xu(s.token,c,t.projectKey,t.repoSlug,r,n,o,i);default:return}}function gr(e,t,r){let n=encodeURIComponent(t),o=encodeURIComponent(r);if(e.host==="github")return`https://${e.hostname}/${e.owner}/${e.repo}/compare/${o}...${n}`;if(e.host==="gitlab")return`https://${e.hostname}/${e.projectPath}/-/merge_requests/new?merge_request[source_branch]=${n}&merge_request[target_branch]=${o}`;if(e.host==="bitbucket")return`https://${e.hostname}/${e.workspace}/${e.repoSlug}/pull-requests/new?source=${n}&dest=${o}`;if(e.host==="bitbucket-server")return`https://${e.hostname}/projects/${e.projectKey}/repos/${e.repoSlug}/pull-requests?create&sourceBranch=refs/heads/${n}&targetBranch=refs/heads/${o}`}function tc(e,t){let r=ru(e),n=Fs(e);if(r)return ur(e)?!0:(console.log(C(`\u26A0 Epic branch ${e} exists on remote but could not be fetched.`)),!1);if(n)return console.log(Je(`\u2717 Epic branch ${e} exists locally but not on remote.`)),console.log(C(" This may contain work from a previous Clancy version that squash-merged locally.")),console.log(k(" To preserve this work, push it manually:")),console.log(k(` git push -u origin ${e}`)),console.log(k(" Then re-run /clancy:once to continue.")),!1;try{if(gl("git",["fetch","origin",t],{encoding:"utf8",stdio:["pipe","pipe","pipe"],timeout:15e3}),gl("git",["checkout","-b",e,`origin/${t}`],{encoding:"utf8"}),qs(e))console.log(oe(` \u2713 Created epic branch ${e}`));else return console.log(C(`\u26A0 Created ${e} locally but could not push to origin.`)),!1;return!0}catch(o){return console.log(Je(`\u2717 Could not create epic branch: ${o instanceof Error?o.message:String(o)}`)),!1}}async function rc(e,t,r,n,o,i=!1,s){if(!qs(r)){console.log(C(`\u26A0 Could not push ${r} to origin.`)),console.log(k(" The branch is still available locally. Push manually:")),console.log(k(` git push -u origin ${r}`)),i||B(process.cwd(),t.key,t.title,"PUSH_FAILED",void 0,s),Y(n);let m=yt(Date.now()-o);return console.log(""),console.log(C(`\u26A0 ${t.key} implemented but push failed`)+k(` (${m})`)),!1}console.log(oe(` \u2713 Pushed ${r}`));let a=H(e).CLANCY_GIT_PLATFORM,u=Ge(a),p=`feat(${t.key}): ${t.title}`,d=Gu(e,{key:t.key,title:t.title,description:t.description,provider:e.provider},n);if(u.host!=="none"&&u.host!=="unknown"&&u.host!=="azure"){let m=await ec(e,u,r,n,p,d);if(m?.ok)console.log(oe(` \u2713 PR created: ${m.url}`)),i||B(process.cwd(),t.key,t.title,"PR_CREATED",m.number,s);else if(m&&!m.ok&&m.alreadyExists)console.log(C(` \u26A0 A PR/MR already exists for ${r}. Branch pushed.`)),i||B(process.cwd(),t.key,t.title,"PUSHED",void 0,s);else if(m&&!m.ok){console.log(C(` \u26A0 PR/MR creation failed: ${m.error}`));let h=gr(u,r,n);console.log(h?k(` Create one manually: ${h}`):k(" Branch pushed \u2014 create a PR/MR manually.")),i||B(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}else{let h=gr(u,r,n);console.log(h?k(` Create a PR: ${h}`):k(" Branch pushed to remote. Create a PR/MR manually.")),i||B(process.cwd(),t.key,t.title,"PUSHED",void 0,s)}}else u.host==="none"?(console.log(C(`\u26A0 No git remote configured. Branch available locally: ${r}`)),i||B(process.cwd(),t.key,t.title,"LOCAL",void 0,s)):(console.log(k(" Branch pushed to remote. Create a PR/MR manually.")),i||B(process.cwd(),t.key,t.title,"PUSHED",void 0,s));if(e.provider!=="github"){let m=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;m&&await xt(e,t,m)}return Y(n),!0}async function _l(e,t,r,n,o){console.log(""),console.log(oe(`\u{1F389} All children of ${t} are done!`)),console.log(k(` Creating epic PR: ${n} \u2192 ${o}`));let i=F(process.cwd(),"PR_CREATED"),s=F(process.cwd(),"DONE"),c=F(process.cwd(),"REWORK"),a=F(process.cwd(),"PUSHED"),u=[...i,...s,...c,...a].filter(v=>v.parent===t),p=H(e).CLANCY_GIT_PLATFORM,d=Ge(p),m=`feat(${t}): ${r}`,h=Yu(t,r,u);if(d.host==="none"||d.host==="unknown"||d.host==="azure")return console.log(C("\u26A0 Cannot create epic PR \u2014 no supported git remote detected.")),console.log(k(` Push manually: git push origin ${n}`)),console.log(k(` Then create a PR targeting ${o}`)),!1;let b=await ec(e,d,n,o,m,h);if(b?.ok){if(console.log(oe(` \u2713 Epic PR created: ${b.url}`)),B(process.cwd(),t,r,"EPIC_PR_CREATED",b.number),e.provider!=="github"){let v=e.env.CLANCY_STATUS_REVIEW??e.env.CLANCY_STATUS_DONE;v&&await xt(e,{key:t,title:r,description:"",parentInfo:"none",blockers:"None"},v)}return!0}if(b&&!b.ok&&b.alreadyExists)return console.log(C(` \u26A0 An epic PR already exists for ${n}.`)),B(process.cwd(),t,r,"EPIC_PR_CREATED"),!0;console.log(C(`\u26A0 Epic PR creation failed: ${b?.error??"unknown error"}`)),console.log(k(" Create it manually:")),console.log(k(` Branch: ${n} \u2192 ${o}`));let g=gr(d,n,o);return g&&console.log(k(` ${g}`)),!1}function Sh(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function Ph(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=Ie(r.JIRA_USER,r.JIRA_API_TOKEN);return(await Pu(r.JIRA_BASE_URL,n,r.JIRA_PROJECT_KEY,r.CLANCY_JQL_STATUS??"To Do",r.CLANCY_JQL_SPRINT,r.CLANCY_LABEL,t)).map(i=>{let s=i.blockers.length?`Blocked by: ${i.blockers.join(", ")}`:"None";return{key:i.key,title:i.title,description:i.description,parentInfo:i.epicKey??"none",blockers:s}})}case"github":{let{env:r}=e,n=await mr(r.GITHUB_TOKEN);return(await yu(r.GITHUB_TOKEN,r.GITHUB_REPO,r.CLANCY_LABEL,n,t)).map(i=>({key:i.key,title:i.title,description:i.description,parentInfo:i.milestone??"none",blockers:"None"}))}case"linear":{let{env:r}=e;return(await Du({LINEAR_API_KEY:r.LINEAR_API_KEY,LINEAR_TEAM_ID:r.LINEAR_TEAM_ID,CLANCY_LABEL:r.CLANCY_LABEL},t)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.parentIdentifier??"none",blockers:"None",linearIssueId:o.issueId,issueId:o.issueId}))}}}async function Eh(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=Ie(r.JIRA_USER,r.JIRA_API_TOKEN);return Eu(r.JIRA_BASE_URL,n,t.key)}case"github":{let{env:r}=e,n=parseInt(t.key.replace("#",""),10);return Number.isNaN(n)?!1:xu(r.GITHUB_TOKEN,r.GITHUB_REPO,n,t.description)}case"linear":{let{env:r}=e;return t.issueId?Uu(r.LINEAR_API_KEY,t.issueId):!1}}}async function bl(e,t){let r=Sh(t),n=await Ph(e,r);if(n.length)for(let o of n){if(!await Eh(e,o))return o;console.log(`Skipping ${o.key} \u2014 blocked`)}}async function yl(e){let t=F(process.cwd(),"PR_CREATED"),r=F(process.cwd(),"REWORK"),n=F(process.cwd(),"PUSHED"),o=F(process.cwd(),"PUSH_FAILED"),i=[...t,...r,...n,...o];if(i.length===0)return;let s=H(e).CLANCY_GIT_PLATFORM,c=Ge(s);if(c.host==="none"||c.host==="unknown"||c.host==="azure")return;let a=vt(e,c);if(!a)return;let u=$t(c,H(e).CLANCY_GIT_API_URL);if(!u)return;let p;if(c.host==="github")try{p=await mr(a.token,u)}catch{}let d=i.slice(0,5);for(let m of d){let h=zt(e.provider,m.key),b;if(m.timestamp){let v=new Date(m.timestamp.replace(" ","T")+"Z");b=Number.isNaN(v.getTime())?void 0:v.toISOString()}let g;switch(c.host){case"github":g=await il(a.token,`${c.owner}/${c.repo}`,h,c.owner,u,b,p);break;case"gitlab":g=await ml(a.token,u,c.projectPath,h,b);break;case"bitbucket":g=await tl(a.username,a.token,c.workspace,c.repoSlug,h,b);break;case"bitbucket-server":g=await nl(a.token,u,c.projectKey,c.repoSlug,h,b);break}if(g?.changesRequested){let v=[],te;switch(c.host){case"github":v=await sl(a.token,`${c.owner}/${c.repo}`,g.prNumber,u,b,p);break;case"gitlab":{let S=await hl(a.token,u,c.projectPath,g.prNumber,b);v=S.comments,te=S.discussionIds;break}case"bitbucket":v=await rl(a.username,a.token,c.workspace,c.repoSlug,g.prNumber,b);break;case"bitbucket-server":v=await ol(a.token,u,c.projectKey,c.repoSlug,g.prNumber,b);break}return{ticket:{key:m.key,title:m.summary,description:m.summary,parentInfo:m.parent??"none",blockers:"None"},feedback:v,prNumber:g.prNumber,discussionIds:te,reviewers:g.reviewers??[]}}}}function Ih(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(`
183
- `),n=e.length>3?`
184
- - ...`:"";return`[clancy] Rework pushed addressing ${t} feedback item${t!==1?"s":""}.
185
-
186
- ${r}${n}`}async function xl(e,t,r,n,o){let i=H(e).CLANCY_GIT_PLATFORM,s=Ge(i);if(s.host==="none"||s.host==="unknown"||s.host==="azure")return;let c=vt(e,s);if(!c)return;let a=$t(s,H(e).CLANCY_GIT_API_URL);if(!a)return;let u=Ih(r);try{let p=!1;switch(s.host){case"github":p=await cl(c.token,`${s.owner}/${s.repo}`,t,u,a);break;case"gitlab":p=await fl(c.token,a,s.projectPath,t,u);break;case"bitbucket":p=await Qu(c.username,c.token,s.workspace,s.repoSlug,t,u);break;case"bitbucket-server":p=await el(c.token,a,s.projectKey,s.repoSlug,t,u);break}p&&console.log(k(" \u2713 Posted rework comment"))}catch{}if(s.host==="gitlab"&&n&&n.length>0)try{let p=await dl(c.token,a,s.projectPath,t,n);p>0&&console.log(k(` \u2713 Resolved ${p} discussion thread${p!==1?"s":""}`))}catch{}if(s.host==="github"&&o&&o.length>0)try{await al(c.token,`${s.owner}/${s.repo}`,t,o,a)&&console.log(k(` \u2713 Re-requested review from ${o.join(", ")}`))}catch{}}async function Rh(e){let t=e.includes("--dry-run"),r=e.includes("--skip-feasibility"),n=Date.now();console.log(k("\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(k("\u2502")+lr(" \u{1F916} Clancy \u2014 once mode ")+k("\u2502")),console.log(k("\u2502")+k(` "Let's roll." `)+k("\u2502")),console.log(k("\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 o;try{let i=su(process.cwd());if(!i.ok){console.log(i.error);return}i.warning&&console.log(i.warning);let s=Xa(i.env);if(typeof s=="string"){console.log(s);return}let c=s,a=qu(c);if(a){console.log(a);return}let u=await Ju(c);if(!u.ok){console.log(u.error);return}console.log(oe("\u2705 Preflight passed"));try{let R=F(process.cwd(),"PR_CREATED"),ve=F(process.cwd(),"REWORK"),oc=F(process.cwd(),"PUSHED"),vl=[...R,...ve,...oc],wl=new Set(F(process.cwd(),"EPIC_PR_CREATED").map(J=>J.key)),zl=new Set(vl.map(J=>J.parent).filter(J=>!!J).filter(J=>!wl.has(J))),_r=c.env.CLANCY_BASE_BRANCH??"main";for(let J of zl){let br=await Vs(c,J);if(br&&br.incomplete===0&&br.total>0){let ic=yr(c.provider,_r,J),kl=await _l(c,J,J,ic,_r);console.log(kl?oe(` \u2713 Epic ${J} complete \u2014 PR created`):C(`\u26A0 Epic PR creation failed for ${J}. Create manually:
187
- git push origin ${ic}
188
- Then create a PR targeting ${_r}`))}}}catch{}let p=!1,d,m,h,b,g;try{let R=await yl(c);R&&(p=!0,g=R.ticket,d=R.feedback,m=R.prNumber,h=R.discussionIds,b=R.reviewers,console.log(C(` \u21BB PR rework: [${g.key}] ${g.title}`)))}catch{}if(g||(g=await bl(c)),!g){console.log(k("No tickets found. All done!"));return}if(p){let R=parseInt(H(c).CLANCY_MAX_REWORK??"3",10),ve=Number.isFinite(R)&&R>0?R:3;if(lu(process.cwd(),g.key)>=ve){console.log(C(`\u26A0 ${g.key} has reached max rework cycles (${ve}) \u2014 needs human intervention`)),B(process.cwd(),g.key,g.title,"SKIPPED");return}}let v=c.env.CLANCY_BASE_BRANCH??"main",te=g.parentInfo!=="none"?g.parentInfo:void 0,Z=zt(c.provider,g.key),S=yr(c.provider,v,te);if(t){let R=c.provider==="github"?"Milestone":"Epic";console.log(""),console.log(C("\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: ${lr(`[${g.key}]`)} ${g.title}`),p&&console.log(" Mode: Rework"),console.log(` ${R}:${" ".repeat(14-R.length)}${g.parentInfo}`),c.provider!=="github"&&console.log(` Blockers: ${g.blockers}`),console.log(` Target branch: ${Z} \u2192 ${S}`),g.description&&console.log(` Description: ${g.description}`),console.log(C("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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(k(" No changes made. Remove --dry-run to run for real."));return}let N=c.provider==="github"?"Milestone":"Epic";if(console.log(""),console.log(`\u{1F3AB} ${lr(`[${g.key}]`)} ${g.title}`),console.log(k(` ${N}: ${g.parentInfo} | Branch: ${Z} \u2192 ${S}`)),c.provider!=="github"&&g.blockers!=="None"&&console.log(C(` Blockers: ${g.blockers}`)),console.log(""),!p&&!r){console.log(k(" Checking feasibility..."));let R=Qa({key:g.key,title:g.title,description:g.description},c.env.CLANCY_MODEL);if(!R.feasible){let ve=R.reason??"not implementable as code changes";console.log(C(`\u23ED\uFE0F Ticket skipped [${g.key}]: ${ve}`)),B(process.cwd(),g.key,g.title,"SKIPPED");return}console.log(oe(" \u2713 Feasibility check passed"))}console.log(""),o=eu();let j=g.parentInfo!=="none",O=!1;if(j&&!p){let R=await Vs(c,g.parentInfo,g.linearIssueId);R&&R.total===1&&(O=!0)}let ae=j&&!O?S:v;if(p){if(j&&!O){if(!tc(S,v)){o&&Y(o);return}}else Js(ae,v);ur(Z)?Y(Z):(Y(ae),Y(Z,!0))}else if(j&&!O){if(!tc(S,v)){o&&Y(o);return}Y(S),Y(Z,!0)}else Js(v,v),Y(v),Y(Z,!0);let He=c.env.CLANCY_STATUS_IN_PROGRESS;He&&await xt(c,g,He);let Re,re=c.env.CLANCY_TDD==="true";if(p?Re=fu({key:g.key,title:g.title,description:g.description,provider:c.provider,feedbackComments:d??[],previousContext:nu(S),tdd:re}):Re=du({provider:c.provider,key:g.key,title:g.title,description:g.description,parentInfo:g.parentInfo,blockers:c.provider!=="github"?g.blockers:void 0,tdd:re}),!ac(Re,c.env.CLANCY_MODEL)){console.log(C("\u26A0 Claude session exited with an error. Skipping merge."));return}let wt=j&&!O?g.parentInfo:void 0;if(p){if(!await rc(c,g,Z,ae,n,!0,wt)){B(process.cwd(),g.key,g.title,"PUSH_FAILED",void 0,wt);return}B(process.cwd(),g.key,g.title,"REWORK",m,wt),m!=null&&await xl(c,m,d??[],h,b)}else if(!await rc(c,g,Z,ae,n,!1,wt))return;let $l=yt(Date.now()-n);console.log(""),console.log(oe(`\u{1F3C1} ${g.key} complete`)+k(` (${$l})`)),console.log(k(` "Bake 'em away, toys."`));let nc=c.env.CLANCY_NOTIFY_WEBHOOK;nc&&await ou(nc,`\u2713 Clancy completed [${g.key}] ${g.title}`)}catch(i){let s=i instanceof Error?i.message:String(i),c=yt(Date.now()-n);if(console.error(""),console.error(Je("\u274C Clancy stopped")+k(` (${c})`)),console.error(Je(` ${s}`)),console.error(k(` "I'd rather let Herman go."`)),o)try{Y(o)}catch{}}}process.argv[1]&&Ah(import.meta.url)===Th(process.argv[1])&&Rh(process.argv);export{Rh as run};
189
+ `,{issueId:t,stateId:r}),i=wl.safeParse(o);return i.success?i.data.data?.issueUpdate?.success===!0:(console.warn(`\u26A0 Unexpected Linear issueUpdate response: ${i.error.message}`),!1)}async function Il(e,t,r,n){try{let o=await Gh(e,t,n);return o?await qh(e,r,o):(console.warn(`\u26A0 Linear workflow state "${n}" not found \u2014 check team configuration`),!1)}catch{return!1}}function Tl(e){return{async ping(){return Pl(e.LINEAR_API_KEY)},validateInputs(){if(!Sl(e.LINEAR_TEAM_ID))return"\u2717 LINEAR_TEAM_ID contains invalid characters"},async fetchTicket(t){return(await this.fetchTickets(t))[0]},async fetchTickets(t){return(await Sr({LINEAR_API_KEY:e.LINEAR_API_KEY,LINEAR_TEAM_ID:e.LINEAR_TEAM_ID,CLANCY_LABEL:e.CLANCY_LABEL},t.excludeHitl)).map(n=>({key:n.key,title:n.title,description:n.description,parentInfo:n.parentIdentifier??"none",blockers:"None",linearIssueId:n.issueId,issueId:n.issueId}))},async fetchBlockerStatus(t){return t.issueId?Pr(e.LINEAR_API_KEY,t.issueId):!1},async fetchChildrenStatus(t,r){return El(e.LINEAR_API_KEY,r??t,t)},async transitionTicket(t,r){if(!t.linearIssueId)return!1;let n=await Il(e.LINEAR_API_KEY,e.LINEAR_TEAM_ID,t.linearIssueId,r);return n&&console.log(` \u2192 Transitioned to ${r}`),n},sharedEnv(){return e}}}function Al(e){switch(e.provider){case"jira":return yl(e.env);case"github":return ll(e.env);case"linear":return Tl(e.env)}}async function Rl(e){console.log(x("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510")),console.log(x("\u2502")+Ie(" \u{1F916} Clancy \u2014 once mode ")+x("\u2502")),console.log(x("\u2502")+x(` "Let's roll." `)+x("\u2502")),console.log(x("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518")),console.log("");let t=wr(e.cwd);if(!t.ok)return console.log(t.error),!1;t.warning&&console.log(t.warning);let r=fr(t.env);if(typeof r=="string")return console.log(r),!1;let n=r,o=Al(n),i=o.validateInputs();if(i)return console.log(i),!1;let s=await o.ping();return s.ok?(console.log(N("\u2705 Preflight passed")),e.config=n,e.board=o,!0):(console.log(s.error),!1)}async function Cl(e){let t=e.config;try{let r=await Yu(t);r&&(e.isRework=!0,e.ticket=r.ticket,e.prFeedback=r.feedback,e.reworkPrNumber=r.prNumber,e.reworkDiscussionIds=r.discussionIds,e.reworkReviewers=r.reviewers,console.log(S(` \u21BB PR rework: [${e.ticket.key}] ${e.ticket.title}`)))}catch{}return!0}function Hh(e){return e?.isAfk??process.env.CLANCY_AFK_MODE==="1"}async function Vh(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=xt(r.JIRA_USER,r.JIRA_API_TOKEN);return(await kr(r.JIRA_BASE_URL,n,r.JIRA_PROJECT_KEY,r.CLANCY_JQL_STATUS??"To Do",r.CLANCY_JQL_SPRINT,r.CLANCY_LABEL,t)).map(i=>{let s=i.blockers.length?`Blocked by: ${i.blockers.join(", ")}`:"None";return{key:i.key,title:i.title,description:i.description,parentInfo:i.epicKey??"none",blockers:s}})}case"github":{let{env:r}=e,n=await Fe(r.GITHUB_TOKEN);return(await yr(r.GITHUB_TOKEN,r.GITHUB_REPO,r.CLANCY_LABEL,n,t)).map(i=>({key:i.key,title:i.title,description:i.description,parentInfo:i.milestone??"none",blockers:"None"}))}case"linear":{let{env:r}=e;return(await Sr({LINEAR_API_KEY:r.LINEAR_API_KEY,LINEAR_TEAM_ID:r.LINEAR_TEAM_ID,CLANCY_LABEL:r.CLANCY_LABEL},t)).map(o=>({key:o.key,title:o.title,description:o.description,parentInfo:o.parentIdentifier??"none",blockers:"None",linearIssueId:o.issueId,issueId:o.issueId}))}}}async function Wh(e,t){switch(e.provider){case"jira":{let{env:r}=e,n=xt(r.JIRA_USER,r.JIRA_API_TOKEN);return zr(r.JIRA_BASE_URL,n,t.key)}case"github":{let{env:r}=e,n=parseInt(t.key.replace("#",""),10);return Number.isNaN(n)?!1:br(r.GITHUB_TOKEN,r.GITHUB_REPO,n,t.description)}case"linear":{let{env:r}=e;return t.issueId?Pr(r.LINEAR_API_KEY,t.issueId):!1}}}async function Zl(e,t){let r=Hh(t),n=await Vh(e,r);if(n.length)for(let o of n){if(!await Wh(e,o))return o;console.log(`Skipping ${o.key} \u2014 blocked`)}}async function Nl(e){let t=e.config;if(e.ticket||(e.ticket=await Zl(t)),!e.ticket)return console.log(x("No tickets found. All done!")),!1;if(e.isRework){let c=parseInt(L(t).CLANCY_MAX_REWORK??"3",10),a=Number.isFinite(c)&&c>0?c:3;if(uu(e.cwd,e.ticket.key)>=a)return console.log(S(`\u26A0 ${e.ticket.key} has reached max rework cycles (${a}) \u2014 needs human intervention`)),C(e.cwd,e.ticket.key,e.ticket.title,"SKIPPED"),!1}let r=t.env.CLANCY_BASE_BRANCH??"main",n=e.ticket.parentInfo!=="none"?e.ticket.parentInfo:void 0,o=$r(t.provider,e.ticket.key),i=xr(t.provider,r,n);e.baseBranch=r,e.ticketBranch=o,e.targetBranch=i,e.hasParent=e.ticket.parentInfo!=="none";let s=t.provider==="github"?"Milestone":"Epic";return console.log(""),console.log(`\u{1F3AB} ${Ie(`[${e.ticket.key}]`)} ${e.ticket.title}`),console.log(x(` ${s}: ${e.ticket.parentInfo} | Branch: ${o} \u2192 ${i}`)),t.provider!=="github"&&e.ticket.blockers!=="None"&&console.log(S(` Blockers: ${e.ticket.blockers}`)),console.log(""),!0}async function Ol(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 eg(e){let t=dc(e);if(await ul(t))try{if(!await Rl(t)||!await Vu(t)||!await Cl(t)||!await Nl(t)||!Hu(t)||!tl(t)||!await Lu(t)||!await Ol(t)||!il(t)||!await qu(t))return;Uu(t),await Bu(t)}catch(r){let n=r instanceof Error?r.message:String(r),o=Ee(Date.now()-t.startTime);if(console.error(""),console.error(Te("\u274C Clancy stopped")+x(` (${o})`)),console.error(Te(` ${n}`)),console.error(x(` "I'd rather let Herman go."`)),t.originalBranch)try{Z(t.originalBranch)}catch{}}finally{t.lockOwner&&(St(t.cwd),Pt(t.cwd))}}process.argv[1]&&Qh(import.meta.url)===Xh(process.argv[1])&&eg(process.argv);export{eg as run};