octocode-cli 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -9
- package/out/chunks/chunk-375ZNU3A.js +317 -0
- package/out/chunks/{chunk-V64AXUWB.js → chunk-AYILFPX4.js} +1 -1
- package/out/chunks/chunk-BRHVQB64.js +10 -0
- package/out/chunks/{command-help-specs-JZXVSLZ5.js → chunk-KWJUBVXJ.js} +1 -1
- package/out/chunks/chunk-OMXWZJBJ.js +100 -0
- package/out/chunks/command-help-specs-RVJK6V6M.js +8 -0
- package/out/chunks/commands-JFDCC4Q7.js +8 -0
- package/out/chunks/{help-P7TCOYAJ.js → help-H3WGUJO7.js} +1 -1
- package/out/chunks/main-help-BUTDD4IR.js +10 -0
- package/out/chunks/{spinner-URV2OX6O.js → spinner-DXD4JQIU.js} +1 -1
- package/out/chunks/tool-command-L6PVHUNS.js +8 -0
- package/out/octocode-cli.js +1 -1
- package/package.json +2 -2
- package/skills/octocode-brainstorming/scripts/tavily-search.mjs +1 -10
- package/skills/octocode-chrome-devtools/scripts/cdp-runner.mjs +0 -2
- package/skills/octocode-chrome-devtools/scripts/cdp-sandbox.mjs +1 -5
- package/skills/octocode-chrome-devtools/scripts/cdp-template.mjs +1 -10
- package/skills/octocode-chrome-devtools/scripts/open-browser.mjs +0 -3
- package/skills/octocode-chrome-devtools/scripts/sourcemap-resolver.mjs +1 -4
- package/skills/octocode-chrome-devtools/scripts/undercover.mjs +0 -2
- package/skills/octocode-engineer/SKILL.md +7 -33
- package/skills/octocode-engineer/references/cli-reference.md +5 -11
- package/skills/octocode-engineer/references/externals.md +0 -4
- package/skills/octocode-engineer/references/quality-indicators.md +10 -50
- package/skills/octocode-engineer/references/tool-workflows.md +10 -13
- package/skills/octocode-engineer/src/analysis/dependency-summary.test.ts +2 -2
- package/skills/octocode-engineer/src/ast/metrics.test.ts +2 -2
- package/skills/octocode-engineer/src/ast/search-main.ts +2 -15
- package/skills/octocode-engineer/src/ast/search.ts +1 -7
- package/skills/octocode-engineer/src/ast/tree-sitter.test.ts +4 -4
- package/skills/octocode-engineer/src/ast/tree-sitter.ts +2 -2
- package/skills/octocode-engineer/src/collectors/chains.ts +3 -10
- package/skills/octocode-engineer/src/collectors/prototype-pollution.ts +3 -3
- package/skills/octocode-engineer/src/collectors/security.ts +3 -3
- package/skills/octocode-engineer/src/common/ensure-deps.ts +3 -20
- package/skills/octocode-engineer/src/detectors/code-quality.ts +0 -1
- package/skills/octocode-engineer/src/index.test.ts +1 -1
- package/skills/octocode-engineer/src/index.ts +1 -11
- package/skills/octocode-engineer/src/pipeline/affected.ts +2 -7
- package/skills/octocode-engineer/src/pipeline/baseline.ts +2 -8
- package/skills/octocode-engineer/src/pipeline/cache.ts +2 -2
- package/skills/octocode-engineer/src/pipeline/config-loader.test.ts +1 -2
- package/skills/octocode-engineer/src/pipeline/config-loader.ts +0 -9
- package/skills/octocode-engineer/src/pipeline/create-options.ts +2 -15
- package/skills/octocode-engineer/src/pipeline/reporters.ts +2 -12
- package/skills/octocode-engineer/src/reporting/summary-md.test.ts +2 -2
- package/skills/octocode-engineer/src/run.ts +1 -7
- package/skills/octocode-engineer/src/types/constants.ts +0 -5
- package/skills/octocode-engineer/src/types/core.ts +0 -5
- package/skills/octocode-news/eslint.config.mjs +1 -6
- package/skills/octocode-news/src/rss-core.ts +2 -4
- package/skills/octocode-research/ecosystem.config.cjs +0 -31
- package/skills/octocode-research/package.json +1 -1
- package/skills/octocode-research/scripts/server.js +272 -230
- package/skills/octocode-research/src/__tests__/integration/circuitBreaker.test.ts +0 -24
- package/skills/octocode-research/src/__tests__/integration/routes.test.ts +0 -10
- package/skills/octocode-research/src/__tests__/integration/serverLifecycle.test.ts +5 -22
- package/skills/octocode-research/src/__tests__/integration/toolsRoutes.test.ts +0 -27
- package/skills/octocode-research/src/__tests__/unit/circuitBreaker.test.ts +0 -29
- package/skills/octocode-research/src/__tests__/unit/errorHandler.test.ts +1 -12
- package/skills/octocode-research/src/__tests__/unit/httpPreprocess.test.ts +1 -9
- package/skills/octocode-research/src/__tests__/unit/logger.test.ts +0 -7
- package/skills/octocode-research/src/__tests__/unit/queryParser.test.ts +1 -7
- package/skills/octocode-research/src/__tests__/unit/responseBuilder.test.ts +0 -11
- package/skills/octocode-research/src/__tests__/unit/retry.test.ts +1 -18
- package/skills/octocode-research/src/__tests__/unit/schemas.test.ts +2 -25
- package/skills/octocode-research/src/index.ts +0 -27
- package/skills/octocode-research/src/mcpCache.ts +3 -18
- package/skills/octocode-research/src/middleware/errorHandler.ts +1 -4
- package/skills/octocode-research/src/middleware/logger.ts +1 -6
- package/skills/octocode-research/src/middleware/queryParser.ts +3 -22
- package/skills/octocode-research/src/routes/github.ts +0 -11
- package/skills/octocode-research/src/routes/local.ts +0 -12
- package/skills/octocode-research/src/routes/lsp.ts +1 -10
- package/skills/octocode-research/src/routes/package.ts +0 -2
- package/skills/octocode-research/src/routes/prompts.ts +2 -32
- package/skills/octocode-research/src/routes/tools.ts +12 -177
- package/skills/octocode-research/src/server-init.ts +0 -32
- package/skills/octocode-research/src/server.ts +8 -37
- package/skills/octocode-research/src/types/errorGuards.ts +0 -15
- package/skills/octocode-research/src/types/guards.ts +6 -27
- package/skills/octocode-research/src/types/mcp.ts +1 -8
- package/skills/octocode-research/src/types/responses.ts +0 -15
- package/skills/octocode-research/src/utils/asyncTimeout.ts +1 -63
- package/skills/octocode-research/src/utils/circuitBreaker.ts +43 -166
- package/skills/octocode-research/src/utils/colors.ts +3 -17
- package/skills/octocode-research/src/utils/errorQueue.ts +6 -28
- package/skills/octocode-research/src/utils/logger.ts +11 -93
- package/skills/octocode-research/src/utils/resilience.ts +22 -77
- package/skills/octocode-research/src/utils/responseBuilder.ts +26 -78
- package/skills/octocode-research/src/utils/responseFactory.ts +0 -7
- package/skills/octocode-research/src/utils/responseParser.ts +11 -59
- package/skills/octocode-research/src/utils/retry.ts +12 -75
- package/skills/octocode-research/src/utils/routeFactory.ts +10 -61
- package/skills/octocode-research/src/utils/url.ts +0 -5
- package/skills/octocode-research/src/validation/httpPreprocess.ts +15 -61
- package/skills/octocode-research/src/validation/schemas.ts +14 -101
- package/skills/octocode-research/src/validation/toolCallSchema.ts +5 -65
- package/skills/octocode-research/tsdown.config.ts +2 -7
- package/skills/octocode-search-skill/SKILL.md +9 -2
- package/skills/octocode-search-skill/references/discovery-surfaces.md +2 -1
- package/skills/octocode-slides/scripts/navbridge.js +1 -14
- package/skills/octocode-slides/scripts/presenter.js +2 -61
- package/skills/octocode-stats/scripts/build_dashboard.mjs +1 -19
- package/out/chunks/chunk-7476PETK.js +0 -309
- package/out/chunks/chunk-OQBJTZWK.js +0 -60
- package/out/chunks/chunk-UCZCF3BQ.js +0 -9
- package/out/chunks/commands-XBFPLHSQ.js +0 -8
- package/out/chunks/main-help-ULF5PAQY.js +0 -10
- package/out/chunks/tool-command-M6VA7P2F.js +0 -8
- package/skills/octocode-research/AGENTS.md +0 -349
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { createRequire as __createRequire } from 'module';
|
|
3
|
-
import { fileURLToPath as __fileURLToPath } from 'url';
|
|
4
|
-
import { dirname as __dirname_fn } from 'path';
|
|
5
|
-
const require = __createRequire(import.meta.url);
|
|
6
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
7
|
-
const __dirname = __dirname_fn(__filename);
|
|
8
|
-
import{a as D}from"./chunk-UCZCF3BQ.js";import{a as j,b as yt,c as ae,d as En,e as ko,f as M,g as oe,i as vt}from"./chunk-CVNNNSMQ.js";import{f as xi,k as Uu,l as Fu}from"./chunk-7476PETK.js";import{a,b as f,c as l}from"./chunk-V64AXUWB.js";import{b as Vf,c as ht,d as Gf}from"./chunk-YBBF4DTY.js";var Xm=Vf((Xx,an)=>{"use strict";var Nr=function(){};Nr.prototype=Object.create(null);var Ar=/; *([!#$%&'*+.^\w`|~-]+)=("(?:[\v\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\v\u0020-\u00ff])*"|[!#$%&'*+.^\w`|~-]+) */gu,Mr=/\\([\v\u0020-\u00ff])/gu,qm=/^[!#$%&'*+.^\w|~-]+\/[!#$%&'*+.^\w|~-]+$/u,Pt={type:"",parameters:new Nr};Object.freeze(Pt.parameters);Object.freeze(Pt);function Jm(e){if(typeof e!="string")throw new TypeError("argument header is required and must be a string");let t=e.indexOf(";"),n=t!==-1?e.slice(0,t).trim():e.trim();if(qm.test(n)===!1)throw new TypeError("invalid media type");let r={type:n.toLowerCase(),parameters:new Nr};if(t===-1)return r;let o,i,s;for(Ar.lastIndex=t;i=Ar.exec(e);){if(i.index!==t)throw new TypeError("invalid parameter format");t+=i[0].length,o=i[1].toLowerCase(),s=i[2],s[0]==='"'&&(s=s.slice(1,s.length-1),Mr.test(s)&&(s=s.replace(Mr,"$1"))),r.parameters[o]=s}if(t!==e.length)throw new TypeError("invalid parameter format");return r}function Km(e){if(typeof e!="string")return Pt;let t=e.indexOf(";"),n=t!==-1?e.slice(0,t).trim():e.trim();if(qm.test(n)===!1)return Pt;let r={type:n.toLowerCase(),parameters:new Nr};if(t===-1)return r;let o,i,s;for(Ar.lastIndex=t;i=Ar.exec(e);){if(i.index!==t)return Pt;t+=i[0].length,o=i[1].toLowerCase(),s=i[2],s[0]==='"'&&(s=s.slice(1,s.length-1),Mr.test(s)&&(s=s.replace(Mr,"$1"))),r.parameters[o]=s}return t!==e.length?Pt:r}an.exports.default={parse:Jm,safeParse:Km};an.exports.parse=Jm;an.exports.safeParse=Km;an.exports.defaultContentType=Pt});import q_ from"node:fs";import K_ from"node:path";import{spawnSync as nb}from"node:child_process";import{existsSync as jr,readFileSync as hp,writeFileSync as yp,unlinkSync as mp,statSync as w$,chmodSync as C$}from"node:fs";import{createCipheriv as S$,createDecipheriv as x$,randomBytes as vp}from"node:crypto";import{existsSync as _$,mkdirSync as P$}from"node:fs";import{join as Ue}from"node:path";import Rr from"node:os";import I$ from"node:path";var $={};ht($,{$brand:()=>Pi,$input:()=>Fa,$output:()=>Ua,NEVER:()=>_i,TimePrecision:()=>Va,ZodAny:()=>sm,ZodArray:()=>um,ZodBase64:()=>el,ZodBase64URL:()=>tl,ZodBigInt:()=>rn,ZodBigIntFormat:()=>rl,ZodBoolean:()=>nn,ZodCIDRv4:()=>Yc,ZodCIDRv6:()=>Qc,ZodCUID:()=>Gc,ZodCUID2:()=>Wc,ZodCatch:()=>Tm,ZodCustom:()=>Er,ZodCustomStringFormat:()=>Qd,ZodDate:()=>Ir,ZodDefault:()=>Cm,ZodDiscriminatedUnion:()=>dm,ZodE164:()=>ol,ZodEmail:()=>Fc,ZodEmoji:()=>Bc,ZodEnum:()=>en,ZodError:()=>Oy,ZodFile:()=>km,ZodGUID:()=>wr,ZodIPv4:()=>Kc,ZodIPv6:()=>Xc,ZodISODate:()=>vr,ZodISODateTime:()=>yr,ZodISODuration:()=>br,ZodISOTime:()=>$r,ZodIntersection:()=>mm,ZodIssueCode:()=>Nv,ZodJWT:()=>nl,ZodKSUID:()=>Jc,ZodLazy:()=>zm,ZodLiteral:()=>$m,ZodMap:()=>hm,ZodNaN:()=>Em,ZodNanoID:()=>Vc,ZodNever:()=>cm,ZodNonOptional:()=>dl,ZodNull:()=>rm,ZodNullable:()=>wm,ZodNumber:()=>on,ZodNumberFormat:()=>Kt,ZodObject:()=>Tr,ZodOptional:()=>ul,ZodPipe:()=>ml,ZodPrefault:()=>xm,ZodPromise:()=>Dm,ZodReadonly:()=>Am,ZodRealError:()=>Jt,ZodRecord:()=>al,ZodSet:()=>ym,ZodString:()=>tn,ZodStringFormat:()=>te,ZodSuccess:()=>Im,ZodSymbol:()=>om,ZodTemplateLiteral:()=>Nm,ZodTransform:()=>cl,ZodTuple:()=>gm,ZodType:()=>Z,ZodULID:()=>Hc,ZodURL:()=>Zc,ZodUUID:()=>Qe,ZodUndefined:()=>nm,ZodUnion:()=>sl,ZodUnknown:()=>am,ZodVoid:()=>lm,ZodXID:()=>qc,_ZodString:()=>Uc,_default:()=>Sm,any:()=>uv,array:()=>il,base64:()=>Ky,base64url:()=>Xy,bigint:()=>iv,boolean:()=>tm,catch:()=>Om,check:()=>Lm,cidrv4:()=>qy,cidrv6:()=>Jy,clone:()=>Pe,coerce:()=>pl,config:()=>le,core:()=>Ye,cuid:()=>Fy,cuid2:()=>Zy,custom:()=>Tv,date:()=>mv,discriminatedUnion:()=>yv,e164:()=>Yy,email:()=>Ay,emoji:()=>Ry,endsWith:()=>Wo,enum:()=>vm,file:()=>Cv,flattenError:()=>Eo,float32:()=>tv,float64:()=>ov,formatError:()=>Ao,function:()=>Ic,getErrorMap:()=>jv,globalRegistry:()=>Le,gt:()=>Ke,gte:()=>Ce,guid:()=>My,includes:()=>Vo,instanceof:()=>Ov,int:()=>Rc,int32:()=>nv,int64:()=>sv,intersection:()=>pm,ipv4:()=>Wy,ipv6:()=>Hy,iso:()=>kr,json:()=>Av,jwt:()=>Qy,keyof:()=>pv,ksuid:()=>Gy,lazy:()=>jm,length:()=>qt,literal:()=>bm,locales:()=>Lo,looseObject:()=>hv,lowercase:()=>Zo,lt:()=>Je,lte:()=>Me,map:()=>bv,maxLength:()=>Ht,maxSize:()=>Wt,mime:()=>Ho,minLength:()=>ct,minSize:()=>_t,multipleOf:()=>xt,nan:()=>_v,nanoid:()=>Uy,nativeEnum:()=>wv,negative:()=>vc,never:()=>Pr,nonnegative:()=>bc,nonoptional:()=>Pm,nonpositive:()=>$c,normalize:()=>qo,null:()=>im,nullable:()=>xr,nullish:()=>Sv,number:()=>em,object:()=>gv,optional:()=>Sr,overwrite:()=>Xe,parse:()=>Nc,parseAsync:()=>zc,partialRecord:()=>$v,pipe:()=>_r,positive:()=>yc,prefault:()=>_m,preprocess:()=>Mv,prettifyError:()=>Ui,promise:()=>Iv,property:()=>kc,readonly:()=>Mm,record:()=>fm,refine:()=>Rm,regex:()=>Fo,regexes:()=>wt,registry:()=>qn,safeParse:()=>jc,safeParseAsync:()=>Dc,set:()=>kv,setErrorMap:()=>zv,size:()=>Uo,startsWith:()=>Go,strictObject:()=>fv,string:()=>Lc,stringFormat:()=>ev,stringbool:()=>Ev,success:()=>xv,superRefine:()=>Um,symbol:()=>cv,templateLiteral:()=>Pv,toJSONSchema:()=>Tc,toLowerCase:()=>Ko,toUpperCase:()=>Xo,transform:()=>ll,treeifyError:()=>Ri,trim:()=>Jo,tuple:()=>vv,uint32:()=>rv,uint64:()=>av,ulid:()=>By,undefined:()=>lv,union:()=>Or,unknown:()=>Cr,uppercase:()=>Bo,url:()=>Ly,uuid:()=>Ny,uuidv4:()=>zy,uuidv6:()=>jy,uuidv7:()=>Dy,void:()=>dv,xid:()=>Vy});var Ye={};ht(Ye,{$ZodAny:()=>ga,$ZodArray:()=>zo,$ZodAsyncError:()=>De,$ZodBase64:()=>ra,$ZodBase64URL:()=>ia,$ZodBigInt:()=>Gn,$ZodBigIntFormat:()=>ua,$ZodBoolean:()=>No,$ZodCIDRv4:()=>ta,$ZodCIDRv6:()=>oa,$ZodCUID:()=>Vs,$ZodCUID2:()=>Gs,$ZodCatch:()=>Ma,$ZodCheck:()=>re,$ZodCheckBigIntFormat:()=>bs,$ZodCheckEndsWith:()=>As,$ZodCheckGreaterThan:()=>Fn,$ZodCheckIncludes:()=>Os,$ZodCheckLengthEquals:()=>_s,$ZodCheckLessThan:()=>Un,$ZodCheckLowerCase:()=>Is,$ZodCheckMaxLength:()=>Ss,$ZodCheckMaxSize:()=>ks,$ZodCheckMimeType:()=>Ns,$ZodCheckMinLength:()=>xs,$ZodCheckMinSize:()=>ws,$ZodCheckMultipleOf:()=>vs,$ZodCheckNumberFormat:()=>$s,$ZodCheckOverwrite:()=>zs,$ZodCheckProperty:()=>Ms,$ZodCheckRegex:()=>Ps,$ZodCheckSizeEquals:()=>Cs,$ZodCheckStartsWith:()=>Es,$ZodCheckStringFormat:()=>Zt,$ZodCheckUpperCase:()=>Ts,$ZodCustom:()=>Ra,$ZodCustomStringFormat:()=>ca,$ZodDate:()=>ya,$ZodDefault:()=>Ta,$ZodDiscriminatedUnion:()=>$a,$ZodE164:()=>sa,$ZodEmail:()=>Us,$ZodEmoji:()=>Zs,$ZodEnum:()=>Sa,$ZodError:()=>Oo,$ZodFile:()=>_a,$ZodFunction:()=>hr,$ZodGUID:()=>Ls,$ZodIPv4:()=>Qs,$ZodIPv6:()=>ea,$ZodISODate:()=>Ks,$ZodISODateTime:()=>Js,$ZodISODuration:()=>Ys,$ZodISOTime:()=>Xs,$ZodIntersection:()=>ba,$ZodJWT:()=>aa,$ZodKSUID:()=>qs,$ZodLazy:()=>La,$ZodLiteral:()=>xa,$ZodMap:()=>wa,$ZodNaN:()=>Na,$ZodNanoID:()=>Bs,$ZodNever:()=>fa,$ZodNonOptional:()=>Ea,$ZodNull:()=>pa,$ZodNullable:()=>Ia,$ZodNumber:()=>Vn,$ZodNumberFormat:()=>la,$ZodObject:()=>va,$ZodOptional:()=>Pa,$ZodPipe:()=>Do,$ZodPrefault:()=>Oa,$ZodPromise:()=>Da,$ZodReadonly:()=>za,$ZodRealError:()=>Ft,$ZodRecord:()=>ka,$ZodRegistry:()=>Vt,$ZodSet:()=>Ca,$ZodString:()=>Ct,$ZodStringFormat:()=>Q,$ZodSuccess:()=>Aa,$ZodSymbol:()=>da,$ZodTemplateLiteral:()=>ja,$ZodTransform:()=>jo,$ZodTuple:()=>St,$ZodType:()=>L,$ZodULID:()=>Ws,$ZodURL:()=>Fs,$ZodUUID:()=>Rs,$ZodUndefined:()=>ma,$ZodUnion:()=>Wn,$ZodUnknown:()=>Bt,$ZodVoid:()=>ha,$ZodXID:()=>Hs,$brand:()=>Pi,$constructor:()=>y,$input:()=>Fa,$output:()=>Ua,Doc:()=>Mo,JSONSchema:()=>Kd,JSONSchemaGenerator:()=>Qo,NEVER:()=>_i,TimePrecision:()=>Va,_any:()=>dc,_array:()=>Yo,_base64:()=>mr,_base64url:()=>pr,_bigint:()=>rc,_boolean:()=>oc,_catch:()=>Cy,_cidrv4:()=>ur,_cidrv6:()=>dr,_coercedBigint:()=>ic,_coercedBoolean:()=>nc,_coercedDate:()=>fc,_coercedNumber:()=>Ka,_coercedString:()=>Ba,_cuid:()=>nr,_cuid2:()=>rr,_custom:()=>Sc,_date:()=>gc,_default:()=>by,_discriminatedUnion:()=>ly,_e164:()=>gr,_email:()=>Jn,_emoji:()=>tr,_endsWith:()=>Wo,_enum:()=>gy,_file:()=>Cc,_float32:()=>Ya,_float64:()=>Qa,_gt:()=>Ke,_gte:()=>Ce,_guid:()=>Ro,_includes:()=>Vo,_int:()=>Xa,_int32:()=>ec,_int64:()=>sc,_intersection:()=>uy,_ipv4:()=>cr,_ipv6:()=>lr,_isoDate:()=>Wa,_isoDateTime:()=>Ga,_isoDuration:()=>qa,_isoTime:()=>Ha,_jwt:()=>fr,_ksuid:()=>ar,_lazy:()=>Py,_length:()=>qt,_literal:()=>hy,_lowercase:()=>Zo,_lt:()=>Je,_lte:()=>Me,_map:()=>my,_max:()=>Me,_maxLength:()=>Ht,_maxSize:()=>Wt,_mime:()=>Ho,_min:()=>Ce,_minLength:()=>ct,_minSize:()=>_t,_multipleOf:()=>xt,_nan:()=>hc,_nanoid:()=>or,_nativeEnum:()=>fy,_negative:()=>vc,_never:()=>mc,_nonnegative:()=>bc,_nonoptional:()=>ky,_nonpositive:()=>$c,_normalize:()=>qo,_null:()=>uc,_nullable:()=>$y,_number:()=>Ja,_optional:()=>vy,_overwrite:()=>Xe,_parse:()=>Mn,_parseAsync:()=>zn,_pipe:()=>Sy,_positive:()=>yc,_promise:()=>Iy,_property:()=>kc,_readonly:()=>xy,_record:()=>dy,_refine:()=>xc,_regex:()=>Fo,_safeParse:()=>Dn,_safeParseAsync:()=>Ln,_set:()=>py,_size:()=>Uo,_startsWith:()=>Go,_string:()=>Za,_stringFormat:()=>Pc,_stringbool:()=>_c,_success:()=>wy,_symbol:()=>cc,_templateLiteral:()=>_y,_toLowerCase:()=>Ko,_toUpperCase:()=>Xo,_transform:()=>yy,_trim:()=>Jo,_tuple:()=>wc,_uint32:()=>tc,_uint64:()=>ac,_ulid:()=>ir,_undefined:()=>lc,_union:()=>cy,_unknown:()=>Gt,_uppercase:()=>Bo,_url:()=>er,_uuid:()=>Kn,_uuidv4:()=>Xn,_uuidv6:()=>Yn,_uuidv7:()=>Qn,_void:()=>pc,_xid:()=>sr,clone:()=>Pe,config:()=>le,flattenError:()=>Eo,formatError:()=>Ao,function:()=>Ic,globalConfig:()=>wo,globalRegistry:()=>Le,isValidBase64:()=>na,isValidBase64URL:()=>ad,isValidJWT:()=>cd,locales:()=>Lo,parse:()=>Nn,parseAsync:()=>jn,prettifyError:()=>Ui,regexes:()=>wt,registry:()=>qn,safeParse:()=>Fi,safeParseAsync:()=>Zi,toDotPath:()=>Bu,toJSONSchema:()=>Tc,treeifyError:()=>Ri,util:()=>I,version:()=>js});var _i=Object.freeze({status:"aborted"});function y(e,t,n){function r(c,u){var m;Object.defineProperty(c,"_zod",{value:c._zod??{},enumerable:!1}),(m=c._zod).traits??(m.traits=new Set),c._zod.traits.add(e),t(c,u);for(let d in s.prototype)d in c||Object.defineProperty(c,d,{value:s.prototype[d].bind(c)});c._zod.constr=s,c._zod.def=u}let o=n?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(c){var u;let m=n?.Parent?new i:this;r(m,c),(u=m._zod).deferred??(u.deferred=[]);for(let d of m._zod.deferred)d();return m}return Object.defineProperty(s,"init",{value:r}),Object.defineProperty(s,Symbol.hasInstance,{value:c=>n?.Parent&&c instanceof n.Parent?!0:c?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var Pi=Symbol("zod_brand"),De=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},wo={};function le(e){return e&&Object.assign(wo,e),wo}var I={};ht(I,{BIGINT_FORMAT_RANGES:()=>Di,Class:()=>Ti,NUMBER_FORMAT_RANGES:()=>ji,aborted:()=>bt,allowsEval:()=>Mi,assert:()=>Kf,assertEqual:()=>Wf,assertIs:()=>qf,assertNever:()=>Jf,assertNotEqual:()=>Hf,assignProp:()=>Ai,cached:()=>xo,captureStackTrace:()=>An,cleanEnum:()=>lh,cleanRegex:()=>_o,clone:()=>Pe,createTransparentProxy:()=>oh,defineLazy:()=>H,esc:()=>$t,escapeRegex:()=>qe,extend:()=>ih,finalizeIssue:()=>Ie,floatSafeRemainder:()=>Ei,getElementAtPath:()=>Xf,getEnumValues:()=>So,getLengthableOrigin:()=>To,getParsedType:()=>th,getSizableOrigin:()=>Io,isObject:()=>Rt,isPlainObject:()=>Ut,issue:()=>Li,joinValues:()=>b,jsonStringifyReplacer:()=>Oi,merge:()=>sh,normalizeParams:()=>_,nullish:()=>at,numKeys:()=>eh,omit:()=>rh,optionalKeys:()=>zi,partial:()=>ah,pick:()=>nh,prefixIssues:()=>we,primitiveTypes:()=>Ni,promiseAllObject:()=>Yf,propertyKeyTypes:()=>Po,randomString:()=>Qf,required:()=>ch,stringifyPrimitive:()=>P,unwrapMessage:()=>Co});function Wf(e){return e}function Hf(e){return e}function qf(e){}function Jf(e){throw new Error}function Kf(e){}function So(e){let t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function b(e,t="|"){return e.map(n=>P(n)).join(t)}function Oi(e,t){return typeof t=="bigint"?t.toString():t}function xo(e){return{get value(){{let n=e();return Object.defineProperty(this,"value",{value:n}),n}throw new Error("cached value already set")}}}function at(e){return e==null}function _o(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Ei(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,o=n>r?n:r,i=Number.parseInt(e.toFixed(o).replace(".","")),s=Number.parseInt(t.toFixed(o).replace(".",""));return i%s/10**o}function H(e,t,n){Object.defineProperty(e,t,{get(){{let o=n();return e[t]=o,o}throw new Error("cached value already set")},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function Ai(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Xf(e,t){return t?t.reduce((n,r)=>n?.[r],e):e}function Yf(e){let t=Object.keys(e),n=t.map(r=>e[r]);return Promise.all(n).then(r=>{let o={};for(let i=0;i<t.length;i++)o[t[i]]=r[i];return o})}function Qf(e=10){let t="abcdefghijklmnopqrstuvwxyz",n="";for(let r=0;r<e;r++)n+=t[Math.floor(Math.random()*t.length)];return n}function $t(e){return JSON.stringify(e)}var An=Error.captureStackTrace?Error.captureStackTrace:(...e)=>{};function Rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Mi=xo(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function Ut(e){if(Rt(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(Rt(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function eh(e){let t=0;for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}var th=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}`)}},Po=new Set(["string","number","symbol"]),Ni=new Set(["string","number","bigint","boolean","symbol","undefined"]);function qe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Pe(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}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 oh(e){let t;return new Proxy({},{get(n,r,o){return t??(t=e()),Reflect.get(t,r,o)},set(n,r,o,i){return t??(t=e()),Reflect.set(t,r,o,i)},has(n,r){return t??(t=e()),Reflect.has(t,r)},deleteProperty(n,r){return t??(t=e()),Reflect.deleteProperty(t,r)},ownKeys(n){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(n,r){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,r)},defineProperty(n,r,o){return t??(t=e()),Reflect.defineProperty(t,r,o)}})}function P(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function zi(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var ji={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]},Di={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function nh(e,t){let n={},r=e._zod.def;for(let o in t){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(n[o]=r.shape[o])}return Pe(e,{...e._zod.def,shape:n,checks:[]})}function rh(e,t){let n={...e._zod.def.shape},r=e._zod.def;for(let o in t){if(!(o in r.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&delete n[o]}return Pe(e,{...e._zod.def,shape:n,checks:[]})}function ih(e,t){if(!Ut(t))throw new Error("Invalid input to extend: expected a plain object");let n={...e._zod.def,get shape(){let r={...e._zod.def.shape,...t};return Ai(this,"shape",r),r},checks:[]};return Pe(e,n)}function sh(e,t){return Pe(e,{...e._zod.def,get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ai(this,"shape",n),n},catchall:t._zod.def.catchall,checks:[]})}function ah(e,t,n){let r=t._zod.def.shape,o={...r};if(n)for(let i in n){if(!(i in r))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(o[i]=e?new e({type:"optional",innerType:r[i]}):r[i])}else for(let i in r)o[i]=e?new e({type:"optional",innerType:r[i]}):r[i];return Pe(t,{...t._zod.def,shape:o,checks:[]})}function ch(e,t,n){let r=t._zod.def.shape,o={...r};if(n)for(let i in n){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(o[i]=new e({type:"nonoptional",innerType:r[i]}))}else for(let i in r)o[i]=new e({type:"nonoptional",innerType:r[i]});return Pe(t,{...t._zod.def,shape:o,checks:[]})}function bt(e,t=0){for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function we(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Co(e){return typeof e=="string"?e:e?.message}function Ie(e,t,n){let r={...e,path:e.path??[]};if(!e.message){let o=Co(e.inst?._zod.def?.error?.(e))??Co(t?.error?.(e))??Co(n.customError?.(e))??Co(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Io(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function To(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Li(...e){let[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}function lh(e){return Object.entries(e).filter(([t,n])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}var Ti=class{constructor(...t){}};var Zu=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),Object.defineProperty(e,"message",{get(){return JSON.stringify(t,Oi,2)},enumerable:!0}),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Oo=y("$ZodError",Zu),Ft=y("$ZodError",Zu,{Parent:Error});function Eo(e,t=n=>n.message){let n={},r=[];for(let o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function Ao(e,t){let n=t||function(i){return i.message},r={_errors:[]},o=i=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(c=>o({issues:c}));else if(s.code==="invalid_key")o({issues:s.issues});else if(s.code==="invalid_element")o({issues:s.issues});else if(s.path.length===0)r._errors.push(n(s));else{let c=r,u=0;for(;u<s.path.length;){let m=s.path[u];u===s.path.length-1?(c[m]=c[m]||{_errors:[]},c[m]._errors.push(n(s))):c[m]=c[m]||{_errors:[]},c=c[m],u++}}};return o(e),r}function Ri(e,t){let n=t||function(i){return i.message},r={errors:[]},o=(i,s=[])=>{var c,u;for(let m of i.issues)if(m.code==="invalid_union"&&m.errors.length)m.errors.map(d=>o({issues:d},m.path));else if(m.code==="invalid_key")o({issues:m.issues},m.path);else if(m.code==="invalid_element")o({issues:m.issues},m.path);else{let d=[...s,...m.path];if(d.length===0){r.errors.push(n(m));continue}let p=r,h=0;for(;h<d.length;){let v=d[h],g=h===d.length-1;typeof v=="string"?(p.properties??(p.properties={}),(c=p.properties)[v]??(c[v]={errors:[]}),p=p.properties[v]):(p.items??(p.items=[]),(u=p.items)[v]??(u[v]={errors:[]}),p=p.items[v]),g&&p.errors.push(n(m)),h++}}};return o(e),r}function Bu(e){let t=[];for(let n of e)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 Ui(e){let t=[],n=[...e.issues].sort((r,o)=>r.path.length-o.path.length);for(let r of n)t.push(`\u2716 ${r.message}`),r.path?.length&&t.push(` \u2192 at ${Bu(r.path)}`);return t.join(`
|
|
9
|
-
`)}var Mn=e=>(t,n,r,o)=>{let i=r?Object.assign(r,{async:!1}):{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new De;if(s.issues.length){let c=new(o?.Err??e)(s.issues.map(u=>Ie(u,i,le())));throw An(c,o?.callee),c}return s.value},Nn=Mn(Ft),zn=e=>async(t,n,r,o)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){let c=new(o?.Err??e)(s.issues.map(u=>Ie(u,i,le())));throw An(c,o?.callee),c}return s.value},jn=zn(Ft),Dn=e=>(t,n,r)=>{let o=r?{...r,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)throw new De;return i.issues.length?{success:!1,error:new(e??Oo)(i.issues.map(s=>Ie(s,o,le())))}:{success:!0,data:i.value}},Fi=Dn(Ft),Ln=e=>async(t,n,r)=>{let o=r?Object.assign(r,{async:!0}):{async:!0},i=t._zod.run({value:n,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>Ie(s,o,le())))}:{success:!0,data:i.value}},Zi=Ln(Ft);var wt={};ht(wt,{_emoji:()=>Vu,base64:()=>ns,base64url:()=>Rn,bigint:()=>us,boolean:()=>ps,browserEmail:()=>vh,cidrv4:()=>ts,cidrv6:()=>os,cuid:()=>Bi,cuid2:()=>Vi,date:()=>ss,datetime:()=>cs,domain:()=>$h,duration:()=>Ji,e164:()=>is,email:()=>Xi,emoji:()=>Yi,extendedDuration:()=>dh,guid:()=>Ki,hostname:()=>rs,html5Email:()=>fh,integer:()=>ds,ipv4:()=>Qi,ipv6:()=>es,ksuid:()=>Hi,lowercase:()=>hs,nanoid:()=>qi,null:()=>gs,number:()=>ms,rfc5322Email:()=>hh,string:()=>ls,time:()=>as,ulid:()=>Gi,undefined:()=>fs,unicodeEmail:()=>yh,uppercase:()=>ys,uuid:()=>kt,uuid4:()=>mh,uuid6:()=>ph,uuid7:()=>gh,xid:()=>Wi});var Bi=/^[cC][^\s-]{8,}$/,Vi=/^[0-9a-z]+$/,Gi=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Wi=/^[0-9a-vA-V]{20}$/,Hi=/^[A-Za-z0-9]{27}$/,qi=/^[a-zA-Z0-9_-]{21}$/,Ji=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,dh=/^[-+]?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)?)??$/,Ki=/^([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})$/,kt=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)$/,mh=kt(4),ph=kt(6),gh=kt(7),Xi=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,fh=/^[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])?)*$/,hh=/^(([^<>()\[\]\\.,;:\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,}))$/,yh=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,vh=/^[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])?)*$/,Vu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Yi(){return new RegExp(Vu,"u")}var Qi=/^(?:(?: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])$/,es=/^(([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})$/,ts=/^((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])$/,os=/^(([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])$/,ns=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Rn=/^[A-Za-z0-9_-]*$/,rs=/^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+$/,$h=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,is=/^\+(?:[0-9]){6,14}[0-9]$/,Gu="(?:(?:\\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])))",ss=new RegExp(`^${Gu}$`);function Wu(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 as(e){return new RegExp(`^${Wu(e)}$`)}function cs(e){let t=Wu({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-]\\d{2}:\\d{2})");let r=`${t}(?:${n.join("|")})`;return new RegExp(`^${Gu}T(?:${r})$`)}var ls=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},us=/^\d+n?$/,ds=/^\d+$/,ms=/^-?\d+(?:\.\d+)?/i,ps=/true|false/i,gs=/null/i;var fs=/undefined/i;var hs=/^[^A-Z]*$/,ys=/^[^a-z]*$/;var re=y("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),qu={number:"number",bigint:"bigint",object:"date"},Un=y("$ZodCheckLessThan",(e,t)=>{re.init(e,t);let n=qu[typeof t.value];e._zod.onattach.push(r=>{let o=r._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=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:"too_big",maximum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Fn=y("$ZodCheckGreaterThan",(e,t)=>{re.init(e,t);let n=qu[typeof t.value];e._zod.onattach.push(r=>{let o=r._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=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),vs=y("$ZodCheckMultipleOf",(e,t)=>{re.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):Ei(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),$s=y("$ZodCheckNumberFormat",(e,t)=>{re.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[o,i]=ji[t.format];e._zod.onattach.push(s=>{let c=s._zod.bag;c.format=t.format,c.minimum=o,c.maximum=i,n&&(c.pattern=ds)}),e._zod.check=s=>{let c=s.value;if(n){if(!Number.isInteger(c)){s.issues.push({expected:r,format:t.format,code:"invalid_type",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:r,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:r,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,inst:e})}}),bs=y("$ZodCheckBigIntFormat",(e,t)=>{re.init(e,t);let[n,r]=Di[t.format];e._zod.onattach.push(o=>{let i=o._zod.bag;i.format=t.format,i.minimum=n,i.maximum=r}),e._zod.check=o=>{let i=o.value;i<n&&o.issues.push({origin:"bigint",input:i,code:"too_small",minimum:n,inclusive:!0,inst:e,continue:!t.abort}),i>r&&o.issues.push({origin:"bigint",input:i,code:"too_big",maximum:r,inst:e})}}),ks=y("$ZodCheckMaxSize",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.size!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{let o=r.value;o.size<=t.maximum||r.issues.push({origin:Io(o),code:"too_big",maximum:t.maximum,input:o,inst:e,continue:!t.abort})}}),ws=y("$ZodCheckMinSize",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.size!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let o=r.value;o.size>=t.minimum||r.issues.push({origin:Io(o),code:"too_small",minimum:t.minimum,input:o,inst:e,continue:!t.abort})}}),Cs=y("$ZodCheckSizeEquals",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.size!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag;o.minimum=t.size,o.maximum=t.size,o.size=t.size}),e._zod.check=r=>{let o=r.value,i=o.size;if(i===t.size)return;let s=i>t.size;r.issues.push({origin:Io(o),...s?{code:"too_big",maximum:t.size}:{code:"too_small",minimum:t.size},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Ss=y("$ZodCheckMaxLength",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{let o=r.value;if(o.length<=t.maximum)return;let s=To(o);r.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),xs=y("$ZodCheckMinLength",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{let o=r.value;if(o.length>=t.minimum)return;let s=To(o);r.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),_s=y("$ZodCheckLengthEquals",(e,t)=>{var n;re.init(e,t),(n=e._zod.def).when??(n.when=r=>{let o=r.value;return!at(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{let o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{let o=r.value,i=o.length;if(i===t.length)return;let s=To(o),c=i>t.length;r.issues.push({origin:s,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),Zt=y("$ZodCheckStringFormat",(e,t)=>{var n,r;re.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?(n=e._zod).check??(n.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})}):(r=e._zod).check??(r.check=()=>{})}),Ps=y("$ZodCheckRegex",(e,t)=>{Zt.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Is=y("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=hs),Zt.init(e,t)}),Ts=y("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ys),Zt.init(e,t)}),Os=y("$ZodCheckIncludes",(e,t)=>{re.init(e,t);let n=qe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{let i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),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})}}),Es=y("$ZodCheckStartsWith",(e,t)=>{re.init(e,t);let n=new RegExp(`^${qe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),As=y("$ZodCheckEndsWith",(e,t)=>{re.init(e,t);let n=new RegExp(`.*${qe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{let o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});function Hu(e,t,n){e.issues.length&&t.issues.push(...we(n,e.issues))}var Ms=y("$ZodCheckProperty",(e,t)=>{re.init(e,t),e._zod.check=n=>{let r=t.schema._zod.run({value:n.value[t.property],issues:[]},{});if(r instanceof Promise)return r.then(o=>Hu(o,n,t.property));Hu(r,n,t.property)}}),Ns=y("$ZodCheckMimeType",(e,t)=>{re.init(e,t);let n=new Set(t.mime);e._zod.onattach.push(r=>{r._zod.bag.mime=t.mime}),e._zod.check=r=>{n.has(r.value.type)||r.issues.push({code:"invalid_value",values:t.mime,input:r.value.type,inst:e})}}),zs=y("$ZodCheckOverwrite",(e,t)=>{re.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});var Mo=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 r=t.split(`
|
|
10
|
-
`).filter(s=>s),o=Math.min(...r.map(s=>s.length-s.trimStart().length)),i=r.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,n=this?.args,o=[...(this?.content??[""]).map(i=>` ${i}`)];return new t(...n,o.join(`
|
|
11
|
-
`))}};var js={major:4,minor:0,patch:0};var L=y("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=js;let r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(let o of r)for(let i of o._zod.onattach)i(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let o=(i,s,c)=>{let u=bt(i),m;for(let d of s){if(d._zod.def.when){if(!d._zod.def.when(i))continue}else if(u)continue;let p=i.issues.length,h=d._zod.check(i);if(h instanceof Promise&&c?.async===!1)throw new De;if(m||h instanceof Promise)m=(m??Promise.resolve()).then(async()=>{await h,i.issues.length!==p&&(u||(u=bt(i,p)))});else{if(i.issues.length===p)continue;u||(u=bt(i,p))}}return m?m.then(()=>i):i};e._zod.run=(i,s)=>{let c=e._zod.parse(i,s);if(c instanceof Promise){if(s.async===!1)throw new De;return c.then(u=>o(u,r,s))}return o(c,r,s)}}e["~standard"]={validate:o=>{try{let i=Fi(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return Zi(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}}),Ct=y("$ZodString",(e,t)=>{L.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ls(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Q=y("$ZodStringFormat",(e,t)=>{Zt.init(e,t),Ct.init(e,t)}),Ls=y("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ki),Q.init(e,t)}),Rs=y("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=kt(r))}else t.pattern??(t.pattern=kt());Q.init(e,t)}),Us=y("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Xi),Q.init(e,t)}),Fs=y("$ZodURL",(e,t)=>{Q.init(e,t),e._zod.check=n=>{try{let r=n.value,o=new URL(r),i=o.href;t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:rs.source,input:n.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)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),!r.endsWith("/")&&i.endsWith("/")?n.value=i.slice(0,-1):n.value=i;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Zs=y("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Yi()),Q.init(e,t)}),Bs=y("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=qi),Q.init(e,t)}),Vs=y("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Bi),Q.init(e,t)}),Gs=y("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Vi),Q.init(e,t)}),Ws=y("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Gi),Q.init(e,t)}),Hs=y("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Wi),Q.init(e,t)}),qs=y("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Hi),Q.init(e,t)}),Js=y("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=cs(t)),Q.init(e,t)}),Ks=y("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=ss),Q.init(e,t)}),Xs=y("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=as(t)),Q.init(e,t)}),Ys=y("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ji),Q.init(e,t)}),Qs=y("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Qi),Q.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv4"})}),ea=y("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=es),Q.init(e,t),e._zod.onattach.push(n=>{let r=n._zod.bag;r.format="ipv6"}),e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),ta=y("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ts),Q.init(e,t)}),oa=y("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=os),Q.init(e,t),e._zod.check=n=>{let[r,o]=n.value.split("/");try{if(!o)throw new Error;let i=Number(o);if(`${i}`!==o)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${r}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function na(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var ra=y("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ns),Q.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64"}),e._zod.check=n=>{na(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function ad(e){if(!Rn.test(e))return!1;let t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return na(n)}var ia=y("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Rn),Q.init(e,t),e._zod.onattach.push(n=>{n._zod.bag.contentEncoding="base64url"}),e._zod.check=n=>{ad(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),sa=y("$ZodE164",(e,t)=>{t.pattern??(t.pattern=is),Q.init(e,t)});function cd(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var aa=y("$ZodJWT",(e,t)=>{Q.init(e,t),e._zod.check=n=>{cd(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),ca=y("$ZodCustomStringFormat",(e,t)=>{Q.init(e,t),e._zod.check=n=>{t.fn(n.value)||n.issues.push({code:"invalid_format",format:t.format,input:n.value,inst:e,continue:!t.abort})}}),Vn=y("$ZodNumber",(e,t)=>{L.init(e,t),e._zod.pattern=e._zod.bag.pattern??ms,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let o=n.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;let i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),n}}),la=y("$ZodNumber",(e,t)=>{$s.init(e,t),Vn.init(e,t)}),No=y("$ZodBoolean",(e,t)=>{L.init(e,t),e._zod.pattern=ps,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let o=n.value;return typeof o=="boolean"||n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}}),Gn=y("$ZodBigInt",(e,t)=>{L.init(e,t),e._zod.pattern=us,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=BigInt(n.value)}catch{}return typeof n.value=="bigint"||n.issues.push({expected:"bigint",code:"invalid_type",input:n.value,inst:e}),n}}),ua=y("$ZodBigInt",(e,t)=>{bs.init(e,t),Gn.init(e,t)}),da=y("$ZodSymbol",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;return typeof o=="symbol"||n.issues.push({expected:"symbol",code:"invalid_type",input:o,inst:e}),n}}),ma=y("$ZodUndefined",(e,t)=>{L.init(e,t),e._zod.pattern=fs,e._zod.values=new Set([void 0]),e._zod.optin="optional",e._zod.optout="optional",e._zod.parse=(n,r)=>{let o=n.value;return typeof o>"u"||n.issues.push({expected:"undefined",code:"invalid_type",input:o,inst:e}),n}}),pa=y("$ZodNull",(e,t)=>{L.init(e,t),e._zod.pattern=gs,e._zod.values=new Set([null]),e._zod.parse=(n,r)=>{let o=n.value;return o===null||n.issues.push({expected:"null",code:"invalid_type",input:o,inst:e}),n}}),ga=y("$ZodAny",(e,t)=>{L.init(e,t),e._zod.parse=n=>n}),Bt=y("$ZodUnknown",(e,t)=>{L.init(e,t),e._zod.parse=n=>n}),fa=y("$ZodNever",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)}),ha=y("$ZodVoid",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;return typeof o>"u"||n.issues.push({expected:"void",code:"invalid_type",input:o,inst:e}),n}}),ya=y("$ZodDate",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=new Date(n.value)}catch{}let o=n.value,i=o instanceof Date;return i&&!Number.isNaN(o.getTime())||n.issues.push({expected:"date",code:"invalid_type",input:o,...i?{received:"Invalid Date"}:{},inst:e}),n}});function Ku(e,t,n){e.issues.length&&t.issues.push(...we(n,e.issues)),t.value[n]=e.value}var zo=y("$ZodArray",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);let i=[];for(let s=0;s<o.length;s++){let c=o[s],u=t.element._zod.run({value:c,issues:[]},r);u instanceof Promise?i.push(u.then(m=>Ku(m,n,s))):Ku(u,n,s)}return i.length?Promise.all(i).then(()=>n):n}});function Zn(e,t,n){e.issues.length&&t.issues.push(...we(n,e.issues)),t.value[n]=e.value}function Xu(e,t,n,r){e.issues.length?r[n]===void 0?n in r?t.value[n]=void 0:t.value[n]=e.value:t.issues.push(...we(n,e.issues)):e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}var va=y("$ZodObject",(e,t)=>{L.init(e,t);let n=xo(()=>{let p=Object.keys(t.shape);for(let v of p)if(!(t.shape[v]instanceof L))throw new Error(`Invalid element at key "${v}": expected a Zod schema`);let h=zi(t.shape);return{shape:t.shape,keys:p,keySet:new Set(p),numKeys:p.length,optionalKeys:new Set(h)}});H(e._zod,"propValues",()=>{let p=t.shape,h={};for(let v in p){let g=p[v]._zod;if(g.values){h[v]??(h[v]=new Set);for(let C of g.values)h[v].add(C)}}return h});let r=p=>{let h=new Mo(["shape","payload","ctx"]),v=n.value,g=x=>{let S=$t(x);return`shape[${S}]._zod.run({ value: input[${S}], issues: [] }, ctx)`};h.write("const input = payload.value;");let C=Object.create(null),k=0;for(let x of v.keys)C[x]=`key_${k++}`;h.write("const newResult = {}");for(let x of v.keys)if(v.optionalKeys.has(x)){let S=C[x];h.write(`const ${S} = ${g(x)};`);let E=$t(x);h.write(`
|
|
12
|
-
if (${S}.issues.length) {
|
|
13
|
-
if (input[${E}] === undefined) {
|
|
14
|
-
if (${E} in input) {
|
|
15
|
-
newResult[${E}] = undefined;
|
|
16
|
-
}
|
|
17
|
-
} else {
|
|
18
|
-
payload.issues = payload.issues.concat(
|
|
19
|
-
${S}.issues.map((iss) => ({
|
|
20
|
-
...iss,
|
|
21
|
-
path: iss.path ? [${E}, ...iss.path] : [${E}],
|
|
22
|
-
}))
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
} else if (${S}.value === undefined) {
|
|
26
|
-
if (${E} in input) newResult[${E}] = undefined;
|
|
27
|
-
} else {
|
|
28
|
-
newResult[${E}] = ${S}.value;
|
|
29
|
-
}
|
|
30
|
-
`)}else{let S=C[x];h.write(`const ${S} = ${g(x)};`),h.write(`
|
|
31
|
-
if (${S}.issues.length) payload.issues = payload.issues.concat(${S}.issues.map(iss => ({
|
|
32
|
-
...iss,
|
|
33
|
-
path: iss.path ? [${$t(x)}, ...iss.path] : [${$t(x)}]
|
|
34
|
-
})));`),h.write(`newResult[${$t(x)}] = ${S}.value`)}h.write("payload.value = newResult;"),h.write("return payload;");let O=h.compile();return(x,S)=>O(p,x,S)},o,i=Rt,s=!wo.jitless,u=s&&Mi.value,m=t.catchall,d;e._zod.parse=(p,h)=>{d??(d=n.value);let v=p.value;if(!i(v))return p.issues.push({expected:"object",code:"invalid_type",input:v,inst:e}),p;let g=[];if(s&&u&&h?.async===!1&&h.jitless!==!0)o||(o=r(t.shape)),p=o(p,h);else{p.value={};let S=d.shape;for(let E of d.keys){let N=S[E],U=N._zod.run({value:v[E],issues:[]},h),V=N._zod.optin==="optional"&&N._zod.optout==="optional";U instanceof Promise?g.push(U.then(A=>V?Xu(A,p,E,v):Zn(A,p,E))):V?Xu(U,p,E,v):Zn(U,p,E)}}if(!m)return g.length?Promise.all(g).then(()=>p):p;let C=[],k=d.keySet,O=m._zod,x=O.def.type;for(let S of Object.keys(v)){if(k.has(S))continue;if(x==="never"){C.push(S);continue}let E=O.run({value:v[S],issues:[]},h);E instanceof Promise?g.push(E.then(N=>Zn(N,p,S))):Zn(E,p,S)}return C.length&&p.issues.push({code:"unrecognized_keys",keys:C,input:v,inst:e}),g.length?Promise.all(g).then(()=>p):p}});function Yu(e,t,n,r){for(let o of e)if(o.issues.length===0)return t.value=o.value,t;return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(o=>o.issues.map(i=>Ie(i,r,le())))}),t}var Wn=y("$ZodUnion",(e,t)=>{L.init(e,t),H(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),H(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),H(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),H(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){let n=t.options.map(r=>r._zod.pattern);return new RegExp(`^(${n.map(r=>_o(r.source)).join("|")})$`)}}),e._zod.parse=(n,r)=>{let o=!1,i=[];for(let s of t.options){let c=s._zod.run({value:n.value,issues:[]},r);if(c instanceof Promise)i.push(c),o=!0;else{if(c.issues.length===0)return c;i.push(c)}}return o?Promise.all(i).then(s=>Yu(s,n,e,r)):Yu(i,n,e,r)}}),$a=y("$ZodDiscriminatedUnion",(e,t)=>{Wn.init(e,t);let n=e._zod.parse;H(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,u]of Object.entries(s)){o[c]||(o[c]=new Set);for(let m of u)o[c].add(m)}}return o});let r=xo(()=>{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 u of c){if(i.has(u))throw new Error(`Duplicate discriminator value "${String(u)}"`);i.set(u,s)}}return i});e._zod.parse=(o,i)=>{let s=o.value;if(!Rt(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let c=r.value.get(s?.[t.discriminator]);return c?c._zod.run(o,i):t.unionFallback?n(o,i):(o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",input:s,path:[t.discriminator],inst:e}),o)}}),ba=y("$ZodIntersection",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value,i=t.left._zod.run({value:o,issues:[]},r),s=t.right._zod.run({value:o,issues:[]},r);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([u,m])=>Qu(n,u,m)):Qu(n,i,s)}});function Ds(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(Ut(e)&&Ut(t)){let n=Object.keys(t),r=Object.keys(e).filter(i=>n.indexOf(i)!==-1),o={...e,...t};for(let i of r){let s=Ds(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 n=[];for(let r=0;r<e.length;r++){let o=e[r],i=t[r],s=Ds(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[r,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Qu(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),bt(e))return e;let r=Ds(t.value,n.value);if(!r.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}var St=y("$ZodTuple",(e,t)=>{L.init(e,t);let n=t.items,r=n.length-[...n].reverse().findIndex(o=>o._zod.optin!=="optional");e._zod.parse=(o,i)=>{let s=o.value;if(!Array.isArray(s))return o.issues.push({input:s,inst:e,expected:"tuple",code:"invalid_type"}),o;o.value=[];let c=[];if(!t.rest){let m=s.length>n.length,d=s.length<r-1;if(m||d)return o.issues.push({input:s,inst:e,origin:"array",...m?{code:"too_big",maximum:n.length}:{code:"too_small",minimum:n.length}}),o}let u=-1;for(let m of n){if(u++,u>=s.length&&u>=r)continue;let d=m._zod.run({value:s[u],issues:[]},i);d instanceof Promise?c.push(d.then(p=>Bn(p,o,u))):Bn(d,o,u)}if(t.rest){let m=s.slice(n.length);for(let d of m){u++;let p=t.rest._zod.run({value:d,issues:[]},i);p instanceof Promise?c.push(p.then(h=>Bn(h,o,u))):Bn(p,o,u)}}return c.length?Promise.all(c).then(()=>o):o}});function Bn(e,t,n){e.issues.length&&t.issues.push(...we(n,e.issues)),t.value[n]=e.value}var ka=y("$ZodRecord",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;if(!Ut(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;let i=[];if(t.keyType._zod.values){let s=t.keyType._zod.values;n.value={};for(let u of s)if(typeof u=="string"||typeof u=="number"||typeof u=="symbol"){let m=t.valueType._zod.run({value:o[u],issues:[]},r);m instanceof Promise?i.push(m.then(d=>{d.issues.length&&n.issues.push(...we(u,d.issues)),n.value[u]=d.value})):(m.issues.length&&n.issues.push(...we(u,m.issues)),n.value[u]=m.value)}let c;for(let u in o)s.has(u)||(c=c??[],c.push(u));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{n.value={};for(let s of Reflect.ownKeys(o)){if(s==="__proto__")continue;let c=t.keyType._zod.run({value:s,issues:[]},r);if(c instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(c.issues.length){n.issues.push({origin:"record",code:"invalid_key",issues:c.issues.map(m=>Ie(m,r,le())),input:s,path:[s],inst:e}),n.value[c.value]=c.value;continue}let u=t.valueType._zod.run({value:o[s],issues:[]},r);u instanceof Promise?i.push(u.then(m=>{m.issues.length&&n.issues.push(...we(s,m.issues)),n.value[c.value]=m.value})):(u.issues.length&&n.issues.push(...we(s,u.issues)),n.value[c.value]=u.value)}}return i.length?Promise.all(i).then(()=>n):n}}),wa=y("$ZodMap",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;if(!(o instanceof Map))return n.issues.push({expected:"map",code:"invalid_type",input:o,inst:e}),n;let i=[];n.value=new Map;for(let[s,c]of o){let u=t.keyType._zod.run({value:s,issues:[]},r),m=t.valueType._zod.run({value:c,issues:[]},r);u instanceof Promise||m instanceof Promise?i.push(Promise.all([u,m]).then(([d,p])=>{ed(d,p,n,s,o,e,r)})):ed(u,m,n,s,o,e,r)}return i.length?Promise.all(i).then(()=>n):n}});function ed(e,t,n,r,o,i,s){e.issues.length&&(Po.has(typeof r)?n.issues.push(...we(r,e.issues)):n.issues.push({origin:"map",code:"invalid_key",input:o,inst:i,issues:e.issues.map(c=>Ie(c,s,le()))})),t.issues.length&&(Po.has(typeof r)?n.issues.push(...we(r,t.issues)):n.issues.push({origin:"map",code:"invalid_element",input:o,inst:i,key:r,issues:t.issues.map(c=>Ie(c,s,le()))})),n.value.set(e.value,t.value)}var Ca=y("$ZodSet",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;if(!(o instanceof Set))return n.issues.push({input:o,inst:e,expected:"set",code:"invalid_type"}),n;let i=[];n.value=new Set;for(let s of o){let c=t.valueType._zod.run({value:s,issues:[]},r);c instanceof Promise?i.push(c.then(u=>td(u,n))):td(c,n)}return i.length?Promise.all(i).then(()=>n):n}});function td(e,t){e.issues.length&&t.issues.push(...e.issues),t.value.add(e.value)}var Sa=y("$ZodEnum",(e,t)=>{L.init(e,t);let n=So(t.entries);e._zod.values=new Set(n),e._zod.pattern=new RegExp(`^(${n.filter(r=>Po.has(typeof r)).map(r=>typeof r=="string"?qe(r):r.toString()).join("|")})$`),e._zod.parse=(r,o)=>{let i=r.value;return e._zod.values.has(i)||r.issues.push({code:"invalid_value",values:n,input:i,inst:e}),r}}),xa=y("$ZodLiteral",(e,t)=>{L.init(e,t),e._zod.values=new Set(t.values),e._zod.pattern=new RegExp(`^(${t.values.map(n=>typeof n=="string"?qe(n):n?n.toString():String(n)).join("|")})$`),e._zod.parse=(n,r)=>{let o=n.value;return e._zod.values.has(o)||n.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),n}}),_a=y("$ZodFile",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=n.value;return o instanceof File||n.issues.push({expected:"file",code:"invalid_type",input:o,inst:e}),n}}),jo=y("$ZodTransform",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(s=>(n.value=s,n));if(o instanceof Promise)throw new De;return n.value=o,n}}),Pa=y("$ZodOptional",(e,t)=>{L.init(e,t),e._zod.optin="optional",e._zod.optout="optional",H(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),H(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${_o(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>t.innerType._zod.optin==="optional"?t.innerType._zod.run(n,r):n.value===void 0?n:t.innerType._zod.run(n,r)}),Ia=y("$ZodNullable",(e,t)=>{L.init(e,t),H(e._zod,"optin",()=>t.innerType._zod.optin),H(e._zod,"optout",()=>t.innerType._zod.optout),H(e._zod,"pattern",()=>{let n=t.innerType._zod.pattern;return n?new RegExp(`^(${_o(n.source)}|null)$`):void 0}),H(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Ta=y("$ZodDefault",(e,t)=>{L.init(e,t),e._zod.optin="optional",H(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(n.value===void 0)return n.value=t.defaultValue,n;let o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(i=>od(i,t)):od(o,t)}});function od(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Oa=y("$ZodPrefault",(e,t)=>{L.init(e,t),e._zod.optin="optional",H(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Ea=y("$ZodNonOptional",(e,t)=>{L.init(e,t),H(e._zod,"values",()=>{let n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(i=>nd(i,e)):nd(o,e)}});function nd(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 Aa=y("$ZodSuccess",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(i=>(n.value=i.issues.length===0,n)):(n.value=o.issues.length===0,n)}}),Ma=y("$ZodCatch",(e,t)=>{L.init(e,t),e._zod.optin="optional",H(e._zod,"optout",()=>t.innerType._zod.optout),H(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(i=>(n.value=i.value,i.issues.length&&(n.value=t.catchValue({...n,error:{issues:i.issues.map(s=>Ie(s,r,le()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(i=>Ie(i,r,le()))},input:n.value}),n.issues=[]),n)}}),Na=y("$ZodNaN",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>((typeof n.value!="number"||!Number.isNaN(n.value))&&n.issues.push({input:n.value,inst:e,expected:"nan",code:"invalid_type"}),n)}),Do=y("$ZodPipe",(e,t)=>{L.init(e,t),H(e._zod,"values",()=>t.in._zod.values),H(e._zod,"optin",()=>t.in._zod.optin),H(e._zod,"optout",()=>t.out._zod.optout),e._zod.parse=(n,r)=>{let o=t.in._zod.run(n,r);return o instanceof Promise?o.then(i=>rd(i,t,r)):rd(o,t,r)}});function rd(e,t,n){return bt(e)?e:t.out._zod.run({value:e.value,issues:e.issues},n)}var za=y("$ZodReadonly",(e,t)=>{L.init(e,t),H(e._zod,"propValues",()=>t.innerType._zod.propValues),H(e._zod,"values",()=>t.innerType._zod.values),H(e._zod,"optin",()=>t.innerType._zod.optin),H(e._zod,"optout",()=>t.innerType._zod.optout),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(id):id(o)}});function id(e){return e.value=Object.freeze(e.value),e}var ja=y("$ZodTemplateLiteral",(e,t)=>{L.init(e,t);let n=[];for(let r of t.parts)if(r instanceof L){if(!r._zod.pattern)throw new Error(`Invalid template literal part, no pattern found: ${[...r._zod.traits].shift()}`);let o=r._zod.pattern instanceof RegExp?r._zod.pattern.source:r._zod.pattern;if(!o)throw new Error(`Invalid template literal part: ${r._zod.traits}`);let i=o.startsWith("^")?1:0,s=o.endsWith("$")?o.length-1:o.length;n.push(o.slice(i,s))}else if(r===null||Ni.has(typeof r))n.push(qe(`${r}`));else throw new Error(`Invalid template literal part: ${r}`);e._zod.pattern=new RegExp(`^${n.join("")}$`),e._zod.parse=(r,o)=>typeof r.value!="string"?(r.issues.push({input:r.value,inst:e,expected:"template_literal",code:"invalid_type"}),r):(e._zod.pattern.lastIndex=0,e._zod.pattern.test(r.value)||r.issues.push({input:r.value,inst:e,code:"invalid_format",format:"template_literal",pattern:e._zod.pattern.source}),r)}),Da=y("$ZodPromise",(e,t)=>{L.init(e,t),e._zod.parse=(n,r)=>Promise.resolve(n.value).then(o=>t.innerType._zod.run({value:o,issues:[]},r))}),La=y("$ZodLazy",(e,t)=>{L.init(e,t),H(e._zod,"innerType",()=>t.getter()),H(e._zod,"pattern",()=>e._zod.innerType._zod.pattern),H(e._zod,"propValues",()=>e._zod.innerType._zod.propValues),H(e._zod,"optin",()=>e._zod.innerType._zod.optin),H(e._zod,"optout",()=>e._zod.innerType._zod.optout),e._zod.parse=(n,r)=>e._zod.innerType._zod.run(n,r)}),Ra=y("$ZodCustom",(e,t)=>{re.init(e,t),L.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{let r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(i=>sd(i,n,r,e));sd(o,n,r,e)}});function sd(e,t,n,r){if(!e){let o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(Li(o))}}var Lo={};ht(Lo,{ar:()=>ud,az:()=>dd,be:()=>pd,ca:()=>gd,cs:()=>fd,de:()=>hd,en:()=>Hn,eo:()=>yd,es:()=>vd,fa:()=>$d,fi:()=>bd,fr:()=>kd,frCA:()=>wd,he:()=>Cd,hu:()=>Sd,id:()=>xd,it:()=>_d,ja:()=>Pd,kh:()=>Id,ko:()=>Td,mk:()=>Od,ms:()=>Ed,nl:()=>Ad,no:()=>Md,ota:()=>Nd,pl:()=>jd,ps:()=>zd,pt:()=>Dd,ru:()=>Rd,sl:()=>Ud,sv:()=>Fd,ta:()=>Zd,th:()=>Bd,tr:()=>Vd,ua:()=>Gd,ur:()=>Wd,vi:()=>Hd,zhCN:()=>qd,zhTW:()=>Jd});var bh=()=>{let e={string:{unit:"\u062D\u0631\u0641",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},file:{unit:"\u0628\u0627\u064A\u062A",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},array:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"},set:{unit:"\u0639\u0646\u0635\u0631",verb:"\u0623\u0646 \u064A\u062D\u0648\u064A"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0645\u062F\u062E\u0644",email:"\u0628\u0631\u064A\u062F \u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",url:"\u0631\u0627\u0628\u0637",emoji:"\u0625\u064A\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u064A\u062E \u0648\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",date:"\u062A\u0627\u0631\u064A\u062E \u0628\u0645\u0639\u064A\u0627\u0631 ISO",time:"\u0648\u0642\u062A \u0628\u0645\u0639\u064A\u0627\u0631 ISO",duration:"\u0645\u062F\u0629 \u0628\u0645\u0639\u064A\u0627\u0631 ISO",ipv4:"\u0639\u0646\u0648\u0627\u0646 IPv4",ipv6:"\u0639\u0646\u0648\u0627\u0646 IPv6",cidrv4:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv4",cidrv6:"\u0645\u062F\u0649 \u0639\u0646\u0627\u0648\u064A\u0646 \u0628\u0635\u064A\u063A\u0629 IPv6",base64:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64-encoded",base64url:"\u0646\u064E\u0635 \u0628\u062A\u0631\u0645\u064A\u0632 base64url-encoded",json_string:"\u0646\u064E\u0635 \u0639\u0644\u0649 \u0647\u064A\u0626\u0629 JSON",e164:"\u0631\u0642\u0645 \u0647\u0627\u062A\u0641 \u0628\u0645\u0639\u064A\u0627\u0631 E.164",jwt:"JWT",template_literal:"\u0645\u062F\u062E\u0644"};return o=>{switch(o.code){case"invalid_type":return`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${o.expected}\u060C \u0648\u0644\u0643\u0646 \u062A\u0645 \u0625\u062F\u062E\u0627\u0644 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u0645\u062F\u062E\u0644\u0627\u062A \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644\u0629: \u064A\u0641\u062A\u0631\u0636 \u0625\u062F\u062E\u0627\u0644 ${P(o.values[0])}`:`\u0627\u062E\u062A\u064A\u0627\u0631 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062A\u0648\u0642\u0639 \u0627\u0646\u062A\u0642\u0627\u0621 \u0623\u062D\u062F \u0647\u0630\u0647 \u0627\u0644\u062E\u064A\u0627\u0631\u0627\u062A: ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?` \u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${o.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${o.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"}`:`\u0623\u0643\u0628\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0623\u0646 \u062A\u0643\u0648\u0646 ${o.origin??"\u0627\u0644\u0642\u064A\u0645\u0629"} ${i} ${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${o.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${o.minimum.toString()} ${s.unit}`:`\u0623\u0635\u063A\u0631 \u0645\u0646 \u0627\u0644\u0644\u0627\u0632\u0645: \u064A\u0641\u062A\u0631\u0636 \u0644\u0640 ${o.origin} \u0623\u0646 \u064A\u0643\u0648\u0646 ${i} ${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0628\u062F\u0623 \u0628\u0640 "${o.prefix}"`:i.format==="ends_with"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0646\u062A\u0647\u064A \u0628\u0640 "${i.suffix}"`:i.format==="includes"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u062A\u0636\u0645\u0651\u064E\u0646 "${i.includes}"`:i.format==="regex"?`\u0646\u064E\u0635 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0637\u0627\u0628\u0642 \u0627\u0644\u0646\u0645\u0637 ${i.pattern}`:`${r[i.format]??o.format} \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644`}case"not_multiple_of":return`\u0631\u0642\u0645 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644: \u064A\u062C\u0628 \u0623\u0646 \u064A\u0643\u0648\u0646 \u0645\u0646 \u0645\u0636\u0627\u0639\u0641\u0627\u062A ${o.divisor}`;case"unrecognized_keys":return`\u0645\u0639\u0631\u0641${o.keys.length>1?"\u0627\u062A":""} \u063A\u0631\u064A\u0628${o.keys.length>1?"\u0629":""}: ${b(o.keys,"\u060C ")}`;case"invalid_key":return`\u0645\u0639\u0631\u0641 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${o.origin}`;case"invalid_union":return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644";case"invalid_element":return`\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644 \u0641\u064A ${o.origin}`;default:return"\u0645\u062F\u062E\u0644 \u063A\u064A\u0631 \u0645\u0642\u0628\u0648\u0644"}}};function ud(){return{localeError:bh()}}var kh=()=>{let e={string:{unit:"simvol",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"element",verb:"olmal\u0131d\u0131r"},set:{unit:"element",verb:"olmal\u0131d\u0131r"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${o.expected}, daxil olan ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Yanl\u0131\u015F d\u0259y\u0259r: g\xF6zl\u0259nil\u0259n ${P(o.values[0])}`:`Yanl\u0131\u015F se\xE7im: a\u015Fa\u011F\u0131dak\u0131lardan biri olmal\u0131d\u0131r: ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${o.origin??"d\u0259y\u0259r"} ${i}${o.maximum.toString()} ${s.unit??"element"}`:`\xC7ox b\xF6y\xFCk: g\xF6zl\u0259nil\u0259n ${o.origin??"d\u0259y\u0259r"} ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${o.origin} ${i}${o.minimum.toString()} ${s.unit}`:`\xC7ox ki\xE7ik: g\xF6zl\u0259nil\u0259n ${o.origin} ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Yanl\u0131\u015F m\u0259tn: "${i.prefix}" il\u0259 ba\u015Flamal\u0131d\u0131r`:i.format==="ends_with"?`Yanl\u0131\u015F m\u0259tn: "${i.suffix}" il\u0259 bitm\u0259lidir`:i.format==="includes"?`Yanl\u0131\u015F m\u0259tn: "${i.includes}" daxil olmal\u0131d\u0131r`:i.format==="regex"?`Yanl\u0131\u015F m\u0259tn: ${i.pattern} \u015Fablonuna uy\u011Fun olmal\u0131d\u0131r`:`Yanl\u0131\u015F ${r[i.format]??o.format}`}case"not_multiple_of":return`Yanl\u0131\u015F \u0259d\u0259d: ${o.divisor} il\u0259 b\xF6l\xFCn\u0259 bil\u0259n olmal\u0131d\u0131r`;case"unrecognized_keys":return`Tan\u0131nmayan a\xE7ar${o.keys.length>1?"lar":""}: ${b(o.keys,", ")}`;case"invalid_key":return`${o.origin} daxilind\u0259 yanl\u0131\u015F a\xE7ar`;case"invalid_union":return"Yanl\u0131\u015F d\u0259y\u0259r";case"invalid_element":return`${o.origin} daxilind\u0259 yanl\u0131\u015F d\u0259y\u0259r`;default:return"Yanl\u0131\u015F d\u0259y\u0259r"}}};function dd(){return{localeError:kh()}}function md(e,t,n,r){let o=Math.abs(e),i=o%10,s=o%100;return s>=11&&s<=19?r:i===1?t:i>=2&&i<=4?n:r}var wh=()=>{let e={string:{unit:{one:"\u0441\u0456\u043C\u0432\u0430\u043B",few:"\u0441\u0456\u043C\u0432\u0430\u043B\u044B",many:"\u0441\u0456\u043C\u0432\u0430\u043B\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u044B",many:"\u0431\u0430\u0439\u0442\u0430\u045E"},verb:"\u043C\u0435\u0446\u044C"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u043B\u0456\u043A";case"object":{if(Array.isArray(o))return"\u043C\u0430\u0441\u0456\u045E";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0443\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0430\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0456 \u0447\u0430\u0441",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0447\u0430\u0441",duration:"ISO \u043F\u0440\u0430\u0446\u044F\u0433\u043B\u0430\u0441\u0446\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0430\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0430\u0441",cidrv4:"IPv4 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u044B\u044F\u043F\u0430\u0437\u043E\u043D",base64:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64",base64url:"\u0440\u0430\u0434\u043E\u043A \u0443 \u0444\u0430\u0440\u043C\u0430\u0446\u0435 base64url",json_string:"JSON \u0440\u0430\u0434\u043E\u043A",e164:"\u043D\u0443\u043C\u0430\u0440 E.164",jwt:"JWT",template_literal:"\u0443\u0432\u043E\u0434"};return o=>{switch(o.code){case"invalid_type":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u045E\u0441\u044F ${o.expected}, \u0430\u0442\u0440\u044B\u043C\u0430\u043D\u0430 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F ${P(o.values[0])}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0432\u0430\u0440\u044B\u044F\u043D\u0442: \u0447\u0430\u043A\u0430\u045E\u0441\u044F \u0430\u0434\u0437\u0456\u043D \u0437 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);if(s){let c=Number(o.maximum),u=md(c,s.unit.one,s.unit.few,s.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${i}${o.maximum.toString()} ${u}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u0432\u044F\u043B\u0456\u043A\u0456: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435"} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);if(s){let c=Number(o.minimum),u=md(c,s.unit.one,s.unit.few,s.unit.many);return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${o.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 ${s.verb} ${i}${o.minimum.toString()} ${u}`}return`\u0417\u0430\u043D\u0430\u0434\u0442\u0430 \u043C\u0430\u043B\u044B: \u0447\u0430\u043A\u0430\u043B\u0430\u0441\u044F, \u0448\u0442\u043E ${o.origin} \u043F\u0430\u0432\u0456\u043D\u043D\u0430 \u0431\u044B\u0446\u044C ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u043F\u0430\u0447\u044B\u043D\u0430\u0446\u0446\u0430 \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u0430\u043A\u0430\u043D\u0447\u0432\u0430\u0446\u0446\u0430 \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0437\u043C\u044F\u0448\u0447\u0430\u0446\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u0440\u0430\u0434\u043E\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0430\u0434\u043F\u0430\u0432\u044F\u0434\u0430\u0446\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B ${r[i.format]??o.format}`}case"not_multiple_of":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043B\u0456\u043A: \u043F\u0430\u0432\u0456\u043D\u0435\u043D \u0431\u044B\u0446\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${o.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u0430\u0437\u043D\u0430\u043D\u044B ${o.keys.length>1?"\u043A\u043B\u044E\u0447\u044B":"\u043A\u043B\u044E\u0447"}: ${b(o.keys,", ")}`;case"invalid_key":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u043A\u043B\u044E\u0447 \u0443 ${o.origin}`;case"invalid_union":return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434";case"invalid_element":return`\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u0430\u0435 \u0437\u043D\u0430\u0447\u044D\u043D\u043D\u0435 \u045E ${o.origin}`;default:return"\u041D\u044F\u043F\u0440\u0430\u0432\u0456\u043B\u044C\u043D\u044B \u045E\u0432\u043E\u0434"}}};function pd(){return{localeError:wh()}}var Ch=()=>{let e={string:{unit:"car\xE0cters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"entrada",email:"adre\xE7a electr\xF2nica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adre\xE7a IPv4",ipv6:"adre\xE7a IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return o=>{switch(o.code){case"invalid_type":return`Tipus inv\xE0lid: s'esperava ${o.expected}, s'ha rebut ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Valor inv\xE0lid: s'esperava ${P(o.values[0])}`:`Opci\xF3 inv\xE0lida: s'esperava una de ${b(o.values," o ")}`;case"too_big":{let i=o.inclusive?"com a m\xE0xim":"menys de",s=t(o.origin);return s?`Massa gran: s'esperava que ${o.origin??"el valor"} contingu\xE9s ${i} ${o.maximum.toString()} ${s.unit??"elements"}`:`Massa gran: s'esperava que ${o.origin??"el valor"} fos ${i} ${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?"com a m\xEDnim":"m\xE9s de",s=t(o.origin);return s?`Massa petit: s'esperava que ${o.origin} contingu\xE9s ${i} ${o.minimum.toString()} ${s.unit}`:`Massa petit: s'esperava que ${o.origin} fos ${i} ${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Format inv\xE0lid: ha de comen\xE7ar amb "${i.prefix}"`:i.format==="ends_with"?`Format inv\xE0lid: ha d'acabar amb "${i.suffix}"`:i.format==="includes"?`Format inv\xE0lid: ha d'incloure "${i.includes}"`:i.format==="regex"?`Format inv\xE0lid: ha de coincidir amb el patr\xF3 ${i.pattern}`:`Format inv\xE0lid per a ${r[i.format]??o.format}`}case"not_multiple_of":return`N\xFAmero inv\xE0lid: ha de ser m\xFAltiple de ${o.divisor}`;case"unrecognized_keys":return`Clau${o.keys.length>1?"s":""} no reconeguda${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Clau inv\xE0lida a ${o.origin}`;case"invalid_union":return"Entrada inv\xE0lida";case"invalid_element":return`Element inv\xE0lid a ${o.origin}`;default:return"Entrada inv\xE0lida"}}};function gd(){return{localeError:Ch()}}var Sh=()=>{let e={string:{unit:"znak\u016F",verb:"m\xEDt"},file:{unit:"bajt\u016F",verb:"m\xEDt"},array:{unit:"prvk\u016F",verb:"m\xEDt"},set:{unit:"prvk\u016F",verb:"m\xEDt"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u010D\xEDslo";case"string":return"\u0159et\u011Bzec";case"boolean":return"boolean";case"bigint":return"bigint";case"function":return"funkce";case"symbol":return"symbol";case"undefined":return"undefined";case"object":{if(Array.isArray(o))return"pole";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"regul\xE1rn\xED v\xFDraz",email:"e-mailov\xE1 adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a \u010Das ve form\xE1tu ISO",date:"datum ve form\xE1tu ISO",time:"\u010Das ve form\xE1tu ISO",duration:"doba trv\xE1n\xED ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64",base64url:"\u0159et\u011Bzec zak\xF3dovan\xFD ve form\xE1tu base64url",json_string:"\u0159et\u011Bzec ve form\xE1tu JSON",e164:"\u010D\xEDslo E.164",jwt:"JWT",template_literal:"vstup"};return o=>{switch(o.code){case"invalid_type":return`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${o.expected}, obdr\u017Eeno ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Neplatn\xFD vstup: o\u010Dek\xE1v\xE1no ${P(o.values[0])}`:`Neplatn\xE1 mo\u017Enost: o\u010Dek\xE1v\xE1na jedna z hodnot ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${o.origin??"hodnota"} mus\xED m\xEDt ${i}${o.maximum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 velk\xE1: ${o.origin??"hodnota"} mus\xED b\xFDt ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${o.origin??"hodnota"} mus\xED m\xEDt ${i}${o.minimum.toString()} ${s.unit??"prvk\u016F"}`:`Hodnota je p\u0159\xEDli\u0161 mal\xE1: ${o.origin??"hodnota"} mus\xED b\xFDt ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED za\u010D\xEDnat na "${i.prefix}"`:i.format==="ends_with"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED kon\u010Dit na "${i.suffix}"`:i.format==="includes"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED obsahovat "${i.includes}"`:i.format==="regex"?`Neplatn\xFD \u0159et\u011Bzec: mus\xED odpov\xEDdat vzoru ${i.pattern}`:`Neplatn\xFD form\xE1t ${r[i.format]??o.format}`}case"not_multiple_of":return`Neplatn\xE9 \u010D\xEDslo: mus\xED b\xFDt n\xE1sobkem ${o.divisor}`;case"unrecognized_keys":return`Nezn\xE1m\xE9 kl\xED\u010De: ${b(o.keys,", ")}`;case"invalid_key":return`Neplatn\xFD kl\xED\u010D v ${o.origin}`;case"invalid_union":return"Neplatn\xFD vstup";case"invalid_element":return`Neplatn\xE1 hodnota v ${o.origin}`;default:return"Neplatn\xFD vstup"}}};function fd(){return{localeError:Sh()}}var xh=()=>{let e={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"Zahl";case"object":{if(Array.isArray(o))return"Array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"};return o=>{switch(o.code){case"invalid_type":return`Ung\xFCltige Eingabe: erwartet ${o.expected}, erhalten ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Ung\xFCltige Eingabe: erwartet ${P(o.values[0])}`:`Ung\xFCltige Option: erwartet eine von ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Zu gro\xDF: erwartet, dass ${o.origin??"Wert"} ${i}${o.maximum.toString()} ${s.unit??"Elemente"} hat`:`Zu gro\xDF: erwartet, dass ${o.origin??"Wert"} ${i}${o.maximum.toString()} ist`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Zu klein: erwartet, dass ${o.origin} ${i}${o.minimum.toString()} ${s.unit} hat`:`Zu klein: erwartet, dass ${o.origin} ${i}${o.minimum.toString()} ist`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Ung\xFCltiger String: muss mit "${i.prefix}" beginnen`:i.format==="ends_with"?`Ung\xFCltiger String: muss mit "${i.suffix}" enden`:i.format==="includes"?`Ung\xFCltiger String: muss "${i.includes}" enthalten`:i.format==="regex"?`Ung\xFCltiger String: muss dem Muster ${i.pattern} entsprechen`:`Ung\xFCltig: ${r[i.format]??o.format}`}case"not_multiple_of":return`Ung\xFCltige Zahl: muss ein Vielfaches von ${o.divisor} sein`;case"unrecognized_keys":return`${o.keys.length>1?"Unbekannte Schl\xFCssel":"Unbekannter Schl\xFCssel"}: ${b(o.keys,", ")}`;case"invalid_key":return`Ung\xFCltiger Schl\xFCssel in ${o.origin}`;case"invalid_union":return"Ung\xFCltige Eingabe";case"invalid_element":return`Ung\xFCltiger Wert in ${o.origin}`;default:return"Ung\xFCltige Eingabe"}}};function hd(){return{localeError:xh()}}var _h=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Ph=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"}};function t(r){return e[r]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"};return r=>{switch(r.code){case"invalid_type":return`Invalid input: expected ${r.expected}, received ${_h(r.input)}`;case"invalid_value":return r.values.length===1?`Invalid input: expected ${P(r.values[0])}`:`Invalid option: expected one of ${b(r.values,"|")}`;case"too_big":{let o=r.inclusive?"<=":"<",i=t(r.origin);return i?`Too big: expected ${r.origin??"value"} to have ${o}${r.maximum.toString()} ${i.unit??"elements"}`:`Too big: expected ${r.origin??"value"} to be ${o}${r.maximum.toString()}`}case"too_small":{let o=r.inclusive?">=":">",i=t(r.origin);return i?`Too small: expected ${r.origin} to have ${o}${r.minimum.toString()} ${i.unit}`:`Too small: expected ${r.origin} to be ${o}${r.minimum.toString()}`}case"invalid_format":{let o=r;return o.format==="starts_with"?`Invalid string: must start with "${o.prefix}"`:o.format==="ends_with"?`Invalid string: must end with "${o.suffix}"`:o.format==="includes"?`Invalid string: must include "${o.includes}"`:o.format==="regex"?`Invalid string: must match pattern ${o.pattern}`:`Invalid ${n[o.format]??r.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${r.divisor}`;case"unrecognized_keys":return`Unrecognized key${r.keys.length>1?"s":""}: ${b(r.keys,", ")}`;case"invalid_key":return`Invalid key in ${r.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${r.origin}`;default:return"Invalid input"}}};function Hn(){return{localeError:Ph()}}var Ih=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"nombro";case"object":{if(Array.isArray(e))return"tabelo";if(e===null)return"senvalora";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},Th=()=>{let e={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function t(r){return e[r]??null}let n={regex:"enigo",email:"retadreso",url:"URL",emoji:"emo\u011Dio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-da\u016Dro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"};return r=>{switch(r.code){case"invalid_type":return`Nevalida enigo: atendi\u011Dis ${r.expected}, ricevi\u011Dis ${Ih(r.input)}`;case"invalid_value":return r.values.length===1?`Nevalida enigo: atendi\u011Dis ${P(r.values[0])}`:`Nevalida opcio: atendi\u011Dis unu el ${b(r.values,"|")}`;case"too_big":{let o=r.inclusive?"<=":"<",i=t(r.origin);return i?`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${o}${r.maximum.toString()} ${i.unit??"elementojn"}`:`Tro granda: atendi\u011Dis ke ${r.origin??"valoro"} havu ${o}${r.maximum.toString()}`}case"too_small":{let o=r.inclusive?">=":">",i=t(r.origin);return i?`Tro malgranda: atendi\u011Dis ke ${r.origin} havu ${o}${r.minimum.toString()} ${i.unit}`:`Tro malgranda: atendi\u011Dis ke ${r.origin} estu ${o}${r.minimum.toString()}`}case"invalid_format":{let o=r;return o.format==="starts_with"?`Nevalida karaktraro: devas komenci\u011Di per "${o.prefix}"`:o.format==="ends_with"?`Nevalida karaktraro: devas fini\u011Di per "${o.suffix}"`:o.format==="includes"?`Nevalida karaktraro: devas inkluzivi "${o.includes}"`:o.format==="regex"?`Nevalida karaktraro: devas kongrui kun la modelo ${o.pattern}`:`Nevalida ${n[o.format]??r.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${r.divisor}`;case"unrecognized_keys":return`Nekonata${r.keys.length>1?"j":""} \u015Dlosilo${r.keys.length>1?"j":""}: ${b(r.keys,", ")}`;case"invalid_key":return`Nevalida \u015Dlosilo en ${r.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${r.origin}`;default:return"Nevalida enigo"}}};function yd(){return{localeError:Th()}}var Oh=()=>{let e={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(o))return"arreglo";if(o===null)return"nulo";if(Object.getPrototypeOf(o)!==Object.prototype)return o.constructor.name}}return i},r={regex:"entrada",email:"direcci\xF3n de correo electr\xF3nico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duraci\xF3n ISO",ipv4:"direcci\xF3n IPv4",ipv6:"direcci\xF3n IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return o=>{switch(o.code){case"invalid_type":return`Entrada inv\xE1lida: se esperaba ${o.expected}, recibido ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Entrada inv\xE1lida: se esperaba ${P(o.values[0])}`:`Opci\xF3n inv\xE1lida: se esperaba una de ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Demasiado grande: se esperaba que ${o.origin??"valor"} tuviera ${i}${o.maximum.toString()} ${s.unit??"elementos"}`:`Demasiado grande: se esperaba que ${o.origin??"valor"} fuera ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Demasiado peque\xF1o: se esperaba que ${o.origin} tuviera ${i}${o.minimum.toString()} ${s.unit}`:`Demasiado peque\xF1o: se esperaba que ${o.origin} fuera ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Cadena inv\xE1lida: debe comenzar con "${i.prefix}"`:i.format==="ends_with"?`Cadena inv\xE1lida: debe terminar en "${i.suffix}"`:i.format==="includes"?`Cadena inv\xE1lida: debe incluir "${i.includes}"`:i.format==="regex"?`Cadena inv\xE1lida: debe coincidir con el patr\xF3n ${i.pattern}`:`Inv\xE1lido ${r[i.format]??o.format}`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: debe ser m\xFAltiplo de ${o.divisor}`;case"unrecognized_keys":return`Llave${o.keys.length>1?"s":""} desconocida${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Llave inv\xE1lida en ${o.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido en ${o.origin}`;default:return"Entrada inv\xE1lida"}}};function vd(){return{localeError:Oh()}}var Eh=()=>{let e={string:{unit:"\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},file:{unit:"\u0628\u0627\u06CC\u062A",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},array:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"},set:{unit:"\u0622\u06CC\u062A\u0645",verb:"\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(o))return"\u0622\u0631\u0627\u06CC\u0647";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0648\u0631\u0648\u062F\u06CC",email:"\u0622\u062F\u0631\u0633 \u0627\u06CC\u0645\u06CC\u0644",url:"URL",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u062A\u0627\u0631\u06CC\u062E \u0648 \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",date:"\u062A\u0627\u0631\u06CC\u062E \u0627\u06CC\u0632\u0648",time:"\u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",duration:"\u0645\u062F\u062A \u0632\u0645\u0627\u0646 \u0627\u06CC\u0632\u0648",ipv4:"IPv4 \u0622\u062F\u0631\u0633",ipv6:"IPv6 \u0622\u062F\u0631\u0633",cidrv4:"IPv4 \u062F\u0627\u0645\u0646\u0647",cidrv6:"IPv6 \u062F\u0627\u0645\u0646\u0647",base64:"base64-encoded \u0631\u0634\u062A\u0647",base64url:"base64url-encoded \u0631\u0634\u062A\u0647",json_string:"JSON \u0631\u0634\u062A\u0647",e164:"E.164 \u0639\u062F\u062F",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u06CC"};return o=>{switch(o.code){case"invalid_type":return`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${o.expected} \u0645\u06CC\u200C\u0628\u0648\u062F\u060C ${n(o.input)} \u062F\u0631\u06CC\u0627\u0641\u062A \u0634\u062F`;case"invalid_value":return o.values.length===1?`\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A ${P(o.values[0])} \u0645\u06CC\u200C\u0628\u0648\u062F`:`\u06AF\u0632\u06CC\u0646\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0645\u06CC\u200C\u0628\u0627\u06CC\u0633\u062A \u06CC\u06A9\u06CC \u0627\u0632 ${b(o.values,"|")} \u0645\u06CC\u200C\u0628\u0648\u062F`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${o.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${o.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631"} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u0628\u0632\u0631\u06AF: ${o.origin??"\u0645\u0642\u062F\u0627\u0631"} \u0628\u0627\u06CC\u062F ${i}${o.maximum.toString()} \u0628\u0627\u0634\u062F`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${o.origin} \u0628\u0627\u06CC\u062F ${i}${o.minimum.toString()} ${s.unit} \u0628\u0627\u0634\u062F`:`\u062E\u06CC\u0644\u06CC \u06A9\u0648\u0686\u06A9: ${o.origin} \u0628\u0627\u06CC\u062F ${i}${o.minimum.toString()} \u0628\u0627\u0634\u062F`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.prefix}" \u0634\u0631\u0648\u0639 \u0634\u0648\u062F`:i.format==="ends_with"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 "${i.suffix}" \u062A\u0645\u0627\u0645 \u0634\u0648\u062F`:i.format==="includes"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0634\u0627\u0645\u0644 "${i.includes}" \u0628\u0627\u0634\u062F`:i.format==="regex"?`\u0631\u0634\u062A\u0647 \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0628\u0627 \u0627\u0644\u06AF\u0648\u06CC ${i.pattern} \u0645\u0637\u0627\u0628\u0642\u062A \u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F`:`${r[i.format]??o.format} \u0646\u0627\u0645\u0639\u062A\u0628\u0631`}case"not_multiple_of":return`\u0639\u062F\u062F \u0646\u0627\u0645\u0639\u062A\u0628\u0631: \u0628\u0627\u06CC\u062F \u0645\u0636\u0631\u0628 ${o.divisor} \u0628\u0627\u0634\u062F`;case"unrecognized_keys":return`\u06A9\u0644\u06CC\u062F${o.keys.length>1?"\u0647\u0627\u06CC":""} \u0646\u0627\u0634\u0646\u0627\u0633: ${b(o.keys,", ")}`;case"invalid_key":return`\u06A9\u0644\u06CC\u062F \u0646\u0627\u0634\u0646\u0627\u0633 \u062F\u0631 ${o.origin}`;case"invalid_union":return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631";case"invalid_element":return`\u0645\u0642\u062F\u0627\u0631 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u062F\u0631 ${o.origin}`;default:return"\u0648\u0631\u0648\u062F\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631"}}};function $d(){return{localeError:Eh()}}var Ah=()=>{let e={string:{unit:"merkki\xE4",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"p\xE4iv\xE4m\xE4\xE4r\xE4n"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"s\xE4\xE4nn\xF6llinen lauseke",email:"s\xE4hk\xF6postiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-p\xE4iv\xE4m\xE4\xE4r\xE4",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"};return o=>{switch(o.code){case"invalid_type":return`Virheellinen tyyppi: odotettiin ${o.expected}, oli ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Virheellinen sy\xF6te: t\xE4ytyy olla ${P(o.values[0])}`:`Virheellinen valinta: t\xE4ytyy olla yksi seuraavista: ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Liian suuri: ${s.subject} t\xE4ytyy olla ${i}${o.maximum.toString()} ${s.unit}`.trim():`Liian suuri: arvon t\xE4ytyy olla ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Liian pieni: ${s.subject} t\xE4ytyy olla ${i}${o.minimum.toString()} ${s.unit}`.trim():`Liian pieni: arvon t\xE4ytyy olla ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Virheellinen sy\xF6te: t\xE4ytyy alkaa "${i.prefix}"`:i.format==="ends_with"?`Virheellinen sy\xF6te: t\xE4ytyy loppua "${i.suffix}"`:i.format==="includes"?`Virheellinen sy\xF6te: t\xE4ytyy sis\xE4lt\xE4\xE4 "${i.includes}"`:i.format==="regex"?`Virheellinen sy\xF6te: t\xE4ytyy vastata s\xE4\xE4nn\xF6llist\xE4 lauseketta ${i.pattern}`:`Virheellinen ${r[i.format]??o.format}`}case"not_multiple_of":return`Virheellinen luku: t\xE4ytyy olla luvun ${o.divisor} monikerta`;case"unrecognized_keys":return`${o.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${b(o.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen sy\xF6te"}}};function bd(){return{localeError:Ah()}}var Mh=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"nombre";case"object":{if(Array.isArray(o))return"tableau";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"entr\xE9e",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return o=>{switch(o.code){case"invalid_type":return`Entr\xE9e invalide : ${o.expected} attendu, ${n(o.input)} re\xE7u`;case"invalid_value":return o.values.length===1?`Entr\xE9e invalide : ${P(o.values[0])} attendu`:`Option invalide : une valeur parmi ${b(o.values,"|")} attendue`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Trop grand : ${o.origin??"valeur"} doit ${s.verb} ${i}${o.maximum.toString()} ${s.unit??"\xE9l\xE9ment(s)"}`:`Trop grand : ${o.origin??"valeur"} doit \xEAtre ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Trop petit : ${o.origin} doit ${s.verb} ${i}${o.minimum.toString()} ${s.unit}`:`Trop petit : ${o.origin} doit \xEAtre ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au mod\xE8le ${i.pattern}`:`${r[i.format]??o.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${o.divisor}`;case"unrecognized_keys":return`Cl\xE9${o.keys.length>1?"s":""} non reconnue${o.keys.length>1?"s":""} : ${b(o.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${o.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${o.origin}`;default:return"Entr\xE9e invalide"}}};function kd(){return{localeError:Mh()}}var Nh=()=>{let e={string:{unit:"caract\xE8res",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"\xE9l\xE9ments",verb:"avoir"},set:{unit:"\xE9l\xE9ments",verb:"avoir"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"entr\xE9e",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"dur\xE9e ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"cha\xEEne encod\xE9e en base64",base64url:"cha\xEEne encod\xE9e en base64url",json_string:"cha\xEEne JSON",e164:"num\xE9ro E.164",jwt:"JWT",template_literal:"entr\xE9e"};return o=>{switch(o.code){case"invalid_type":return`Entr\xE9e invalide : attendu ${o.expected}, re\xE7u ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Entr\xE9e invalide : attendu ${P(o.values[0])}`:`Option invalide : attendu l'une des valeurs suivantes ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"\u2264":"<",s=t(o.origin);return s?`Trop grand : attendu que ${o.origin??"la valeur"} ait ${i}${o.maximum.toString()} ${s.unit}`:`Trop grand : attendu que ${o.origin??"la valeur"} soit ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?"\u2265":">",s=t(o.origin);return s?`Trop petit : attendu que ${o.origin} ait ${i}${o.minimum.toString()} ${s.unit}`:`Trop petit : attendu que ${o.origin} soit ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Cha\xEEne invalide : doit commencer par "${i.prefix}"`:i.format==="ends_with"?`Cha\xEEne invalide : doit se terminer par "${i.suffix}"`:i.format==="includes"?`Cha\xEEne invalide : doit inclure "${i.includes}"`:i.format==="regex"?`Cha\xEEne invalide : doit correspondre au motif ${i.pattern}`:`${r[i.format]??o.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit \xEAtre un multiple de ${o.divisor}`;case"unrecognized_keys":return`Cl\xE9${o.keys.length>1?"s":""} non reconnue${o.keys.length>1?"s":""} : ${b(o.keys,", ")}`;case"invalid_key":return`Cl\xE9 invalide dans ${o.origin}`;case"invalid_union":return"Entr\xE9e invalide";case"invalid_element":return`Valeur invalide dans ${o.origin}`;default:return"Entr\xE9e invalide"}}};function wd(){return{localeError:Nh()}}var zh=()=>{let e={string:{unit:"\u05D0\u05D5\u05EA\u05D9\u05D5\u05EA",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},file:{unit:"\u05D1\u05D9\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},array:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"},set:{unit:"\u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",verb:"\u05DC\u05DB\u05DC\u05D5\u05DC"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u05E7\u05DC\u05D8",email:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",url:"\u05DB\u05EA\u05D5\u05D1\u05EA \u05E8\u05E9\u05EA",emoji:"\u05D0\u05D9\u05DE\u05D5\u05D2'\u05D9",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u05EA\u05D0\u05E8\u05D9\u05DA \u05D5\u05D6\u05DE\u05DF ISO",date:"\u05EA\u05D0\u05E8\u05D9\u05DA ISO",time:"\u05D6\u05DE\u05DF ISO",duration:"\u05DE\u05E9\u05DA \u05D6\u05DE\u05DF ISO",ipv4:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv4",ipv6:"\u05DB\u05EA\u05D5\u05D1\u05EA IPv6",cidrv4:"\u05D8\u05D5\u05D5\u05D7 IPv4",cidrv6:"\u05D8\u05D5\u05D5\u05D7 IPv6",base64:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64",base64url:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D1\u05D1\u05E1\u05D9\u05E1 64 \u05DC\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA \u05E8\u05E9\u05EA",json_string:"\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA JSON",e164:"\u05DE\u05E1\u05E4\u05E8 E.164",jwt:"JWT",template_literal:"\u05E7\u05DC\u05D8"};return o=>{switch(o.code){case"invalid_type":return`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${o.expected}, \u05D4\u05EA\u05E7\u05D1\u05DC ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA ${P(o.values[0])}`:`\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05E6\u05E8\u05D9\u05DA \u05D0\u05D7\u05EA \u05DE\u05D4\u05D0\u05E4\u05E9\u05E8\u05D5\u05D9\u05D5\u05EA ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${o.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${o.maximum.toString()} ${s.unit??"elements"}`:`\u05D2\u05D3\u05D5\u05DC \u05DE\u05D3\u05D9: ${o.origin??"value"} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${o.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${o.minimum.toString()} ${s.unit}`:`\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ${o.origin} \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1"${i.prefix}"`:i.format==="ends_with"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "${i.suffix}"`:i.format==="includes"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "${i.includes}"`:i.format==="regex"?`\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05E0\u05D4: \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ${i.pattern}`:`${r[i.format]??o.format} \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF`}case"not_multiple_of":return`\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ${o.divisor}`;case"unrecognized_keys":return`\u05DE\u05E4\u05EA\u05D7${o.keys.length>1?"\u05D5\u05EA":""} \u05DC\u05D0 \u05DE\u05D6\u05D5\u05D4${o.keys.length>1?"\u05D9\u05DD":"\u05D4"}: ${b(o.keys,", ")}`;case"invalid_key":return`\u05DE\u05E4\u05EA\u05D7 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${o.origin}`;case"invalid_union":return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";case"invalid_element":return`\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1${o.origin}`;default:return"\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF"}}};function Cd(){return{localeError:zh()}}var jh=()=>{let e={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"sz\xE1m";case"object":{if(Array.isArray(o))return"t\xF6mb";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"bemenet",email:"email c\xEDm",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO id\u0151b\xE9lyeg",date:"ISO d\xE1tum",time:"ISO id\u0151",duration:"ISO id\u0151intervallum",ipv4:"IPv4 c\xEDm",ipv6:"IPv6 c\xEDm",cidrv4:"IPv4 tartom\xE1ny",cidrv6:"IPv6 tartom\xE1ny",base64:"base64-k\xF3dolt string",base64url:"base64url-k\xF3dolt string",json_string:"JSON string",e164:"E.164 sz\xE1m",jwt:"JWT",template_literal:"bemenet"};return o=>{switch(o.code){case"invalid_type":return`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${o.expected}, a kapott \xE9rt\xE9k ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\xC9rv\xE9nytelen bemenet: a v\xE1rt \xE9rt\xE9k ${P(o.values[0])}`:`\xC9rv\xE9nytelen opci\xF3: valamelyik \xE9rt\xE9k v\xE1rt ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`T\xFAl nagy: ${o.origin??"\xE9rt\xE9k"} m\xE9rete t\xFAl nagy ${i}${o.maximum.toString()} ${s.unit??"elem"}`:`T\xFAl nagy: a bemeneti \xE9rt\xE9k ${o.origin??"\xE9rt\xE9k"} t\xFAl nagy: ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${o.origin} m\xE9rete t\xFAl kicsi ${i}${o.minimum.toString()} ${s.unit}`:`T\xFAl kicsi: a bemeneti \xE9rt\xE9k ${o.origin} t\xFAl kicsi ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\xC9rv\xE9nytelen string: "${i.prefix}" \xE9rt\xE9kkel kell kezd\u0151dnie`:i.format==="ends_with"?`\xC9rv\xE9nytelen string: "${i.suffix}" \xE9rt\xE9kkel kell v\xE9gz\u0151dnie`:i.format==="includes"?`\xC9rv\xE9nytelen string: "${i.includes}" \xE9rt\xE9ket kell tartalmaznia`:i.format==="regex"?`\xC9rv\xE9nytelen string: ${i.pattern} mint\xE1nak kell megfelelnie`:`\xC9rv\xE9nytelen ${r[i.format]??o.format}`}case"not_multiple_of":return`\xC9rv\xE9nytelen sz\xE1m: ${o.divisor} t\xF6bbsz\xF6r\xF6s\xE9nek kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`\xC9rv\xE9nytelen kulcs ${o.origin}`;case"invalid_union":return"\xC9rv\xE9nytelen bemenet";case"invalid_element":return`\xC9rv\xE9nytelen \xE9rt\xE9k: ${o.origin}`;default:return"\xC9rv\xE9nytelen bemenet"}}};function Sd(){return{localeError:jh()}}var Dh=()=>{let e={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Input tidak valid: diharapkan ${o.expected}, diterima ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Input tidak valid: diharapkan ${P(o.values[0])}`:`Pilihan tidak valid: diharapkan salah satu dari ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Terlalu besar: diharapkan ${o.origin??"value"} memiliki ${i}${o.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: diharapkan ${o.origin??"value"} menjadi ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Terlalu kecil: diharapkan ${o.origin} memiliki ${i}${o.minimum.toString()} ${s.unit}`:`Terlalu kecil: diharapkan ${o.origin} menjadi ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`String tidak valid: harus dimulai dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak valid: harus berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak valid: harus menyertakan "${i.includes}"`:i.format==="regex"?`String tidak valid: harus sesuai pola ${i.pattern}`:`${r[i.format]??o.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${o.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${o.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${o.origin}`;default:return"Input tidak valid"}}};function xd(){return{localeError:Dh()}}var Lh=()=>{let e={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"numero";case"object":{if(Array.isArray(o))return"vettore";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Input non valido: atteso ${o.expected}, ricevuto ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Input non valido: atteso ${P(o.values[0])}`:`Opzione non valida: atteso uno tra ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Troppo grande: ${o.origin??"valore"} deve avere ${i}${o.maximum.toString()} ${s.unit??"elementi"}`:`Troppo grande: ${o.origin??"valore"} deve essere ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Troppo piccolo: ${o.origin} deve avere ${i}${o.minimum.toString()} ${s.unit}`:`Troppo piccolo: ${o.origin} deve essere ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Stringa non valida: deve iniziare con "${i.prefix}"`:i.format==="ends_with"?`Stringa non valida: deve terminare con "${i.suffix}"`:i.format==="includes"?`Stringa non valida: deve includere "${i.includes}"`:i.format==="regex"?`Stringa non valida: deve corrispondere al pattern ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${o.divisor}`;case"unrecognized_keys":return`Chiav${o.keys.length>1?"i":"e"} non riconosciut${o.keys.length>1?"e":"a"}: ${b(o.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${o.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${o.origin}`;default:return"Input non valido"}}};function _d(){return{localeError:Lh()}}var Rh=()=>{let e={string:{unit:"\u6587\u5B57",verb:"\u3067\u3042\u308B"},file:{unit:"\u30D0\u30A4\u30C8",verb:"\u3067\u3042\u308B"},array:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"},set:{unit:"\u8981\u7D20",verb:"\u3067\u3042\u308B"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u6570\u5024";case"object":{if(Array.isArray(o))return"\u914D\u5217";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u5165\u529B\u5024",email:"\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9",url:"URL",emoji:"\u7D75\u6587\u5B57",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u6642",date:"ISO\u65E5\u4ED8",time:"ISO\u6642\u523B",duration:"ISO\u671F\u9593",ipv4:"IPv4\u30A2\u30C9\u30EC\u30B9",ipv6:"IPv6\u30A2\u30C9\u30EC\u30B9",cidrv4:"IPv4\u7BC4\u56F2",cidrv6:"IPv6\u7BC4\u56F2",base64:"base64\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",base64url:"base64url\u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217",json_string:"JSON\u6587\u5B57\u5217",e164:"E.164\u756A\u53F7",jwt:"JWT",template_literal:"\u5165\u529B\u5024"};return o=>{switch(o.code){case"invalid_type":return`\u7121\u52B9\u306A\u5165\u529B: ${o.expected}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F\u304C\u3001${n(o.input)}\u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F`;case"invalid_value":return o.values.length===1?`\u7121\u52B9\u306A\u5165\u529B: ${P(o.values[0])}\u304C\u671F\u5F85\u3055\u308C\u307E\u3057\u305F`:`\u7121\u52B9\u306A\u9078\u629E: ${b(o.values,"\u3001")}\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"too_big":{let i=o.inclusive?"\u4EE5\u4E0B\u3067\u3042\u308B":"\u3088\u308A\u5C0F\u3055\u3044",s=t(o.origin);return s?`\u5927\u304D\u3059\u304E\u308B\u5024: ${o.origin??"\u5024"}\u306F${o.maximum.toString()}${s.unit??"\u8981\u7D20"}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5927\u304D\u3059\u304E\u308B\u5024: ${o.origin??"\u5024"}\u306F${o.maximum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"too_small":{let i=o.inclusive?"\u4EE5\u4E0A\u3067\u3042\u308B":"\u3088\u308A\u5927\u304D\u3044",s=t(o.origin);return s?`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${o.origin}\u306F${o.minimum.toString()}${s.unit}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u5C0F\u3055\u3059\u304E\u308B\u5024: ${o.origin}\u306F${o.minimum.toString()}${i}\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.prefix}"\u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="ends_with"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.suffix}"\u3067\u7D42\u308F\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="includes"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: "${i.includes}"\u3092\u542B\u3080\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:i.format==="regex"?`\u7121\u52B9\u306A\u6587\u5B57\u5217: \u30D1\u30BF\u30FC\u30F3${i.pattern}\u306B\u4E00\u81F4\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`:`\u7121\u52B9\u306A${r[i.format]??o.format}`}case"not_multiple_of":return`\u7121\u52B9\u306A\u6570\u5024: ${o.divisor}\u306E\u500D\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059`;case"unrecognized_keys":return`\u8A8D\u8B58\u3055\u308C\u3066\u3044\u306A\u3044\u30AD\u30FC${o.keys.length>1?"\u7FA4":""}: ${b(o.keys,"\u3001")}`;case"invalid_key":return`${o.origin}\u5185\u306E\u7121\u52B9\u306A\u30AD\u30FC`;case"invalid_union":return"\u7121\u52B9\u306A\u5165\u529B";case"invalid_element":return`${o.origin}\u5185\u306E\u7121\u52B9\u306A\u5024`;default:return"\u7121\u52B9\u306A\u5165\u529B"}}};function Pd(){return{localeError:Rh()}}var Uh=()=>{let e={string:{unit:"\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},file:{unit:"\u1794\u17C3",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},array:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"},set:{unit:"\u1792\u17B6\u178F\u17BB",verb:"\u1782\u17BD\u179A\u1798\u17B6\u1793"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"\u1798\u17B7\u1793\u1798\u17C2\u1793\u1787\u17B6\u179B\u17C1\u1781 (NaN)":"\u179B\u17C1\u1781";case"object":{if(Array.isArray(o))return"\u17A2\u17B6\u179A\u17C1 (Array)";if(o===null)return"\u1782\u17D2\u1798\u17B6\u1793\u178F\u1798\u17D2\u179B\u17C3 (null)";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B",email:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793\u17A2\u17CA\u17B8\u1798\u17C2\u179B",url:"URL",emoji:"\u179F\u1789\u17D2\u1789\u17B6\u17A2\u17B6\u179A\u1798\u17D2\u1798\u178E\u17CD",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 \u1793\u17B7\u1784\u1798\u17C9\u17C4\u1784 ISO",date:"\u1780\u17B6\u179B\u1794\u179A\u17B7\u1785\u17D2\u1786\u17C1\u1791 ISO",time:"\u1798\u17C9\u17C4\u1784 ISO",duration:"\u179A\u1799\u17C8\u1796\u17C1\u179B ISO",ipv4:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",ipv6:"\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",cidrv4:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv4",cidrv6:"\u178A\u17C2\u1793\u17A2\u17B6\u179F\u1799\u178A\u17D2\u178B\u17B6\u1793 IPv6",base64:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64",base64url:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u17A2\u17CA\u17B7\u1780\u17BC\u178A base64url",json_string:"\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A JSON",e164:"\u179B\u17C1\u1781 E.164",jwt:"JWT",template_literal:"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B"};return o=>{switch(o.code){case"invalid_type":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o.expected} \u1794\u17C9\u17BB\u1793\u17D2\u178F\u17C2\u1791\u1791\u17BD\u179B\u1794\u17B6\u1793 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1794\u1789\u17D2\u1785\u17BC\u179B\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${P(o.values[0])}`:`\u1787\u1798\u17D2\u179A\u17BE\u179F\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1787\u17B6\u1798\u17BD\u1799\u1780\u17D2\u1793\u17BB\u1784\u1785\u17C6\u178E\u17C4\u1798 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${o.maximum.toString()} ${s.unit??"\u1792\u17B6\u178F\u17BB"}`:`\u1792\u17C6\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o.origin??"\u178F\u1798\u17D2\u179B\u17C3"} ${i} ${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o.origin} ${i} ${o.minimum.toString()} ${s.unit}`:`\u178F\u17BC\u1785\u1796\u17C1\u1780\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1780\u17B6\u179A ${o.origin} ${i} ${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1785\u17B6\u1794\u17CB\u1795\u17D2\u178F\u17BE\u1798\u178A\u17C4\u1799 "${i.prefix}"`:i.format==="ends_with"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1794\u1789\u17D2\u1785\u1794\u17CB\u178A\u17C4\u1799 "${i.suffix}"`:i.format==="includes"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u1798\u17B6\u1793 "${i.includes}"`:i.format==="regex"?`\u1781\u17D2\u179F\u17C2\u17A2\u1780\u17D2\u179F\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1795\u17D2\u1782\u17BC\u1795\u17D2\u1782\u1784\u1793\u17B9\u1784\u1791\u1798\u17D2\u179A\u1784\u17CB\u178A\u17C2\u179B\u1794\u17B6\u1793\u1780\u17C6\u178E\u178F\u17CB ${i.pattern}`:`\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u179B\u17C1\u1781\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u17D6 \u178F\u17D2\u179A\u17BC\u179C\u178F\u17C2\u1787\u17B6\u1796\u17A0\u17BB\u1782\u17BB\u178E\u1793\u17C3 ${o.divisor}`;case"unrecognized_keys":return`\u179A\u1780\u1783\u17BE\u1789\u179F\u17C4\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB\u17D6 ${b(o.keys,", ")}`;case"invalid_key":return`\u179F\u17C4\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${o.origin}`;case"invalid_union":return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C";case"invalid_element":return`\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C\u1793\u17C5\u1780\u17D2\u1793\u17BB\u1784 ${o.origin}`;default:return"\u1791\u17B7\u1793\u17D2\u1793\u1793\u17D0\u1799\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C"}}};function Id(){return{localeError:Uh()}}var Fh=()=>{let e={string:{unit:"\uBB38\uC790",verb:"to have"},file:{unit:"\uBC14\uC774\uD2B8",verb:"to have"},array:{unit:"\uAC1C",verb:"to have"},set:{unit:"\uAC1C",verb:"to have"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\uC785\uB825",email:"\uC774\uBA54\uC77C \uC8FC\uC18C",url:"URL",emoji:"\uC774\uBAA8\uC9C0",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \uB0A0\uC9DC\uC2DC\uAC04",date:"ISO \uB0A0\uC9DC",time:"ISO \uC2DC\uAC04",duration:"ISO \uAE30\uAC04",ipv4:"IPv4 \uC8FC\uC18C",ipv6:"IPv6 \uC8FC\uC18C",cidrv4:"IPv4 \uBC94\uC704",cidrv6:"IPv6 \uBC94\uC704",base64:"base64 \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",base64url:"base64url \uC778\uCF54\uB529 \uBB38\uC790\uC5F4",json_string:"JSON \uBB38\uC790\uC5F4",e164:"E.164 \uBC88\uD638",jwt:"JWT",template_literal:"\uC785\uB825"};return o=>{switch(o.code){case"invalid_type":return`\uC798\uBABB\uB41C \uC785\uB825: \uC608\uC0C1 \uD0C0\uC785\uC740 ${o.expected}, \uBC1B\uC740 \uD0C0\uC785\uC740 ${n(o.input)}\uC785\uB2C8\uB2E4`;case"invalid_value":return o.values.length===1?`\uC798\uBABB\uB41C \uC785\uB825: \uAC12\uC740 ${P(o.values[0])} \uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C \uC635\uC158: ${b(o.values,"\uB610\uB294 ")} \uC911 \uD558\uB098\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"too_big":{let i=o.inclusive?"\uC774\uD558":"\uBBF8\uB9CC",s=i==="\uBBF8\uB9CC"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=t(o.origin),u=c?.unit??"\uC694\uC18C";return c?`${o.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${o.maximum.toString()}${u} ${i}${s}`:`${o.origin??"\uAC12"}\uC774 \uB108\uBB34 \uD07D\uB2C8\uB2E4: ${o.maximum.toString()} ${i}${s}`}case"too_small":{let i=o.inclusive?"\uC774\uC0C1":"\uCD08\uACFC",s=i==="\uC774\uC0C1"?"\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4":"\uC5EC\uC57C \uD569\uB2C8\uB2E4",c=t(o.origin),u=c?.unit??"\uC694\uC18C";return c?`${o.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${o.minimum.toString()}${u} ${i}${s}`:`${o.origin??"\uAC12"}\uC774 \uB108\uBB34 \uC791\uC2B5\uB2C8\uB2E4: ${o.minimum.toString()} ${i}${s}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.prefix}"(\uC73C)\uB85C \uC2DC\uC791\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="ends_with"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.suffix}"(\uC73C)\uB85C \uB05D\uB098\uC57C \uD569\uB2C8\uB2E4`:i.format==="includes"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: "${i.includes}"\uC744(\uB97C) \uD3EC\uD568\uD574\uC57C \uD569\uB2C8\uB2E4`:i.format==="regex"?`\uC798\uBABB\uB41C \uBB38\uC790\uC5F4: \uC815\uADDC\uC2DD ${i.pattern} \uD328\uD134\uACFC \uC77C\uCE58\uD574\uC57C \uD569\uB2C8\uB2E4`:`\uC798\uBABB\uB41C ${r[i.format]??o.format}`}case"not_multiple_of":return`\uC798\uBABB\uB41C \uC22B\uC790: ${o.divisor}\uC758 \uBC30\uC218\uC5EC\uC57C \uD569\uB2C8\uB2E4`;case"unrecognized_keys":return`\uC778\uC2DD\uD560 \uC218 \uC5C6\uB294 \uD0A4: ${b(o.keys,", ")}`;case"invalid_key":return`\uC798\uBABB\uB41C \uD0A4: ${o.origin}`;case"invalid_union":return"\uC798\uBABB\uB41C \uC785\uB825";case"invalid_element":return`\uC798\uBABB\uB41C \uAC12: ${o.origin}`;default:return"\uC798\uBABB\uB41C \uC785\uB825"}}};function Td(){return{localeError:Fh()}}var Zh=()=>{let e={string:{unit:"\u0437\u043D\u0430\u0446\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},file:{unit:"\u0431\u0430\u0458\u0442\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},array:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"},set:{unit:"\u0441\u0442\u0430\u0432\u043A\u0438",verb:"\u0434\u0430 \u0438\u043C\u0430\u0430\u0442"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0431\u0440\u043E\u0458";case"object":{if(Array.isArray(o))return"\u043D\u0438\u0437\u0430";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0432\u043D\u0435\u0441",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u043D\u0430 \u0435-\u043F\u043E\u0448\u0442\u0430",url:"URL",emoji:"\u0435\u043C\u043E\u045F\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0443\u043C \u0438 \u0432\u0440\u0435\u043C\u0435",date:"ISO \u0434\u0430\u0442\u0443\u043C",time:"ISO \u0432\u0440\u0435\u043C\u0435",duration:"ISO \u0432\u0440\u0435\u043C\u0435\u0442\u0440\u0430\u0435\u045A\u0435",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441\u0430",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441\u0430",cidrv4:"IPv4 \u043E\u043F\u0441\u0435\u0433",cidrv6:"IPv6 \u043E\u043F\u0441\u0435\u0433",base64:"base64-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",base64url:"base64url-\u0435\u043D\u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0430 \u043D\u0438\u0437\u0430",json_string:"JSON \u043D\u0438\u0437\u0430",e164:"E.164 \u0431\u0440\u043E\u0458",jwt:"JWT",template_literal:"\u0432\u043D\u0435\u0441"};return o=>{switch(o.code){case"invalid_type":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o.expected}, \u043F\u0440\u0438\u043C\u0435\u043D\u043E ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Invalid input: expected ${P(o.values[0])}`:`\u0413\u0440\u0435\u0448\u0430\u043D\u0430 \u043E\u043F\u0446\u0438\u0458\u0430: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 \u0435\u0434\u043D\u0430 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0438\u043C\u0430 ${i}${o.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0438"}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u0433\u043E\u043B\u0435\u043C: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o.origin??"\u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442\u0430"} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o.origin} \u0434\u0430 \u0438\u043C\u0430 ${i}${o.minimum.toString()} ${s.unit}`:`\u041F\u0440\u0435\u043C\u043D\u043E\u0433\u0443 \u043C\u0430\u043B: \u0441\u0435 \u043E\u0447\u0435\u043A\u0443\u0432\u0430 ${o.origin} \u0434\u0430 \u0431\u0438\u0434\u0435 ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0443\u0432\u0430 \u0441\u043E "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430 \u0441\u043E "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0432\u043A\u043B\u0443\u0447\u0443\u0432\u0430 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0430\u0436\u0435\u0447\u043A\u0430 \u043D\u0438\u0437\u0430: \u043C\u043E\u0440\u0430 \u0434\u0430 \u043E\u0434\u0433\u043E\u0430\u0440\u0430 \u043D\u0430 \u043F\u0430\u0442\u0435\u0440\u043D\u043E\u0442 ${i.pattern}`:`Invalid ${r[i.format]??o.format}`}case"not_multiple_of":return`\u0413\u0440\u0435\u0448\u0435\u043D \u0431\u0440\u043E\u0458: \u043C\u043E\u0440\u0430 \u0434\u0430 \u0431\u0438\u0434\u0435 \u0434\u0435\u043B\u0438\u0432 \u0441\u043E ${o.divisor}`;case"unrecognized_keys":return`${o.keys.length>1?"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D\u0438 \u043A\u043B\u0443\u0447\u0435\u0432\u0438":"\u041D\u0435\u043F\u0440\u0435\u043F\u043E\u0437\u043D\u0430\u0435\u043D \u043A\u043B\u0443\u0447"}: ${b(o.keys,", ")}`;case"invalid_key":return`\u0413\u0440\u0435\u0448\u0435\u043D \u043A\u043B\u0443\u0447 \u0432\u043E ${o.origin}`;case"invalid_union":return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441";case"invalid_element":return`\u0413\u0440\u0435\u0448\u043D\u0430 \u0432\u0440\u0435\u0434\u043D\u043E\u0441\u0442 \u0432\u043E ${o.origin}`;default:return"\u0413\u0440\u0435\u0448\u0435\u043D \u0432\u043D\u0435\u0441"}}};function Od(){return{localeError:Zh()}}var Bh=()=>{let e={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"nombor";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Input tidak sah: dijangka ${o.expected}, diterima ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Input tidak sah: dijangka ${P(o.values[0])}`:`Pilihan tidak sah: dijangka salah satu daripada ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Terlalu besar: dijangka ${o.origin??"nilai"} ${s.verb} ${i}${o.maximum.toString()} ${s.unit??"elemen"}`:`Terlalu besar: dijangka ${o.origin??"nilai"} adalah ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Terlalu kecil: dijangka ${o.origin} ${s.verb} ${i}${o.minimum.toString()} ${s.unit}`:`Terlalu kecil: dijangka ${o.origin} adalah ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`String tidak sah: mesti bermula dengan "${i.prefix}"`:i.format==="ends_with"?`String tidak sah: mesti berakhir dengan "${i.suffix}"`:i.format==="includes"?`String tidak sah: mesti mengandungi "${i.includes}"`:i.format==="regex"?`String tidak sah: mesti sepadan dengan corak ${i.pattern}`:`${r[i.format]??o.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${o.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${b(o.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${o.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${o.origin}`;default:return"Input tidak sah"}}};function Ed(){return{localeError:Bh()}}var Vh=()=>{let e={string:{unit:"tekens"},file:{unit:"bytes"},array:{unit:"elementen"},set:{unit:"elementen"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"getal";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"};return o=>{switch(o.code){case"invalid_type":return`Ongeldige invoer: verwacht ${o.expected}, ontving ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Ongeldige invoer: verwacht ${P(o.values[0])}`:`Ongeldige optie: verwacht \xE9\xE9n van ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Te lang: verwacht dat ${o.origin??"waarde"} ${i}${o.maximum.toString()} ${s.unit??"elementen"} bevat`:`Te lang: verwacht dat ${o.origin??"waarde"} ${i}${o.maximum.toString()} is`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Te kort: verwacht dat ${o.origin} ${i}${o.minimum.toString()} ${s.unit} bevat`:`Te kort: verwacht dat ${o.origin} ${i}${o.minimum.toString()} is`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Ongeldige tekst: moet met "${i.prefix}" beginnen`:i.format==="ends_with"?`Ongeldige tekst: moet op "${i.suffix}" eindigen`:i.format==="includes"?`Ongeldige tekst: moet "${i.includes}" bevatten`:i.format==="regex"?`Ongeldige tekst: moet overeenkomen met patroon ${i.pattern}`:`Ongeldig: ${r[i.format]??o.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${o.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${o.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${o.origin}`;default:return"Ongeldige invoer"}}};function Ad(){return{localeError:Vh()}}var Gh=()=>{let e={string:{unit:"tegn",verb:"\xE5 ha"},file:{unit:"bytes",verb:"\xE5 ha"},array:{unit:"elementer",verb:"\xE5 inneholde"},set:{unit:"elementer",verb:"\xE5 inneholde"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"tall";case"object":{if(Array.isArray(o))return"liste";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-omr\xE5de",ipv6:"IPv6-omr\xE5de",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`Ugyldig input: forventet ${o.expected}, fikk ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Ugyldig verdi: forventet ${P(o.values[0])}`:`Ugyldig valg: forventet en av ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`For stor(t): forventet ${o.origin??"value"} til \xE5 ha ${i}${o.maximum.toString()} ${s.unit??"elementer"}`:`For stor(t): forventet ${o.origin??"value"} til \xE5 ha ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`For lite(n): forventet ${o.origin} til \xE5 ha ${i}${o.minimum.toString()} ${s.unit}`:`For lite(n): forventet ${o.origin} til \xE5 ha ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Ugyldig streng: m\xE5 starte med "${i.prefix}"`:i.format==="ends_with"?`Ugyldig streng: m\xE5 ende med "${i.suffix}"`:i.format==="includes"?`Ugyldig streng: m\xE5 inneholde "${i.includes}"`:i.format==="regex"?`Ugyldig streng: m\xE5 matche m\xF8nsteret ${i.pattern}`:`Ugyldig ${r[i.format]??o.format}`}case"not_multiple_of":return`Ugyldig tall: m\xE5 v\xE6re et multiplum av ${o.divisor}`;case"unrecognized_keys":return`${o.keys.length>1?"Ukjente n\xF8kler":"Ukjent n\xF8kkel"}: ${b(o.keys,", ")}`;case"invalid_key":return`Ugyldig n\xF8kkel i ${o.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${o.origin}`;default:return"Ugyldig input"}}};function Md(){return{localeError:Gh()}}var Wh=()=>{let e={string:{unit:"harf",verb:"olmal\u0131d\u0131r"},file:{unit:"bayt",verb:"olmal\u0131d\u0131r"},array:{unit:"unsur",verb:"olmal\u0131d\u0131r"},set:{unit:"unsur",verb:"olmal\u0131d\u0131r"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"numara";case"object":{if(Array.isArray(o))return"saf";if(o===null)return"gayb";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"giren",email:"epostag\xE2h",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO heng\xE2m\u0131",date:"ISO tarihi",time:"ISO zaman\u0131",duration:"ISO m\xFCddeti",ipv4:"IPv4 ni\u015F\xE2n\u0131",ipv6:"IPv6 ni\u015F\xE2n\u0131",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-\u015Fifreli metin",base64url:"base64url-\u015Fifreli metin",json_string:"JSON metin",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"giren"};return o=>{switch(o.code){case"invalid_type":return`F\xE2sit giren: umulan ${o.expected}, al\u0131nan ${n(o.input)}`;case"invalid_value":return o.values.length===1?`F\xE2sit giren: umulan ${P(o.values[0])}`:`F\xE2sit tercih: m\xFBteberler ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Fazla b\xFCy\xFCk: ${o.origin??"value"}, ${i}${o.maximum.toString()} ${s.unit??"elements"} sahip olmal\u0131yd\u0131.`:`Fazla b\xFCy\xFCk: ${o.origin??"value"}, ${i}${o.maximum.toString()} olmal\u0131yd\u0131.`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Fazla k\xFC\xE7\xFCk: ${o.origin}, ${i}${o.minimum.toString()} ${s.unit} sahip olmal\u0131yd\u0131.`:`Fazla k\xFC\xE7\xFCk: ${o.origin}, ${i}${o.minimum.toString()} olmal\u0131yd\u0131.`}case"invalid_format":{let i=o;return i.format==="starts_with"?`F\xE2sit metin: "${i.prefix}" ile ba\u015Flamal\u0131.`:i.format==="ends_with"?`F\xE2sit metin: "${i.suffix}" ile bitmeli.`:i.format==="includes"?`F\xE2sit metin: "${i.includes}" ihtiv\xE2 etmeli.`:i.format==="regex"?`F\xE2sit metin: ${i.pattern} nak\u015F\u0131na uymal\u0131.`:`F\xE2sit ${r[i.format]??o.format}`}case"not_multiple_of":return`F\xE2sit say\u0131: ${o.divisor} kat\u0131 olmal\u0131yd\u0131.`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar ${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`${o.origin} i\xE7in tan\u0131nmayan anahtar var.`;case"invalid_union":return"Giren tan\u0131namad\u0131.";case"invalid_element":return`${o.origin} i\xE7in tan\u0131nmayan k\u0131ymet var.`;default:return"K\u0131ymet tan\u0131namad\u0131."}}};function Nd(){return{localeError:Wh()}}var Hh=()=>{let e={string:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},file:{unit:"\u0628\u0627\u06CC\u067C\u0633",verb:"\u0648\u0644\u0631\u064A"},array:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"},set:{unit:"\u062A\u0648\u06A9\u064A",verb:"\u0648\u0644\u0631\u064A"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0639\u062F\u062F";case"object":{if(Array.isArray(o))return"\u0627\u0631\u06D0";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0648\u0631\u0648\u062F\u064A",email:"\u0628\u0631\u06CC\u069A\u0646\u0627\u0644\u06CC\u06A9",url:"\u06CC\u0648 \u0622\u0631 \u0627\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u064A",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0646\u06CC\u067C\u0647 \u0627\u0648 \u0648\u062E\u062A",date:"\u0646\u06D0\u067C\u0647",time:"\u0648\u062E\u062A",duration:"\u0645\u0648\u062F\u0647",ipv4:"\u062F IPv4 \u067E\u062A\u0647",ipv6:"\u062F IPv6 \u067E\u062A\u0647",cidrv4:"\u062F IPv4 \u0633\u0627\u062D\u0647",cidrv6:"\u062F IPv6 \u0633\u0627\u062D\u0647",base64:"base64-encoded \u0645\u062A\u0646",base64url:"base64url-encoded \u0645\u062A\u0646",json_string:"JSON \u0645\u062A\u0646",e164:"\u062F E.164 \u0634\u0645\u06D0\u0631\u0647",jwt:"JWT",template_literal:"\u0648\u0631\u0648\u062F\u064A"};return o=>{switch(o.code){case"invalid_type":return`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${o.expected} \u0648\u0627\u06CC, \u0645\u06AB\u0631 ${n(o.input)} \u062A\u0631\u0644\u0627\u0633\u0647 \u0634\u0648`;case"invalid_value":return o.values.length===1?`\u0646\u0627\u0633\u0645 \u0648\u0631\u0648\u062F\u064A: \u0628\u0627\u06CC\u062F ${P(o.values[0])} \u0648\u0627\u06CC`:`\u0646\u0627\u0633\u0645 \u0627\u0646\u062A\u062E\u0627\u0628: \u0628\u0627\u06CC\u062F \u06CC\u0648 \u0644\u0647 ${b(o.values,"|")} \u0685\u062E\u0647 \u0648\u0627\u06CC`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${o.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${o.maximum.toString()} ${s.unit??"\u0639\u0646\u0635\u0631\u0648\u0646\u0647"} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u0644\u0648\u06CC: ${o.origin??"\u0627\u0631\u0632\u069A\u062A"} \u0628\u0627\u06CC\u062F ${i}${o.maximum.toString()} \u0648\u064A`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${o.origin} \u0628\u0627\u06CC\u062F ${i}${o.minimum.toString()} ${s.unit} \u0648\u0644\u0631\u064A`:`\u0689\u06CC\u0631 \u06A9\u0648\u0686\u0646\u06CC: ${o.origin} \u0628\u0627\u06CC\u062F ${i}${o.minimum.toString()} \u0648\u064A`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.prefix}" \u0633\u0631\u0647 \u067E\u06CC\u0644 \u0634\u064A`:i.format==="ends_with"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F "${i.suffix}" \u0633\u0631\u0647 \u067E\u0627\u06CC \u062A\u0647 \u0648\u0631\u0633\u064A\u0696\u064A`:i.format==="includes"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F "${i.includes}" \u0648\u0644\u0631\u064A`:i.format==="regex"?`\u0646\u0627\u0633\u0645 \u0645\u062A\u0646: \u0628\u0627\u06CC\u062F \u062F ${i.pattern} \u0633\u0631\u0647 \u0645\u0637\u0627\u0628\u0642\u062A \u0648\u0644\u0631\u064A`:`${r[i.format]??o.format} \u0646\u0627\u0633\u0645 \u062F\u06CC`}case"not_multiple_of":return`\u0646\u0627\u0633\u0645 \u0639\u062F\u062F: \u0628\u0627\u06CC\u062F \u062F ${o.divisor} \u0645\u0636\u0631\u0628 \u0648\u064A`;case"unrecognized_keys":return`\u0646\u0627\u0633\u0645 ${o.keys.length>1?"\u06A9\u0644\u06CC\u0689\u0648\u0646\u0647":"\u06A9\u0644\u06CC\u0689"}: ${b(o.keys,", ")}`;case"invalid_key":return`\u0646\u0627\u0633\u0645 \u06A9\u0644\u06CC\u0689 \u067E\u0647 ${o.origin} \u06A9\u06D0`;case"invalid_union":return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A";case"invalid_element":return`\u0646\u0627\u0633\u0645 \u0639\u0646\u0635\u0631 \u067E\u0647 ${o.origin} \u06A9\u06D0`;default:return"\u0646\u0627\u0633\u0645\u0647 \u0648\u0631\u0648\u062F\u064A"}}};function zd(){return{localeError:Hh()}}var qh=()=>{let e={string:{unit:"znak\xF3w",verb:"mie\u0107"},file:{unit:"bajt\xF3w",verb:"mie\u0107"},array:{unit:"element\xF3w",verb:"mie\u0107"},set:{unit:"element\xF3w",verb:"mie\u0107"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"liczba";case"object":{if(Array.isArray(o))return"tablica";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"wyra\u017Cenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ci\u0105g znak\xF3w zakodowany w formacie base64",base64url:"ci\u0105g znak\xF3w zakodowany w formacie base64url",json_string:"ci\u0105g znak\xF3w w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wej\u015Bcie"};return o=>{switch(o.code){case"invalid_type":return`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${o.expected}, otrzymano ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Nieprawid\u0142owe dane wej\u015Bciowe: oczekiwano ${P(o.values[0])}`:`Nieprawid\u0142owa opcja: oczekiwano jednej z warto\u015Bci ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Za du\u017Ca warto\u015B\u0107: oczekiwano, \u017Ce ${o.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${o.maximum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt du\u017C(y/a/e): oczekiwano, \u017Ce ${o.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Za ma\u0142a warto\u015B\u0107: oczekiwano, \u017Ce ${o.origin??"warto\u015B\u0107"} b\u0119dzie mie\u0107 ${i}${o.minimum.toString()} ${s.unit??"element\xF3w"}`:`Zbyt ma\u0142(y/a/e): oczekiwano, \u017Ce ${o.origin??"warto\u015B\u0107"} b\u0119dzie wynosi\u0107 ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zaczyna\u0107 si\u0119 od "${i.prefix}"`:i.format==="ends_with"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi ko\u0144czy\u0107 si\u0119 na "${i.suffix}"`:i.format==="includes"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi zawiera\u0107 "${i.includes}"`:i.format==="regex"?`Nieprawid\u0142owy ci\u0105g znak\xF3w: musi odpowiada\u0107 wzorcowi ${i.pattern}`:`Nieprawid\u0142ow(y/a/e) ${r[i.format]??o.format}`}case"not_multiple_of":return`Nieprawid\u0142owa liczba: musi by\u0107 wielokrotno\u015Bci\u0105 ${o.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Nieprawid\u0142owy klucz w ${o.origin}`;case"invalid_union":return"Nieprawid\u0142owe dane wej\u015Bciowe";case"invalid_element":return`Nieprawid\u0142owa warto\u015B\u0107 w ${o.origin}`;default:return"Nieprawid\u0142owe dane wej\u015Bciowe"}}};function jd(){return{localeError:qh()}}var Jh=()=>{let e={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"n\xFAmero";case"object":{if(Array.isArray(o))return"array";if(o===null)return"nulo";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"padr\xE3o",email:"endere\xE7o de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"dura\xE7\xE3o ISO",ipv4:"endere\xE7o IPv4",ipv6:"endere\xE7o IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"n\xFAmero E.164",jwt:"JWT",template_literal:"entrada"};return o=>{switch(o.code){case"invalid_type":return`Tipo inv\xE1lido: esperado ${o.expected}, recebido ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Entrada inv\xE1lida: esperado ${P(o.values[0])}`:`Op\xE7\xE3o inv\xE1lida: esperada uma das ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Muito grande: esperado que ${o.origin??"valor"} tivesse ${i}${o.maximum.toString()} ${s.unit??"elementos"}`:`Muito grande: esperado que ${o.origin??"valor"} fosse ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Muito pequeno: esperado que ${o.origin} tivesse ${i}${o.minimum.toString()} ${s.unit}`:`Muito pequeno: esperado que ${o.origin} fosse ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Texto inv\xE1lido: deve come\xE7ar com "${i.prefix}"`:i.format==="ends_with"?`Texto inv\xE1lido: deve terminar com "${i.suffix}"`:i.format==="includes"?`Texto inv\xE1lido: deve incluir "${i.includes}"`:i.format==="regex"?`Texto inv\xE1lido: deve corresponder ao padr\xE3o ${i.pattern}`:`${r[i.format]??o.format} inv\xE1lido`}case"not_multiple_of":return`N\xFAmero inv\xE1lido: deve ser m\xFAltiplo de ${o.divisor}`;case"unrecognized_keys":return`Chave${o.keys.length>1?"s":""} desconhecida${o.keys.length>1?"s":""}: ${b(o.keys,", ")}`;case"invalid_key":return`Chave inv\xE1lida em ${o.origin}`;case"invalid_union":return"Entrada inv\xE1lida";case"invalid_element":return`Valor inv\xE1lido em ${o.origin}`;default:return"Campo inv\xE1lido"}}};function Dd(){return{localeError:Jh()}}function Ld(e,t,n,r){let o=Math.abs(e),i=o%10,s=o%100;return s>=11&&s<=19?r:i===1?t:i>=2&&i<=4?n:r}var Kh=()=>{let e={string:{unit:{one:"\u0441\u0438\u043C\u0432\u043E\u043B",few:"\u0441\u0438\u043C\u0432\u043E\u043B\u0430",many:"\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},file:{unit:{one:"\u0431\u0430\u0439\u0442",few:"\u0431\u0430\u0439\u0442\u0430",many:"\u0431\u0430\u0439\u0442"},verb:"\u0438\u043C\u0435\u0442\u044C"},array:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"},set:{unit:{one:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442",few:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430",many:"\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432"},verb:"\u0438\u043C\u0435\u0442\u044C"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(o))return"\u043C\u0430\u0441\u0441\u0438\u0432";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0432\u0432\u043E\u0434",email:"email \u0430\u0434\u0440\u0435\u0441",url:"URL",emoji:"\u044D\u043C\u043E\u0434\u0437\u0438",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0434\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043C\u044F",date:"ISO \u0434\u0430\u0442\u0430",time:"ISO \u0432\u0440\u0435\u043C\u044F",duration:"ISO \u0434\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",ipv4:"IPv4 \u0430\u0434\u0440\u0435\u0441",ipv6:"IPv6 \u0430\u0434\u0440\u0435\u0441",cidrv4:"IPv4 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",cidrv6:"IPv6 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D",base64:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64",base64url:"\u0441\u0442\u0440\u043E\u043A\u0430 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 base64url",json_string:"JSON \u0441\u0442\u0440\u043E\u043A\u0430",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0432\u043E\u0434"};return o=>{switch(o.code){case"invalid_type":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${o.expected}, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043E ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0432\u043E\u0434: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C ${P(o.values[0])}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0434\u043D\u043E \u0438\u0437 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);if(s){let c=Number(o.maximum),u=Ld(c,s.unit.one,s.unit.few,s.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${o.maximum.toString()} ${u}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435"} \u0431\u0443\u0434\u0435\u0442 ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);if(s){let c=Number(o.minimum),u=Ld(c,s.unit.one,s.unit.few,s.unit.many);return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${o.origin} \u0431\u0443\u0434\u0435\u0442 \u0438\u043C\u0435\u0442\u044C ${i}${o.minimum.toString()} ${u}`}return`\u0421\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435: \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C, \u0447\u0442\u043E ${o.origin} \u0431\u0443\u0434\u0435\u0442 ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u043D\u0430\u0447\u0438\u043D\u0430\u0442\u044C\u0441\u044F \u0441 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u0432\u0435\u0440\u043D\u0430\u044F \u0441\u0442\u0440\u043E\u043A\u0430: \u0434\u043E\u043B\u0436\u043D\u0430 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0447\u0438\u0441\u043B\u043E: \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u044B\u043C ${o.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u0430\u0441\u043F\u043E\u0437\u043D\u0430\u043D\u043D${o.keys.length>1?"\u044B\u0435":"\u044B\u0439"} \u043A\u043B\u044E\u0447${o.keys.length>1?"\u0438":""}: ${b(o.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u0432 ${o.origin}`;case"invalid_union":return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435";case"invalid_element":return`\u041D\u0435\u0432\u0435\u0440\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432 ${o.origin}`;default:return"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0435 \u0432\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435"}}};function Rd(){return{localeError:Kh()}}var Xh=()=>{let e={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0161tevilo";case"object":{if(Array.isArray(o))return"tabela";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"vnos",email:"e-po\u0161tni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in \u010Das",date:"ISO datum",time:"ISO \u010Das",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 \u0161tevilka",jwt:"JWT",template_literal:"vnos"};return o=>{switch(o.code){case"invalid_type":return`Neveljaven vnos: pri\u010Dakovano ${o.expected}, prejeto ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Neveljaven vnos: pri\u010Dakovano ${P(o.values[0])}`:`Neveljavna mo\u017Enost: pri\u010Dakovano eno izmed ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Preveliko: pri\u010Dakovano, da bo ${o.origin??"vrednost"} imelo ${i}${o.maximum.toString()} ${s.unit??"elementov"}`:`Preveliko: pri\u010Dakovano, da bo ${o.origin??"vrednost"} ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Premajhno: pri\u010Dakovano, da bo ${o.origin} imelo ${i}${o.minimum.toString()} ${s.unit}`:`Premajhno: pri\u010Dakovano, da bo ${o.origin} ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Neveljaven niz: mora se za\u010Deti z "${i.prefix}"`:i.format==="ends_with"?`Neveljaven niz: mora se kon\u010Dati z "${i.suffix}"`:i.format==="includes"?`Neveljaven niz: mora vsebovati "${i.includes}"`:i.format==="regex"?`Neveljaven niz: mora ustrezati vzorcu ${i.pattern}`:`Neveljaven ${r[i.format]??o.format}`}case"not_multiple_of":return`Neveljavno \u0161tevilo: mora biti ve\u010Dkratnik ${o.divisor}`;case"unrecognized_keys":return`Neprepoznan${o.keys.length>1?"i klju\u010Di":" klju\u010D"}: ${b(o.keys,", ")}`;case"invalid_key":return`Neveljaven klju\u010D v ${o.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${o.origin}`;default:return"Neveljaven vnos"}}};function Ud(){return{localeError:Xh()}}var Yh=()=>{let e={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att inneh\xE5lla"},set:{unit:"objekt",verb:"att inneh\xE5lla"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"antal";case"object":{if(Array.isArray(o))return"lista";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"regulj\xE4rt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad str\xE4ng",base64url:"base64url-kodad str\xE4ng",json_string:"JSON-str\xE4ng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"};return o=>{switch(o.code){case"invalid_type":return`Ogiltig inmatning: f\xF6rv\xE4ntat ${o.expected}, fick ${n(o.input)}`;case"invalid_value":return o.values.length===1?`Ogiltig inmatning: f\xF6rv\xE4ntat ${P(o.values[0])}`:`Ogiltigt val: f\xF6rv\xE4ntade en av ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`F\xF6r stor(t): f\xF6rv\xE4ntade ${o.origin??"v\xE4rdet"} att ha ${i}${o.maximum.toString()} ${s.unit??"element"}`:`F\xF6r stor(t): f\xF6rv\xE4ntat ${o.origin??"v\xE4rdet"} att ha ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`F\xF6r lite(t): f\xF6rv\xE4ntade ${o.origin??"v\xE4rdet"} att ha ${i}${o.minimum.toString()} ${s.unit}`:`F\xF6r lite(t): f\xF6rv\xE4ntade ${o.origin??"v\xE4rdet"} att ha ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Ogiltig str\xE4ng: m\xE5ste b\xF6rja med "${i.prefix}"`:i.format==="ends_with"?`Ogiltig str\xE4ng: m\xE5ste sluta med "${i.suffix}"`:i.format==="includes"?`Ogiltig str\xE4ng: m\xE5ste inneh\xE5lla "${i.includes}"`:i.format==="regex"?`Ogiltig str\xE4ng: m\xE5ste matcha m\xF6nstret "${i.pattern}"`:`Ogiltig(t) ${r[i.format]??o.format}`}case"not_multiple_of":return`Ogiltigt tal: m\xE5ste vara en multipel av ${o.divisor}`;case"unrecognized_keys":return`${o.keys.length>1?"Ok\xE4nda nycklar":"Ok\xE4nd nyckel"}: ${b(o.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${o.origin??"v\xE4rdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt v\xE4rde i ${o.origin??"v\xE4rdet"}`;default:return"Ogiltig input"}}};function Fd(){return{localeError:Yh()}}var Qh=()=>{let e={string:{unit:"\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},file:{unit:"\u0BAA\u0BC8\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},array:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"},set:{unit:"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",verb:"\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"\u0B8E\u0BA3\u0BCD \u0B85\u0BB2\u0BCD\u0BB2\u0BBE\u0BA4\u0BA4\u0BC1":"\u0B8E\u0BA3\u0BCD";case"object":{if(Array.isArray(o))return"\u0B85\u0BA3\u0BBF";if(o===null)return"\u0BB5\u0BC6\u0BB1\u0BC1\u0BAE\u0BC8";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1",email:"\u0BAE\u0BBF\u0BA9\u0BCD\u0BA9\u0B9E\u0BCD\u0B9A\u0BB2\u0BCD \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u0BA4\u0BC7\u0BA4\u0BBF \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",date:"ISO \u0BA4\u0BC7\u0BA4\u0BBF",time:"ISO \u0BA8\u0BC7\u0BB0\u0BAE\u0BCD",duration:"ISO \u0B95\u0BBE\u0BB2 \u0B85\u0BB3\u0BB5\u0BC1",ipv4:"IPv4 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",ipv6:"IPv6 \u0BAE\u0BC1\u0B95\u0BB5\u0BB0\u0BBF",cidrv4:"IPv4 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",cidrv6:"IPv6 \u0BB5\u0BB0\u0BAE\u0BCD\u0BAA\u0BC1",base64:"base64-encoded \u0B9A\u0BB0\u0BAE\u0BCD",base64url:"base64url-encoded \u0B9A\u0BB0\u0BAE\u0BCD",json_string:"JSON \u0B9A\u0BB0\u0BAE\u0BCD",e164:"E.164 \u0B8E\u0BA3\u0BCD",jwt:"JWT",template_literal:"input"};return o=>{switch(o.code){case"invalid_type":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o.expected}, \u0BAA\u0BC6\u0BB1\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${P(o.values[0])}`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${b(o.values,"|")} \u0B87\u0BB2\u0BCD \u0B92\u0BA9\u0BCD\u0BB1\u0BC1`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${o.maximum.toString()} ${s.unit??"\u0B89\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD"} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95 \u0BAA\u0BC6\u0BB0\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o.origin??"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1"} ${i}${o.maximum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o.origin} ${i}${o.minimum.toString()} ${s.unit} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BAE\u0BBF\u0B95\u0B9A\u0BCD \u0B9A\u0BBF\u0BB1\u0BBF\u0BAF\u0BA4\u0BC1: \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1 ${o.origin} ${i}${o.minimum.toString()} \u0B86\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.prefix}" \u0B87\u0BB2\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="ends_with"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.suffix}" \u0B87\u0BB2\u0BCD \u0BAE\u0BC1\u0B9F\u0BBF\u0BB5\u0B9F\u0BC8\u0BAF \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="includes"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: "${i.includes}" \u0B90 \u0B89\u0BB3\u0BCD\u0BB3\u0B9F\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:i.format==="regex"?`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B9A\u0BB0\u0BAE\u0BCD: ${i.pattern} \u0BAE\u0BC1\u0BB1\u0BC8\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B9F\u0BA9\u0BCD \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`:`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B8E\u0BA3\u0BCD: ${o.divisor} \u0B87\u0BA9\u0BCD \u0BAA\u0BB2\u0BAE\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD`;case"unrecognized_keys":return`\u0B85\u0B9F\u0BC8\u0BAF\u0BBE\u0BB3\u0BAE\u0BCD \u0BA4\u0BC6\u0BB0\u0BBF\u0BAF\u0BBE\u0BA4 \u0BB5\u0BBF\u0B9A\u0BC8${o.keys.length>1?"\u0B95\u0BB3\u0BCD":""}: ${b(o.keys,", ")}`;case"invalid_key":return`${o.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BB5\u0BBF\u0B9A\u0BC8`;case"invalid_union":return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1";case"invalid_element":return`${o.origin} \u0B87\u0BB2\u0BCD \u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1`;default:return"\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0B89\u0BB3\u0BCD\u0BB3\u0BC0\u0B9F\u0BC1"}}};function Zd(){return{localeError:Qh()}}var ey=()=>{let e={string:{unit:"\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},file:{unit:"\u0E44\u0E1A\u0E15\u0E4C",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},array:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"},set:{unit:"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23",verb:"\u0E04\u0E27\u0E23\u0E21\u0E35"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02 (NaN)":"\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02";case"object":{if(Array.isArray(o))return"\u0E2D\u0E32\u0E23\u0E4C\u0E40\u0E23\u0E22\u0E4C (Array)";if(o===null)return"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E04\u0E48\u0E32 (null)";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19",email:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48\u0E2D\u0E35\u0E40\u0E21\u0E25",url:"URL",emoji:"\u0E2D\u0E34\u0E42\u0E21\u0E08\u0E34",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",date:"\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E41\u0E1A\u0E1A ISO",time:"\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",duration:"\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E41\u0E1A\u0E1A ISO",ipv4:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv4",ipv6:"\u0E17\u0E35\u0E48\u0E2D\u0E22\u0E39\u0E48 IPv6",cidrv4:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv4",cidrv6:"\u0E0A\u0E48\u0E27\u0E07 IP \u0E41\u0E1A\u0E1A IPv6",base64:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64",base64url:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A Base64 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A URL",json_string:"\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E41\u0E1A\u0E1A JSON",e164:"\u0E40\u0E1A\u0E2D\u0E23\u0E4C\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E1B\u0E23\u0E30\u0E40\u0E17\u0E28 (E.164)",jwt:"\u0E42\u0E17\u0E40\u0E04\u0E19 JWT",template_literal:"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19"};return o=>{switch(o.code){case"invalid_type":return`\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${o.expected} \u0E41\u0E15\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u0E04\u0E48\u0E32\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19 ${P(o.values[0])}`:`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E04\u0E27\u0E23\u0E40\u0E1B\u0E47\u0E19\u0E2B\u0E19\u0E36\u0E48\u0E07\u0E43\u0E19 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19":"\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32",s=t(o.origin);return s?`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${o.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${o.maximum.toString()} ${s.unit??"\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23"}`:`\u0E40\u0E01\u0E34\u0E19\u0E01\u0E33\u0E2B\u0E19\u0E14: ${o.origin??"\u0E04\u0E48\u0E32"} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?"\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E19\u0E49\u0E2D\u0E22":"\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32",s=t(o.origin);return s?`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${o.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${o.minimum.toString()} ${s.unit}`:`\u0E19\u0E49\u0E2D\u0E22\u0E01\u0E27\u0E48\u0E32\u0E01\u0E33\u0E2B\u0E19\u0E14: ${o.origin} \u0E04\u0E27\u0E23\u0E21\u0E35${i} ${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E02\u0E36\u0E49\u0E19\u0E15\u0E49\u0E19\u0E14\u0E49\u0E27\u0E22 "${i.prefix}"`:i.format==="ends_with"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E25\u0E07\u0E17\u0E49\u0E32\u0E22\u0E14\u0E49\u0E27\u0E22 "${i.suffix}"`:i.format==="includes"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E15\u0E49\u0E2D\u0E07\u0E21\u0E35 "${i.includes}" \u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21`:i.format==="regex"?`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14 ${i.pattern}`:`\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: ${r[i.format]??o.format}`}case"not_multiple_of":return`\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E15\u0E49\u0E2D\u0E07\u0E40\u0E1B\u0E47\u0E19\u0E08\u0E33\u0E19\u0E27\u0E19\u0E17\u0E35\u0E48\u0E2B\u0E32\u0E23\u0E14\u0E49\u0E27\u0E22 ${o.divisor} \u0E44\u0E14\u0E49\u0E25\u0E07\u0E15\u0E31\u0E27`;case"unrecognized_keys":return`\u0E1E\u0E1A\u0E04\u0E35\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01: ${b(o.keys,", ")}`;case"invalid_key":return`\u0E04\u0E35\u0E22\u0E4C\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${o.origin}`;case"invalid_union":return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07: \u0E44\u0E21\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A\u0E22\u0E39\u0E40\u0E19\u0E35\u0E22\u0E19\u0E17\u0E35\u0E48\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E44\u0E27\u0E49";case"invalid_element":return`\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E43\u0E19 ${o.origin}`;default:return"\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07"}}};function Bd(){return{localeError:ey()}}var ty=e=>{let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"NaN":"number";case"object":{if(Array.isArray(e))return"array";if(e===null)return"null";if(Object.getPrototypeOf(e)!==Object.prototype&&e.constructor)return e.constructor.name}}return t},oy=()=>{let e={string:{unit:"karakter",verb:"olmal\u0131"},file:{unit:"bayt",verb:"olmal\u0131"},array:{unit:"\xF6\u011Fe",verb:"olmal\u0131"},set:{unit:"\xF6\u011Fe",verb:"olmal\u0131"}};function t(r){return e[r]??null}let n={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO s\xFCre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aral\u0131\u011F\u0131",cidrv6:"IPv6 aral\u0131\u011F\u0131",base64:"base64 ile \u015Fifrelenmi\u015F metin",base64url:"base64url ile \u015Fifrelenmi\u015F metin",json_string:"JSON dizesi",e164:"E.164 say\u0131s\u0131",jwt:"JWT",template_literal:"\u015Eablon dizesi"};return r=>{switch(r.code){case"invalid_type":return`Ge\xE7ersiz de\u011Fer: beklenen ${r.expected}, al\u0131nan ${ty(r.input)}`;case"invalid_value":return r.values.length===1?`Ge\xE7ersiz de\u011Fer: beklenen ${P(r.values[0])}`:`Ge\xE7ersiz se\xE7enek: a\u015Fa\u011F\u0131dakilerden biri olmal\u0131: ${b(r.values,"|")}`;case"too_big":{let o=r.inclusive?"<=":"<",i=t(r.origin);return i?`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${o}${r.maximum.toString()} ${i.unit??"\xF6\u011Fe"}`:`\xC7ok b\xFCy\xFCk: beklenen ${r.origin??"de\u011Fer"} ${o}${r.maximum.toString()}`}case"too_small":{let o=r.inclusive?">=":">",i=t(r.origin);return i?`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${o}${r.minimum.toString()} ${i.unit}`:`\xC7ok k\xFC\xE7\xFCk: beklenen ${r.origin} ${o}${r.minimum.toString()}`}case"invalid_format":{let o=r;return o.format==="starts_with"?`Ge\xE7ersiz metin: "${o.prefix}" ile ba\u015Flamal\u0131`:o.format==="ends_with"?`Ge\xE7ersiz metin: "${o.suffix}" ile bitmeli`:o.format==="includes"?`Ge\xE7ersiz metin: "${o.includes}" i\xE7ermeli`:o.format==="regex"?`Ge\xE7ersiz metin: ${o.pattern} desenine uymal\u0131`:`Ge\xE7ersiz ${n[o.format]??r.format}`}case"not_multiple_of":return`Ge\xE7ersiz say\u0131: ${r.divisor} ile tam b\xF6l\xFCnebilmeli`;case"unrecognized_keys":return`Tan\u0131nmayan anahtar${r.keys.length>1?"lar":""}: ${b(r.keys,", ")}`;case"invalid_key":return`${r.origin} i\xE7inde ge\xE7ersiz anahtar`;case"invalid_union":return"Ge\xE7ersiz de\u011Fer";case"invalid_element":return`${r.origin} i\xE7inde ge\xE7ersiz de\u011Fer`;default:return"Ge\xE7ersiz de\u011Fer"}}};function Vd(){return{localeError:oy()}}var ny=()=>{let e={string:{unit:"\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},file:{unit:"\u0431\u0430\u0439\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},array:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"},set:{unit:"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432",verb:"\u043C\u0430\u0442\u0438\u043C\u0435"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0447\u0438\u0441\u043B\u043E";case"object":{if(Array.isArray(o))return"\u043C\u0430\u0441\u0438\u0432";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456",email:"\u0430\u0434\u0440\u0435\u0441\u0430 \u0435\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0457 \u043F\u043E\u0448\u0442\u0438",url:"URL",emoji:"\u0435\u043C\u043E\u0434\u0437\u0456",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"\u0434\u0430\u0442\u0430 \u0442\u0430 \u0447\u0430\u0441 ISO",date:"\u0434\u0430\u0442\u0430 ISO",time:"\u0447\u0430\u0441 ISO",duration:"\u0442\u0440\u0438\u0432\u0430\u043B\u0456\u0441\u0442\u044C ISO",ipv4:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv4",ipv6:"\u0430\u0434\u0440\u0435\u0441\u0430 IPv6",cidrv4:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv4",cidrv6:"\u0434\u0456\u0430\u043F\u0430\u0437\u043E\u043D IPv6",base64:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64",base64url:"\u0440\u044F\u0434\u043E\u043A \u0443 \u043A\u043E\u0434\u0443\u0432\u0430\u043D\u043D\u0456 base64url",json_string:"\u0440\u044F\u0434\u043E\u043A JSON",e164:"\u043D\u043E\u043C\u0435\u0440 E.164",jwt:"JWT",template_literal:"\u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"};return o=>{switch(o.code){case"invalid_type":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${o.expected}, \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u043E ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F ${P(o.values[0])}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0430 \u043E\u043F\u0446\u0456\u044F: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F \u043E\u0434\u043D\u0435 \u0437 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} ${s.verb} ${i}${o.maximum.toString()} ${s.unit??"\u0435\u043B\u0435\u043C\u0435\u043D\u0442\u0456\u0432"}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${o.origin??"\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"} \u0431\u0443\u0434\u0435 ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${o.origin} ${s.verb} ${i}${o.minimum.toString()} ${s.unit}`:`\u0417\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435: \u043E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F, \u0449\u043E ${o.origin} \u0431\u0443\u0434\u0435 ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043F\u043E\u0447\u0438\u043D\u0430\u0442\u0438\u0441\u044F \u0437 "${i.prefix}"`:i.format==="ends_with"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0432\u0430\u0442\u0438\u0441\u044F \u043D\u0430 "${i.suffix}"`:i.format==="includes"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 "${i.includes}"`:i.format==="regex"?`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u0440\u044F\u0434\u043E\u043A: \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0442\u0438 \u0448\u0430\u0431\u043B\u043E\u043D\u0443 ${i.pattern}`:`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0447\u0438\u0441\u043B\u043E: \u043F\u043E\u0432\u0438\u043D\u043D\u043E \u0431\u0443\u0442\u0438 \u043A\u0440\u0430\u0442\u043D\u0438\u043C ${o.divisor}`;case"unrecognized_keys":return`\u041D\u0435\u0440\u043E\u0437\u043F\u0456\u0437\u043D\u0430\u043D\u0438\u0439 \u043A\u043B\u044E\u0447${o.keys.length>1?"\u0456":""}: ${b(o.keys,", ")}`;case"invalid_key":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0438\u0439 \u043A\u043B\u044E\u0447 \u0443 ${o.origin}`;case"invalid_union":return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456";case"invalid_element":return`\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0443 ${o.origin}`;default:return"\u041D\u0435\u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u0456 \u0432\u0445\u0456\u0434\u043D\u0456 \u0434\u0430\u043D\u0456"}}};function Gd(){return{localeError:ny()}}var ry=()=>{let e={string:{unit:"\u062D\u0631\u0648\u0641",verb:"\u06C1\u0648\u0646\u0627"},file:{unit:"\u0628\u0627\u0626\u0679\u0633",verb:"\u06C1\u0648\u0646\u0627"},array:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"},set:{unit:"\u0622\u0626\u0679\u0645\u0632",verb:"\u06C1\u0648\u0646\u0627"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"\u0646\u0645\u0628\u0631";case"object":{if(Array.isArray(o))return"\u0622\u0631\u06D2";if(o===null)return"\u0646\u0644";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0627\u0646 \u067E\u0679",email:"\u0627\u06CC \u0645\u06CC\u0644 \u0627\u06CC\u0688\u0631\u06CC\u0633",url:"\u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644",emoji:"\u0627\u06CC\u0645\u0648\u062C\u06CC",uuid:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",uuidv4:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 4",uuidv6:"\u06CC\u0648 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC \u0648\u06CC 6",nanoid:"\u0646\u06CC\u0646\u0648 \u0622\u0626\u06CC \u0688\u06CC",guid:"\u062C\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",cuid2:"\u0633\u06CC \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC 2",ulid:"\u06CC\u0648 \u0627\u06CC\u0644 \u0622\u0626\u06CC \u0688\u06CC",xid:"\u0627\u06CC\u06A9\u0633 \u0622\u0626\u06CC \u0688\u06CC",ksuid:"\u06A9\u06D2 \u0627\u06CC\u0633 \u06CC\u0648 \u0622\u0626\u06CC \u0688\u06CC",datetime:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0688\u06CC\u0679 \u0679\u0627\u0626\u0645",date:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u062A\u0627\u0631\u06CC\u062E",time:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0648\u0642\u062A",duration:"\u0622\u0626\u06CC \u0627\u06CC\u0633 \u0627\u0648 \u0645\u062F\u062A",ipv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0627\u06CC\u0688\u0631\u06CC\u0633",ipv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0627\u06CC\u0688\u0631\u06CC\u0633",cidrv4:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 4 \u0631\u06CC\u0646\u062C",cidrv6:"\u0622\u0626\u06CC \u067E\u06CC \u0648\u06CC 6 \u0631\u06CC\u0646\u062C",base64:"\u0628\u06CC\u0633 64 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",base64url:"\u0628\u06CC\u0633 64 \u06CC\u0648 \u0622\u0631 \u0627\u06CC\u0644 \u0627\u0646 \u06A9\u0648\u0688\u0688 \u0633\u0679\u0631\u0646\u06AF",json_string:"\u062C\u06D2 \u0627\u06CC\u0633 \u0627\u0648 \u0627\u06CC\u0646 \u0633\u0679\u0631\u0646\u06AF",e164:"\u0627\u06CC 164 \u0646\u0645\u0628\u0631",jwt:"\u062C\u06D2 \u0688\u0628\u0644\u06CC\u0648 \u0679\u06CC",template_literal:"\u0627\u0646 \u067E\u0679"};return o=>{switch(o.code){case"invalid_type":return`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${o.expected} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627\u060C ${n(o.input)} \u0645\u0648\u0635\u0648\u0644 \u06C1\u0648\u0627`;case"invalid_value":return o.values.length===1?`\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679: ${P(o.values[0])} \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`:`\u063A\u0644\u0637 \u0622\u067E\u0634\u0646: ${b(o.values,"|")} \u0645\u06CC\u06BA \u0633\u06D2 \u0627\u06CC\u06A9 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u0628\u06C1\u062A \u0628\u0691\u0627: ${o.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u06D2 ${i}${o.maximum.toString()} ${s.unit??"\u0639\u0646\u0627\u0635\u0631"} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0628\u0691\u0627: ${o.origin??"\u0648\u06CC\u0644\u06CC\u0648"} \u06A9\u0627 ${i}${o.maximum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${o.origin} \u06A9\u06D2 ${i}${o.minimum.toString()} ${s.unit} \u06C1\u0648\u0646\u06D2 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u06D2`:`\u0628\u06C1\u062A \u0686\u06BE\u0648\u0679\u0627: ${o.origin} \u06A9\u0627 ${i}${o.minimum.toString()} \u06C1\u0648\u0646\u0627 \u0645\u062A\u0648\u0642\u0639 \u062A\u06BE\u0627`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.prefix}" \u0633\u06D2 \u0634\u0631\u0648\u0639 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="ends_with"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.suffix}" \u067E\u0631 \u062E\u062A\u0645 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="includes"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: "${i.includes}" \u0634\u0627\u0645\u0644 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:i.format==="regex"?`\u063A\u0644\u0637 \u0633\u0679\u0631\u0646\u06AF: \u067E\u06CC\u0679\u0631\u0646 ${i.pattern} \u0633\u06D2 \u0645\u06CC\u0686 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`:`\u063A\u0644\u0637 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u063A\u0644\u0637 \u0646\u0645\u0628\u0631: ${o.divisor} \u06A9\u0627 \u0645\u0636\u0627\u0639\u0641 \u06C1\u0648\u0646\u0627 \u0686\u0627\u06C1\u06CC\u06D2`;case"unrecognized_keys":return`\u063A\u06CC\u0631 \u062A\u0633\u0644\u06CC\u0645 \u0634\u062F\u06C1 \u06A9\u06CC${o.keys.length>1?"\u0632":""}: ${b(o.keys,"\u060C ")}`;case"invalid_key":return`${o.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u06A9\u06CC`;case"invalid_union":return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679";case"invalid_element":return`${o.origin} \u0645\u06CC\u06BA \u063A\u0644\u0637 \u0648\u06CC\u0644\u06CC\u0648`;default:return"\u063A\u0644\u0637 \u0627\u0646 \u067E\u0679"}}};function Wd(){return{localeError:ry()}}var iy=()=>{let e={string:{unit:"k\xFD t\u1EF1",verb:"c\xF3"},file:{unit:"byte",verb:"c\xF3"},array:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"},set:{unit:"ph\u1EA7n t\u1EED",verb:"c\xF3"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"s\u1ED1";case"object":{if(Array.isArray(o))return"m\u1EA3ng";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u0111\u1EA7u v\xE0o",email:"\u0111\u1ECBa ch\u1EC9 email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ng\xE0y gi\u1EDD ISO",date:"ng\xE0y ISO",time:"gi\u1EDD ISO",duration:"kho\u1EA3ng th\u1EDDi gian ISO",ipv4:"\u0111\u1ECBa ch\u1EC9 IPv4",ipv6:"\u0111\u1ECBa ch\u1EC9 IPv6",cidrv4:"d\u1EA3i IPv4",cidrv6:"d\u1EA3i IPv6",base64:"chu\u1ED7i m\xE3 h\xF3a base64",base64url:"chu\u1ED7i m\xE3 h\xF3a base64url",json_string:"chu\u1ED7i JSON",e164:"s\u1ED1 E.164",jwt:"JWT",template_literal:"\u0111\u1EA7u v\xE0o"};return o=>{switch(o.code){case"invalid_type":return`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${o.expected}, nh\u1EADn \u0111\u01B0\u1EE3c ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i ${P(o.values[0])}`:`T\xF9y ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7: mong \u0111\u1EE3i m\u1ED9t trong c\xE1c gi\xE1 tr\u1ECB ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${o.origin??"gi\xE1 tr\u1ECB"} ${s.verb} ${i}${o.maximum.toString()} ${s.unit??"ph\u1EA7n t\u1EED"}`:`Qu\xE1 l\u1EDBn: mong \u0111\u1EE3i ${o.origin??"gi\xE1 tr\u1ECB"} ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${o.origin} ${s.verb} ${i}${o.minimum.toString()} ${s.unit}`:`Qu\xE1 nh\u1ECF: mong \u0111\u1EE3i ${o.origin} ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i b\u1EAFt \u0111\u1EA7u b\u1EB1ng "${i.prefix}"`:i.format==="ends_with"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i k\u1EBFt th\xFAc b\u1EB1ng "${i.suffix}"`:i.format==="includes"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i bao g\u1ED3m "${i.includes}"`:i.format==="regex"?`Chu\u1ED7i kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i kh\u1EDBp v\u1EDBi m\u1EABu ${i.pattern}`:`${r[i.format]??o.format} kh\xF4ng h\u1EE3p l\u1EC7`}case"not_multiple_of":return`S\u1ED1 kh\xF4ng h\u1EE3p l\u1EC7: ph\u1EA3i l\xE0 b\u1ED9i s\u1ED1 c\u1EE7a ${o.divisor}`;case"unrecognized_keys":return`Kh\xF3a kh\xF4ng \u0111\u01B0\u1EE3c nh\u1EADn d\u1EA1ng: ${b(o.keys,", ")}`;case"invalid_key":return`Kh\xF3a kh\xF4ng h\u1EE3p l\u1EC7 trong ${o.origin}`;case"invalid_union":return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7";case"invalid_element":return`Gi\xE1 tr\u1ECB kh\xF4ng h\u1EE3p l\u1EC7 trong ${o.origin}`;default:return"\u0110\u1EA7u v\xE0o kh\xF4ng h\u1EE3p l\u1EC7"}}};function Hd(){return{localeError:iy()}}var sy=()=>{let e={string:{unit:"\u5B57\u7B26",verb:"\u5305\u542B"},file:{unit:"\u5B57\u8282",verb:"\u5305\u542B"},array:{unit:"\u9879",verb:"\u5305\u542B"},set:{unit:"\u9879",verb:"\u5305\u542B"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"\u975E\u6570\u5B57(NaN)":"\u6570\u5B57";case"object":{if(Array.isArray(o))return"\u6570\u7EC4";if(o===null)return"\u7A7A\u503C(null)";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u8F93\u5165",email:"\u7535\u5B50\u90AE\u4EF6",url:"URL",emoji:"\u8868\u60C5\u7B26\u53F7",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO\u65E5\u671F\u65F6\u95F4",date:"ISO\u65E5\u671F",time:"ISO\u65F6\u95F4",duration:"ISO\u65F6\u957F",ipv4:"IPv4\u5730\u5740",ipv6:"IPv6\u5730\u5740",cidrv4:"IPv4\u7F51\u6BB5",cidrv6:"IPv6\u7F51\u6BB5",base64:"base64\u7F16\u7801\u5B57\u7B26\u4E32",base64url:"base64url\u7F16\u7801\u5B57\u7B26\u4E32",json_string:"JSON\u5B57\u7B26\u4E32",e164:"E.164\u53F7\u7801",jwt:"JWT",template_literal:"\u8F93\u5165"};return o=>{switch(o.code){case"invalid_type":return`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${o.expected}\uFF0C\u5B9E\u9645\u63A5\u6536 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u65E0\u6548\u8F93\u5165\uFF1A\u671F\u671B ${P(o.values[0])}`:`\u65E0\u6548\u9009\u9879\uFF1A\u671F\u671B\u4EE5\u4E0B\u4E4B\u4E00 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${o.origin??"\u503C"} ${i}${o.maximum.toString()} ${s.unit??"\u4E2A\u5143\u7D20"}`:`\u6570\u503C\u8FC7\u5927\uFF1A\u671F\u671B ${o.origin??"\u503C"} ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${o.origin} ${i}${o.minimum.toString()} ${s.unit}`:`\u6570\u503C\u8FC7\u5C0F\uFF1A\u671F\u671B ${o.origin} ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.prefix}" \u5F00\u5934`:i.format==="ends_with"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u4EE5 "${i.suffix}" \u7ED3\u5C3E`:i.format==="includes"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u65E0\u6548\u5B57\u7B26\u4E32\uFF1A\u5FC5\u987B\u6EE1\u8DB3\u6B63\u5219\u8868\u8FBE\u5F0F ${i.pattern}`:`\u65E0\u6548${r[i.format]??o.format}`}case"not_multiple_of":return`\u65E0\u6548\u6570\u5B57\uFF1A\u5FC5\u987B\u662F ${o.divisor} \u7684\u500D\u6570`;case"unrecognized_keys":return`\u51FA\u73B0\u672A\u77E5\u7684\u952E(key): ${b(o.keys,", ")}`;case"invalid_key":return`${o.origin} \u4E2D\u7684\u952E(key)\u65E0\u6548`;case"invalid_union":return"\u65E0\u6548\u8F93\u5165";case"invalid_element":return`${o.origin} \u4E2D\u5305\u542B\u65E0\u6548\u503C(value)`;default:return"\u65E0\u6548\u8F93\u5165"}}};function qd(){return{localeError:sy()}}var ay=()=>{let e={string:{unit:"\u5B57\u5143",verb:"\u64C1\u6709"},file:{unit:"\u4F4D\u5143\u7D44",verb:"\u64C1\u6709"},array:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"},set:{unit:"\u9805\u76EE",verb:"\u64C1\u6709"}};function t(o){return e[o]??null}let n=o=>{let i=typeof o;switch(i){case"number":return Number.isNaN(o)?"NaN":"number";case"object":{if(Array.isArray(o))return"array";if(o===null)return"null";if(Object.getPrototypeOf(o)!==Object.prototype&&o.constructor)return o.constructor.name}}return i},r={regex:"\u8F38\u5165",email:"\u90F5\u4EF6\u5730\u5740",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO \u65E5\u671F\u6642\u9593",date:"ISO \u65E5\u671F",time:"ISO \u6642\u9593",duration:"ISO \u671F\u9593",ipv4:"IPv4 \u4F4D\u5740",ipv6:"IPv6 \u4F4D\u5740",cidrv4:"IPv4 \u7BC4\u570D",cidrv6:"IPv6 \u7BC4\u570D",base64:"base64 \u7DE8\u78BC\u5B57\u4E32",base64url:"base64url \u7DE8\u78BC\u5B57\u4E32",json_string:"JSON \u5B57\u4E32",e164:"E.164 \u6578\u503C",jwt:"JWT",template_literal:"\u8F38\u5165"};return o=>{switch(o.code){case"invalid_type":return`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${o.expected}\uFF0C\u4F46\u6536\u5230 ${n(o.input)}`;case"invalid_value":return o.values.length===1?`\u7121\u6548\u7684\u8F38\u5165\u503C\uFF1A\u9810\u671F\u70BA ${P(o.values[0])}`:`\u7121\u6548\u7684\u9078\u9805\uFF1A\u9810\u671F\u70BA\u4EE5\u4E0B\u5176\u4E2D\u4E4B\u4E00 ${b(o.values,"|")}`;case"too_big":{let i=o.inclusive?"<=":"<",s=t(o.origin);return s?`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${o.origin??"\u503C"} \u61C9\u70BA ${i}${o.maximum.toString()} ${s.unit??"\u500B\u5143\u7D20"}`:`\u6578\u503C\u904E\u5927\uFF1A\u9810\u671F ${o.origin??"\u503C"} \u61C9\u70BA ${i}${o.maximum.toString()}`}case"too_small":{let i=o.inclusive?">=":">",s=t(o.origin);return s?`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${o.origin} \u61C9\u70BA ${i}${o.minimum.toString()} ${s.unit}`:`\u6578\u503C\u904E\u5C0F\uFF1A\u9810\u671F ${o.origin} \u61C9\u70BA ${i}${o.minimum.toString()}`}case"invalid_format":{let i=o;return i.format==="starts_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.prefix}" \u958B\u982D`:i.format==="ends_with"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u4EE5 "${i.suffix}" \u7D50\u5C3E`:i.format==="includes"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u5305\u542B "${i.includes}"`:i.format==="regex"?`\u7121\u6548\u7684\u5B57\u4E32\uFF1A\u5FC5\u9808\u7B26\u5408\u683C\u5F0F ${i.pattern}`:`\u7121\u6548\u7684 ${r[i.format]??o.format}`}case"not_multiple_of":return`\u7121\u6548\u7684\u6578\u5B57\uFF1A\u5FC5\u9808\u70BA ${o.divisor} \u7684\u500D\u6578`;case"unrecognized_keys":return`\u7121\u6CD5\u8B58\u5225\u7684\u9375\u503C${o.keys.length>1?"\u5011":""}\uFF1A${b(o.keys,"\u3001")}`;case"invalid_key":return`${o.origin} \u4E2D\u6709\u7121\u6548\u7684\u9375\u503C`;case"invalid_union":return"\u7121\u6548\u7684\u8F38\u5165\u503C";case"invalid_element":return`${o.origin} \u4E2D\u6709\u7121\u6548\u7684\u503C`;default:return"\u7121\u6548\u7684\u8F38\u5165\u503C"}}};function Jd(){return{localeError:ay()}}var Ua=Symbol("ZodOutput"),Fa=Symbol("ZodInput"),Vt=class{constructor(){this._map=new Map,this._idmap=new Map}add(t,...n){let r=n[0];if(this._map.set(t,r),r&&typeof r=="object"&&"id"in r){if(this._idmap.has(r.id))throw new Error(`ID ${r.id} already exists in the registry`);this._idmap.set(r.id,t)}return this}clear(){return this._map=new Map,this._idmap=new Map,this}remove(t){let n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){let n=t._zod.parent;if(n){let r={...this.get(n)??{}};return delete r.id,{...r,...this._map.get(t)}}return this._map.get(t)}has(t){return this._map.has(t)}};function qn(){return new Vt}var Le=qn();function Za(e,t){return new e({type:"string",..._(t)})}function Ba(e,t){return new e({type:"string",coerce:!0,..._(t)})}function Jn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Ro(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function Kn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function Xn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function Yn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function Qn(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function er(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function tr(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function or(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function nr(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function rr(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function ir(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function sr(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function ar(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function cr(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function lr(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function ur(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function dr(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function mr(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function pr(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function gr(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function fr(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}var Va={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function Ga(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function Wa(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Ha(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function qa(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Ja(e,t){return new e({type:"number",checks:[],..._(t)})}function Ka(e,t){return new e({type:"number",coerce:!0,checks:[],..._(t)})}function Xa(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ya(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float32",..._(t)})}function Qa(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"float64",..._(t)})}function ec(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"int32",..._(t)})}function tc(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"uint32",..._(t)})}function oc(e,t){return new e({type:"boolean",..._(t)})}function nc(e,t){return new e({type:"boolean",coerce:!0,..._(t)})}function rc(e,t){return new e({type:"bigint",..._(t)})}function ic(e,t){return new e({type:"bigint",coerce:!0,..._(t)})}function sc(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"int64",..._(t)})}function ac(e,t){return new e({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",..._(t)})}function cc(e,t){return new e({type:"symbol",..._(t)})}function lc(e,t){return new e({type:"undefined",..._(t)})}function uc(e,t){return new e({type:"null",..._(t)})}function dc(e){return new e({type:"any"})}function Gt(e){return new e({type:"unknown"})}function mc(e,t){return new e({type:"never",..._(t)})}function pc(e,t){return new e({type:"void",..._(t)})}function gc(e,t){return new e({type:"date",..._(t)})}function fc(e,t){return new e({type:"date",coerce:!0,..._(t)})}function hc(e,t){return new e({type:"nan",..._(t)})}function Je(e,t){return new Un({check:"less_than",..._(t),value:e,inclusive:!1})}function Me(e,t){return new Un({check:"less_than",..._(t),value:e,inclusive:!0})}function Ke(e,t){return new Fn({check:"greater_than",..._(t),value:e,inclusive:!1})}function Ce(e,t){return new Fn({check:"greater_than",..._(t),value:e,inclusive:!0})}function yc(e){return Ke(0,e)}function vc(e){return Je(0,e)}function $c(e){return Me(0,e)}function bc(e){return Ce(0,e)}function xt(e,t){return new vs({check:"multiple_of",..._(t),value:e})}function Wt(e,t){return new ks({check:"max_size",..._(t),maximum:e})}function _t(e,t){return new ws({check:"min_size",..._(t),minimum:e})}function Uo(e,t){return new Cs({check:"size_equals",..._(t),size:e})}function Ht(e,t){return new Ss({check:"max_length",..._(t),maximum:e})}function ct(e,t){return new xs({check:"min_length",..._(t),minimum:e})}function qt(e,t){return new _s({check:"length_equals",..._(t),length:e})}function Fo(e,t){return new Ps({check:"string_format",format:"regex",..._(t),pattern:e})}function Zo(e){return new Is({check:"string_format",format:"lowercase",..._(e)})}function Bo(e){return new Ts({check:"string_format",format:"uppercase",..._(e)})}function Vo(e,t){return new Os({check:"string_format",format:"includes",..._(t),includes:e})}function Go(e,t){return new Es({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Wo(e,t){return new As({check:"string_format",format:"ends_with",..._(t),suffix:e})}function kc(e,t,n){return new Ms({check:"property",property:e,schema:t,..._(n)})}function Ho(e,t){return new Ns({check:"mime_type",mime:e,..._(t)})}function Xe(e){return new zs({check:"overwrite",tx:e})}function qo(e){return Xe(t=>t.normalize(e))}function Jo(){return Xe(e=>e.trim())}function Ko(){return Xe(e=>e.toLowerCase())}function Xo(){return Xe(e=>e.toUpperCase())}function Yo(e,t,n){return new e({type:"array",element:t,..._(n)})}function cy(e,t,n){return new e({type:"union",options:t,..._(n)})}function ly(e,t,n,r){return new e({type:"union",options:n,discriminator:t,..._(r)})}function uy(e,t,n){return new e({type:"intersection",left:t,right:n})}function wc(e,t,n,r){let o=n instanceof L,i=o?r:n,s=o?n:null;return new e({type:"tuple",items:t,rest:s,..._(i)})}function dy(e,t,n,r){return new e({type:"record",keyType:t,valueType:n,..._(r)})}function my(e,t,n,r){return new e({type:"map",keyType:t,valueType:n,..._(r)})}function py(e,t,n){return new e({type:"set",valueType:t,..._(n)})}function gy(e,t,n){let r=Array.isArray(t)?Object.fromEntries(t.map(o=>[o,o])):t;return new e({type:"enum",entries:r,..._(n)})}function fy(e,t,n){return new e({type:"enum",entries:t,..._(n)})}function hy(e,t,n){return new e({type:"literal",values:Array.isArray(t)?t:[t],..._(n)})}function Cc(e,t){return new e({type:"file",..._(t)})}function yy(e,t){return new e({type:"transform",transform:t})}function vy(e,t){return new e({type:"optional",innerType:t})}function $y(e,t){return new e({type:"nullable",innerType:t})}function by(e,t,n){return new e({type:"default",innerType:t,get defaultValue(){return typeof n=="function"?n():n}})}function ky(e,t,n){return new e({type:"nonoptional",innerType:t,..._(n)})}function wy(e,t){return new e({type:"success",innerType:t})}function Cy(e,t,n){return new e({type:"catch",innerType:t,catchValue:typeof n=="function"?n:()=>n})}function Sy(e,t,n){return new e({type:"pipe",in:t,out:n})}function xy(e,t){return new e({type:"readonly",innerType:t})}function _y(e,t,n){return new e({type:"template_literal",parts:t,..._(n)})}function Py(e,t){return new e({type:"lazy",getter:t})}function Iy(e,t){return new e({type:"promise",innerType:t})}function Sc(e,t,n){let r=_(n);return r.abort??(r.abort=!0),new e({type:"custom",check:"custom",fn:t,...r})}function xc(e,t,n){return new e({type:"custom",check:"custom",fn:t,..._(n)})}function _c(e,t){let n=_(t),r=n.truthy??["true","1","yes","on","y","enabled"],o=n.falsy??["false","0","no","off","n","disabled"];n.case!=="sensitive"&&(r=r.map(g=>typeof g=="string"?g.toLowerCase():g),o=o.map(g=>typeof g=="string"?g.toLowerCase():g));let i=new Set(r),s=new Set(o),c=e.Pipe??Do,u=e.Boolean??No,m=e.String??Ct,d=e.Transform??jo,p=new d({type:"transform",transform:(g,C)=>{let k=g;return n.case!=="sensitive"&&(k=k.toLowerCase()),i.has(k)?!0:s.has(k)?!1:(C.issues.push({code:"invalid_value",expected:"stringbool",values:[...i,...s],input:C.value,inst:p}),{})},error:n.error}),h=new c({type:"pipe",in:new m({type:"string",error:n.error}),out:p,error:n.error});return new c({type:"pipe",in:h,out:new u({type:"boolean",error:n.error}),error:n.error})}function Pc(e,t,n,r={}){let o=_(r),i={..._(r),check:"string_format",type:"string",format:t,fn:typeof n=="function"?n:c=>n.test(c),...o};return n instanceof RegExp&&(i.pattern=n),new e(i)}var hr=class{constructor(t){this._def=t,this.def=t}implement(t){if(typeof t!="function")throw new Error("implement() must be called with a function");let n=((...r)=>{let o=this._def.input?Nn(this._def.input,r,void 0,{callee:n}):r;if(!Array.isArray(o))throw new Error("Invalid arguments schema: not an array or tuple schema.");let i=t(...o);return this._def.output?Nn(this._def.output,i,void 0,{callee:n}):i});return n}implementAsync(t){if(typeof t!="function")throw new Error("implement() must be called with a function");let n=(async(...r)=>{let o=this._def.input?await jn(this._def.input,r,void 0,{callee:n}):r;if(!Array.isArray(o))throw new Error("Invalid arguments schema: not an array or tuple schema.");let i=await t(...o);return this._def.output?jn(this._def.output,i,void 0,{callee:n}):i});return n}input(...t){let n=this.constructor;return Array.isArray(t[0])?new n({type:"function",input:new St({type:"tuple",items:t[0],rest:t[1]}),output:this._def.output}):new n({type:"function",input:t[0],output:this._def.output})}output(t){let n=this.constructor;return new n({type:"function",input:this._def.input,output:t})}};function Ic(e){return new hr({type:"function",input:Array.isArray(e?.input)?wc(St,e?.input):e?.input??Yo(zo,Gt(Bt)),output:e?.output??Gt(Bt)})}var Qo=class{constructor(t){this.counter=0,this.metadataRegistry=t?.metadata??Le,this.target=t?.target??"draft-2020-12",this.unrepresentable=t?.unrepresentable??"throw",this.override=t?.override??(()=>{}),this.io=t?.io??"output",this.seen=new Map}process(t,n={path:[],schemaPath:[]}){var r;let o=t._zod.def,i={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},s=this.seen.get(t);if(s)return s.count++,n.schemaPath.includes(t)&&(s.cycle=n.path),s.schema;let c={schema:{},count:1,cycle:void 0,path:n.path};this.seen.set(t,c);let u=t._zod.toJSONSchema?.();if(u)c.schema=u;else{let p={...n,schemaPath:[...n.schemaPath,t],path:n.path},h=t._zod.parent;if(h)c.ref=h,this.process(h,p),this.seen.get(h).isParent=!0;else{let v=c.schema;switch(o.type){case"string":{let g=v;g.type="string";let{minimum:C,maximum:k,format:O,patterns:x,contentEncoding:S}=t._zod.bag;if(typeof C=="number"&&(g.minLength=C),typeof k=="number"&&(g.maxLength=k),O&&(g.format=i[O]??O,g.format===""&&delete g.format),S&&(g.contentEncoding=S),x&&x.size>0){let E=[...x];E.length===1?g.pattern=E[0].source:E.length>1&&(c.schema.allOf=[...E.map(N=>({...this.target==="draft-7"?{type:"string"}:{},pattern:N.source}))])}break}case"number":{let g=v,{minimum:C,maximum:k,format:O,multipleOf:x,exclusiveMaximum:S,exclusiveMinimum:E}=t._zod.bag;typeof O=="string"&&O.includes("int")?g.type="integer":g.type="number",typeof E=="number"&&(g.exclusiveMinimum=E),typeof C=="number"&&(g.minimum=C,typeof E=="number"&&(E>=C?delete g.minimum:delete g.exclusiveMinimum)),typeof S=="number"&&(g.exclusiveMaximum=S),typeof k=="number"&&(g.maximum=k,typeof S=="number"&&(S<=k?delete g.maximum:delete g.exclusiveMaximum)),typeof x=="number"&&(g.multipleOf=x);break}case"boolean":{let g=v;g.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema");break}case"null":{v.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema");break}case"never":{v.not={};break}case"date":{if(this.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema");break}case"array":{let g=v,{minimum:C,maximum:k}=t._zod.bag;typeof C=="number"&&(g.minItems=C),typeof k=="number"&&(g.maxItems=k),g.type="array",g.items=this.process(o.element,{...p,path:[...p.path,"items"]});break}case"object":{let g=v;g.type="object",g.properties={};let C=o.shape;for(let x in C)g.properties[x]=this.process(C[x],{...p,path:[...p.path,"properties",x]});let k=new Set(Object.keys(C)),O=new Set([...k].filter(x=>{let S=o.shape[x]._zod;return this.io==="input"?S.optin===void 0:S.optout===void 0}));O.size>0&&(g.required=Array.from(O)),o.catchall?._zod.def.type==="never"?g.additionalProperties=!1:o.catchall?o.catchall&&(g.additionalProperties=this.process(o.catchall,{...p,path:[...p.path,"additionalProperties"]})):this.io==="output"&&(g.additionalProperties=!1);break}case"union":{let g=v;g.anyOf=o.options.map((C,k)=>this.process(C,{...p,path:[...p.path,"anyOf",k]}));break}case"intersection":{let g=v,C=this.process(o.left,{...p,path:[...p.path,"allOf",0]}),k=this.process(o.right,{...p,path:[...p.path,"allOf",1]}),O=S=>"allOf"in S&&Object.keys(S).length===1,x=[...O(C)?C.allOf:[C],...O(k)?k.allOf:[k]];g.allOf=x;break}case"tuple":{let g=v;g.type="array";let C=o.items.map((x,S)=>this.process(x,{...p,path:[...p.path,"prefixItems",S]}));if(this.target==="draft-2020-12"?g.prefixItems=C:g.items=C,o.rest){let x=this.process(o.rest,{...p,path:[...p.path,"items"]});this.target==="draft-2020-12"?g.items=x:g.additionalItems=x}o.rest&&(g.items=this.process(o.rest,{...p,path:[...p.path,"items"]}));let{minimum:k,maximum:O}=t._zod.bag;typeof k=="number"&&(g.minItems=k),typeof O=="number"&&(g.maxItems=O);break}case"record":{let g=v;g.type="object",g.propertyNames=this.process(o.keyType,{...p,path:[...p.path,"propertyNames"]}),g.additionalProperties=this.process(o.valueType,{...p,path:[...p.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema");break}case"enum":{let g=v,C=So(o.entries);C.every(k=>typeof k=="number")&&(g.type="number"),C.every(k=>typeof k=="string")&&(g.type="string"),g.enum=C;break}case"literal":{let g=v,C=[];for(let k of o.values)if(k===void 0){if(this.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof k=="bigint"){if(this.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");C.push(Number(k))}else C.push(k);if(C.length!==0)if(C.length===1){let k=C[0];g.type=k===null?"null":typeof k,g.const=k}else C.every(k=>typeof k=="number")&&(g.type="number"),C.every(k=>typeof k=="string")&&(g.type="string"),C.every(k=>typeof k=="boolean")&&(g.type="string"),C.every(k=>k===null)&&(g.type="null"),g.enum=C;break}case"file":{let g=v,C={type:"string",format:"binary",contentEncoding:"binary"},{minimum:k,maximum:O,mime:x}=t._zod.bag;k!==void 0&&(C.minLength=k),O!==void 0&&(C.maxLength=O),x?x.length===1?(C.contentMediaType=x[0],Object.assign(g,C)):g.anyOf=x.map(S=>({...C,contentMediaType:S})):Object.assign(g,C);break}case"transform":{if(this.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let g=this.process(o.innerType,p);v.anyOf=[g,{type:"null"}];break}case"nonoptional":{this.process(o.innerType,p),c.ref=o.innerType;break}case"success":{let g=v;g.type="boolean";break}case"default":{this.process(o.innerType,p),c.ref=o.innerType,v.default=JSON.parse(JSON.stringify(o.defaultValue));break}case"prefault":{this.process(o.innerType,p),c.ref=o.innerType,this.io==="input"&&(v._prefault=JSON.parse(JSON.stringify(o.defaultValue)));break}case"catch":{this.process(o.innerType,p),c.ref=o.innerType;let g;try{g=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}v.default=g;break}case"nan":{if(this.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let g=v,C=t._zod.pattern;if(!C)throw new Error("Pattern not found in template literal");g.type="string",g.pattern=C.source;break}case"pipe":{let g=this.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;this.process(g,p),c.ref=g;break}case"readonly":{this.process(o.innerType,p),c.ref=o.innerType,v.readOnly=!0;break}case"promise":{this.process(o.innerType,p),c.ref=o.innerType;break}case"optional":{this.process(o.innerType,p),c.ref=o.innerType;break}case"lazy":{let g=t._zod.innerType;this.process(g,p),c.ref=g;break}case"custom":{if(this.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema");break}default:}}}let m=this.metadataRegistry.get(t);return m&&Object.assign(c.schema,m),this.io==="input"&&de(t)&&(delete c.schema.examples,delete c.schema.default),this.io==="input"&&c.schema._prefault&&((r=c.schema).default??(r.default=c.schema._prefault)),delete c.schema._prefault,this.seen.get(t).schema}emit(t,n){let r={cycles:n?.cycles??"ref",reused:n?.reused??"inline",external:n?.external??void 0},o=this.seen.get(t);if(!o)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=d=>{let p=this.target==="draft-2020-12"?"$defs":"definitions";if(r.external){let C=r.external.registry.get(d[0])?.id,k=r.external.uri??(x=>x);if(C)return{ref:k(C)};let O=d[1].defId??d[1].schema.id??`schema${this.counter++}`;return d[1].defId=O,{defId:O,ref:`${k("__shared")}#/${p}/${O}`}}if(d[1]===o)return{ref:"#"};let v=`#/${p}/`,g=d[1].schema.id??`__schema${this.counter++}`;return{defId:g,ref:v+g}},s=d=>{if(d[1].schema.$ref)return;let p=d[1],{ref:h,defId:v}=i(d);p.def={...p.schema},v&&(p.defId=v);let g=p.schema;for(let C in g)delete g[C];g.$ref=h};if(r.cycles==="throw")for(let d of this.seen.entries()){let p=d[1];if(p.cycle)throw new Error(`Cycle detected: #/${p.cycle?.join("/")}/<root>
|
|
35
|
-
|
|
36
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let d of this.seen.entries()){let p=d[1];if(t===d[0]){s(d);continue}if(r.external){let v=r.external.registry.get(d[0])?.id;if(t!==d[0]&&v){s(d);continue}}if(this.metadataRegistry.get(d[0])?.id){s(d);continue}if(p.cycle){s(d);continue}if(p.count>1&&r.reused==="ref"){s(d);continue}}let c=(d,p)=>{let h=this.seen.get(d),v=h.def??h.schema,g={...v};if(h.ref===null)return;let C=h.ref;if(h.ref=null,C){c(C,p);let k=this.seen.get(C).schema;k.$ref&&p.target==="draft-7"?(v.allOf=v.allOf??[],v.allOf.push(k)):(Object.assign(v,k),Object.assign(v,g))}h.isParent||this.override({zodSchema:d,jsonSchema:v,path:h.path??[]})};for(let d of[...this.seen.entries()].reverse())c(d[0],{target:this.target});let u={};if(this.target==="draft-2020-12"?u.$schema="https://json-schema.org/draft/2020-12/schema":this.target==="draft-7"?u.$schema="http://json-schema.org/draft-07/schema#":console.warn(`Invalid target: ${this.target}`),r.external?.uri){let d=r.external.registry.get(t)?.id;if(!d)throw new Error("Schema is missing an `id` property");u.$id=r.external.uri(d)}Object.assign(u,o.def);let m=r.external?.defs??{};for(let d of this.seen.entries()){let p=d[1];p.def&&p.defId&&(m[p.defId]=p.def)}r.external||Object.keys(m).length>0&&(this.target==="draft-2020-12"?u.$defs=m:u.definitions=m);try{return JSON.parse(JSON.stringify(u))}catch{throw new Error("Error converting schema to JSON.")}}};function Tc(e,t){if(e instanceof Vt){let r=new Qo(t),o={};for(let c of e._idmap.entries()){let[u,m]=c;r.process(m)}let i={},s={registry:e,uri:t?.uri,defs:o};for(let c of e._idmap.entries()){let[u,m]=c;i[u]=r.emit(m,{...t,external:s})}if(Object.keys(o).length>0){let c=r.target==="draft-2020-12"?"$defs":"definitions";i.__shared={[c]:o}}return{schemas:i}}let n=new Qo(t);return n.process(e),n.emit(e,t)}function de(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let o=e._zod.def;switch(o.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return de(o.element,n);case"object":{for(let i in o.shape)if(de(o.shape[i],n))return!0;return!1}case"union":{for(let i of o.options)if(de(i,n))return!0;return!1}case"intersection":return de(o.left,n)||de(o.right,n);case"tuple":{for(let i of o.items)if(de(i,n))return!0;return!!(o.rest&&de(o.rest,n))}case"record":return de(o.keyType,n)||de(o.valueType,n);case"map":return de(o.keyType,n)||de(o.valueType,n);case"set":return de(o.valueType,n);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return de(o.innerType,n);case"lazy":return de(o.getter(),n);case"default":return de(o.innerType,n);case"prefault":return de(o.innerType,n);case"custom":return!1;case"transform":return!0;case"pipe":return de(o.in,n)||de(o.out,n);case"success":return!1;case"catch":return!1;default:}throw new Error(`Unknown schema type: ${o.type}`)}var Kd={};var kr={};ht(kr,{ZodISODate:()=>vr,ZodISODateTime:()=>yr,ZodISODuration:()=>br,ZodISOTime:()=>$r,date:()=>Ec,datetime:()=>Oc,duration:()=>Mc,time:()=>Ac});var yr=y("ZodISODateTime",(e,t)=>{Js.init(e,t),te.init(e,t)});function Oc(e){return Ga(yr,e)}var vr=y("ZodISODate",(e,t)=>{Ks.init(e,t),te.init(e,t)});function Ec(e){return Wa(vr,e)}var $r=y("ZodISOTime",(e,t)=>{Xs.init(e,t),te.init(e,t)});function Ac(e){return Ha($r,e)}var br=y("ZodISODuration",(e,t)=>{Ys.init(e,t),te.init(e,t)});function Mc(e){return qa(br,e)}var Yd=(e,t)=>{Oo.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Ao(e,n)},flatten:{value:n=>Eo(e,n)},addIssue:{value:n=>e.issues.push(n)},addIssues:{value:n=>e.issues.push(...n)},isEmpty:{get(){return e.issues.length===0}}})},Oy=y("ZodError",Yd),Jt=y("ZodError",Yd,{Parent:Error});var Nc=Mn(Jt),zc=zn(Jt),jc=Dn(Jt),Dc=Ln(Jt);var Z=y("ZodType",(e,t)=>(L.init(e,t),e.def=t,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone({...t,checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),e.clone=(n,r)=>Pe(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>Nc(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>jc(e,n,r),e.parseAsync=async(n,r)=>zc(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>Dc(e,n,r),e.spa=e.safeParseAsync,e.refine=(n,r)=>e.check(Rm(n,r)),e.superRefine=n=>e.check(Um(n)),e.overwrite=n=>e.check(Xe(n)),e.optional=()=>Sr(e),e.nullable=()=>xr(e),e.nullish=()=>Sr(xr(e)),e.nonoptional=n=>Pm(e,n),e.array=()=>il(e),e.or=n=>Or([e,n]),e.and=n=>pm(e,n),e.transform=n=>_r(e,ll(n)),e.default=n=>Sm(e,n),e.prefault=n=>_m(e,n),e.catch=n=>Om(e,n),e.pipe=n=>_r(e,n),e.readonly=()=>Mm(e),e.describe=n=>{let r=e.clone();return Le.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return Le.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return Le.get(e);let r=e.clone();return Le.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),Uc=y("_ZodString",(e,t)=>{Ct.init(e,t),Z.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Fo(...r)),e.includes=(...r)=>e.check(Vo(...r)),e.startsWith=(...r)=>e.check(Go(...r)),e.endsWith=(...r)=>e.check(Wo(...r)),e.min=(...r)=>e.check(ct(...r)),e.max=(...r)=>e.check(Ht(...r)),e.length=(...r)=>e.check(qt(...r)),e.nonempty=(...r)=>e.check(ct(1,...r)),e.lowercase=r=>e.check(Zo(r)),e.uppercase=r=>e.check(Bo(r)),e.trim=()=>e.check(Jo()),e.normalize=(...r)=>e.check(qo(...r)),e.toLowerCase=()=>e.check(Ko()),e.toUpperCase=()=>e.check(Xo())}),tn=y("ZodString",(e,t)=>{Ct.init(e,t),Uc.init(e,t),e.email=n=>e.check(Jn(Fc,n)),e.url=n=>e.check(er(Zc,n)),e.jwt=n=>e.check(fr(nl,n)),e.emoji=n=>e.check(tr(Bc,n)),e.guid=n=>e.check(Ro(wr,n)),e.uuid=n=>e.check(Kn(Qe,n)),e.uuidv4=n=>e.check(Xn(Qe,n)),e.uuidv6=n=>e.check(Yn(Qe,n)),e.uuidv7=n=>e.check(Qn(Qe,n)),e.nanoid=n=>e.check(or(Vc,n)),e.guid=n=>e.check(Ro(wr,n)),e.cuid=n=>e.check(nr(Gc,n)),e.cuid2=n=>e.check(rr(Wc,n)),e.ulid=n=>e.check(ir(Hc,n)),e.base64=n=>e.check(mr(el,n)),e.base64url=n=>e.check(pr(tl,n)),e.xid=n=>e.check(sr(qc,n)),e.ksuid=n=>e.check(ar(Jc,n)),e.ipv4=n=>e.check(cr(Kc,n)),e.ipv6=n=>e.check(lr(Xc,n)),e.cidrv4=n=>e.check(ur(Yc,n)),e.cidrv6=n=>e.check(dr(Qc,n)),e.e164=n=>e.check(gr(ol,n)),e.datetime=n=>e.check(Oc(n)),e.date=n=>e.check(Ec(n)),e.time=n=>e.check(Ac(n)),e.duration=n=>e.check(Mc(n))});function Lc(e){return Za(tn,e)}var te=y("ZodStringFormat",(e,t)=>{Q.init(e,t),Uc.init(e,t)}),Fc=y("ZodEmail",(e,t)=>{Us.init(e,t),te.init(e,t)});function Ay(e){return Jn(Fc,e)}var wr=y("ZodGUID",(e,t)=>{Ls.init(e,t),te.init(e,t)});function My(e){return Ro(wr,e)}var Qe=y("ZodUUID",(e,t)=>{Rs.init(e,t),te.init(e,t)});function Ny(e){return Kn(Qe,e)}function zy(e){return Xn(Qe,e)}function jy(e){return Yn(Qe,e)}function Dy(e){return Qn(Qe,e)}var Zc=y("ZodURL",(e,t)=>{Fs.init(e,t),te.init(e,t)});function Ly(e){return er(Zc,e)}var Bc=y("ZodEmoji",(e,t)=>{Zs.init(e,t),te.init(e,t)});function Ry(e){return tr(Bc,e)}var Vc=y("ZodNanoID",(e,t)=>{Bs.init(e,t),te.init(e,t)});function Uy(e){return or(Vc,e)}var Gc=y("ZodCUID",(e,t)=>{Vs.init(e,t),te.init(e,t)});function Fy(e){return nr(Gc,e)}var Wc=y("ZodCUID2",(e,t)=>{Gs.init(e,t),te.init(e,t)});function Zy(e){return rr(Wc,e)}var Hc=y("ZodULID",(e,t)=>{Ws.init(e,t),te.init(e,t)});function By(e){return ir(Hc,e)}var qc=y("ZodXID",(e,t)=>{Hs.init(e,t),te.init(e,t)});function Vy(e){return sr(qc,e)}var Jc=y("ZodKSUID",(e,t)=>{qs.init(e,t),te.init(e,t)});function Gy(e){return ar(Jc,e)}var Kc=y("ZodIPv4",(e,t)=>{Qs.init(e,t),te.init(e,t)});function Wy(e){return cr(Kc,e)}var Xc=y("ZodIPv6",(e,t)=>{ea.init(e,t),te.init(e,t)});function Hy(e){return lr(Xc,e)}var Yc=y("ZodCIDRv4",(e,t)=>{ta.init(e,t),te.init(e,t)});function qy(e){return ur(Yc,e)}var Qc=y("ZodCIDRv6",(e,t)=>{oa.init(e,t),te.init(e,t)});function Jy(e){return dr(Qc,e)}var el=y("ZodBase64",(e,t)=>{ra.init(e,t),te.init(e,t)});function Ky(e){return mr(el,e)}var tl=y("ZodBase64URL",(e,t)=>{ia.init(e,t),te.init(e,t)});function Xy(e){return pr(tl,e)}var ol=y("ZodE164",(e,t)=>{sa.init(e,t),te.init(e,t)});function Yy(e){return gr(ol,e)}var nl=y("ZodJWT",(e,t)=>{aa.init(e,t),te.init(e,t)});function Qy(e){return fr(nl,e)}var Qd=y("ZodCustomStringFormat",(e,t)=>{ca.init(e,t),te.init(e,t)});function ev(e,t,n={}){return Pc(Qd,e,t,n)}var on=y("ZodNumber",(e,t)=>{Vn.init(e,t),Z.init(e,t),e.gt=(r,o)=>e.check(Ke(r,o)),e.gte=(r,o)=>e.check(Ce(r,o)),e.min=(r,o)=>e.check(Ce(r,o)),e.lt=(r,o)=>e.check(Je(r,o)),e.lte=(r,o)=>e.check(Me(r,o)),e.max=(r,o)=>e.check(Me(r,o)),e.int=r=>e.check(Rc(r)),e.safe=r=>e.check(Rc(r)),e.positive=r=>e.check(Ke(0,r)),e.nonnegative=r=>e.check(Ce(0,r)),e.negative=r=>e.check(Je(0,r)),e.nonpositive=r=>e.check(Me(0,r)),e.multipleOf=(r,o)=>e.check(xt(r,o)),e.step=(r,o)=>e.check(xt(r,o)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function em(e){return Ja(on,e)}var Kt=y("ZodNumberFormat",(e,t)=>{la.init(e,t),on.init(e,t)});function Rc(e){return Xa(Kt,e)}function tv(e){return Ya(Kt,e)}function ov(e){return Qa(Kt,e)}function nv(e){return ec(Kt,e)}function rv(e){return tc(Kt,e)}var nn=y("ZodBoolean",(e,t)=>{No.init(e,t),Z.init(e,t)});function tm(e){return oc(nn,e)}var rn=y("ZodBigInt",(e,t)=>{Gn.init(e,t),Z.init(e,t),e.gte=(r,o)=>e.check(Ce(r,o)),e.min=(r,o)=>e.check(Ce(r,o)),e.gt=(r,o)=>e.check(Ke(r,o)),e.gte=(r,o)=>e.check(Ce(r,o)),e.min=(r,o)=>e.check(Ce(r,o)),e.lt=(r,o)=>e.check(Je(r,o)),e.lte=(r,o)=>e.check(Me(r,o)),e.max=(r,o)=>e.check(Me(r,o)),e.positive=r=>e.check(Ke(BigInt(0),r)),e.negative=r=>e.check(Je(BigInt(0),r)),e.nonpositive=r=>e.check(Me(BigInt(0),r)),e.nonnegative=r=>e.check(Ce(BigInt(0),r)),e.multipleOf=(r,o)=>e.check(xt(r,o));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function iv(e){return rc(rn,e)}var rl=y("ZodBigIntFormat",(e,t)=>{ua.init(e,t),rn.init(e,t)});function sv(e){return sc(rl,e)}function av(e){return ac(rl,e)}var om=y("ZodSymbol",(e,t)=>{da.init(e,t),Z.init(e,t)});function cv(e){return cc(om,e)}var nm=y("ZodUndefined",(e,t)=>{ma.init(e,t),Z.init(e,t)});function lv(e){return lc(nm,e)}var rm=y("ZodNull",(e,t)=>{pa.init(e,t),Z.init(e,t)});function im(e){return uc(rm,e)}var sm=y("ZodAny",(e,t)=>{ga.init(e,t),Z.init(e,t)});function uv(){return dc(sm)}var am=y("ZodUnknown",(e,t)=>{Bt.init(e,t),Z.init(e,t)});function Cr(){return Gt(am)}var cm=y("ZodNever",(e,t)=>{fa.init(e,t),Z.init(e,t)});function Pr(e){return mc(cm,e)}var lm=y("ZodVoid",(e,t)=>{ha.init(e,t),Z.init(e,t)});function dv(e){return pc(lm,e)}var Ir=y("ZodDate",(e,t)=>{ya.init(e,t),Z.init(e,t),e.min=(r,o)=>e.check(Ce(r,o)),e.max=(r,o)=>e.check(Me(r,o));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function mv(e){return gc(Ir,e)}var um=y("ZodArray",(e,t)=>{zo.init(e,t),Z.init(e,t),e.element=t.element,e.min=(n,r)=>e.check(ct(n,r)),e.nonempty=n=>e.check(ct(1,n)),e.max=(n,r)=>e.check(Ht(n,r)),e.length=(n,r)=>e.check(qt(n,r)),e.unwrap=()=>e.element});function il(e,t){return Yo(um,e,t)}function pv(e){let t=e._zod.def.shape;return bm(Object.keys(t))}var Tr=y("ZodObject",(e,t)=>{va.init(e,t),Z.init(e,t),I.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>vm(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Cr()}),e.loose=()=>e.clone({...e._zod.def,catchall:Cr()}),e.strict=()=>e.clone({...e._zod.def,catchall:Pr()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>I.extend(e,n),e.merge=n=>I.merge(e,n),e.pick=n=>I.pick(e,n),e.omit=n=>I.omit(e,n),e.partial=(...n)=>I.partial(ul,e,n[0]),e.required=(...n)=>I.required(dl,e,n[0])});function gv(e,t){let n={type:"object",get shape(){return I.assignProp(this,"shape",{...e}),this.shape},...I.normalizeParams(t)};return new Tr(n)}function fv(e,t){return new Tr({type:"object",get shape(){return I.assignProp(this,"shape",{...e}),this.shape},catchall:Pr(),...I.normalizeParams(t)})}function hv(e,t){return new Tr({type:"object",get shape(){return I.assignProp(this,"shape",{...e}),this.shape},catchall:Cr(),...I.normalizeParams(t)})}var sl=y("ZodUnion",(e,t)=>{Wn.init(e,t),Z.init(e,t),e.options=t.options});function Or(e,t){return new sl({type:"union",options:e,...I.normalizeParams(t)})}var dm=y("ZodDiscriminatedUnion",(e,t)=>{sl.init(e,t),$a.init(e,t)});function yv(e,t,n){return new dm({type:"union",options:t,discriminator:e,...I.normalizeParams(n)})}var mm=y("ZodIntersection",(e,t)=>{ba.init(e,t),Z.init(e,t)});function pm(e,t){return new mm({type:"intersection",left:e,right:t})}var gm=y("ZodTuple",(e,t)=>{St.init(e,t),Z.init(e,t),e.rest=n=>e.clone({...e._zod.def,rest:n})});function vv(e,t,n){let r=t instanceof L,o=r?n:t,i=r?t:null;return new gm({type:"tuple",items:e,rest:i,...I.normalizeParams(o)})}var al=y("ZodRecord",(e,t)=>{ka.init(e,t),Z.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function fm(e,t,n){return new al({type:"record",keyType:e,valueType:t,...I.normalizeParams(n)})}function $v(e,t,n){return new al({type:"record",keyType:Or([e,Pr()]),valueType:t,...I.normalizeParams(n)})}var hm=y("ZodMap",(e,t)=>{wa.init(e,t),Z.init(e,t),e.keyType=t.keyType,e.valueType=t.valueType});function bv(e,t,n){return new hm({type:"map",keyType:e,valueType:t,...I.normalizeParams(n)})}var ym=y("ZodSet",(e,t)=>{Ca.init(e,t),Z.init(e,t),e.min=(...n)=>e.check(_t(...n)),e.nonempty=n=>e.check(_t(1,n)),e.max=(...n)=>e.check(Wt(...n)),e.size=(...n)=>e.check(Uo(...n))});function kv(e,t){return new ym({type:"set",valueType:e,...I.normalizeParams(t)})}var en=y("ZodEnum",(e,t)=>{Sa.init(e,t),Z.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{let i={};for(let s of r)if(n.has(s))i[s]=t.entries[s];else throw new Error(`Key ${s} not found in enum`);return new en({...t,checks:[],...I.normalizeParams(o),entries:i})},e.exclude=(r,o)=>{let i={...t.entries};for(let s of r)if(n.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new en({...t,checks:[],...I.normalizeParams(o),entries:i})}});function vm(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new en({type:"enum",entries:n,...I.normalizeParams(t)})}function wv(e,t){return new en({type:"enum",entries:e,...I.normalizeParams(t)})}var $m=y("ZodLiteral",(e,t)=>{xa.init(e,t),Z.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function bm(e,t){return new $m({type:"literal",values:Array.isArray(e)?e:[e],...I.normalizeParams(t)})}var km=y("ZodFile",(e,t)=>{_a.init(e,t),Z.init(e,t),e.min=(n,r)=>e.check(_t(n,r)),e.max=(n,r)=>e.check(Wt(n,r)),e.mime=(n,r)=>e.check(Ho(Array.isArray(n)?n:[n],r))});function Cv(e){return Cc(km,e)}var cl=y("ZodTransform",(e,t)=>{jo.init(e,t),Z.init(e,t),e._zod.parse=(n,r)=>{n.addIssue=i=>{if(typeof i=="string")n.issues.push(I.issue(i,n.value,t));else{let s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=n.value),s.inst??(s.inst=e),s.continue??(s.continue=!0),n.issues.push(I.issue(s))}};let o=t.transform(n.value,n);return o instanceof Promise?o.then(i=>(n.value=i,n)):(n.value=o,n)}});function ll(e){return new cl({type:"transform",transform:e})}var ul=y("ZodOptional",(e,t)=>{Pa.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Sr(e){return new ul({type:"optional",innerType:e})}var wm=y("ZodNullable",(e,t)=>{Ia.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xr(e){return new wm({type:"nullable",innerType:e})}function Sv(e){return Sr(xr(e))}var Cm=y("ZodDefault",(e,t)=>{Ta.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Sm(e,t){return new Cm({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var xm=y("ZodPrefault",(e,t)=>{Oa.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function _m(e,t){return new xm({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():t}})}var dl=y("ZodNonOptional",(e,t)=>{Ea.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Pm(e,t){return new dl({type:"nonoptional",innerType:e,...I.normalizeParams(t)})}var Im=y("ZodSuccess",(e,t)=>{Aa.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function xv(e){return new Im({type:"success",innerType:e})}var Tm=y("ZodCatch",(e,t)=>{Ma.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Om(e,t){return new Tm({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Em=y("ZodNaN",(e,t)=>{Na.init(e,t),Z.init(e,t)});function _v(e){return hc(Em,e)}var ml=y("ZodPipe",(e,t)=>{Do.init(e,t),Z.init(e,t),e.in=t.in,e.out=t.out});function _r(e,t){return new ml({type:"pipe",in:e,out:t})}var Am=y("ZodReadonly",(e,t)=>{za.init(e,t),Z.init(e,t)});function Mm(e){return new Am({type:"readonly",innerType:e})}var Nm=y("ZodTemplateLiteral",(e,t)=>{ja.init(e,t),Z.init(e,t)});function Pv(e,t){return new Nm({type:"template_literal",parts:e,...I.normalizeParams(t)})}var zm=y("ZodLazy",(e,t)=>{La.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.getter()});function jm(e){return new zm({type:"lazy",getter:e})}var Dm=y("ZodPromise",(e,t)=>{Da.init(e,t),Z.init(e,t),e.unwrap=()=>e._zod.def.innerType});function Iv(e){return new Dm({type:"promise",innerType:e})}var Er=y("ZodCustom",(e,t)=>{Ra.init(e,t),Z.init(e,t)});function Lm(e){let t=new re({check:"custom"});return t._zod.check=e,t}function Tv(e,t){return Sc(Er,e??(()=>!0),t)}function Rm(e,t={}){return xc(Er,e,t)}function Um(e){let t=Lm(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(I.issue(r,n.value,t._zod.def));else{let o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(I.issue(o))}},e(n.value,n)));return t}function Ov(e,t={error:`Input not instance of ${e.name}`}){let n=new Er({type:"custom",check:"custom",fn:r=>r instanceof e,abort:!0,...I.normalizeParams(t)});return n._zod.bag.Class=e,n}var Ev=(...e)=>_c({Pipe:ml,Boolean:nn,String:tn,Transform:cl},...e);function Av(e){let t=jm(()=>Or([Lc(e),em(),tm(),im(),il(t),fm(Lc(),t)]));return t}function Mv(e,t){return _r(ll(e),t)}var Nv={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function zv(e){le({customError:e})}function jv(){return le().customError}var pl={};ht(pl,{bigint:()=>Uv,boolean:()=>Rv,date:()=>Fv,number:()=>Lv,string:()=>Dv});function Dv(e){return Ba(tn,e)}function Lv(e){return Ka(on,e)}function Rv(e){return nc(nn,e)}function Uv(e){return ic(rn,e)}function Fv(e){return fc(Ir,e)}le(Hn());function Xt(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}var Zv="0.0.0-development",Bv=`octokit-endpoint.js/${Zv} ${Xt()}`,Vv={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Bv},mediaType:{format:""}};function Gv(e){return e?Object.keys(e).reduce((t,n)=>(t[n.toLowerCase()]=e[n],t),{}):{}}function Wv(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let n=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Function.prototype.call(n)===Function.prototype.call(e)}function Bm(e,t){let n=Object.assign({},e);return Object.keys(t).forEach(r=>{Wv(t[r])?r in e?n[r]=Bm(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function Fm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function fl(e,t,n){if(typeof t=="string"){let[o,i]=t.split(" ");n=Object.assign(i?{method:o,url:i}:{url:o},n)}else n=Object.assign({},t);n.headers=Gv(n.headers),Fm(n),Fm(n.headers);let r=Bm(e||{},n);return n.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(r.mediaType.previews=e.mediaType.previews.filter(o=>!r.mediaType.previews.includes(o)).concat(r.mediaType.previews)),r.mediaType.previews=(r.mediaType.previews||[]).map(o=>o.replace(/-preview/,""))),r}function Hv(e,t){let n=/\?/.test(e)?"&":"?",r=Object.keys(t);return r.length===0?e:e+n+r.map(o=>o==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(t[o])}`).join("&")}var qv=/\{[^{}}]+\}/g;function Jv(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function Kv(e){let t=e.match(qv);return t?t.map(Jv).reduce((n,r)=>n.concat(r),[]):[]}function Zm(e,t){let n={__proto__:null};for(let r of Object.keys(e))t.indexOf(r)===-1&&(n[r]=e[r]);return n}function Vm(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Qt(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function sn(e,t,n){return t=e==="+"||e==="#"?Vm(t):Qt(t),n?Qt(n)+"="+t:t}function Yt(e){return e!=null}function gl(e){return e===";"||e==="&"||e==="?"}function Xv(e,t,n,r){var o=e[n],i=[];if(Yt(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),r&&r!=="*"&&(o=o.substring(0,parseInt(r,10))),i.push(sn(t,o,gl(t)?n:""));else if(r==="*")Array.isArray(o)?o.filter(Yt).forEach(function(s){i.push(sn(t,s,gl(t)?n:""))}):Object.keys(o).forEach(function(s){Yt(o[s])&&i.push(sn(t,o[s],s))});else{let s=[];Array.isArray(o)?o.filter(Yt).forEach(function(c){s.push(sn(t,c))}):Object.keys(o).forEach(function(c){Yt(o[c])&&(s.push(Qt(c)),s.push(sn(t,o[c].toString())))}),gl(t)?i.push(Qt(n)+"="+s.join(",")):s.length!==0&&i.push(s.join(","))}else t===";"?Yt(o)&&i.push(Qt(n)):o===""&&(t==="&"||t==="?")?i.push(Qt(n)+"="):o===""&&i.push("");return i}function Yv(e){return{expand:Qv.bind(null,e)}}function Qv(e,t){var n=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(r,o,i){if(o){let c="",u=[];if(n.indexOf(o.charAt(0))!==-1&&(c=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(m){var d=/([^:\*]*)(?::(\d+)|(\*))?/.exec(m);u.push(Xv(t,c,d[1],d[2]||d[3]))}),c&&c!=="+"){var s=",";return c==="?"?s="&":c!=="#"&&(s=c),(u.length!==0?c:"")+u.join(s)}else return u.join(",")}else return Vm(i)}),e==="/"?e:e.replace(/\/$/,"")}function Gm(e){let t=e.method.toUpperCase(),n=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),r=Object.assign({},e.headers),o,i=Zm(e,["method","baseUrl","url","headers","request","mediaType"]),s=Kv(n);n=Yv(n).expand(i),/^http/.test(n)||(n=e.baseUrl+n);let c=Object.keys(e).filter(d=>s.includes(d)).concat("baseUrl"),u=Zm(i,c);if(!/application\/octet-stream/i.test(r.accept)&&(e.mediaType.format&&(r.accept=r.accept.split(/,/).map(d=>d.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),n.endsWith("/graphql")&&e.mediaType.previews?.length)){let d=r.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];r.accept=d.concat(e.mediaType.previews).map(p=>{let h=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${p}-preview${h}`}).join(",")}return["GET","HEAD"].includes(t)?n=Hv(n,u):"data"in u?o=u.data:Object.keys(u).length&&(o=u),!r["content-type"]&&typeof o<"u"&&(r["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof o>"u"&&(o=""),Object.assign({method:t,url:n,headers:r},typeof o<"u"?{body:o}:null,e.request?{request:e.request}:null)}function e$(e,t,n){return Gm(fl(e,t,n))}function Wm(e,t){let n=fl(e,t),r=e$.bind(null,n);return Object.assign(r,{DEFAULTS:n,defaults:Wm.bind(null,n),merge:fl.bind(null,n),parse:Gm})}var Hm=Wm(null,Vv);var sp=Gf(Xm(),1);var t$=/^-?\d+$/,ep=/^-?\d+n+$/,hl=JSON.stringify,Ym=JSON.parse,o$=/^-?\d+n$/,n$=/([\[:])?"(-?\d+)n"($|([\\n]|\s)*(\s|[\\n])*[,\}\]])/g,r$=/([\[:])?("-?\d+n+)n("$|"([\\n]|\s)*(\s|[\\n])*[,\}\]])/g,tp=(e,t,n)=>"rawJSON"in JSON?hl(e,(s,c)=>typeof c=="bigint"?JSON.rawJSON(c.toString()):typeof t=="function"?t(s,c):(Array.isArray(t)&&t.includes(s),c),n):e?hl(e,(s,c)=>typeof c=="string"&&ep.test(c)||typeof c=="bigint"?c.toString()+"n":typeof t=="function"?t(s,c):(Array.isArray(t)&&t.includes(s),c),n).replace(n$,"$1$2$3").replace(r$,"$1$2$3"):hl(e,t,n),zr=new Map,i$=()=>{let e=JSON.parse.toString();if(zr.has(e))return zr.get(e);try{let t=JSON.parse("1",(n,r,o)=>!!o?.source&&o.source==="1");return zr.set(e,t),t}catch{return zr.set(e,!1),!1}},s$=(e,t,n,r)=>typeof t=="string"&&o$.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ep.test(t)?t.slice(0,-1):typeof r!="function"?t:r(e,t,n),a$=(e,t)=>JSON.parse(e,(n,r,o)=>{let i=typeof r=="number"&&(r>Number.MAX_SAFE_INTEGER||r<Number.MIN_SAFE_INTEGER),s=o&&t$.test(o.source);return i&&s?BigInt(o.source):typeof t!="function"?r:t(n,r,o)}),op=Number.MAX_SAFE_INTEGER.toString(),Qm=op.length,c$=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,l$=/^"-?\d+n+"$/,np=(e,t)=>{if(!e)return Ym(e,t);if(i$())return a$(e,t);let n=e.replace(c$,(r,o,i,s)=>{let c=r[0]==='"';if(c&&l$.test(r))return r.substring(0,r.length-1)+'n"';let m=i||s,d=o&&(o.length<Qm||o.length===Qm&&o<=op);return c||m||d?r:'"'+r+'n"'});return Ym(n,(r,o,i)=>s$(r,o,i,t))};var et=class extends Error{name;status;request;response;constructor(t,n,r){super(t,{cause:r.cause}),this.name="HttpError",this.status=Number.parseInt(n),Number.isNaN(this.status)&&(this.status=0);"response"in r&&(this.response=r.response);let o=Object.assign({},r.request);r.request.headers.authorization&&(o.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var u$="10.0.8",d$={headers:{"user-agent":`octokit-request.js/${u$} ${Xt()}`}};function m$(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let n=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&Function.prototype.call(n)===Function.prototype.call(e)}var rp=()=>"";async function ip(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let n=e.request?.log||console,r=e.request?.parseSuccessResponseBody!==!1,o=m$(e.body)||Array.isArray(e.body)?tp(e.body):e.body,i=Object.fromEntries(Object.entries(e.headers).map(([p,h])=>[p,String(h)])),s;try{s=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:i,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(p){let h="Unknown Error";if(p instanceof Error){if(p.name==="AbortError")throw p.status=500,p;h=p.message,p.name==="TypeError"&&"cause"in p&&(p.cause instanceof Error?h=p.cause.message:typeof p.cause=="string"&&(h=p.cause))}let v=new et(h,500,{request:e});throw v.cause=p,v}let c=s.status,u=s.url,m={};for(let[p,h]of s.headers)m[p]=h;let d={url:u,status:c,headers:m,data:""};if("deprecation"in m){let p=m.link&&m.link.match(/<([^<>]+)>; rel="deprecation"/),h=p&&p.pop();n.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${m.sunset}${h?`. See ${h}`:""}`)}if(c===204||c===205)return d;if(e.method==="HEAD"){if(c<400)return d;throw new et(s.statusText,c,{response:d,request:e})}if(c===304)throw d.data=await yl(s),new et("Not modified",c,{response:d,request:e});if(c>=400)throw d.data=await yl(s),new et(g$(d.data),c,{response:d,request:e});return d.data=r?await yl(s):s.body,d}async function yl(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(rp);let n=(0,sp.safeParse)(t);if(p$(n)){let r="";try{return r=await e.text(),np(r)}catch{return r}}else return n.type.startsWith("text/")||n.parameters.charset?.toLowerCase()==="utf-8"?e.text().catch(rp):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function p$(e){return e.type==="application/json"||e.type==="application/scim+json"}function g$(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(n=>JSON.stringify(n)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function vl(e,t){let n=e.defaults(t);return Object.assign(function(o,i){let s=n.merge(o,i);if(!s.request||!s.request.hook)return ip(n.parse(s));let c=(u,m)=>ip(n.parse(n.merge(u,m)));return Object.assign(c,{endpoint:n,defaults:vl.bind(null,n)}),s.request.hook(c,s)},{endpoint:n,defaults:vl.bind(null,n)})}var he=vl(Hm,d$);function f$(e){let t=e.endpoint.DEFAULTS;return/^https:\/\/(api\.)?github\.com$/.test(t.baseUrl)?"https://github.com":t.baseUrl.replace("/api/v3","")}async function $l(e,t,n){let r={baseUrl:f$(e),headers:{accept:"application/json"},...n},o=await e(t,r);if("error"in o.data){let i=new et(`${o.data.error_description} (${o.data.error}, ${o.data.error_uri})`,400,{request:e.endpoint.merge(t,r)});throw i.response=o,i}return o}async function lp(e){let t=e.request||he,n={client_id:e.clientId};return"scopes"in e&&Array.isArray(e.scopes)&&(n.scope=e.scopes.join(" ")),$l(t,"POST /login/device/code",n)}async function bl(e){let t=e.request||he,n=await $l(t,"POST /login/oauth/access_token",{client_id:e.clientId,device_code:e.code,grant_type:"urn:ietf:params:oauth:grant-type:device_code"}),r={clientType:e.clientType,clientId:e.clientId,token:n.data.access_token,scopes:n.data.scope.split(/\s+/).filter(Boolean)};if("clientSecret"in e&&(r.clientSecret=e.clientSecret),e.clientType==="github-app"){if("refresh_token"in n.data){let o=new Date(n.headers.date).getTime();r.refreshToken=n.data.refresh_token,r.expiresAt=ap(o,n.data.expires_in),r.refreshTokenExpiresAt=ap(o,n.data.refresh_token_expires_in)}delete r.scopes}return{...n,authentication:r}}function ap(e,t){return new Date(e+t*1e3).toISOString()}async function up(e){let t=e.request||he,n=await $l(t,"POST /login/oauth/access_token",{client_id:e.clientId,client_secret:e.clientSecret,grant_type:"refresh_token",refresh_token:e.refreshToken}),r=new Date(n.headers.date).getTime(),o={clientType:"github-app",clientId:e.clientId,clientSecret:e.clientSecret,token:n.data.access_token,refreshToken:n.data.refresh_token,expiresAt:cp(r,n.data.expires_in),refreshTokenExpiresAt:cp(r,n.data.refresh_token_expires_in)};return{...n,authentication:o}}function cp(e,t){return new Date(e+t*1e3).toISOString()}async function dp(e){let t=e.request||he,n=btoa(`${e.clientId}:${e.clientSecret}`);return t("DELETE /applications/{client_id}/token",{headers:{authorization:`basic ${n}`},client_id:e.clientId,access_token:e.token})}import{execFile as G$}from"child_process";import{randomUUID as S_}from"node:crypto";import{existsSync as __,readFileSync as P_,writeFileSync as I_,unlinkSync as T_,renameSync as O_}from"node:fs";import{existsSync as L_,readFileSync as R_}from"node:fs";import{existsSync as Q$,readdirSync as eb,lstatSync as tb}from"node:fs";import{join as ob}from"node:path";var h$=null;function y$(e){let t=`[${e.module}]`,n=e.data&&Object.keys(e.data).length>0?` ${JSON.stringify(e.data)}`:"";process.stderr.write(`${t} ${e.level}: ${e.message}${n}
|
|
37
|
-
`)}function Lr(e){function t(n,r,o){let i={level:n,module:e,message:r,...o&&{data:o}};(h$??y$)(i)}return{debug:(n,r)=>t("debug",n,r),info:(n,r)=>t("info",n,r),warn:(n,r)=>t("warn",n,r),error:(n,r)=>t("error",n,r)}}function ut(e){return e.toLowerCase().replace(/^https?:\/\//,"").replace(/\/$/,"")}function eo(e){if(!e.token.expiresAt)return!1;let t=new Date(e.token.expiresAt);if(isNaN(t.getTime()))return!0;let n=new Date;return t.getTime()-n.getTime()<300*1e3}function gp(e){if(!e.token.refreshTokenExpiresAt)return!1;let t=new Date(e.token.refreshTokenExpiresAt);return isNaN(t.getTime())?!0:new Date>=t}var cn=new Map,v$=300*1e3;function $$(e){let t=ut(e),n=cn.get(t);return!n||Date.now()-n.cachedAt>=v$?!1:n.credentials?!eo(n.credentials):!0}function fp(e){e?cn.delete(ut(e)):cn.clear()}function b$(e){let t=ut(e);if($$(t))return cn.get(t).credentials}function k$(e,t){let n=ut(e);cn.set(n,{credentials:t,cachedAt:Date.now()})}var ie=Rr.platform()==="win32",Fe=Rr.platform()==="darwin",y_=Rr.platform()==="linux",G=Rr.homedir();function Ne(){return ie?process.env.APPDATA||I$.join(G,"AppData","Roaming"):G}var T$=Ue(G,".octocode"),O$=448,Re=process.env.OCTOCODE_HOME||T$,me={home:Re,config:Ue(Re,".octocoderc"),credentials:Ue(Re,"credentials.json"),key:Ue(Re,".key"),session:Ue(Re,"session.json"),stats:Ue(Re,"stats.json"),repos:Ue(Re,"repos"),logs:Ue(Re,"logs"),cliConfig:Ue(Re,"config.json"),lspConfig:Ue(Re,"lsp-servers.json")};function E$(){_$(me.home)||P$(me.home,{recursive:!0,mode:O$})}var A$=$.object({token:$.string(),tokenType:$.literal("oauth"),scopes:$.array($.string()).optional(),refreshToken:$.string().optional(),expiresAt:$.string().optional(),refreshTokenExpiresAt:$.string().optional()}),M$=$.object({hostname:$.string(),username:$.string(),token:A$,gitProtocol:$.enum(["ssh","https"]),createdAt:$.string(),updatedAt:$.string()}),N$=$.object({version:$.number(),credentials:$.record($.string(),M$)}),pp=Lr("token-storage");function z$(e){return e.replace(/\b(ghp_|gho_|ghu_|ghs_|ghr_)[a-zA-Z0-9]{36,}\b/g,"***MASKED***").replace(/\b[a-zA-Z0-9]{40,}\b/g,"***MASKED***")}var $_=me.home,lt=me.credentials,It=me.key,$p="aes-256-gcm",j$=16;function wl(){E$()}function bp(){if(wl(),jr(It))return w$(It).mode&511&63&&C$(It,384),Buffer.from(hp(It,"utf8"),"hex");let e=vp(32);return yp(It,e.toString("hex"),{mode:384}),e}function D$(e){let t=bp(),n=vp(j$),r=S$($p,t,n),o=r.update(e,"utf8","hex");o+=r.final("hex");let i=r.getAuthTag();return`${n.toString("hex")}:${i.toString("hex")}:${o}`}function L$(e){let t=bp(),[n,r,o]=e.split(":");if(!n||!r||!o)throw new Error("Invalid encrypted data format");let i=Buffer.from(n,"hex"),s=Buffer.from(r,"hex"),c=x$($p,t,i);c.setAuthTag(s);let u=c.update(o,"hex","utf8");return u+=c.final("utf8"),u}function Ur(){if(wl(),!jr(lt))return{version:1,credentials:{}};try{let e=hp(lt,"utf8"),t=L$(e),n=JSON.parse(t),r=N$.safeParse(n);return r.success?r.data:(pp.warn("Credentials file has invalid format \u2014 starting fresh",{file:lt}),{version:1,credentials:{}})}catch(e){let t=e instanceof Error&&e.message?z$(e.message):void 0;return pp.warn("Could not read credentials file \u2014 you may need to login again",{file:lt,...t&&{reason:t}}),{version:1,credentials:{}}}}function kp(e){wl();let t=D$(JSON.stringify(e,null,2));yp(lt,t,{mode:384})}function R$(){try{jr(lt)&&mp(lt),jr(It)&&mp(It)}catch{}}var Cl="178c6fc778ccc68e1d6a",Fr="github.com";function U$(e){return e.replace(/\b(ghp_|gho_|ghu_|ghs_|ghr_)[a-zA-Z0-9]{36,}\b/g,"***MASKED***").replace(/\b[a-zA-Z0-9]{40,}\b/g,"***MASKED***")}function F$(e){return e==="github.com"||e===Fr?"https://api.github.com":`https://${e}/api/v3`}async function wp(e,t=Fr,n=Cl){let r=await e.getCredentials(t);if(!r)return{success:!1,error:`Not logged in to ${t}`};if(!r.token.refreshToken)return{success:!1,error:"Token does not support refresh (OAuth App tokens do not expire)"};if(gp(r))return{success:!1,error:"Refresh token has expired. Please login again."};try{let o=await up({clientType:"github-app",clientId:n,clientSecret:"",refreshToken:r.token.refreshToken,request:he.defaults({baseUrl:F$(t)})}),i={token:o.authentication.token,tokenType:"oauth",refreshToken:o.authentication.refreshToken,expiresAt:o.authentication.expiresAt,refreshTokenExpiresAt:o.authentication.refreshTokenExpiresAt};return await e.updateToken(t,i),{success:!0,username:r.username,hostname:t}}catch(o){return{success:!1,error:o instanceof Error?U$(o.message):"Token refresh failed"}}}async function Z$(e,t=Fr,n=Cl){let r=await e.getCredentials(t);if(!r||!r.token)return{token:null,source:"none"};if(!eo(r))return{token:r.token.token,source:"stored",username:r.username};if(r.token.refreshToken){let o=await wp(e,t,n);if(o.success){let i=await e.getCredentials(t);if(i?.token.token)return{token:i.token.token,source:"refreshed",username:i.username}}return{token:null,source:"none",refreshError:o.error}}return{token:null,source:"none",refreshError:"Token expired and no refresh token available"}}var Sl=["OCTOCODE_TOKEN","GH_TOKEN","GITHUB_TOKEN"];function B$(){for(let e of Sl){let t=process.env[e];if(t&&t.trim())return t.trim()}return null}function Zr(){for(let e of Sl){let t=process.env[e];if(t&&t.trim())return`env:${e}`}return null}function to(){return B$()!==null}function V$(){for(let e of Sl){let t=process.env[e];if(t?.trim())return{token:t.trim(),source:`env:${e}`}}return null}var W$=["/opt/homebrew/bin","/usr/local/bin","/home/linuxbrew/.linuxbrew/bin"];function oo(e){return new Promise(t=>{let n=["auth","token"];e&&n.push("--hostname",e);let r=process.env.PATH??"",o=new Set(r.split(":")),i=W$.filter(c=>!o.has(c)),s=i.length?`${i.join(":")}:${r}`:r;G$("gh",n,{encoding:"utf8",timeout:5e3,env:{...process.env,PATH:s}},(c,u)=>{if(c||!u){t(null);return}t(u.trim()||null)})})}var kl=null;function H$(e){kl=e}function q$(){if(!kl)throw new Error("Token resolution not initialized. Call initTokenResolution() first.");return kl}async function xl(e){let t=e?.hostname??Fr,n=e?.clientId??Cl,r=e?.getGhCliToken??oo,o=V$();if(o)return{token:o.token,source:o.source,wasRefreshed:!1};let i=await q$().getTokenWithRefresh(t,n);if(i.token)return{token:i.token,source:"octocode-storage",wasRefreshed:i.source==="refreshed",username:i.username};try{let s=await Promise.resolve(r(t));if(s?.trim())return{token:s.trim(),source:"gh-cli",wasRefreshed:!1}}catch{}return null}var J$=Lr("token-storage");async function Br(e){let t=ut(e.hostname),n={...e,hostname:t,updatedAt:new Date().toISOString()};try{let r=Ur();return r.credentials[t]=n,kp(r),fp(t),{success:!0}}catch(r){let o=r instanceof Error?r.message:String(r);throw J$.error("CRITICAL: Storage failed",{error:o.replace(/\b(ghp_|gho_|ghu_|ghs_|ghr_)[a-zA-Z0-9]{36,}\b/g,"***MASKED***").replace(/\b[a-zA-Z0-9]{40,}\b/g,"***MASKED***")}),new Error("Failed to store credentials")}}async function tt(e="github.com",t){let n=ut(e);if(!t?.bypassCache){let i=b$(n);if(i!==void 0)return i}let o=Ur().credentials[n]||null;return k$(n,o),o}function _l(e="github.com"){let t=ut(e);return Ur().credentials[t]||null}async function Pl(e="github.com"){let t=ut(e),n=!1,r=Ur();return r.credentials[t]&&(delete r.credentials[t],Object.keys(r.credentials).length===0?R$():kp(r),n=!0),fp(t),{success:n,deletedFromFile:n}}async function Cp(e,t){let n=await tt(e);return n?(n.token=t,n.updatedAt=new Date().toISOString(),await Br(n),!0):!1}function Il(){return lt}async function Tl(e,t){return wp({getCredentials:tt,updateToken:Cp},e,t)}async function Vr(e,t){return Z$({getCredentials:tt,updateToken:Cp},e,t)}H$({getTokenWithRefresh:Vr});var K$=$.object({rawChars:$.number(),responseChars:$.number(),savedChars:$.number(),calls:$.number()}),X$=$.object({hits:$.record($.string(),$.number()).default({}),rateLimits:$.number().default(0)}),Dr=$.record($.string(),$.number()).default({}),Y$=$.object({toolCalls:$.number(),errors:$.number(),rateLimits:$.number(),rateLimitsByProvider:Dr,rawChars:$.number(),responseChars:$.number(),savedChars:$.number(),charSavingsCalls:$.number(),githubCacheHits:$.number(),githubCacheRateLimits:$.number(),packageRegistryFailures:$.number().default(0),packageRegistryFailuresByRegistry:Dr}),Sp=$.object({toolCalls:$.number(),errors:$.number(),rateLimits:$.number(),rateLimitsByProvider:Dr,charsSavedByTool:$.record($.string(),K$).default({}),githubCacheHits:X$.default({hits:{},rateLimits:0}),packageRegistryFailures:Dr,totalUsage:Y$.optional()}),A_=$.object({version:$.literal(1),sessionId:$.string(),createdAt:$.string(),lastActiveAt:$.string(),stats:Sp.optional()}),M_=$.object({version:$.literal(1),stats:Sp});var N_=Lr("session"),z_=me.session,j_=me.stats;var F_=$.object({$schema:$.string().optional(),version:$.number().int().optional(),github:$.record($.string(),$.unknown()).optional(),local:$.record($.string(),$.unknown()).optional(),tools:$.record($.string(),$.unknown()).optional(),network:$.record($.string(),$.unknown()).optional(),telemetry:$.record($.string(),$.unknown()).optional(),lsp:$.record($.string(),$.unknown()).optional(),output:$.record($.string(),$.unknown()).optional()}).passthrough(),Z_=me.config;var B_=Lr("octocode-config");function ye(e){if(!Q$(e))return 0;let t=0,n=[e];for(;n.length>0;){let r=n.pop(),o;try{o=eb(r)}catch{continue}for(let i of o){let s=ob(r,i);try{let c=tb(s);if(c.isSymbolicLink())continue;c.isDirectory()?n.push(s):c.isFile()&&(t+=c.size)}catch{}}}return t}function ne(e){if(e<1024)return`${e} B`;let t=e/1024;if(t<1024)return`${t.toFixed(1)} KB`;let n=t/1024;return n<1024?`${n.toFixed(1)} MB`:`${(n/1024).toFixed(2)} GB`}function Gr(){process.stdout.write("\x1B[2J\x1B[3J\x1B[H")}function Ol(e,t){try{let n,r;return t?(n=t,r=[e]):Fe?(n="open",r=[e]):ie?(n="cmd",r=["/c","start",'""',e]):(n="xdg-open",r=[e]),nb(n,r,{stdio:"ignore",shell:ie&&!t}).status===0}catch{return!1}}function xp(e,t){switch(t){case"cursor":return Ol(e,"cursor");case"vscode":return Ol(e,"code");default:return Ol(e)}}import W from"node:path";import Se from"node:fs";import Wr from"node:path";var rb=process.env.OCTOCODE_DEBUG==="1";function fe(e,t){try{return e()}catch(n){return rb&&console.error("[trySafe]",n instanceof Error?n.message:n),t}}function F(e){return fe(()=>Se.existsSync(e)&&Se.statSync(e).isDirectory(),!1)}function pe(e){return fe(()=>Se.existsSync(e)&&Se.statSync(e).isFile(),!1)}function Ze(e){return fe(()=>pe(e)?Se.readFileSync(e,"utf8"):null,null)}function ln(e,t){return fe(()=>{let n=Wr.dirname(e);return F(n)||Se.mkdirSync(n,{recursive:!0,mode:448}),Se.writeFileSync(e,t,{encoding:"utf8",mode:384}),!0},!1)}function _p(e){return pe(e)?fe(()=>{let t=new Date().toISOString().replace(/[:.]/g,"-"),n=`${e}.backup-${t}`;return Se.copyFileSync(e,n),n},null):null}function Pp(e){let t=Ze(e);return t?fe(()=>JSON.parse(t),null):null}function Ip(e,t){return fe(()=>{let n=JSON.stringify(t,null,2)+`
|
|
38
|
-
`;return ln(e,n)},!1)}function El(e,t){return fe(()=>{if(!F(e))return!1;F(t)||Se.mkdirSync(t,{recursive:!0});let n=Se.readdirSync(e,{withFileTypes:!0});for(let r of n){let o=Wr.join(e,r.name),i=Wr.join(t,r.name);if(r.isDirectory()){if(!El(o,i))return!1}else Se.copyFileSync(o,i)}return!0},!1)}function Te(e){return fe(()=>F(e)?Se.readdirSync(e,{withFileTypes:!0}).filter(t=>{if(t.isDirectory())return!0;if(t.isSymbolicLink())try{return Se.statSync(Wr.join(e,t.name)).isDirectory()}catch{return!1}return!1}).map(t=>t.name):[],[])}function no(e){return fe(()=>F(e)?(Se.rmSync(e,{recursive:!0,force:!0}),!0):!1,!1)}function Tp(){return ie?Ne():Fe?W.join(G,"Library","Application Support"):process.env.XDG_CONFIG_HOME||W.join(G,".config")}function ib(){let e=Tp();return ie?W.join(e,"Code","User","globalStorage"):Fe?W.join(e,"Code","User","globalStorage"):W.join(e,"Code","User","globalStorage")}var B={cursor:{id:"cursor",name:"Cursor",description:"AI-first code editor",category:"ide",url:"https://cursor.sh",envVars:["CURSOR_AGENT","CURSOR_TRACE_ID","CURSOR_SESSION_ID","CURSOR"]},"claude-desktop":{id:"claude-desktop",name:"Claude Desktop",description:"Anthropic's desktop app",category:"desktop",url:"https://claude.ai/download"},"claude-code":{id:"claude-code",name:"Claude Code",description:"Claude CLI for terminal",category:"cli",url:"https://docs.anthropic.com/claude-code",envVars:["CLAUDE_CODE"]},"vscode-cline":{id:"vscode-cline",name:"Cline (VS Code)",description:"AI coding assistant extension",category:"extension",url:"https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev",envVars:["VSCODE_PID","TERM_PROGRAM"]},"vscode-roo":{id:"vscode-roo",name:"Roo-Cline (VS Code)",description:"Roo AI coding extension",category:"extension",envVars:["VSCODE_PID"]},windsurf:{id:"windsurf",name:"Windsurf",description:"Codeium AI IDE",category:"ide",url:"https://codeium.com/windsurf",envVars:["WINDSURF_SESSION"]},trae:{id:"trae",name:"Trae",description:"Adaptive AI IDE",category:"ide",url:"https://trae.ai"},antigravity:{id:"antigravity",name:"Antigravity",description:"Gemini-powered AI IDE",category:"ide"},"vscode-continue":{id:"vscode-continue",name:"Continue (VS Code)",description:"Open-source AI assistant",category:"extension",url:"https://continue.dev",envVars:["VSCODE_PID"]},zed:{id:"zed",name:"Zed",description:"High-performance code editor",category:"ide",url:"https://zed.dev",envVars:["ZED_TERM"]},opencode:{id:"opencode",name:"Opencode",description:"AI coding agent CLI",category:"cli",url:"https://opencode.ai",envVars:["OPENCODE"]},codex:{id:"codex",name:"Codex",description:"OpenAI Codex CLI agent",category:"cli",url:"https://github.com/openai/codex",envVars:["CODEX_HOME","CODEX_SANDBOX_TYPE"]},"gemini-cli":{id:"gemini-cli",name:"Gemini CLI",description:"Google Gemini CLI",category:"cli",url:"https://github.com/google-gemini/gemini-cli",envVars:["GEMINI_API_KEY"]},goose:{id:"goose",name:"Goose",description:"Block AI coding agent",category:"desktop",url:"https://block.github.io/goose",envVars:["GOOSE_MODE"]},kiro:{id:"kiro",name:"Kiro",description:"AWS AI IDE",category:"ide",url:"https://kiro.dev"},custom:{id:"custom",name:"Custom Path",description:"Specify your own MCP config path",category:"cli"}},Be=Object.keys(B).filter(e=>e!=="custom");function Y(e,t){if(e==="custom"&&t)return t;let n=Tp(),r=ib();switch(e){case"cursor":return ie?W.join(Ne(),"Cursor","mcp.json"):W.join(G,".cursor","mcp.json");case"claude-desktop":return ie?W.join(n,"Claude","claude_desktop_config.json"):Fe?W.join(n,"Claude","claude_desktop_config.json"):W.join(n,"claude","claude_desktop_config.json");case"claude-code":return W.join(G,".claude.json");case"vscode-cline":return W.join(r,"saoudrizwan.claude-dev","settings","cline_mcp_settings.json");case"vscode-roo":return W.join(r,"rooveterinaryinc.roo-cline","settings","mcp_settings.json");case"windsurf":return W.join(G,".codeium","windsurf","mcp_config.json");case"trae":return ie?W.join(Ne(),"Trae","mcp.json"):Fe?W.join(n,"Trae","mcp.json"):W.join(n,"Trae","mcp.json");case"antigravity":return W.join(G,".gemini","antigravity","mcp_config.json");case"vscode-continue":return W.join(G,".continue","config.json");case"zed":return ie?W.join(Ne(),"Zed","settings.json"):Fe?W.join(G,".config","zed","settings.json"):W.join(n,"zed","settings.json");case"opencode":return ie?W.join(Ne(),"opencode","config.json"):W.join(n,"opencode","config.json");case"codex":return W.join(G,".codex","config.toml");case"gemini-cli":return W.join(G,".gemini","settings.json");case"goose":return ie?W.join(Ne(),"goose","config.yaml"):Fe?W.join(n,"goose","config.yaml"):W.join(n,"goose","config.yaml");case"kiro":return ie?W.join(Ne(),"Kiro","mcp.json"):W.join(G,".kiro","mcp.json");case"custom":throw new Error("Custom path requires customPath parameter");default:throw new Error(`Unknown MCP client: ${e}`)}}function dt(e,t){try{let n=Y(e,t),r=W.dirname(n);return F(r)}catch{return!1}}function mt(e,t){try{let n=Y(e,t);return pe(n)}catch{return!1}}function ro(){let e=process.env;return e.CURSOR_AGENT||e.CURSOR_TRACE_ID||e.CURSOR_SESSION_ID||e.CURSOR?"cursor":e.WINDSURF_SESSION?"windsurf":e.CLAUDE_CODE?"claude-code":e.ZED_TERM||e.ZED?"zed":e.OPENCODE?"opencode":e.CODEX_HOME||e.CODEX_SANDBOX_TYPE?"codex":e.GEMINI_API_KEY?"gemini-cli":e.GOOSE_MODE?"goose":e.VSCODE_PID||e.TERM_PROGRAM==="vscode"?e.ROO_CLINE||e.ROO?"vscode-roo":e.CONTINUE_GLOBAL_DIR?"vscode-continue":"vscode-cline":null}function Op(){let e=[];for(let t of Be)dt(t)&&e.push(t);return e}import sb from"node:path";import ab from"node:fs";function J(e){return pe(e)?Pp(e):{mcpServers:{}}}function xe(e,t,n=!0){try{let r;if(n&&pe(e)){let s=_p(e);s&&(r=s)}let o=sb.dirname(e);return F(o)||ab.mkdirSync(o,{recursive:!0,mode:448}),Ip(e,t)?{success:!0,backupPath:r}:{success:!1,error:"Failed to write config file"}}catch(r){return{success:!1,error:r instanceof Error?r.message:"Unknown error"}}}function Hr(e,t){let n;if(e==="npx")n={command:"npx",args:["octocode-mcp@latest"]};else throw new Error(`Unknown install method: ${e}`);if(t){let r={};t.enableLocal&&(r.ENABLE_LOCAL="true"),t.githubToken&&(r.GITHUB_TOKEN=t.githubToken),Object.keys(r).length>0&&(n.env=r)}return n}function Al(e,t){return Hr(e,t)}function Ep(e,t,n){let r=ie?Al(t,n):Hr(t,n);return{...e,mcpServers:{...e.mcpServers,octocode:r}}}function Tt(e){return!!e.mcpServers?.octocode}function Ml(e){let t=e.mcpServers?.octocode;return t&&t.command==="npx"?"npx":null}function Nl(e,t){let n=Y(e,t),r=mt(e,t),o=!1,i=null;if(r){let s=J(n);s&&(o=Tt(s),i=Ml(s))}return{client:e,configExists:r,octocodeInstalled:o,method:i,configPath:n}}function qr(){return["cursor","claude-desktop","claude-code","opencode","vscode-cline","vscode-roo","vscode-continue","windsurf","trae","antigravity","zed"].map(t=>Nl(t))}function Ap(e,t){if(!e.mcpServers?.[t])return e;let n=Object.fromEntries(Object.entries(e.mcpServers).filter(([r])=>r!==t));return{...e,mcpServers:n}}function cb(e,t){let n=e==="custom"&&t?t:Y(e,t);if(!pe(n))return{installed:!1,configPath:n,configExists:!1};let o=J(n);return o?{installed:Tt(o),configPath:n,configExists:!0}:{installed:!1,configPath:n,configExists:!0}}function Jr(e){let{client:t,method:n,customPath:r,force:o=!1,envOptions:i}=e,s=t==="custom"&&r?r:Y(t,r),c=J(s)||{mcpServers:{}};if(Tt(c)&&!o)return{success:!1,configPath:s,alreadyInstalled:!0,error:"Octocode is already configured. Use --force to overwrite."};c=Ep(c,n,i);let u=xe(s,c);return u.success?{success:!0,configPath:s,backupPath:u.backupPath}:{success:!1,configPath:s,error:u.error||"Failed to write config"}}function un(e,t,n,r){let o=e==="custom"&&n?n:Y(e,n),i=cb(e,n),s=J(o),c=ie?Al(t,r):Hr(t,r),u="create";return i.installed?u="override":i.configExists&&(u="add"),{client:e,method:t,configPath:o,serverConfig:c,action:u,existingMethod:s?Ml(s):null}}import{execSync as Mp,exec as lb}from"node:child_process";import{promisify as ub}from"node:util";var PP=ub(lb),db=1e3,mb=3e3,pb=4e3;function Kr(){try{return{installed:!0,version:Mp("node --version",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}).trim()}}catch{return{installed:!1,version:null}}}function Xr(){try{return{installed:!0,version:`v${Mp("npm --version",{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}).trim()}`}}catch{return{installed:!1,version:null}}}async function Np(){let e="https://registry.npmjs.org";try{let t=Date.now(),n=new AbortController,r=setTimeout(()=>n.abort(),pb),o=await fetch(e,{method:"HEAD",signal:n.signal});clearTimeout(r);let i=Date.now()-t;return o.ok?i>mb?{status:"slow",latency:i}:i>db?{status:"slow",latency:i}:{status:"ok",latency:i}:{status:"failed",latency:i}}catch{return{status:"failed",latency:null}}}var dn={cursor:{name:"Cursor",description:"AI-first code editor",url:"https://cursor.sh"},"claude-desktop":{name:"Claude Desktop",description:"Anthropic's Claude desktop app",url:"https://claude.ai/download"},"claude-code":{name:"Claude Code",description:"Claude CLI for terminal",url:"https://docs.anthropic.com/claude-code"},opencode:{name:"Opencode",description:"AI coding agent CLI",url:"https://opencode.ai"},"vscode-cline":{name:"Cline (VS Code)",description:"AI coding assistant extension",url:"https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev"},"vscode-roo":{name:"Roo-Cline (VS Code)",description:"Roo AI coding extension",url:"https://github.com/RooVetGit/Roo-Cline"},"vscode-continue":{name:"Continue (VS Code)",description:"Open-source AI assistant",url:"https://continue.dev"},windsurf:{name:"Windsurf",description:"Codeium AI IDE",url:"https://codeium.com/windsurf"},trae:{name:"Trae",description:"Adaptive AI IDE",url:"https://trae.ai"},antigravity:{name:"Antigravity",description:"Gemini-powered AI IDE",url:"https://antigravity.dev"},zed:{name:"Zed",description:"High-performance code editor",url:"https://zed.dev"},codex:{name:"Codex",description:"OpenAI Codex CLI agent",url:"https://github.com/openai/codex"},"gemini-cli":{name:"Gemini CLI",description:"Google Gemini CLI",url:"https://github.com/google-gemini/gemini-cli"},goose:{name:"Goose",description:"Block AI coding agent",url:"https://block.github.io/goose"},kiro:{name:"Kiro",description:"AWS AI IDE",url:"https://kiro.dev"},custom:{name:"Custom Path",description:"Specify your own MCP config path",url:""},claude:{name:"Claude Desktop",description:"Anthropic's Claude desktop app",url:"https://claude.ai/download"}},zl={cursor:dn.cursor,claude:dn.claude},zp={npx:{name:"NPX",description:"Run via npx from npm registry",pros:["Standard npm workflow","Faster after first run (cached)"],cons:["Requires Node.js/npm"]}};import{homedir as gb}from"node:os";import jl from"node:path";import{spawnSync as jp}from"node:child_process";function io(e,t=[]){try{let n=jp(e,t,{encoding:"utf8",stdio:["pipe","pipe","pipe"],shell:!1,timeout:3e4});return{success:n.status===0,stdout:n.stdout?.trim()||"",stderr:n.stderr?.trim()||"",exitCode:n.status}}catch(n){return{success:!1,stdout:"",stderr:n instanceof Error?n.message:"Unknown error",exitCode:null}}}function Dp(e){let t=process.platform==="win32"?"where":"which";return io(t,[e]).success}function Lp(e,t=[]){try{let n=jp(e,t,{stdio:"inherit",shell:!1});return{success:n.status===0,exitCode:n.status}}catch{return{success:!1,exitCode:null}}}function Rp(){return{cwd:fb(),ide:hb(),git:yb()}}function fb(){let e=process.cwd(),t=gb(),n=jl.normalize(e),r=jl.normalize(t);return n.toLowerCase().startsWith(r.toLowerCase())?"~"+n.slice(r.length):e}function hb(){let e=process.env;return e.CURSOR_AGENT||e.CURSOR_TRACE_ID?"Cursor":e.TERM_PROGRAM==="vscode"||e.VSCODE_PID?"VS Code":(e.TERM_PROGRAM==="Apple_Terminal","Terminal")}function yb(){let e=io("git",["rev-parse","--show-toplevel"]);if(!e.success)return;let t=io("git",["branch","--show-current"]);return{root:jl.basename(e.stdout.trim())||"repo",branch:t.success?t.stdout:"HEAD"}}function vb(){let e=[" \u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2584\u2584"," \u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2584"," \u2590\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258C"," \u2590\u2588\u2588\u2580 \u2580\u2588\u2588\u2588\u2588\u2580 \u2580\u2588\u2588\u258C"," \u2590\u2588\u2588 \u2584 \u2588\u2588\u2588\u2588 \u2584 \u2588\u2588\u258C"," \u2590\u2588\u2588\u2588\u2588\u2584\u2584\u2580\u2580\u2580\u2580\u2584\u2584\u2588\u2588\u2588\u2588\u258C"," \u2580\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2580"," \u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2580\u2580 \u2580\u2580\u2588\u2588\u2588\u2588\u2584\u2584\u2584"," \u2584\u2588\u2588\u2588\u2588\u2580\u2580\u2584\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2588\u2584\u2584\u2584\u2580\u2580\u2588\u2588\u2588\u2588\u2584","\u2590\u2588\u2588\u258C \u2584\u2588\u2588\u2580\u2580 \u2580\u2580\u2588\u2588\u2584 \u2590\u2588\u2588\u258C"," \u2580\u2580 \u2590\u2588\u2588\u258C \u2590\u2588\u2588\u258C \u2580\u2580"," \u2580\u2580 \u2580\u2580"];for(let t of e)console.log(a("magenta"," "+t))}function $b(){let e=[" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557","\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2588\u2588\u2554\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D","\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2557 ","\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u255D ","\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557"," \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D"];for(let t of e)console.log(a("magenta"," "+t))}function Yr(){console.log(),vb(),console.log(),$b(),console.log(),console.log();try{let e=Rp(),t=e.ide==="Cursor"||e.ide==="VS Code",n=`${l("Path")} ${e.cwd}`,r=t?`${l("IDE")} ${f(e.ide)}`:"",o=e.git?`${e.git.root} ${l("(")}${e.git.branch}${l(")")}`:"",i=[r,o].filter(Boolean).join(" ");console.log(` ${n}${i?` ${i}`:""}`),console.log()}catch{console.log()}}function Qr(){console.log(),console.log(` ${a("cyan","Tip")} ${f("Quick tips for better AI coding with Octocode:")}`),console.log(),console.log(` ${a("green","-")} ${l("Prompts:")} Use ${a("cyan","/research")}, ${a("cyan","/plan")}, ${a("cyan","/implement")} in chat`),console.log(` ${a("green","-")} ${l("Skills:")} Add all via ${a("cyan","Octocode Skills")} or ${a("cyan","Manage System Skills")} -> ${a("cyan","Browse Marketplace")}`),console.log(` ${a("green","-")} ${l("Context:")} Add ${a("cyan","AGENTS.md")} to your project ${l("(you can ask octocode)")}`),console.log(),console.log(` Search${a("underscore","https://octocode.ai")}`),console.log()}import Dl from"node:path";function Fp(e){return e.octocodeInstalled?a("green","\u2705 installed"):e.configExists?a("blue","\u25CB Ready"):dt(e.client)?a("dim","\u25CB Available"):a("dim","\u25CB Not found")}function Zp(){return["cursor","claude-desktop","claude-code","opencode","codex","gemini-cli","windsurf","trae","antigravity","goose","kiro","zed","vscode-cline","vscode-roo","vscode-continue"].map(t=>({clientId:t,status:Nl(t),isAvailable:dt(t)}))}async function mn(){let e=ro(),t=Zp(),n=t.filter(o=>o.status.octocodeInstalled),r=t.filter(o=>o.isAvailable&&!o.status.octocodeInstalled);return n.length===0?await bb(r,e):await Bp(n,r,e)}async function bb(e,t){if(console.log(),console.log(a("yellow"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","INFO")} No octocode configurations found`+" ".repeat(24)+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${l("Octocode is not configured in any MCP client yet.")}`),console.log(),e.length===0){console.log(` ${a("red","X")} ${l("No MCP clients detected on this system.")}`),console.log(),console.log(` ${l("Supported clients:")}`),console.log(` ${l("\u2022 Cursor, Claude Desktop, Claude Code")}`),console.log(` ${l("\u2022 Windsurf, Zed, VS Code (Cline/Roo/Continue)")}`),console.log(),console.log(` ${l("Install a supported client and try again,")}`),console.log(` ${l('or use "Custom Path" to specify a config file.')}`),console.log();let o=[{name:`${a("cyan","-")} Custom Path - ${l("Specify your own MCP config path")}`,value:"custom"},new M,{name:`${a("dim","- Back")}`,value:"back"}],i=await j({message:"What would you like to do?",choices:o,loop:!1});if(i==="back")return null;if(i==="custom"){let s=await Ll();return s?{client:"custom",customPath:s}:null}return null}let n=[];for(let{clientId:o,status:i}of e){let s=B[o],c=`${s.name} - ${l(s.description)}`;c+=` ${Fp(i)}`,t===o&&(c=`${a("green","\u2605")} ${c} ${a("yellow","(Current)")}`),n.push({name:c,value:o})}n.sort((o,i)=>t===o.value?-1:t===i.value?1:0),n.push(new M),n.push({name:`${a("cyan","-")} Custom Path - ${l("Specify your own MCP config path")}`,value:"custom"}),n.push(new M),n.push({name:`${a("dim","- Back")}`,value:"back"});let r=await j({message:"Select a client to install Octocode:",choices:n,loop:!1});if(r==="back")return null;if(r==="custom"){let o=await Ll();return o?{client:"custom",customPath:o}:null}return{client:r}}async function Bp(e,t,n){console.log(),console.log(` ${a("green","\u2705")} Found ${f(String(e.length))} octocode configuration${e.length>1?"s":""}`),console.log();let r=[];for(let{clientId:i}of e){let s=B[i],c=`${a("green","\u2705")} ${s.name} - ${l("View/Edit configuration")}`;n===i&&(c+=` ${a("yellow","(Current)")}`),r.push({name:c,value:i})}r.sort((i,s)=>n===i.value?-1:n===s.value?1:0),t.length>0&&(r.push(new M),r.push({name:`${a("blue","+")} Install to another client - ${l(`${t.length} available`)}`,value:"install-new"})),r.push(new M),r.push({name:`${a("cyan","-")} Custom Path - ${l("Specify your own MCP config path")}`,value:"custom"}),r.push(new M),r.push({name:`${a("dim","- Back")}`,value:"back"});let o=await j({message:"Select configuration to manage:",choices:r,loop:!1});if(o==="back")return null;if(o==="install-new")return await kb(t,n);if(o==="custom"){let i=await Ll();return i?{client:"custom",customPath:i}:null}return{client:o}}async function kb(e,t){console.log(),console.log(` ${a("blue","INFO")} Select a client for new installation:`),console.log();let n=[];for(let{clientId:o,status:i}of e){let s=B[o],c=`${s.name} - ${l(s.description)}`;c+=` ${Fp(i)}`,t===o&&(c=`${a("green","\u2605")} ${c} ${a("yellow","(Current)")}`),n.push({name:c,value:o})}n.sort((o,i)=>t===o.value?-1:t===i.value?1:0),n.push(new M),n.push({name:`${a("dim","- Back to configurations")}`,value:"back"});let r=await j({message:"Select client to install Octocode:",choices:n,loop:!1});if(r==="back"){let i=Zp().filter(s=>s.status.octocodeInstalled);return await Bp(i,e,t)}return{client:r}}function Up(e){if(e.startsWith("~")){let t=process.env.HOME||process.env.USERPROFILE||"";return Dl.join(t,e.slice(1))}return e}async function Ll(){console.log(),console.log(` ${a("blue","INFO")} Enter the full path to your MCP config file (JSON)`),console.log(` ${l("Leave empty to go back")}`),console.log(),console.log(` ${l("Common paths:")}`),console.log(` ${l("\u2022")} ~/.cursor/mcp.json ${l("(Cursor)")}`),console.log(` ${l("\u2022")} ~/Library/Application Support/Claude/claude_desktop_config.json`),console.log(` ${l("(Claude Desktop)")}`),console.log(` ${l("\u2022")} ~/.claude.json ${l("(Claude Code)")}`),console.log(` ${l("\u2022")} ~/.config/opencode/config.json ${l("(Opencode)")}`),console.log(` ${l("\u2022")} ~/.codeium/windsurf/mcp_config.json ${l("(Windsurf)")}`),console.log(` ${l("\u2022")} ~/Library/Application Support/Trae/mcp.json ${l("(Trae)")}`),console.log(` ${l("\u2022")} ~/.gemini/antigravity/mcp_config.json ${l("(Antigravity)")}`),console.log(` ${l("\u2022")} ~/.config/zed/settings.json ${l("(Zed)")}`),console.log(` ${l("\u2022")} ~/.continue/config.json ${l("(Continue)")}`),console.log(` ${l("\u2022")} ~/.codex/config.toml ${l("(Codex - TOML format)")}`),console.log(` ${l("\u2022")} ~/.gemini/settings.json ${l("(Gemini CLI)")}`),console.log(` ${l("\u2022")} ~/.kiro/mcp.json ${l("(Kiro)")}`),console.log();let e=await ae({message:"MCP config path (or press Enter to go back):",validate:t=>{if(!t.trim())return!0;let n=Up(t);if(!n.endsWith(".json"))return"Path must be a .json file (e.g., mcp.json, config.json)";if(!Dl.isAbsolute(n))return"Please provide an absolute path (starting with / or ~)";let r=Dl.dirname(n);return F(r)?!0:`Parent directory does not exist: ${r}
|
|
39
|
-
Create it first or choose a different location.`}});return!e||!e.trim()?null:Up(e)}async function Vp(){console.log(),console.log(` ${a("blue","INFO")} ${f("Local Tools")}`),console.log(` ${l("Enable local filesystem tools for searching and reading files")}`),console.log(` ${l("in your local codebase.")}`),console.log();let e=await j({message:"Enable local tools?",choices:[{name:`${a("green","\u25CF")} Disable ${l("(Recommended)")} - ${l("Use only GitHub tools")}`,value:"disable"},{name:`${a("yellow","\u25CB")} Enable - ${l("Allow local file exploration")}`,value:"enable"},new M,{name:`${a("dim","- Back")}`,value:"back"}],loop:!1});return e==="back"?null:e==="enable"}async function Gp(){console.log(),console.log(` ${a("blue","INFO")} ${f("GitHub Authentication")}`),console.log(` ${l("Required for accessing GitHub repositories.")}`),console.log();let e=await j({message:"How would you like to authenticate with GitHub?",choices:[{name:`${a("green","\u25CF")} gh CLI ${l("(Recommended)")} - ${l("Uses existing gh auth")}`,value:"gh-cli"},{name:`${a("yellow","\u25CF")} GITHUB_TOKEN - ${l("Enter personal access token")}`,value:"token"},{name:`${a("dim","\u25CB")} Skip - ${l("Configure manually later")}`,value:"skip"},new M,{name:`${a("dim","- Back")}`,value:"back"}],loop:!1});if(e==="back")return null;if(e==="gh-cli")return console.log(),console.log(` ${a("cyan","->")} Make sure gh CLI is installed and authenticated:`),console.log(` ${l("https://cli.github.com/")}`),console.log(),console.log(` ${l("Run")} ${a("cyan","gh auth login")} ${l("if not already authenticated.")}`),console.log(),{method:"gh-cli"};if(e==="token"){console.log(),console.log(` ${l("Leave empty and press Enter to go back")}`),console.log();let t=await ae({message:"Enter your GitHub personal access token:",validate:n=>n.trim()&&n.length<20?"Token appears too short":!0});return!t||!t.trim()?null:(console.log(),console.log(` ${a("yellow","WARN")} ${f("Security Note:")}`),console.log(` ${l("Your token will be saved in the MCP configuration file.")}`),console.log(` ${l("Make sure this file is not committed to version control.")}`),console.log(),{method:"token",token:t})}return{method:"skip"}}function Wp(e){let t=e.env&&Object.keys(e.env).length>0,n=e.args??[];if(console.log(),console.log(a("dim"," {")),console.log(a("dim",' "mcpServers": {')),console.log(a("magenta",' "octocode"')+a("dim",": {")),console.log(a("dim",' "command": ')+a("green",`"${e.command}"`)+a("dim",",")),console.log(a("dim",' "args": [')),n.forEach((r,o)=>{let i=o===n.length-1,s=r.length>50?r.slice(0,47)+"...":r;console.log(a("dim"," ")+a("green",`"${s}"`)+(i&&!t?"":a("dim",",")))}),console.log(a("dim"," ]")+(t?a("dim",","):"")),t&&e.env){console.log(a("dim",' "env": {'));let r=Object.entries(e.env);r.forEach(([o,i],s)=>{let c=s===r.length-1,u=o.toLowerCase(),d=u.includes("token")||u.includes("secret")?"***":i;console.log(a("dim"," ")+a("cyan",`"${o}"`)+a("dim",": ")+a("green",`"${d}"`)+(c?"":a("dim",",")))}),console.log(a("dim"," }"))}console.log(a("dim"," }")),console.log(a("dim"," }")),console.log(a("dim"," }")),console.log()}function Hp(e){console.log(),console.log(` ${a("red","X")} ${f("Installation failed")}`),e.error&&console.log(` ${l("Error:")} ${e.error}`),console.log()}function qp(e){console.log(),console.log(a("cyan"," \u250C"+"\u2500".repeat(60)+"\u2510"));let n;if(e.url)n=e.url;else{let s=e.args??[];n=e.command?`${e.command} ${s.join(" ")}`.trim():"(no command configured)"}let r=56,o=n.length>r?n.slice(0,r-3)+"...":n,i=Math.max(0,58-o.length);if(console.log(a("cyan"," \u2502 ")+l(o)+" ".repeat(i)+a("cyan","\u2502")),e.env&&Object.keys(e.env).length>0){console.log(a("cyan"," \u2502")+" ".repeat(60)+a("cyan","\u2502"));let s="Environment:",c=58-s.length;console.log(a("cyan"," \u2502 ")+f(s)+" ".repeat(c)+a("cyan","\u2502"));for(let[u,m]of Object.entries(e.env)){let d=u.toLowerCase(),h=d.includes("token")||d.includes("secret")?"***":m,v=` ${u}: ${h}`,g=v.length>r?v.slice(0,r-3)+"...":v,C=Math.max(0,58-g.length);console.log(a("cyan"," \u2502 ")+l(g)+" ".repeat(C)+a("cyan","\u2502"))}}console.log(a("cyan"," \u2514"+"\u2500".repeat(60)+"\u2518"))}async function Rl(){await oe(),console.log(),console.log(a("blue","\u2501".repeat(66))),console.log(` ${f("Configure MCP server for your environment")}`),console.log(a("blue","\u2501".repeat(66))),console.log();let e={client:null,hasExistingOctocode:!1,enableLocal:!1,githubAuth:{method:"skip"}},t="client";for(;t!=="done";)switch(t){case"client":{let n=await mn();if(!n)return;e.client=n.client,e.customPath=n.customPath;let r=e.customPath||Y(e.client),o=J(r);e.hasExistingOctocode=!!o?.mcpServers?.octocode,e.hasExistingOctocode?t="updateConfirm":t="localTools";break}case"updateConfirm":{let n=e.customPath||Y(e.client),r=J(n);console.log(),console.log(a("yellow"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","WARN")} ${f("Octocode is already configured!")}`+" ".repeat(28)+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${f("Current octocode configuration:")}`),qp(r.mcpServers.octocode),console.log(),console.log(` ${l("Config file:")} ${a("cyan",n)}`),console.log(),await j({message:"What would you like to do?",choices:[{name:`${a("green","\u2705")} Update existing configuration`,value:"update"},new M,{name:`${a("dim","- Back to client selection")}`,value:"back"}],loop:!1})==="back"?t="client":t="localTools";break}case"localTools":{let n=await Vp();n===null?t=e.hasExistingOctocode?"updateConfirm":"client":(e.enableLocal=n,t="githubAuth");break}case"githubAuth":{let n=await Gp();n===null?t="localTools":(e.githubAuth=n,t="confirm");break}case"confirm":{let n=await wb(e);if(n==="proceed")t="install";else if(n==="back")t="githubAuth";else{console.log(` ${l("Configuration cancelled.")}`);return}break}case"install":{await Cb(e),t="done";break}default:break}}async function wb(e){let t=B[e.client],n="npx",r={};e.enableLocal&&(r.enableLocal=!0),e.githubAuth.method==="token"&&e.githubAuth.token&&(r.githubToken=e.githubAuth.token);let o=un(e.client,n,e.customPath,r);console.log(),e.hasExistingOctocode?console.log(` ${a("yellow","WARN")} Will ${a("yellow","UPDATE")} existing octocode configuration`):o.action==="add"?console.log(` ${a("blue","INFO")} Config file exists, will ${a("green","ADD")} octocode entry`):console.log(` ${a("green","\u2705")} Will ${a("green","CREATE")} new config file`),console.log(),console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+f("Configuration to be added:")+" ".repeat(33)+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),Wp(o.serverConfig),console.log(),console.log(` ${f("Summary:")}`),console.log(` ${l("Client:")} ${t.name}`),console.log(` ${l("Method:")} npx (octocode-mcp@latest)`);let i=e.enableLocal?a("green","Enabled"):a("dim","Disabled");console.log(` ${l("Local Tools:")} ${i}`);let s;e.githubAuth.method==="token"?s=a("green","Token configured"):e.githubAuth.method==="gh-cli"?s=a("cyan","Using gh CLI"):s=a("dim","Not configured"),console.log(` ${l("GitHub Auth:")} ${s}`);let c;return e.hasExistingOctocode?c=a("yellow","UPDATE"):o.action==="add"?c=a("green","ADD"):c=a("green","CREATE"),console.log(` ${l("Action:")} ${c}`),console.log(),console.log(` ${a("yellow","WARN")} ${f("Note:")}`),console.log(` ${l("Nothing is saved to any server. Configuration is stored locally at:")}`),console.log(` ${a("cyan",o.configPath)}`),console.log(),await j({message:"What would you like to do?",choices:[{name:`${a("green","\u2705")} Proceed with configuration`,value:"proceed"},new M,{name:`${a("dim","- Back to edit options")}`,value:"back"},{name:`${a("dim","X Cancel")}`,value:"cancel"}],loop:!1})}async function Cb(e){let n={};e.enableLocal&&(n.enableLocal=!0),e.githubAuth.method==="token"&&e.githubAuth.token&&(n.githubToken=e.githubAuth.token);let r=un(e.client,"npx",e.customPath,n),o=new D("Configuring octocode-mcp...").start(),i=Jr({client:e.client,method:"npx",customPath:e.customPath,force:e.hasExistingOctocode,envOptions:n});i.success?(o.succeed("Octocode configured successfully!"),Sb(i,e.client,r.configPath)):(o.fail("Configuration failed"),Hp(i))}function Sb(e,t,n){let r=B[t];console.log(),console.log(a("green"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("green"," \u2502 ")+`${a("green","\u2705")} ${f("Octocode installed successfully!")}`+" ".repeat(26)+a("green","\u2502")),console.log(a("green"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${f("Configuration saved to:")}`),console.log(` ${a("cyan",n)}`),console.log(),e.backupPath&&(console.log(` ${l("Backup saved to:")} ${e.backupPath}`),console.log()),console.log(` ${f("Next steps:")}`),console.log(` 1. Restart ${r?.name||t}`),console.log(` 2. Look for ${a("cyan","octocode")} in MCP servers`),console.log()}var Ve=null;function Jp(e,t){console.log(e?` ${a("green","\u2705")} Node ${f(t||"unknown")}`:` ${a("red","X")} Node ${a("red","not found")}`)}function Kp(e,t){console.log(e?` ${a("green","\u2705")} npm ${f(t||"unknown")}`:` ${a("yellow","WARN")} npm ${a("yellow","not found")}`)}function Xp(e,t){let n=t!==null?`(${t}ms)`:"";switch(e){case"ok":console.log(` ${a("green","\u2705")} Registry ${l(n)}`);break;case"slow":console.log(` ${a("yellow","WARN")} Registry ${a("yellow","slow")} ${l(n)}`);break;case"failed":console.log(` ${a("red","X")} Registry ${a("red","unreachable")} ${t!==null?l(n):""}`);break;default:break}}async function pn(){if(Ve)return Jp(Ve.nodeInstalled,Ve.nodeVersion),Kp(Ve.npmInstalled,Ve.npmVersion),Xp(Ve.registryStatus,Ve.registryLatency),Ve;let e=Kr();Jp(e.installed,e.version);let t=Xr();Kp(t.installed,t.version);let n=new D(" Registry: Checking...").start(),r=await Np();return n.clear(),Xp(r.status,r.latency),Ve={nodeInstalled:e.installed,nodeVersion:e.version,npmInstalled:t.installed,npmVersion:t.version,registryStatus:r.status,registryLatency:r.latency,octocodePackageAvailable:t.installed&&r.status==="ok",octocodePackageVersion:null},Ve}function Ul(){console.log(` ${l("For deeper diagnostics:")} ${a("cyan","npx node-doctor")}`)}function gn(e){return!e.nodeInstalled||!e.npmInstalled||e.registryStatus==="slow"||e.registryStatus==="failed"}function xb(e){let t=B[e.client]?.name||e.client;return e.octocodeInstalled?`${t} ${l("(Octocode installed)")}`:t}async function _b(e,t,n){if(console.log(),console.log(a("blue","\u2501".repeat(66))),console.log(` ${f("MCP Server Details")}`),console.log(a("blue","\u2501".repeat(66))),console.log(),console.log(` ${l("ID:")} ${a("cyan",t)}`),console.log(` ${l("Command:")} ${a("green",n.command||"unknown")}`),n.args&&n.args.length>0&&(console.log(` ${l("Args:")}`),n.args.forEach(o=>{console.log(` ${o}`)})),n.env&&Object.keys(n.env).length>0&&(console.log(` ${l("Environment:")}`),Object.entries(n.env).forEach(([o,i])=>{let c=o.includes("KEY")||o.includes("TOKEN")||o.includes("SECRET")?"********":i;console.log(` ${o}=${c}`)})),console.log(),await j({message:"",choices:[{name:`${a("red","Delete")} - Remove Server`,value:"remove",description:"Remove this server from configuration"},new M,{name:`${a("dim","- Back")}`,value:"back"}],loop:!1,theme:{prefix:" ",style:{highlight:o=>a("cyan",o)}}})==="remove"&&await yt({message:`Are you sure you want to remove "${t}" from ${B[e.client]?.name}?`,default:!1})){let i=e.configPath,s=J(i);if(s){let c=new D("Removing server...").start(),u=Ap(s,t),m=xe(i,u);m.success?c.succeed(`Removed ${t}`):c.fail(`Failed to remove: ${m.error}`),console.log(),await new Promise(d=>setTimeout(d,1e3))}}}async function Pb(e){let t=!0;for(;t;){let n=e.configPath,r=J(n);if(!r||!r.mcpServers){console.log(),console.log(` ${a("yellow","WARN")} No MCP configuration found or empty.`),console.log(),await new Promise(c=>setTimeout(c,1500));return}let o=Object.keys(r.mcpServers);if(o.length===0){console.log(),console.log(` ${a("yellow","WARN")} No MCP servers configured.`),console.log(),await new Promise(c=>setTimeout(c,1500));return}console.log(),console.log(` ${f(B[e.client]?.name||e.client)}`),console.log(` ${l(n)}`),console.log();let i=o.map(c=>({name:c==="octocode"?`${c}`:`MCP ${c}`,value:c,description:r.mcpServers[c].command}));i.push(new M),i.push({name:`${a("dim","- Back")}`,value:"back"});let s=await j({message:"Select an MCP server to inspect:",choices:i,pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:c=>a("cyan",c),message:c=>f(c)}}});s==="back"?t=!1:await _b(e,s,r.mcpServers[s])}}async function Fl(){await oe();let e=!0;for(;e;){let n=qr().filter(i=>i.configExists);if(n.length===0){console.log(),console.log(` ${a("yellow","WARN")} No configured MCP clients found.`),console.log();return}console.log(),console.log(a("blue","\u2501".repeat(66))),console.log(` Info: ${f("MCP Configuration Details")}`),console.log(a("blue","\u2501".repeat(66))),console.log();let r=n.map(i=>({name:xb(i),value:i.client,description:i.configPath}));r.push(new M),r.push({name:`${a("dim","- Back")}`,value:"back"});let o=await j({message:"Select a client to inspect:",choices:r,pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:i=>a("cyan",i),message:i=>f(i)}}});if(o==="back")e=!1;else{let i=n.find(s=>s.client===o);i&&await Pb(i)}}}var Yp={github:[{id:"githubSearchCode",name:"Search Code",description:"Search for code patterns in GitHub repositories"},{id:"githubGetFileContent",name:"Get File Content",description:"Fetch file content from GitHub repositories"},{id:"githubViewRepoStructure",name:"View Repo Structure",description:"Browse repository directory structure"},{id:"githubSearchRepositories",name:"Search Repositories",description:"Search for GitHub repositories"},{id:"githubSearchPullRequests",name:"Search Pull Requests",description:"Search for pull requests and view diffs"},{id:"packageSearch",name:"Package Search",description:"Search npm/Python packages and find their repos"}],local:[{id:"localSearchCode",name:"Ripgrep Search",description:"Fast content search with regex support"},{id:"localViewStructure",name:"View Structure",description:"Browse local directory structure"},{id:"localFindFiles",name:"Find Files",description:"Find files by name, time, size, permissions"},{id:"localGetFileContent",name:"Fetch Content",description:"Read targeted sections of local files"}]},Ot=[{id:"enableLocal",envVar:"ENABLE_LOCAL",name:"Local File Tools",description:"Enable local file exploration tools for searching and browsing local files",type:"boolean",defaultValue:"false"},{id:"githubApiUrl",envVar:"GITHUB_API_URL",name:"GitHub API URL",description:"Custom GitHub API endpoint (for GitHub Enterprise)",type:"string",defaultValue:"https://api.github.com"},{id:"toolsToRun",envVar:"TOOLS_TO_RUN",name:"Tools to Run",description:"Specific tools to enable (all others disabled)",type:"array",defaultValue:"",toolCategory:"all"},{id:"enableTools",envVar:"ENABLE_TOOLS",name:"Enable Tools",description:"Additional tools to enable",type:"array",defaultValue:"",toolCategory:"all"},{id:"disableTools",envVar:"DISABLE_TOOLS",name:"Disable Tools",description:"Tools to disable",type:"array",defaultValue:"",toolCategory:"all"},{id:"requestTimeout",envVar:"REQUEST_TIMEOUT",name:"Request Timeout",description:"API request timeout in milliseconds",type:"number",defaultValue:"30000",validation:{min:3e4,max:6e5}},{id:"maxRetries",envVar:"MAX_RETRIES",name:"Max Retries",description:"Maximum number of API retry attempts",type:"number",defaultValue:"3",validation:{min:0,max:10}}];function Ib(){return[...Yp.github.map(e=>({...e,category:"github"})),...Yp.local.map(e=>({...e,category:"local"}))]}function fn(e,t){let n=e[t.envVar];return n==null||n===""?t.defaultValue:n}function ei(e,t,n=!1){let r=n?a("yellow"," \u2022"):"";if(e.type==="boolean"){let o=t==="1"||t.toLowerCase()==="true",i=o?a("green","\u2705"):a("dim","\u25CB"),s=o?a("green","enabled"):a("dim","disabled");return`${i} ${s}${r}`}if(e.type==="array"){if(!t||t===""){let s=e.id==="toolsToRun"?"(all tools)":"(none)";return`${a("dim","\u25CB")} ${a("dim",s)}${r}`}let o=t.split(",").filter(s=>s.trim()),i=o.length>2?`${o.slice(0,2).join(", ")} ${a("dim",`+${o.length-2} more`)}`:o.join(", ");return`${a("green","\u25CF")} ${i}${r}`}return e.type==="number"?t===e.defaultValue?`${a("dim","\u25CB")} ${t} ${a("dim","(default)")}${r}`:`${a("cyan","\u25CF")} ${a("cyan",t)}${r}`:t===e.defaultValue?`${a("dim","\u25CB")} ${a("dim",t)}${r}`:`${a("cyan","\u25CF")} ${a("cyan",t)}${r}`}function Tb(e){return e==="1"||e.toLowerCase()==="true"}async function Ob(){return await j({message:"",choices:[{name:"- Edit configuration",value:"edit",description:"Configure all octocode-mcp settings for a client"},{name:"- View all configuration options",value:"view",description:"Show available environment variables and their defaults"},{name:"- Show current JSON config",value:"show-json",description:"Display the actual MCP config JSON for a client"},new M,{name:`${a("dim","- Back to main menu")}`,value:"back"}],pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:t=>a("cyan",t)}}})}async function Qp(){switch(await oe(),await Ob()){case"view":Zb(),await Eb();break;case"edit":await Lb();break;case"show-json":await Rb();break;default:break}}async function Eb(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}async function eg(e){console.log();let t=await j({message:"Open config file?",choices:[{name:"- Open in Cursor",value:"cursor",description:"Open in Cursor IDE"},{name:"- Open in VS Code",value:"vscode",description:"Open in Visual Studio Code"},{name:"- Open in default app",value:"default",description:"Open with system default application"},new M,{name:`${a("dim","- Skip")}`,value:"no"}],pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:r=>a("cyan",r),message:r=>f(r)}}});if(t==="no")return;xp(e,t)?console.log(` ${a("green","\u2705")} Opened ${e}`):(console.log(` ${a("yellow","WARN")} Could not open file automatically`),console.log(` ${l("Try opening manually:")} ${a("cyan",e)}`)),console.log()}async function Ab(e,t){let r=Tb(t)?a("green","enabled"):a("dim","disabled");console.log(),console.log(` ${f(e.name)}`),console.log(` ${l(e.description)}`),console.log(` ${l("Current:")} ${r}`),console.log();let o=await j({message:`${e.name}:`,choices:[{name:`${a("green","\u2705")} Enable`,value:"enable"},{name:`${a("yellow","\u25CB")} Disable`,value:"disable"},new M,{name:`${a("dim","- Cancel")}`,value:"cancel"}],loop:!1});return o==="cancel"?null:o==="enable"?"1":"false"}async function Mb(e,t){let n=t&&t!==e.defaultValue?a("cyan",t):a("dim",t||e.defaultValue);console.log(),console.log(` ${f(e.name)}`),console.log(` ${l(e.description)}`),console.log(` ${l("Current:")} ${n}`),console.log(` ${l("Default:")} ${e.defaultValue}`),console.log(` ${l("(Leave empty and press Enter to cancel)")}`),console.log();let r=await ae({message:`${e.name}:`,default:"",validate:o=>o.trim()&&e.validation?.pattern&&!e.validation.pattern.test(o)?"Invalid format":!0});return r.trim()?r===e.defaultValue?"":r:null}async function Nb(e,t){let n=t&&t!==e.defaultValue?a("cyan",t):a("dim",t||e.defaultValue);if(console.log(),console.log(` ${f(e.name)}`),console.log(` ${l(e.description)}`),console.log(` ${l("Current:")} ${n}`),e.validation?.min!==void 0||e.validation?.max!==void 0){let o=e.validation?.min??0,i=e.validation?.max??1/0;console.log(` ${l("Range:")} ${o} - ${i===1/0?"\u221E":i}`)}console.log(` ${l("Default:")} ${e.defaultValue}`),console.log(` ${l("(Leave empty and press Enter to cancel)")}`),console.log();let r=await ae({message:`${e.name}:`,default:"",validate:o=>{if(!o.trim())return!0;let i=parseInt(o,10);return isNaN(i)?"Please enter a valid number":e.validation?.min!==void 0&&i<e.validation.min?`Minimum value is ${e.validation.min}`:e.validation?.max!==void 0&&i>e.validation.max?`Maximum value is ${e.validation.max}`:!0}});return r.trim()?r===e.defaultValue?"":r:null}async function zb(e,t){let n=Ib(),r=t?t.split(",").map(m=>m.trim()).filter(Boolean):[],o=r.length>0?r.join(", "):e.id==="toolsToRun"?a("dim","(all tools)"):a("dim","(none)");console.log(),console.log(` ${f(e.name)}`),console.log(` ${l(e.description)}`),console.log(` ${l("Current:")} ${o}`),console.log();let i=await j({message:`${e.name}:`,choices:[{name:"EDIT Select tools",value:"select",description:"Choose which tools to include"},{name:`${a("yellow","\u21BA")} Clear all`,value:"clear",description:e.id==="toolsToRun"?"Reset to all tools enabled":"Remove all tools from this list"},new M,{name:`${a("dim","- Cancel")}`,value:"cancel"}],loop:!1});if(i==="cancel")return null;if(i==="clear")return"";let s=[];s.push({name:a("blue","\u2500\u2500 GitHub Tools \u2500\u2500"),value:"__separator_github__",disabled:!0});for(let m of n.filter(d=>d.category==="github"))s.push({name:`${m.name} ${a("dim",`(${m.id})`)}`,value:m.id,checked:r.includes(m.id),description:m.description});s.push({name:a("yellow","\u2500\u2500 Local Tools \u2500\u2500"),value:"__separator_local__",disabled:!0});for(let m of n.filter(d=>d.category==="local"))s.push({name:`${m.name} ${a("dim",`(${m.id})`)}`,value:m.id,checked:r.includes(m.id),description:m.description});s.push({name:a("dim","\u2500\u2500 Actions \u2500\u2500"),value:"__separator_actions__",disabled:!0}),s.push({name:`${a("dim","- Cancel (keep current)")}`,value:"__cancel__",checked:!1,description:"Go back without changes"}),console.log(),console.log(` ${l("Use Space to select/deselect, Enter to confirm, or select Cancel")}`);let c=await En({message:`Select tools for ${e.name}:`,choices:s,pageSize:16,loop:!1,theme:{prefix:" ",style:{highlight:m=>a("cyan",m),message:m=>f(m)}}});if(c.includes("__cancel__"))return null;let u=c.filter(m=>!m.startsWith("__separator")&&m!=="__cancel__");return u.length>0?u.join(","):""}function hn(e,t,n){let r=e[n.envVar]??"",o=t[n.envVar]??"";return r!==o}function jb(e,t){let n=0;for(let r of Ot)hn(e,t,r)&&n++;return n}async function Db(e,t){let n=[],r=Ot.filter(d=>d.type==="boolean"),o=Ot.filter(d=>d.type==="string"),i=Ot.filter(d=>d.type==="number"),s=Ot.filter(d=>d.type==="array"),c=jb(t,e),u=c>0?`${a("yellow","\u25CF")} ${c} unsaved ${c===1?"change":"changes"}`:`${a("green","\u25CF")} No unsaved changes`;if(n.push({name:`${a("dim","\u2500\u2500")} ${u} ${a("dim","\u2500\u2500")}`,value:"__status__"}),r.length>0){n.push({name:a("dim","\u2500\u2500 Features \u2500\u2500"),value:"__sep1__"});for(let d of r){let p=fn(e,d),h=hn(t,e,d),v=ei(d,p,h);n.push({name:`${d.name}: ${v}`,value:d.id,description:d.description})}}if(o.length>0){n.push({name:a("dim","\u2500\u2500 Endpoints \u2500\u2500"),value:"__sep2__"});for(let d of o){let p=fn(e,d),h=hn(t,e,d),v=ei(d,p,h);n.push({name:`${d.name}: ${v}`,value:d.id,description:d.description})}}if(i.length>0){n.push({name:a("dim","\u2500\u2500 Performance \u2500\u2500"),value:"__sep3__"});for(let d of i){let p=fn(e,d),h=hn(t,e,d),v=ei(d,p,h);n.push({name:`${d.name}: ${v}`,value:d.id,description:d.description})}}if(s.length>0){n.push({name:a("dim","\u2500\u2500 Tool Selection \u2500\u2500"),value:"__sep4__"});for(let d of s){let p=fn(e,d),h=hn(t,e,d),v=ei(d,p,h);n.push({name:`${d.name}: ${v}`,value:d.id,description:d.description})}}return n.push({name:a("dim","\u2500\u2500 Actions \u2500\u2500"),value:"__sep5__"}),c>0?n.push({name:`${a("green","Save")} Save changes ${a("yellow",`(${c})`)}`,value:"save",description:"Save configuration and exit"}):n.push({name:`${a("dim","Save")} Save changes`,value:"save",description:l("No changes to save")}),n.push({name:`${a("yellow","\u21BA")} Reset to defaults`,value:"reset",description:"Clear all custom configuration"}),n.push({name:`${a("dim","- Back")}`,value:"back"}),await j({message:"Select option to configure:",choices:n,pageSize:20,loop:!1,theme:{prefix:" ",style:{highlight:d=>a("cyan",d),message:d=>f(d)}}})}async function Lb(){let e=await mn();if(!e)return;let{client:t,customPath:n}=e,r=B[t],o=n||Y(t),i=J(o);if(!i){console.log(),console.log(` ${a("red","X")} Failed to read config file: ${o}`),console.log();return}if(!Tt(i)){console.log(),console.log(` ${a("yellow","WARN")} Octocode is not configured for ${r.name}.`),console.log(` ${l('Please install Octocode first using "Install octocode-mcp".')}`),console.log();return}console.log(),console.log(` ${l("Config file:")} ${a("cyan",o)}`),console.log(` ${l("Client:")} ${r.name}`),console.log();let s={...i.mcpServers?.octocode?.env||{}},c={...s},u=!0;for(;u;){let m=await Db(c,s);if(!(m.startsWith("__sep")||m==="__status__"))switch(m){case"save":{if(!(JSON.stringify(s)!==JSON.stringify(c))){console.log(),console.log(` ${l("No changes to save.")}`),console.log(),u=!1;break}let p=new D("Saving configuration...").start(),h={};for(let[C,k]of Object.entries(c))k&&k!==""&&(h[C]=k);let v={...i,mcpServers:{...i.mcpServers,octocode:{...i.mcpServers.octocode,env:Object.keys(h).length>0?h:void 0}}};v.mcpServers?.octocode?.env&&Object.keys(v.mcpServers.octocode.env).length===0&&delete v.mcpServers.octocode.env;let g=xe(o,v);g.success?(p.succeed("Configuration saved!"),console.log(),console.log(` ${a("green","\u2705")} Config saved to: ${o}`),g.backupPath&&console.log(` ${l("Backup:")} ${g.backupPath}`),console.log(),console.log(` ${f("Note:")} Restart ${r.name} for changes to take effect.`),await eg(o)):(p.fail("Failed to save configuration"),console.log(),console.log(` ${a("red","X")} ${g.error||"Unknown error"}`),console.log()),u=!1;break}case"reset":{if(await yt({message:"Reset all configuration to defaults?",default:!1})){for(let p of Object.keys(c))delete c[p];console.log(` ${a("yellow","\u21BA")} Configuration reset to defaults`)}break}case"back":{if(JSON.stringify(s)!==JSON.stringify(c)&&!await yt({message:"Discard unsaved changes?",default:!1}))break;u=!1;break}default:{let d=Ot.find(v=>v.id===m);if(!d)break;let p=fn(c,d),h=null;switch(d.type){case"boolean":h=await Ab(d,p);break;case"string":h=await Mb(d,p);break;case"number":h=await Nb(d,p);break;case"array":h=await zb(d,p);break;default:break}h!==null&&(h===""||h===d.defaultValue?delete c[d.envVar]:c[d.envVar]=h);break}}}}async function Rb(){let e=await mn();if(!e)return;let{client:t,customPath:n}=e,r=B[t],o=n||Y(t),i=J(o);if(!i){console.log(),console.log(` ${a("red","X")} Failed to read config file: ${o}`),console.log();return}if(!Tt(i)){console.log(),console.log(` ${a("yellow","WARN")} Octocode is not configured for ${r.name}.`),console.log(` ${l('Please install Octocode first using "Install octocode-mcp".')}`),console.log();return}let s=i.mcpServers?.octocode;console.log(),console.log(` ${l("Client:")} ${r.name} ${l("\u2022")} ${a("cyan",o)}`),console.log();let u=JSON.stringify({octocode:s},null,2).split(`
|
|
40
|
-
`);for(let m of u){let d=m.replace(/"([^"]+)":/g,`${a("cyan",'"$1"')}:`).replace(/: "([^"]+)"/g,`: ${a("green",'"$1"')}`).replace(/: (\d+)/g,`: ${a("yellow","$1")}`).replace(/: (true|false)/g,`: ${a("magenta","$1")}`);console.log(` ${d}`)}console.log(),await eg(o)}function Ub(e){switch(e.id){case"enableLocal":return"ENABLE_LOCAL=1";case"githubApiUrl":return"GITHUB_API_URL=https://github.mycompany.com/api/v3";case"toolsToRun":return"TOOLS_TO_RUN=githubSearchCode,githubGetFileContent";case"enableTools":return"ENABLE_TOOLS=localSearchCode,localFindFiles";case"disableTools":return"DISABLE_TOOLS=githubSearchPullRequests";case"requestTimeout":return"REQUEST_TIMEOUT=60000";case"maxRetries":return"MAX_RETRIES=5";default:return`${e.envVar}=${e.defaultValue}`}}function Fb(e){return e.type==="array"?e.id==="toolsToRun"?"(all tools)":"(none)":e.defaultValue}function Zb(){console.log(),console.log(` ${f("All Available Configuration Options")}`),console.log(),console.log(` ${l("These options can be set as environment variables in your MCP config.")}`),console.log(` ${l('Add them to the "env" object in your octocode server configuration.')}`),console.log(),console.log(` ${l("Example config:")}`),console.log(` ${l("{")}
|
|
41
|
-
${l(' "mcpServers": {')}
|
|
42
|
-
${l(' "octocode": {')}
|
|
43
|
-
${l(' "command": "npx",')}
|
|
44
|
-
${l(' "args": ["octocode-mcp@latest"],')}
|
|
45
|
-
${a("green",' "env": { "ENABLE_LOCAL": "1" }')}
|
|
46
|
-
${l(" }")}
|
|
47
|
-
${l(" }")}
|
|
48
|
-
${l("}")}`),console.log(),console.log(a("blue","\u2501".repeat(66))),console.log();for(let e of Ot){let t=e.type==="boolean"?"green":e.type==="number"?"yellow":e.type==="array"?"magenta":"cyan";console.log(` ${a("cyan",e.envVar)} ${l(`(${e.type})`)}`),console.log(` ${e.description}`),console.log(` ${l("Default:")} ${Fb(e)}`),console.log(` ${l("Example:")} ${a(t,Ub(e))}`),console.log()}}function ze(e,t){if(e==null)throw new Error(`Assertion failed: ${t}`);return e}var Bb=$.enum(["browser-automation","database","cloud-platform","developer-tools","file-system","communication","search-web","ai-services","workflow-automation","version-control","data-visualization","coding-agents","security","productivity","monitoring","finance","social-media","aggregator","other"]),Vb=$.object({id:$.string().min(1),name:$.string().min(1),description:$.string().min(1),category:Bb,repository:$.string(),website:$.string().optional(),stars:$.number().optional(),installationType:$.enum(["npm","npx","pip","docker","source"]),npmPackage:$.string().optional(),pipPackage:$.string().optional(),dockerImage:$.string().optional(),installConfig:$.object({command:$.string().min(1),args:$.array($.string()),env:$.record($.string(),$.string()).optional()}),requiredEnvVars:$.array($.object({name:$.string(),description:$.string(),example:$.string().optional()})).optional(),official:$.boolean().optional(),tags:$.array($.string()).optional()}),ve=[{id:"playwright-mcp",name:"Playwright MCP",description:"Official Microsoft Playwright MCP server for browser automation via accessibility snapshots",category:"browser-automation",repository:"https://github.com/microsoft/playwright-mcp",website:"https://playwright.dev",installationType:"npx",npmPackage:"@playwright/mcp",official:!0,installConfig:{command:"npx",args:["-y","@playwright/mcp@latest"]},tags:["browser","automation","testing","microsoft","official"]},{id:"firecrawl-mcp-server",name:"Firecrawl MCP",description:"Powerful web scraping and search for Claude, Cursor and LLM clients",category:"browser-automation",repository:"https://github.com/firecrawl/firecrawl-mcp-server",website:"https://firecrawl.dev",installationType:"npx",npmPackage:"firecrawl-mcp",official:!0,installConfig:{command:"npx",args:["-y","firecrawl-mcp"]},requiredEnvVars:[{name:"FIRECRAWL_API_KEY",description:"Firecrawl API key",example:"fc-xxxxx"}],tags:["scraping","web","search","official"]},{id:"browserbase-mcp",name:"Browserbase MCP",description:"Cloud browser automation for web navigation, data extraction, form filling",category:"browser-automation",repository:"https://github.com/browserbase/mcp-server-browserbase",website:"https://browserbase.com",installationType:"npx",npmPackage:"@browserbasehq/mcp-server-browserbase",official:!0,installConfig:{command:"npx",args:["-y","@browserbasehq/mcp-server-browserbase"]},requiredEnvVars:[{name:"BROWSERBASE_API_KEY",description:"Browserbase API key"},{name:"BROWSERBASE_PROJECT_ID",description:"Browserbase project ID"}],tags:["browser","cloud","automation","official"]},{id:"chrome-devtools-mcp",name:"Chrome DevTools MCP",description:"Chrome DevTools for coding agents - debugging and browser control",category:"browser-automation",repository:"https://github.com/ChromeDevTools/chrome-devtools-mcp",installationType:"npx",npmPackage:"chrome-devtools-mcp",official:!0,installConfig:{command:"npx",args:["-y","chrome-devtools-mcp"]},tags:["chrome","devtools","debugging","official"]},{id:"github-mcp-server",name:"GitHub MCP",description:"GitHub's official MCP Server for repository management, PRs, issues, and more",category:"version-control",repository:"https://github.com/github/github-mcp-server",website:"https://github.com",installationType:"docker",dockerImage:"ghcr.io/github/github-mcp-server",official:!0,installConfig:{command:"docker",args:["run","-i","--rm","-e","GITHUB_PERSONAL_ACCESS_TOKEN","ghcr.io/github/github-mcp-server"]},requiredEnvVars:[{name:"GITHUB_PERSONAL_ACCESS_TOKEN",description:"GitHub Personal Access Token"}],tags:["github","git","repository","official"]},{id:"sqlite-mcp",name:"SQLite MCP",description:"Comprehensive SQLite database interaction capabilities for Cursor, Windsurf, and AI tools",category:"database",repository:"https://github.com/jparkerweb/mcp-sqlite",installationType:"npx",npmPackage:"mcp-sqlite",installConfig:{command:"npx",args:["-y","mcp-sqlite","${DATABASE_PATH}"]},requiredEnvVars:[{name:"DATABASE_PATH",description:"Path to SQLite database file",example:"/path/to/database.db"}],tags:["database","sqlite","sql","cursor","windsurf"]},{id:"mysql-mcp",name:"MySQL MCP",description:"MySQL database integration with configurable access controls and schema inspection",category:"database",repository:"https://github.com/designcomputer/mysql_mcp_server",installationType:"pip",pipPackage:"mysql-mcp-server",installConfig:{command:"uvx",args:["mysql-mcp-server"]},requiredEnvVars:[{name:"MYSQL_HOST",description:"MySQL host"},{name:"MYSQL_USER",description:"MySQL username"},{name:"MYSQL_PASSWORD",description:"MySQL password"},{name:"MYSQL_DATABASE",description:"MySQL database name"}],tags:["database","mysql","sql"]},{id:"mongodb-mcp",name:"MongoDB MCP",description:"MongoDB integration for querying and analyzing collections",category:"database",repository:"https://github.com/kiliczsh/mcp-mongo-server",installationType:"npx",npmPackage:"mcp-mongo-server",installConfig:{command:"npx",args:["-y","mcp-mongo-server"]},requiredEnvVars:[{name:"MONGODB_URI",description:"MongoDB connection URI",example:"mongodb://localhost:27017/mydb"}],tags:["database","mongodb","nosql"]},{id:"redis-mcp",name:"Redis MCP",description:"Natural language interface for managing and searching data in Redis",category:"database",repository:"https://github.com/redis/mcp-redis",website:"https://redis.io",installationType:"pip",pipPackage:"redis-mcp-server",official:!0,installConfig:{command:"uvx",args:["redis-mcp-server"]},requiredEnvVars:[{name:"REDIS_URL",description:"Redis connection URL",example:"redis://localhost:6379"}],tags:["database","redis","cache","official"]},{id:"neon-mcp",name:"Neon MCP",description:"Neon Serverless Postgres - create and manage databases with natural language",category:"database",repository:"https://github.com/neondatabase/mcp-server-neon",website:"https://neon.tech",installationType:"npx",npmPackage:"@neondatabase/mcp-server-neon",official:!0,installConfig:{command:"npx",args:["-y","@neondatabase/mcp-server-neon"]},requiredEnvVars:[{name:"NEON_API_KEY",description:"Neon API key"}],tags:["database","postgres","serverless","official"]},{id:"qdrant-mcp",name:"Qdrant MCP",description:"Vector search engine for keeping and retrieving memories",category:"database",repository:"https://github.com/qdrant/mcp-server-qdrant",website:"https://qdrant.tech",installationType:"pip",pipPackage:"mcp-server-qdrant",official:!0,installConfig:{command:"uvx",args:["mcp-server-qdrant"]},requiredEnvVars:[{name:"QDRANT_URL",description:"Qdrant server URL"},{name:"QDRANT_API_KEY",description:"Qdrant API key (optional)"}],tags:["database","vector","search","official"]},{id:"snowflake-mcp",name:"Snowflake MCP",description:"Snowflake data warehouse integration with read/write capabilities",category:"database",repository:"https://github.com/isaacwasserman/mcp-snowflake-server",website:"https://snowflake.com",installationType:"pip",pipPackage:"mcp-snowflake-server",installConfig:{command:"uvx",args:["mcp-snowflake-server"]},requiredEnvVars:[{name:"SNOWFLAKE_ACCOUNT",description:"Snowflake account identifier"},{name:"SNOWFLAKE_USER",description:"Snowflake username"},{name:"SNOWFLAKE_PASSWORD",description:"Snowflake password"}],tags:["database","snowflake","data-warehouse"]},{id:"bigquery-mcp",name:"BigQuery MCP",description:"Google BigQuery integration for schema inspection and queries",category:"database",repository:"https://github.com/LucasHild/mcp-server-bigquery",website:"https://cloud.google.com/bigquery",installationType:"pip",pipPackage:"mcp-server-bigquery",installConfig:{command:"uvx",args:["mcp-server-bigquery"]},requiredEnvVars:[{name:"GOOGLE_APPLICATION_CREDENTIALS",description:"Path to GCP service account JSON"}],tags:["database","bigquery","google","analytics"]},{id:"dbhub-mcp",name:"DBHub MCP",description:"Zero-dependency, token-efficient database MCP for Postgres, MySQL, SQL Server, MariaDB, SQLite",category:"database",repository:"https://github.com/bytebase/dbhub",installationType:"npx",npmPackage:"dbhub",installConfig:{command:"npx",args:["-y","dbhub"]},requiredEnvVars:[{name:"DATABASE_URL",description:"Database connection URL",example:"postgres://user:pass@localhost:5432/db"}],tags:["database","postgres","mysql","sqlite","mariadb","sqlserver","multi-database"]},{id:"pg-aiguide-mcp",name:"PostgreSQL AI Guide MCP",description:"PostgreSQL documentation and best practices through semantic search and curated skills",category:"database",repository:"https://github.com/timescale/pg-aiguide",website:"https://tigerdata.com",installationType:"npx",npmPackage:"@tigerdata/pg-aiguide",installConfig:{command:"npx",args:["-y","@tigerdata/pg-aiguide"]},tags:["database","postgres","postgresql","documentation","timescale"]},{id:"cloudflare-mcp",name:"Cloudflare MCP",description:"Integration with Cloudflare Workers, KV, R2, and D1",category:"cloud-platform",repository:"https://github.com/cloudflare/mcp-server-cloudflare",website:"https://cloudflare.com",installationType:"npx",npmPackage:"@cloudflare/mcp-server-cloudflare",official:!0,installConfig:{command:"npx",args:["-y","@cloudflare/mcp-server-cloudflare"]},requiredEnvVars:[{name:"CLOUDFLARE_API_TOKEN",description:"Cloudflare API Token"},{name:"CLOUDFLARE_ACCOUNT_ID",description:"Cloudflare Account ID"}],tags:["cloudflare","cloud","workers","official"]},{id:"docker-mcp",name:"Docker MCP",description:"Docker operations for container and compose stack management",category:"cloud-platform",repository:"https://github.com/sondt2709/docker-mcp",installationType:"npx",npmPackage:"docker-mcp",installConfig:{command:"npx",args:["-y","docker-mcp"]},tags:["docker","containers","devops"]},{id:"filesystem-mcp",name:"Filesystem MCP",description:"Direct local file system access with configurable permissions",category:"file-system",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem",installationType:"npx",npmPackage:"@modelcontextprotocol/server-filesystem",official:!0,installConfig:{command:"npx",args:["-y","@modelcontextprotocol/server-filesystem","${ALLOWED_DIRECTORIES}"]},requiredEnvVars:[{name:"ALLOWED_DIRECTORIES",description:"Comma-separated list of allowed directories",example:"/home/user/projects,/tmp"}],tags:["filesystem","files","local","official"]},{id:"git-mcp-official",name:"Git MCP",description:"Official Git integration for repository operations, commits, and history",category:"version-control",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/git",installationType:"pip",pipPackage:"mcp-server-git",official:!0,installConfig:{command:"uvx",args:["mcp-server-git"]},tags:["git","version-control","repository","official"]},{id:"memory-mcp",name:"Memory MCP",description:"Official memory/persistence server for maintaining context across sessions",category:"developer-tools",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/memory",installationType:"npx",npmPackage:"@modelcontextprotocol/server-memory",official:!0,installConfig:{command:"npx",args:["-y","@modelcontextprotocol/server-memory"]},tags:["memory","persistence","context","official"]},{id:"fetch-mcp",name:"Fetch MCP",description:"Official HTTP fetch server for making web requests",category:"developer-tools",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",installationType:"pip",pipPackage:"mcp-server-fetch",official:!0,installConfig:{command:"uvx",args:["mcp-server-fetch"]},tags:["fetch","http","web","requests","official"]},{id:"time-mcp",name:"Time MCP",description:"Official time server for date/time operations and timezones",category:"developer-tools",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/time",installationType:"pip",pipPackage:"mcp-server-time",official:!0,installConfig:{command:"uvx",args:["mcp-server-time"]},tags:["time","date","timezone","official"]},{id:"sequential-thinking-mcp",name:"Sequential Thinking MCP",description:"Official server for step-by-step reasoning and problem solving",category:"developer-tools",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",installationType:"npx",npmPackage:"@modelcontextprotocol/server-sequential-thinking",official:!0,installConfig:{command:"npx",args:["-y","@modelcontextprotocol/server-sequential-thinking"]},tags:["reasoning","thinking","problem-solving","official"]},{id:"everything-mcp",name:"Everything MCP",description:"Official demo server showcasing all MCP capabilities in one package",category:"developer-tools",repository:"https://github.com/modelcontextprotocol/servers/tree/main/src/everything",installationType:"npx",npmPackage:"@modelcontextprotocol/server-everything",official:!0,installConfig:{command:"npx",args:["-y","@modelcontextprotocol/server-everything"]},tags:["demo","all-in-one","example","official"]},{id:"exa-mcp",name:"Exa Search MCP",description:"Exa AI Search API for real-time web information retrieval",category:"search-web",repository:"https://github.com/exa-labs/exa-mcp-server",website:"https://exa.ai",installationType:"npx",npmPackage:"exa-mcp-server",official:!0,installConfig:{command:"npx",args:["-y","exa-mcp-server"]},requiredEnvVars:[{name:"EXA_API_KEY",description:"Exa API key"}],tags:["search","exa","ai","official"]},{id:"perplexity-mcp",name:"Perplexity MCP",description:"Official Perplexity AI search and research integration",category:"search-web",repository:"https://github.com/perplexityai/modelcontextprotocol",website:"https://perplexity.ai",installationType:"npx",npmPackage:"@perplexity-ai/mcp-server",official:!0,installConfig:{command:"npx",args:["-y","@perplexity-ai/mcp-server"]},requiredEnvVars:[{name:"PERPLEXITY_API_KEY",description:"Perplexity API key"}],tags:["search","perplexity","ai","research","official"]},{id:"kagi-mcp",name:"Kagi MCP",description:"Official Kagi search and tools integration",category:"search-web",repository:"https://github.com/kagisearch/kagi-mcp",website:"https://kagi.com",installationType:"pip",pipPackage:"kagimcp",official:!0,installConfig:{command:"uvx",args:["kagimcp"]},requiredEnvVars:[{name:"KAGI_API_KEY",description:"Kagi API key"}],tags:["search","kagi","official"]},{id:"tavily-mcp",name:"Tavily MCP",description:"Tavily AI search API for intelligent web search",category:"search-web",repository:"https://github.com/tavily-ai/tavily-mcp",website:"https://tavily.com",installationType:"npx",npmPackage:"tavily-mcp",official:!0,installConfig:{command:"npx",args:["-y","tavily-mcp"]},requiredEnvVars:[{name:"TAVILY_API_KEY",description:"Tavily API key"}],tags:["search","tavily","ai","official"]},{id:"slack-mcp",name:"Slack MCP",description:"Most powerful MCP server for Slack with Stdio and SSE transports",category:"communication",repository:"https://github.com/korotovsky/slack-mcp-server",website:"https://slack.com",installationType:"npx",npmPackage:"slack-mcp-server",installConfig:{command:"npx",args:["-y","slack-mcp-server"]},requiredEnvVars:[{name:"SLACK_BOT_TOKEN",description:"Slack Bot OAuth Token"}],tags:["slack","chat","team"]},{id:"discord-mcp",name:"Discord MCP",description:"Discord API integration via JDA for seamless bot interaction with MCP clients",category:"communication",repository:"https://github.com/SaseQ/discord-mcp",website:"https://discord.com",installationType:"docker",dockerImage:"saseq/discord-mcp:latest",installConfig:{command:"docker",args:["run","--rm","-i","-e","DISCORD_TOKEN","-e","DISCORD_GUILD_ID","saseq/discord-mcp:latest"]},requiredEnvVars:[{name:"DISCORD_TOKEN",description:"Discord Bot Token"},{name:"DISCORD_GUILD_ID",description:"Default Discord Server ID (optional)"}],tags:["discord","chat","community","bot"]},{id:"linear-mcp",name:"Linear MCP",description:"Linear project management integration for issues, projects, and teams",category:"communication",repository:"https://github.com/tacticlaunch/mcp-linear",website:"https://linear.app",installationType:"npx",npmPackage:"@tacticlaunch/mcp-linear",installConfig:{command:"npx",args:["-y","@tacticlaunch/mcp-linear"]},requiredEnvVars:[{name:"LINEAR_API_KEY",description:"Linear API key"}],tags:["linear","issues","project-management"]},{id:"atlassian-mcp",name:"Atlassian MCP",description:"Confluence and Jira integration for documentation and issue tracking",category:"communication",repository:"https://github.com/sooperset/mcp-atlassian",website:"https://atlassian.com",installationType:"pip",pipPackage:"mcp-atlassian",installConfig:{command:"uvx",args:["mcp-atlassian"]},requiredEnvVars:[{name:"ATLASSIAN_URL",description:"Atlassian instance URL"},{name:"ATLASSIAN_EMAIL",description:"Atlassian email"},{name:"ATLASSIAN_API_TOKEN",description:"Atlassian API token"}],tags:["atlassian","jira","confluence"]},{id:"notion-mcp",name:"Notion MCP",description:"Official Notion integration for pages, databases, and blocks",category:"productivity",repository:"https://github.com/makenotion/notion-mcp-server",website:"https://notion.so",installationType:"npx",npmPackage:"@notionhq/notion-mcp-server",official:!0,installConfig:{command:"npx",args:["-y","@notionhq/notion-mcp-server"]},requiredEnvVars:[{name:"NOTION_API_KEY",description:"Notion API integration token"}],tags:["notion","productivity","notes","database","official"]},{id:"obsidian-mcp",name:"Obsidian MCP",description:"Obsidian vault integration for file management, search, and manipulation",category:"productivity",repository:"https://github.com/MarkusPfundstein/mcp-obsidian",website:"https://obsidian.md",installationType:"npx",npmPackage:"mcp-obsidian",installConfig:{command:"npx",args:["-y","mcp-obsidian"]},requiredEnvVars:[{name:"OBSIDIAN_VAULT_PATH",description:"Path to Obsidian vault"}],tags:["obsidian","notes","markdown"]},{id:"todoist-mcp",name:"Todoist MCP",description:"Natural language task management with Todoist",category:"productivity",repository:"https://github.com/stevengonsalvez/todoist-mcp",website:"https://todoist.com",installationType:"npx",npmPackage:"todoist-mcp-server",installConfig:{command:"npx",args:["-y","todoist-mcp-server"]},requiredEnvVars:[{name:"TODOIST_API_TOKEN",description:"Todoist API token"}],tags:["todoist","tasks","productivity"]},{id:"google-workspace-mcp",name:"Google Workspace MCP",description:"Control Gmail, Calendar, Docs, Sheets, Slides, Chat, Drive and more",category:"productivity",repository:"https://github.com/taylorwilsdon/google_workspace_mcp",website:"https://workspace.google.com",installationType:"pip",pipPackage:"google-workspace-mcp",installConfig:{command:"uvx",args:["google-workspace-mcp"]},requiredEnvVars:[{name:"GOOGLE_APPLICATION_CREDENTIALS",description:"Path to Google credentials"}],tags:["google","workspace","gmail","docs"]},{id:"context7-mcp",name:"Context7 MCP",description:"Up-to-date code documentation for LLMs and AI code editors",category:"developer-tools",repository:"https://github.com/upstash/context7",website:"https://context7.com",installationType:"npx",npmPackage:"@upstash/context7-mcp",official:!0,installConfig:{command:"npx",args:["-y","@upstash/context7-mcp"]},tags:["documentation","context","code","official"]},{id:"desktop-commander-mcp",name:"Desktop Commander MCP",description:"Terminal control, file system search, and diff file editing capabilities",category:"developer-tools",repository:"https://github.com/wonderwhy-er/DesktopCommanderMCP",installationType:"npx",npmPackage:"@wonderwhy-er/desktop-commander",installConfig:{command:"npx",args:["-y","@wonderwhy-er/desktop-commander"]},tags:["terminal","file-editing","diff","command-line","process"]},{id:"gemini-mcp-tool",name:"Gemini MCP Tool",description:"Interact with Google Gemini CLI for large file analysis and codebase exploration",category:"ai-services",repository:"https://github.com/jamubc/gemini-mcp-tool",installationType:"npx",npmPackage:"gemini-mcp-tool",installConfig:{command:"npx",args:["-y","gemini-mcp-tool"]},tags:["gemini","google","ai","file-analysis","codebase"]},{id:"sentry-mcp",name:"Sentry MCP",description:"Sentry.io integration for error tracking and performance monitoring",category:"developer-tools",repository:"https://github.com/getsentry/sentry-mcp",website:"https://sentry.io",installationType:"npx",npmPackage:"@sentry/mcp-server",official:!0,installConfig:{command:"npx",args:["-y","@sentry/mcp-server"]},requiredEnvVars:[{name:"SENTRY_AUTH_TOKEN",description:"Sentry Auth Token"},{name:"SENTRY_ORG",description:"Sentry Organization Slug"}],tags:["sentry","errors","monitoring","official"]},{id:"mcp-memory-service",name:"Memory Service MCP",description:"Automatic context memory for Claude, VS Code, Cursor - stop re-explaining",category:"developer-tools",repository:"https://github.com/doobidoo/mcp-memory-service",installationType:"pip",pipPackage:"mcp-memory-service",installConfig:{command:"uvx",args:["mcp-memory-service"]},tags:["memory","context","persistence"]},{id:"serena-mcp",name:"Serena MCP",description:"Powerful coding agent with semantic retrieval and editing via language servers",category:"coding-agents",repository:"https://github.com/oraios/serena",installationType:"pip",installConfig:{command:"uvx",args:["--from","git+https://github.com/oraios/serena","serena","start-mcp-server"]},tags:["coding","agent","language-server"]},{id:"figma-mcp",name:"Figma Context MCP",description:"Get Figma design data in ready-to-implement format",category:"developer-tools",repository:"https://github.com/GLips/Figma-Context-MCP",website:"https://figma.com",installationType:"npx",npmPackage:"figma-context-mcp",installConfig:{command:"npx",args:["-y","figma-context-mcp"]},requiredEnvVars:[{name:"FIGMA_ACCESS_TOKEN",description:"Figma Personal Access Token"}],tags:["figma","design","ui"]},{id:"talk-to-figma-mcp",name:"Talk to Figma MCP",description:"Cursor + Figma integration for reading and modifying designs",category:"developer-tools",repository:"https://github.com/grab/cursor-talk-to-figma-mcp",website:"https://figma.com",installationType:"npx",npmPackage:"cursor-talk-to-figma-mcp",installConfig:{command:"npx",args:["-y","cursor-talk-to-figma-mcp"]},requiredEnvVars:[{name:"FIGMA_ACCESS_TOKEN",description:"Figma Personal Access Token"}],tags:["figma","cursor","design"]},{id:"xcodebuild-mcp",name:"XcodeBuild MCP",description:"Xcode-related tools for building, testing, and managing iOS/macOS projects",category:"developer-tools",repository:"https://github.com/cameroncooke/XcodeBuildMCP",website:"https://developer.apple.com/xcode",installationType:"npx",npmPackage:"xcodebuildmcp",installConfig:{command:"npx",args:["-y","xcodebuildmcp"]},tags:["xcode","ios","macos","apple","swift"]},{id:"markdownify-mcp",name:"Markdownify MCP",description:"Convert almost anything to Markdown - PDFs, URLs, images, and more",category:"developer-tools",repository:"https://github.com/zcaceres/markdownify-mcp",installationType:"npx",npmPackage:"mcp-markdownify-server",installConfig:{command:"npx",args:["-y","mcp-markdownify-server"]},tags:["markdown","converter","pdf","ocr"]},{id:"elevenlabs-mcp",name:"ElevenLabs MCP",description:"Official ElevenLabs text-to-speech, voice cloning, and audio generation",category:"ai-services",repository:"https://github.com/elevenlabs/elevenlabs-mcp",website:"https://elevenlabs.io",installationType:"pip",pipPackage:"elevenlabs-mcp",official:!0,installConfig:{command:"uvx",args:["elevenlabs-mcp"]},requiredEnvVars:[{name:"ELEVENLABS_API_KEY",description:"ElevenLabs API key"}],tags:["elevenlabs","tts","voice","audio","official"]},{id:"llamacloud-mcp",name:"LlamaCloud MCP",description:"Connect to managed indices on LlamaCloud",category:"ai-services",repository:"https://github.com/run-llama/mcp-server-llamacloud",website:"https://cloud.llamaindex.ai",installationType:"npx",npmPackage:"@llamaindex/mcp-server-llamacloud",official:!0,installConfig:{command:"npx",args:["-y","@llamaindex/mcp-server-llamacloud"]},requiredEnvVars:[{name:"LLAMA_CLOUD_API_KEY",description:"LlamaCloud API key"}],tags:["llamaindex","rag","index","official"]},{id:"huggingface-spaces-mcp",name:"HuggingFace Spaces MCP",description:"Use HuggingFace Spaces from your MCP Client - images, audio, text",category:"ai-services",repository:"https://github.com/evalstate/mcp-hfspace",website:"https://huggingface.co/spaces",installationType:"npx",npmPackage:"@llmindset/mcp-hfspace",installConfig:{command:"npx",args:["-y","@llmindset/mcp-hfspace"]},requiredEnvVars:[{name:"HF_TOKEN",description:"HuggingFace API token"}],tags:["huggingface","spaces","models"]},{id:"n8n-mcp",name:"n8n MCP",description:"Build n8n workflows using Claude Desktop, Cursor, or Windsurf",category:"workflow-automation",repository:"https://github.com/czlonkowski/n8n-mcp",website:"https://n8n.io",installationType:"npx",npmPackage:"n8n-mcp",installConfig:{command:"npx",args:["-y","n8n-mcp"]},requiredEnvVars:[{name:"N8N_API_URL",description:"n8n instance URL"},{name:"N8N_API_KEY",description:"n8n API key"}],tags:["n8n","automation","workflows"]},{id:"echarts-mcp",name:"ECharts MCP",description:"Generate visual charts using Apache ECharts dynamically",category:"data-visualization",repository:"https://github.com/hustcc/mcp-echarts",website:"https://echarts.apache.org",installationType:"npx",npmPackage:"mcp-echarts",installConfig:{command:"npx",args:["-y","mcp-echarts"]},tags:["visualization","charts","echarts"]},{id:"mermaid-mcp",name:"Mermaid MCP",description:"Generate Mermaid diagrams and charts dynamically",category:"data-visualization",repository:"https://github.com/hustcc/mcp-mermaid",website:"https://mermaid.js.org",installationType:"npx",npmPackage:"mcp-mermaid",installConfig:{command:"npx",args:["-y","mcp-mermaid"]},tags:["diagrams","mermaid","flowcharts"]},{id:"datadog-mcp",name:"Datadog MCP",description:"Datadog monitoring and observability integration",category:"monitoring",repository:"https://github.com/winor30/mcp-server-datadog",website:"https://datadoghq.com",installationType:"npx",npmPackage:"@winor30/mcp-server-datadog",installConfig:{command:"npx",args:["-y","@winor30/mcp-server-datadog"]},requiredEnvVars:[{name:"DD_API_KEY",description:"Datadog API key"},{name:"DD_APP_KEY",description:"Datadog Application key"}],tags:["datadog","monitoring","observability"]},{id:"browserstack-mcp",name:"BrowserStack MCP",description:"Official BrowserStack testing and automation integration",category:"developer-tools",repository:"https://github.com/browserstack/mcp-server",website:"https://browserstack.com",installationType:"npx",npmPackage:"@browserstack/mcp-server",official:!0,installConfig:{command:"npx",args:["-y","@browserstack/mcp-server"]},requiredEnvVars:[{name:"BROWSERSTACK_USERNAME",description:"BrowserStack username"},{name:"BROWSERSTACK_ACCESS_KEY",description:"BrowserStack access key"}],tags:["browserstack","testing","automation","official"]},{id:"tableau-mcp",name:"Tableau MCP",description:"Official Tableau data visualization and analytics integration",category:"data-visualization",repository:"https://github.com/tableau/tableau-mcp",website:"https://tableau.com",installationType:"npx",npmPackage:"@tableau/mcp-server",official:!0,installConfig:{command:"npx",args:["-y","@tableau/mcp-server"]},requiredEnvVars:[{name:"TABLEAU_TOKEN",description:"Tableau API token"},{name:"TABLEAU_SITE",description:"Tableau site name"}],tags:["tableau","visualization","analytics","official"]},{id:"stripe-mcp",name:"Stripe MCP",description:"Official Stripe Agent Toolkit for payment integration",category:"finance",repository:"https://github.com/stripe/agent-toolkit",website:"https://stripe.com",installationType:"npx",npmPackage:"@stripe/agent-toolkit",official:!0,installConfig:{command:"npx",args:["-y","@stripe/agent-toolkit","mcp"]},requiredEnvVars:[{name:"STRIPE_SECRET_KEY",description:"Stripe Secret Key"}],tags:["stripe","payments","finance","official"]},{id:"alpaca-mcp",name:"Alpaca MCP",description:"Official Alpaca trading - stocks, ETFs, crypto, and options in plain English",category:"finance",repository:"https://github.com/alpacahq/alpaca-mcp-server",website:"https://alpaca.markets",installationType:"pip",pipPackage:"alpaca-mcp-server",official:!0,installConfig:{command:"uvx",args:["alpaca-mcp-server"]},requiredEnvVars:[{name:"ALPACA_API_KEY",description:"Alpaca API key"},{name:"ALPACA_SECRET_KEY",description:"Alpaca secret key"}],tags:["alpaca","trading","stocks","crypto","finance","official"]},{id:"paypal-mcp",name:"PayPal MCP",description:"PayPal Agent Toolkit for payment integration",category:"finance",repository:"https://github.com/paypal/agent-toolkit",website:"https://paypal.com",installationType:"npx",npmPackage:"@paypal/agent-toolkit",official:!0,installConfig:{command:"npx",args:["-y","@paypal/agent-toolkit"]},requiredEnvVars:[{name:"PAYPAL_CLIENT_ID",description:"PayPal Client ID"},{name:"PAYPAL_CLIENT_SECRET",description:"PayPal Client Secret"}],tags:["paypal","payments","finance","official"]},{id:"semgrep-mcp",name:"Semgrep MCP",description:"Static code analysis and security scanning with Semgrep integration",category:"security",repository:"https://github.com/Szowesgad/mcp-server-semgrep",website:"https://semgrep.dev",installationType:"npx",npmPackage:"mcp-server-semgrep",installConfig:{command:"npx",args:["-y","mcp-server-semgrep"]},tags:["semgrep","security","sast","static-analysis"]},{id:"pipedream-mcp",name:"Pipedream MCP",description:"Connect with 2,500+ APIs with 8,000+ prebuilt tools",category:"aggregator",repository:"https://github.com/PipedreamHQ/pipedream/tree/master/modelcontextprotocol",website:"https://pipedream.com",installationType:"npx",npmPackage:"@pipedream/mcp",official:!0,installConfig:{command:"npx",args:["-y","@pipedream/mcp"]},requiredEnvVars:[{name:"PIPEDREAM_API_KEY",description:"Pipedream API key"}],tags:["pipedream","integrations","apis","official"]},{id:"fastmcp",name:"FastMCP",description:"The fast, Pythonic way to build MCP servers and clients",category:"developer-tools",repository:"https://github.com/jlowin/fastmcp",installationType:"pip",pipPackage:"fastmcp",installConfig:{command:"pip",args:["install","fastmcp"]},tags:["framework","python","sdk"]},{id:"mcp-use",name:"MCP Use",description:"Easiest way to interact with MCP servers with custom agents",category:"developer-tools",repository:"https://github.com/mcp-use/mcp-use",installationType:"pip",pipPackage:"mcp-use",installConfig:{command:"pip",args:["install","mcp-use"]},tags:["framework","agents","python"]},{id:"unity-mcp",name:"Unity MCP",description:"MCP server for Unity Editor - designed for Claude, Cursor, Gemini and more",category:"developer-tools",repository:"https://github.com/CoplayDev/unity-mcp",website:"https://unity.com",installationType:"pip",installConfig:{command:"uvx",args:["--from","git+https://github.com/CoplayDev/unity-mcp","unity-mcp"]},tags:["unity","game-dev","editor","gamedev"]},{id:"arxiv-mcp",name:"ArXiv MCP",description:"Search ArXiv research papers",category:"other",repository:"https://github.com/blazickjp/arxiv-mcp-server",website:"https://arxiv.org",installationType:"pip",pipPackage:"arxiv-mcp-server",installConfig:{command:"uvx",args:["arxiv-mcp-server"]},tags:["arxiv","research","papers"]},{id:"octocode-mcp",name:"Octocode MCP",description:"AI-powered developer assistant for GitHub and NPM research",category:"developer-tools",repository:"https://github.com/bgauryy/octocode-mcp",installationType:"npx",npmPackage:"octocode-mcp",installConfig:{command:"npx",args:["-y","octocode-mcp@latest"]},requiredEnvVars:[{name:"GITHUB_TOKEN",description:"GitHub token (also accepts OCTOCODE_TOKEN or GH_TOKEN)"}],tags:["github","npm","research","code"]},{id:"gpt-researcher-mcp",name:"GPT Researcher MCP",description:"Deep research agent with MCP support for comprehensive web research and report generation",category:"search-web",repository:"https://github.com/assafelovic/gptr-mcp",website:"https://gptr.dev",stars:24750,installationType:"source",installConfig:{command:"python",args:["server.py"]},requiredEnvVars:[{name:"OPENAI_API_KEY",description:"OpenAI API key for LLM capabilities",example:"sk-xxxxx"},{name:"TAVILY_API_KEY",description:"Tavily API key for web search",example:"tvly-xxxxx"}],tags:["research","web-search","deep-research","ai","tavily"]},{id:"mcp-chrome",name:"Chrome MCP",description:"Chrome extension-based MCP server for browser automation, screenshots, and content analysis",category:"browser-automation",repository:"https://github.com/hangwin/mcp-chrome",stars:9803,installationType:"npx",npmPackage:"mcp-chrome-bridge",installConfig:{command:"npx",args:["-y","mcp-chrome-bridge"]},tags:["chrome","browser","automation","extension","screenshot"]},{id:"aws-mcp",name:"AWS Core MCP",description:"AWS MCP Servers - dynamic orchestrator for specialized AWS services including Bedrock, Lambda, S3, and CloudWatch",category:"cloud-platform",repository:"https://github.com/awslabs/mcp",website:"https://awslabs.github.io/mcp/",stars:7801,installationType:"pip",pipPackage:"awslabs.core-mcp-server",official:!0,installConfig:{command:"uvx",args:["awslabs.core-mcp-server@latest"]},requiredEnvVars:[{name:"AWS_PROFILE",description:"AWS profile name for credentials",example:"default"},{name:"AWS_REGION",description:"AWS region",example:"us-east-1"}],tags:["aws","cloud","bedrock","lambda","s3","cloudwatch","official"]},{id:"git-mcp",name:"GitMCP",description:"Remote MCP server that transforms GitHub projects into documentation hubs for AI tools",category:"version-control",repository:"https://github.com/idosal/git-mcp",website:"https://gitmcp.io",stars:7328,installationType:"npx",npmPackage:"mcp-remote",installConfig:{command:"npx",args:["-y","mcp-remote","https://gitmcp.io/docs"]},tags:["git","github","documentation","remote","version-control"]},{id:"browser-tools-mcp",name:"BrowserTools MCP",description:"Monitor browser logs and capture browser data from Cursor and MCP-compatible IDEs via Chrome extension",category:"browser-automation",repository:"https://github.com/AgentDeskAI/browser-tools-mcp",website:"https://browsertools.agentdesk.ai",stars:6961,installationType:"npx",npmPackage:"@agentdeskai/browser-tools-mcp",installConfig:{command:"npx",args:["-y","@agentdeskai/browser-tools-mcp@latest"]},tags:["browser","devtools","chrome","logs","debugging"]},{id:"hexstrike-ai",name:"HexStrike AI",description:"Advanced MCP server for AI agents to run 150+ cybersecurity tools for pentesting and vulnerability discovery",category:"security",repository:"https://github.com/0x4m4/hexstrike-ai",stars:5690,installationType:"source",installConfig:{command:"python3",args:["hexstrike_mcp.py","--server","http://localhost:8888"]},requiredEnvVars:[{name:"HEXSTRIKE_PATH",description:"Path to cloned hexstrike-ai repository",example:"/path/to/hexstrike-ai"}],tags:["security","pentesting","cybersecurity","vulnerability"]},{id:"spec-workflow-mcp",name:"Spec Workflow MCP",description:"Structured spec-driven development workflow tools for AI-assisted software development with real-time web dashboard",category:"developer-tools",repository:"https://github.com/Pimzino/spec-workflow-mcp",stars:3569,installationType:"npx",npmPackage:"@pimzino/spec-workflow-mcp",installConfig:{command:"npx",args:["-y","@pimzino/spec-workflow-mcp@latest","${PROJECT_PATH}"]},requiredEnvVars:[{name:"PROJECT_PATH",description:"Path to your project directory",example:"/path/to/your/project"}],tags:["workflow","spec-driven","dashboard","vscode","development"]},{id:"excel-mcp-server",name:"Excel MCP",description:"Manipulate Excel files without Microsoft Excel - create, read, modify workbooks with formulas, formatting, and charts",category:"productivity",repository:"https://github.com/haris-musa/excel-mcp-server",stars:3079,installationType:"pip",pipPackage:"excel-mcp-server",installConfig:{command:"uvx",args:["excel-mcp-server","stdio"]},tags:["excel","spreadsheet","office","xlsx","formulas","charts"]},{id:"mcp-context-forge",name:"MCP Context Forge",description:"IBM MCP Gateway & Registry - federates MCP and REST services with discovery, auth, rate-limiting, and observability",category:"aggregator",repository:"https://github.com/IBM/mcp-context-forge",website:"https://ibm.github.io/mcp-context-forge/",stars:3056,installationType:"pip",pipPackage:"mcp-contextforge-gateway",official:!0,installConfig:{command:"uvx",args:["--from","mcp-contextforge-gateway","mcpgateway","--host","0.0.0.0","--port","4444"]},requiredEnvVars:[{name:"JWT_SECRET_KEY",description:"JWT secret key for authentication",example:"my-secret-key"}],tags:["ibm","gateway","registry","federation","proxy","official","enterprise"]},{id:"mobile-mcp",name:"Mobile MCP",description:"Scalable mobile automation and development through a platform-agnostic interface for iOS and Android devices",category:"developer-tools",repository:"https://github.com/mobile-next/mobile-mcp",stars:2969,installationType:"npx",npmPackage:"@mobilenext/mobile-mcp",installConfig:{command:"npx",args:["-y","@mobilenext/mobile-mcp@latest"]},tags:["mobile","ios","android","automation","simulator","emulator","testing"]},{id:"claude-code-mcp",name:"Claude Code MCP",description:"Run Claude Code in one-shot mode with permissions bypassed for direct agent access to file editing and terminal",category:"coding-agents",repository:"https://github.com/steipete/claude-code-mcp",stars:989,installationType:"npx",npmPackage:"@steipete/claude-code-mcp",installConfig:{command:"npx",args:["-y","@steipete/claude-code-mcp@latest"]},tags:["claude","coding","agent","cursor","windsurf"]},{id:"ros-mcp-server",name:"ROS MCP Server",description:"Connect LLMs with ROS/ROS2 robots for natural language robot commanding and real-time sensor visibility",category:"other",repository:"https://github.com/robotmcp/ros-mcp-server",stars:913,installationType:"pip",pipPackage:"ros-mcp-server",official:!0,installConfig:{command:"python",args:["-m","ros_mcp_server.server"]},tags:["ros","ros2","robotics","robots","sensors"]},{id:"gmail-mcp",name:"Gmail MCP",description:"Gmail integration with auto authentication for AI assistants to manage email through natural language",category:"communication",repository:"https://github.com/GongRzhe/Gmail-MCP-Server",website:"https://gmail.google.com",stars:895,installationType:"npx",npmPackage:"@gongrzhe/server-gmail-autoauth-mcp",installConfig:{command:"npx",args:["-y","@gongrzhe/server-gmail-autoauth-mcp"]},requiredEnvVars:[{name:"GMAIL_OAUTH_PATH",description:"Path to GCP OAuth credentials JSON file",example:"/path/to/gcp-oauth.keys.json"},{name:"GMAIL_CREDENTIALS_PATH",description:"Path where authenticated tokens are stored",example:"/path/to/credentials.json"}],tags:["gmail","email","google","communication","oauth"]},{id:"mcp-knowledge-graph",name:"MCP Knowledge Graph",description:"Persistent memory for AI models through a local knowledge graph with entities, relations, and observations",category:"developer-tools",repository:"https://github.com/shaneholloman/mcp-knowledge-graph",stars:764,installationType:"npx",npmPackage:"mcp-knowledge-graph",installConfig:{command:"npx",args:["-y","mcp-knowledge-graph","--memory-path","${MEMORY_PATH}"]},requiredEnvVars:[{name:"MEMORY_PATH",description:"Directory path where memory files are stored",example:"/Users/username/.aim"}],tags:["memory","knowledge-graph","persistence","context","entities"]},{id:"kubectl-mcp",name:"kubectl MCP",description:"Kubernetes cluster management for AI assistants with pod, service, Helm, and monitoring capabilities",category:"cloud-platform",repository:"https://github.com/rohitg00/kubectl-mcp-server",stars:750,installationType:"pip",pipPackage:"kubectl-mcp-tool",installConfig:{command:"python",args:["-m","kubectl_mcp_tool.mcp_server"]},requiredEnvVars:[{name:"KUBECONFIG",description:"Path to Kubernetes config file",example:"~/.kube/config"}],tags:["kubernetes","k8s","kubectl","helm","cloud","devops"]},{id:"apple-docs-mcp",name:"Apple Docs MCP",description:"Access Apple developer documentation, frameworks, APIs, SwiftUI, UIKit, and WWDC videos through MCP",category:"developer-tools",repository:"https://github.com/kimsungwhee/apple-docs-mcp",website:"https://developer.apple.com",stars:697,installationType:"npx",npmPackage:"@kimsungwhee/apple-docs-mcp",installConfig:{command:"npx",args:["-y","@kimsungwhee/apple-docs-mcp"]},tags:["apple","documentation","swiftui","uikit","wwdc","ios","macos"]},{id:"linkedin-mcp",name:"LinkedIn MCP",description:"LinkedIn integration for AI assistants to scrape profiles, companies, and search jobs",category:"social-media",repository:"https://github.com/stickerdaniel/linkedin-mcp-server",website:"https://linkedin.com",stars:685,installationType:"docker",dockerImage:"stickerdaniel/linkedin-mcp-server:latest",installConfig:{command:"docker",args:["run","--rm","-i","-e","LINKEDIN_COOKIE","stickerdaniel/linkedin-mcp-server:latest"]},requiredEnvVars:[{name:"LINKEDIN_COOKIE",description:"LinkedIn session cookie for authentication",example:"li_at=YOUR_COOKIE_VALUE"}],tags:["linkedin","social","jobs","profiles","scraping"]},{id:"mcp-proxy",name:"MCP Proxy",description:"Aggregates multiple MCP servers behind a single HTTP entrypoint with SSE and streamable HTTP support",category:"aggregator",repository:"https://github.com/TBXark/mcp-proxy",stars:612,installationType:"docker",dockerImage:"ghcr.io/tbxark/mcp-proxy:latest",installConfig:{command:"docker",args:["run","-i","--rm","-p","9090:9090","-v","${MCP_PROXY_CONFIG}:/config/config.json","ghcr.io/tbxark/mcp-proxy:latest"]},requiredEnvVars:[{name:"MCP_PROXY_CONFIG",description:"Path to MCP proxy configuration JSON file",example:"/path/to/config.json"}],tags:["proxy","aggregator","sse","http","multi-server"]},{id:"iterm-mcp",name:"iTerm MCP",description:"Execute commands in active iTerm sessions with REPL interactions and CLI assistance",category:"developer-tools",repository:"https://github.com/ferrislucas/iterm-mcp",stars:505,installationType:"npx",npmPackage:"iterm-mcp",installConfig:{command:"npx",args:["-y","iterm-mcp"]},tags:["iterm","terminal","macos","repl","cli"]},{id:"genai-toolbox-mcp",name:"GenAI Toolbox MCP",description:"Google's official MCP Toolbox for Databases - Postgres, MySQL, MongoDB, Redis, BigQuery, Spanner, and more",category:"database",repository:"https://github.com/googleapis/genai-toolbox",website:"https://googleapis.github.io/genai-toolbox/",stars:12234,installationType:"pip",pipPackage:"toolbox-core",official:!0,installConfig:{command:"uvx",args:["toolbox-langchain"]},tags:["google","database","postgres","mysql","mongodb","redis","bigquery","spanner","official"]},{id:"fastapi-mcp",name:"FastAPI MCP",description:"Expose FastAPI endpoints as MCP tools with authentication and authorization support",category:"developer-tools",repository:"https://github.com/tadata-org/fastapi_mcp",stars:11346,installationType:"pip",pipPackage:"fastapi-mcp",installConfig:{command:"pip",args:["install","fastapi-mcp"]},tags:["fastapi","api","rest","python","authentication","framework"]},{id:"claude-flow-mcp",name:"Claude Flow MCP",description:"Agent orchestration platform for Claude - deploy multi-agent swarms and coordinate autonomous workflows",category:"coding-agents",repository:"https://github.com/ruvnet/claude-flow",stars:11184,installationType:"npx",npmPackage:"claude-flow",installConfig:{command:"npx",args:["-y","claude-flow@alpha","init"]},tags:["claude","multi-agent","swarm","orchestration","workflow","autonomous"]},{id:"pal-mcp-server",name:"PAL MCP Server",description:"Multi-model support for Claude Code - use Gemini, OpenAI, OpenRouter, Azure, Grok, Ollama together",category:"ai-services",repository:"https://github.com/BeehiveInnovations/pal-mcp-server",stars:10758,installationType:"source",installConfig:{command:"python",args:["-m","pal_mcp_server"]},requiredEnvVars:[{name:"OPENROUTER_API_KEY",description:"OpenRouter API key (optional)",example:"sk-or-xxxxx"}],tags:["multi-model","gemini","openai","ollama","azure","grok","openrouter"]},{id:"browser-mcp",name:"Browser MCP",description:"Browser control MCP server via Chrome extension - navigate, click, type, and extract data",category:"browser-automation",repository:"https://github.com/BrowserMCP/mcp",stars:5362,installationType:"npx",npmPackage:"@anthropic/browser-mcp",installConfig:{command:"npx",args:["-y","@anthropic/browser-mcp"]},tags:["browser","chrome","extension","automation","web"]},{id:"mcp-playwright-ea",name:"Playwright MCP (ExecuteAutomation)",description:"Alternative Playwright MCP server for browser and API automation in Claude, Cursor, and more",category:"browser-automation",repository:"https://github.com/executeautomation/mcp-playwright",stars:5116,installationType:"npx",npmPackage:"@executeautomation/playwright-mcp-server",installConfig:{command:"npx",args:["-y","@executeautomation/playwright-mcp-server"]},tags:["playwright","browser","automation","testing","api"]},{id:"claude-context-mcp",name:"Claude Context MCP",description:"Code search MCP for Claude Code using vector database - make entire codebase the context",category:"developer-tools",repository:"https://github.com/zilliztech/claude-context",stars:4955,installationType:"npx",npmPackage:"@anthropic/claude-context",installConfig:{command:"npx",args:["-y","@anthropic/claude-context"]},tags:["code-search","vector-db","context","semantic-search","zilliz","milvus"]},{id:"ida-pro-mcp",name:"IDA Pro MCP",description:"AI-powered reverse engineering assistant bridging IDA Pro with language models",category:"security",repository:"https://github.com/mrexodia/ida-pro-mcp",stars:4906,installationType:"pip",pipPackage:"ida-pro-mcp",installConfig:{command:"pip",args:["install","ida-pro-mcp"]},tags:["ida-pro","reverse-engineering","binary-analysis","security","malware"]},{id:"deep-research-mcp",name:"Deep Research MCP",description:"Use any LLM for deep research with SSE API and MCP server support",category:"search-web",repository:"https://github.com/u14app/deep-research",stars:4302,installationType:"pip",pipPackage:"deep-research",installConfig:{command:"uvx",args:["deep-research"]},requiredEnvVars:[{name:"OPENAI_API_KEY",description:"OpenAI API key for LLM"}],tags:["research","deep-research","llm","sse","web-search"]},{id:"cipher-mcp",name:"Cipher MCP",description:"Memory layer for coding agents - persistent context for Cursor, Claude Code, Windsurf, and Cline",category:"developer-tools",repository:"https://github.com/campfirein/cipher",stars:3399,installationType:"npx",npmPackage:"@byterover/cipher-mcp",installConfig:{command:"npx",args:["-y","@byterover/cipher-mcp"]},tags:["memory","context","persistence","coding-agents","byterover"]},{id:"metorial-mcp",name:"Metorial MCP",description:"Connect any AI model to 600+ integrations powered by MCP with containerized security",category:"aggregator",repository:"https://github.com/metorial/metorial",stars:3201,installationType:"docker",dockerImage:"metorial/metorial:latest",installConfig:{command:"docker",args:["run","-i","--rm","metorial/metorial:latest"]},tags:["integrations","aggregator","docker","multi-tool","security"]},{id:"osaurus-mcp",name:"Osaurus MCP",description:"macOS LLM server - run local or cloud models with OpenAI/Anthropic compatible APIs",category:"ai-services",repository:"https://github.com/dinoki-ai/osaurus",stars:2962,installationType:"source",installConfig:{command:"osaurus",args:["serve"]},tags:["macos","local-llm","mlx","apple-silicon","openai-compatible","swift"]},{id:"shadcn-ui-mcp",name:"shadcn/ui MCP",description:"Context about shadcn/ui components for LLMs - React, Vue, Svelte, and React Native support",category:"developer-tools",repository:"https://github.com/Jpisnice/shadcn-ui-mcp-server",stars:2582,installationType:"npx",npmPackage:"shadcn-ui-mcp",installConfig:{command:"npx",args:["-y","shadcn-ui-mcp"]},tags:["shadcn","ui","react","vue","svelte","react-native","tailwind"]},{id:"shippie-mcp",name:"Shippie MCP",description:"Extendable code review and QA agent for CI/CD pipelines and GitHub",category:"developer-tools",repository:"https://github.com/mattzcarey/shippie",stars:2317,installationType:"npx",npmPackage:"shippie",installConfig:{command:"npx",args:["-y","shippie"]},tags:["code-review","qa","ci-cd","github","agent"]},{id:"devdocs-mcp",name:"DevDocs MCP",description:"Free, private, UI-based tech documentation MCP server for coders and developers",category:"developer-tools",repository:"https://github.com/cyberagiinc/DevDocs",stars:2003,installationType:"source",installConfig:{command:"python",args:["-m","devdocs"]},tags:["documentation","docs","reference","api-docs","crawler"]},{id:"brightdata-mcp",name:"Bright Data MCP",description:"Official Bright Data MCP for web scraping, data extraction, and anti-bot bypass",category:"browser-automation",repository:"https://github.com/brightdata/brightdata-mcp",website:"https://brightdata.com",stars:1845,installationType:"npx",npmPackage:"@anthropic/brightdata-mcp",official:!0,installConfig:{command:"npx",args:["-y","@anthropic/brightdata-mcp"]},requiredEnvVars:[{name:"BRIGHTDATA_API_KEY",description:"Bright Data API key"}],tags:["scraping","web-data","anti-bot","proxy","data-extraction","official"]},{id:"mcpjam-inspector",name:"MCP Inspector",description:"Build ChatGPT Apps and MCP servers locally with inspection and debugging tools",category:"developer-tools",repository:"https://github.com/MCPJam/inspector",stars:1545,installationType:"npx",npmPackage:"@mcpjam/inspector",installConfig:{command:"npx",args:["-y","@mcpjam/inspector"]},tags:["inspector","debugging","chatgpt","development","testing"]},{id:"mcptools",name:"MCP Tools CLI",description:"Command-line interface for interacting with MCP servers via stdio and HTTP transport",category:"developer-tools",repository:"https://github.com/f/mcptools",stars:1426,installationType:"npx",npmPackage:"mcptools",installConfig:{command:"npx",args:["-y","mcptools"]},tags:["cli","tools","stdio","http","debugging"]},{id:"mcp-scan",name:"MCP Scan",description:"Security vulnerability scanner for MCP connections - constrain, log, and audit",category:"security",repository:"https://github.com/invariantlabs-ai/mcp-scan",stars:1381,installationType:"pip",pipPackage:"mcp-scan",installConfig:{command:"uvx",args:["mcp-scan"]},tags:["security","vulnerability","audit","scanning","compliance"]},{id:"unreal-mcp",name:"Unreal Engine MCP",description:"Control Unreal Engine 5 through natural language via MCP for Cursor, Windsurf, and Claude",category:"developer-tools",repository:"https://github.com/chongdashu/unreal-mcp",stars:1239,installationType:"pip",pipPackage:"unreal-mcp",installConfig:{command:"uvx",args:["unreal-mcp"]},tags:["unreal-engine","ue5","game-dev","editor","blueprints"]},{id:"web-eval-agent",name:"Web Eval Agent MCP",description:"Autonomous web application evaluation and testing with Playwright integration",category:"developer-tools",repository:"https://github.com/refreshdotdev/web-eval-agent",stars:1231,installationType:"npx",npmPackage:"@refreshdotdev/web-eval-agent",installConfig:{command:"npx",args:["-y","@refreshdotdev/web-eval-agent"]},tags:["testing","qa","evaluation","playwright","autonomous"]},{id:"mcp-unity-alt",name:"MCP Unity (CoderGamester)",description:"Unity Editor MCP plugin for OpenAI, Gemini, Claude, Deepseek, and Grok integration",category:"developer-tools",repository:"https://github.com/CoderGamester/mcp-unity",stars:1193,installationType:"npx",npmPackage:"mcp-unity",installConfig:{command:"npx",args:["-y","mcp-unity"]},tags:["unity","game-dev","editor","c-sharp","multi-model"]},{id:"xmcp-framework",name:"xMCP Framework",description:"TypeScript MCP framework for building MCP servers with type safety and DX focus",category:"developer-tools",repository:"https://github.com/basementstudio/xmcp",stars:1168,installationType:"npm",npmPackage:"xmcp",installConfig:{command:"npm",args:["install","xmcp"]},tags:["framework","typescript","sdk","type-safe","developer-tools"]}];function yn(e){return ve.filter(t=>t.category===e)}function tg(e){let t=e.toLowerCase();return ve.filter(n=>n.name.toLowerCase().includes(t)||n.description.toLowerCase().includes(t)||n.tags?.some(r=>r.toLowerCase().includes(t)))}function Zl(){return Array.from(new Set(ve.map(e=>e.category)))}function ti(){let e=new Map;return ve.forEach(t=>{t.tags?.forEach(n=>{e.set(n,(e.get(n)||0)+1)})}),Array.from(e.keys()).sort((t,n)=>{let r=(e.get(n)||0)-(e.get(t)||0);return r!==0?r:t.localeCompare(n)})}function og(e){return ve.filter(t=>t.tags?.includes(e))}function ng(e){return ve.filter(t=>t.tags?.includes(e)).length}if(process.env.OCTOCODE_DEBUG==="1"){let e=$.array(Vb).safeParse(ve);e.success||console.error("[mcp-registry] Schema validation failed:",e.error.message)}function rg(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function sg(e){return{"browser-automation":"WEB",database:"DB","cloud-platform":"CLOUD","developer-tools":"DEV","file-system":"FS",communication:"CHAT","search-web":"Search","ai-services":"AI","workflow-automation":"Fast","version-control":"EDIT","data-visualization":"DATA","coding-agents":"AGENT",security:"SEC",productivity:"List",monitoring:"MON",finance:"FIN","social-media":"SOCIAL",aggregator:"LINK",other:"Package"}[e]||"Package"}function Bl(e){let t=`${sg(e.category)} ${e.name}`;return e.official&&(t+=` ${a("cyan","[Official]")}`),t+=` - ${l(e.description.slice(0,45))}${e.description.length>45?"...":""}`,t}async function ag(){let e=ro();console.log(),console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+l("[Step 1/6]")+" "+f("Select Target Client")+" ".repeat(28)+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log();let t=["cursor","claude-desktop","claude-code","opencode","codex","gemini-cli","windsurf","trae","antigravity","goose","kiro","zed","vscode-cline","vscode-roo","vscode-continue"],n=[];for(let o of t){let i=B[o],s=dt(o),c=`${i.name} - ${l(i.description)}`;s?c+=` ${a("green","\u25CB")}`:c+=` ${a("dim","X")}`,e===o&&(c=`${a("green","\u2605")} ${c} ${a("yellow","(Current)")}`),n.push({name:c,value:o,disabled:s?!1:"Not installed"})}n.sort((o,i)=>o.disabled&&!i.disabled?1:!o.disabled&&i.disabled||e===o.value?-1:e===i.value?1:0),n.push(new M),n.push({name:`${a("cyan","-")} Custom Path - ${l("Specify your own config path")}`,value:"custom"}),n.push(new M),n.push({name:`${a("dim","- Back")}`,value:"back"});let r=await j({message:"Where would you like to install the MCP?",choices:n,loop:!1,pageSize:15});if(r==="back")return null;if(r==="custom"){let o=await Gb();return o?{client:"custom",customPath:o}:null}return{client:r}}async function Gb(){console.log(),console.log(` ${a("blue","INFO")} Enter the full path to your MCP config file`),console.log(` ${l("Leave empty to go back")}`),console.log();let e=await ae({message:"Config path (or Enter to go back):",validate:t=>t.trim()?t.endsWith(".json")?!0:"Path must be a .json file":!0});if(!e||!e.trim())return null;if(e.startsWith("~")){let t=process.env.HOME||process.env.USERPROFILE||"";return e.replace("~",t)}return e}async function cg(){console.log(),console.log(` ${l("[Step 2/6]")} ${f("Browse Method")}`),console.log();let e=[{name:`- Search MCPs - ${l("Find by name, description, or tags")}`,value:"search"},{name:`- Browse by Category - ${l(`${Zl().length} categories`)}`,value:"category"},{name:`- Browse by Tag - ${l(`${ti().length} tags`)}`,value:"tag"},{name:`- Popular MCPs - ${l("Top 20 most popular")}`,value:"popular"},{name:`- Full List (A-Z) - ${l(`All ${ve.length} MCPs alphabetically`)}`,value:"all"},new M,{name:`${a("dim","- Back")}`,value:"back"}];return await j({message:"",choices:e,loop:!1})}async function lg(){return console.log(),console.log(` ${l("[Step 3/6]")} ${f("Select MCP")}`),console.log(),console.log(` ${a("blue","INFO")} Type to search by name, description, or tags`),console.log(),await ko({message:"Search MCPs:",source:t=>{let n={name:`${a("dim","- Back to browse options")}`,value:"back"};if(!t||!t.trim())return[...ve.slice(0,15).map(o=>({name:Bl(o),value:o,description:o.tags?.slice(0,3).join(", ")})),{name:"\u2500".repeat(40),value:"back",disabled:!0},n];let r=tg(t.trim());return r.length===0?[{name:`${a("yellow","WARN")} No MCPs found matching "${t}"`,value:"back",disabled:"Try different keywords"},n]:[...r.map(o=>({name:Bl(o),value:o,description:o.tags?.slice(0,3).join(", ")})),{name:"\u2500".repeat(40),value:"back",disabled:!0},n]},pageSize:12})}async function ug(){console.log(),console.log(` ${l("[Step 3/6]")} ${f("Select MCP")}`),console.log();let t=Zl().map(o=>({name:`${sg(o)} ${rg(o)} (${yn(o).length})`,value:o}));t.sort((o,i)=>{let s=yn(o.value).length;return yn(i.value).length-s}),t.push(new M),t.push({name:`${a("dim","- Back")}`,value:"back"});let n=await j({message:"Select a category:",choices:t,loop:!1,pageSize:15});if(n==="back")return"back";let r=yn(n);return await oi(r,rg(n))}function ig(e){return e.charAt(0).toUpperCase()+e.slice(1)}async function dg(){console.log(),console.log(` ${l("[Step 3/6]")} ${f("Select MCP")}`),console.log(),console.log(` ${a("blue","INFO")} Type to filter ${ti().length} tags`),console.log();let e=ti(),t=await ko({message:"Search tags:",source:r=>{let o={name:`${a("dim","- Back to browse options")}`,value:"back"},i=!r||!r.trim()?e.slice(0,20):e.filter(s=>s.toLowerCase().includes(r.toLowerCase().trim()));return i.length===0?[{name:`${a("yellow","WARN")} No tags found matching "${r}"`,value:"back",disabled:"Try different keywords"},o]:[...i.map(s=>({name:`- ${ig(s)} (${ng(s)} MCPs)`,value:s})),{name:"\u2500".repeat(40),value:"back",disabled:!0},o]},pageSize:15});if(t==="back")return"back";let n=og(t);return await oi(n,`Tag: ${ig(t)}`)}async function mg(){console.log(),console.log(` ${l("[Step 3/6]")} ${f("Select MCP")}`);let e=[...ve].sort((t,n)=>(n.stars??0)-(t.stars??0)).slice(0,20);return await oi(e,"Popular MCPs")}async function pg(){console.log(),console.log(` ${l("[Step 3/6]")} ${f("Select MCP")}`);let e=[...ve].sort((t,n)=>t.name.localeCompare(n.name));return await oi(e,`All MCPs (A-Z) - ${e.length} total`)}async function oi(e,t){console.log(),console.log(` ${f(t)}`),console.log();let n=e.map(o=>({name:Bl(o),value:o}));return n.push(new M),n.push({name:`${a("dim","- Back")}`,value:"back"}),await j({message:"Select an MCP to install:",choices:n,loop:!1,pageSize:15})}async function gg(e){let t=e.requiredEnvVars;if(!t||t.length===0)return{};console.log(),console.log(` ${l("[Step 5/6]")} ${f("Environment Variables")}`),console.log(),console.log(a("yellow"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","WARN")} ${f("Environment Variables Required")}`+" ".repeat(26)+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${l("This MCP requires the following environment variables:")}`),console.log();for(let o of t)console.log(` ${a("cyan",o.name)}`),console.log(` ${l(o.description)}`),o.example&&console.log(` ${l("Example:")} ${a("dim",o.example)}`),console.log();let n=await j({message:"Would you like to configure these now?",choices:[{name:`${a("green","\u2705")} Configure environment variables`,value:"configure"},{name:`${a("yellow","\u25CB")} Skip - ${l("Configure later manually")}`,value:"skip"},new M,{name:`${a("dim","- Back")}`,value:"back"}],loop:!1});if(n==="back")return"back";if(n==="skip")return{};let r={};for(let o of t){console.log(),console.log(` ${a("cyan",o.name)}: ${l(o.description)}`),o.example&&console.log(` ${l("Example:")} ${o.example}`);let i=await ae({message:`${o.name}:`,validate:s=>!s.trim()&&!o.name.includes("OPTIONAL")?`${o.name} is required`:!0});i.trim()&&(r[o.name]=i.trim())}return r}async function fg(e,t){let n=B[t];return console.log(),await j({message:`Install ${e.name} to ${n?.name||t}?`,choices:[{name:`${a("green","\u2705")} Proceed with installation`,value:"proceed"},new M,{name:`${a("dim","- Back to edit options")}`,value:"back"},{name:`${a("dim","X Cancel")}`,value:"cancel"}],loop:!1})}function hg(e){console.log(),console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+f(e.name)+(e.official?` ${a("cyan","[Official]")}`:"")+" ".repeat(Math.max(0,60-e.name.length-(e.official?12:0)))+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${l("Description:")} ${e.description}`),console.log(` ${l("Category:")} ${a("cyan",e.category)}`),console.log(` ${l("Installation:")} ${a("yellow",e.installationType)}`),e.website&&console.log(` ${l("Website:")} ${a("blue",e.website)}`),console.log(` ${l("Repository:")} ${a("blue",e.repository)}`),e.tags&&e.tags.length>0&&console.log(` ${l("Tags:")} ${e.tags.map(t=>a("dim",t)).join(", ")}`),console.log()}function yg(e,t,n,r){let o=B[t];console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+f("Configuration Preview")+" ".repeat(39)+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log();let i={...e.installConfig.env||{},...r},s={command:e.installConfig.command,args:[...e.installConfig.args],...Object.keys(i).length>0&&{env:i}};if(console.log(` ${l("Server ID:")} ${a("cyan",e.id)}`),console.log(` ${l("Command:")} ${a("green",s.command)}`),console.log(` ${l("Args:")} ${a("yellow",s.args.join(" "))}`),Object.keys(i).length>0){console.log(` ${l("Environment Variables:")}`);for(let[c,u]of Object.entries(i)){let m=u.length>30?u.slice(0,27)+"...":u;console.log(` ${a("cyan",c)}: ${l(m)}`)}}console.log(),console.log(` ${f("Target:")}`),console.log(` ${l("Client:")} ${o?.name||t}`),console.log(` ${l("Config:")} ${a("cyan",n)}`),console.log()}function vg(e,t,n,r){let o=B[t];console.log(),console.log(a("green"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("green"," \u2502 ")+`${a("green","\u2705")} ${f("MCP installed successfully!")}`+" ".repeat(30)+a("green","\u2502")),console.log(a("green"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${f("Installed:")} ${e.name}`),console.log(` ${f("To:")} ${o?.name||t}`),console.log(` ${l("Config:")} ${a("cyan",n)}`),r&&console.log(` ${l("Backup:")} ${r}`),console.log(),console.log(` ${f("Next steps:")}`),console.log(` 1. Restart ${o?.name||t}`),console.log(` 2. Look for ${a("cyan",e.id)} in MCP servers`),e.website&&console.log(` 3. Check ${a("blue",e.website)} for usage docs`),console.log()}function $g(e){console.log(),console.log(a("red"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("red"," \u2502 ")+`${a("red","X")} ${f("Installation failed")}`+" ".repeat(38)+a("red","\u2502")),console.log(a("red"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${a("red","Error:")} ${e}`),console.log()}var Wb={search:lg,category:ug,tag:dg,popular:mg,all:pg},bg=["npx","node","python","python3","uvx","uv","docker","deno","bun","bunx","pnpm","yarn","npm"];function Hb(e){if(!e||typeof e!="string")return{valid:!1,error:"Command is required"};let t=e.trim();if(t.includes("..")||t.includes("\0"))return{valid:!1,error:"Command contains invalid characters"};let n=t.split(/[/\\]/),r=n[n.length-1]?.split(/\s+/)[0]||"";return bg.includes(r)?{valid:!0}:{valid:!1,error:`Untrusted command: "${r}". Allowed: ${bg.join(", ")}`}}var qb=[/[;&|`$]/,/[(){}[\]]/,/[<>]/,/[!^]/,/\\(?!["'\\])/,/[\n\r\x00]/,/'.*'/,/".*\$.*"/],Jb=/^--?[a-zA-Z][a-zA-Z0-9-]*(=\S+)?$/;function Kb(e){return Jb.test(e)}function Xb(e){if(!Array.isArray(e))return{valid:!1,error:"Arguments must be an array"};for(let t of e){if(typeof t!="string")return{valid:!1,problematic:String(t),error:"Argument must be a string"};if(!Kb(t)){for(let n of qb)if(n.test(t))return{valid:!1,problematic:t,error:`Potentially unsafe argument: "${t.slice(0,50)}${t.length>50?"...":""}"`};if(t.length>4096)return{valid:!1,problematic:t.slice(0,50)+"...",error:"Argument exceeds maximum length (4096 chars)"}}}return{valid:!0}}function Yb(e){if(!e||typeof e!="object")return{valid:!0};let t=/^[A-Za-z_][A-Za-z0-9_]*$/;for(let[n,r]of Object.entries(e)){if(!t.test(n))return{valid:!1,problematic:n,error:`Invalid environment variable name: "${n}"`};if(typeof r!="string")return{valid:!1,problematic:n,error:`Environment variable value must be a string: "${n}"`};if(/[\x00-\x08\x0B\x0C\x0E-\x1F]/.test(r))return{valid:!1,problematic:n,error:`Environment variable "${n}" contains invalid control characters`};if(r.length>32768)return{valid:!1,problematic:n,error:`Environment variable "${n}" exceeds maximum length (32KB)`}}return{valid:!0}}function Qb(e,t){let n=Hb(e.installConfig.command);if(!n.valid)throw new Error(n.error||"Invalid command");let r=Xb(e.installConfig.args);if(!r.valid)throw new Error(r.error||`Potentially unsafe argument: "${r.problematic}"`);let o={...e.installConfig.env||{},...t},i=Yb(o);if(!i.valid)throw new Error(i.error||`Invalid environment variable: "${i.problematic}"`);let s={command:e.installConfig.command,args:[...e.installConfig.args]};return Object.keys(o).length>0&&(s.env=o),s}function ek(e,t,n){let r=t==="custom"&&n?n:Y(t,n),o=J(r);return!o||!o.mcpServers?!1:e in o.mcpServers}function tk(e,t,n,r){let o=t==="custom"&&n?n:Y(t,n),i=J(o)||{mcpServers:{}},s=Qb(e,r);i={...i,mcpServers:{...i.mcpServers,[e.id]:s}};let c=xe(o,i);return c.success?{success:!0,configPath:o,backupPath:c.backupPath}:{success:!1,configPath:o,error:c.error||"Failed to write config"}}async function ok(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}async function Vl(){await oe(),console.log(),console.log(` ${a("yellow","WARN")} ${l("70+ community servers \u2022 MCPs install on your behalf")}`);let e={client:null,browseMode:null,selectedMCP:null,envValues:{}},t="client";for(;t!=="done";)switch(t){case"client":{let n=await ag();if(!n)return;e.client=n.client,e.customPath=n.customPath,t="browse";break}case"browse":{let n=await cg();if(n==="back"||n===null){t="client";break}e.browseMode=n,t="selectMCP";break}case"selectMCP":{let n=e.browseMode?Wb[e.browseMode]:null,r=n?await n():null;if(!r||r==="back"){t="browse";break}e.selectedMCP=r,t="details";break}case"details":{let n=ze(e.selectedMCP,"selectedMCP should be set before details step");if(console.log(),console.log(` ${l("[Step 4/6]")} ${f("MCP Details")}`),hg(n),await j({message:"What would you like to do?",choices:[{name:`${a("green","\u2705")} Continue to install`,value:"continue"},new M,{name:`${a("dim","- Back to MCP list")}`,value:"back"}],loop:!1})==="back"){t="selectMCP";break}t="envVars";break}case"envVars":{let n=ze(e.selectedMCP,"selectedMCP should be set before envVars step"),r=await gg(n);if(r==="back"){t="details";break}if(r===null){t="details";break}e.envValues=r,t="confirm";break}case"confirm":{let n=ze(e.selectedMCP,"selectedMCP should be set before confirm step"),r=ze(e.client,"client should be set before confirm step");console.log(),console.log(` ${l("[Step 6/6]")} ${f("Confirm Installation")}`);let o=r==="custom"&&e.customPath?e.customPath:Y(r,e.customPath);if(ek(n.id,r,e.customPath)){console.log(),console.log(` ${a("yellow","\u26A0")} MCP "${f(n.name)}" is already installed.`),console.log();let c=await j({message:"What would you like to do?",choices:[{name:`${a("blue","\u21BB")} Update configuration`,value:"update"},{name:`${a("dim","\u23ED")} Skip (keep existing)`,value:"skip"},new M,{name:`${a("dim","\u2190 Back")}`,value:"back"}],loop:!1});if(c==="skip"){console.log(),console.log(` ${l("Skipped - keeping existing configuration.")}`),t="browse";break}if(c==="back"){t="envVars";break}console.log(),console.log(` ${a("blue","\u2192")} Updating MCP configuration...`)}yg(n,r,o,e.envValues);let s=await fg(n,r);if(s==="back"){t="envVars";break}if(s==="cancel"){console.log(),console.log(` ${l("Installation cancelled.")}`);return}t="install";break}case"install":{let n=ze(e.selectedMCP,"selectedMCP should be set before install step"),r=ze(e.client,"client should be set before install step"),o=new D("Installing MCP...").start(),i=tk(n,r,e.customPath,e.envValues);i.success?(o.succeed("MCP installed successfully!"),vg(n,r,i.configPath,i.backupPath)):(o.fail("Installation failed"),$g(i.error||"Unknown error")),await ok(),t="done";break}default:break}}function pt(){let e=Op(),t=[];for(let n of e){let r=Y(n),o=mt(n),i=null,s=0;o&&(i=J(r),i?.mcpServers&&(s=Object.keys(i.mcpServers).length)),t.push({client:n,configPath:r,config:i,exists:o,mcpCount:s})}return t}function nk(e,t){if(e.command!==t.command)return!1;let n=e.args||[],r=t.args||[];if(n.length!==r.length)return!1;for(let s=0;s<n.length;s++)if(n[s]!==r[s])return!1;let o=Object.keys(e.env||{}).sort(),i=Object.keys(t.env||{}).sort();if(o.length!==i.length)return!1;for(let s=0;s<o.length;s++)if(o[s]!==i[s]||(e.env||{})[o[s]]!==(t.env||{})[i[s]])return!1;return!0}function gt(e){let t=e.filter(m=>m.exists&&m.config),n=new Set,r=new Map;for(let m of t)if(m.config?.mcpServers)for(let[d,p]of Object.entries(m.config.mcpServers))n.add(d),r.has(d)||r.set(d,new Map),r.get(d).set(m.client,p);let o=[],i=t.map(m=>m.client);for(let m of n){let d=r.get(m)||new Map,p=Array.from(d.keys()),h=i.filter(C=>!d.has(C)),v=!1,g=Array.from(d.values());if(g.length>1){let C=g[0];for(let k=1;k<g.length;k++)if(!nk(C,g[k])){v=!0;break}}o.push({mcpId:m,presentIn:p,missingIn:h,hasConflict:v,variants:d})}let s=o.filter(m=>m.missingIn.length===0&&!m.hasConflict),c=o.filter(m=>m.missingIn.length>0&&!m.hasConflict),u=o.filter(m=>m.hasConflict);return{clients:e,allMCPs:n,diffs:o,fullyConsistent:s,needsSync:c,conflicts:u,summary:{totalClients:e.length,clientsWithConfig:t.length,totalUniqueMCPs:n.size,consistentMCPs:s.length,needsSyncCount:c.length,conflictCount:u.length}}}function rk(e,t){let n={mcpServers:{...e?.mcpServers||{}}};for(let{mcpId:r,server:o}of t)n.mcpServers[r]=o;return n}function ik(e,t){return t?t.chosenConfig:!e.hasConflict&&e.variants.size>0?Array.from(e.variants.values())[0]:null}function Gl(e,t,n){let r=new Map,o=[],i=[],s=n?e.filter(u=>n.includes(u.client)):e.filter(u=>u.exists);for(let u of s){if(u.exists&&u.config===null){r.set(u.client,{success:!1,error:"Config file exists but could not be parsed (corrupt JSON?) \u2014 skipping to avoid data loss"}),o.push(`${B[u.client]?.name||u.client}: corrupt config \u2014 skipped`);continue}let m=rk(u.config,t),d=xe(u.configPath,m);if(d.success)r.set(u.client,{success:!0,backupPath:d.backupPath});else{let p=d.error||"Unknown write error";r.set(u.client,{success:!1,error:p}),o.push(`${B[u.client]?.name||u.client}: ${p}`)}}for(let{mcpId:u}of t)i.includes(u)||i.push(u);return{success:Array.from(r.values()).every(u=>u.success),clientResults:r,mcpsSynced:i,errors:o}}function ni(e,t){let n=[],r=new Map(t.map(o=>[o.mcpId,o]));for(let o of e.needsSync){let i=ik(o);i&&n.push({mcpId:o.mcpId,server:i})}for(let o of e.conflicts){let i=r.get(o.mcpId);i&&n.push({mcpId:o.mcpId,server:i.chosenConfig})}return n}function Wl(e){return e.summary.needsSyncCount>0||e.summary.conflictCount>0}function $e(e){return B[e]?.name||e}async function Hl(e){let t=pt(),n=gt(t);if(n.summary.clientsWithConfig<2)return{success:!1,message:`Not enough clients to sync (found ${n.summary.clientsWithConfig})`,syncPerformed:!1};if(!Wl(n))return{success:!0,message:"All MCPs are already in sync",syncPerformed:!1};if(n.conflicts.length>0&&!e.force)return{success:!1,message:`${n.conflicts.length} conflict(s) found. Use --force to auto-resolve or run interactive mode.`,syncPerformed:!1};let r=[];if(e.force)for(let c of n.conflicts){let u=Array.from(c.variants.entries())[0];u&&r.push({mcpId:c.mcpId,chosenConfig:u[1],sourceClient:u[0]})}let o=ni(n,r);if(e.dryRun)return{success:!0,message:`Would sync ${o.length} MCP(s) to ${n.summary.clientsWithConfig} client(s)`,syncPerformed:!1};let i=n.clients.filter(c=>c.exists),s=Gl(n.clients,o,i.map(c=>c.client));return s.success?{success:!0,message:`Synced ${s.mcpsSynced.length} MCP(s) to ${i.length} client(s)`,syncPerformed:!0}:{success:!1,message:`Sync failed: ${s.errors.join(", ")}`,syncPerformed:!0}}function wg(e){let{summary:t}=e;if(console.log(),console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+f("MCP Sync Status")+" ".repeat(44)+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${f("Clients:")}`),console.log(` ${a("cyan","\u2022")} ${t.clientsWithConfig} of ${t.totalClients} with MCP configs`),console.log(),console.log(` ${f("MCPs:")}`),console.log(` ${a("cyan","\u2022")} ${t.totalUniqueMCPs} unique MCPs found`),t.consistentMCPs>0){console.log(` ${a("green","\u2705")} ${t.consistentMCPs} fully synced`);for(let n of e.fullyConsistent)console.log(` ${l("\u2022")} ${n.mcpId}`)}if(t.needsSyncCount>0){let n=t.needsSyncCount;console.log(` ${a("yellow","\u25CB")} ${n} can be synced`);for(let r of e.needsSync){let o=r.missingIn.map($e).join(", ");console.log(` ${a("yellow","\u2022")} ${r.mcpId}`),console.log(` ${l(`missing from: ${o}`)}`)}}if(t.conflictCount>0){console.log(` ${a("red","!")} ${t.conflictCount} have conflicts`);for(let n of e.conflicts){let r=Array.from(n.variants.keys()).map($e).join(" vs ");console.log(` ${a("red","\u2022")} ${n.mcpId}`),console.log(` ${l(`different in: ${r}`)}`)}console.log(),console.log(` ${a("cyan","INFO")} ${l("Continue to choose which config to use for each conflict")}`)}console.log()}function Cg(e){console.log(` ${f("Client Configurations:")}`),console.log();for(let t of e){let n=$e(t.client),r=t.exists?a("green","\u25CF"):a("dim","\u25CB"),o=t.exists?`${t.mcpCount} MCPs`:l("no config");console.log(` ${r} ${n}`),console.log(` ${l(t.configPath)}`),console.log(` ${l(o)}`),console.log()}}function kg(e){let t=e.hasConflict?a("red","!"):e.missingIn.length>0?a("yellow","\u25CB"):a("green","\u2705");console.log(` ${t} ${f(e.mcpId)}`);let n=e.presentIn.map($e).join(", ");if(console.log(` ${l("Present in:")} ${n}`),e.missingIn.length>0){let r=e.missingIn.map($e).join(", ");console.log(` ${a("yellow","Missing from:")} ${r}`)}e.hasConflict&&console.log(` ${a("red","Conflict:")} Different configurations detected`),console.log()}function Sg(e){if(e.fullyConsistent.length>0){console.log(` ${a("green","\u2705")} ${f("Fully Synced:")}`);for(let t of e.fullyConsistent)console.log(` ${a("dim","\u2022")} ${t.mcpId}`);console.log()}if(e.needsSync.length>0){console.log(` ${a("yellow","\u25CB")} ${f("Needs Sync (auto-resolvable):")}`);for(let t of e.needsSync)kg(t)}if(e.conflicts.length>0){console.log(` ${a("red","!")} ${f("Conflicts (requires resolution):")}`);for(let t of e.conflicts)kg(t)}}function sk(e,t=" "){console.log(`${t}${l("command:")} ${e.command||l("(none)")}`);let n=e.args?.join(" ")||"";if(n&&console.log(`${t}${l("args:")} ${n}`),e.env&&Object.keys(e.env).length>0){console.log(`${t}${l("env:")}`);for(let[r,o]of Object.entries(e.env)){let s=/token|secret|key|password|auth|credential/i.test(r)?"***":o&&o.length>30?o.slice(0,30)+"...":o||"";console.log(`${t} ${a("cyan",r)}: ${s}`)}}}function xg(e,t=!1){console.log(),console.log(a("yellow"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","WARN")} Conflict: ${f(e.mcpId)}`+" ".repeat(Math.max(0,43-e.mcpId.length))+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${l("This MCP has different configurations across clients:")}`),console.log();let n=1;for(let[r,o]of e.variants){let i=$e(r);if(console.log(` ${a("cyan",`[${n}]`)} ${f(i)}`),t)sk(o," ");else{let s=o.args?.join(" ")||"",c=[o.command,s].filter(Boolean).join(" ");console.log(` ${l("command:")} ${c||l("(none)")}`),o.env&&Object.keys(o.env).length>0&&console.log(` ${l("env:")} ${Object.keys(o.env).length} variables`)}console.log(),n++}}function _g(e,t){console.log(),console.log(a("blue"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("blue"," \u2502 ")+f("Sync Preview")+" ".repeat(47)+a("blue","\u2502")),console.log(a("blue"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${f("MCPs to sync:")} ${e.length}`);for(let{mcpId:n}of e)console.log(` ${a("cyan","\u2022")} ${n}`);console.log(),console.log(` ${f("Target clients:")} ${t.length}`);for(let n of t){let r=$e(n.client);console.log(` ${a("cyan","\u2022")} ${r}`),console.log(` ${l(n.configPath)}`)}console.log(),console.log(` ${a("yellow","WARN")} ${f("Note:")}`),console.log(` ${l("Backups will be created before modifying any config.")}`),console.log()}function Pg(e){if(console.log(),e.success?(console.log(a("green"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("green"," \u2502 ")+`${a("green","\u2705")} ${f("Sync Complete!")}`+" ".repeat(43)+a("green","\u2502")),console.log(a("green"," \u2514"+"\u2500".repeat(60)+"\u2518"))):(console.log(a("red"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("red"," \u2502 ")+`${a("red","X")} ${f("Sync completed with errors")}`+" ".repeat(32)+a("red","\u2502")),console.log(a("red"," \u2514"+"\u2500".repeat(60)+"\u2518"))),console.log(),e.mcpsSynced.length>0){console.log(` ${f("Synced MCPs:")} ${e.mcpsSynced.length}`);for(let t of e.mcpsSynced)console.log(` ${a("green","\u2705")} ${t}`);console.log()}console.log(` ${f("Client Results:")}`);for(let[t,n]of e.clientResults){let r=$e(t);n.success?(console.log(` ${a("green","\u2705")} ${r}`),n.backupPath&&console.log(` ${l("Backup:")} ${n.backupPath}`)):(console.log(` ${a("red","X")} ${r}`),n.error&&console.log(` ${a("red","Error:")} ${n.error}`))}if(e.errors.length>0){console.log(),console.log(` ${a("red","Errors:")}`);for(let t of e.errors)console.log(` ${a("red","\u2022")} ${t}`)}console.log()}function Ig(){console.log(),console.log(a("green"," \u250C"+"\u2500".repeat(60)+"\u2510")),console.log(a("green"," \u2502 ")+`${a("green","\u2705")} ${f("All MCPs are already in sync!")}`+" ".repeat(28)+a("green","\u2502")),console.log(a("green"," \u2514"+"\u2500".repeat(60)+"\u2518")),console.log(),console.log(` ${l("All your MCP configurations are consistent across clients.")}`),console.log()}async function so(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}async function ak(e){xg(e,!0);let t=[],n=1;for(let[o,i]of e.variants){let s=$e(o),c=i.args?.join(" ")||"",u=[i.command,c].filter(Boolean).join(" ");t.push({name:`${a("cyan",`[${n}]`)} Use config from ${f(s)}`,value:{client:o,server:i},description:u||"(no command)"}),n++}t.push(new M),t.push({name:`${a("yellow","Skip")} Skip this MCP (don't sync)`,value:"skip"}),t.push({name:`${a("dim","- Back")}`,value:"back"});let r=await j({message:`Choose config for ${f(e.mcpId)}:`,choices:t,loop:!1});return r==="back"||r==="skip"?null:{mcpId:e.mcpId,chosenConfig:r.server,sourceClient:r.client}}async function ql(){await oe(),console.log(),console.log(a("blue","\u2501".repeat(66))),console.log(` Sync ${f("Sync System MCP")}`),console.log(a("blue","\u2501".repeat(66))),console.log(),console.log(` ${l("Synchronize MCP servers across all your IDE clients")}`);let e={analysis:null,resolutions:[],currentConflictIndex:0},t="analyze";for(;t!=="done";)switch(t){case"analyze":{let n=new D("Scanning client configurations...").start(),r=pt();if(e.analysis=gt(r),n.succeed("Configuration scan complete!"),e.analysis.summary.clientsWithConfig<2){console.log(),console.log(` ${a("yellow","WARN")} ${f("Not enough clients to sync")}`),console.log(` ${l("Found only")} ${e.analysis.summary.clientsWithConfig} ${l("client(s) with MCP configs.")}`),console.log(` ${l("Need at least 2 clients to sync.")}`),console.log(),await so();return}t="showStatus";break}case"showStatus":{let n=ze(e.analysis,"Analysis should be populated before showStatus step");if(wg(n),!Wl(n)){Ig(),await so();return}let r=await j({message:"What would you like to do?",choices:[{name:`${a("green","\u2705")} Continue to sync`,value:"continue"},{name:`${a("cyan","INFO")} Show MCP details`,value:"details"},{name:`${a("cyan","INFO")} Show client details`,value:"clients"},new M,{name:`${a("dim","- Back to menu")}`,value:"back"}],loop:!1});if(r==="back")return;if(r==="details"){console.log(),Sg(n),await so();break}if(r==="clients"){console.log(),Cg(n.clients),await so();break}n.conflicts.length>0?t="resolveConflicts":t="preview";break}case"resolveConflicts":{let r=ze(e.analysis,"Analysis should be populated before resolveConflicts step").conflicts;console.log(),console.log(` ${a("yellow","WARN")} ${f(`Resolve ${r.length} conflict(s)`)}`),console.log(` ${l("You need to choose which configuration to use for each conflicting MCP.")}`),e.resolutions=[];for(let o=0;o<r.length;o++){console.log(),console.log(` ${l(`Conflict ${o+1} of ${r.length}`)}`);let i=await ak(r[o]);if(i===null){console.log(` ${a("yellow","Skip")} Skipping ${f(r[o].mcpId)}`);continue}e.resolutions.push(i),console.log(` ${a("green","\u2705")} Using config from ${f($e(i.sourceClient))}`)}t="preview";break}case"preview":{let n=ze(e.analysis,"Analysis should be populated before preview step"),r=ni(n,e.resolutions);if(r.length===0){console.log(),console.log(` ${a("yellow","WARN")} ${f("No MCPs to sync")}`),console.log(` ${l("All conflicts were skipped or no sync is needed.")}`),console.log(),await so();return}let o=n.clients.filter(i=>i.exists);_g(r.map(i=>({mcpId:i.mcpId})),o),t="confirm";break}case"confirm":{let n=await j({message:"Proceed with sync?",choices:[{name:`${a("green","\u2705")} Yes, sync all clients`,value:"proceed"},new M,{name:`${a("dim","- Back to review")}`,value:"back"},{name:`${a("dim","X Cancel")}`,value:"cancel"}],loop:!1});if(n==="cancel"){console.log(` ${l("Sync cancelled.")}`);return}if(n==="back"){t="showStatus";break}t="execute";break}case"execute":{let n=ze(e.analysis,"Analysis should be populated before execute step"),r=ni(n,e.resolutions),o=n.clients.filter(c=>c.exists),i=new D("Syncing configurations...").start(),s=Gl(n.clients,r,o.map(c=>c.client));s.success?i.succeed("Sync complete!"):i.fail("Sync completed with errors"),Pg(s),console.log(` ${f("Next steps:")}`),console.log(` ${l("Restart your IDEs to apply the changes.")}`),console.log(),await so(),t="done";break}default:break}}import{fileURLToPath as ck}from"node:url";import{basename as lk,dirname as Og,isAbsolute as uk,join as be,relative as dk,resolve as ao,sep as mk}from"node:path";import{existsSync as Eg,readFileSync as pk,writeFileSync as uT,mkdirSync as gk,rmSync as fk,symlinkSync as hk}from"node:fs";function Ge(e){let t=e.match(/^---\s*\n([\s\S]*?)\n---/);if(!t)return null;let n=t[1],r=n.match(/^name:\s*(.+)$/m),o=n.match(/^description:\s*(.+)$/m),i=n.match(/^category:\s*(.+)$/m);return{name:r?.[1].trim(),description:o?.[1].trim(),category:i?.[1].trim()}}var yk=me.home||process.env.OCTOCODE_HOME||be(G,".octocode"),Tg=me.cliConfig||be(yk,"config.json"),vk=$.object({skillsDestDir:$.string().optional()}).passthrough(),ot=["claude-code","claude-desktop","cursor","codex","opencode","agents"],Ag=["claude-code"],Jl=["claude-code","claude-desktop"],$k={claude:"claude-code","claude-code":"claude-code",claudecode:"claude-code","claude-desktop":"claude-desktop",claudedesktop:"claude-desktop",cursor:"cursor",codex:"codex",opencode:"opencode",agents:"agents"};function bk(){return fe(()=>{if(Eg(Tg)){let e=pk(Tg,"utf-8"),t=vk.safeParse(JSON.parse(e));return t.success?t.data:{}}return{}},{})}function kk(){return bk().skillsDestDir||null}function wk(){if(ie){let e=Ne();return be(e,"Claude","skills")}return be(G,".claude","skills")}function Kl(e){return $k[e.trim().toLowerCase()]??null}function nt(){return ot.join(", ")}function co(e,t=ke()){if(e==="claude-code")return t;if(ie){let n=Ne();switch(e){case"claude-desktop":return be(n,"Claude Desktop","skills");case"cursor":return be(G,".cursor","skills");case"codex":return be(G,".codex","skills");case"opencode":return be(G,".opencode","skills");case"agents":return be(G,".agents","skills")}}switch(e){case"claude-desktop":return be(G,".claude-desktop","skills");case"cursor":return be(G,".cursor","skills");case"codex":return be(G,".codex","skills");case"opencode":return be(G,".opencode","skills");case"agents":return be(G,".agents","skills")}}function Mg(e,t){return e==="hybrid"?t==="claude-code"||t==="claude-desktop"?"copy":"symlink":e}function ri(e,t){let n=ao(e),r=ao(t),o=dk(n,r);return o!==".."&&!o.startsWith(`..${mk}`)&&!uk(o)}function Et(e){let t=e.trim();return t.length>0&&t===e&&t!=="."&&t!==".."&&!t.includes("\0")&&!t.includes("/")&&!t.includes("\\")}function At(e,t){if(!Et(t))return null;let n=ao(e,t);return ri(e,n)?n:null}function Ck(){let e=ck(import.meta.url),t=Og(e);return[ao(t,"..","skills"),ao(t,"..","..","..","..","skills"),ao(t,"..","..","..","skills")]}function Ng(e){let t=Ck();for(let n of t)if(F(n))return n;if(e.fallback)return t[0];throw new Error("Skills directory not found")}function ii(){return Ng({fallback:!1})}function zg(){let e=ii();return Te(e).filter(t=>t.startsWith("octocode-")&&Et(t))}function Mt(){return Ng({fallback:!0})}function ke(){let e=kk();return e||wk()}function jg(e){let t=be(e,"SKILL.md");if(!pe(t))return null;let n=Ze(t);if(!n)return null;let r=Ge(n);return!r?.name||!r.description?null:{name:r.name,description:r.description,folder:lk(e)}}function si({sourcePath:e,destinationPath:t,mode:n,force:r}){try{if(!F(e))return"failed";if(Eg(t)){if(!r)return"skipped";fk(t,{recursive:!0,force:!0})}let o=Og(t);return F(o)||gk(o,{recursive:!0,mode:448}),n==="symlink"?(hk(e,t,ie?"junction":"dir"),"installed"):El(e,t)?"installed":"failed"}catch{return"failed"}}import go from"node:path";import Qg from"node:process";import ef from"node:path";import{fileURLToPath as ew}from"node:url";import tw from"node:child_process";import ow,{constants as nw}from"node:fs/promises";import{promisify as Mk}from"node:util";import Nk from"node:child_process";import ou,{constants as Bg}from"node:fs/promises";import Rg from"node:process";import Ik from"node:os";import eu from"node:fs";import _k from"node:fs";import Dg from"node:fs";var Xl;function Sk(){try{return Dg.statSync("/.dockerenv"),!0}catch{return!1}}function xk(){try{return Dg.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function Yl(){return Xl===void 0&&(Xl=Sk()||xk()),Xl}var Ql,Pk=()=>{try{return _k.statSync("/run/.containerenv"),!0}catch{return!1}};function Nt(){return Ql===void 0&&(Ql=Pk()||Yl()),Ql}var Lg=()=>{if(Rg.platform!=="linux")return!1;if(Ik.release().toLowerCase().includes("microsoft"))return!Nt();try{if(eu.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!Nt()}catch{}return eu.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||eu.existsSync("/run/WSL")?!Nt():!1},rt=Rg.env.__IS_WSL_TEST__?Lg:Lg();import Ug from"node:process";import{Buffer as Tk}from"node:buffer";import{promisify as Ok}from"node:util";import Ek from"node:child_process";import MT,{constants as NT}from"node:fs/promises";var Ak=Ok(Ek.execFile),tu=()=>`${Ug.env.SYSTEMROOT||Ug.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;var Oe=async(e,t={})=>{let{powerShellPath:n,...r}=t,o=Oe.encodeCommand(e);return Ak(n??tu(),[...Oe.argumentsPrefix,o],{encoding:"utf8",...r})};Oe.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"];Oe.encodeCommand=e=>Tk.from(e,"utf16le").toString("base64");Oe.escapeArgument=e=>`'${String(e).replaceAll("'","''")}'`;function Fg(e){for(let t of e.split(`
|
|
49
|
-
`)){if(/^\s*#/.test(t))continue;let n=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(t);if(n)return n.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}var zk=Mk(Nk.execFile),jk=(()=>{let e="/mnt/",t;return async function(){if(t)return t;let n="/etc/wsl.conf",r=!1;try{await ou.access(n,Bg.F_OK),r=!0}catch{}if(!r)return e;let o=await ou.readFile(n,{encoding:"utf8"}),i=Fg(o);return i===void 0?e:(t=i,t=t.endsWith("/")?t:`${t}/`,t)}})(),Dk=async()=>`${await jk()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,ai=rt?Dk:tu,Zg,Vg=async()=>(Zg??=(async()=>{try{let e=await ai();return await ou.access(e,Bg.X_OK),!0}catch{return!1}})(),Zg),Gg=async()=>{let e=await ai(),t=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:n}=await Oe(t,{powerShellPath:e});return n.trim()},Wg=async e=>{if(/^[a-z]+:\/\//i.test(e))return e;try{let{stdout:t}=await zk("wslpath",["-aw",e],{encoding:"utf8"});return t.trim()}catch{return e}};function zt(e,t,n){let r=o=>Object.defineProperty(e,t,{value:o,enumerable:!0,writable:!0});return Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){let o=n();return r(o),o},set(o){r(o)}}),e}import{promisify as Jk}from"node:util";import cu from"node:process";import{execFile as Kk}from"node:child_process";import{promisify as Lk}from"node:util";import Rk from"node:process";import{execFile as Uk}from"node:child_process";var Fk=Lk(Uk);async function nu(){if(Rk.platform!=="darwin")throw new Error("macOS only");let{stdout:e}=await Fk("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),n=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(e)?.groups.id??"com.apple.Safari";return n==="com.apple.safari"?"com.apple.Safari":n}import Zk from"node:process";import{promisify as Bk}from"node:util";import{execFile as Vk,execFileSync as QT}from"node:child_process";var Gk=Bk(Vk);async function Hg(e,{humanReadableOutput:t=!0,signal:n}={}){if(Zk.platform!=="darwin")throw new Error("macOS only");let r=t?[]:["-ss"],o={};n&&(o.signal=n);let{stdout:i}=await Gk("osascript",["-e",e,r],o);return i.trim()}async function ru(e){return Hg(`tell application "Finder" to set app_path to application file id "${e}" as string
|
|
50
|
-
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as Wk}from"node:util";import{execFile as Hk}from"node:child_process";var qk=Wk(Hk),ci={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},su=new Map(Object.entries(ci)),iu=class extends Error{};async function au(e=qk){let{stdout:t}=await e("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),n=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(t);if(!n)throw new iu(`Cannot find Windows browser in stdout: ${JSON.stringify(t)}`);let{id:r}=n.groups,o=r.lastIndexOf("."),i=r.lastIndexOf("-"),s=o===-1?void 0:r.slice(0,o),c=i===-1?void 0:r.slice(0,i);return ci[r]??ci[s]??ci[c]??{name:r,id:r}}var Xk=Jk(Kk),Yk=e=>e.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,t=>t.toUpperCase());async function lu(){if(cu.platform==="darwin"){let e=await nu();return{name:await ru(e),id:e}}if(cu.platform==="linux"){let{stdout:e}=await Xk("xdg-mime",["query","default","x-scheme-handler/http"]),t=e.trim();return{name:Yk(t.replace(/.desktop$/,"").replace("-"," ")),id:t}}if(cu.platform==="win32")return au();throw new Error("Only macOS, Linux, and Windows are supported")}import uu from"node:process";var Qk=!!(uu.env.SSH_CONNECTION||uu.env.SSH_CLIENT||uu.env.SSH_TTY),qg=Qk;var li=Symbol("fallbackAttempt"),du=import.meta.url?ef.dirname(ew(import.meta.url)):"",Jg=ef.join(du,"xdg-open"),{platform:lo,arch:Kg}=Qg,Xg=async(e,t)=>{if(e.length===0)return;let n=[];for(let r of e)try{return await t(r)}catch(o){n.push(o)}throw new AggregateError(n,"Failed to open in all supported apps")},ui=async e=>{e={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...e};let t=e[li]===!0;if(delete e[li],Array.isArray(e.app))return Xg(e.app,m=>ui({...e,app:m,[li]:!0}));let{name:n,arguments:r=[]}=e.app??{};if(r=[...r],Array.isArray(n))return Xg(n,m=>ui({...e,app:{name:m,arguments:r},[li]:!0}));if(n==="browser"||n==="browserPrivate"){let m={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.apple.safari":"safari"},d={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},p;if(rt){let h=await Gg();p=su.get(h)??{}}else p=await lu();if(p.id in m){let h=m[p.id.toLowerCase()];if(n==="browserPrivate"){if(h==="safari")throw new Error("Safari doesn't support opening in private mode via command line");r.push(d[h])}return ui({...e,app:{name:uo[h],arguments:r}})}throw new Error(`${p.name} is not supported as a default browser`)}let o,i=[],s={},c=!1;if(rt&&!Nt()&&!qg&&!n&&(c=await Vg()),lo==="darwin")o="open",e.wait&&i.push("--wait-apps"),e.background&&i.push("--background"),e.newInstance&&i.push("--new"),n&&i.push("-a",n);else if(lo==="win32"||c){o=await ai(),i.push(...Oe.argumentsPrefix),rt||(s.windowsVerbatimArguments=!0),rt&&e.target&&(e.target=await Wg(e.target));let m=["$ProgressPreference = 'SilentlyContinue';","Start"];e.wait&&m.push("-Wait"),n?(m.push(Oe.escapeArgument(n)),e.target&&r.push(e.target)):e.target&&m.push(Oe.escapeArgument(e.target)),r.length>0&&(r=r.map(d=>Oe.escapeArgument(d)),m.push("-ArgumentList",r.join(","))),e.target=Oe.encodeCommand(m.join(" ")),e.wait||(s.stdio="ignore")}else{if(n)o=n;else{let m=!du||du==="/",d=!1;try{await ow.access(Jg,nw.X_OK),d=!0}catch{}o=Qg.versions.electron??(lo==="android"||m||!d)?"xdg-open":Jg}r.length>0&&i.push(...r),e.wait||(s.stdio="ignore",s.detached=!0)}lo==="darwin"&&r.length>0&&i.push("--args",...r),e.target&&i.push(e.target);let u=tw.spawn(o,i,s);return e.wait?new Promise((m,d)=>{u.once("error",d),u.once("close",p=>{if(!e.allowNonzeroExitCode&&p!==0){d(new Error(`Exited with code ${p}`));return}m(u)})}):t?new Promise((m,d)=>{u.once("error",d),u.once("spawn",()=>{u.once("close",p=>{if(u.off("error",d),p!==0){d(new Error(`Exited with code ${p}`));return}u.unref(),m(u)})})}):(u.unref(),new Promise((m,d)=>{u.once("error",d),u.once("spawn",()=>{u.off("error",d),m(u)})}))},rw=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a `target`");return ui({...t,target:e})};function Yg(e){if(typeof e=="string"||Array.isArray(e))return e;let{[Kg]:t}=e;if(!t)throw new Error(`${Kg} is not supported`);return t}function vn({[lo]:e},{wsl:t}={}){if(t&&rt)return Yg(t);if(!e)throw new Error(`${lo} is not supported`);return Yg(e)}var uo={browser:"browser",browserPrivate:"browserPrivate"};zt(uo,"chrome",()=>vn({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));zt(uo,"brave",()=>vn({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));zt(uo,"firefox",()=>vn({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));zt(uo,"edge",()=>vn({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));zt(uo,"safari",()=>vn({darwin:"Safari"}));var mo=rw;var $n=[{id:"octocode-skills",name:"Octocode",type:"github",owner:"bgauryy",repo:"octocode-mcp",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Research, planning, code review & documentation",url:"https://github.com/bgauryy/octocode-mcp/tree/main/skills"},{id:"anthropic-skills",name:"Anthropic Official",type:"github",owner:"anthropics",repo:"skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Official Anthropic skills \u2014 artifacts, design & docs",url:"https://github.com/anthropics/skills/tree/main/skills"},{id:"superpowers",name:"Superpowers",type:"github",owner:"obra",repo:"superpowers",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"TDD, debugging, worktrees & disciplined development",url:"https://github.com/obra/superpowers"},{id:"everything-claude-code",name:"Everything Claude Code",type:"github",owner:"affaan-m",repo:"everything-claude-code",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Performance, security, memory & agent harness",url:"https://github.com/affaan-m/everything-claude-code/tree/main/skills"},{id:"composio-skills",name:"Composio Skills",type:"github",owner:"ComposioHQ",repo:"awesome-claude-skills",branch:"master",skillsPath:"",skillPattern:"skill-folders",description:"Brand, canvas, MCP builder, invoicing & testing",url:"https://github.com/ComposioHQ/awesome-claude-skills"},{id:"antigravity-awesome-skills",name:"Antigravity Awesome",type:"github",owner:"sickn33",repo:"antigravity-awesome-skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"1,300+ agentic skills across all coding domains",url:"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills"},{id:"obsidian-skills",name:"Obsidian Skills",type:"github",owner:"kepano",repo:"obsidian-skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Markdown editing & Obsidian vault productivity",url:"https://github.com/kepano/obsidian-skills/tree/main/skills"},{id:"planning-with-files",name:"Planning with Files",type:"github",owner:"OthmanAdi",repo:"planning-with-files",branch:"master",skillsPath:"skills",skillPattern:"skill-folders",description:"Manus-style persistent markdown planning workflow",url:"https://github.com/OthmanAdi/planning-with-files/tree/master/skills"},{id:"marketing-skills",name:"Marketing Skills",type:"github",owner:"coreyhaines31",repo:"marketingskills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"SEO, copywriting, CRO, analytics & growth engineering",url:"https://github.com/coreyhaines31/marketingskills/tree/main/skills"},{id:"claude-scientific-skills",name:"Scientific Skills",type:"github",owner:"K-Dense-AI",repo:"claude-scientific-skills",branch:"main",skillsPath:"scientific-skills",skillPattern:"skill-folders",description:"Biopython, astropy, deepchem & scientific computing",url:"https://github.com/K-Dense-AI/claude-scientific-skills"},{id:"dev-browser",name:"Dev Browser",type:"github",owner:"SawyerHood",repo:"dev-browser",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Browser control via Playwright with persistent state",url:"https://github.com/SawyerHood/dev-browser"},{id:"aris-research",name:"ARIS Research",type:"github",owner:"wanshuiyin",repo:"Auto-claude-code-research-in-sleep",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Autonomous ML research \u2014 papers, reviews & experiments",url:"https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep/tree/main/skills"},{id:"buildwithclaude",name:"Build With Claude",type:"github",owner:"davepoon",repo:"buildwithclaude",branch:"main",skillsPath:"commands",skillPattern:"flat-md",description:"170+ commands, agents & skills hub",url:"https://github.com/davepoon/buildwithclaude"},{id:"claude-code-plugins-plus-skills",name:"Plugins + Skills",type:"github",owner:"jeremylongshore",repo:"claude-code-plugins-plus-skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"1,300+ skills with tutorials & orchestration",url:"https://github.com/jeremylongshore/claude-code-plugins-plus-skills"},{id:"ui-ux-pro-max",name:"UI/UX Pro Max",type:"github",owner:"nextlevelbuilder",repo:"ui-ux-pro-max-skill",branch:"main",skillsPath:".claude/skills",skillPattern:"skill-folders",description:"UI/UX, brand guidelines, design systems & styling",url:"https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/tree/main/.claude/skills"},{id:"ctf-skills",name:"CTF Skills",type:"github",owner:"ljagiello",repo:"ctf-skills",branch:"main",skillsPath:"",skillPattern:"skill-folders",description:"Web exploitation, crypto, pwn, reverse & forensics",url:"https://github.com/ljagiello/ctf-skills"},{id:"vltansky-skills",name:"Vltansky Skills",type:"github",owner:"vltansky",repo:"skills",branch:"master",skillsPath:"skills",skillPattern:"skill-folders",description:"QA, interviews, retros, RFC research & code reviews",url:"https://github.com/vltansky/skills/tree/master/skills"},{id:"claude-skills-marketplace",name:"Claude Skills Marketplace",type:"github",owner:"mhattingpete",repo:"claude-skills-marketplace",branch:"main",skillsPath:"",skillPattern:"skill-folders",description:"Git automation, testing & code review",url:"https://github.com/mhattingpete/claude-skills-marketplace"},{id:"daymade-claude-code-skills",name:"Daymade Skills",type:"github",owner:"daymade",repo:"claude-code-skills",branch:"main",skillsPath:"",skillPattern:"skill-folders",description:"Production-ready development workflows",url:"https://github.com/daymade/claude-code-skills"},{id:"webmaxru-agent-skills",name:"Web AI Skills",type:"github",owner:"webmaxru",repo:"agent-skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Web APIs for Web AI \u2014 auto-updated, manually reviewed",url:"https://github.com/webmaxru/agent-skills/tree/main/skills"},{id:"vercel-labs-skills",name:"Vercel Labs",type:"github",owner:"vercel-labs",repo:"skills",branch:"main",skillsPath:"skills",skillPattern:"skill-folders",description:"Open agent skills ecosystem CLI by Vercel",url:"https://github.com/vercel-labs/skills/tree/main/skills"}];var tf=new Map,iw=300*1e3;function jt(e){return e.type==="local"}async function sw(e){if(e.type==="local")return null;let t=`${e.owner}/${e.repo}`,n=tf.get(t);if(n&&Date.now()-n.timestamp<iw)return n.stars;try{let r=`https://api.github.com/repos/${e.owner}/${e.repo}`,o=await fetch(r,{headers:{Accept:"application/vnd.github.v3+json","User-Agent":"octocode-cli"}});if(!o.ok)return null;let s=(await o.json()).stargazers_count;return tf.set(t,{stars:s,timestamp:Date.now()}),s}catch{return null}}async function of(){let e=new Map,t=$n.map(async n=>{let r=await sw(n);r!==null&&e.set(n.id,r)});return await Promise.all(t),e}import{join as je,isAbsolute as aw}from"node:path";import{mkdirSync as pu,statSync as cw,readdirSync as lw,unlinkSync as uw,rmSync as dw}from"node:fs";import nf from"node:os";var af=1440*60*1e3,mw=$.object({timestamp:$.number(),skills:$.array($.object({}).passthrough())});function gu(){let e=nf.homedir(),t=process.env.npm_config_cache||je(e,".npm"),n=je(t,"_cacache","octocode-skills"),o=nf.platform()==="win32"?je(process.env.LOCALAPPDATA||je(e,"AppData","Local"),"octocode","cache","skills"):je(e,".cache","octocode","skills");return F(t)?n:o}function pw(){let e=gu();return F(e)||pu(e,{recursive:!0,mode:448}),e}function cf(e){let t=pw();return je(t,`${e.id}.json`)}function gw(e){return fe(()=>{if(!pe(e))return!1;let t=cw(e);return Date.now()-t.mtimeMs<af},!1)}function fw(e){return fe(()=>{let t=cf(e);if(!gw(t))return null;let n=Ze(t);if(!n)return null;let r=JSON.parse(n);if(!mw.safeParse(r).success)return null;let i=r;return Date.now()-i.timestamp>af?null:i.skills.map(s=>({...s,source:e}))},null)}function hw(e,t){fe(()=>{let n=cf(e),r=t.map(({source:i,...s})=>s),o={timestamp:Date.now(),skills:r};return ln(n,JSON.stringify(o,null,2)),!0},!1)}function mu(e){let t=["PR","API","UI","CLI","MCP","AI"];return e.replace(/\.md$/i,"").replace(/[-_]/g," ").replace(/\b\w/g,n=>n.toUpperCase()).replace(new RegExp(`\\b(${t.join("|")})\\b`,"gi"),n=>n.toUpperCase())}function yw(e){try{let t=ii(),n=zg(),r=[];for(let o of n){let i=je(t,o),s=je(i,"SKILL.md");if(pe(s)){let c=Ze(s);if(c){let u=Ge(c);r.push({name:o,displayName:mu(o),description:u?.description||uf(c)||"No description",category:u?.category||"Official",path:o,source:e})}}}return r}catch{return[]}}function vw(e,t){try{let n=ii(),r=At(n,e.name),o=At(t,e.name);return!r||!o?{success:!1,error:"Invalid skill name"}:F(r)?si({sourcePath:r,destinationPath:o,mode:"copy",force:!0})!=="installed"?{success:!1,error:"Failed to copy bundled skill"}:{success:!0}:{success:!1,error:"Skill not found in bundled source"}}catch(n){return{success:!1,error:n instanceof Error?n.message:"Unknown error"}}}async function lf(e){let t=`https://api.github.com/repos/${e.owner}/${e.repo}/git/trees/${e.branch}?recursive=1`,n=await fetch(t,{headers:{Accept:"application/vnd.github.v3+json","User-Agent":"octocode-cli"}});if(!n.ok)throw n.status===403?new Error("GitHub API rate limit exceeded. Try again later."):new Error(`Failed to fetch marketplace: ${n.statusText}`);let r=await n.json();return r.truncated&&console.warn(`[octocode] GitHub tree response was truncated for ${e.owner}/${e.repo}. Some skills may be missing.`),r.tree}var bn=1024*1024,rf=500;async function di(e,t){let n=`https://raw.githubusercontent.com/${e.owner}/${e.repo}/${e.branch}/${t}`,r=await fetch(n,{headers:{"User-Agent":"octocode-cli"}});if(!r.ok)throw new Error(`Failed to fetch content: ${r.statusText}`);let o=r.headers?.get?.("Content-Length"),i=o?Number(o):NaN;if(Number.isFinite(i)&&i>bn)throw new Error(`Content too large: ${i} bytes exceeds ${bn} byte limit`);let s=await r.text(),c=Buffer.byteLength(s,"utf8");if(c>bn)throw new Error(`Content too large: ${c} bytes exceeds ${bn} byte limit`);return s}async function fu(e,t={}){if(jt(e))return yw(e);if(!t.skipCache){let o=fw(e);if(o)return o}let n=await lf(e),r=[];if(e.skillPattern==="flat-md"){let o=e.skillsPath?`${e.skillsPath}/`:"",s=n.filter(u=>u.type==="blob"&&u.path.startsWith(o)&&u.path.endsWith(".md")&&!u.path.includes("/")==(o==="")&&(o===""||u.path.split("/").length===2)).slice(0,100),c=await Promise.all(s.map(async u=>{try{let m=await di(e,u.path),d=Ge(m),p=u.path.split("/").pop()||u.path;return{name:p.replace(/\.md$/i,""),displayName:mu(p),description:d?.description||"No description available",category:d?.category,path:u.path,source:e}}catch{return null}}));r.push(...c.filter(u=>u!==null))}else{let o=e.skillsPath?`${e.skillsPath}/`:"",i=n.filter(c=>c.type==="tree"&&(o===""||c.path.startsWith(o))&&!c.path.includes(".")&&!c.path.startsWith(".")),s=await Promise.all(i.slice(0,50).map(async c=>{let u=`${c.path}/SKILL.md`,m=`${c.path}/README.md`,d=n.some(v=>v.path===u&&v.type==="blob"),p=n.some(v=>v.path===m&&v.type==="blob"),h=d?u:p?m:null;if(!h)return null;try{let v=await di(e,h),g=Ge(v),C=c.path.split("/").pop()||c.path;return{name:C,displayName:mu(C),description:g?.description||uf(v)||"No description",category:g?.category,path:c.path,source:e}}catch{return null}}));r.push(...s.filter(c=>c!==null))}return hw(e,r),r}function uf(e){let n=e.replace(/^---[\s\S]*?---\s*/,"").split(`
|
|
51
|
-
`),r="";for(let o of n){let i=o.trim();if(!i){if(r)break;continue}i.startsWith("#")||(r+=(r?" ":"")+i)}return r?r.slice(0,200):null}async function hu(e,t){try{let n=e.source;if(jt(n))return vw(e,t);let r=await lf(n),o=At(t,e.name);if(!o)return{success:!1,error:"Invalid skill name"};if(n.skillPattern==="flat-md"){let i=await di(n,e.path),s=je(o,"SKILL.md");if(!ri(o,s))throw new Error("Invalid skill destination path");if(sf(o),!ln(s,i))throw new Error("Failed to write skill file")}else{let i=`${e.path}/`,s=r.filter(m=>m.type==="blob"&&m.path.startsWith(i));if(s.length>rf)throw new Error(`Skill has too many files: ${s.length} exceeds ${rf}`);let c=s.map(m=>{let d=m.path.slice(i.length);if(!d||aw(d))throw new Error("Invalid skill file path");let p=je(o,d);if(!ri(o,p))throw new Error("Invalid skill file path traversal");return{relativePath:d,destPath:p,sourcePath:m.path}}),u=await Promise.all(c.map(async m=>({...m,content:await di(n,m.sourcePath)})));sf(o);for(let m of u){let d=je(o,m.relativePath.split("/").slice(0,-1).join("/"));if(d!==o&&!F(d)&&pu(d,{recursive:!0,mode:448}),!ln(m.destPath,m.content))throw new Error(`Failed to write skill file: ${m.relativePath}`)}}return{success:!0}}catch(n){return{success:!1,error:n instanceof Error?n.message:"Unknown error"}}}function sf(e){F(e)&&dw(e,{recursive:!0,force:!0}),F(e)||pu(e,{recursive:!0,mode:448})}function df(){fe(()=>{let e=gu();if(F(e)){let t=lw(e);for(let n of t)n.endsWith(".json")&&uw(je(e,n))}return!0},!1)}function mi(){return gu()}async function pi(e,t,n,r="main"){let o=n.endsWith("/SKILL.md")||n.endsWith("SKILL.md")?n:`${n}/SKILL.md`,i=`https://raw.githubusercontent.com/${e}/${t}/${r}/${o}`,s=await fetch(i,{headers:{"User-Agent":"octocode-cli"},signal:AbortSignal.timeout(8e3)});if(s.status===404){if(r==="main")return pi(e,t,n,"master");throw new Error(`SKILL.md not found at ${e}/${t}/${o} (tried main and master)`)}if(!s.ok)throw new Error(`Failed to fetch SKILL.md: ${s.status} ${s.statusText}`);let c=await s.text();if(c.length>bn)throw new Error(`SKILL.md too large (${c.length} bytes)`);return c}var $w="https://www.skills.sh/api/search";async function mf(e,t=20){let n=`${$w}?q=${encodeURIComponent(e)}&limit=${Math.min(t,100)}`,r=await fetch(n,{headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:150.0) Gecko/20100101 Firefox/150.0",Accept:"application/json"},signal:AbortSignal.timeout(8e3)});if(!r.ok)throw new Error(`skills.sh search failed: ${r.status} ${r.statusText}`);let o=await r.json(),i=[...o.skills??[]].sort((s,c)=>c.installs-s.installs);return{results:i.slice(0,t),count:o.count??i.length}}import fi from"node:path";var gi=new Set(["octocode-research","octocode-pull-request-reviewer","octocode-researcher"]);async function We(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}function bw(e,t){if(jt(e))return`${f(e.name)} ${a("cyan","bundled")} - ${l(e.description)}`;let n=t?` ${t.toLocaleString()}`:"";return`${f(e.name)}${a("yellow",n)} - ${l(e.description)}`}function kw(e,t){let n=t?a("green","\u2705 "):"",r=gi.has(e.name)?a("yellow"," *"):"",o=e.description.slice(0,50),i=e.description.length>50?"...":"";return`${n}${e.displayName}${r} ${l(o)}${l(i)}`}function po(e){let t=ke();return F(fi.join(t,e))}async function ww(e){console.log(),console.log(` ${f("Select a marketplace to browse:")}`),console.log();let t=$n.filter(c=>jt(c)),r=[...$n.filter(c=>!jt(c))].sort((c,u)=>(e.get(u.id)??0)-(e.get(c.id)??0)),o=[...t,...r],i=[];for(let c of o)i.push({name:bw(c,e.get(c.id)),value:c,description:l(c.url)});return i.push(new M),i.push({name:`${a("dim","- Back to skills menu")}`,value:"back"}),await j({message:"",choices:i,pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:c=>a("magenta",c)}}})}async function pf(e,t){console.log(),console.log(` ${f(e.name)} - ${t.length} skills available`),console.log(` ${l(e.url)}`),console.log();let r=[...t].sort((s,c)=>{let u=po(s.name),m=po(c.name);if(u!==m)return u?-1:1;let d=gi.has(s.name),p=gi.has(c.name);return d!==p?d?-1:1:s.displayName.localeCompare(c.displayName)}).map(s=>{let c=po(s.name);return{name:kw(s,c),value:s,description:s.category?`[${s.category}]`:void 0}}),o={name:`${a("dim","- Back to marketplaces")}`,value:"back"};return await ko({message:`Type to filter skills (${t.length} available)`,source:s=>{if(!s||!s.trim())return[...r,o];let c=s.toLowerCase();return[...r.filter(m=>{if(typeof m.value=="string")return!1;let d=m.value;return d.name.toLowerCase().includes(c)||d.displayName.toLowerCase().includes(c)||d.description.toLowerCase().includes(c)||d.category?.toLowerCase().includes(c)}),o]},pageSize:20,theme:{prefix:" ",style:{highlight:s=>a("magenta",s)}}})}async function gf(e){let t=po(e.name),n=ke(),r=gi.has(e.name)?a("yellow"," recommended"):"";console.log(),console.log(` ${f(e.displayName)}${r}`),console.log(` ${l(e.description)}`),console.log(),e.category&&(console.log(` ${f("Category:")} ${e.category}`),console.log()),console.log(` ${f("Source:")} ${e.source.name}`),console.log(` ${l(e.source.url)}`),console.log(),console.log(` ${f("Install path:")}`),console.log(` ${a("cyan",fi.join(n,e.name))}`),console.log();let o=[{name:t?`${a("yellow","\u2B06")} Reinstall skill`:`${a("green","\u2705")} Install skill`,value:"install"}];return t&&o.push({name:`${a("red","Delete")} Delete skill`,value:"delete"}),o.push(new M),o.push({name:`${a("dim","- Back")}`,value:"back"}),await j({message:t?"Choose an action:":"Install this skill?",choices:o,loop:!1,theme:{prefix:" ",style:{highlight:s=>a("magenta",s),message:s=>f(s)}}})}async function ff(e){let t=ke();console.log();let n=new D(`Installing ${e.displayName}...`).start(),r=await hu(e,t);return r.success?(n.succeed(`Installed ${e.displayName}!`),console.log(),console.log(` ${a("green","\u2705")} Skill installed successfully`),console.log(` ${l("Location:")} ${a("cyan",fi.join(t,e.name))}`),console.log(),console.log(` ${f("The skill is now available in your AI client!")}`)):(n.fail(`Failed to install ${e.displayName}`),console.log(),console.log(` ${a("red","X")} Installation failed: ${r.error}`)),console.log(),await We(),r.success}async function hf(e){let t=ke(),n=fi.join(t,e.name);if(console.log(),await j({message:"Delete this installed skill?",choices:[{name:`${a("red","Delete")} Yes, delete skill`,value:"yes"},new M,{name:`${a("dim","- Cancel")}`,value:"no"}],loop:!1,theme:{prefix:" ",style:{highlight:i=>a("magenta",i),message:i=>f(i)}}})!=="yes")return!1;console.log();let o=new D(`Deleting ${e.displayName}...`).start();return no(n)?(o.succeed(`Deleted ${e.displayName}`),console.log(),console.log(` ${a("green","\u2705")} Skill deleted successfully`),console.log(),await We(),!0):(o.fail(`Failed to delete ${e.displayName}`),console.log(),console.log(` ${a("red","X")} Could not delete skill directory`),console.log(` ${l("Path:")} ${a("cyan",n)}`),console.log(),await We(),!1)}async function Cw(e,t){console.log(),console.log(` ${f("Octocode Skills")}`),console.log(` ${l(`${e} skills available`)}`),console.log();let n=[];return t>0?(n.push({name:`${a("green","Fast")} Install All Skills (${t} to install)`,value:"install-all",description:l("One-click install of all Octocode skills")}),n.push({name:`${a("cyan","List")} Browse Skills Individually`,value:"browse",description:l("View details and install one by one")})):n.push({name:`${a("green","\u2705")} All skills installed \u2014 Browse to reinstall or view details`,value:"browse",description:l("View details and reinstall individually")}),n.push(new M),n.push({name:`${a("dim","- Back")}`,value:"back"}),await j({message:"",choices:n,loop:!1,theme:{prefix:" ",style:{highlight:o=>a("magenta",o)}}})}async function Sw(e){let t=ke(),n=e.filter(c=>!po(c.name));if(n.length===0){console.log(),console.log(` ${a("green","\u2705")} All skills are already installed!`),console.log(),await We();return}console.log(),console.log(` ${f("Installing")} ${n.length} ${f("skills...")}`),console.log();let r=new D(`Installing ${n.length} skills...`).start(),o=0,i=0,s=[];for(let c of n){r.update(`Installing ${c.displayName}... (${o+i+1}/${n.length})`);let u=await hu(c,t);u.success?o++:(i++,s.push({skill:c.displayName,error:u.error||"Unknown error"}))}if(i===0?r.succeed(`All ${o} skills installed successfully!`):r.warn(`Installed ${o} skills, ${i} failed`),console.log(),o>0&&(console.log(` ${a("green","\u2705")} Successfully installed ${o} skill(s)`),console.log(` ${l("Location:")} ${a("cyan",t)}`)),s.length>0){console.log(),console.log(` ${a("red","X")} Failed to install:`);for(let{skill:c,error:u}of s)console.log(` ${a("red","\u2022")} ${c}: ${l(u)}`)}console.log(),console.log(` ${f("Skills are now available in your AI client!")}`),console.log(),await We()}async function yf(){console.log(),console.log(` ${a("yellow","WARN")} ${l("Community list \u2022 Skills install on your behalf")}`);let e=new D("Fetching marketplace info...").start(),t;try{t=await of(),e.succeed("Loaded marketplace info")}catch{e.fail("Could not fetch stars"),t=new Map}let n=!0;for(;n;){let r=await ww(t);if(r==="back"){n=!1;continue}console.log();let o=new D(`Loading skills from ${r.name}...`).start(),i;try{i=await fu(r),o.stop()}catch(c){o.fail("Failed to load skills"),console.log(),console.log(` ${a("red","X")} ${c instanceof Error?c.message:"Unknown error"}`),console.log(),await We();continue}if(i.length===0){console.log(),console.log(` ${a("yellow","WARN")} No skills found in this marketplace`),console.log(),await We();continue}let s=!0;for(;s;){let c=await pf(r,i);if(c==="back"){s=!1;continue}let u=await gf(c);u==="install"?await ff(c):u==="delete"&&await hf(c)}}}async function vf(){let e=$n.find(o=>o.id==="octocode-skills");if(!e){console.log(),console.log(` ${a("red","X")} Octocode Skills source not found`),console.log(),await We();return}console.log();let t=new D("Loading Octocode Skills...").start(),n;try{n=await fu(e),t.stop()}catch(o){t.fail("Failed to load skills"),console.log(),console.log(` ${a("red","X")} ${o instanceof Error?o.message:"Unknown error"}`),console.log(),await We();return}if(n.length===0){console.log(),console.log(` ${a("yellow","WARN")} No skills found`),console.log(),await We();return}let r=!0;for(;r;){let o=n.filter(s=>!po(s.name)).length;switch(await Cw(n.length,o)){case"install-all":await Sw(n),r=!1;break;case"browse":{let s=!0;for(;s;){let c=await pf(e,n);if(c==="back"){s=!1;continue}let u=await gf(c);u==="install"?await ff(c):u==="delete"&&await hf(c)}break}default:r=!1;break}}}var xw=new Set(["octocode-research","octocode-pull-request-reviewer","octocode-researcher"]);async function kn(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}function bf(){let e=ke(),t=Mt();if(!F(e))return[];let n=Te(e).filter(o=>!o.startsWith(".")),r=[];for(let o of n){let i=go.join(e,o),s=go.join(i,"SKILL.md"),c=o.startsWith("octocode-")&&F(t)&&F(go.join(t,o)),u=xw.has(o);if(pe(s)){let m=Ze(s);if(m){let d=Ge(m);if(d?.name&&d.description){r.push({name:d.name,description:d.description,folder:o,path:i,isBundled:c,isRecommended:u});continue}}}r.push({name:Pw(o),description:"No description available",folder:o,path:i,isBundled:c,isRecommended:u})}return r.sort((o,i)=>o.isRecommended!==i.isRecommended?o.isRecommended?-1:1:o.name.localeCompare(i.name)),r}function $f(){let e=Mt(),t=ke();if(!F(e))return{srcDir:e,destDir:t,skillsStatus:[],notInstalled:[],sourceExists:!1};let r=Te(e).filter(i=>!i.startsWith(".")).map(i=>({name:i,installed:F(go.join(t,i)),srcPath:go.join(e,i),destPath:go.join(t,i)})),o=r.filter(i=>!i.installed);return{srcDir:e,destDir:t,skillsStatus:r,notInstalled:o,sourceExists:!0}}async function _w(e){let t=[];return e>0&&t.push({name:`- Manage installed skills ${l(`(${e})`)}`,value:"manage",description:"View, remove, or inspect individual skills"}),t.push({name:"- Browse Marketplace",value:"marketplace",description:"Community skills \u2022 installs on your behalf"}),t.push(new M),t.push({name:`${a("dim","- Back to main menu")}`,value:"back"}),await j({message:"",choices:t,pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:r=>a("magenta",r)}}})}function Pw(e){let t=["PR","API","UI","CLI","MCP","AI"];return e.replace(/^octocode-/,"").split("-").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ").replace(new RegExp(`\\b(${t.join("|")})\\b`,"gi"),r=>r.toUpperCase())}async function Iw(e){console.log(),console.log(` ${f("Installed Skills")} ${l(`(${e.length} total)`)}`),console.log(` ${l("Select a skill to manage")}`),console.log();let t=[];for(let r of e){let o=r.isRecommended?a("yellow","\u2605 "):"",i=r.isBundled?a("cyan"," [bundled]"):a("magenta"," [community]"),s=r.description.slice(0,40),c=r.description.length>40?"...":"";t.push({name:`${o}${r.name}${i} - ${l(s)}${l(c)}`,value:r})}return t.push(new M),t.push({name:`${a("dim","- Back to skills menu")}`,value:"back"}),await j({message:"",choices:t,pageSize:15,loop:!1,theme:{prefix:" ",style:{highlight:r=>a("magenta",r)}}})}async function Tw(e){let t=e.isRecommended?a("yellow","recommended "):"",n=e.isBundled?a("cyan","[bundled]"):a("magenta","[community]");console.log(),console.log(` ${f(e.name)} ${t}${n}`),console.log(` ${l(e.description)}`),console.log(` ${l(e.path)}`),console.log();let r=[{name:`${a("red","Delete")} Remove this skill`,value:"remove"},{name:"- Open skill location",value:"view"},new M,{name:`${a("dim","- Back")}`,value:"back"}];return await j({message:"",choices:r,loop:!1,theme:{prefix:" ",style:{highlight:i=>a("magenta",i)}}})}async function Ow(e){console.log(),console.log(` ${a("cyan","Path")} Opening ${f(e.name)} location...`),console.log(` ${l(e.path)}`),console.log();try{await mo(e.path),console.log(` ${a("green","\u2705")} Opened in file explorer`)}catch{console.log(` ${a("yellow","!")} Could not open location automatically`),console.log(` ${l("Path:")} ${a("cyan",e.path)}`)}console.log()}async function Ew(e){console.log(),console.log(` ${a("yellow","WARN")} You are about to remove:`),console.log(` ${f(e.name)}`),console.log(` ${l(e.path)}`),console.log();let t=[{name:`${a("red","Delete")} Yes, remove this skill`,value:!0},new M,{name:`${a("dim","- Cancel")}`,value:!1}];if(!await j({message:"Confirm removal?",choices:t,loop:!1,theme:{prefix:" ",style:{highlight:o=>a("magenta",o),message:o=>f(o)}}}))return!1;console.log();let r=new D(`Removing ${e.name}...`).start();return no(e.path)?(r.succeed(`Removed ${e.name}`),console.log(),console.log(` ${a("green","\u2705")} Skill removed successfully`),!0):(r.fail(`Failed to remove ${e.name}`),console.log(),console.log(` ${a("red","X")} Could not remove skill directory`),!1)}async function Aw(){let e=!0;for(;e;){let t=bf();if(t.length===0){console.log(),console.log(` ${a("yellow","INFO")} No skills installed`),console.log(` ${l("Browse the marketplace to install skills")}`),console.log(),await kn();return}let n=await Iw(t);if(n==="back"){e=!1;continue}let r=!0;for(;r;)switch(await Tw(n)){case"remove":{await Ew(n)&&(await kn(),r=!1);break}case"view":await Ow(n),await kn();break;default:r=!1;break}}}async function kf(){await oe();let e=$f();if(!e.sourceExists){console.log(` ${a("yellow","WARN")} Skills source directory not found.`),console.log(` ${l("This may happen if running from source.")}`),console.log(),await kn();return}if(e.skillsStatus.length===0){console.log(` ${l("No skills available.")}`),console.log(),await kn();return}let t=!0;for(;t;){e=$f();let r=bf().length;switch(await _w(r)){case"manage":await Aw();break;case"marketplace":await yf();break;default:t=!1;break}}}async function Cf(e,t){let n=Mw(e,t.auth);if(n)return n;let{data:r}=await lp({clientType:e.clientType,clientId:e.clientId,request:t.request||e.request,scopes:t.auth.scopes||e.scopes});await e.onVerification(r);let o=await yu(t.request||e.request,e.clientId,e.clientType,r);return e.authentication=o,o}function Mw(e,t){if(t.refresh===!0||!e.authentication)return!1;if(e.clientType==="github-app")return e.authentication;let n=e.authentication,r=("scopes"in t&&t.scopes||e.scopes).join(" "),o=n.scopes.join(" ");return r===o?n:!1}async function wf(e){await new Promise(t=>setTimeout(t,e*1e3))}async function yu(e,t,n,r){try{let o={clientId:t,request:e,code:r.device_code},{authentication:i}=n==="oauth-app"?await bl({...o,clientType:"oauth-app"}):await bl({...o,clientType:"github-app"});return{type:"token",tokenType:"oauth",...i}}catch(o){if(!o.response)throw o;let i=o.response.data.error;if(i==="authorization_pending")return await wf(r.interval),yu(e,t,n,r);if(i==="slow_down")return await wf(r.interval+7),yu(e,t,n,r);throw o}}async function Nw(e,t){return Cf(e,{auth:t})}async function zw(e,t,n,r){let o=t.endpoint.merge(n,r);if(/\/login\/(oauth\/access_token|device\/code)$/.test(o.url))return t(o);let{token:i}=await Cf(e,{request:t,auth:{type:"oauth"}});return o.headers.authorization=`token ${i}`,t(o)}var jw="0.0.0-development";function Sf(e){let t=e.request||he.defaults({headers:{"user-agent":`octokit-auth-oauth-device.js/${jw} ${Xt()}`}}),{request:n=t,...r}=e,o=e.clientType==="github-app"?{...r,clientType:"github-app",request:n}:{...r,clientType:"oauth-app",request:n,scopes:e.scopes||[]};if(!e.clientId)throw new Error('[@octokit/auth-oauth-device] "clientId" option must be set (https://github.com/octokit/auth-oauth-device.js#usage)');if(!e.onVerification)throw new Error('[@octokit/auth-oauth-device] "onVerification" option must be a function (https://github.com/octokit/auth-oauth-device.js#usage)');return Object.assign(Nw.bind(null,o),{hook:zw.bind(null,o)})}function Dw(){return Dp("gh")}function Dt(){if(!Dw())return{installed:!1,authenticated:!1,error:"GitHub CLI (gh) is not installed"};let e=io("gh",["auth","status"]);if(e.success){let t=e.stdout.match(/Logged in to \S+.*account\s+(\S+)/i);return{installed:!0,authenticated:!0,username:t?t[1]:void 0}}return{installed:!0,authenticated:!1,error:e.stderr||"Not authenticated"}}function xf(e){let t=["auth","logout"];return e&&t.push("--hostname",e),Lp("gh",t)}var hi="178c6fc778ccc68e1d6a",Lw=["repo","read:org","gist"],it="github.com";function vu(e){return e==="github.com"||e===it?"https://api.github.com":`https://${e}/api/v3`}async function Rw(e,t){let n=vu(t);return(await he("GET /user",{headers:{authorization:`token ${e}`},baseUrl:n})).data.login}async function yi(e={}){let{hostname:t=it,scopes:n=Lw,gitProtocol:r="https",clientId:o=hi,onVerification:i,openBrowser:s=!0}=e;try{let u=await Sf({clientType:"oauth-app",clientId:o,scopes:n,onVerification:async h=>{if(i&&i(h),s)try{await mo(h.verification_uri)}catch{console.log(),console.log(" \u26A0 Could not open browser automatically."),console.log(" \u2192 Please open this URL manually:"),console.log(` ${h.verification_uri}`),console.log()}},request:he.defaults({baseUrl:vu(t)})})({type:"oauth"}),m=await Rw(u.token,t),d={token:u.token,tokenType:"oauth",scopes:"scopes"in u?u.scopes:void 0};"refreshToken"in u&&u.refreshToken&&(d.refreshToken=u.refreshToken,d.expiresAt="expiresAt"in u?u.expiresAt:void 0,d.refreshTokenExpiresAt="refreshTokenExpiresAt"in u?u.refreshTokenExpiresAt:void 0);let p={hostname:t,username:m,token:d,gitProtocol:r,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};return await Br(p),{success:!0,username:m,hostname:t}}catch(c){return{success:!1,error:c instanceof Error?c.message:"Authentication failed"}}}async function Lt(e=it,t){let n=await tt(e);if(!n)return{success:!1,error:`Not logged in to ${e}`};if(t?.clientSecret)try{await dp({clientType:"oauth-app",clientId:hi,clientSecret:t.clientSecret,token:n.token.token,request:he.defaults({baseUrl:vu(e)})})}catch(r){console.error(`[github-oauth] Token revocation failed: ${r instanceof Error?r.message:String(r)}`)}return await Pl(e),{success:!0}}async function _f(e=it){return Tl(e,hi)}function ft(e=it){if(to()){let r=Zr();return{authenticated:!0,hostname:e,username:void 0,tokenSource:"env",envTokenSource:r??void 0}}let t=_l(e);if(t){let r=eo(t);return{authenticated:!r,hostname:t.hostname,username:t.username,tokenExpired:r,tokenSource:"octocode"}}let n=Dt();return n.authenticated?{authenticated:!0,hostname:e,username:n.username,tokenSource:"gh-cli"}:{authenticated:!1,tokenSource:"none"}}async function wn(e=it){if(to()){let r=Zr();return{authenticated:!0,hostname:e,username:void 0,tokenSource:"env",envTokenSource:r??void 0}}let t=await tt(e);if(t){let r=eo(t);return{authenticated:!r,hostname:t.hostname,username:t.username,tokenExpired:r,tokenSource:"octocode"}}let n=Dt();return n.authenticated?{authenticated:!0,hostname:e,username:n.username,tokenSource:"gh-cli"}:{authenticated:!1,tokenSource:"none"}}async function Uw(e=it){let t=await Vr(e,hi);return t.token?{token:t.token,source:"octocode",username:t.username}:{token:null,source:"none"}}async function Fw(e=it){let t=await oo(e);if(t){let n=Dt();return{token:t,source:"gh-cli",username:n.username}}return{token:null,source:"none"}}async function Pf(e=it,t="auto"){if(t==="octocode")return Uw(e);if(t==="gh")return Fw(e);let n=await xl({hostname:e});if(n?.token){let r=n.source==="gh-cli"?"gh-cli":n.source?.startsWith("env:")?"env":"octocode";return{token:n.token,source:r,username:n.username,envSource:n.source?.startsWith("env:")?n.source:void 0}}return{token:null,source:"none"}}function fo(){return Il()}function $u(e,t){switch(e){case"env":return t??"env:GITHUB_TOKEN";case"gh-cli":return"gh-cli";case"octocode":return"octocode-storage";default:return"none"}}import bu from"node:path";function Zw(){let e=qr(),t=e.filter(r=>r.octocodeInstalled),n=e.filter(r=>r.configExists&&!r.octocodeInstalled);return{installedClients:t,availableClients:n,installedCount:t.length,availableCount:n.length,isInstalled:t.length>0,hasMoreToInstall:n.length>0}}function Bw(){let e=Mt(),t=ke(),n=F(t)?Te(t).filter(c=>!c.startsWith(".")).length:0;if(!F(e))return{sourceExists:!1,destDir:t,skills:[],installedCount:0,notInstalledCount:0,totalInstalledCount:n,allInstalled:!1,hasSkills:!1};let o=Te(e).filter(c=>!c.startsWith(".")).map(c=>({name:c,installed:F(bu.join(t,c)),srcPath:bu.join(e,c),destPath:bu.join(t,c)})),i=o.filter(c=>c.installed).length,s=o.filter(c=>!c.installed).length;return{sourceExists:!0,destDir:t,skills:o,installedCount:i,notInstalledCount:s,totalInstalledCount:n,allInstalled:s===0&&o.length>0,hasSkills:o.length>0}}async function Cn(){return{octocode:Zw(),skills:Bw(),currentClient:ro(),githubAuth:await wn()}}function Vw(e){let t=e.trim();if(t.length===0)return{kind:"empty"};if(["exit","quit","back"].includes(t))return{kind:"exit"};if(t==="list"||t==="help")return{kind:"list"};let n=t.search(/\s/);return n===-1?{kind:"execute",toolName:t}:{kind:"execute",toolName:t.slice(0,n),inputText:t.slice(n).trim()}}function Gw(e,t){return{command:"tool",args:t?[e,t]:[e],options:{}}}async function If(){for(await oe(),console.log(),console.log(` ${a("magenta",f("Tool Terminal"))}`),console.log(` ${l("Type")} ${a("cyan","list")} ${l("for tools,")} ${a("cyan",'<toolName> {"path":".","pattern":"runCLI"}')} ${l("to run, or")} ${a("cyan","exit")} ${l("to return.")}`),await xi();;){let e=await ae({message:a("cyan","tool>"),default:""}),t=Vw(e);if(t.kind!=="empty"){if(t.kind==="exit"){console.log();return}if(t.kind==="list"){await xi();continue}await Uu(Gw(t.toolName,t.inputText)),console.log()}}}async function vi(){console.log(),await ae({message:l("Press Enter to continue..."),default:""})}function Ww(e){return e.map(t=>B[t.client]?.name||t.client).join(", ")}function Hw(e){if(e.length===0){console.log(` ${l("No IDEs configured yet")}`);return}console.log(` ${l("Installed on:")}`);for(let t of e){let n=B[t.client]?.name||t.client;console.log(` ${l("\u2022")} ${l(n)} ${l("->")} ${a("cyan",t.configPath)}`)}}function qw(e){return!e.sourceExists||!e.hasSkills?{name:`${l("- Manage System Skills")}`,value:"skills",description:l("Not available \u2014 no skill sources found")}:e.allInstalled?{name:`- Manage System Skills ${a("green","\u2705")}`,value:"skills",description:`${e.totalInstalledCount} installed \u2022 Research, PR Review & more`}:e.totalInstalledCount>0?{name:"- Manage System Skills",value:"skills",description:`${e.totalInstalledCount}/${e.skills.length} installed \u2022 Get more skills!`}:{name:`- ${f("Manage System Skills")} ${a("cyan","[NEW]")}`,value:"skills",description:"Install skills for AI-powered coding workflows"}}function Jw(e){let t=e.skills.filter(n=>n.name.startsWith("octocode-")&&n.installed).length;return t>0?{name:`- Octocode Skills ${a("green","\u2705")}`,value:"octocode-skills",description:`${t} installed \u2022 Research, planning & review`}:{name:"- Octocode Skills",value:"octocode-skills",description:"Install AI-powered research, planning & review skills"}}function Kw(e){switch(e.tokenSource){case"gh-cli":return"gh CLI";case"env":return e.envTokenSource?`env (${e.envTokenSource.replace("env:","")})`:"env var";case"octocode":return"Octocode";default:return"unknown"}}function Xw(e){if(e.authenticated){let t=Kw(e),n=e.username?`@${e.username}`:"",r=n?`${n} `:"";return{name:`- Manage Auth ${a("green","\u2705")}`,value:"auth",description:`${r}via ${t}`}}return{name:`- ${f("Manage Auth")} ${a("red","[Required]")}`,value:"auth",description:"Sign in to access GitHub"}}function Yw(e){let t=[];if(e.octocode.isInstalled){let n=e.octocode.installedCount===1?"client":"clients";t.push(`${a("green","\u25CF")} ${e.octocode.installedCount} ${n}`)}else t.push(`${a("yellow","\u25CB")} Not installed`);return e.skills.totalInstalledCount>0?t.push(`${a("green","\u25CF")} ${e.skills.totalInstalledCount} skills`):e.skills.sourceExists&&e.skills.hasSkills&&t.push(`${a("yellow","\u25CB")} ${e.skills.skills.length} skills`),t.join(l(" \u2502 "))}function Qw(e){if(e.octocode.isInstalled){let t=e.octocode.installedCount===1?"IDE":"IDEs";return e.githubAuth.authenticated?{name:`- Octocode MCP ${a("green","\u2705")}`,value:"octocode",description:`Configure Octocode MCP - ${e.octocode.installedCount} ${t} configured`}:{name:`- Octocode MCP ${a("red","[X]")}`,value:"octocode",description:`Configure Octocode MCP - ${e.octocode.installedCount} ${t} configured`}}return{name:`- ${f("Octocode Configuration")}`,value:"octocode",description:"Configure Octocode MCP - 0 IDEs configured"}}function eC(e){e.githubAuth.authenticated?e.octocode.isInstalled&&e.skills.totalInstalledCount===0&&(console.log(),console.log(` ${a("cyan","Tip:")} ${l("Boost your AI coding:")} Install ${a("magenta","Skills")} for research, PR review & more!`)):(console.log(),console.log(` ${a("yellow","Warning:")} ${f("Auth required!")} Run ${a("cyan","Manage Auth")} to access GitHub repos`))}async function tC(e){console.log(),console.log(` ${l("Status:")} ${Yw(e)}`),eC(e);let t=[];return t.push(Qw(e)),t.push(Jw(e.skills)),t.push(qw(e.skills)),t.push(Xw(e.githubAuth)),t.push({name:"- Manage System MCP",value:"mcp-config",description:"Add, sync and configure MCP across all IDEs"}),t.push({name:"- Tool Terminal",value:"terminal",description:"Run Octocode tools directly from an interactive terminal"}),t.push(new M),t.push({name:l("Exit"),value:"exit"}),console.log(),await vt({message:"What would you like to do?",choices:t,pageSize:12,loop:!1,theme:{prefix:" ",style:{highlight:r=>a("magenta",r),message:r=>f(r)}}})}async function oC(e){let t=[];if(e.octocode.isInstalled){if(e.octocode.hasMoreToInstall){let r=Ww(e.octocode.availableClients);t.push({name:"- Add Octocode",value:"install",description:r})}}else t.push({name:`- ${f("Install")} ${a("red","[X]")}`,value:"install",description:"Setup for Cursor, Claude, Windsurf..."});return e.octocode.isInstalled&&t.push({name:"- Configure Octocode",value:"configure",description:"Server options & preferences"}),t.push(new M),t.push({name:`${a("dim","- Back to main menu")}`,value:"back"}),await vt({message:"",choices:t,pageSize:12,loop:!1,theme:{prefix:" ",style:{highlight:r=>a("magenta",r)}}})}async function nC(){await oe();let e=await Cn();console.log(),Hw(e.octocode.installedClients);let t=!0,n=!0;for(;t;){if(n)n=!1;else{let o=new D(" Refreshing...").start();e=await Cn(),o.clear()}switch(await oC(e)){case"install":await Rl(),console.log();break;case"configure":await Qp(),console.log();break;default:t=!1;break}}}async function rC(){let e=[];return e.push({name:"- Show MCP details",value:"inspect",description:"View and manage configured MCP servers"}),e.push({name:"- Sync Configurations",value:"sync",description:"Sync MCP configs across all IDEs"}),e.push({name:"- MCP Marketplace",value:"marketplace",description:"Browse and install community MCP servers"}),e.push(new M),e.push({name:`${a("dim","- Back to main menu")}`,value:"back"}),await vt({message:"",choices:e,pageSize:12,loop:!1,theme:{prefix:" ",style:{highlight:n=>a("magenta",n)}}})}async function iC(){await oe(),console.log();let e=!0;for(;e;)switch(await rC()){case"inspect":await Fl();break;case"sync":await ql(),console.log();break;case"marketplace":await Vl(),console.log();break;default:e=!1;break}}async function sC(e){let t=[],n=e.tokenSource==="env",r=await oo(),o=Dt(),i=await tt(),s=!!r,c=!!i,u=to();if(n&&u){let d=e.envTokenSource?.replace("env:","")||"environment variable";t.push(new M(` ${a("green","\u2705")} Using ${a("cyan",d)} ${l("(takes priority)")}`)),t.push(new M)}if(s){let d=o.username?` (@${o.username})`:"";t.push({name:`- Delete gh CLI token${d}`,value:"gh-logout",description:"Opens gh auth logout"})}if(c){let d=i.username?` (@${i.username})`:"";t.push({name:`- Delete Octocode token${d}`,value:"logout",description:"Remove from file"})}return c||t.push({name:`- Sign In via Octocode ${a("green","(Recommended)")}`,value:"login",description:"Quick browser sign in"}),s||t.push({name:"- Sign In via gh CLI",value:"gh-guidance",description:o.installed?"Use existing GitHub CLI":"GitHub CLI not installed"}),t.push(new M),t.push({name:`${a("dim","- Back")}`,value:"back"}),await vt({message:"",choices:t,pageSize:12,loop:!1,theme:{prefix:" ",style:{highlight:d=>a("magenta",d)}}})}async function aC(){console.log(),console.log(a("blue","\u2501".repeat(66))),console.log(` ${f("GitHub Authentication")}`),console.log(a("blue","\u2501".repeat(66))),console.log(),console.log(` ${l("This will open your browser to authenticate with GitHub.")}`),console.log();let e=!1,t=null,n=new D("Connecting to GitHub...").start(),r=await yi({onVerification:o=>{n.stop(),e=!0,console.log(),console.log(a("yellow"," \u250C"+"\u2500".repeat(50)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","!")} Your one-time code: ${f(a("cyan",o.user_code))}`+" ".repeat(24-o.user_code.length)+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(50)+"\u2518")),console.log(),console.log(` ${f("1.")} Copy the code above`),console.log(` ${f("2.")} ${f("Press Enter")} to open ${a("cyan",o.verification_uri)}`),console.log(` ${f("3.")} Paste the code in your browser`),console.log(),t=new D(`Waiting for browser authentication... ${l("(typically 10-30 seconds)")}`).start()}});return t&&t.stop(),e||n.stop(),console.log(),r.success?(console.log(a("green"," \u250C"+"\u2500".repeat(50)+"\u2510")),console.log(a("green"," \u2502 ")+`${a("green","\u2705")} ${f("Authentication successful!")}`+" ".repeat(22)+a("green","\u2502")),console.log(a("green"," \u2514"+"\u2500".repeat(50)+"\u2518")),console.log(),console.log(` ${a("green","\u2705")} Logged in as ${a("cyan","@"+(r.username||"unknown"))}`),console.log(` ${l("Credentials stored in:")} ${fo()}`),console.log(),console.log(` ${a("cyan","Tip:")} ${f("What's next?")}`),console.log(` ${l("\u2022")} Install ${a("magenta","Skills")} for AI-powered research & PR reviews`),console.log(` ${l("\u2022")} Use ${a("cyan","/research")} prompt to explore any GitHub repo`),console.log(` ${l("\u2022")} Add ${a("cyan","AGENTS.md")} to your project for better AI context`)):(console.log(a("red"," \u250C"+"\u2500".repeat(50)+"\u2510")),console.log(a("red"," \u2502 ")+`${a("red","X")} ${f("Authentication failed")}`+" ".repeat(27)+a("red","\u2502")),console.log(a("red"," \u2514"+"\u2500".repeat(50)+"\u2518")),console.log(),console.log(` ${a("red","Error:")} ${r.error||"Unknown error"}`),console.log(),console.log(` ${f("Troubleshooting:")}`),console.log(` ${l("\u2022")} Make sure you copied the code correctly`),console.log(` ${l("\u2022")} Check your browser didn't block the popup`),console.log(` ${l("\u2022")} Try running ${a("cyan","octocode login")} again`)),console.log(),await vi(),r.success}async function cC(){let e=await wn();console.log(),console.log(` ${f("Sign Out")}`),console.log(` ${l("Signed in as:")} ${a("cyan","@"+(e.username||"unknown"))}`),console.log();let t=await Lt();if(t.success){console.log(` ${a("green","\u2705")} Signed out successfully`);let n=Dt();n.authenticated&&console.log(` ${l("Tip:")} You can still use gh CLI (@${n.username||"unknown"})`)}else console.log(` ${a("red","X")} Sign out failed: ${t.error||"Unknown error"}`);return console.log(),await vi(),t.success}async function lC(){let e="https://cli.github.com/";console.log(),console.log(` ${f("Setup Instructions:")}`),console.log(),console.log(" 1. Install GitHub CLI from:"),console.log(` ${a("cyan",e)}`),console.log(),console.log(" 2. Run the following command to authenticate:"),console.log(` ${a("cyan","gh auth login")}`),console.log(),console.log(` ${l("Once authenticated, octocode will automatically")}`),console.log(` ${l("use your gh CLI token.")}`),console.log();let t=await vt({message:"",choices:[{name:"- Open GitHub CLI website",value:"open-site"},new M,{name:`${a("dim","- Back")}`,value:"back"}],pageSize:10,loop:!1,theme:{prefix:" ",style:{highlight:n=>a("cyan",n),message:n=>n}}});if(t!=="back"&&t==="open-site"){try{await mo(e),console.log(),console.log(` ${a("green","\u2705")} Opened ${a("cyan",e)} in browser`)}catch{console.log(),console.log(` ${a("yellow","!")} Could not open browser automatically`),console.log(` ${l("Please visit:")} ${a("cyan",e)}`)}console.log(),await vi()}}function uC(e){switch(e.tokenSource){case"gh-cli":return"gh CLI";case"env":return e.envTokenSource?`${e.envTokenSource.replace("env:","")} env var`:"environment variable";case"octocode":return"file";default:return"unknown"}}function dC(e){if(console.log(` ${f("GitHub Authentication")}`),console.log(),e.authenticated){let t=uC(e);if(e.tokenSource==="env"){let n=e.envTokenSource?e.envTokenSource.replace("env:",""):"environment variable";console.log(` ${a("green","\u2705")} Using ${a("cyan",n)} ${l("(token configured)")}`)}else console.log(` ${a("green","\u2705")} Signed in as ${a("cyan","@"+(e.username||"unknown"))} ${l(`via ${t}`)}`);e.tokenExpired&&console.log(` ${a("yellow","Warning:")} Session expired - please sign in again`),console.log(),console.log(` ${a("green","\u2705")} ${l("Ready to access GitHub repositories!")}`)}else console.log(a("yellow"," \u250C"+"\u2500".repeat(56)+"\u2510")),console.log(a("yellow"," \u2502 ")+`${a("yellow","Warning:")} ${f("Authentication Required")}`+" ".repeat(31)+a("yellow","\u2502")),console.log(a("yellow"," \u2514"+"\u2500".repeat(56)+"\u2518")),console.log(),console.log(` ${l("Without auth, Octocode cannot:")}`),console.log(` ${a("red","X")} Access private repositories`),console.log(` ${a("red","X")} Search code in your organization`),console.log(` ${a("red","X")} Provide full GitHub research capabilities`),console.log(),console.log(` ${a("cyan","->")} Select ${a("green",'"Sign In via Octocode"')} below to authenticate`);console.log()}async function mC(){await oe(),console.log();let e=!0;for(;e;){let t=await wn();switch(dC(t),await sC(t)){case"login":{let r=await aC();console.log(),r&&(e=!1);break}case"gh-guidance":await lC();break;case"logout":await cC(),console.log();break;case"gh-logout":{if(await vt({message:"Sign out of gh CLI?",choices:[{name:"Yes, sign out",value:"yes"},{name:"No, cancel",value:"no"}],theme:{prefix:" ",style:{highlight:i=>a("red",i)}}})!=="yes")break;console.log(),console.log(` ${l("Opening gh auth logout...")}`),console.log(),xf().success?(console.log(),console.log(` ${a("green","\u2705")} Signed out of gh CLI`)):(console.log(),console.log(` ${a("yellow","!")} Sign out was cancelled`)),console.log(),await vi();break}default:e=!1;break}}}async function pC(e){switch(e){case"octocode":return await nC(),!0;case"octocode-skills":return await vf(),!0;case"skills":return await kf(),!0;case"auth":return await mC(),!0;case"mcp-config":return await iC(),!0;case"terminal":return await If(),!0;case"exit":return Qr(),!1;default:return!0}}function gC(){console.log(` ${f("Environment")}`)}async function fC(){gC();let e=await pn();gn(e)&&(console.log(),console.log(` ${l("Tip:")} ${l("Run")} ${a("cyan","npx node-doctor")} ${l("for diagnostics")}`))}async function Tf(){let e=!0,t=!0;for(;t;){let n;if(e)n=await Cn();else{let o=new D(" Loading...").start();n=await Cn(),o.clear()}e||(Gr(),Yr(),await fC()),e=!1;let r=await tC(n);t=await pC(r)}}function hC(){console.log(a("blue","\u2501".repeat(66))),console.log(` \u{1F50D} ${f("Environment")}`),console.log(a("blue","\u2501".repeat(66)))}async function Of(){let e=new D(" Starting...").start();await oe(),e.clear(),Gr(),Yr(),hC();let t=await pn();if(gn(t)&&(console.log(),console.log(` ${l("\u{1F4A1}")} ${l("Run")} ${a("cyan","npx node-doctor")} ${l("for diagnostics")}`)),!t.nodeInstalled){console.log(),console.log(` ${a("red","\u2717")} ${f("Node.js is required to run octocode-mcp")}`),Ul(),Qr();return}await Tf()}var yC={claude:"claude-desktop","claude-desktop":"claude-desktop",claudedesktop:"claude-desktop","claude-code":"claude-code",claudecode:"claude-code",cursor:"cursor",windsurf:"windsurf",trae:"trae",antigravity:"antigravity",zed:"zed","vscode-cline":"vscode-cline",cline:"vscode-cline","vscode-roo":"vscode-roo",roo:"vscode-roo","roo-cline":"vscode-roo","vscode-continue":"vscode-continue",continue:"vscode-continue",opencode:"opencode",codex:"codex",gemini:"gemini-cli","gemini-cli":"gemini-cli",geminicli:"gemini-cli",goose:"goose",kiro:"kiro",custom:"custom"};function $i(e){return yC[e.trim().toLowerCase()]??null}function bi(e){return[...e?.includeInstallAlias?["claude"]:[],...Be].join(", ")}function Sn(e){return e in dn?dn[e].name:e in zl?zl[e].name:e.charAt(0).toUpperCase()+e.slice(1)}function ku(e){return e.length<=8?"****":e.slice(0,4)+"****"+e.slice(-4)}function Ef(e){return process.stdout.isTTY?ku(e):e}function xn(){console.log(` ${l("To login:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","octocode login")}`),console.log(` ${l("or")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","gh auth login")}`)}function _n(e){let t=ft(e);return{authenticated:t.authenticated,username:t.username||null,hostname:t.hostname,tokenSource:t.tokenSource||null,tokenExpired:!!t.tokenExpired}}function ho(e="github.com"){console.log(),console.log(` ${f("\u{1F510} GitHub Authentication")}`),console.log();let t=ft(e);t.authenticated?(console.log(` ${a("green","\u2713")} Authenticated as ${a("cyan",t.username||"unknown")}`),console.log(` ${l("Logged in:")} yes`),t.tokenExpired&&console.log(` ${a("yellow","\u26A0")} Token has expired - please login again`),console.log(` ${l("Host:")} ${t.hostname}`),console.log(` ${l("Source:")} ${Cu(t.tokenSource||"none",t.envTokenSource)}`)):(console.log(` ${a("yellow","\u26A0")} ${a("yellow","Not authenticated")} ${l("(Not logged in)")}`),console.log(),console.log(` ${f("To authenticate:")}`),xn()),console.log(),console.log(` ${l("Credentials stored in:")} ${fo()}`),console.log()}function wu(){console.log(` ${l("For deeper diagnostics:")} ${a("cyan","npx node-doctor")}`),console.log()}function Cu(e,t){switch(e){case"octocode":return a("cyan","octocode");case"gh-cli":return a("magenta","gh cli");case"env":if(t){let n=t.replace("env:","");return a("green",n)}return a("green","environment variable");default:return l("none")}}function Af(e){if(!e||e.trim().length===0)return{values:{}};let t=e.split(",").map(o=>o.trim()).filter(Boolean),n={},r=/^[A-Za-z_][A-Za-z0-9_]*$/;for(let o of t){let i=o.indexOf("=");if(i<=0)return{values:{},error:`Invalid --env pair: "${o}" (expected KEY=VALUE)`};let s=o.slice(0,i).trim(),c=o.slice(i+1);if(!r.test(s))return{values:{},error:`Invalid env var name: "${s}"`};n[s]=c}return{values:n}}import{existsSync as Su,copyFileSync as vC,accessSync as Mf,constants as Nf}from"node:fs";import{mkdirSync as $C}from"node:fs";import xu from"node:path";var bC=Be,Pn=bi({includeInstallAlias:!0}),_u={name:"install",aliases:["i","setup"],description:"Install octocode-mcp for an IDE",usage:"octocode install --ide <ide> [--method npx] [--force] [--json]",options:[{name:"ide",description:`IDE to configure: ${Pn}`,hasValue:!0},{name:"method",short:"m",description:"Installation method (npx)",hasValue:!0,default:"npx"},{name:"force",short:"f",description:"Overwrite existing configuration"},{name:"check",description:"Pre-flight only: verify config path is writable and show what would be written"},{name:"rollback",description:"Restore the most recent backup (--backup-path <path> or auto-detected)"},{name:"backup-path",description:"Path to the backup file to restore (used with --rollback)",hasValue:!0},{name:"json",short:"j",description:"Output result as JSON: { success, ide, configPath, method, error }"}],handler:async e=>{let t=e.options.ide,n=e.options.method??e.options.m,r=typeof n=="string"?n:"npx",o=!!(e.options.force||e.options.f),i=!!e.options.check,s=!!e.options.rollback,c=e.options["backup-path"],u=!!(e.options.json||e.options.j);if(typeof t!="string"||t.trim().length===0){if(!process.stdout.isTTY||u){u?console.log(JSON.stringify({success:!1,ide:null,configPath:null,method:r,error:`Missing required option: --ide. Supported: ${Pn}`})):(console.log(),console.log(" Missing required option: --ide"),console.log(` Supported: ${Pn}`),console.log(" Example: octocode install --ide cursor"),console.log()),process.exitCode=1;return}await Of();return}let m=$i(t);if(s){let C=m,k=Y(C),O=typeof c=="string"&&c.length>0?c:`${k}.bak`;if(!Su(O)){u?console.log(JSON.stringify({success:!1,ide:t,configPath:k,backupPath:O,error:`Backup not found: ${O}`})):(console.log(),console.log(` ${a("red","\u2717")} Backup not found: ${O}`),console.log(` ${l("Provide the path via --backup-path <path>")}`),console.log()),process.exitCode=1;return}try{$C(xu.dirname(k),{recursive:!0,mode:448}),vC(O,k)}catch(x){let S=x instanceof Error?x.message:String(x);u?console.log(JSON.stringify({success:!1,ide:t,configPath:k,backupPath:O,error:S})):(console.log(),console.log(` ${a("red","\u2717")} Rollback failed: ${S}`),console.log()),process.exitCode=1;return}u?console.log(JSON.stringify({success:!0,ide:t,configPath:k,backupPath:O})):(console.log(),console.log(` ${a("green","\u2713")} Rolled back ${a("cyan",t)} config from backup`),console.log(` ${l("Config:")} ${k}`),console.log(` ${l("Backup:")} ${O}`),console.log(),console.log(` ${f("Next:")} Restart ${Sn(C)} to apply.`),console.log());return}if(r==="npx"){let C=Kr(),k=Xr();if(!C.installed){if(u){console.log(JSON.stringify({success:!1,ide:t,configPath:null,method:r,error:"Node.js is not found in PATH"})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} Node.js is ${a("red","not found in PATH")}`),console.log(` ${l("Node.js is required for npx installation method.")}`),console.log(),wu(),process.exitCode=1;return}if(!k.installed){if(u){console.log(JSON.stringify({success:!1,ide:t,configPath:null,method:r,error:"npm is not found in PATH"})),process.exitCode=1;return}console.log(),console.log(` ${a("yellow","\u26A0")} npm is ${a("yellow","not found in PATH")}`),console.log(` ${l("npm is required for npx installation method.")}`),console.log(),wu(),process.exitCode=1;return}}if(!m||m==="custom"||!bC.includes(m)){if(u){console.log(JSON.stringify({success:!1,ide:t,configPath:null,method:r,error:`Invalid IDE: ${t}. Supported: ${Pn}`})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} Invalid IDE: ${t}`),console.log(` ${l("Supported:")} ${Pn}`),console.log(),process.exitCode=1;return}if(r!=="npx"){if(u){console.log(JSON.stringify({success:!1,ide:t,configPath:null,method:r,error:`Invalid method: ${r}. Supported: npx`})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} Invalid method: ${r}`),console.log(` ${l("Supported:")} npx`),console.log(),process.exitCode=1;return}let d=r,p=m,h=un(p,d);if(i){let C=h.configPath,k=Su(C),x=!!(k?J(C):null)?.mcpServers?.["octocode-mcp"],S=xu.dirname(C),E=Su(S),N=!1;if(E)try{Mf(S,Nf.W_OK),N=!0}catch{N=!1}else try{Mf(xu.dirname(S),Nf.W_OK),N=!0}catch{N=!1}let U=N&&(h.action!=="override"||o);if(u){console.log(JSON.stringify({ide:p,configPath:C,configExists:k,octocodeInstalled:x,parentDirExists:E,parentDirWritable:N,action:h.action,method:d,wouldOverwrite:h.action==="override",ready:U}));return}console.log(),console.log(` ${f("Install pre-flight check")}`),console.log(),console.log(` ${l("IDE:")} ${Sn(p)}`),console.log(` ${l("Config:")} ${C}`),console.log(` Config exists: ${k?a("green","yes"):a("yellow","no (will be created)")}`),console.log(` Parent dir writable: ${N?a("green","yes"):a("red","no \u2014 check permissions")}`),console.log(` Octocode installed: ${x?a("green","yes"):a("yellow","no")}`),console.log(` Action: ${h.action==="override"?a("yellow","overwrite"):a("green",h.action)}`),N?h.action==="override"&&!o?(console.log(),console.log(` ${a("yellow","\u26A0")} Already configured. Add --force to overwrite.`)):(console.log(),console.log(` ${a("green","\u2713")} Ready to install.`)):(console.log(),console.log(` ${a("red","\u2717")} Cannot write to ${S} \u2014 check permissions.`),process.exitCode=1),console.log();return}if(h.action==="override"&&!o){if(u){console.log(JSON.stringify({success:!1,ide:p,configPath:h.configPath,method:r,error:"Already configured. Use --force to overwrite."})),process.exitCode=1;return}console.log(),console.log(` ${a("yellow","\u26A0")} Octocode is already configured.`),console.log(` ${l("Use")} ${a("cyan","--force")} ${l("to overwrite.")}`),console.log(),process.exitCode=1;return}let v=u?null:new D("Writing configuration...").start(),g=Jr({client:p,method:d,force:o});if(u){console.log(JSON.stringify({success:g.success,ide:p,configPath:g.success?h.configPath:null,method:r,backupPath:g.backupPath||null,error:g.error||null})),g.success||(process.exitCode=1);return}g.success?(v?.succeed("Installation complete!"),console.log(),console.log(` ${f("Installing octocode-mcp")}`),console.log(` ${l("IDE:")} ${Sn(p)}`),console.log(` ${l("Method:")} ${zp[d].name}`),console.log(),console.log(` ${a("green","\u2713")} Config saved to: ${h.configPath}`),g.backupPath&&console.log(` ${l("Backup:")} ${g.backupPath}`),console.log(),console.log(` ${f("Next:")} Restart ${Sn(p)} to activate.`),console.log()):(v?.fail("Installation failed"),console.log(),g.error&&console.log(` ${a("red","\u2717")} ${g.error}`),console.log(),process.exitCode=1)}};import kC from"node:https";function zf(e,t){return new Promise(n=>{let r=t==="github.com"?"api.github.com":`${t}/api/v3`,o=kC.request({method:"GET",hostname:r.replace(/\/.*/,""),path:r.includes("/")?`/${r.split("/").slice(1).join("/")}/user`:"/user",headers:{Authorization:`Bearer ${e}`,"User-Agent":"octocode-cli/1.0",Accept:"application/vnd.github+json"},timeout:8e3},i=>{let s="";i.on("data",c=>s+=c.toString()),i.on("end",()=>{if(i.statusCode===401||i.statusCode===403){n({valid:!1,error:`HTTP ${i.statusCode}`});return}try{let c=JSON.parse(s),u=Number(i.headers["x-ratelimit-remaining"]??0),m=Number(i.headers["x-ratelimit-limit"]??0),d=Number(i.headers["x-ratelimit-reset"]??0);n({valid:!!c.login,login:c.login,rateLimit:{remaining:u,limit:m,reset:d}})}catch{n({valid:!1,error:"Invalid API response"})}})});o.on("error",i=>n({valid:!1,error:i.message})),o.on("timeout",()=>{o.destroy(),n({valid:!1,error:"Request timed out"})}),o.end()})}var In={name:"token",aliases:["t"],description:"Print the GitHub token (matches octocode-mcp priority)",usage:"octocode token [--type <auto|octocode|gh>] [--hostname <host>] [--source] [--validate] [--json]",options:[{name:"type",short:"t",description:"Token source: auto (default: env\u2192octocode\u2192gh), octocode, gh",hasValue:!0,default:"auto"},{name:"hostname",short:"H",description:"GitHub Enterprise hostname (default: github.com)",hasValue:!0},{name:"source",short:"s",description:"Show token source and user info"},{name:"validate",description:"Ping the GitHub API to verify the token is valid and show rate-limit info"},{name:"json",short:"j",description:"Output as JSON: { token, type, valid?, login?, rateLimit? }"}],handler:async e=>{let t=e.options.hostname??e.options.H,n=(typeof t=="string"?t:void 0)||"github.com",r=!!(e.options.source||e.options.s),o=!!e.options.validate,i=!!(e.options.json||e.options.j),s=e.options.type??e.options.t,c=(typeof s=="string"?s:void 0)||"auto",u;switch(c.toLowerCase()){case"octocode":case"octocode-cli":case"o":u="octocode";break;case"gh":case"gh-cli":case"g":u="gh";break;case"auto":case"a":u="auto";break;default:if(i){console.log(JSON.stringify({token:null,type:"none"})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} Invalid token type: ${c}`),console.log(` ${l("Valid options:")} octocode, gh, auto`),console.log(),process.exitCode=1;return}let m=await Pf(n,u);if(i){if(!m.token){console.log(JSON.stringify({token:null,type:"none",valid:!1})),process.exitCode=1;return}if(o){let d=await zf(m.token,n);console.log(JSON.stringify({token:m.token,type:$u(m.source,m.envSource),valid:d.valid,login:d.login??null,rateLimit:d.rateLimit??null,error:d.error??null})),d.valid||(process.exitCode=1);return}console.log(JSON.stringify({token:m.token,type:$u(m.source,m.envSource)}));return}if(!m.token){console.log(),u==="octocode"?(console.log(` ${a("yellow","\u26A0")} No Octocode token found for ${n}`),console.log(),console.log(` ${l("To login with Octocode:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","octocode login")}`),console.log(),console.log(` ${l("Or use gh CLI token:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","octocode token --type=gh")}`)):u==="gh"?(console.log(` ${a("yellow","\u26A0")} No gh CLI token found for ${n}`),console.log(),console.log(` ${l("To login with gh CLI:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","gh auth login")}`),console.log(),console.log(` ${l("Or use Octocode token:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","octocode token --type=octocode")}`)):(console.log(` ${a("yellow","\u26A0")} Not authenticated to ${n}`),console.log(),xn()),console.log(),process.exitCode=1;return}if(o){let{Spinner:d}=await import("./spinner-URV2OX6O.js"),p=new d("Validating token against GitHub API...").start(),h=await zf(m.token,n);if(p.stop(),console.log(),h.valid){if(console.log(` ${a("green","\u2713")} Token is valid \u2014 authenticated as ${a("cyan","@"+(h.login??"unknown"))}`),h.rateLimit){let v=new Date(h.rateLimit.reset*1e3).toLocaleTimeString();console.log(` ${l("Rate limit:")} ${h.rateLimit.remaining}/${h.rateLimit.limit} remaining, resets at ${v}`)}}else console.log(` ${a("red","\u2717")} Token validation failed: ${h.error??"unknown error"}`),process.exitCode=1;console.log();return}r?(console.log(),console.log(` ${a("green","\u2713")} Token found`),console.log(` ${l("Source:")} ${Cu(m.source,m.envSource)}`),m.username&&console.log(` ${l("User:")} ${a("cyan","@"+m.username)}`),console.log(),console.log(` ${l("Token:")} ${ku(m.token)}`),console.log()):console.log(Ef(m.token))}};var yo={name:"login",aliases:["l"],description:"Authenticate with GitHub",usage:"octocode login [--hostname <host>] [--git-protocol <ssh|https>] [--force] [--json]",options:[{name:"hostname",short:"H",description:"GitHub Enterprise hostname (default: github.com)",hasValue:!0},{name:"git-protocol",short:"p",description:"Git protocol to use (ssh or https)",hasValue:!0},{name:"force",short:"f",description:"Re-authenticate even if already logged in (logout then login)"},{name:"json",short:"j",description:"Output result as JSON: { success, username, error }"}],handler:async e=>{let t=e.options.hostname??e.options.H,n=(typeof t=="string"?t:void 0)||"github.com",r=!!(e.options.json||e.options.j),o=!!(e.options.force||e.options.f),i=ft(n);if(i.authenticated&&!o){if(r){console.log(JSON.stringify({success:!0,username:i.username||null,error:null,alreadyAuthenticated:!0}));return}console.log(),console.log(` ${a("green","\u2713")} Already authenticated as ${a("cyan",i.username||"unknown")}`),console.log(),console.log(` ${l("To switch accounts, use --force:")}`),console.log(` ${a("cyan","\u2192")} ${a("yellow","octocode login --force")}`),console.log();return}if(o&&i.authenticated&&(r||(console.log(),console.log(` ${l("Logging out")} ${a("cyan",i.username||n)} ${l("before re-authenticating...")}`)),await Lt(n)),!process.stdout.isTTY){r?console.log(JSON.stringify({success:!1,error:'Login requires browser interaction. Run "octocode login" in an interactive terminal.',requiresInteraction:!0})):(console.log(),console.log(` ${a("red","\u2717")} Login requires browser interaction.`),console.log(` ${l("Run")} ${a("yellow","octocode login")} ${l("in an interactive terminal.")}`),console.log()),process.exitCode=1;return}let s=e.options["git-protocol"]??e.options.p,c=typeof s=="string"?s:"https";if(c!=="ssh"&&c!=="https"){if(r){console.log(JSON.stringify({success:!1,username:null,error:`Invalid git protocol: ${c}. Supported: ssh, https`})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} Invalid git protocol: ${c}`),console.log(` ${l("Supported:")} ssh, https`),console.log(),process.exitCode=1;return}r||(console.log(),console.log(` ${f("\u{1F510} GitHub Authentication")}`),console.log());let u=!1,m=r?null:new D("Waiting for GitHub authentication...").start(),d=await yi({hostname:n,gitProtocol:c,onVerification:p=>{m?.stop(),u=!0,r?console.log(JSON.stringify({step:"verification",userCode:p.user_code,verificationUri:p.verification_uri,expiresIn:p.expires_in})):(console.log(` ${a("yellow","!")} First copy your one-time code: ${f(p.user_code)}`),console.log(),console.log(` ${f("Opening")} ${a("cyan",p.verification_uri)} ${f("in your browser...")}`),console.log(),console.log(` ${l("Waiting for authentication...")}`))}});if(u||m?.stop(),r){console.log(JSON.stringify({step:"result",success:d.success,username:d.username||null,error:d.error||null})),d.success||(process.exitCode=1);return}console.log(),d.success?(console.log(` ${a("green","\u2713")} Authentication complete!`),console.log(` ${a("green","\u2713")} Logged in as ${a("cyan",d.username||"unknown")}`),console.log(),console.log(` ${l("Credentials stored in:")} ${fo()}`)):(console.log(` ${a("red","\u2717")} Authentication failed: ${d.error||"Unknown error"}`),process.exitCode=1),console.log()}},ki={name:"logout",description:"Sign out from GitHub",usage:"octocode logout [--hostname <host>] [--yes] [--json]",options:[{name:"hostname",short:"H",description:"GitHub Enterprise hostname",hasValue:!0},{name:"yes",short:"y",description:"Skip confirmation prompt"},{name:"json",short:"j",description:"Output result as JSON: { success, hostname, error }"}],handler:async e=>{let t=e.options.hostname??e.options.H,n=(typeof t=="string"?t:void 0)||"github.com",r=!!(e.options.json||e.options.j),o=!!(e.options.yes||e.options.y),i=ft(n);if(!i.authenticated){if(r){console.log(JSON.stringify({success:!0,hostname:n,error:null,alreadyLoggedOut:!0}));return}console.log(),console.log(` ${a("yellow","\u26A0")} Not currently authenticated to ${n}`),console.log(),xn(),console.log();return}if(!o&&!r&&process.stdout.isTTY){let{confirm:c}=await import("./prompts-5E6VKRX5.js");if(!await c({message:`Log out from ${a("cyan",i.username||n)}?`,default:!1})){console.log(),console.log(` ${l("Logout cancelled.")}`),console.log();return}}let s=await Lt(n);if(r){console.log(JSON.stringify({success:s.success,hostname:n,error:s.error||null})),s.success||(process.exitCode=1);return}console.log(),console.log(` ${f("\u{1F510} GitHub Logout")}`),console.log(` ${l("Currently authenticated as:")} ${a("cyan",i.username||"unknown")}`),console.log(),s.success?console.log(` ${a("green","\u2713")} Successfully logged out from ${n}`):(console.log(` ${a("red","\u2717")} Logout failed: ${s.error||"Unknown error"}`),process.exitCode=1),console.log()}},Pu={name:"auth",aliases:["a","gh"],description:"Manage GitHub authentication",usage:"octocode auth [login|logout|status|token|refresh] [--json]",options:[{name:"hostname",short:"H",description:"GitHub Enterprise hostname (default: github.com)",hasValue:!0},{name:"json",short:"j",description:"Output as JSON (supported by all subcommands)"}],handler:async e=>{let t=e.args[0],n=e.options.hostname??e.options.H,r=(typeof n=="string"?n:void 0)||"github.com",o=!!(e.options.json||e.options.j);if(t==="login")return yo.handler(e);if(t==="logout")return ki.handler(e);if(t==="status"){if(o){let u=_n(r);console.log(JSON.stringify(u)),u.authenticated||(process.exitCode=1);return}ho(r);return}if(t==="token")return In.handler(e);if(t==="refresh"){let u=ft(r),m=u.tokenSource;if(m==="env"){let h=u.envTokenSource,v=`Token is from environment variable${h?` (${h})`:""} \u2014 update it directly to refresh.`;o?console.log(JSON.stringify({success:!1,hostname:r,tokenSource:m,refreshable:!1,error:v})):(console.log(),console.log(` ${a("yellow","\u26A0")} ${v}`),console.log()),process.exitCode=1;return}if(m==="gh-cli"){let h="Token is managed by the gh CLI \u2014 run `gh auth refresh` instead.";o?console.log(JSON.stringify({success:!1,hostname:r,tokenSource:m,refreshable:!1,error:h,hint:"gh auth refresh"})):(console.log(),console.log(` ${a("yellow","\u26A0")} ${h}`),console.log(` ${l("Run:")} ${a("cyan","gh auth refresh")}${r!=="github.com"?` ${l(`--hostname ${r}`)}`:""}`),console.log()),process.exitCode=1;return}if(m==="none"||!u.authenticated){let h="Not authenticated. Run `octocode login` first.";o?console.log(JSON.stringify({success:!1,hostname:r,tokenSource:m,refreshable:!1,error:h})):(console.log(),console.log(` ${a("red","\u2717")} ${h}`),console.log()),process.exitCode=1;return}let d=o?null:new D("Refreshing Octocode token...").start(),p=await _f(r);if(d?.stop(),o){console.log(JSON.stringify({success:p.success,hostname:r,tokenSource:m,refreshable:!0,username:p.username??null,error:p.error??null})),p.success||(process.exitCode=1);return}console.log(),p.success?console.log(` ${a("green","\u2713")} Token refreshed for ${a("cyan",p.username??r)}`):(console.log(` ${a("red","\u2717")} Token refresh failed: ${p.error??"unknown error"}`),console.log(` ${l("Tip:")} run ${a("yellow","octocode login")} to re-authenticate`),process.exitCode=1),console.log();return}if(!process.stdout.isTTY){if(o){let u=_n(r);console.log(JSON.stringify(u)),u.authenticated||(process.exitCode=1)}else ho(r);return}let i=ft(r);ho(r),await oe();let s=i.authenticated?[{name:"\u{1F513} Logout from GitHub",value:"logout"},{name:"\u{1F504} Switch account (logout & login)",value:"switch"},{name:"\u2190 Back",value:"back"}]:[{name:"\u{1F510} Login to GitHub",value:"login"},{name:"\u2190 Back",value:"back"}],c=await j({message:"What would you like to do?",choices:s});c==="login"?await yo.handler({command:"login",args:[],options:{hostname:r}}):c==="logout"?(await Lt(r),console.log(),console.log(` ${a("green","\u2713")} Successfully logged out`),console.log()):c==="switch"&&(console.log(),console.log(` ${l("Logging out...")}`),await Lt(r),console.log(` ${a("green","\u2713")} Logged out`),console.log(),console.log(` ${l("Starting new login...")}`),await yo.handler({command:"login",args:[],options:{hostname:r}}))}};import wC from"node:path";function jf(e){let t=e.split(",").map(r=>Kl(r)).filter(r=>r!==null),n=[...new Set(t)];return n.length===0?{targets:n,error:"No valid targets provided"}:{targets:n}}function Iu(e,t){return e.map(n=>({target:n,destDir:co(n,t)}))}function Df(e){return Te(e).filter(Et)}function CC(e,t){t==="installed"?e.installed++:t==="skipped"?e.skipped++:e.failed++}function Tu({skillName:e,sourceDir:t,destinations:n,strategy:r,force:o}){let i=wC.join(t,e),s={installed:0,skipped:0,failed:0,targetCount:n.length};for(let c of n){let u=At(c.destDir,e),m=u?si({sourcePath:i,destinationPath:u,mode:Mg(r,c.target),force:o}):"failed";CC(s,m)}return s}function wi({skillNames:e,sourceDir:t,destinations:n,strategy:r,force:o}){let i={installed:0,skipped:0,failed:0,targetCount:n.length};for(let s of e){let c=Tu({skillName:s,sourceDir:t,destinations:n,strategy:r,force:o});i.installed+=c.installed,i.skipped+=c.skipped,i.failed+=c.failed}return i}function Lf({skillName:e,destinations:t}){let n={removed:0,missing:0,failed:0,targetCount:t.length,failures:[]};for(let r of t){let o=At(r.destDir,e);if(!o){n.failed++,n.failures.push({target:r.target,reason:"invalid-skill-name"});continue}if(!F(o)){n.missing++;continue}no(o)?n.removed++:(n.failed++,n.failures.push({target:r.target,path:o,reason:"remove-failed"}))}return n}import{resolve as Au,basename as Ou}from"node:path";import Ee from"node:path";function SC(e){let t=e.startsWith("~/")?e.replace("~/",`${G}/`):e;if(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")){let r=Au(t);return{type:"local",skillDir:r.endsWith("SKILL.md")?r.slice(0,-9):r}}if(t.startsWith("https://github.com/")){let r=t.match(/github\.com\/([^/]+)\/([^/]+)\/(tree|blob)\/([^/]+)\/(.+)/);if(r){let i=r[5].replace(/\/SKILL\.md$/,"");return{type:"github",owner:r[1],repo:r[2],branch:r[4],skillPath:i}}let o=t.match(/github\.com\/([^/]+)\/([^/]+)\/?$/);return o?{type:"github",owner:o[1],repo:o[2],skillPath:"",branch:"main"}:null}let n=t.split("/");if(n.length>=2){let r=n[0],o=n[1],i=n.slice(2).join("/").replace(/\/SKILL\.md$/,"").replace(/\/SKILL\.md$/,"");return{type:"github",owner:r,repo:o,skillPath:i,branch:"main"}}return null}async function xC(){await oe();let e=await j({message:"Install skills to which platforms?",choices:[{name:"- Claude locations (claude-code + claude-desktop)",value:"claude-only"},{name:"- All supported platforms",value:"all"},{name:"- Custom selection",value:"custom"},{name:`${l("- Cancel")}`,value:"cancel"}],loop:!1});return e==="cancel"?[]:e==="claude-only"?[...Jl]:e==="all"?[...ot]:await En({message:"Select target platforms",choices:ot.map(t=>({name:`- ${t}`,value:t,checked:Jl.includes(t)})),required:!0,loop:!1})}async function _C(){await oe();let e=await j({message:"How should skills be installed?",choices:[{name:"- Hybrid (copy for Claude targets, symlink for others)",value:"hybrid"},{name:"- Full copies everywhere",value:"copy"},{name:"- Symlinks everywhere",value:"symlink"},{name:`${l("- Cancel")}`,value:"cancel"}],loop:!1});return e==="cancel"?null:e}var Eu=3e3,Mu={name:"skills",aliases:["sk"],description:"Search, install, and manage Octocode skills across AI clients",usage:"octocode skills [search|read|install|remove|list|sync] [--skill <name>] [--targets <list>] [--mode <copy|symlink>] [--json]",options:[{name:"force",short:"f",description:"Overwrite existing skills"},{name:"skill",short:"k",description:"Skill folder name (install/remove from bundled)",hasValue:!0},{name:"local",description:"Path to a local skill folder \u2014 for read, install, or remove (e.g. ./my-skill or /abs/path)",hasValue:!0},{name:"targets",short:"t",description:`Comma-separated targets: ${nt()}`,hasValue:!0},{name:"mode",short:"m",description:"Install mode: copy (default) or symlink",hasValue:!0,default:"copy"},{name:"limit",short:"l",description:"Max results for search (default: 20)",hasValue:!0},{name:"full",description:"Show full SKILL.md without truncation (read only)"},{name:"direct",description:"Search skills.sh directly and show results (human mode \u2014 skips agent protocol)"},{name:"target",description:`Filter list to one target: ${nt()} (list only)`,hasValue:!0},{name:"install",short:"i",description:"Install the top search result (use with search --direct)"},{name:"dry-run",short:"n",description:"Show what would be installed without writing anything (install only)"},{name:"json",short:"j",description:"Output as JSON"}],handler:async e=>{let t=e.args[0]||"list",n=!!(e.options.force||e.options.f),r=!!(e.options.json||e.options.j),o=!!e.options.full,i=!!(e.options["dry-run"]||e.options.n),s=!!(e.options.install||e.options.i),c=e.options.target,u=typeof c=="string"&&c.length>0?c.trim().toLowerCase():void 0,m=e.options.skill??e.options.k,d=typeof m=="string"&&m.length>0?m:void 0,p=e.options.local,h=typeof p=="string"&&p.length>0?p:void 0,v=e.options.targets??e.options.t,g=t==="remove"?void 0:e.options.mode??e.options.m,C="copy";if(typeof g=="string"&&g.trim().length>0){let A=g.trim().toLowerCase();if(A!=="copy"&&A!=="symlink"){console.log(),console.log(` ${a("red","X")} Invalid --mode value: ${a("yellow",g)}`),console.log(` ${l("Allowed values:")} copy, symlink`),console.log(` ${l("Example:")} octocode skills install --mode symlink`),console.log(),process.exitCode=1;return}C=A}let k=typeof v=="string"&&v.trim().length>0,O=typeof g=="string"&&g.length>0,x=Mt(),S=ke(),E=[...Ag];if(typeof v=="string"&&v.trim().length>0){let A=jf(v);if(E=A.targets,A.error){console.log(),console.log(` ${a("red","X")} ${A.error}`),console.log(` ${l("Valid targets:")} ${nt()}`),console.log(),process.exitCode=1;return}}let N=C;if(t==="install"&&!h&&!r&&process.stdout.isTTY&&(!k||!O)){let A=await xC();if(A.length===0){console.log(),console.log(` ${a("yellow","WARN")} Skills install cancelled`),console.log();return}E=A;let w=await _C();if(!w){console.log(),console.log(` ${a("yellow","WARN")} Skills install cancelled`),console.log();return}N=w}let U=Iu(E,S);if(!F(x)){console.log(),console.log(` ${a("red","\u2717")} Skills directory not found`),console.log(` ${l("Expected:")} ${x}`),console.log(),process.exitCode=1;return}let V=Df(x);if(t==="read"){let A=e.args[1]??h;if(!A){console.log(),console.log(` ${a("red","\u2717")} Missing path`),console.log(` ${l("Usage:")} octocode skills read <path-to-SKILL.md>`),console.log(` ${l("Local:")} skills read ./my-skill/SKILL.md`),console.log(` ${l("GitHub:")} skills read owner/repo/skills/my-skill`),console.log(` ${l("GitHub:")} skills read https://github.com/owner/repo/tree/main/skills/my-skill`),console.log(),process.exitCode=1;return}let w=SC(A);if(!w){console.log(),console.log(` ${a("red","\u2717")} Cannot parse path: ${a("yellow",A)}`),console.log(` ${l("Expected:")} /local/path, ./relative, owner/repo/path, or https://github.com/...`),console.log(),process.exitCode=1;return}let z=r?null:new D("Reading SKILL.md...").start(),T=null,R=null,ee="";try{if(w.type==="local"){let K=w.skillDir.endsWith("SKILL.md")?w.skillDir:Ee.join(w.skillDir,"SKILL.md");if(!pe(K))throw new Error(`SKILL.md not found at ${K}`);T=Ze(K)??null,ee=K}else T=await pi(w.owner,w.repo,w.skillPath,w.branch),ee=`https://github.com/${w.owner}/${w.repo}/tree/${w.branch}/${w.skillPath}`}catch(K){R=K instanceof Error?K.message:String(K)}if(z?.stop(),R||!T){if(r){console.log(JSON.stringify({success:!1,error:R??"Empty content"})),process.exitCode=1;return}console.log(),console.log(` ${a("red","\u2717")} ${R??"Empty content"}`),console.log(),process.exitCode=1;return}let se=Ge(T),q=se?.name??(w.type==="local"?Ou(w.skillDir):w.skillPath.split("/").pop()??w.repo),ce=!o&&T.length>Eu,Ae=ce?T.slice(0,Eu):T;if(r){console.log(JSON.stringify({success:!0,name:q,description:se?.description??null,source:ee,content:Ae,truncated:ce,totalChars:T.length}));return}console.log(),console.log(` ${f(q)}`),se?.description&&console.log(` ${l(se.description)}`),console.log(` ${l(ee)}`),console.log(),console.log(` ${a("cyan",f("\u2500\u2500 SKILL.md \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\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(),console.log(Ae),ce&&(console.log(),console.log(` ${l(`... (${T.length-Eu} more chars \u2014 use --full to show all)`)}`)),console.log();return}if(t==="search"){let A=e.args[1]||e.options.query||e.options.q,w=!!e.options.direct,z=e.options.limit??e.options.l,T=typeof z=="string"&&/^\d+$/.test(z)?Math.max(1,Math.min(100,parseInt(z,10))):20;if(!A||typeof A!="string"){console.log(),console.log(` ${a("red","\u2717")} Missing search query`),console.log(` ${l("Usage:")} octocode skills search <query> [--direct] [--json] [--limit N]`),console.log(` ${l("Example:")} octocode skills search "code review" --direct`),console.log(),process.exitCode=1;return}let R="https://github.com/bgauryy/octocode/blob/main/skills/octocode-search-skill/SKILL.md",ee="https://raw.githubusercontent.com/bgauryy/octocode/main/skills/octocode-search-skill/SKILL.md",se="https://github.com/bgauryy/octocode/tree/main/skills/octocode-search-skill/references";if(w){let q=r?null:new D(`Searching skills.sh for "${A}"...`).start(),ce=null,Ae=null;try{ce=await mf(A,T)}catch(X){Ae=String(X)}if(q?.stop(),r){console.log(JSON.stringify({query:A,source:"skills.sh",count:ce?.count??0,results:(ce?.results??[]).map(X=>({name:X.name,skillId:X.skillId,repo:X.source,installs:X.installs,url:`https://github.com/${X.source}`,readCmd:`octocode skills read ${X.source}/${X.skillId}/SKILL.md`,installCmd:`octocode skills install --local ${X.source}/${X.skillId}`})),error:Ae??void 0}));return}if(console.log(),console.log(` ${f(`Skill Search: "${A}"`)}`),!ce||ce.results.length===0){console.log(),console.log(Ae?` ${a("yellow","WARN")} skills.sh unavailable: ${Ae}`:` ${l(`No results for "${A}" \u2014 try broader terms`)}`),console.log();return}let K=new Map;for(let X of ce.results){let ge=K.get(X.source)??[];ge.push(X),K.set(X.source,ge)}let ue=[...K.entries()].sort((X,ge)=>ge[1].reduce((st,_e)=>st+_e.installs,0)-X[1].reduce((st,_e)=>st+_e.installs,0));console.log(` ${l(`${ce.count} results from skills.sh \u2014 grouped by repo`)}`);for(let[X,ge]of ue){let st=ge.reduce((_e,He)=>_e+He.installs,0);console.log(),console.log(` ${a("cyan",f(X))} ${l(`(${st.toLocaleString()} total installs)`)}`);for(let _e of ge.sort((He,vo)=>vo.installs-He.installs)){let He=_e.installs>0?l(` \xB7 ${_e.installs.toLocaleString()} installs`):"";console.log(` ${a("green","\u2022")} ${f(_e.name)}${He}`),console.log(` ${l("read:")} octocode skills read ${_e.source}/${_e.skillId}/SKILL.md`)}}if(s&&ce.results.length>0){let ge=ce.results.sort(($o,Si)=>Si.installs-$o.installs)[0],st=`${ge.source}/${ge.skillId}`;console.log(),console.log(` ${f("Auto-installing top result:")} ${a("cyan",ge.name)}`),console.log(` ${l("Source:")} https://github.com/${st}`),console.log();let _e=new D(`Fetching SKILL.md from ${st}...`).start(),He=null,vo=null;try{vo=await pi(ge.source.split("/")[0],ge.source.split("/").slice(1).join("/"),`${ge.skillId}/SKILL.md`,"main")}catch($o){He=String($o)}if(_e.stop(),He||!vo)console.log(` ${a("red","\u2717")} Could not fetch skill: ${He??"empty content"}`),console.log(` ${l("Try manually:")} octocode skills install --local <path>`);else{let{mkdirSync:$o,writeFileSync:Si}=await import("node:fs"),Tn=0,bo=0;for(let Zf of U){let On=Ee.join(Zf.destDir,ge.skillId);try{if(!n&&F(On))continue;$o(On,{recursive:!0,mode:493}),Si(Ee.join(On,"SKILL.md"),vo,"utf8"),Tn++}catch(Bf){console.log(` ${a("red","X")} Failed to write to ${On}: ${Bf}`),bo++}}bo===0&&Tn>0?console.log(` ${a("green","\u2705")} Installed ${ge.name} to ${Tn} target(s)`):Tn===0&&bo===0?console.log(` ${a("yellow","\u26A0")} Already installed in all targets \u2014 use --force to overwrite`):bo>0&&(console.log(` ${a("red","X")} Installation failed for ${bo} target(s)`),process.exitCode=1)}}console.log();return}if(r){console.log(JSON.stringify({query:A,instruction:"Read the skill protocol and all its referenced files, then execute the search for the given query.",skillProtocol:{url:R,raw:ee,references:se}}));return}console.log(),console.log(` ${f(`Skill Search: "${A}"`)}`),console.log(),console.log(` Read and follow the search protocol, then search for: ${a("cyan",f(A))}`),console.log(),console.log(` ${f("Protocol:")} ${R}`),console.log(` ${f("References:")} ${se}`),console.log(),console.log(` ${l("For immediate results: octocode skills search <query> --direct")}`),console.log();return}if(t==="list"){if(u&&!ot.includes(u)){r?console.log(JSON.stringify({error:`Invalid target: ${u}. Valid: ${nt()}`})):(console.log(),console.log(` ${a("red","\u2717")} Invalid --target: ${u}`),console.log(` ${l("Valid targets:")} ${nt()}`),console.log()),process.exitCode=1;return}let w=(u?ot.filter(T=>T===u):ot).map(T=>{let R=co(T),ee=F(R),se=ee?Te(R).filter(q=>Et(q)).map(q=>{let ce=Ee.join(R,q),Ae=jg(ce),K=Ae?.description||null,ue=K&&K.length>200?`${K.slice(0,200)}\u2026`:K;return{folder:q,name:Ae?.name||q,description:ue,path:Ee.join(ce,"SKILL.md")}}):[];return{target:T,destDir:R,exists:ee,skills:se}});if(r){console.log(JSON.stringify({targets:w}));return}let z=w.reduce((T,R)=>T+R.skills.length,0);console.log(),console.log(` ${f("Skills on OS")} ${l(`(${z} total)`)}`);for(let T of w){if(console.log(),console.log(` ${a("cyan",f(T.target))} ${l(T.destDir)}`),!T.exists){console.log(` ${l("(directory not found)")}`);continue}if(T.skills.length===0){console.log(` ${l("(no skills installed)")}`);continue}for(let R of T.skills){let ee=R.name!==R.folder?`${f(R.name)} ${l(`(${R.folder})`)}`:f(R.folder);if(console.log(` ${a("green","\u2022")} ${ee}`),R.description){let se=R.description,q=se.length>200?`${se.slice(0,200)}\u2026`:se;console.log(` ${l(q)}`)}console.log(` ${l(R.path)}`)}}console.log(),V.length>0&&(console.log(` ${l("Available to install:")} ${V.join(", ")}`),console.log(` ${l("Install:")} octocode skills install --targets <targets>`)),console.log();return}if(t==="install"){if(h){let z=Au(h.startsWith("~/")?h.replace("~/",`${G}/`):h),T=z.endsWith("SKILL.md")?z:Ee.join(z,"SKILL.md"),R=T.replace(/\/SKILL\.md$/,""),ee=Ou(R);if(!pe(T)){r?console.log(JSON.stringify({success:!1,error:`SKILL.md not found at ${T}`})):(console.log(),console.log(` ${a("red","\u2717")} SKILL.md not found at ${T}`),console.log()),process.exitCode=1;return}let se=r?null:new D(`Installing ${ee} from local path...`).start(),q=wi({skillNames:[ee],sourceDir:Ee.dirname(R),destinations:U,strategy:N,force:n});if(r){se?.stop(),console.log(JSON.stringify({installed:q.installed,skipped:q.skipped,failed:q.failed,skill:ee,source:z,targets:U.map(ce=>ce.target)})),q.failed>0&&(process.exitCode=1);return}q.failed===0?(se?.succeed(`Installed ${ee}!`),console.log(),console.log(` ${a("green","\u2705")} Installed to ${q.installed}/${q.targetCount} targets`)):(se?.fail(`Failed to install ${ee}`),process.exitCode=1),console.log();return}if(d){if(console.log(),console.log(` ${f(`Installing skill: ${d}`)}`),console.log(),!V.includes(d)){console.log(` ${a("red","\u2717")} Skill not found: ${d}`),console.log(),console.log(` ${l("Available skills:")}`);for(let R of V)console.log(` ${a("cyan","\u2022")} ${R}`);console.log(),process.exitCode=1;return}let z=r?null:new D(`Installing ${d}...`).start(),T=Tu({skillName:d,sourceDir:x,destinations:U,strategy:N,force:n});if(r){console.log(JSON.stringify({installed:T.installed,skipped:T.skipped,failed:T.failed,skill:d,targets:U.map(R=>R.target)})),T.failed>0&&(process.exitCode=1);return}if(T.failed===0){z?.succeed(`Installed ${d}!`),console.log(),console.log(` ${a("green","\u2705")} Installed to ${T.installed}/${T.targetCount} targets`);for(let R of U)console.log(` ${a("cyan","\u2022")} ${R.target}: ${Ee.join(R.destDir,d)}`);T.skipped>0&&console.log(` ${a("yellow","WARN")} Skipped ${T.skipped} existing target(s) ${l("(use --force to overwrite)")}`)}else z?.fail(`Failed to install ${d}`),process.exitCode=1;console.log();return}if(r||(console.log(),console.log(` ${f("Installing Octocode Skills")}`),console.log()),V.length===0){r?console.log(JSON.stringify({dryRun:i,skills:[],targets:U.map(z=>z.target),plan:[]})):(console.log(` ${a("yellow","\u26A0")} No skills to install.`),console.log());return}if(i){let z=V.flatMap(T=>U.map(R=>({skill:T,target:R.target,dest:Ee.join(R.destDir,T),exists:F(Ee.join(R.destDir,T))})));if(r){console.log(JSON.stringify({dryRun:!0,skills:V,targets:U.map(T=>T.target),plan:z}));return}console.log(` ${a("yellow","DRY RUN")} ${l("(no files written)")}`),console.log();for(let T of z){let R=T.exists?n?a("yellow","overwrite"):a("dim","skip (exists)"):a("green","install");console.log(` ${a("cyan",T.target)} / ${f(T.skill)} ${R}`),console.log(` ${l(T.dest)}`)}console.log(),console.log(` ${l("Remove --dry-run to apply.")}`),console.log();return}let A=r?null:new D("Installing skills...").start(),w=wi({skillNames:V,sourceDir:x,destinations:U,strategy:N,force:n});if(r){console.log(JSON.stringify({installed:w.installed,skipped:w.skipped,failed:w.failed,targets:U.map(z=>z.target)})),w.failed>0&&(process.exitCode=1);return}w.failed===0?A?.succeed("Skills installation complete!"):A?.fail("Skills installation completed with errors"),console.log(),w.installed>0&&console.log(` ${a("green","\u2705")} Installed ${w.installed} skill target(s)`),w.skipped>0&&(console.log(` ${a("yellow","WARN")} Skipped ${w.skipped} existing skill target(s)`),console.log(` ${l("Use")} ${a("cyan","--force")} ${l("to overwrite.")}`)),w.failed>0&&(console.log(` ${a("red","X")} Failed ${w.failed} skill target(s)`),process.exitCode=1),console.log(),console.log(` ${f("Targets:")}`);for(let z of U)console.log(` ${a("cyan","\u2022")} ${z.target}: ${z.destDir}`);console.log(),console.log(` ${f("Skills installation finished.")}`),console.log();return}if(t==="remove"){let A=d??(h?Ou(Au(h.startsWith("~/")?h.replace("~/",`${G}/`):h).replace(/\/SKILL\.md$/,"")):void 0);if(!A){console.log(),console.log(` ${a("red","X")} Missing required option: ${a("cyan","--skill <name>")} or ${a("cyan","--local <path>")}`),console.log(),console.log(` ${l("Usage:")} octocode skills remove --skill <name>`),console.log(` ${l(" or:")} octocode skills remove --local ./my-skill`),console.log(),process.exitCode=1;return}console.log(),console.log(` ${f(`Removing skill: ${A}`)}`),console.log();let w=Lf({skillName:A,destinations:U});if(w.failures.some(T=>T.reason==="invalid-skill-name")){if(r){console.log(JSON.stringify({removed:0,missing:0,failed:1,targets:U.map(T=>T.target),error:`Invalid skill name: ${A}`})),process.exitCode=1;return}console.log(` ${a("red","X")} Invalid skill name: ${A}`),process.exitCode=1;return}if(r){console.log(JSON.stringify({removed:w.removed,missing:w.missing,failed:w.failed,skill:A,targets:U.map(T=>T.target)})),w.failed>0&&(process.exitCode=1);return}for(let T of w.failures)T.reason==="remove-failed"&&console.log(` ${a("red","X")} Failed to remove from ${T.target}: ${T.path}`);w.removed>0&&console.log(` ${a("green","\u2705")} Removed from ${w.removed}/${w.targetCount} targets`),w.missing>0&&console.log(` ${a("yellow","WARN")} Not found in ${w.missing} target(s) ${l("(already absent)")}`),w.failed>0&&(process.exitCode=1),console.log();return}if(t==="sync"){let A=e.args[1],w=e.args[2];if(!A||!w){let ue="Usage: octocode skills sync <from-target> <to-target>";r?console.log(JSON.stringify({success:!1,error:ue})):(console.log(),console.log(` ${a("red","\u2717")} ${ue}`),console.log(` ${l("Example:")} octocode skills sync cursor agents`),console.log(` ${l("Targets:")} ${nt()}`),console.log()),process.exitCode=1;return}let z=ot.find(ue=>ue===A.toLowerCase()),T=ot.find(ue=>ue===w.toLowerCase()),R=[!z&&A,!T&&w].filter(Boolean);if(R.length>0){let ue=`Invalid target(s): ${R.join(", ")}. Valid: ${nt()}`;r?console.log(JSON.stringify({success:!1,error:ue})):(console.log(),console.log(` ${a("red","\u2717")} ${ue}`),console.log()),process.exitCode=1;return}let ee=co(z),se=co(T);if(!F(ee)){let ue=`Source target has no skills: ${z} (${ee})`;r?console.log(JSON.stringify({success:!1,error:ue})):(console.log(),console.log(` ${a("red","\u2717")} ${ue}`),console.log()),process.exitCode=1;return}let q=Te(ee).filter(Et);if(i){let ue=q.map(X=>({skill:X,from:Ee.join(ee,X),to:Ee.join(se,X),exists:F(Ee.join(se,X))}));if(r){console.log(JSON.stringify({dryRun:!0,from:z,to:T,skills:q,plan:ue}));return}console.log(),console.log(` ${a("yellow","DRY RUN")} sync ${a("cyan",z)} \u2192 ${a("cyan",T)} ${l("(no files written)")}`),console.log();for(let X of ue){let ge=X.exists?n?a("yellow","overwrite"):a("dim","skip (exists)"):a("green","copy");console.log(` ${a("green","\u2022")} ${f(X.skill)} ${ge}`)}console.log();return}let ce=r?null:new D(`Syncing ${q.length} skills from ${z} \u2192 ${T}...`).start(),Ae=Iu([T],ke()),K=wi({skillNames:q,sourceDir:ee,destinations:Ae,strategy:"copy",force:n});if(ce?.stop(),r){console.log(JSON.stringify({success:K.failed===0,from:z,to:T,installed:K.installed,skipped:K.skipped,failed:K.failed,skills:q})),K.failed>0&&(process.exitCode=1);return}console.log(),console.log(` ${a("green","\u2705")} Synced ${K.installed} skill(s) from ${a("cyan",z)} \u2192 ${a("cyan",T)}`),K.skipped>0&&console.log(` ${a("yellow","WARN")} Skipped ${K.skipped} (already exists \u2014 use --force to overwrite)`),K.failed>0&&(console.log(` ${a("red","X")} Failed ${K.failed}`),process.exitCode=1),console.log();return}console.log(),console.log(` ${a("red","\u2717")} Unknown subcommand: ${t}`),console.log(` ${l("Usage:")} octocode skills [search|read|install|remove|list|sync]`),console.log(),process.exitCode=1}};import PC from"node:https";import IC from"node:http";function TC(e,t=5e3){return new Promise(n=>{try{let r=new URL(e),i=(r.protocol==="https:"?PC:IC).request({method:"HEAD",hostname:r.hostname,path:r.pathname||"/",timeout:t},()=>n(!0));i.on("error",()=>n(!1)),i.on("timeout",()=>{i.destroy(),n(!1)}),i.end()}catch{n(!1)}})}function OC(e){let t=e.installConfig.command;return t!=="npx"&&t!=="uvx"&&t!=="pip"&&t!=="pipx"?null:e.npmPackage?`https://registry.npmjs.org/${e.npmPackage.replace(/^@/,"").replace("/","%2F")}`:e.pythonPackage?`https://pypi.org/pypi/${e.pythonPackage}/json`:e.repository}function Rf(e){let t=process.env[e];return t&&t.trim().length>0?"set":"missing"}var Uf=bi(),Nu={name:"mcp",description:"Non-interactive MCP marketplace management",usage:"octocode mcp [list|install|remove|status] [--id <mcp-id>] [--client <client>|--config <path>] [--search <text>] [--category <name>] [--env KEY=VALUE[,KEY=VALUE]] [--force]",options:[{name:"id",description:"MCP registry id \u2014 comma-separated for batch install: --id id1,id2,id3",hasValue:!0},{name:"client",short:"c",description:`Target client: ${Uf}`,hasValue:!0},{name:"config",description:"Custom MCP config path (uses custom client)",hasValue:!0},{name:"search",description:"Filter list by id/name/description/tags",hasValue:!0},{name:"category",description:"Filter list by category",hasValue:!0},{name:"env",description:"Comma-separated env values: KEY=VALUE,KEY2=VALUE2",hasValue:!0},{name:"installed",description:"List only MCPs installed in target config"},{name:"force",short:"f",description:"Overwrite existing MCP entry on install"},{name:"json",description:"Output results as JSON"}],handler:async e=>{let t=(e.args[0]||"list").toLowerCase(),n=e.options.id,r=typeof n=="string"&&n.trim().length>0?n.trim():void 0,o=e.options.client??e.options.c,i=e.options.config,s=e.options.search,c=e.options.category,u=e.options.env,m=!!e.options.installed,d=!!(e.options.force||e.options.f),p=!!e.options.json,h="claude-code",v;if(typeof i=="string"&&i.trim().length>0)h="custom",v=i.trim();else if(typeof o=="string"&&o.trim().length>0){let O=$i(o);if(!O){console.log(),console.log(` ${a("red","X")} Invalid --client value: ${a("yellow",o)}`),console.log(` ${l("Allowed values:")} ${Uf}`),console.log(),process.exitCode=1;return}h=O}let g=Y(h,v),C=J(g)||{mcpServers:{}},k=C.mcpServers||{};if(t==="list"){if(!o&&!i&&typeof s!="string"&&typeof c!="string"&&!m){let S=Be.map(N=>{let U=Y(N),V=mt(N),A=V?Object.keys(J(U)?.mcpServers||{}):null;return{client:N,name:B[N]?.name||N,configPath:U,exists:V,servers:A}});if(p){console.log(JSON.stringify({configs:S}));return}let E=S.filter(N=>N.exists);if(console.log(),console.log(` ${f("MCP Configs on OS")} ${l(`(${E.length}/${S.length} found)`)}`),E.length===0){console.log(),console.log(` ${l("No MCP config files found on OS.")}`),console.log();return}for(let N of E){let U=N.servers?.length??0;if(console.log(),console.log(` ${a("cyan",f(N.name))} ${l(N.configPath)}`),!N.servers||U===0)console.log(` ${l("(no servers configured)")}`);else for(let V of N.servers)console.log(` ${a("green","\u2022")} ${V}`)}console.log();return}let x=ve;if(typeof s=="string"&&s.trim().length>0){let S=s.trim().toLowerCase();x=x.filter(E=>E.id.toLowerCase().includes(S)||E.name.toLowerCase().includes(S)||E.description.toLowerCase().includes(S)||E.tags?.some(N=>N.toLowerCase().includes(S)))}if(typeof c=="string"&&c.trim().length>0){let S=c.trim().toLowerCase();x=x.filter(E=>E.category===S)}if(m){let S=new Set(Object.keys(k));x=x.filter(E=>S.has(E.id))}if(p){console.log(JSON.stringify({client:h,configPath:g,results:x.map(S=>({id:S.id,name:S.name,category:S.category,installed:!!k[S.id],requiredEnvVars:m?(S.requiredEnvVars??[]).map(E=>({name:E.name,description:E.description,status:Rf(E.name)})):void 0}))}));return}if(console.log(),console.log(` ${f("MCP Marketplace")}`),console.log(` ${l("Client:")} ${B[h]?.name||h}`),console.log(` ${l("Config:")} ${g}`),console.log(` ${l("Results:")} ${x.length}`),console.log(),x.length===0){console.log(` ${l("No MCP entries matched your filters.")}`),console.log();return}for(let S of x){let E=!!k[S.id],N=E?a("green","installed"):l("not installed");if(console.log(` ${a("cyan","\u2022")} ${S.id} ${l("("+S.category+")")} ${N}`),E&&m&&S.requiredEnvVars?.length)for(let U of S.requiredEnvVars){let V=Rf(U.name),A=V==="set"?a("green","\u2713"):a("red","\u2717");console.log(` ${A} ${U.name} ${l(V==="set"?"(set)":"(missing)")}`)}}console.log();return}if(t==="status"){let O=Object.keys(k).sort((x,S)=>x.localeCompare(S));if(p){console.log(JSON.stringify({client:h,configPath:g,servers:O}));return}console.log(),console.log(` ${f("MCP Config Status")}`),console.log(` ${l("Client:")} ${B[h]?.name||h}`),console.log(` ${l("Config:")} ${g}`),console.log(` ${l("Installed MCPs:")} ${O.length}`),console.log();for(let x of O)console.log(` ${a("cyan","\u2022")} ${x}`);O.length===0&&console.log(` ${l("No MCP servers configured yet.")}`),console.log();return}if(t==="install"){if(!r){p?console.log(JSON.stringify({success:!1,error:"Missing required option: --id <mcp-id>"})):(console.log(),console.log(` ${a("red","X")} Missing required option: --id <mcp-id>`),console.log()),process.exitCode=1;return}let O=r.split(",").map(w=>w.trim()).filter(Boolean),x=Af(typeof u=="string"?u:void 0);if(x.error){p?console.log(JSON.stringify({success:!1,error:x.error})):(console.log(),console.log(` ${a("red","X")} ${x.error}`),console.log()),process.exitCode=1;return}let S=[],E=O.map(w=>({id:w,entry:ve.find(z=>z.id.toLowerCase()===w.toLowerCase())}));for(let w of E.filter(z=>!z.entry))S.push({id:w.id,success:!1,error:`MCP not found in registry: ${w.id}`});let U=E.filter(w=>!!w.entry).filter(w=>k[w.entry.id]&&!d?(S.push({id:w.entry.id,success:!1,error:`MCP already installed: ${w.entry.id}`,hint:"Use --force to overwrite"}),!1):!0),V=new Map;await Promise.allSettled(U.map(async w=>{let z=OC(w.entry),T=z?await TC(z):!0;V.set(w.entry.id,{ok:T,url:z})}));for(let w of U){let z=V.get(w.entry.id);if(z&&!z.ok&&!d){S.push({id:w.entry.id,success:!1,preflightUrl:z.url??void 0,error:`Pre-flight check failed: ${z.url} is unreachable`,hint:"Use --force to skip pre-flight and install anyway",preflightFailed:!0});continue}let T={command:w.entry.installConfig.command,args:[...w.entry.installConfig.args]},R={...w.entry.installConfig.env||{},...x.values};Object.keys(R).length>0&&(T.env=R);let ee=J(g)||{mcpServers:{}},se={...ee,mcpServers:{...ee.mcpServers||{},[w.entry.id]:T}},q=xe(g,se);S.push(q.success?{id:w.entry.id,success:!0}:{id:w.entry.id,success:!1,error:q.error||"Failed to write MCP config"})}let A=S.filter(w=>!w.success);if(p){if(O.length===1){let w=S[0];console.log(JSON.stringify({success:w.success,id:w.id,client:h,configPath:g,error:w.error??null,hint:w.hint??null}))}else console.log(JSON.stringify({results:S,client:h,configPath:g}));A.length>0&&(process.exitCode=1);return}console.log();for(let w of S)w.success?console.log(` ${a("green","\u2705")} Installed: ${w.id}`):(console.log(` ${a("red","X")} ${w.error}`),w.hint&&console.log(` ${l(w.hint)}`));S.length>1?(console.log(),console.log(` ${l("Client:")} ${B[h]?.name||h} ${l("Config:")} ${g}`)):S[0]?.success&&(console.log(` ${l("Client:")} ${B[h]?.name||h}`),console.log(` ${l("Config:")} ${g}`)),console.log(),A.length>0&&(process.exitCode=1);return}if(t==="remove"){if(!r){p?console.log(JSON.stringify({success:!1,error:"Missing required option: --id <mcp-id>"})):(console.log(),console.log(` ${a("red","X")} Missing required option: --id <mcp-id>`),console.log()),process.exitCode=1;return}let O=Object.keys(k).find(E=>E.toLowerCase()===r.toLowerCase());if(!O){p?console.log(JSON.stringify({success:!1,error:`MCP not installed: ${r}`})):(console.log(),console.log(` ${a("yellow","WARN")} MCP not installed: ${r}`),console.log(` ${l("Nothing to remove from target config.")}`),console.log()),process.exitCode=1;return}let x={...k};delete x[O];let S=xe(g,{...C,mcpServers:x});if(!S.success){p?console.log(JSON.stringify({success:!1,error:S.error||"Failed to update MCP config"})):(console.log(),console.log(` ${a("red","X")} Failed to update MCP config`),console.log(` ${l(S.error||"Unknown write error")}`),console.log()),process.exitCode=1;return}p?console.log(JSON.stringify({success:!0,id:r,client:h,configPath:g})):(console.log(),console.log(` ${a("green","\u2705")} Removed MCP: ${r}`),console.log(` ${l("Client:")} ${B[h]?.name||h}`),console.log(` ${l("Config:")} ${g}`),console.log());return}console.log(),console.log(` ${a("red","X")} Unknown mcp subcommand: ${t}`),console.log(` ${l("Usage:")} octocode mcp [list|install|remove|status]`),console.log(),process.exitCode=1}};import zu from"node:path";import{existsSync as Ci,rmSync as Ff}from"node:fs";var ju={name:"cache",description:"Inspect and clean Octocode cache and logs",usage:"octocode cache [status|clean] [--repos] [--skills] [--logs] [--tools|--local|--lsp|--api] [--all]",options:[{name:"json",short:"j",description:"Output result as JSON: { repos, skills, logs, totalBytes, totalFormatted }"},{name:"dry-run",short:"n",description:"Show what would be deleted and bytes freed without deleting (clean only)"},{name:"yes",short:"y",description:"Skip confirmation prompt when using --all (clean only)"},{name:"repos",description:"Target cloned repositories cache"},{name:"skills",description:"Target marketplace skills cache"},{name:"logs",description:"Target Octocode logs directory"},{name:"all",short:"a",description:"Target repos + skills + logs (tool flags are advisory)"},{name:"tools",description:"Target tool caches (local + lsp + api). In-memory caches clear on MCP restart."},{name:"local",description:"Target local tool cache. In-memory cache clears on MCP restart."},{name:"lsp",description:"Target LSP tool cache. In-memory cache clears on MCP restart."},{name:"api",description:"Target remote API tool cache. In-memory cache clears on MCP restart."}],handler:async e=>{let t=(e.args[0]||"status").toLowerCase(),n=!!(e.options.json||e.options.j),r=!!(e.options["dry-run"]||e.options.n),o=!!(e.options.yes||e.options.y),i=me.home||process.env.OCTOCODE_HOME||zu.join(process.env.HOME||"",".octocode"),s=me.repos||zu.join(i,"repos"),c=me.logs||zu.join(i,"logs"),u=mi(),m=!!e.options.repos,d=!!e.options.skills,p=!!e.options.logs,h=!!e.options.tools,v=!!e.options.local,g=!!e.options.lsp,C=!!e.options.api,k=!!(e.options.all||e.options.a),O=k||m,x=k||d,S=k||p,E=h||v||g||C;if(t==="status"){let N=ye(s),U=ye(u),V=ye(c),A=N+U+V;if(n){console.log(JSON.stringify({home:i,repos:{path:s,sizeBytes:N,sizeFormatted:ne(N)},skills:{path:u,sizeBytes:U,sizeFormatted:ne(U)},logs:{path:c,sizeBytes:V,sizeFormatted:ne(V)},totalBytes:A,totalFormatted:ne(A)}));return}console.log(),console.log(` ${f("\u{1F9F9} Octocode Cache Status")}`),console.log(),console.log(` ${l("Home:")} ${i}`),console.log(),console.log(` ${a("cyan","\u2022")} repos: ${ne(N)} ${l(`(${s})`)}`),console.log(` ${a("cyan","\u2022")} skills: ${ne(U)} ${l(`(${u})`)}`),console.log(` ${a("cyan","\u2022")} logs: ${ne(V)} ${l(`(${c})`)}`),console.log(),console.log(` ${f("Total:")} ${ne(A)}`),console.log(),console.log(` ${l("Clean examples:")}`),console.log(` ${a("yellow","octocode cache clean --repos")}`),console.log(` ${a("yellow","octocode cache clean --tools")}`),console.log(` ${a("yellow","octocode cache clean --all")}`),console.log();return}if(t==="clean"){if(!O&&!x&&!S&&!E){let w="Missing clean target. Use --repos, --skills, --logs, --tools, or --all";n?console.log(JSON.stringify({success:!1,error:w})):(console.log(),console.log(` ${a("red","X")} ${w}`),console.log(` ${l("Example:")} octocode cache clean --all`),console.log()),process.exitCode=1;return}let N=[];O&&Ci(s)&&N.push({target:"repos",path:s,sizeBytes:ye(s)}),x&&N.push({target:"skills",path:u,sizeBytes:ye(u)}),S&&Ci(c)&&N.push({target:"logs",path:c,sizeBytes:ye(c)});let U=N.reduce((w,z)=>w+z.sizeBytes,0);if(r){if(n){console.log(JSON.stringify({dryRun:!0,plan:N.map(w=>({...w,sizeFormatted:ne(w.sizeBytes)})),totalBytes:U,totalFormatted:ne(U)}));return}console.log(),console.log(` ${a("yellow","DRY RUN")} \u2014 would free ${f(ne(U))}`),console.log();for(let w of N)console.log(` ${a("cyan","\u2022")} ${w.target}: ${ne(w.sizeBytes)} ${l(w.path)}`);E&&console.log(` ${a("dim","\u25CB")} tools: in-memory only (no disk bytes to free)`),console.log(),console.log(` ${l("Remove --dry-run to apply.")}`),console.log();return}if(k&&!o&&!n&&process.stdout.isTTY&&U>0&&!await yt({message:`Delete ${ne(U)} of cache? (repos + skills + logs)`,default:!1})){console.log(),console.log(` ${l("Cancelled.")}`),console.log();return}let V=!1,A=0;if(O&&Ci(s)&&(A+=ye(s),Ff(s,{recursive:!0,force:!0}),V=!0),x){let w=ye(u);df();let z=ye(u);(w>0||z===0)&&(A+=Math.max(0,w-z),V=!0)}if(S&&Ci(c)&&(A+=ye(c),Ff(c,{recursive:!0,force:!0}),V=!0),E){let w=[h?"--tools":"",v?"--local":"",g?"--lsp":"",C?"--api":""].filter(Boolean).join(", ");n||console.log(` ${a("yellow","\u2139")} ${w}: No disk caches to clean. Tool caches are in-memory and clear on MCP server restart.`)}if(n){console.log(JSON.stringify({success:!0,cleaned:V,freedBytes:A,freedFormatted:ne(A),targets:N.map(w=>w.target)}));return}console.log(),V?(console.log(` ${a("green","\u2713")} Cache cleanup complete`),console.log(` ${l("Freed:")} ${ne(A)}`)):E||console.log(` ${a("yellow","\u26A0")} Nothing to clean`),console.log();return}console.log(),console.log(` ${a("red","\u2717")} Unknown cache subcommand: ${t}`),console.log(` ${l("Usage:")} octocode cache [status|clean] [--repos] [--skills] [--logs] [--tools|--local|--lsp|--api] [--all]`),console.log(),process.exitCode=1}};import Du from"node:path";var Lu={name:"status",aliases:["s"],description:"Show full Octocode health status (auth + MCPs + cache)",usage:"octocode status [--hostname <host>] [--json]",options:[{name:"hostname",short:"H",description:"GitHub Enterprise hostname (default: github.com)",hasValue:!0},{name:"sync",description:"Include MCP sync analysis (needsSync, conflicts)"},{name:"json",short:"j",description:"Output as JSON: { auth, mcpClients, cache, sync? }"}],handler:async e=>{let t=e.options.hostname??e.options.H,n=(typeof t=="string"?t:void 0)||"github.com",r=!!(e.options.json||e.options.j),o=!!e.options.sync,i=_n(n),s=Be.map(k=>{let O=Y(k),x=mt(k),S=x?Object.keys(J(O)?.mcpServers||{}):[];return{client:k,name:B[k]?.name||k,configPath:O,exists:x,serverCount:S.length,servers:S,octocodeInstalled:S.includes("octocode-mcp")}}),c=me.home||process.env.OCTOCODE_HOME||Du.join(process.env.HOME||"",".octocode"),u=me.repos||Du.join(c,"repos"),m=me.logs||Du.join(c,"logs"),d=mi(),p=ye(u),h=ye(d),v=ye(m),g=null;if(o){let k=pt(),O=gt(k);g={summary:{needsSyncCount:O.summary.needsSyncCount,conflictCount:O.summary.conflictCount,consistentMCPs:O.summary.consistentMCPs,totalUniqueMCPs:O.summary.totalUniqueMCPs},needsSync:O.needsSync.map(x=>({mcpId:x.mcpId,missingIn:x.missingIn})),conflicts:O.conflicts.map(x=>({mcpId:x.mcpId,presentIn:x.presentIn}))}}if(r){console.log(JSON.stringify({auth:i,mcpClients:s,cache:{home:c,repos:{path:u,sizeBytes:p,sizeFormatted:ne(p)},skills:{path:d,sizeBytes:h,sizeFormatted:ne(h)},logs:{path:m,sizeBytes:v,sizeFormatted:ne(v)},totalBytes:p+h+v,totalFormatted:ne(p+h+v)},...g?{sync:g}:{}})),i.authenticated||(process.exitCode=1);return}console.log(),console.log(` ${f("\u{1F7E2} Octocode Status")}`),console.log(),ho(n);let C=s.filter(k=>k.exists);console.log(),console.log(` ${f("MCP Clients")} ${l(`(${C.length}/${s.length} configured)`)}`),console.log();for(let k of s){if(!k.exists)continue;let O=k.octocodeInstalled?a("green","\u2713"):a("yellow","\u25CB");console.log(` ${O} ${f(k.name)} ${l(`${k.serverCount} MCPs ${k.configPath}`)}`)}C.length===0&&console.log(` ${l("No MCP config files found.")}`),console.log(),console.log(` ${f("Cache")} ${l(ne(p+h+v))} total`),console.log(` ${a("cyan","\u2022")} repos: ${ne(p)}`),console.log(` ${a("cyan","\u2022")} skills: ${ne(h)}`),console.log(` ${a("cyan","\u2022")} logs: ${ne(v)}`),g?(console.log(),console.log(` ${f("Sync")} ${l(`${g.summary.totalUniqueMCPs} unique MCPs`)}`),g.summary.consistentMCPs>0&&console.log(` ${a("green","\u2713")} ${g.summary.consistentMCPs} fully synced`),g.summary.needsSyncCount>0&&console.log(` ${a("yellow","\u25CB")} ${g.summary.needsSyncCount} can be auto-synced \u2014 run ${a("cyan","octocode sync")}`),g.summary.conflictCount>0&&console.log(` ${a("red","!")} ${g.summary.conflictCount} conflicts \u2014 run ${a("cyan","octocode sync --force")}`)):(console.log(),console.log(` ${l("Run")} ${a("cyan","octocode status --sync")} ${l("to include sync analysis.")}`)),console.log()}};var Ru={name:"sync",aliases:["sy"],description:"Sync MCP configurations across all IDE clients",usage:"octocode sync [--force] [--dry-run] [--status]",options:[{name:"force",short:"f",description:"Auto-resolve conflicts (use first variant)"},{name:"dry-run",short:"n",description:"Show what would be synced without making changes"},{name:"status",short:"s",description:"Show sync status without syncing"},{name:"json",short:"j",description:"Output as JSON"}],handler:async e=>{let n=e.args[0]==="plan",r=!!(e.options.force||e.options.f),o=n||!!(e.options["dry-run"]||e.options.n),i=!!(e.options.status||e.options.s),s=!!(e.options.json||e.options.j);if(i){let m=s?null:new D("Scanning configurations...").start(),d=pt(),p=gt(d);if(m?.stop(),s){console.log(JSON.stringify({clients:p.clients.map(h=>({client:h.client,name:$e(h.client),exists:h.exists,mcpCount:h.mcpCount})),summary:p.summary}));return}console.log(),console.log(` ${f("\u{1F504} MCP Sync Status")}`),console.log(),console.log(` ${f("Clients:")} ${p.summary.clientsWithConfig} with MCP configs`),console.log();for(let h of p.clients){let v=$e(h.client),g=h.exists?a("green","\u25CF"):a("dim","\u25CB"),C=h.exists?`${h.mcpCount} MCPs`:l("no config");console.log(` ${g} ${v}: ${C}`)}console.log(),console.log(` ${f("MCPs:")}`),console.log(` ${a("cyan","\u2022")} ${p.summary.totalUniqueMCPs} unique MCPs`),p.summary.consistentMCPs>0&&console.log(` ${a("green","\u2713")} ${p.summary.consistentMCPs} fully synced`),p.summary.needsSyncCount>0&&console.log(` ${a("yellow","\u25CB")} ${p.summary.needsSyncCount} can be auto-synced`),p.summary.conflictCount>0&&console.log(` ${a("red","!")} ${p.summary.conflictCount} have conflicts`),console.log(),(p.summary.needsSyncCount>0||p.summary.conflictCount>0)&&(console.log(` ${l("Run")} ${a("cyan","octocode sync")} ${l("to synchronize.")}`),p.summary.conflictCount>0&&console.log(` ${l("Use")} ${a("cyan","--force")} ${l("to auto-resolve conflicts.")}`),console.log());return}if(o){let m=s?null:new D("Analyzing configurations...").start(),d=pt(),p=gt(d);m?.stop();let h=[...p.needsSync.map(g=>({type:"add",mcpId:g.mcpId,presentIn:g.presentIn,missingIn:g.missingIn,hasConflict:!1})),...p.conflicts.map(g=>({type:"conflict",mcpId:g.mcpId,presentIn:g.presentIn,missingIn:g.missingIn,hasConflict:!0})),...p.fullyConsistent.map(g=>({type:"ok",mcpId:g.mcpId,presentIn:g.presentIn,missingIn:[],hasConflict:!1}))];if(s){console.log(JSON.stringify({dryRun:!0,operations:h,summary:p.summary}));return}console.log(),console.log(` ${f("\u{1F504} Sync Plan")} ${l(`(${h.length} MCPs across ${p.summary.clientsWithConfig} clients)`)}`),console.log();let v=h.filter(g=>g.type!=="ok");for(let g of v){let C=g.type==="conflict"?a("red","!"):a("yellow","\u25CB"),k=g.type==="conflict"?`${a("red","conflict")} \u2014 needs --force to resolve`:`add to ${g.missingIn.join(", ")}`;console.log(` ${C} ${f(g.mcpId)} ${l(k)}`)}v.length===0&&console.log(` ${a("green","\u2713")} All MCPs are in sync.`),console.log(),(p.needsSync.length>0||p.conflicts.length>0)&&(console.log(` ${l("Run")} ${a("cyan","octocode sync")} ${l("to apply.")}`),p.conflicts.length>0&&console.log(` ${l("Use")} ${a("cyan","--force")} ${l("to auto-resolve conflicts.")}`),console.log());return}let c=s?null:new D("Analyzing configurations...").start(),u=await Hl({force:r,dryRun:!1});if(s){console.log(JSON.stringify({success:u.success,syncPerformed:u.syncPerformed,dryRun:!1,message:u.message})),u.success||(process.exitCode=1);return}console.log(),console.log(` ${f("\u{1F504} MCP Sync")}`),console.log(),u.syncPerformed?u.success?(c?.succeed(u.message),console.log(),console.log(` ${f("Next:")} Restart your IDEs to apply changes.`)):(c?.fail(u.message),process.exitCode=1):(c?.stop(),u.success?console.log(` ${a("green","\u2713")} ${u.message}`):(console.log(` ${a("yellow","\u26A0")} ${u.message}`),!r&&u.message.includes("conflict")&&(console.log(),console.log(` ${l("Options:")}`),console.log(` ${a("cyan","\u2022")} Run ${a("cyan","octocode")} for interactive mode`),console.log(` ${a("cyan","\u2022")} Use ${a("cyan","--force")} to auto-resolve`)),process.exitCode=1)),console.log()}};var EC=[_u,Pu,yo,ki,Mu,Nu,Fu,ju,In,Lu,Ru];function AC(e){return EC.find(t=>t.name===e||t.aliases?.includes(e))}export{_u as a,In as b,yo as c,ki as d,Pu as e,Mu as f,Nu as g,ju as h,Lu as i,Ru as j,AC as k};
|
|
52
|
-
/*! Bundled license information:
|
|
53
|
-
|
|
54
|
-
@octokit/request-error/dist-src/index.js:
|
|
55
|
-
(* v8 ignore else -- @preserve -- Bug with vitest coverage where it sees an else branch that doesn't exist *)
|
|
56
|
-
|
|
57
|
-
@octokit/request/dist-bundle/index.js:
|
|
58
|
-
(* v8 ignore next -- @preserve *)
|
|
59
|
-
(* v8 ignore else -- @preserve *)
|
|
60
|
-
*/
|