@zenku/cli-node 0.1.46 → 0.1.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/zenku-bundle.mjs +3 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenku/cli-node",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
4
4
  "description": "Zenku CLI (Node.js) — runs under node, no native binary.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "bin": {
package/zenku-bundle.mjs CHANGED
@@ -924,7 +924,7 @@ ${new Date().toISOString()}
924
924
  `),process.stdout.write(`Last Exit: ${u?.lastExitCode??"-"}
925
925
  `),process.stdout.write(`Last Err: ${u?.lastError||"-"}
926
926
  `)}})}catch(a){ot("%s",Qr(a))}}),t.command("remove").description("Remove a schedule").option("--scope <scope>","scope: user|system","user").argument("<id>","schedule ID").action((r,i)=>{try{let a=CA(i.scope);C2(a,!1);let o=ub(a),s=o.findIndex(u=>u.id===r);s===-1&&ot('schedule "%s" not found',r),o.splice(s,1),S$(a,o);let l=iw(a);aPe(l,r),jk(a,l),Nt({json:()=>({success:!0,id:r,scope:a}),human:()=>On('Schedule "%s" removed',r)})}catch(a){ot("%s",Qr(a))}});function e(r,i,a){C2(i,!1);let o=ub(i),s=Fse(o,r);s.enabled=a,s.updatedAt=new Date().toISOString(),S$(i,o)}t.command("enable").description("Enable a schedule").option("--scope <scope>","scope: user|system","user").argument("<id>","schedule ID").action((r,i)=>{try{let a=CA(i.scope);e(r,a,!0),Nt({json:()=>({success:!0,id:r,enabled:!0,scope:a}),human:()=>On('Schedule "%s" enabled',r)})}catch(a){ot("%s",Qr(a))}}),t.command("disable").description("Disable a schedule").option("--scope <scope>","scope: user|system","user").argument("<id>","schedule ID").action((r,i)=>{try{let a=CA(i.scope);e(r,a,!1),Nt({json:()=>({success:!0,id:r,enabled:!1,scope:a}),human:()=>On('Schedule "%s" disabled',r)})}catch(a){ot("%s",Qr(a))}}),t.command("run").description("Run a schedule immediately").option("--scope <scope>","scope: user|system","user").option("--dry-run","print execution details without running").argument("<id>","schedule ID").action(async(r,i)=>{try{let a=CA(i.scope),o=!!i.dryRun;C2(a,o);let s=ub(a),l=Fse(s,r),u=await lPe(a,l,o);Nt({json:()=>u,human:()=>{if(u.dryRun){mn("Dry run: %s",Lse(l));return}(u.exitCode??1)===0?On('Schedule "%s" ran successfully',r):mn('Schedule "%s" finished with exit code %s',r,Xa(u.exitCode??"null"))}})}catch(a){ot("%s",Qr(a))}}),t.command("tick").description("Run one scheduler tick (intended for host scheduler integration)").option("--scope <scope>","scope: user|system","user").action(async r=>{try{let i=CA(r.scope);C2(i,!1);let a=await sPe(i);Nt({json:()=>a,human:()=>{a.locked?mn("Tick skipped: another tick is already running."):mn("Tick completed: executed=%s skipped=%s",String(a.executed),String(a.skipped))}})}catch(i){ot("%s",Qr(i))}});let n=new Jn("host").description("Manage host scheduler integration");return n.command("install").description("Install host scheduler integration").option("--scope <scope>","scope: user|system","user").option("--dry-run","show generated artifacts and commands").action(r=>{try{let i=CA(r.scope),a=!!r.dryRun;C2(i,a);let s=E$().install(i,a);Nt({json:()=>s,human:()=>{On("%s host scheduler %s",a?"Previewed":"Installed",i);for(let l of s.actions)mn("- %s",l)}})}catch(i){ot("%s",Qr(i))}}),n.command("uninstall").description("Remove host scheduler integration").option("--scope <scope>","scope: user|system","user").option("--dry-run","show generated commands").action(r=>{try{let i=CA(r.scope),a=!!r.dryRun;C2(i,a);let s=E$().uninstall(i,a);Nt({json:()=>s,human:()=>{On("%s host scheduler %s",a?"Previewed uninstall for":"Uninstalled",i);for(let l of s.actions)mn("- %s",l)}})}catch(i){ot("%s",Qr(i))}}),n.command("status").description("Show host scheduler status").option("--scope <scope>","scope: user|system","user").action(r=>{try{let i=CA(r.scope),o=E$().status(i);Nt({json:()=>o,human:()=>{mn("Platform: %s",o.platform),mn("Scope: %s",o.scope),mn("Installed: %s",o.installed?"yes":"no");for(let[s,l]of Object.entries(o.details))mn("%s: %s",s,Xa(l))}})}catch(i){ot("%s",Qr(i))}}),t.addCommand(n),t}function dPe(t){t.addCommand(ZRt())}import{mkdirSync as JRt,readFileSync as hPe,readdirSync as XRt,statSync as TR,unlinkSync as e6t,writeFileSync as t6t}from"node:fs";import{basename as n6t,dirname as r6t,join as IR,relative as gPe}from"node:path";import{homedir as APe,hostname as i6t}from"node:os";function Use(t){if(t)return t;let e=vi("CLAUDE_CONFIG_DIR");return e||IR(APe(),".claude")}function pPe(t){if(t)return t;let e=vi("ZENKU_MACHINE_ID");return e||i6t()}function zse(t){let e=[],n;try{n=XRt(t,{withFileTypes:!0})}catch{return e}for(let r of n){let i=IR(t,r.name);r.isDirectory()?e.push(...zse(i)):r.isFile()&&r.name.endsWith(".jsonl")&&e.push(i)}return e}function P0(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function a6t(t,e){let n=TR(t);return Date.now()-n.mtimeMs>=e*86400*1e3}function fPe(t,e,n){let r=gPe(e,t);return`${n}/${r}`}function Qse(t){return t.replace(/'/g,"\\'")}async function mPe(t,e,n,r,i,a,o){let l=TR(e).size,u=null;try{let h=await t.collection("session_files").getFirstListItem(`key='${Qse(n)}'`);u={id:h.id,size:h.size}}catch{}if(u&&u.size===l)return{status:"skipped",key:n,size:l};if(o)return u?mn("[DRY-RUN] Would update: %s (%s -> %s)",n,P0(u.size),P0(l)):mn("[DRY-RUN] Would upload: %s (%s)",n,P0(l)),{status:u?"updated":"uploaded",key:n,size:l};let p=hPe(e),f=new File([p],n6t(e),{type:"application/x-ndjson"});try{return u?(await t.collection("session_files").update(u.id,{size:l,file:f}),On("Updated: %s (%s -> %s)",n,P0(u.size),P0(l)),{status:"updated",key:n,size:l}):(await t.collection("session_files").create({key:n,machine_id:r,size:l,tenant_id:i,account_id:a,file:f}),On("Uploaded: %s (%s)",n,P0(l)),{status:"uploaded",key:n,size:l})}catch(h){let _=h instanceof Error?h.message:String(h);return{status:"failed",key:n,size:l,error:_}}}function o6t(){let t=new Jn("sessions").description("Upload and manage Claude Code session transcripts");return t.command("sync").description("Scan local Claude Code sessions and upload new/changed files").option("--machine-id <id>","machine identifier for R2 key namespacing").option("--claude-dir <path>","Claude config directory").option("--dry-run","show what would be uploaded without uploading").option("--cleanup-days <days>","delete local files older than N days after successful upload").action(async e=>{let n=Use(e.claudeDir),r=pPe(e.machineId),i=e.dryRun??!1,a=e.cleanupDays?Number(e.cleanupDays):0;a&&(Number.isNaN(a)||a<1)&&ot("--cleanup-days requires a positive integer");let o=IR(n,"projects"),s=zse(o);if(s.length===0){mn("No session files found in %s",o);return}let{client:l,profile:u}=await ri("library"),p=pp(u),f=sc(u);a>0&&mn("Cleanup mode: syncing files older than %s days",a),mn("Scanning %s sessions in %s",s.length,o);let h=0,_=0,y=0,E=0,S=0,T=0;for(let N of s){if(a>0&&!a6t(N,a)){T++;continue}let O=fPe(N,o,r),M=await mPe(l,N,O,r,p,f,i);switch(M.status){case"uploaded":h++;break;case"updated":_++;break;case"skipped":y++;break;case"failed":mn("Failed: %s \u2014 %s",O,M.error),E++;continue}if(a>0)if(i)mn("[DRY-RUN] Would delete local: %s",N);else try{e6t(N),S++}catch{mn("Failed to delete local: %s",N)}}mn(""),a>0?mn("Summary: %s total, %s too new (<%sd), %s uploaded, %s updated, %s unchanged, %s deleted locally, %s failed",s.length,T,a,h,_,y,S,E):mn("Summary: %s total, %s uploaded, %s updated, %s unchanged, %s failed",s.length,h,_,y,E)}),t.command("list").description("List Claude Code session files").option("--remote","list uploaded session files from PocketBase").option("--claude-dir <path>","Claude config directory").action(async e=>{if(e.remote){let{client:n}=await ri("library"),r=await dn("Fetching session files...",()=>n.collection("session_files").getList(1,200,{sort:"-created"}));Nt({json:()=>r.items,human:()=>{let i=r.items.map(a=>[a.id,a.key,a.machine_id,P0(a.size),a.created]);Vi(["ID","KEY","MACHINE","SIZE","CREATED"],i)}})}else{let n=Use(e.claudeDir),r=IR(n,"projects"),i=zse(r);Nt({json:()=>i.map(a=>{let o=TR(a);return{path:a,size:o.size,modified:o.mtime}}),human:()=>{let a=i.map(o=>{let s=TR(o);return[gPe(r,o),P0(s.size),s.mtime.toISOString().slice(0,19)]});Vi(["PATH","SIZE","MODIFIED"],a),mn(`
927
- %s files, %s total`,i.length,P0(i.reduce((o,s)=>o+TR(s).size,0)))}})}}),t.command("upload").description("Upload a single session file").option("--hook","hook mode: read session path from stdin JSON").option("--machine-id <id>","machine identifier for R2 key namespacing").option("--claude-dir <path>","Claude config directory").argument("[file]","path to .jsonl file (when not using --hook)").action(async(e,n)=>{let r=Use(n.claudeDir),i=pPe(n.machineId),a=IR(r,"projects"),o;if(n.hook){let _;try{_=hPe(0,"utf-8")}catch{ot("failed to read from stdin")}let y;try{y=JSON.parse(_)}catch{ot("invalid JSON on stdin")}let E=y.transcript_path;E||ot("no transcript_path in hook input"),o=E.replace(/^~/,APe())}else e?o=e:ot("provide a file path or use --hook to read from stdin");try{TR(o)}catch{ot("file not found: %s",o)}let s=fPe(o,a,i),{client:l,profile:u}=await ri("library"),p=pp(u),f=sc(u),h=await mPe(l,o,s,i,p,f,!1);h.status==="failed"&&ot("upload failed: %s",h.error),Nt({json:()=>h,human:()=>{h.status==="skipped"&&mn("Skipped (unchanged): %s",s)}})}),t.command("download").description("Download session files from PocketBase").argument("[dir]","output directory",".").option("--key <key>","download a specific file by key").option("--machine-id <id>","download all files from a specific machine").action(async(e,n)=>{let{client:r}=await ri("library"),i=[];n.key&&i.push(`key='${Qse(n.key)}'`),n.machineId&&i.push(`machine_id='${Qse(n.machineId)}'`);let a=i.length>0?i.join(" && "):"",o=await dn("Fetching session files...",()=>r.collection("session_files").getFullList({sort:"key",filter:a}));if(o.length===0){mn("No session files found");return}mn("Downloading %s files to %s",o.length,e);let s=await r.files.getToken(),l=0,u=0;for(let p of o){let f=p.key,h=p.file,_=IR(e,f),y=r.files.getURL(p,h,{token:s});try{let E=await fetch(y);if(!E.ok){mn("Failed: %s \u2014 HTTP %s",f,E.status),u++;continue}let S=Buffer.from(await E.arrayBuffer());JRt(r6t(_),{recursive:!0}),t6t(_,S),On("Downloaded: %s (%s)",f,P0(S.length)),l++}catch(E){let S=E instanceof Error?E.message:String(E);mn("Failed: %s \u2014 %s",f,S),u++}}mn(""),mn("Summary: %s total, %s downloaded, %s failed",o.length,l,u),Nt({json:()=>o.map(p=>({id:p.id,key:p.key,machine_id:p.machine_id,size:p.size})),human:()=>{}})}),t}function _Pe(t){t.addCommand(o6t())}import{readFileSync as s6t}from"node:fs";import{dirname as l6t,join as c6t}from"node:path";import{fileURLToPath as u6t}from"node:url";function T2(){return"0.1.46"}import{basename as d6t}from"node:path";function yPe(){return!0}var p6t="@zenku";function EPe(t){return t.replace(/\\/g,"/")}function f6t(t){let e=t.toLowerCase();return e==="node"||e==="node.exe"||e==="bun"}function C$(){let{platform:t,arch:e}=process,n=new Set(["darwin-arm64","darwin-x64","linux-arm64","linux-x64"]),r=`${t}-${e}`;if(!n.has(r))throw new Error(`Unsupported platform: ${r}`);return`cli-${r}`}function bPe(t){return`${p6t}/${t}`}function T$(){if(yPe())return"bundle";let t=EPe(process.execPath),e=EPe(process.argv[1]??""),n=d6t(process.execPath).toLowerCase();return n==="zenku-test"||n==="zenku-test.exe"||n.includes("zenku-test")||e.length>0&&(e.endsWith(".js")||e.endsWith(".cjs")||e.endsWith(".mjs"))||f6t(n)?"development":t.includes("/node_modules/")&&t.includes("/@zenku/")&&t.includes("/cli-")?"npm-managed":t.includes("/apps/zenku-cli/")||t.includes("/apps\\zenku-cli\\")?"development":"standalone"}function wR(t){return t==="bundle"?{command:"npm update -g @zenku/cli-node",message:"Self-upgrade is not available in bundle mode. Update via npm: npm update -g @zenku/cli-node"}:t==="npm-managed"?{command:"npm update -g @zenku/cli",message:"This install is npm-managed. Update via npm: npm update -g @zenku/cli"}:t==="development"?{command:"pnpm --filter @hikari/zenku-cli compile",message:"Development/test builds are not self-updated. Rebuild locally: pnpm --filter @hikari/zenku-cli compile"}:{command:"zenku upgrade",message:"Run `zenku upgrade` to install the latest binary."}}import{execFileSync as vPe}from"node:child_process";import{createHash as m6t}from"node:crypto";import{accessSync as h6t,chmodSync as g6t,constants as A6t,copyFileSync as _6t,existsSync as y6t,mkdtempSync as E6t,readFileSync as b6t,renameSync as v6t,rmSync as S6t,unlinkSync as C6t,writeFileSync as T6t}from"node:fs";import{tmpdir as I6t}from"node:os";import{dirname as Gse,join as I$}from"node:path";function w6t(t){let e=t.trim().split(/\s+/)[0]??"",n=e.indexOf("-");if(n<=0||n>=e.length-1)throw new Error("invalid integrity format");let r=e.slice(0,n),i=e.slice(n+1);return{algo:r,hash:i}}function x6t(t,e){let{algo:n,hash:r}=w6t(e),i=b6t(t);if(m6t(n).update(i).digest("base64")!==r)throw new Error("checksum mismatch")}function SPe(t){try{return h6t(t,A6t.W_OK),!0}catch{return!1}}function D6t(t,e){let n=Gse(e),r=I$(n,`.zenku-upgrade-${process.pid}`);_6t(t,r),g6t(r,493);try{v6t(r,e)}catch{try{C6t(r)}catch{}throw new Error(`failed to replace binary at ${e}`)}}async function R6t(t,e){let n=await fetch(t);if(!n.ok)throw new Error(`download failed: HTTP ${n.status}`);let r=Buffer.from(await n.arrayBuffer());T6t(e,r)}function CPe(t){return SPe(Gse(t))}async function w$(t,e,n){let r=`${t.version}.tgz`,i=E6t(I$(I6t(),"zenku-upgrade-")),a=I$(i,r);try{await R6t(t.tarball,a),x6t(a,t.integrity),vPe("tar",["xzf",a,"-C",i],{stdio:"pipe"});let o=I$(i,"package","zenku");if(!y6t(o))throw new Error("downloaded package is missing binary");let s=Gse(e);if(SPe(s)){D6t(o,e);return}if(!n.allowSudo)throw new Error(`no write permission for ${s}`);vPe("sudo",["install","-m","755",o,e],{stdio:"inherit"})}finally{S6t(i,{recursive:!0,force:!0})}}var TPe="https://registry.npmjs.org",N6t=15e3;async function IPe(t){let e=new AbortController,n=setTimeout(()=>e.abort(),N6t);try{let r=await fetch(t,{signal:e.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);return await r.json()}catch(r){throw r instanceof DOMException&&r.name==="AbortError"?new Error("request timed out"):r}finally{clearTimeout(n)}}function wPe(t,e){if(!t.version)throw new Error(`registry response missing version for tag "${e}"`);if(!t.dist?.tarball)throw new Error(`registry response missing dist.tarball for v${t.version}`);if(!t.dist?.integrity)throw new Error(`registry response missing dist.integrity for v${t.version}`);return{version:t.version,tarball:t.dist.tarball,integrity:t.dist.integrity,tag:e}}async function x$(t,e){let n=bPe(t),r=encodeURIComponent(n),i=e==="stable"?"stable":"latest";try{let a=await IPe(`${TPe}/${r}/${i}`);return wPe(a,i)}catch(a){if(e==="stable"){let o=await IPe(`${TPe}/${r}/latest`);return wPe(o,"latest")}throw a}}function O6t(){try{let t=sf(),{effective:e}=f2(t,void 0);return e.channel}catch{return"latest"}}function k6t(t){return t==="bundle"?"cli-node":C$()}function xPe(t){t.addCommand(new Jn("upgrade").description("Upgrade zenku to the latest version").action(async()=>{let e=T$(),n=wR(e),r=T2(),i=O6t();if(e==="development"){Nt({json:()=>({mode:e,message:n.message,previous:r,latest:r,upgraded:!1,command:n.command}),human:()=>{mn("%s",n.message)}});return}let a=k6t(e),o=await dn("Checking for updates...",()=>x$(a,i));if(r===o.version){let s=`Already up to date (v${r}).`;Nt({json:()=>({previous:r,latest:o.version,upgraded:!1,mode:e,message:s}),human:()=>mn("%s",s)});return}if(e!=="standalone"){Nt({json:()=>({previous:r,latest:o.version,upgraded:!1,mode:e,command:n.command,message:n.message}),human:()=>{mn("v%s -> v%s",r,o.version),mn("%s",n.message),mn("Run: %s",n.command)}});return}mn("v%s -> v%s",r,o.version),await dn(`Downloading v${o.version}...`,async()=>{await w$(o,process.execPath,{allowSudo:!0})}),Nt({json:()=>({previous:r,latest:o.version,upgraded:!0,mode:e}),human:()=>mn("Upgraded zenku to v%s.",o.version)})}))}function B6t(t){return{name:t.name(),description:t.description??"",required:t.required,variadic:t.variadic,defaultValue:t.defaultValue}}function M6t(t){return{name:t.name(),flags:t.flags,description:t.description??"",short:t.short,long:t.long,required:t.required,optional:t.optional,variadic:t.variadic,mandatory:t.mandatory,defaultValue:t.defaultValue}}function DPe(t,e){let n=[...e,t.name()].filter(Boolean),r=t.commands.map(i=>DPe(i,n)).sort((i,a)=>i.commandPath.localeCompare(a.commandPath));return{name:t.name(),commandPath:n.join(" "),summary:t.summary(),description:t.description(),aliases:t.aliases(),usage:t.usage(),arguments:t.registeredArguments.map(B6t),options:t.options.filter(i=>i.long!=="--help").map(M6t),subcommands:r}}function RPe(t){let e=new Jn("meta").description("Machine-readable metadata for CLI integrations");e.command("commands").description("Print CLI command tree metadata").action(()=>{Nt({json:()=>DPe(t,[]),human:()=>{process.stdout.write("Use `zenku --json meta commands` for command metadata.\n")}})}),t.addCommand(e)}import{randomUUID as JGe}from"node:crypto";import LFt from"node:http";var Ki;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function n(i){throw new Error}t.assertNever=n,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=r,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Ki||(Ki={}));var NPe;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(NPe||(NPe={}));var zn=Ki.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),db=t=>{switch(typeof t){case"undefined":return zn.undefined;case"string":return zn.string;case"number":return Number.isNaN(t)?zn.nan:zn.number;case"boolean":return zn.boolean;case"function":return zn.function;case"bigint":return zn.bigint;case"symbol":return zn.symbol;case"object":return Array.isArray(t)?zn.array:t===null?zn.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?zn.promise:typeof Map<"u"&&t instanceof Map?zn.map:typeof Set<"u"&&t instanceof Set?zn.set:typeof Date<"u"&&t instanceof Date?zn.date:zn.object;default:return zn.unknown}};var en=Ki.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var dh=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){let n=e||function(a){return a.message},r={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let s=r,l=0;for(;l<o.path.length;){let u=o.path[l];l===o.path.length-1?(s[u]=s[u]||{_errors:[]},s[u]._errors.push(n(o))):s[u]=s[u]||{_errors:[]},s=s[u],l++}}};return i(this),r}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ki.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=n=>n.message){let n=Object.create(null),r=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];n[a]=n[a]||[],n[a].push(e(i))}else r.push(e(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};dh.create=t=>new dh(t);var P6t=(t,e)=>{let n;switch(t.code){case en.invalid_type:t.received===zn.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case en.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,Ki.jsonStringifyReplacer)}`;break;case en.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ki.joinValues(t.keys,", ")}`;break;case en.invalid_union:n="Invalid input";break;case en.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ki.joinValues(t.options)}`;break;case en.invalid_enum_value:n=`Invalid enum value. Expected ${Ki.joinValues(t.options)}, received '${t.received}'`;break;case en.invalid_arguments:n="Invalid function arguments";break;case en.invalid_return_type:n="Invalid function return type";break;case en.invalid_date:n="Invalid date";break;case en.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:Ki.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case en.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case en.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case en.custom:n="Invalid input";break;case en.invalid_intersection_types:n="Intersection results could not be merged";break;case en.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case en.not_finite:n="Number must be finite";break;default:n=e.defaultError,Ki.assertNever(t)}return{message:n}},I2=P6t;var L6t=I2;function qk(){return L6t}var D$=t=>{let{data:e,path:n,errorMaps:r,issueData:i}=t,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function Dn(t,e){let n=qk(),r=D$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===I2?void 0:I2].filter(i=>!!i)});t.common.issues.push(r)}var gp=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){let r=[];for(let i of n){if(i.status==="aborted")return xr;i.status==="dirty"&&e.dirty(),r.push(i.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){let r=[];for(let i of n){let a=await i.key,o=await i.value;r.push({key:a,value:o})}return t.mergeObjectSync(e,r)}static mergeObjectSync(e,n){let r={};for(let i of n){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return xr;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[a.value]=o.value)}return{status:e.value,value:r}}},xr=Object.freeze({status:"aborted"}),xR=t=>({status:"dirty",value:t}),pf=t=>({status:"valid",value:t}),Hse=t=>t.status==="aborted",$se=t=>t.status==="dirty",aw=t=>t.status==="valid",Vk=t=>typeof Promise<"u"&&t instanceof Promise;var nr;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(nr||(nr={}));var Gg=class{constructor(e,n,r,i){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},OPe=(t,e)=>{if(aw(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new dh(t.common.issues);return this._error=n,this._error}}};function si(t){if(!t)return{};let{errorMap:e,invalid_type_error:n,required_error:r,description:i}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??s.defaultError}:typeof s.data>"u"?{message:l??r??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:l??n??s.defaultError}},description:i}}var Ci=class{get description(){return this._def.description}_getType(e){return db(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:db(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new gp,ctx:{common:e.parent.common,data:e.data,parsedType:db(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let n=this._parse(e);if(Vk(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){let n=this._parse(e);return Promise.resolve(n)}parse(e,n){let r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)},i=this._parseSync({data:e,path:r.path,parent:r});return OPe(r,i)}"~validate"(e){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:n});return aw(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>aw(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(e,n){let r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)},i=this._parse({data:e,path:r.path,parent:r}),a=await(Vk(i)?i:Promise.resolve(i));return OPe(r,a)}refine(e,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:en.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(l=>l?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,n){return this._refinement((r,i)=>e(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(e){return new IA({schema:this,typeName:Sr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return TA.create(this,this._def)}nullable(){return mb.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return x2.create(this)}promise(){return ow.create(this,this._def)}or(e){return kR.create([this,e],this._def)}and(e){return BR.create(this,e,this._def)}transform(e){return new IA({...si(this._def),schema:this,typeName:Sr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let n=typeof e=="function"?e:()=>e;return new UR({...si(this._def),innerType:this,defaultValue:n,typeName:Sr.ZodDefault})}brand(){return new R$({typeName:Sr.ZodBranded,type:this,...si(this._def)})}catch(e){let n=typeof e=="function"?e:()=>e;return new zR({...si(this._def),innerType:this,catchValue:n,typeName:Sr.ZodCatch})}describe(e){let n=this.constructor;return new n({...this._def,description:e})}pipe(e){return N$.create(this,e)}readonly(){return QR.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},F6t=/^c[^\s-]{8,}$/i,U6t=/^[0-9a-z]+$/,z6t=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Q6t=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,G6t=/^[a-z0-9_-]{21}$/i,H6t=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$6t=/^[-+]?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)?)??$/,j6t=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,q6t="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jse,V6t=/^(?:(?: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])$/,Y6t=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,K6t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,W6t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Z6t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,J6t=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,kPe="((\\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])))",X6t=new RegExp(`^${kPe}$`);function BPe(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function eNt(t){return new RegExp(`^${BPe(t)}$`)}function tNt(t){let e=`${kPe}T${BPe(t)}`,n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function nNt(t,e){return!!((e==="v4"||!e)&&V6t.test(t)||(e==="v6"||!e)&&K6t.test(t))}function rNt(t,e){if(!H6t.test(t))return!1;try{let[n]=t.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function iNt(t,e){return!!((e==="v4"||!e)&&Y6t.test(t)||(e==="v6"||!e)&&W6t.test(t))}var RR=class t extends Ci{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==zn.string){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.string,received:a.parsedType}),xr}let r=new gp,i;for(let a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="max")e.data.length>a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.length<a.value;(o||s)&&(i=this._getOrReturnCtx(e,i),o?Dn(i,{code:en.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):s&&Dn(i,{code:en.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),r.dirty())}else if(a.kind==="email")j6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"email",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="emoji")jse||(jse=new RegExp(q6t,"u")),jse.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"emoji",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="uuid")Q6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"uuid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="nanoid")G6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"nanoid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid")F6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cuid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid2")U6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cuid2",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="ulid")z6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"ulid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),Dn(i,{validation:"url",code:en.invalid_string,message:a.message}),r.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"regex",code:en.invalid_string,message:a.message}),r.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),r.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{startsWith:a.value},message:a.message}),r.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{endsWith:a.value},message:a.message}),r.dirty()):a.kind==="datetime"?tNt(a).test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"datetime",message:a.message}),r.dirty()):a.kind==="date"?X6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"date",message:a.message}),r.dirty()):a.kind==="time"?eNt(a).test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"time",message:a.message}),r.dirty()):a.kind==="duration"?$6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"duration",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="ip"?nNt(e.data,a.version)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"ip",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="jwt"?rNt(e.data,a.alg)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"jwt",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="cidr"?iNt(e.data,a.version)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cidr",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="base64"?Z6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"base64",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="base64url"?J6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"base64url",code:en.invalid_string,message:a.message}),r.dirty()):Ki.assertNever(a);return{status:r.value,value:e.data}}_regex(e,n,r){return this.refinement(i=>e.test(i),{validation:n,code:en.invalid_string,...nr.errToObj(r)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...nr.errToObj(e)})}url(e){return this._addCheck({kind:"url",...nr.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...nr.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...nr.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...nr.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...nr.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...nr.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...nr.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...nr.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...nr.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...nr.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...nr.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...nr.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...nr.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...nr.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...nr.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...nr.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n?.position,...nr.errToObj(n?.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...nr.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...nr.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...nr.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...nr.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...nr.errToObj(n)})}nonempty(e){return this.min(1,nr.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};RR.create=t=>new RR({checks:[],typeName:Sr.ZodString,coerce:t?.coerce??!1,...si(t)});function aNt(t,e){let n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=n>r?n:r,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var Yk=class t extends Ci{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==zn.number){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.number,received:a.parsedType}),xr}let r,i=new gp;for(let a of this._def.checks)a.kind==="int"?Ki.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?aNt(e.data,a.value)!==0&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_finite,message:a.message}),i.dirty()):Ki.assertNever(a);return{status:i.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,nr.toString(n))}gt(e,n){return this.setLimit("min",e,!1,nr.toString(n))}lte(e,n){return this.setLimit("max",e,!0,nr.toString(n))}lt(e,n){return this.setLimit("max",e,!1,nr.toString(n))}setLimit(e,n,r,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:nr.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:nr.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:nr.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:nr.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:nr.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:nr.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:nr.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:nr.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:nr.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:nr.toString(e)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Ki.isInteger(e.value))}get isFinite(){let e=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(n)&&Number.isFinite(e)}};Yk.create=t=>new Yk({checks:[],typeName:Sr.ZodNumber,coerce:t?.coerce||!1,...si(t)});var Kk=class t extends Ci{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==zn.bigint)return this._getInvalidInput(e);let r,i=new gp;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Ki.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let n=this._getOrReturnCtx(e);return Dn(n,{code:en.invalid_type,expected:zn.bigint,received:n.parsedType}),xr}gte(e,n){return this.setLimit("min",e,!0,nr.toString(n))}gt(e,n){return this.setLimit("min",e,!1,nr.toString(n))}lte(e,n){return this.setLimit("max",e,!0,nr.toString(n))}lt(e,n){return this.setLimit("max",e,!1,nr.toString(n))}setLimit(e,n,r,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:nr.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:nr.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:nr.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:nr.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:nr.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:nr.toString(n)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};Kk.create=t=>new Kk({checks:[],typeName:Sr.ZodBigInt,coerce:t?.coerce??!1,...si(t)});var Wk=class extends Ci{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==zn.boolean){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.boolean,received:r.parsedType}),xr}return pf(e.data)}};Wk.create=t=>new Wk({typeName:Sr.ZodBoolean,coerce:t?.coerce||!1,...si(t)});var Zk=class t extends Ci{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==zn.date){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.date,received:a.parsedType}),xr}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_date}),xr}let r=new gp,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),r.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),r.dirty()):Ki.assertNever(a);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:nr.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:nr.toString(n)})}get minDate(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e!=null?new Date(e):null}};Zk.create=t=>new Zk({checks:[],coerce:t?.coerce||!1,typeName:Sr.ZodDate,...si(t)});var Jk=class extends Ci{_parse(e){if(this._getType(e)!==zn.symbol){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.symbol,received:r.parsedType}),xr}return pf(e.data)}};Jk.create=t=>new Jk({typeName:Sr.ZodSymbol,...si(t)});var NR=class extends Ci{_parse(e){if(this._getType(e)!==zn.undefined){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.undefined,received:r.parsedType}),xr}return pf(e.data)}};NR.create=t=>new NR({typeName:Sr.ZodUndefined,...si(t)});var OR=class extends Ci{_parse(e){if(this._getType(e)!==zn.null){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.null,received:r.parsedType}),xr}return pf(e.data)}};OR.create=t=>new OR({typeName:Sr.ZodNull,...si(t)});var Xk=class extends Ci{constructor(){super(...arguments),this._any=!0}_parse(e){return pf(e.data)}};Xk.create=t=>new Xk({typeName:Sr.ZodAny,...si(t)});var w2=class extends Ci{constructor(){super(...arguments),this._unknown=!0}_parse(e){return pf(e.data)}};w2.create=t=>new w2({typeName:Sr.ZodUnknown,...si(t)});var L0=class extends Ci{_parse(e){let n=this._getOrReturnCtx(e);return Dn(n,{code:en.invalid_type,expected:zn.never,received:n.parsedType}),xr}};L0.create=t=>new L0({typeName:Sr.ZodNever,...si(t)});var e8=class extends Ci{_parse(e){if(this._getType(e)!==zn.undefined){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.void,received:r.parsedType}),xr}return pf(e.data)}};e8.create=t=>new e8({typeName:Sr.ZodVoid,...si(t)});var x2=class t extends Ci{_parse(e){let{ctx:n,status:r}=this._processInputParams(e),i=this._def;if(n.parsedType!==zn.array)return Dn(n,{code:en.invalid_type,expected:zn.array,received:n.parsedType}),xr;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,s=n.data.length<i.exactLength.value;(o||s)&&(Dn(n,{code:o?en.too_big:en.too_small,minimum:s?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&n.data.length<i.minLength.value&&(Dn(n,{code:en.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&n.data.length>i.maxLength.value&&(Dn(n,{code:en.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,s)=>i.type._parseAsync(new Gg(n,o,n.path,s)))).then(o=>gp.mergeArray(r,o));let a=[...n.data].map((o,s)=>i.type._parseSync(new Gg(n,o,n.path,s)));return gp.mergeArray(r,a)}get element(){return this._def.type}min(e,n){return new t({...this._def,minLength:{value:e,message:nr.toString(n)}})}max(e,n){return new t({...this._def,maxLength:{value:e,message:nr.toString(n)}})}length(e,n){return new t({...this._def,exactLength:{value:e,message:nr.toString(n)}})}nonempty(e){return this.min(1,e)}};x2.create=(t,e)=>new x2({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Sr.ZodArray,...si(e)});function DR(t){if(t instanceof ph){let e={};for(let n in t.shape){let r=t.shape[n];e[n]=TA.create(DR(r))}return new ph({...t._def,shape:()=>e})}else return t instanceof x2?new x2({...t._def,type:DR(t.element)}):t instanceof TA?TA.create(DR(t.unwrap())):t instanceof mb?mb.create(DR(t.unwrap())):t instanceof fb?fb.create(t.items.map(e=>DR(e))):t}var ph=class t extends Ci{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),n=Ki.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==zn.object){let u=this._getOrReturnCtx(e);return Dn(u,{code:en.invalid_type,expected:zn.object,received:u.parsedType}),xr}let{status:r,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof L0&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let l=[];for(let u of o){let p=a[u],f=i.data[u];l.push({key:{status:"valid",value:u},value:p._parse(new Gg(i,f,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof L0){let u=this._def.unknownKeys;if(u==="passthrough")for(let p of s)l.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(u==="strict")s.length>0&&(Dn(i,{code:en.unrecognized_keys,keys:s}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let p of s){let f=i.data[p];l.push({key:{status:"valid",value:p},value:u._parse(new Gg(i,f,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let p of l){let f=await p.key,h=await p.value;u.push({key:f,value:h,alwaysSet:p.alwaysSet})}return u}).then(u=>gp.mergeObjectSync(r,u)):gp.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(e){return nr.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:nr.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Sr.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let n={};for(let r of Ki.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}omit(e){let n={};for(let r of Ki.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}deepPartial(){return DR(this)}partial(e){let n={};for(let r of Ki.objectKeys(this.shape)){let i=this.shape[r];e&&!e[r]?n[r]=i:n[r]=i.optional()}return new t({...this._def,shape:()=>n})}required(e){let n={};for(let r of Ki.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let a=this.shape[r];for(;a instanceof TA;)a=a._def.innerType;n[r]=a}return new t({...this._def,shape:()=>n})}keyof(){return MPe(Ki.objectKeys(this.shape))}};ph.create=(t,e)=>new ph({shape:()=>t,unknownKeys:"strip",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});ph.strictCreate=(t,e)=>new ph({shape:()=>t,unknownKeys:"strict",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});ph.lazycreate=(t,e)=>new ph({shape:t,unknownKeys:"strip",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});var kR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return n.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new dh(s.ctx.common.issues));return Dn(n,{code:en.invalid_union,unionErrors:o}),xr}if(n.common.async)return Promise.all(r.map(async a=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await a._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let a,o=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},p=l._parseSync({data:n.data,path:n.path,parent:u});if(p.status==="valid")return p;p.status==="dirty"&&!a&&(a={result:p,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return n.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(l=>new dh(l));return Dn(n,{code:en.invalid_union,unionErrors:s}),xr}}get options(){return this._def.options}};kR.create=(t,e)=>new kR({options:t,typeName:Sr.ZodUnion,...si(e)});var pb=t=>t instanceof MR?pb(t.schema):t instanceof IA?pb(t.innerType()):t instanceof PR?[t.value]:t instanceof LR?t.options:t instanceof FR?Ki.objectValues(t.enum):t instanceof UR?pb(t._def.innerType):t instanceof NR?[void 0]:t instanceof OR?[null]:t instanceof TA?[void 0,...pb(t.unwrap())]:t instanceof mb?[null,...pb(t.unwrap())]:t instanceof R$||t instanceof QR?pb(t.unwrap()):t instanceof zR?pb(t._def.innerType):[],qse=class t extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.object)return Dn(n,{code:en.invalid_type,expected:zn.object,received:n.parsedType}),xr;let r=this.discriminator,i=n.data[r],a=this.optionsMap.get(i);return a?n.common.async?a._parseAsync({data:n.data,path:n.path,parent:n}):a._parseSync({data:n.data,path:n.path,parent:n}):(Dn(n,{code:en.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),xr)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){let i=new Map;for(let a of n){let o=pb(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:Sr.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:i,...si(r)})}};function Vse(t,e){let n=db(t),r=db(e);if(t===e)return{valid:!0,data:t};if(n===zn.object&&r===zn.object){let i=Ki.objectKeys(e),a=Ki.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let l=Vse(t[s],e[s]);if(!l.valid)return{valid:!1};o[s]=l.data}return{valid:!0,data:o}}else if(n===zn.array&&r===zn.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a<t.length;a++){let o=t[a],s=e[a],l=Vse(o,s);if(!l.valid)return{valid:!1};i.push(l.data)}return{valid:!0,data:i}}else return n===zn.date&&r===zn.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var BR=class extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e),i=(a,o)=>{if(Hse(a)||Hse(o))return xr;let s=Vse(a.value,o.value);return s.valid?(($se(a)||$se(o))&&n.dirty(),{status:n.value,value:s.data}):(Dn(r,{code:en.invalid_intersection_types}),xr)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([a,o])=>i(a,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};BR.create=(t,e,n)=>new BR({left:t,right:e,typeName:Sr.ZodIntersection,...si(n)});var fb=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.array)return Dn(r,{code:en.invalid_type,expected:zn.array,received:r.parsedType}),xr;if(r.data.length<this._def.items.length)return Dn(r,{code:en.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),xr;!this._def.rest&&r.data.length>this._def.items.length&&(Dn(r,{code:en.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let a=[...r.data].map((o,s)=>{let l=this._def.items[s]||this._def.rest;return l?l._parse(new Gg(r,o,r.path,s)):null}).filter(o=>!!o);return r.common.async?Promise.all(a).then(o=>gp.mergeArray(n,o)):gp.mergeArray(n,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};fb.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new fb({items:t,typeName:Sr.ZodTuple,rest:null,...si(e)})};var Yse=class t extends Ci{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.object)return Dn(r,{code:en.invalid_type,expected:zn.object,received:r.parsedType}),xr;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in r.data)i.push({key:a._parse(new Gg(r,s,r.path,s)),value:o._parse(new Gg(r,r.data[s],r.path,s)),alwaysSet:s in r.data});return r.common.async?gp.mergeObjectAsync(n,i):gp.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof Ci?new t({keyType:e,valueType:n,typeName:Sr.ZodRecord,...si(r)}):new t({keyType:RR.create(),valueType:e,typeName:Sr.ZodRecord,...si(n)})}},t8=class extends Ci{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.map)return Dn(r,{code:en.invalid_type,expected:zn.map,received:r.parsedType}),xr;let i=this._def.keyType,a=this._def.valueType,o=[...r.data.entries()].map(([s,l],u)=>({key:i._parse(new Gg(r,s,r.path,[u,"key"])),value:a._parse(new Gg(r,l,r.path,[u,"value"]))}));if(r.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let l of o){let u=await l.key,p=await l.value;if(u.status==="aborted"||p.status==="aborted")return xr;(u.status==="dirty"||p.status==="dirty")&&n.dirty(),s.set(u.value,p.value)}return{status:n.value,value:s}})}else{let s=new Map;for(let l of o){let u=l.key,p=l.value;if(u.status==="aborted"||p.status==="aborted")return xr;(u.status==="dirty"||p.status==="dirty")&&n.dirty(),s.set(u.value,p.value)}return{status:n.value,value:s}}}};t8.create=(t,e,n)=>new t8({valueType:e,keyType:t,typeName:Sr.ZodMap,...si(n)});var n8=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.set)return Dn(r,{code:en.invalid_type,expected:zn.set,received:r.parsedType}),xr;let i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(Dn(r,{code:en.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),n.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(Dn(r,{code:en.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let a=this._def.valueType;function o(l){let u=new Set;for(let p of l){if(p.status==="aborted")return xr;p.status==="dirty"&&n.dirty(),u.add(p.value)}return{status:n.value,value:u}}let s=[...r.data.values()].map((l,u)=>a._parse(new Gg(r,l,r.path,u)));return r.common.async?Promise.all(s).then(l=>o(l)):o(s)}min(e,n){return new t({...this._def,minSize:{value:e,message:nr.toString(n)}})}max(e,n){return new t({...this._def,maxSize:{value:e,message:nr.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}};n8.create=(t,e)=>new n8({valueType:t,minSize:null,maxSize:null,typeName:Sr.ZodSet,...si(e)});var Kse=class t extends Ci{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.function)return Dn(n,{code:en.invalid_type,expected:zn.function,received:n.parsedType}),xr;function r(s,l){return D$({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,qk(),I2].filter(u=>!!u),issueData:{code:en.invalid_arguments,argumentsError:l}})}function i(s,l){return D$({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,qk(),I2].filter(u=>!!u),issueData:{code:en.invalid_return_type,returnTypeError:l}})}let a={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof ow){let s=this;return pf(async function(...l){let u=new dh([]),p=await s._def.args.parseAsync(l,a).catch(_=>{throw u.addIssue(r(l,_)),u}),f=await Reflect.apply(o,this,p);return await s._def.returns._def.type.parseAsync(f,a).catch(_=>{throw u.addIssue(i(f,_)),u})})}else{let s=this;return pf(function(...l){let u=s._def.args.safeParse(l,a);if(!u.success)throw new dh([r(l,u.error)]);let p=Reflect.apply(o,this,u.data),f=s._def.returns.safeParse(p,a);if(!f.success)throw new dh([i(p,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:fb.create(e).rest(w2.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new t({args:e||fb.create([]).rest(w2.create()),returns:n||w2.create(),typeName:Sr.ZodFunction,...si(r)})}},MR=class extends Ci{get schema(){return this._def.getter()}_parse(e){let{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};MR.create=(t,e)=>new MR({getter:t,typeName:Sr.ZodLazy,...si(e)});var PR=class extends Ci{_parse(e){if(e.data!==this._def.value){let n=this._getOrReturnCtx(e);return Dn(n,{received:n.data,code:en.invalid_literal,expected:this._def.value}),xr}return{status:"valid",value:e.data}}get value(){return this._def.value}};PR.create=(t,e)=>new PR({value:t,typeName:Sr.ZodLiteral,...si(e)});function MPe(t,e){return new LR({values:t,typeName:Sr.ZodEnum,...si(e)})}var LR=class t extends Ci{_parse(e){if(typeof e.data!="string"){let n=this._getOrReturnCtx(e),r=this._def.values;return Dn(n,{expected:Ki.joinValues(r),received:n.parsedType,code:en.invalid_type}),xr}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let n=this._getOrReturnCtx(e),r=this._def.values;return Dn(n,{received:n.data,code:en.invalid_enum_value,options:r}),xr}return pf(e.data)}get options(){return this._def.values}get enum(){let e={};for(let n of this._def.values)e[n]=n;return e}get Values(){let e={};for(let n of this._def.values)e[n]=n;return e}get Enum(){let e={};for(let n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return t.create(e,{...this._def,...n})}exclude(e,n=this._def){return t.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}};LR.create=MPe;var FR=class extends Ci{_parse(e){let n=Ki.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==zn.string&&r.parsedType!==zn.number){let i=Ki.objectValues(n);return Dn(r,{expected:Ki.joinValues(i),received:r.parsedType,code:en.invalid_type}),xr}if(this._cache||(this._cache=new Set(Ki.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ki.objectValues(n);return Dn(r,{received:r.data,code:en.invalid_enum_value,options:i}),xr}return pf(e.data)}get enum(){return this._def.values}};FR.create=(t,e)=>new FR({values:t,typeName:Sr.ZodNativeEnum,...si(e)});var ow=class extends Ci{unwrap(){return this._def.type}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.promise&&n.common.async===!1)return Dn(n,{code:en.invalid_type,expected:zn.promise,received:n.parsedType}),xr;let r=n.parsedType===zn.promise?n.data:Promise.resolve(n.data);return pf(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ow.create=(t,e)=>new ow({type:t,typeName:Sr.ZodPromise,...si(e)});var IA=class extends Ci{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Sr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:n,ctx:r}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{Dn(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(r.data,a);if(r.common.async)return Promise.resolve(o).then(async s=>{if(n.value==="aborted")return xr;let l=await this._def.schema._parseAsync({data:s,path:r.path,parent:r});return l.status==="aborted"?xr:l.status==="dirty"?xR(l.value):n.value==="dirty"?xR(l.value):l});{if(n.value==="aborted")return xr;let s=this._def.schema._parseSync({data:o,path:r.path,parent:r});return s.status==="aborted"?xr:s.status==="dirty"?xR(s.value):n.value==="dirty"?xR(s.value):s}}if(i.type==="refinement"){let o=s=>{let l=i.refinement(s,a);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(r.common.async===!1){let s=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?xr:(s.status==="dirty"&&n.dirty(),o(s.value),{status:n.value,value:s.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(s=>s.status==="aborted"?xr:(s.status==="dirty"&&n.dirty(),o(s.value).then(()=>({status:n.value,value:s.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!aw(o))return xr;let s=i.transform(o.value,a);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:s}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>aw(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:n.value,value:s})):xr);Ki.assertNever(i)}};IA.create=(t,e,n)=>new IA({schema:t,typeName:Sr.ZodEffects,effect:e,...si(n)});IA.createWithPreprocess=(t,e,n)=>new IA({schema:e,effect:{type:"preprocess",transform:t},typeName:Sr.ZodEffects,...si(n)});var TA=class extends Ci{_parse(e){return this._getType(e)===zn.undefined?pf(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};TA.create=(t,e)=>new TA({innerType:t,typeName:Sr.ZodOptional,...si(e)});var mb=class extends Ci{_parse(e){return this._getType(e)===zn.null?pf(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};mb.create=(t,e)=>new mb({innerType:t,typeName:Sr.ZodNullable,...si(e)});var UR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return n.parsedType===zn.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};UR.create=(t,e)=>new UR({innerType:t,typeName:Sr.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...si(e)});var zR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Vk(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new dh(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new dh(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};zR.create=(t,e)=>new zR({innerType:t,typeName:Sr.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...si(e)});var r8=class extends Ci{_parse(e){if(this._getType(e)!==zn.nan){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.nan,received:r.parsedType}),xr}return{status:"valid",value:e.data}}};r8.create=t=>new r8({typeName:Sr.ZodNaN,...si(t)});var R$=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},N$=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?xr:a.status==="dirty"?(n.dirty(),xR(a.value)):this._def.out._parseAsync({data:a.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?xr:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(e,n){return new t({in:e,out:n,typeName:Sr.ZodPipeline})}},QR=class extends Ci{_parse(e){let n=this._def.innerType._parse(e),r=i=>(aw(i)&&(i.value=Object.freeze(i.value)),i);return Vk(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};QR.create=(t,e)=>new QR({innerType:t,typeName:Sr.ZodReadonly,...si(e)});var IDn={object:ph.lazycreate},Sr;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Sr||(Sr={}));var wDn=RR.create,xDn=Yk.create,DDn=r8.create,RDn=Kk.create,NDn=Wk.create,ODn=Zk.create,kDn=Jk.create,BDn=NR.create,MDn=OR.create,PDn=Xk.create,LDn=w2.create,FDn=L0.create,UDn=e8.create,zDn=x2.create,oNt=ph.create,QDn=ph.strictCreate,GDn=kR.create,HDn=qse.create,$Dn=BR.create,jDn=fb.create,qDn=Yse.create,VDn=t8.create,YDn=n8.create,KDn=Kse.create,WDn=MR.create,ZDn=PR.create,JDn=LR.create,XDn=FR.create,e4n=ow.create,t4n=IA.create,n4n=TA.create,r4n=mb.create,i4n=IA.createWithPreprocess,a4n=N$.create;function GR(t){return!!t._zod}function D2(t,e){return GR(t)?uI(t,e):t.safeParse(e)}function O$(t){if(!t)return;let e;if(GR(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function FPe(t){if(GR(t)){let a=t._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}let n=t._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=t.value;if(r!==void 0)return r}var Zse="2025-11-25",UPe="2025-03-26",i8=[Zse,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],R2="io.modelcontextprotocol/related-task",B$="2.0",Td=uQ(t=>t!==null&&(typeof t=="object"||typeof t=="function")),zPe=uo([vt(),ka().int()]),QPe=vt(),P4n=yd({ttl:uo([ka(),u4()]).optional(),pollInterval:ka().optional()}),fNt=Ln({ttl:ka().optional()}),mNt=Ln({taskId:vt()}),Jse=yd({progressToken:zPe.optional(),[R2]:mNt.optional()}),fh=Ln({_meta:Jse.optional()}),a8=fh.extend({task:fNt.optional()}),GPe=t=>a8.safeParse(t).success,Id=Ln({method:vt(),params:fh.loose().optional()}),Hg=Ln({_meta:Jse.optional()}),$g=Ln({method:vt(),params:Hg.loose().optional()}),wd=yd({_meta:Jse.optional()}),M$=uo([vt(),ka().int()]),HPe=Ln({jsonrpc:ir(B$),id:M$,...Id.shape}).strict(),N2=t=>HPe.safeParse(t).success,$Pe=Ln({jsonrpc:ir(B$),...$g.shape}).strict(),jPe=t=>$Pe.safeParse(t).success,Xse=Ln({jsonrpc:ir(B$),id:M$,result:wd}).strict(),hb=t=>Xse.safeParse(t).success;var Wi;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Wi||(Wi={}));var ele=Ln({jsonrpc:ir(B$),id:M$.optional(),error:Ln({code:ka().int(),message:vt(),data:xo().optional()})}).strict();var $R=t=>ele.safeParse(t).success;var o8=uo([HPe,$Pe,Xse,ele]),L4n=uo([Xse,ele]),P$=wd.strict(),hNt=Hg.extend({requestId:M$.optional(),reason:vt().optional()}),L$=$g.extend({method:ir("notifications/cancelled"),params:hNt}),gNt=Ln({src:vt(),mimeType:vt().optional(),sizes:bi(vt()).optional(),theme:Ed(["light","dark"]).optional()}),s8=Ln({icons:bi(gNt).optional()}),HR=Ln({name:vt(),title:vt().optional()}),qPe=HR.extend({...HR.shape,...s8.shape,version:vt(),websiteUrl:vt().optional(),description:vt().optional()}),ANt=d4(Ln({applyDefaults:oc().optional()}),Qo(vt(),xo())),_Nt=XO(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,d4(Ln({form:ANt.optional(),url:Td.optional()}),Qo(vt(),xo()).optional())),yNt=yd({list:Td.optional(),cancel:Td.optional(),requests:yd({sampling:yd({createMessage:Td.optional()}).optional(),elicitation:yd({create:Td.optional()}).optional()}).optional()}),ENt=yd({list:Td.optional(),cancel:Td.optional(),requests:yd({tools:yd({call:Td.optional()}).optional()}).optional()}),bNt=Ln({experimental:Qo(vt(),Td).optional(),sampling:Ln({context:Td.optional(),tools:Td.optional()}).optional(),elicitation:_Nt.optional(),roots:Ln({listChanged:oc().optional()}).optional(),tasks:yNt.optional()}),vNt=fh.extend({protocolVersion:vt(),capabilities:bNt,clientInfo:qPe}),F$=Id.extend({method:ir("initialize"),params:vNt}),tle=t=>F$.safeParse(t).success,SNt=Ln({experimental:Qo(vt(),Td).optional(),logging:Td.optional(),completions:Td.optional(),prompts:Ln({listChanged:oc().optional()}).optional(),resources:Ln({subscribe:oc().optional(),listChanged:oc().optional()}).optional(),tools:Ln({listChanged:oc().optional()}).optional(),tasks:ENt.optional()}),CNt=wd.extend({protocolVersion:vt(),capabilities:SNt,serverInfo:qPe,instructions:vt().optional()}),nle=$g.extend({method:ir("notifications/initialized"),params:Hg.optional()});var U$=Id.extend({method:ir("ping"),params:fh.optional()}),TNt=Ln({progress:ka(),total:is(ka()),message:is(vt())}),INt=Ln({...Hg.shape,...TNt.shape,progressToken:zPe}),z$=$g.extend({method:ir("notifications/progress"),params:INt}),wNt=fh.extend({cursor:QPe.optional()}),l8=Id.extend({params:wNt.optional()}),c8=wd.extend({nextCursor:QPe.optional()}),xNt=Ed(["working","input_required","completed","failed","cancelled"]),u8=Ln({taskId:vt(),status:xNt,ttl:uo([ka(),u4()]),createdAt:vt(),lastUpdatedAt:vt(),pollInterval:is(ka()),statusMessage:is(vt())}),jR=wd.extend({task:u8}),DNt=Hg.merge(u8),d8=$g.extend({method:ir("notifications/tasks/status"),params:DNt}),Q$=Id.extend({method:ir("tasks/get"),params:fh.extend({taskId:vt()})}),G$=wd.merge(u8),H$=Id.extend({method:ir("tasks/result"),params:fh.extend({taskId:vt()})}),F4n=wd.loose(),$$=l8.extend({method:ir("tasks/list")}),j$=c8.extend({tasks:bi(u8)}),q$=Id.extend({method:ir("tasks/cancel"),params:fh.extend({taskId:vt()})}),VPe=wd.merge(u8),YPe=Ln({uri:vt(),mimeType:is(vt()),_meta:Qo(vt(),xo()).optional()}),KPe=YPe.extend({text:vt()}),rle=vt().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),WPe=YPe.extend({blob:rle}),p8=Ed(["user","assistant"]),qR=Ln({audience:bi(p8).optional(),priority:ka().min(0).max(1).optional(),lastModified:XS.datetime({offset:!0}).optional()}),ZPe=Ln({...HR.shape,...s8.shape,uri:vt(),description:is(vt()),mimeType:is(vt()),annotations:qR.optional(),_meta:is(yd({}))}),RNt=Ln({...HR.shape,...s8.shape,uriTemplate:vt(),description:is(vt()),mimeType:is(vt()),annotations:qR.optional(),_meta:is(yd({}))}),ile=l8.extend({method:ir("resources/list")}),NNt=c8.extend({resources:bi(ZPe)}),ONt=l8.extend({method:ir("resources/templates/list")}),kNt=c8.extend({resourceTemplates:bi(RNt)}),ale=fh.extend({uri:vt()}),BNt=ale,ole=Id.extend({method:ir("resources/read"),params:BNt}),MNt=wd.extend({contents:bi(uo([KPe,WPe]))}),PNt=$g.extend({method:ir("notifications/resources/list_changed"),params:Hg.optional()}),LNt=ale,FNt=Id.extend({method:ir("resources/subscribe"),params:LNt}),UNt=ale,zNt=Id.extend({method:ir("resources/unsubscribe"),params:UNt}),QNt=Hg.extend({uri:vt()}),GNt=$g.extend({method:ir("notifications/resources/updated"),params:QNt}),HNt=Ln({name:vt(),description:is(vt()),required:is(oc())}),$Nt=Ln({...HR.shape,...s8.shape,description:is(vt()),arguments:is(bi(HNt)),_meta:is(yd({}))}),sle=l8.extend({method:ir("prompts/list")}),jNt=c8.extend({prompts:bi($Nt)}),qNt=fh.extend({name:vt(),arguments:Qo(vt(),vt()).optional()}),lle=Id.extend({method:ir("prompts/get"),params:qNt}),cle=Ln({type:ir("text"),text:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),ule=Ln({type:ir("image"),data:rle,mimeType:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),dle=Ln({type:ir("audio"),data:rle,mimeType:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),VNt=Ln({type:ir("tool_use"),name:vt(),id:vt(),input:Qo(vt(),xo()),_meta:Qo(vt(),xo()).optional()}),YNt=Ln({type:ir("resource"),resource:uo([KPe,WPe]),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),KNt=ZPe.extend({type:ir("resource_link")}),ple=uo([cle,ule,dle,KNt,YNt]),WNt=Ln({role:p8,content:ple}),ZNt=wd.extend({description:vt().optional(),messages:bi(WNt)}),JNt=$g.extend({method:ir("notifications/prompts/list_changed"),params:Hg.optional()}),XNt=Ln({title:vt().optional(),readOnlyHint:oc().optional(),destructiveHint:oc().optional(),idempotentHint:oc().optional(),openWorldHint:oc().optional()}),e9t=Ln({taskSupport:Ed(["required","optional","forbidden"]).optional()}),JPe=Ln({...HR.shape,...s8.shape,description:vt().optional(),inputSchema:Ln({type:ir("object"),properties:Qo(vt(),Td).optional(),required:bi(vt()).optional()}).catchall(xo()),outputSchema:Ln({type:ir("object"),properties:Qo(vt(),Td).optional(),required:bi(vt()).optional()}).catchall(xo()).optional(),annotations:XNt.optional(),execution:e9t.optional(),_meta:Qo(vt(),xo()).optional()}),fle=l8.extend({method:ir("tools/list")}),t9t=c8.extend({tools:bi(JPe)}),V$=wd.extend({content:bi(ple).default([]),structuredContent:Qo(vt(),xo()).optional(),isError:oc().optional()}),U4n=V$.or(wd.extend({toolResult:xo()})),n9t=a8.extend({name:vt(),arguments:Qo(vt(),xo()).optional()}),f8=Id.extend({method:ir("tools/call"),params:n9t}),r9t=$g.extend({method:ir("notifications/tools/list_changed"),params:Hg.optional()}),z4n=Ln({autoRefresh:oc().default(!0),debounceMs:ka().int().nonnegative().default(300)}),m8=Ed(["debug","info","notice","warning","error","critical","alert","emergency"]),i9t=fh.extend({level:m8}),mle=Id.extend({method:ir("logging/setLevel"),params:i9t}),a9t=Hg.extend({level:m8,logger:vt().optional(),data:xo()}),o9t=$g.extend({method:ir("notifications/message"),params:a9t}),s9t=Ln({name:vt().optional()}),l9t=Ln({hints:bi(s9t).optional(),costPriority:ka().min(0).max(1).optional(),speedPriority:ka().min(0).max(1).optional(),intelligencePriority:ka().min(0).max(1).optional()}),c9t=Ln({mode:Ed(["auto","required","none"]).optional()}),u9t=Ln({type:ir("tool_result"),toolUseId:vt().describe("The unique identifier for the corresponding tool call."),content:bi(ple).default([]),structuredContent:Ln({}).loose().optional(),isError:oc().optional(),_meta:Qo(vt(),xo()).optional()}),d9t=WO("type",[cle,ule,dle]),k$=WO("type",[cle,ule,dle,VNt,u9t]),p9t=Ln({role:p8,content:uo([k$,bi(k$)]),_meta:Qo(vt(),xo()).optional()}),f9t=a8.extend({messages:bi(p9t),modelPreferences:l9t.optional(),systemPrompt:vt().optional(),includeContext:Ed(["none","thisServer","allServers"]).optional(),temperature:ka().optional(),maxTokens:ka().int(),stopSequences:bi(vt()).optional(),metadata:Td.optional(),tools:bi(JPe).optional(),toolChoice:c9t.optional()}),m9t=Id.extend({method:ir("sampling/createMessage"),params:f9t}),hle=wd.extend({model:vt(),stopReason:is(Ed(["endTurn","stopSequence","maxTokens"]).or(vt())),role:p8,content:d9t}),gle=wd.extend({model:vt(),stopReason:is(Ed(["endTurn","stopSequence","maxTokens","toolUse"]).or(vt())),role:p8,content:uo([k$,bi(k$)])}),h9t=Ln({type:ir("boolean"),title:vt().optional(),description:vt().optional(),default:oc().optional()}),g9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),minLength:ka().optional(),maxLength:ka().optional(),format:Ed(["email","uri","date","date-time"]).optional(),default:vt().optional()}),A9t=Ln({type:Ed(["number","integer"]),title:vt().optional(),description:vt().optional(),minimum:ka().optional(),maximum:ka().optional(),default:ka().optional()}),_9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),enum:bi(vt()),default:vt().optional()}),y9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),oneOf:bi(Ln({const:vt(),title:vt()})),default:vt().optional()}),E9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),enum:bi(vt()),enumNames:bi(vt()).optional(),default:vt().optional()}),b9t=uo([_9t,y9t]),v9t=Ln({type:ir("array"),title:vt().optional(),description:vt().optional(),minItems:ka().optional(),maxItems:ka().optional(),items:Ln({type:ir("string"),enum:bi(vt())}),default:bi(vt()).optional()}),S9t=Ln({type:ir("array"),title:vt().optional(),description:vt().optional(),minItems:ka().optional(),maxItems:ka().optional(),items:Ln({anyOf:bi(Ln({const:vt(),title:vt()}))}),default:bi(vt()).optional()}),C9t=uo([v9t,S9t]),T9t=uo([E9t,b9t,C9t]),I9t=uo([T9t,h9t,g9t,A9t]),w9t=a8.extend({mode:ir("form").optional(),message:vt(),requestedSchema:Ln({type:ir("object"),properties:Qo(vt(),I9t),required:bi(vt()).optional()})}),x9t=a8.extend({mode:ir("url"),message:vt(),elicitationId:vt(),url:vt().url()}),D9t=uo([w9t,x9t]),R9t=Id.extend({method:ir("elicitation/create"),params:D9t}),N9t=Hg.extend({elicitationId:vt()}),O9t=$g.extend({method:ir("notifications/elicitation/complete"),params:N9t}),Y$=wd.extend({action:Ed(["accept","decline","cancel"]),content:XO(t=>t===null?void 0:t,Qo(vt(),uo([vt(),ka(),oc(),bi(vt())])).optional())}),k9t=Ln({type:ir("ref/resource"),uri:vt()});var B9t=Ln({type:ir("ref/prompt"),name:vt()}),M9t=fh.extend({ref:uo([B9t,k9t]),argument:Ln({name:vt(),value:vt()}),context:Ln({arguments:Qo(vt(),vt()).optional()}).optional()}),P9t=Id.extend({method:ir("completion/complete"),params:M9t});var L9t=wd.extend({completion:yd({values:bi(vt()).max(100),total:is(ka().int()),hasMore:is(oc())})}),F9t=Ln({uri:vt().startsWith("file://"),name:vt().optional(),_meta:Qo(vt(),xo()).optional()}),U9t=Id.extend({method:ir("roots/list"),params:fh.optional()}),Ale=wd.extend({roots:bi(F9t)}),z9t=$g.extend({method:ir("notifications/roots/list_changed"),params:Hg.optional()}),Q4n=uo([U$,F$,P9t,mle,lle,sle,ile,ONt,ole,FNt,zNt,f8,fle,Q$,H$,$$,q$]),G4n=uo([L$,z$,nle,z9t,d8]),H4n=uo([P$,hle,gle,Y$,Ale,G$,j$,jR]),$4n=uo([U$,m9t,R9t,U9t,Q$,H$,$$,q$]),j4n=uo([L$,z$,o9t,GNt,PNt,r9t,JNt,d8,O9t]),q4n=uo([P$,CNt,L9t,ZNt,jNt,NNt,kNt,MNt,V$,t9t,G$,j$,jR]),hi=class t extends Error{constructor(e,n,r){super(`MCP error ${e}: ${n}`),this.code=e,this.data=r,this.name="McpError"}static fromError(e,n,r){if(e===Wi.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Wse(i.elicitations,n)}return new t(e,n,r)}},Wse=class extends hi{constructor(e,n=`URL elicitation${e.length>1?"s":""} required`){super(Wi.UrlElicitationRequired,n,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function O2(t){return t==="completed"||t==="failed"||t==="cancelled"}var IRn=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function _le(t){let n=O$(t)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=FPe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function yle(t,e){let n=D2(t,e);if(!n.success)throw n.error;return n.data}var q9t=6e4,K$=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(L$,n=>{this._oncancel(n)}),this.setNotificationHandler(z$,n=>{this._onprogress(n)}),this.setRequestHandler(U$,n=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Q$,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new hi(Wi.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(H$,async(n,r)=>{let i=async()=>{let a=n.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,r.sessionId);){if(s.type==="response"||s.type==="error"){let l=s.message,u=l.id,p=this._requestResolvers.get(u);if(p)if(this._requestResolvers.delete(u),s.type==="response")p(l);else{let f=l,h=new hi(f.error.code,f.error.message,f.error.data);p(h)}else{let f=s.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(a,r.sessionId);if(!o)throw new hi(Wi.InvalidParams,`Task not found: ${a}`);if(!O2(o.status))return await this._waitForTaskUpdate(a,r.signal),await i();if(O2(o.status)){let s=await this._taskStore.getTaskResult(a,r.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[R2]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler($$,async(n,r)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new hi(Wi.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(q$,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new hi(Wi.InvalidParams,`Task not found: ${n.params.taskId}`);if(O2(i.status))throw new hi(Wi.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let a=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!a)throw new hi(Wi.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof hi?i:new hi(Wi.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,n,r,i,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(e){let n=this._timeoutInfo.get(e);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(e),hi.fromError(Wi.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(e){let n=this._timeoutInfo.get(e);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=a=>{r?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),hb(a)||$R(a)?this._onresponse(a):N2(a)?this._onrequest(a,o):jPe(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=hi.fromError(Wi.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of e.values())r(n)}_onerror(e){this.onerror?.(e)}_onnotification(e){let n=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(e)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(e,n){let r=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,a=e.params?._meta?.[R2]?.taskId;if(r===void 0){let p={jsonrpc:"2.0",id:e.id,error:{code:Wi.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{type:"error",message:p,timestamp:Date.now()},i?.sessionId).catch(f=>this._onerror(new Error(`Failed to enqueue error response: ${f}`))):i?.send(p).catch(f=>this._onerror(new Error(`Failed to send an error response: ${f}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let s=GPe(e.params)?e.params.task:void 0,l=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async p=>{if(o.signal.aborted)return;let f={relatedRequestId:e.id};a&&(f.relatedTask={taskId:a}),await this.notification(p,f)},sendRequest:async(p,f,h)=>{if(o.signal.aborted)throw new hi(Wi.ConnectionClosed,"Request was cancelled");let _={...h,relatedRequestId:e.id};a&&!_.relatedTask&&(_.relatedTask={taskId:a});let y=_.relatedTask?.taskId??a;return y&&l&&await l.updateTaskStatus(y,"input_required"),await this.request(p,f,_)},authInfo:n?.authInfo,requestId:e.id,requestInfo:n?.requestInfo,taskId:a,taskStore:l,taskRequestedTtl:s?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>r(e,u)).then(async p=>{if(o.signal.aborted)return;let f={result:p,jsonrpc:"2.0",id:e.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"response",message:f,timestamp:Date.now()},i?.sessionId):await i?.send(f)},async p=>{if(o.signal.aborted)return;let f={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(p.code)?p.code:Wi.InternalError,message:p.message??"Internal error",...p.data!==void 0&&{data:p.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"error",message:f,timestamp:Date.now()},i?.sessionId):await i?.send(f)}).catch(p=>this._onerror(new Error(`Failed to send response: ${p}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:n,...r}=e.params,i=Number(n),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(l){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(l);return}a(r)}_onresponse(e){let n=Number(e.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),hb(e))r(e);else{let o=new hi(e.error.code,e.error.message,e.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let a=!1;if(hb(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,n))}}if(a||this._progressHandlers.delete(n),hb(e))i(e);else{let o=hi.fromError(e.error.code,e.error.message,e.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(e,n,r)}}catch(o){yield{type:"error",error:o instanceof hi?o:new hi(Wi.InternalError,String(o))}}return}let a;try{let o=await this.request(e,jR,r);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new hi(Wi.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},r);if(yield{type:"taskStatus",task:s},O2(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},n,r)}:s.status==="failed"?yield{type:"error",error:new hi(Wi.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new hi(Wi.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},n,r)};return}let l=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,l)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof hi?o:new hi(Wi.InternalError,String(o))}}}request(e,n,r){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:l}=r??{};return new Promise((u,p)=>{let f=N=>{p(N)};if(!this._transport){f(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(N){f(N);return}r?.signal?.throwIfAborted();let h=this._requestMessageId++,_={...e,jsonrpc:"2.0",id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),_.params={...e.params,_meta:{...e.params?._meta||{},progressToken:h}}),s&&(_.params={..._.params,task:s}),l&&(_.params={..._.params,_meta:{..._.params?._meta||{},[R2]:l}});let y=N=>{this._responseHandlers.delete(h),this._progressHandlers.delete(h),this._cleanupTimeout(h),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(N)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(M=>this._onerror(new Error(`Failed to send cancellation: ${M}`)));let O=N instanceof hi?N:new hi(Wi.RequestTimeout,String(N));p(O)};this._responseHandlers.set(h,N=>{if(!r?.signal?.aborted){if(N instanceof Error)return p(N);try{let O=D2(n,N.result);O.success?u(O.data):p(O.error)}catch(O){p(O)}}}),r?.signal?.addEventListener("abort",()=>{y(r?.signal?.reason)});let E=r?.timeout??q9t,S=()=>y(hi.fromError(Wi.RequestTimeout,"Request timed out",{timeout:E}));this._setupTimeout(h,E,r?.maxTotalTimeout,S,r?.resetTimeoutOnProgress??!1);let T=l?.taskId;if(T){let N=O=>{let M=this._responseHandlers.get(h);M?M(O):this._onerror(new Error(`Response handler missing for side-channeled request ${h}`))};this._requestResolvers.set(h,N),this._enqueueTaskMessage(T,{type:"request",message:_,timestamp:Date.now()}).catch(O=>{this._cleanupTimeout(h),p(O)})}else this._transport.send(_,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(N=>{this._cleanupTimeout(h),p(N)})})}async getTask(e,n){return this.request({method:"tasks/get",params:e},G$,n)}async getTaskResult(e,n,r){return this.request({method:"tasks/result",params:e},n,r)}async listTasks(e,n){return this.request({method:"tasks/list",params:e},j$,n)}async cancelTask(e,n){return this.request({method:"tasks/cancel",params:e},VPe,n)}async notification(e,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let r=n?.relatedTask?.taskId;if(r){let s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[R2]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let s={...e,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[R2]:n.relatedTask}}}),this._transport?.send(s,n).catch(l=>this._onerror(l))});return}let o={...e,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[R2]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(e,n){let r=_le(e);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,a)=>{let o=yle(e,i);return Promise.resolve(n(o,a))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,n){let r=_le(e);this._notificationHandlers.set(r,i=>{let a=yle(e,i);return Promise.resolve(n(a))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let n=this._taskProgressTokens.get(e);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,n,r,i)}async _clearTaskQueue(e,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(e,n);for(let i of r)if(i.type==="request"&&N2(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new hi(Wi.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,a)=>{if(n.aborted){a(new hi(Wi.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),a(new hi(Wi.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await r.createTask(i,e.id,{method:e.method,params:e.params},n)},getTask:async i=>{let a=await r.getTask(i,n);if(!a)throw new hi(Wi.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await r.storeTaskResult(i,a,o,n);let s=await r.getTask(i,n);if(s){let l=d8.parse({method:"notifications/tasks/status",params:s});await this.notification(l),O2(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,a,o)=>{let s=await r.getTask(i,n);if(!s)throw new hi(Wi.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(O2(s.status))throw new hi(Wi.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,a,o,n);let l=await r.getTask(i,n);if(l){let u=d8.parse({method:"notifications/tasks/status",params:l});await this.notification(u),O2(l.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};function XPe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function eLe(t,e){let n={...t};for(let r in e){let i=r,a=e[i];if(a===void 0)continue;let o=n[i];XPe(o)&&XPe(a)?n[i]={...o,...a}:n[i]=a}return n}var zUe=Lt(iue(),1),QUe=Lt(UUe(),1);function LBt(){let t=new zUe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,QUe.default)(t),t}var Nj=class{constructor(e){this._ajv=e??LBt()}getValidator(e){let n="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}};var Oj=class{constructor(e){this._server=e}requestStream(e,n,r){return this._server.requestStream(e,n,r)}async getTask(e,n){return this._server.getTask({taskId:e},n)}async getTaskResult(e,n,r){return this._server.getTaskResult({taskId:e},n,r)}async listTasks(e,n){return this._server.listTasks(e?{cursor:e}:void 0,n)}async cancelTask(e,n){return this._server.cancelTask({taskId:e},n)}};function GUe(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${e})`);break;default:break}}function HUe(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var kj=class extends K${constructor(e,n){super(n),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(m8.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let a=this._loggingLevels.get(i);return a?this.LOG_LEVEL_SEVERITY.get(r)<this.LOG_LEVEL_SEVERITY.get(a):!1},this._capabilities=n?.capabilities??{},this._instructions=n?.instructions,this._jsonSchemaValidator=n?.jsonSchemaValidator??new Nj,this.setRequestHandler(F$,r=>this._oninitialize(r)),this.setNotificationHandler(nle,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(mle,async(r,i)=>{let a=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,s=m8.safeParse(o);return s.success&&this._loggingLevels.set(a,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Oj(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=eLe(this._capabilities,e)}setRequestHandler(e,n){let i=O$(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(GR(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");if(a==="tools/call"){let s=async(l,u)=>{let p=D2(f8,l);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new hi(Wi.InvalidParams,`Invalid tools/call request: ${y}`)}let{params:f}=p.data,h=await Promise.resolve(n(l,u));if(f.task){let y=D2(jR,h);if(!y.success){let E=y.error instanceof Error?y.error.message:String(y.error);throw new hi(Wi.InvalidParams,`Invalid task creation result: ${E}`)}return y.data}let _=D2(V$,h);if(!_.success){let y=_.error instanceof Error?_.error.message:String(_.error);throw new hi(Wi.InvalidParams,`Invalid tools/call result: ${y}`)}return _.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,n)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){HUe(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&GUe(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let n=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:i8.includes(n)?n:Zse,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},P$)}async createMessage(e,n){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let r=e.messages[e.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],a=i.some(u=>u.type==="tool_result"),o=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],l=s.some(u=>u.type==="tool_use");if(a){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let u=new Set(s.filter(f=>f.type==="tool_use").map(f=>f.id)),p=new Set(i.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(u.size!==p.size||![...u].every(f=>p.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},gle,n):this.request({method:"sampling/createMessage",params:e},hle,n)}async elicitInput(e,n){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=e;return this.request({method:"elicitation/create",params:i},Y$,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=e.mode==="form"?e:{...e,mode:"form"},a=await this.request({method:"elicitation/create",params:i},Y$,n);if(a.action==="accept"&&a.content&&i.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(i.requestedSchema)(a.content);if(!s.valid)throw new hi(Wi.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof hi?o:new hi(Wi.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return a}}}createElicitationCompletionNotifier(e,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},n)}async listRoots(e,n){return this.request({method:"roots/list",params:e},Ale,n)}async sendLoggingMessage(e,n){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,n))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};import jUe from"node:process";var Bj=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
927
+ %s files, %s total`,i.length,P0(i.reduce((o,s)=>o+TR(s).size,0)))}})}}),t.command("upload").description("Upload a single session file").option("--hook","hook mode: read session path from stdin JSON").option("--machine-id <id>","machine identifier for R2 key namespacing").option("--claude-dir <path>","Claude config directory").argument("[file]","path to .jsonl file (when not using --hook)").action(async(e,n)=>{let r=Use(n.claudeDir),i=pPe(n.machineId),a=IR(r,"projects"),o;if(n.hook){let _;try{_=hPe(0,"utf-8")}catch{ot("failed to read from stdin")}let y;try{y=JSON.parse(_)}catch{ot("invalid JSON on stdin")}let E=y.transcript_path;E||ot("no transcript_path in hook input"),o=E.replace(/^~/,APe())}else e?o=e:ot("provide a file path or use --hook to read from stdin");try{TR(o)}catch{ot("file not found: %s",o)}let s=fPe(o,a,i),{client:l,profile:u}=await ri("library"),p=pp(u),f=sc(u),h=await mPe(l,o,s,i,p,f,!1);h.status==="failed"&&ot("upload failed: %s",h.error),Nt({json:()=>h,human:()=>{h.status==="skipped"&&mn("Skipped (unchanged): %s",s)}})}),t.command("download").description("Download session files from PocketBase").argument("[dir]","output directory",".").option("--key <key>","download a specific file by key").option("--machine-id <id>","download all files from a specific machine").action(async(e,n)=>{let{client:r}=await ri("library"),i=[];n.key&&i.push(`key='${Qse(n.key)}'`),n.machineId&&i.push(`machine_id='${Qse(n.machineId)}'`);let a=i.length>0?i.join(" && "):"",o=await dn("Fetching session files...",()=>r.collection("session_files").getFullList({sort:"key",filter:a}));if(o.length===0){mn("No session files found");return}mn("Downloading %s files to %s",o.length,e);let s=await r.files.getToken(),l=0,u=0;for(let p of o){let f=p.key,h=p.file,_=IR(e,f),y=r.files.getURL(p,h,{token:s});try{let E=await fetch(y);if(!E.ok){mn("Failed: %s \u2014 HTTP %s",f,E.status),u++;continue}let S=Buffer.from(await E.arrayBuffer());JRt(r6t(_),{recursive:!0}),t6t(_,S),On("Downloaded: %s (%s)",f,P0(S.length)),l++}catch(E){let S=E instanceof Error?E.message:String(E);mn("Failed: %s \u2014 %s",f,S),u++}}mn(""),mn("Summary: %s total, %s downloaded, %s failed",o.length,l,u),Nt({json:()=>o.map(p=>({id:p.id,key:p.key,machine_id:p.machine_id,size:p.size})),human:()=>{}})}),t}function _Pe(t){t.addCommand(o6t())}import{readFileSync as s6t}from"node:fs";import{dirname as l6t,join as c6t}from"node:path";import{fileURLToPath as u6t}from"node:url";function T2(){return"0.1.47"}import{basename as d6t}from"node:path";function yPe(){return!0}var p6t="@zenku";function EPe(t){return t.replace(/\\/g,"/")}function f6t(t){let e=t.toLowerCase();return e==="node"||e==="node.exe"||e==="bun"}function C$(){let{platform:t,arch:e}=process,n=new Set(["darwin-arm64","darwin-x64","linux-arm64","linux-x64"]),r=`${t}-${e}`;if(!n.has(r))throw new Error(`Unsupported platform: ${r}`);return`cli-${r}`}function bPe(t){return`${p6t}/${t}`}function T$(){if(yPe())return"bundle";let t=EPe(process.execPath),e=EPe(process.argv[1]??""),n=d6t(process.execPath).toLowerCase();return n==="zenku-test"||n==="zenku-test.exe"||n.includes("zenku-test")||e.length>0&&(e.endsWith(".js")||e.endsWith(".cjs")||e.endsWith(".mjs"))||f6t(n)?"development":t.includes("/node_modules/")&&t.includes("/@zenku/")&&t.includes("/cli-")?"npm-managed":t.includes("/apps/zenku-cli/")||t.includes("/apps\\zenku-cli\\")?"development":"standalone"}function wR(t){return t==="bundle"?{command:"npm update -g @zenku/cli-node",message:"Self-upgrade is not available in bundle mode. Update via npm: npm update -g @zenku/cli-node"}:t==="npm-managed"?{command:"npm update -g @zenku/cli",message:"This install is npm-managed. Update via npm: npm update -g @zenku/cli"}:t==="development"?{command:"pnpm --filter @hikari/zenku-cli compile",message:"Development/test builds are not self-updated. Rebuild locally: pnpm --filter @hikari/zenku-cli compile"}:{command:"zenku upgrade",message:"Run `zenku upgrade` to install the latest binary."}}import{execFileSync as vPe}from"node:child_process";import{createHash as m6t}from"node:crypto";import{accessSync as h6t,chmodSync as g6t,constants as A6t,copyFileSync as _6t,existsSync as y6t,mkdtempSync as E6t,readFileSync as b6t,renameSync as v6t,rmSync as S6t,unlinkSync as C6t,writeFileSync as T6t}from"node:fs";import{tmpdir as I6t}from"node:os";import{dirname as Gse,join as I$}from"node:path";function w6t(t){let e=t.trim().split(/\s+/)[0]??"",n=e.indexOf("-");if(n<=0||n>=e.length-1)throw new Error("invalid integrity format");let r=e.slice(0,n),i=e.slice(n+1);return{algo:r,hash:i}}function x6t(t,e){let{algo:n,hash:r}=w6t(e),i=b6t(t);if(m6t(n).update(i).digest("base64")!==r)throw new Error("checksum mismatch")}function SPe(t){try{return h6t(t,A6t.W_OK),!0}catch{return!1}}function D6t(t,e){let n=Gse(e),r=I$(n,`.zenku-upgrade-${process.pid}`);_6t(t,r),g6t(r,493);try{v6t(r,e)}catch{try{C6t(r)}catch{}throw new Error(`failed to replace binary at ${e}`)}}async function R6t(t,e){let n=await fetch(t);if(!n.ok)throw new Error(`download failed: HTTP ${n.status}`);let r=Buffer.from(await n.arrayBuffer());T6t(e,r)}function CPe(t){return SPe(Gse(t))}async function w$(t,e,n){let r=`${t.version}.tgz`,i=E6t(I$(I6t(),"zenku-upgrade-")),a=I$(i,r);try{await R6t(t.tarball,a),x6t(a,t.integrity),vPe("tar",["xzf",a,"-C",i],{stdio:"pipe"});let o=I$(i,"package","zenku");if(!y6t(o))throw new Error("downloaded package is missing binary");let s=Gse(e);if(SPe(s)){D6t(o,e);return}if(!n.allowSudo)throw new Error(`no write permission for ${s}`);vPe("sudo",["install","-m","755",o,e],{stdio:"inherit"})}finally{S6t(i,{recursive:!0,force:!0})}}var TPe="https://registry.npmjs.org",N6t=15e3;async function IPe(t){let e=new AbortController,n=setTimeout(()=>e.abort(),N6t);try{let r=await fetch(t,{signal:e.signal});if(!r.ok)throw new Error(`HTTP ${r.status}`);return await r.json()}catch(r){throw r instanceof DOMException&&r.name==="AbortError"?new Error("request timed out"):r}finally{clearTimeout(n)}}function wPe(t,e){if(!t.version)throw new Error(`registry response missing version for tag "${e}"`);if(!t.dist?.tarball)throw new Error(`registry response missing dist.tarball for v${t.version}`);if(!t.dist?.integrity)throw new Error(`registry response missing dist.integrity for v${t.version}`);return{version:t.version,tarball:t.dist.tarball,integrity:t.dist.integrity,tag:e}}async function x$(t,e){let n=bPe(t),r=encodeURIComponent(n),i=e==="stable"?"stable":"latest";try{let a=await IPe(`${TPe}/${r}/${i}`);return wPe(a,i)}catch(a){if(e==="stable"){let o=await IPe(`${TPe}/${r}/latest`);return wPe(o,"latest")}throw a}}function O6t(){try{let t=sf(),{effective:e}=f2(t,void 0);return e.channel}catch{return"latest"}}function k6t(t){return t==="bundle"?"cli-node":C$()}function xPe(t){t.addCommand(new Jn("upgrade").description("Upgrade zenku to the latest version").action(async()=>{let e=T$(),n=wR(e),r=T2(),i=O6t();if(e==="development"){Nt({json:()=>({mode:e,message:n.message,previous:r,latest:r,upgraded:!1,command:n.command}),human:()=>{mn("%s",n.message)}});return}let a=k6t(e),o=await dn("Checking for updates...",()=>x$(a,i));if(r===o.version){let s=`Already up to date (v${r}).`;Nt({json:()=>({previous:r,latest:o.version,upgraded:!1,mode:e,message:s}),human:()=>mn("%s",s)});return}if(e!=="standalone"){Nt({json:()=>({previous:r,latest:o.version,upgraded:!1,mode:e,command:n.command,message:n.message}),human:()=>{mn("v%s -> v%s",r,o.version),mn("%s",n.message),mn("Run: %s",n.command)}});return}mn("v%s -> v%s",r,o.version),await dn(`Downloading v${o.version}...`,async()=>{await w$(o,process.execPath,{allowSudo:!0})}),Nt({json:()=>({previous:r,latest:o.version,upgraded:!0,mode:e}),human:()=>mn("Upgraded zenku to v%s.",o.version)})}))}function B6t(t){return{name:t.name(),description:t.description??"",required:t.required,variadic:t.variadic,defaultValue:t.defaultValue}}function M6t(t){return{name:t.name(),flags:t.flags,description:t.description??"",short:t.short,long:t.long,required:t.required,optional:t.optional,variadic:t.variadic,mandatory:t.mandatory,defaultValue:t.defaultValue}}function DPe(t,e){let n=[...e,t.name()].filter(Boolean),r=t.commands.map(i=>DPe(i,n)).sort((i,a)=>i.commandPath.localeCompare(a.commandPath));return{name:t.name(),commandPath:n.join(" "),summary:t.summary(),description:t.description(),aliases:t.aliases(),usage:t.usage(),arguments:t.registeredArguments.map(B6t),options:t.options.filter(i=>i.long!=="--help").map(M6t),subcommands:r}}function RPe(t){let e=new Jn("meta").description("Machine-readable metadata for CLI integrations");e.command("commands").description("Print CLI command tree metadata").action(()=>{Nt({json:()=>DPe(t,[]),human:()=>{process.stdout.write("Use `zenku --json meta commands` for command metadata.\n")}})}),t.addCommand(e)}import{randomUUID as JGe}from"node:crypto";import LFt from"node:http";var Ki;(function(t){t.assertEqual=i=>{};function e(i){}t.assertIs=e;function n(i){throw new Error}t.assertNever=n,t.arrayToEnum=i=>{let a={};for(let o of i)a[o]=o;return a},t.getValidEnumValues=i=>{let a=t.objectKeys(i).filter(s=>typeof i[i[s]]!="number"),o={};for(let s of a)o[s]=i[s];return t.objectValues(o)},t.objectValues=i=>t.objectKeys(i).map(function(a){return i[a]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let a=[];for(let o in i)Object.prototype.hasOwnProperty.call(i,o)&&a.push(o);return a},t.find=(i,a)=>{for(let o of i)if(a(o))return o},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,a=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(a)}t.joinValues=r,t.jsonStringifyReplacer=(i,a)=>typeof a=="bigint"?a.toString():a})(Ki||(Ki={}));var NPe;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(NPe||(NPe={}));var zn=Ki.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),db=t=>{switch(typeof t){case"undefined":return zn.undefined;case"string":return zn.string;case"number":return Number.isNaN(t)?zn.nan:zn.number;case"boolean":return zn.boolean;case"function":return zn.function;case"bigint":return zn.bigint;case"symbol":return zn.symbol;case"object":return Array.isArray(t)?zn.array:t===null?zn.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?zn.promise:typeof Map<"u"&&t instanceof Map?zn.map:typeof Set<"u"&&t instanceof Set?zn.set:typeof Date<"u"&&t instanceof Date?zn.date:zn.object;default:return zn.unknown}};var en=Ki.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);var dh=class t extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){let n=e||function(a){return a.message},r={_errors:[]},i=a=>{for(let o of a.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(n(o));else{let s=r,l=0;for(;l<o.path.length;){let u=o.path[l];l===o.path.length-1?(s[u]=s[u]||{_errors:[]},s[u]._errors.push(n(o))):s[u]=s[u]||{_errors:[]},s=s[u],l++}}};return i(this),r}static assert(e){if(!(e instanceof t))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Ki.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=n=>n.message){let n=Object.create(null),r=[];for(let i of this.issues)if(i.path.length>0){let a=i.path[0];n[a]=n[a]||[],n[a].push(e(i))}else r.push(e(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};dh.create=t=>new dh(t);var P6t=(t,e)=>{let n;switch(t.code){case en.invalid_type:t.received===zn.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case en.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,Ki.jsonStringifyReplacer)}`;break;case en.unrecognized_keys:n=`Unrecognized key(s) in object: ${Ki.joinValues(t.keys,", ")}`;break;case en.invalid_union:n="Invalid input";break;case en.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${Ki.joinValues(t.options)}`;break;case en.invalid_enum_value:n=`Invalid enum value. Expected ${Ki.joinValues(t.options)}, received '${t.received}'`;break;case en.invalid_arguments:n="Invalid function arguments";break;case en.invalid_return_type:n="Invalid function return type";break;case en.invalid_date:n="Invalid date";break;case en.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:Ki.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case en.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case en.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case en.custom:n="Invalid input";break;case en.invalid_intersection_types:n="Intersection results could not be merged";break;case en.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case en.not_finite:n="Number must be finite";break;default:n=e.defaultError,Ki.assertNever(t)}return{message:n}},I2=P6t;var L6t=I2;function qk(){return L6t}var D$=t=>{let{data:e,path:n,errorMaps:r,issueData:i}=t,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)s=u(o,{data:e,defaultError:s}).message;return{...i,path:a,message:s}};function Dn(t,e){let n=qk(),r=D$({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===I2?void 0:I2].filter(i=>!!i)});t.common.issues.push(r)}var gp=class t{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){let r=[];for(let i of n){if(i.status==="aborted")return xr;i.status==="dirty"&&e.dirty(),r.push(i.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,n){let r=[];for(let i of n){let a=await i.key,o=await i.value;r.push({key:a,value:o})}return t.mergeObjectSync(e,r)}static mergeObjectSync(e,n){let r={};for(let i of n){let{key:a,value:o}=i;if(a.status==="aborted"||o.status==="aborted")return xr;a.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),a.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[a.value]=o.value)}return{status:e.value,value:r}}},xr=Object.freeze({status:"aborted"}),xR=t=>({status:"dirty",value:t}),pf=t=>({status:"valid",value:t}),Hse=t=>t.status==="aborted",$se=t=>t.status==="dirty",aw=t=>t.status==="valid",Vk=t=>typeof Promise<"u"&&t instanceof Promise;var nr;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e?.message})(nr||(nr={}));var Gg=class{constructor(e,n,r,i){this._cachedPath=[],this.parent=e,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},OPe=(t,e)=>{if(aw(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new dh(t.common.issues);return this._error=n,this._error}}};function si(t){if(!t)return{};let{errorMap:e,invalid_type_error:n,required_error:r,description:i}=t;if(e&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,s)=>{let{message:l}=t;return o.code==="invalid_enum_value"?{message:l??s.defaultError}:typeof s.data>"u"?{message:l??r??s.defaultError}:o.code!=="invalid_type"?{message:s.defaultError}:{message:l??n??s.defaultError}},description:i}}var Ci=class{get description(){return this._def.description}_getType(e){return db(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:db(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new gp,ctx:{common:e.parent.common,data:e.data,parsedType:db(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let n=this._parse(e);if(Vk(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){let n=this._parse(e);return Promise.resolve(n)}parse(e,n){let r=this.safeParse(e,n);if(r.success)return r.data;throw r.error}safeParse(e,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)},i=this._parseSync({data:e,path:r.path,parent:r});return OPe(r,i)}"~validate"(e){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)};if(!this["~standard"].async)try{let r=this._parseSync({data:e,path:[],parent:n});return aw(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(r=>aw(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(e,n){let r=await this.safeParseAsync(e,n);if(r.success)return r.data;throw r.error}async safeParseAsync(e,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:db(e)},i=this._parse({data:e,path:r.path,parent:r}),a=await(Vk(i)?i:Promise.resolve(i));return OPe(r,a)}refine(e,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,a)=>{let o=e(i),s=()=>a.addIssue({code:en.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(l=>l?!0:(s(),!1)):o?!0:(s(),!1)})}refinement(e,n){return this._refinement((r,i)=>e(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(e){return new IA({schema:this,typeName:Sr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return TA.create(this,this._def)}nullable(){return mb.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return x2.create(this)}promise(){return ow.create(this,this._def)}or(e){return kR.create([this,e],this._def)}and(e){return BR.create(this,e,this._def)}transform(e){return new IA({...si(this._def),schema:this,typeName:Sr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){let n=typeof e=="function"?e:()=>e;return new UR({...si(this._def),innerType:this,defaultValue:n,typeName:Sr.ZodDefault})}brand(){return new R$({typeName:Sr.ZodBranded,type:this,...si(this._def)})}catch(e){let n=typeof e=="function"?e:()=>e;return new zR({...si(this._def),innerType:this,catchValue:n,typeName:Sr.ZodCatch})}describe(e){let n=this.constructor;return new n({...this._def,description:e})}pipe(e){return N$.create(this,e)}readonly(){return QR.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},F6t=/^c[^\s-]{8,}$/i,U6t=/^[0-9a-z]+$/,z6t=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Q6t=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,G6t=/^[a-z0-9_-]{21}$/i,H6t=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$6t=/^[-+]?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)?)??$/,j6t=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,q6t="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",jse,V6t=/^(?:(?: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])$/,Y6t=/^(?:(?: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])\/(3[0-2]|[12]?[0-9])$/,K6t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,W6t=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Z6t=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,J6t=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,kPe="((\\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])))",X6t=new RegExp(`^${kPe}$`);function BPe(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);let n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function eNt(t){return new RegExp(`^${BPe(t)}$`)}function tNt(t){let e=`${kPe}T${BPe(t)}`,n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function nNt(t,e){return!!((e==="v4"||!e)&&V6t.test(t)||(e==="v6"||!e)&&K6t.test(t))}function rNt(t,e){if(!H6t.test(t))return!1;try{let[n]=t.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||e&&i.alg!==e)}catch{return!1}}function iNt(t,e){return!!((e==="v4"||!e)&&Y6t.test(t)||(e==="v6"||!e)&&W6t.test(t))}var RR=class t extends Ci{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==zn.string){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.string,received:a.parsedType}),xr}let r=new gp,i;for(let a of this._def.checks)if(a.kind==="min")e.data.length<a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="max")e.data.length>a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!1,message:a.message}),r.dirty());else if(a.kind==="length"){let o=e.data.length>a.value,s=e.data.length<a.value;(o||s)&&(i=this._getOrReturnCtx(e,i),o?Dn(i,{code:en.too_big,maximum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}):s&&Dn(i,{code:en.too_small,minimum:a.value,type:"string",inclusive:!0,exact:!0,message:a.message}),r.dirty())}else if(a.kind==="email")j6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"email",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="emoji")jse||(jse=new RegExp(q6t,"u")),jse.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"emoji",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="uuid")Q6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"uuid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="nanoid")G6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"nanoid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid")F6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cuid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="cuid2")U6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cuid2",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="ulid")z6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"ulid",code:en.invalid_string,message:a.message}),r.dirty());else if(a.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),Dn(i,{validation:"url",code:en.invalid_string,message:a.message}),r.dirty()}else a.kind==="regex"?(a.regex.lastIndex=0,a.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"regex",code:en.invalid_string,message:a.message}),r.dirty())):a.kind==="trim"?e.data=e.data.trim():a.kind==="includes"?e.data.includes(a.value,a.position)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),r.dirty()):a.kind==="toLowerCase"?e.data=e.data.toLowerCase():a.kind==="toUpperCase"?e.data=e.data.toUpperCase():a.kind==="startsWith"?e.data.startsWith(a.value)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{startsWith:a.value},message:a.message}),r.dirty()):a.kind==="endsWith"?e.data.endsWith(a.value)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:{endsWith:a.value},message:a.message}),r.dirty()):a.kind==="datetime"?tNt(a).test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"datetime",message:a.message}),r.dirty()):a.kind==="date"?X6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"date",message:a.message}),r.dirty()):a.kind==="time"?eNt(a).test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.invalid_string,validation:"time",message:a.message}),r.dirty()):a.kind==="duration"?$6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"duration",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="ip"?nNt(e.data,a.version)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"ip",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="jwt"?rNt(e.data,a.alg)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"jwt",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="cidr"?iNt(e.data,a.version)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"cidr",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="base64"?Z6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"base64",code:en.invalid_string,message:a.message}),r.dirty()):a.kind==="base64url"?J6t.test(e.data)||(i=this._getOrReturnCtx(e,i),Dn(i,{validation:"base64url",code:en.invalid_string,message:a.message}),r.dirty()):Ki.assertNever(a);return{status:r.value,value:e.data}}_regex(e,n,r){return this.refinement(i=>e.test(i),{validation:n,code:en.invalid_string,...nr.errToObj(r)})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...nr.errToObj(e)})}url(e){return this._addCheck({kind:"url",...nr.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...nr.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...nr.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...nr.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...nr.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...nr.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...nr.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...nr.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...nr.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...nr.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...nr.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...nr.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...nr.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...nr.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...nr.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...nr.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n?.position,...nr.errToObj(n?.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...nr.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...nr.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...nr.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...nr.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...nr.errToObj(n)})}nonempty(e){return this.min(1,nr.errToObj(e))}trim(){return new t({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new t({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};RR.create=t=>new RR({checks:[],typeName:Sr.ZodString,coerce:t?.coerce??!1,...si(t)});function aNt(t,e){let n=(t.toString().split(".")[1]||"").length,r=(e.toString().split(".")[1]||"").length,i=n>r?n:r,a=Number.parseInt(t.toFixed(i).replace(".","")),o=Number.parseInt(e.toFixed(i).replace(".",""));return a%o/10**i}var Yk=class t extends Ci{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==zn.number){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.number,received:a.parsedType}),xr}let r,i=new gp;for(let a of this._def.checks)a.kind==="int"?Ki.isInteger(e.data)||(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.invalid_type,expected:"integer",received:"float",message:a.message}),i.dirty()):a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_small,minimum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_big,maximum:a.value,type:"number",inclusive:a.inclusive,exact:!1,message:a.message}),i.dirty()):a.kind==="multipleOf"?aNt(e.data,a.value)!==0&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):a.kind==="finite"?Number.isFinite(e.data)||(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_finite,message:a.message}),i.dirty()):Ki.assertNever(a);return{status:i.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,nr.toString(n))}gt(e,n){return this.setLimit("min",e,!1,nr.toString(n))}lte(e,n){return this.setLimit("max",e,!0,nr.toString(n))}lt(e,n){return this.setLimit("max",e,!1,nr.toString(n))}setLimit(e,n,r,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:nr.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:nr.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:nr.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:nr.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:nr.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:nr.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:nr.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:nr.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:nr.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:nr.toString(e)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&Ki.isInteger(e.value))}get isFinite(){let e=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(e===null||r.value<e)&&(e=r.value)}return Number.isFinite(n)&&Number.isFinite(e)}};Yk.create=t=>new Yk({checks:[],typeName:Sr.ZodNumber,coerce:t?.coerce||!1,...si(t)});var Kk=class t extends Ci{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==zn.bigint)return this._getInvalidInput(e);let r,i=new gp;for(let a of this._def.checks)a.kind==="min"?(a.inclusive?e.data<a.value:e.data<=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_small,type:"bigint",minimum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="max"?(a.inclusive?e.data>a.value:e.data>=a.value)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.too_big,type:"bigint",maximum:a.value,inclusive:a.inclusive,message:a.message}),i.dirty()):a.kind==="multipleOf"?e.data%a.value!==BigInt(0)&&(r=this._getOrReturnCtx(e,r),Dn(r,{code:en.not_multiple_of,multipleOf:a.value,message:a.message}),i.dirty()):Ki.assertNever(a);return{status:i.value,value:e.data}}_getInvalidInput(e){let n=this._getOrReturnCtx(e);return Dn(n,{code:en.invalid_type,expected:zn.bigint,received:n.parsedType}),xr}gte(e,n){return this.setLimit("min",e,!0,nr.toString(n))}gt(e,n){return this.setLimit("min",e,!1,nr.toString(n))}lte(e,n){return this.setLimit("max",e,!0,nr.toString(n))}lt(e,n){return this.setLimit("max",e,!1,nr.toString(n))}setLimit(e,n,r,i){return new t({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:r,message:nr.toString(i)}]})}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:nr.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:nr.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:nr.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:nr.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:nr.toString(n)})}get minValue(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}};Kk.create=t=>new Kk({checks:[],typeName:Sr.ZodBigInt,coerce:t?.coerce??!1,...si(t)});var Wk=class extends Ci{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==zn.boolean){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.boolean,received:r.parsedType}),xr}return pf(e.data)}};Wk.create=t=>new Wk({typeName:Sr.ZodBoolean,coerce:t?.coerce||!1,...si(t)});var Zk=class t extends Ci{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==zn.date){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_type,expected:zn.date,received:a.parsedType}),xr}if(Number.isNaN(e.data.getTime())){let a=this._getOrReturnCtx(e);return Dn(a,{code:en.invalid_date}),xr}let r=new gp,i;for(let a of this._def.checks)a.kind==="min"?e.data.getTime()<a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:"date"}),r.dirty()):a.kind==="max"?e.data.getTime()>a.value&&(i=this._getOrReturnCtx(e,i),Dn(i,{code:en.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:"date"}),r.dirty()):Ki.assertNever(a);return{status:r.value,value:new Date(e.data.getTime())}}_addCheck(e){return new t({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:nr.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:nr.toString(n)})}get minDate(){let e=null;for(let n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(let n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e!=null?new Date(e):null}};Zk.create=t=>new Zk({checks:[],coerce:t?.coerce||!1,typeName:Sr.ZodDate,...si(t)});var Jk=class extends Ci{_parse(e){if(this._getType(e)!==zn.symbol){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.symbol,received:r.parsedType}),xr}return pf(e.data)}};Jk.create=t=>new Jk({typeName:Sr.ZodSymbol,...si(t)});var NR=class extends Ci{_parse(e){if(this._getType(e)!==zn.undefined){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.undefined,received:r.parsedType}),xr}return pf(e.data)}};NR.create=t=>new NR({typeName:Sr.ZodUndefined,...si(t)});var OR=class extends Ci{_parse(e){if(this._getType(e)!==zn.null){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.null,received:r.parsedType}),xr}return pf(e.data)}};OR.create=t=>new OR({typeName:Sr.ZodNull,...si(t)});var Xk=class extends Ci{constructor(){super(...arguments),this._any=!0}_parse(e){return pf(e.data)}};Xk.create=t=>new Xk({typeName:Sr.ZodAny,...si(t)});var w2=class extends Ci{constructor(){super(...arguments),this._unknown=!0}_parse(e){return pf(e.data)}};w2.create=t=>new w2({typeName:Sr.ZodUnknown,...si(t)});var L0=class extends Ci{_parse(e){let n=this._getOrReturnCtx(e);return Dn(n,{code:en.invalid_type,expected:zn.never,received:n.parsedType}),xr}};L0.create=t=>new L0({typeName:Sr.ZodNever,...si(t)});var e8=class extends Ci{_parse(e){if(this._getType(e)!==zn.undefined){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.void,received:r.parsedType}),xr}return pf(e.data)}};e8.create=t=>new e8({typeName:Sr.ZodVoid,...si(t)});var x2=class t extends Ci{_parse(e){let{ctx:n,status:r}=this._processInputParams(e),i=this._def;if(n.parsedType!==zn.array)return Dn(n,{code:en.invalid_type,expected:zn.array,received:n.parsedType}),xr;if(i.exactLength!==null){let o=n.data.length>i.exactLength.value,s=n.data.length<i.exactLength.value;(o||s)&&(Dn(n,{code:o?en.too_big:en.too_small,minimum:s?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&n.data.length<i.minLength.value&&(Dn(n,{code:en.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&n.data.length>i.maxLength.value&&(Dn(n,{code:en.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((o,s)=>i.type._parseAsync(new Gg(n,o,n.path,s)))).then(o=>gp.mergeArray(r,o));let a=[...n.data].map((o,s)=>i.type._parseSync(new Gg(n,o,n.path,s)));return gp.mergeArray(r,a)}get element(){return this._def.type}min(e,n){return new t({...this._def,minLength:{value:e,message:nr.toString(n)}})}max(e,n){return new t({...this._def,maxLength:{value:e,message:nr.toString(n)}})}length(e,n){return new t({...this._def,exactLength:{value:e,message:nr.toString(n)}})}nonempty(e){return this.min(1,e)}};x2.create=(t,e)=>new x2({type:t,minLength:null,maxLength:null,exactLength:null,typeName:Sr.ZodArray,...si(e)});function DR(t){if(t instanceof ph){let e={};for(let n in t.shape){let r=t.shape[n];e[n]=TA.create(DR(r))}return new ph({...t._def,shape:()=>e})}else return t instanceof x2?new x2({...t._def,type:DR(t.element)}):t instanceof TA?TA.create(DR(t.unwrap())):t instanceof mb?mb.create(DR(t.unwrap())):t instanceof fb?fb.create(t.items.map(e=>DR(e))):t}var ph=class t extends Ci{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),n=Ki.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==zn.object){let u=this._getOrReturnCtx(e);return Dn(u,{code:en.invalid_type,expected:zn.object,received:u.parsedType}),xr}let{status:r,ctx:i}=this._processInputParams(e),{shape:a,keys:o}=this._getCached(),s=[];if(!(this._def.catchall instanceof L0&&this._def.unknownKeys==="strip"))for(let u in i.data)o.includes(u)||s.push(u);let l=[];for(let u of o){let p=a[u],f=i.data[u];l.push({key:{status:"valid",value:u},value:p._parse(new Gg(i,f,i.path,u)),alwaysSet:u in i.data})}if(this._def.catchall instanceof L0){let u=this._def.unknownKeys;if(u==="passthrough")for(let p of s)l.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(u==="strict")s.length>0&&(Dn(i,{code:en.unrecognized_keys,keys:s}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let p of s){let f=i.data[p];l.push({key:{status:"valid",value:p},value:u._parse(new Gg(i,f,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let u=[];for(let p of l){let f=await p.key,h=await p.value;u.push({key:f,value:h,alwaysSet:p.alwaysSet})}return u}).then(u=>gp.mergeObjectSync(r,u)):gp.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(e){return nr.errToObj,new t({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:nr.errToObj(e).message??i}:{message:i}}}:{}})}strip(){return new t({...this._def,unknownKeys:"strip"})}passthrough(){return new t({...this._def,unknownKeys:"passthrough"})}extend(e){return new t({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new t({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Sr.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new t({...this._def,catchall:e})}pick(e){let n={};for(let r of Ki.objectKeys(e))e[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}omit(e){let n={};for(let r of Ki.objectKeys(this.shape))e[r]||(n[r]=this.shape[r]);return new t({...this._def,shape:()=>n})}deepPartial(){return DR(this)}partial(e){let n={};for(let r of Ki.objectKeys(this.shape)){let i=this.shape[r];e&&!e[r]?n[r]=i:n[r]=i.optional()}return new t({...this._def,shape:()=>n})}required(e){let n={};for(let r of Ki.objectKeys(this.shape))if(e&&!e[r])n[r]=this.shape[r];else{let a=this.shape[r];for(;a instanceof TA;)a=a._def.innerType;n[r]=a}return new t({...this._def,shape:()=>n})}keyof(){return MPe(Ki.objectKeys(this.shape))}};ph.create=(t,e)=>new ph({shape:()=>t,unknownKeys:"strip",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});ph.strictCreate=(t,e)=>new ph({shape:()=>t,unknownKeys:"strict",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});ph.lazycreate=(t,e)=>new ph({shape:t,unknownKeys:"strip",catchall:L0.create(),typeName:Sr.ZodObject,...si(e)});var kR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=this._def.options;function i(a){for(let s of a)if(s.result.status==="valid")return s.result;for(let s of a)if(s.result.status==="dirty")return n.common.issues.push(...s.ctx.common.issues),s.result;let o=a.map(s=>new dh(s.ctx.common.issues));return Dn(n,{code:en.invalid_union,unionErrors:o}),xr}if(n.common.async)return Promise.all(r.map(async a=>{let o={...n,common:{...n.common,issues:[]},parent:null};return{result:await a._parseAsync({data:n.data,path:n.path,parent:o}),ctx:o}})).then(i);{let a,o=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},p=l._parseSync({data:n.data,path:n.path,parent:u});if(p.status==="valid")return p;p.status==="dirty"&&!a&&(a={result:p,ctx:u}),u.common.issues.length&&o.push(u.common.issues)}if(a)return n.common.issues.push(...a.ctx.common.issues),a.result;let s=o.map(l=>new dh(l));return Dn(n,{code:en.invalid_union,unionErrors:s}),xr}}get options(){return this._def.options}};kR.create=(t,e)=>new kR({options:t,typeName:Sr.ZodUnion,...si(e)});var pb=t=>t instanceof MR?pb(t.schema):t instanceof IA?pb(t.innerType()):t instanceof PR?[t.value]:t instanceof LR?t.options:t instanceof FR?Ki.objectValues(t.enum):t instanceof UR?pb(t._def.innerType):t instanceof NR?[void 0]:t instanceof OR?[null]:t instanceof TA?[void 0,...pb(t.unwrap())]:t instanceof mb?[null,...pb(t.unwrap())]:t instanceof R$||t instanceof QR?pb(t.unwrap()):t instanceof zR?pb(t._def.innerType):[],qse=class t extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.object)return Dn(n,{code:en.invalid_type,expected:zn.object,received:n.parsedType}),xr;let r=this.discriminator,i=n.data[r],a=this.optionsMap.get(i);return a?n.common.async?a._parseAsync({data:n.data,path:n.path,parent:n}):a._parseSync({data:n.data,path:n.path,parent:n}):(Dn(n,{code:en.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),xr)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,n,r){let i=new Map;for(let a of n){let o=pb(a.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(let s of o){if(i.has(s))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(s)}`);i.set(s,a)}}return new t({typeName:Sr.ZodDiscriminatedUnion,discriminator:e,options:n,optionsMap:i,...si(r)})}};function Vse(t,e){let n=db(t),r=db(e);if(t===e)return{valid:!0,data:t};if(n===zn.object&&r===zn.object){let i=Ki.objectKeys(e),a=Ki.objectKeys(t).filter(s=>i.indexOf(s)!==-1),o={...t,...e};for(let s of a){let l=Vse(t[s],e[s]);if(!l.valid)return{valid:!1};o[s]=l.data}return{valid:!0,data:o}}else if(n===zn.array&&r===zn.array){if(t.length!==e.length)return{valid:!1};let i=[];for(let a=0;a<t.length;a++){let o=t[a],s=e[a],l=Vse(o,s);if(!l.valid)return{valid:!1};i.push(l.data)}return{valid:!0,data:i}}else return n===zn.date&&r===zn.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}var BR=class extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e),i=(a,o)=>{if(Hse(a)||Hse(o))return xr;let s=Vse(a.value,o.value);return s.valid?(($se(a)||$se(o))&&n.dirty(),{status:n.value,value:s.data}):(Dn(r,{code:en.invalid_intersection_types}),xr)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([a,o])=>i(a,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};BR.create=(t,e,n)=>new BR({left:t,right:e,typeName:Sr.ZodIntersection,...si(n)});var fb=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.array)return Dn(r,{code:en.invalid_type,expected:zn.array,received:r.parsedType}),xr;if(r.data.length<this._def.items.length)return Dn(r,{code:en.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),xr;!this._def.rest&&r.data.length>this._def.items.length&&(Dn(r,{code:en.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let a=[...r.data].map((o,s)=>{let l=this._def.items[s]||this._def.rest;return l?l._parse(new Gg(r,o,r.path,s)):null}).filter(o=>!!o);return r.common.async?Promise.all(a).then(o=>gp.mergeArray(n,o)):gp.mergeArray(n,a)}get items(){return this._def.items}rest(e){return new t({...this._def,rest:e})}};fb.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new fb({items:t,typeName:Sr.ZodTuple,rest:null,...si(e)})};var Yse=class t extends Ci{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.object)return Dn(r,{code:en.invalid_type,expected:zn.object,received:r.parsedType}),xr;let i=[],a=this._def.keyType,o=this._def.valueType;for(let s in r.data)i.push({key:a._parse(new Gg(r,s,r.path,s)),value:o._parse(new Gg(r,r.data[s],r.path,s)),alwaysSet:s in r.data});return r.common.async?gp.mergeObjectAsync(n,i):gp.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(e,n,r){return n instanceof Ci?new t({keyType:e,valueType:n,typeName:Sr.ZodRecord,...si(r)}):new t({keyType:RR.create(),valueType:e,typeName:Sr.ZodRecord,...si(n)})}},t8=class extends Ci{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.map)return Dn(r,{code:en.invalid_type,expected:zn.map,received:r.parsedType}),xr;let i=this._def.keyType,a=this._def.valueType,o=[...r.data.entries()].map(([s,l],u)=>({key:i._parse(new Gg(r,s,r.path,[u,"key"])),value:a._parse(new Gg(r,l,r.path,[u,"value"]))}));if(r.common.async){let s=new Map;return Promise.resolve().then(async()=>{for(let l of o){let u=await l.key,p=await l.value;if(u.status==="aborted"||p.status==="aborted")return xr;(u.status==="dirty"||p.status==="dirty")&&n.dirty(),s.set(u.value,p.value)}return{status:n.value,value:s}})}else{let s=new Map;for(let l of o){let u=l.key,p=l.value;if(u.status==="aborted"||p.status==="aborted")return xr;(u.status==="dirty"||p.status==="dirty")&&n.dirty(),s.set(u.value,p.value)}return{status:n.value,value:s}}}};t8.create=(t,e,n)=>new t8({valueType:e,keyType:t,typeName:Sr.ZodMap,...si(n)});var n8=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.parsedType!==zn.set)return Dn(r,{code:en.invalid_type,expected:zn.set,received:r.parsedType}),xr;let i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(Dn(r,{code:en.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),n.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(Dn(r,{code:en.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let a=this._def.valueType;function o(l){let u=new Set;for(let p of l){if(p.status==="aborted")return xr;p.status==="dirty"&&n.dirty(),u.add(p.value)}return{status:n.value,value:u}}let s=[...r.data.values()].map((l,u)=>a._parse(new Gg(r,l,r.path,u)));return r.common.async?Promise.all(s).then(l=>o(l)):o(s)}min(e,n){return new t({...this._def,minSize:{value:e,message:nr.toString(n)}})}max(e,n){return new t({...this._def,maxSize:{value:e,message:nr.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}};n8.create=(t,e)=>new n8({valueType:t,minSize:null,maxSize:null,typeName:Sr.ZodSet,...si(e)});var Kse=class t extends Ci{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.function)return Dn(n,{code:en.invalid_type,expected:zn.function,received:n.parsedType}),xr;function r(s,l){return D$({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,qk(),I2].filter(u=>!!u),issueData:{code:en.invalid_arguments,argumentsError:l}})}function i(s,l){return D$({data:s,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,qk(),I2].filter(u=>!!u),issueData:{code:en.invalid_return_type,returnTypeError:l}})}let a={errorMap:n.common.contextualErrorMap},o=n.data;if(this._def.returns instanceof ow){let s=this;return pf(async function(...l){let u=new dh([]),p=await s._def.args.parseAsync(l,a).catch(_=>{throw u.addIssue(r(l,_)),u}),f=await Reflect.apply(o,this,p);return await s._def.returns._def.type.parseAsync(f,a).catch(_=>{throw u.addIssue(i(f,_)),u})})}else{let s=this;return pf(function(...l){let u=s._def.args.safeParse(l,a);if(!u.success)throw new dh([r(l,u.error)]);let p=Reflect.apply(o,this,u.data),f=s._def.returns.safeParse(p,a);if(!f.success)throw new dh([i(p,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new t({...this._def,args:fb.create(e).rest(w2.create())})}returns(e){return new t({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,n,r){return new t({args:e||fb.create([]).rest(w2.create()),returns:n||w2.create(),typeName:Sr.ZodFunction,...si(r)})}},MR=class extends Ci{get schema(){return this._def.getter()}_parse(e){let{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};MR.create=(t,e)=>new MR({getter:t,typeName:Sr.ZodLazy,...si(e)});var PR=class extends Ci{_parse(e){if(e.data!==this._def.value){let n=this._getOrReturnCtx(e);return Dn(n,{received:n.data,code:en.invalid_literal,expected:this._def.value}),xr}return{status:"valid",value:e.data}}get value(){return this._def.value}};PR.create=(t,e)=>new PR({value:t,typeName:Sr.ZodLiteral,...si(e)});function MPe(t,e){return new LR({values:t,typeName:Sr.ZodEnum,...si(e)})}var LR=class t extends Ci{_parse(e){if(typeof e.data!="string"){let n=this._getOrReturnCtx(e),r=this._def.values;return Dn(n,{expected:Ki.joinValues(r),received:n.parsedType,code:en.invalid_type}),xr}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){let n=this._getOrReturnCtx(e),r=this._def.values;return Dn(n,{received:n.data,code:en.invalid_enum_value,options:r}),xr}return pf(e.data)}get options(){return this._def.values}get enum(){let e={};for(let n of this._def.values)e[n]=n;return e}get Values(){let e={};for(let n of this._def.values)e[n]=n;return e}get Enum(){let e={};for(let n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return t.create(e,{...this._def,...n})}exclude(e,n=this._def){return t.create(this.options.filter(r=>!e.includes(r)),{...this._def,...n})}};LR.create=MPe;var FR=class extends Ci{_parse(e){let n=Ki.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(e);if(r.parsedType!==zn.string&&r.parsedType!==zn.number){let i=Ki.objectValues(n);return Dn(r,{expected:Ki.joinValues(i),received:r.parsedType,code:en.invalid_type}),xr}if(this._cache||(this._cache=new Set(Ki.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){let i=Ki.objectValues(n);return Dn(r,{received:r.data,code:en.invalid_enum_value,options:i}),xr}return pf(e.data)}get enum(){return this._def.values}};FR.create=(t,e)=>new FR({values:t,typeName:Sr.ZodNativeEnum,...si(e)});var ow=class extends Ci{unwrap(){return this._def.type}_parse(e){let{ctx:n}=this._processInputParams(e);if(n.parsedType!==zn.promise&&n.common.async===!1)return Dn(n,{code:en.invalid_type,expected:zn.promise,received:n.parsedType}),xr;let r=n.parsedType===zn.promise?n.data:Promise.resolve(n.data);return pf(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};ow.create=(t,e)=>new ow({type:t,typeName:Sr.ZodPromise,...si(e)});var IA=class extends Ci{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Sr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:n,ctx:r}=this._processInputParams(e),i=this._def.effect||null,a={addIssue:o=>{Dn(r,o),o.fatal?n.abort():n.dirty()},get path(){return r.path}};if(a.addIssue=a.addIssue.bind(a),i.type==="preprocess"){let o=i.transform(r.data,a);if(r.common.async)return Promise.resolve(o).then(async s=>{if(n.value==="aborted")return xr;let l=await this._def.schema._parseAsync({data:s,path:r.path,parent:r});return l.status==="aborted"?xr:l.status==="dirty"?xR(l.value):n.value==="dirty"?xR(l.value):l});{if(n.value==="aborted")return xr;let s=this._def.schema._parseSync({data:o,path:r.path,parent:r});return s.status==="aborted"?xr:s.status==="dirty"?xR(s.value):n.value==="dirty"?xR(s.value):s}}if(i.type==="refinement"){let o=s=>{let l=i.refinement(s,a);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return s};if(r.common.async===!1){let s=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?xr:(s.status==="dirty"&&n.dirty(),o(s.value),{status:n.value,value:s.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(s=>s.status==="aborted"?xr:(s.status==="dirty"&&n.dirty(),o(s.value).then(()=>({status:n.value,value:s.value}))))}if(i.type==="transform")if(r.common.async===!1){let o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!aw(o))return xr;let s=i.transform(o.value,a);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:s}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>aw(o)?Promise.resolve(i.transform(o.value,a)).then(s=>({status:n.value,value:s})):xr);Ki.assertNever(i)}};IA.create=(t,e,n)=>new IA({schema:t,typeName:Sr.ZodEffects,effect:e,...si(n)});IA.createWithPreprocess=(t,e,n)=>new IA({schema:e,effect:{type:"preprocess",transform:t},typeName:Sr.ZodEffects,...si(n)});var TA=class extends Ci{_parse(e){return this._getType(e)===zn.undefined?pf(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};TA.create=(t,e)=>new TA({innerType:t,typeName:Sr.ZodOptional,...si(e)});var mb=class extends Ci{_parse(e){return this._getType(e)===zn.null?pf(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};mb.create=(t,e)=>new mb({innerType:t,typeName:Sr.ZodNullable,...si(e)});var UR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return n.parsedType===zn.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};UR.create=(t,e)=>new UR({innerType:t,typeName:Sr.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...si(e)});var zR=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Vk(i)?i.then(a=>({status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new dh(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new dh(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};zR.create=(t,e)=>new zR({innerType:t,typeName:Sr.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...si(e)});var r8=class extends Ci{_parse(e){if(this._getType(e)!==zn.nan){let r=this._getOrReturnCtx(e);return Dn(r,{code:en.invalid_type,expected:zn.nan,received:r.parsedType}),xr}return{status:"valid",value:e.data}}};r8.create=t=>new r8({typeName:Sr.ZodNaN,...si(t)});var R$=class extends Ci{_parse(e){let{ctx:n}=this._processInputParams(e),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},N$=class t extends Ci{_parse(e){let{status:n,ctx:r}=this._processInputParams(e);if(r.common.async)return(async()=>{let a=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?xr:a.status==="dirty"?(n.dirty(),xR(a.value)):this._def.out._parseAsync({data:a.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?xr:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(e,n){return new t({in:e,out:n,typeName:Sr.ZodPipeline})}},QR=class extends Ci{_parse(e){let n=this._def.innerType._parse(e),r=i=>(aw(i)&&(i.value=Object.freeze(i.value)),i);return Vk(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};QR.create=(t,e)=>new QR({innerType:t,typeName:Sr.ZodReadonly,...si(e)});var IDn={object:ph.lazycreate},Sr;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(Sr||(Sr={}));var wDn=RR.create,xDn=Yk.create,DDn=r8.create,RDn=Kk.create,NDn=Wk.create,ODn=Zk.create,kDn=Jk.create,BDn=NR.create,MDn=OR.create,PDn=Xk.create,LDn=w2.create,FDn=L0.create,UDn=e8.create,zDn=x2.create,oNt=ph.create,QDn=ph.strictCreate,GDn=kR.create,HDn=qse.create,$Dn=BR.create,jDn=fb.create,qDn=Yse.create,VDn=t8.create,YDn=n8.create,KDn=Kse.create,WDn=MR.create,ZDn=PR.create,JDn=LR.create,XDn=FR.create,e4n=ow.create,t4n=IA.create,n4n=TA.create,r4n=mb.create,i4n=IA.createWithPreprocess,a4n=N$.create;function GR(t){return!!t._zod}function D2(t,e){return GR(t)?uI(t,e):t.safeParse(e)}function O$(t){if(!t)return;let e;if(GR(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function FPe(t){if(GR(t)){let a=t._zod?.def;if(a){if(a.value!==void 0)return a.value;if(Array.isArray(a.values)&&a.values.length>0)return a.values[0]}}let n=t._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let r=t.value;if(r!==void 0)return r}var Zse="2025-11-25",UPe="2025-03-26",i8=[Zse,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],R2="io.modelcontextprotocol/related-task",B$="2.0",Td=uQ(t=>t!==null&&(typeof t=="object"||typeof t=="function")),zPe=uo([vt(),ka().int()]),QPe=vt(),P4n=yd({ttl:uo([ka(),u4()]).optional(),pollInterval:ka().optional()}),fNt=Ln({ttl:ka().optional()}),mNt=Ln({taskId:vt()}),Jse=yd({progressToken:zPe.optional(),[R2]:mNt.optional()}),fh=Ln({_meta:Jse.optional()}),a8=fh.extend({task:fNt.optional()}),GPe=t=>a8.safeParse(t).success,Id=Ln({method:vt(),params:fh.loose().optional()}),Hg=Ln({_meta:Jse.optional()}),$g=Ln({method:vt(),params:Hg.loose().optional()}),wd=yd({_meta:Jse.optional()}),M$=uo([vt(),ka().int()]),HPe=Ln({jsonrpc:ir(B$),id:M$,...Id.shape}).strict(),N2=t=>HPe.safeParse(t).success,$Pe=Ln({jsonrpc:ir(B$),...$g.shape}).strict(),jPe=t=>$Pe.safeParse(t).success,Xse=Ln({jsonrpc:ir(B$),id:M$,result:wd}).strict(),hb=t=>Xse.safeParse(t).success;var Wi;(function(t){t[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(Wi||(Wi={}));var ele=Ln({jsonrpc:ir(B$),id:M$.optional(),error:Ln({code:ka().int(),message:vt(),data:xo().optional()})}).strict();var $R=t=>ele.safeParse(t).success;var o8=uo([HPe,$Pe,Xse,ele]),L4n=uo([Xse,ele]),P$=wd.strict(),hNt=Hg.extend({requestId:M$.optional(),reason:vt().optional()}),L$=$g.extend({method:ir("notifications/cancelled"),params:hNt}),gNt=Ln({src:vt(),mimeType:vt().optional(),sizes:bi(vt()).optional(),theme:Ed(["light","dark"]).optional()}),s8=Ln({icons:bi(gNt).optional()}),HR=Ln({name:vt(),title:vt().optional()}),qPe=HR.extend({...HR.shape,...s8.shape,version:vt(),websiteUrl:vt().optional(),description:vt().optional()}),ANt=d4(Ln({applyDefaults:oc().optional()}),Qo(vt(),xo())),_Nt=XO(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,d4(Ln({form:ANt.optional(),url:Td.optional()}),Qo(vt(),xo()).optional())),yNt=yd({list:Td.optional(),cancel:Td.optional(),requests:yd({sampling:yd({createMessage:Td.optional()}).optional(),elicitation:yd({create:Td.optional()}).optional()}).optional()}),ENt=yd({list:Td.optional(),cancel:Td.optional(),requests:yd({tools:yd({call:Td.optional()}).optional()}).optional()}),bNt=Ln({experimental:Qo(vt(),Td).optional(),sampling:Ln({context:Td.optional(),tools:Td.optional()}).optional(),elicitation:_Nt.optional(),roots:Ln({listChanged:oc().optional()}).optional(),tasks:yNt.optional()}),vNt=fh.extend({protocolVersion:vt(),capabilities:bNt,clientInfo:qPe}),F$=Id.extend({method:ir("initialize"),params:vNt}),tle=t=>F$.safeParse(t).success,SNt=Ln({experimental:Qo(vt(),Td).optional(),logging:Td.optional(),completions:Td.optional(),prompts:Ln({listChanged:oc().optional()}).optional(),resources:Ln({subscribe:oc().optional(),listChanged:oc().optional()}).optional(),tools:Ln({listChanged:oc().optional()}).optional(),tasks:ENt.optional()}),CNt=wd.extend({protocolVersion:vt(),capabilities:SNt,serverInfo:qPe,instructions:vt().optional()}),nle=$g.extend({method:ir("notifications/initialized"),params:Hg.optional()});var U$=Id.extend({method:ir("ping"),params:fh.optional()}),TNt=Ln({progress:ka(),total:is(ka()),message:is(vt())}),INt=Ln({...Hg.shape,...TNt.shape,progressToken:zPe}),z$=$g.extend({method:ir("notifications/progress"),params:INt}),wNt=fh.extend({cursor:QPe.optional()}),l8=Id.extend({params:wNt.optional()}),c8=wd.extend({nextCursor:QPe.optional()}),xNt=Ed(["working","input_required","completed","failed","cancelled"]),u8=Ln({taskId:vt(),status:xNt,ttl:uo([ka(),u4()]),createdAt:vt(),lastUpdatedAt:vt(),pollInterval:is(ka()),statusMessage:is(vt())}),jR=wd.extend({task:u8}),DNt=Hg.merge(u8),d8=$g.extend({method:ir("notifications/tasks/status"),params:DNt}),Q$=Id.extend({method:ir("tasks/get"),params:fh.extend({taskId:vt()})}),G$=wd.merge(u8),H$=Id.extend({method:ir("tasks/result"),params:fh.extend({taskId:vt()})}),F4n=wd.loose(),$$=l8.extend({method:ir("tasks/list")}),j$=c8.extend({tasks:bi(u8)}),q$=Id.extend({method:ir("tasks/cancel"),params:fh.extend({taskId:vt()})}),VPe=wd.merge(u8),YPe=Ln({uri:vt(),mimeType:is(vt()),_meta:Qo(vt(),xo()).optional()}),KPe=YPe.extend({text:vt()}),rle=vt().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),WPe=YPe.extend({blob:rle}),p8=Ed(["user","assistant"]),qR=Ln({audience:bi(p8).optional(),priority:ka().min(0).max(1).optional(),lastModified:XS.datetime({offset:!0}).optional()}),ZPe=Ln({...HR.shape,...s8.shape,uri:vt(),description:is(vt()),mimeType:is(vt()),annotations:qR.optional(),_meta:is(yd({}))}),RNt=Ln({...HR.shape,...s8.shape,uriTemplate:vt(),description:is(vt()),mimeType:is(vt()),annotations:qR.optional(),_meta:is(yd({}))}),ile=l8.extend({method:ir("resources/list")}),NNt=c8.extend({resources:bi(ZPe)}),ONt=l8.extend({method:ir("resources/templates/list")}),kNt=c8.extend({resourceTemplates:bi(RNt)}),ale=fh.extend({uri:vt()}),BNt=ale,ole=Id.extend({method:ir("resources/read"),params:BNt}),MNt=wd.extend({contents:bi(uo([KPe,WPe]))}),PNt=$g.extend({method:ir("notifications/resources/list_changed"),params:Hg.optional()}),LNt=ale,FNt=Id.extend({method:ir("resources/subscribe"),params:LNt}),UNt=ale,zNt=Id.extend({method:ir("resources/unsubscribe"),params:UNt}),QNt=Hg.extend({uri:vt()}),GNt=$g.extend({method:ir("notifications/resources/updated"),params:QNt}),HNt=Ln({name:vt(),description:is(vt()),required:is(oc())}),$Nt=Ln({...HR.shape,...s8.shape,description:is(vt()),arguments:is(bi(HNt)),_meta:is(yd({}))}),sle=l8.extend({method:ir("prompts/list")}),jNt=c8.extend({prompts:bi($Nt)}),qNt=fh.extend({name:vt(),arguments:Qo(vt(),vt()).optional()}),lle=Id.extend({method:ir("prompts/get"),params:qNt}),cle=Ln({type:ir("text"),text:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),ule=Ln({type:ir("image"),data:rle,mimeType:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),dle=Ln({type:ir("audio"),data:rle,mimeType:vt(),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),VNt=Ln({type:ir("tool_use"),name:vt(),id:vt(),input:Qo(vt(),xo()),_meta:Qo(vt(),xo()).optional()}),YNt=Ln({type:ir("resource"),resource:uo([KPe,WPe]),annotations:qR.optional(),_meta:Qo(vt(),xo()).optional()}),KNt=ZPe.extend({type:ir("resource_link")}),ple=uo([cle,ule,dle,KNt,YNt]),WNt=Ln({role:p8,content:ple}),ZNt=wd.extend({description:vt().optional(),messages:bi(WNt)}),JNt=$g.extend({method:ir("notifications/prompts/list_changed"),params:Hg.optional()}),XNt=Ln({title:vt().optional(),readOnlyHint:oc().optional(),destructiveHint:oc().optional(),idempotentHint:oc().optional(),openWorldHint:oc().optional()}),e9t=Ln({taskSupport:Ed(["required","optional","forbidden"]).optional()}),JPe=Ln({...HR.shape,...s8.shape,description:vt().optional(),inputSchema:Ln({type:ir("object"),properties:Qo(vt(),Td).optional(),required:bi(vt()).optional()}).catchall(xo()),outputSchema:Ln({type:ir("object"),properties:Qo(vt(),Td).optional(),required:bi(vt()).optional()}).catchall(xo()).optional(),annotations:XNt.optional(),execution:e9t.optional(),_meta:Qo(vt(),xo()).optional()}),fle=l8.extend({method:ir("tools/list")}),t9t=c8.extend({tools:bi(JPe)}),V$=wd.extend({content:bi(ple).default([]),structuredContent:Qo(vt(),xo()).optional(),isError:oc().optional()}),U4n=V$.or(wd.extend({toolResult:xo()})),n9t=a8.extend({name:vt(),arguments:Qo(vt(),xo()).optional()}),f8=Id.extend({method:ir("tools/call"),params:n9t}),r9t=$g.extend({method:ir("notifications/tools/list_changed"),params:Hg.optional()}),z4n=Ln({autoRefresh:oc().default(!0),debounceMs:ka().int().nonnegative().default(300)}),m8=Ed(["debug","info","notice","warning","error","critical","alert","emergency"]),i9t=fh.extend({level:m8}),mle=Id.extend({method:ir("logging/setLevel"),params:i9t}),a9t=Hg.extend({level:m8,logger:vt().optional(),data:xo()}),o9t=$g.extend({method:ir("notifications/message"),params:a9t}),s9t=Ln({name:vt().optional()}),l9t=Ln({hints:bi(s9t).optional(),costPriority:ka().min(0).max(1).optional(),speedPriority:ka().min(0).max(1).optional(),intelligencePriority:ka().min(0).max(1).optional()}),c9t=Ln({mode:Ed(["auto","required","none"]).optional()}),u9t=Ln({type:ir("tool_result"),toolUseId:vt().describe("The unique identifier for the corresponding tool call."),content:bi(ple).default([]),structuredContent:Ln({}).loose().optional(),isError:oc().optional(),_meta:Qo(vt(),xo()).optional()}),d9t=WO("type",[cle,ule,dle]),k$=WO("type",[cle,ule,dle,VNt,u9t]),p9t=Ln({role:p8,content:uo([k$,bi(k$)]),_meta:Qo(vt(),xo()).optional()}),f9t=a8.extend({messages:bi(p9t),modelPreferences:l9t.optional(),systemPrompt:vt().optional(),includeContext:Ed(["none","thisServer","allServers"]).optional(),temperature:ka().optional(),maxTokens:ka().int(),stopSequences:bi(vt()).optional(),metadata:Td.optional(),tools:bi(JPe).optional(),toolChoice:c9t.optional()}),m9t=Id.extend({method:ir("sampling/createMessage"),params:f9t}),hle=wd.extend({model:vt(),stopReason:is(Ed(["endTurn","stopSequence","maxTokens"]).or(vt())),role:p8,content:d9t}),gle=wd.extend({model:vt(),stopReason:is(Ed(["endTurn","stopSequence","maxTokens","toolUse"]).or(vt())),role:p8,content:uo([k$,bi(k$)])}),h9t=Ln({type:ir("boolean"),title:vt().optional(),description:vt().optional(),default:oc().optional()}),g9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),minLength:ka().optional(),maxLength:ka().optional(),format:Ed(["email","uri","date","date-time"]).optional(),default:vt().optional()}),A9t=Ln({type:Ed(["number","integer"]),title:vt().optional(),description:vt().optional(),minimum:ka().optional(),maximum:ka().optional(),default:ka().optional()}),_9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),enum:bi(vt()),default:vt().optional()}),y9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),oneOf:bi(Ln({const:vt(),title:vt()})),default:vt().optional()}),E9t=Ln({type:ir("string"),title:vt().optional(),description:vt().optional(),enum:bi(vt()),enumNames:bi(vt()).optional(),default:vt().optional()}),b9t=uo([_9t,y9t]),v9t=Ln({type:ir("array"),title:vt().optional(),description:vt().optional(),minItems:ka().optional(),maxItems:ka().optional(),items:Ln({type:ir("string"),enum:bi(vt())}),default:bi(vt()).optional()}),S9t=Ln({type:ir("array"),title:vt().optional(),description:vt().optional(),minItems:ka().optional(),maxItems:ka().optional(),items:Ln({anyOf:bi(Ln({const:vt(),title:vt()}))}),default:bi(vt()).optional()}),C9t=uo([v9t,S9t]),T9t=uo([E9t,b9t,C9t]),I9t=uo([T9t,h9t,g9t,A9t]),w9t=a8.extend({mode:ir("form").optional(),message:vt(),requestedSchema:Ln({type:ir("object"),properties:Qo(vt(),I9t),required:bi(vt()).optional()})}),x9t=a8.extend({mode:ir("url"),message:vt(),elicitationId:vt(),url:vt().url()}),D9t=uo([w9t,x9t]),R9t=Id.extend({method:ir("elicitation/create"),params:D9t}),N9t=Hg.extend({elicitationId:vt()}),O9t=$g.extend({method:ir("notifications/elicitation/complete"),params:N9t}),Y$=wd.extend({action:Ed(["accept","decline","cancel"]),content:XO(t=>t===null?void 0:t,Qo(vt(),uo([vt(),ka(),oc(),bi(vt())])).optional())}),k9t=Ln({type:ir("ref/resource"),uri:vt()});var B9t=Ln({type:ir("ref/prompt"),name:vt()}),M9t=fh.extend({ref:uo([B9t,k9t]),argument:Ln({name:vt(),value:vt()}),context:Ln({arguments:Qo(vt(),vt()).optional()}).optional()}),P9t=Id.extend({method:ir("completion/complete"),params:M9t});var L9t=wd.extend({completion:yd({values:bi(vt()).max(100),total:is(ka().int()),hasMore:is(oc())})}),F9t=Ln({uri:vt().startsWith("file://"),name:vt().optional(),_meta:Qo(vt(),xo()).optional()}),U9t=Id.extend({method:ir("roots/list"),params:fh.optional()}),Ale=wd.extend({roots:bi(F9t)}),z9t=$g.extend({method:ir("notifications/roots/list_changed"),params:Hg.optional()}),Q4n=uo([U$,F$,P9t,mle,lle,sle,ile,ONt,ole,FNt,zNt,f8,fle,Q$,H$,$$,q$]),G4n=uo([L$,z$,nle,z9t,d8]),H4n=uo([P$,hle,gle,Y$,Ale,G$,j$,jR]),$4n=uo([U$,m9t,R9t,U9t,Q$,H$,$$,q$]),j4n=uo([L$,z$,o9t,GNt,PNt,r9t,JNt,d8,O9t]),q4n=uo([P$,CNt,L9t,ZNt,jNt,NNt,kNt,MNt,V$,t9t,G$,j$,jR]),hi=class t extends Error{constructor(e,n,r){super(`MCP error ${e}: ${n}`),this.code=e,this.data=r,this.name="McpError"}static fromError(e,n,r){if(e===Wi.UrlElicitationRequired&&r){let i=r;if(i.elicitations)return new Wse(i.elicitations,n)}return new t(e,n,r)}},Wse=class extends hi{constructor(e,n=`URL elicitation${e.length>1?"s":""} required`){super(Wi.UrlElicitationRequired,n,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function O2(t){return t==="completed"||t==="failed"||t==="cancelled"}var IRn=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function _le(t){let n=O$(t)?.method;if(!n)throw new Error("Schema is missing a method literal");let r=FPe(n);if(typeof r!="string")throw new Error("Schema method literal must be a string");return r}function yle(t,e){let n=D2(t,e);if(!n.success)throw n.error;return n.data}var q9t=6e4,K$=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(L$,n=>{this._oncancel(n)}),this.setNotificationHandler(z$,n=>{this._onprogress(n)}),this.setRequestHandler(U$,n=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Q$,async(n,r)=>{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new hi(Wi.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(H$,async(n,r)=>{let i=async()=>{let a=n.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(a,r.sessionId);){if(s.type==="response"||s.type==="error"){let l=s.message,u=l.id,p=this._requestResolvers.get(u);if(p)if(this._requestResolvers.delete(u),s.type==="response")p(l);else{let f=l,h=new hi(f.error.code,f.error.message,f.error.data);p(h)}else{let f=s.type==="response"?"Response":"Error";this._onerror(new Error(`${f} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:r.requestId})}}let o=await this._taskStore.getTask(a,r.sessionId);if(!o)throw new hi(Wi.InvalidParams,`Task not found: ${a}`);if(!O2(o.status))return await this._waitForTaskUpdate(a,r.signal),await i();if(O2(o.status)){let s=await this._taskStore.getTaskResult(a,r.sessionId);return this._clearTaskQueue(a),{...s,_meta:{...s._meta,[R2]:{taskId:a}}}}return await i()};return await i()}),this.setRequestHandler($$,async(n,r)=>{try{let{tasks:i,nextCursor:a}=await this._taskStore.listTasks(n.params?.cursor,r.sessionId);return{tasks:i,nextCursor:a,_meta:{}}}catch(i){throw new hi(Wi.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(q$,async(n,r)=>{try{let i=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!i)throw new hi(Wi.InvalidParams,`Task not found: ${n.params.taskId}`);if(O2(i.status))throw new hi(Wi.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",r.sessionId),this._clearTaskQueue(n.params.taskId);let a=await this._taskStore.getTask(n.params.taskId,r.sessionId);if(!a)throw new hi(Wi.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...a}}catch(i){throw i instanceof hi?i:new hi(Wi.InvalidRequest,`Failed to cancel task: ${i instanceof Error?i.message:String(i)}`)}}))}async _oncancel(e){if(!e.params.requestId)return;this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,n,r,i,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,n),startTime:Date.now(),timeout:n,maxTotalTimeout:r,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(e){let n=this._timeoutInfo.get(e);if(!n)return!1;let r=Date.now()-n.startTime;if(n.maxTotalTimeout&&r>=n.maxTotalTimeout)throw this._timeoutInfo.delete(e),hi.fromError(Wi.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:r});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(e){let n=this._timeoutInfo.get(e);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(e))}async connect(e){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=e;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let r=this.transport?.onerror;this._transport.onerror=a=>{r?.(a),this._onerror(a)};let i=this._transport?.onmessage;this._transport.onmessage=(a,o)=>{i?.(a,o),hb(a)||$R(a)?this._onresponse(a):N2(a)?this._onrequest(a,o):jPe(a)?this._onnotification(a):this._onerror(new Error(`Unknown message type: ${JSON.stringify(a)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let r of this._requestHandlerAbortControllers.values())r.abort();this._requestHandlerAbortControllers.clear();let n=hi.fromError(Wi.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let r of e.values())r(n)}_onerror(e){this.onerror?.(e)}_onnotification(e){let n=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(e)).catch(r=>this._onerror(new Error(`Uncaught error in notification handler: ${r}`)))}_onrequest(e,n){let r=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,a=e.params?._meta?.[R2]?.taskId;if(r===void 0){let p={jsonrpc:"2.0",id:e.id,error:{code:Wi.MethodNotFound,message:"Method not found"}};a&&this._taskMessageQueue?this._enqueueTaskMessage(a,{type:"error",message:p,timestamp:Date.now()},i?.sessionId).catch(f=>this._onerror(new Error(`Failed to enqueue error response: ${f}`))):i?.send(p).catch(f=>this._onerror(new Error(`Failed to send an error response: ${f}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let s=GPe(e.params)?e.params.task:void 0,l=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async p=>{if(o.signal.aborted)return;let f={relatedRequestId:e.id};a&&(f.relatedTask={taskId:a}),await this.notification(p,f)},sendRequest:async(p,f,h)=>{if(o.signal.aborted)throw new hi(Wi.ConnectionClosed,"Request was cancelled");let _={...h,relatedRequestId:e.id};a&&!_.relatedTask&&(_.relatedTask={taskId:a});let y=_.relatedTask?.taskId??a;return y&&l&&await l.updateTaskStatus(y,"input_required"),await this.request(p,f,_)},authInfo:n?.authInfo,requestId:e.id,requestInfo:n?.requestInfo,taskId:a,taskStore:l,taskRequestedTtl:s?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(e.method)}).then(()=>r(e,u)).then(async p=>{if(o.signal.aborted)return;let f={result:p,jsonrpc:"2.0",id:e.id};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"response",message:f,timestamp:Date.now()},i?.sessionId):await i?.send(f)},async p=>{if(o.signal.aborted)return;let f={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(p.code)?p.code:Wi.InternalError,message:p.message??"Internal error",...p.data!==void 0&&{data:p.data}}};a&&this._taskMessageQueue?await this._enqueueTaskMessage(a,{type:"error",message:f,timestamp:Date.now()},i?.sessionId):await i?.send(f)}).catch(p=>this._onerror(new Error(`Failed to send response: ${p}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:n,...r}=e.params,i=Number(n),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(l){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(l);return}a(r)}_onresponse(e){let n=Number(e.id),r=this._requestResolvers.get(n);if(r){if(this._requestResolvers.delete(n),hb(e))r(e);else{let o=new hi(e.error.code,e.error.message,e.error.data);r(o)}return}let i=this._responseHandlers.get(n);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let a=!1;if(hb(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let s=o.task;typeof s.taskId=="string"&&(a=!0,this._taskProgressTokens.set(s.taskId,n))}}if(a||this._progressHandlers.delete(n),hb(e))i(e);else{let o=hi.fromError(e.error.code,e.error.message,e.error.data);i(o)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(e,n,r){let{task:i}=r??{};if(!i){try{yield{type:"result",result:await this.request(e,n,r)}}catch(o){yield{type:"error",error:o instanceof hi?o:new hi(Wi.InternalError,String(o))}}return}let a;try{let o=await this.request(e,jR,r);if(o.task)a=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new hi(Wi.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:a},r);if(yield{type:"taskStatus",task:s},O2(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:a},n,r)}:s.status==="failed"?yield{type:"error",error:new hi(Wi.InternalError,`Task ${a} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new hi(Wi.InternalError,`Task ${a} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:a},n,r)};return}let l=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,l)),r?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof hi?o:new hi(Wi.InternalError,String(o))}}}request(e,n,r){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o,task:s,relatedTask:l}=r??{};return new Promise((u,p)=>{let f=N=>{p(N)};if(!this._transport){f(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),s&&this.assertTaskCapability(e.method)}catch(N){f(N);return}r?.signal?.throwIfAborted();let h=this._requestMessageId++,_={...e,jsonrpc:"2.0",id:h};r?.onprogress&&(this._progressHandlers.set(h,r.onprogress),_.params={...e.params,_meta:{...e.params?._meta||{},progressToken:h}}),s&&(_.params={..._.params,task:s}),l&&(_.params={..._.params,_meta:{..._.params?._meta||{},[R2]:l}});let y=N=>{this._responseHandlers.delete(h),this._progressHandlers.delete(h),this._cleanupTimeout(h),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:h,reason:String(N)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(M=>this._onerror(new Error(`Failed to send cancellation: ${M}`)));let O=N instanceof hi?N:new hi(Wi.RequestTimeout,String(N));p(O)};this._responseHandlers.set(h,N=>{if(!r?.signal?.aborted){if(N instanceof Error)return p(N);try{let O=D2(n,N.result);O.success?u(O.data):p(O.error)}catch(O){p(O)}}}),r?.signal?.addEventListener("abort",()=>{y(r?.signal?.reason)});let E=r?.timeout??q9t,S=()=>y(hi.fromError(Wi.RequestTimeout,"Request timed out",{timeout:E}));this._setupTimeout(h,E,r?.maxTotalTimeout,S,r?.resetTimeoutOnProgress??!1);let T=l?.taskId;if(T){let N=O=>{let M=this._responseHandlers.get(h);M?M(O):this._onerror(new Error(`Response handler missing for side-channeled request ${h}`))};this._requestResolvers.set(h,N),this._enqueueTaskMessage(T,{type:"request",message:_,timestamp:Date.now()}).catch(O=>{this._cleanupTimeout(h),p(O)})}else this._transport.send(_,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(N=>{this._cleanupTimeout(h),p(N)})})}async getTask(e,n){return this.request({method:"tasks/get",params:e},G$,n)}async getTaskResult(e,n,r){return this.request({method:"tasks/result",params:e},n,r)}async listTasks(e,n){return this.request({method:"tasks/list",params:e},j$,n)}async cancelTask(e,n){return this.request({method:"tasks/cancel",params:e},VPe,n)}async notification(e,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let r=n?.relatedTask?.taskId;if(r){let s={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[R2]:n.relatedTask}}};await this._enqueueTaskMessage(r,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(e.method),!this._transport)return;let s={...e,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[R2]:n.relatedTask}}}),this._transport?.send(s,n).catch(l=>this._onerror(l))});return}let o={...e,jsonrpc:"2.0"};n?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[R2]:n.relatedTask}}}),await this._transport.send(o,n)}setRequestHandler(e,n){let r=_le(e);this.assertRequestHandlerCapability(r),this._requestHandlers.set(r,(i,a)=>{let o=yle(e,i);return Promise.resolve(n(o,a))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,n){let r=_le(e);this._notificationHandlers.set(r,i=>{let a=yle(e,i);return Promise.resolve(n(a))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let n=this._taskProgressTokens.get(e);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,n,r){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let i=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(e,n,r,i)}async _clearTaskQueue(e,n){if(this._taskMessageQueue){let r=await this._taskMessageQueue.dequeueAll(e,n);for(let i of r)if(i.type==="request"&&N2(i.message)){let a=i.message.id,o=this._requestResolvers.get(a);o?(o(new hi(Wi.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(a)):this._onerror(new Error(`Resolver missing for request ${a} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,n){let r=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(r=i.pollInterval)}catch{}return new Promise((i,a)=>{if(n.aborted){a(new hi(Wi.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,r);n.addEventListener("abort",()=>{clearTimeout(o),a(new hi(Wi.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,n){let r=this._taskStore;if(!r)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await r.createTask(i,e.id,{method:e.method,params:e.params},n)},getTask:async i=>{let a=await r.getTask(i,n);if(!a)throw new hi(Wi.InvalidParams,"Failed to retrieve task: Task not found");return a},storeTaskResult:async(i,a,o)=>{await r.storeTaskResult(i,a,o,n);let s=await r.getTask(i,n);if(s){let l=d8.parse({method:"notifications/tasks/status",params:s});await this.notification(l),O2(s.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>r.getTaskResult(i,n),updateTaskStatus:async(i,a,o)=>{let s=await r.getTask(i,n);if(!s)throw new hi(Wi.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(O2(s.status))throw new hi(Wi.InvalidParams,`Cannot update task "${i}" from terminal status "${s.status}" to "${a}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await r.updateTaskStatus(i,a,o,n);let l=await r.getTask(i,n);if(l){let u=d8.parse({method:"notifications/tasks/status",params:l});await this.notification(u),O2(l.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>r.listTasks(i,n)}}};function XPe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function eLe(t,e){let n={...t};for(let r in e){let i=r,a=e[i];if(a===void 0)continue;let o=n[i];XPe(o)&&XPe(a)?n[i]={...o,...a}:n[i]=a}return n}var zUe=Lt(iue(),1),QUe=Lt(UUe(),1);function LBt(){let t=new zUe.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,QUe.default)(t),t}var Nj=class{constructor(e){this._ajv=e??LBt()}getValidator(e){let n="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return r=>n(r)?{valid:!0,data:r,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}};var Oj=class{constructor(e){this._server=e}requestStream(e,n,r){return this._server.requestStream(e,n,r)}async getTask(e,n){return this._server.getTask({taskId:e},n)}async getTaskResult(e,n,r){return this._server.getTaskResult({taskId:e},n,r)}async listTasks(e,n){return this._server.listTasks(e?{cursor:e}:void 0,n)}async cancelTask(e,n){return this._server.cancelTask({taskId:e},n)}};function GUe(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${e})`);break;default:break}}function HUe(t,e,n){if(!t)throw new Error(`${n} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}var kj=class extends K${constructor(e,n){super(n),this._serverInfo=e,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(m8.options.map((r,i)=>[r,i])),this.isMessageIgnored=(r,i)=>{let a=this._loggingLevels.get(i);return a?this.LOG_LEVEL_SEVERITY.get(r)<this.LOG_LEVEL_SEVERITY.get(a):!1},this._capabilities=n?.capabilities??{},this._instructions=n?.instructions,this._jsonSchemaValidator=n?.jsonSchemaValidator??new Nj,this.setRequestHandler(F$,r=>this._oninitialize(r)),this.setNotificationHandler(nle,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(mle,async(r,i)=>{let a=i.sessionId||i.requestInfo?.headers["mcp-session-id"]||void 0,{level:o}=r.params,s=m8.safeParse(o);return s.success&&this._loggingLevels.set(a,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Oj(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=eLe(this._capabilities,e)}setRequestHandler(e,n){let i=O$(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let a;if(GR(i)){let s=i;a=s._zod?.def?.value??s.value}else{let s=i;a=s._def?.value??s.value}if(typeof a!="string")throw new Error("Schema method literal must be a string");if(a==="tools/call"){let s=async(l,u)=>{let p=D2(f8,l);if(!p.success){let y=p.error instanceof Error?p.error.message:String(p.error);throw new hi(Wi.InvalidParams,`Invalid tools/call request: ${y}`)}let{params:f}=p.data,h=await Promise.resolve(n(l,u));if(f.task){let y=D2(jR,h);if(!y.success){let E=y.error instanceof Error?y.error.message:String(y.error);throw new hi(Wi.InvalidParams,`Invalid task creation result: ${E}`)}return y.data}let _=D2(V$,h);if(!_.success){let y=_.error instanceof Error?_.error.message:String(_.error);throw new hi(Wi.InvalidParams,`Invalid tools/call result: ${y}`)}return _.data};return super.setRequestHandler(e,s)}return super.setRequestHandler(e,n)}assertCapabilityForMethod(e){switch(e){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${e})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${e})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${e})`);break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${e})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${e})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${e})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${e})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${e})`);break;case"ping":case"initialize":break}}assertTaskCapability(e){HUe(this._clientCapabilities?.tasks?.requests,e,"Client")}assertTaskHandlerCapability(e){this._capabilities&&GUe(this._capabilities.tasks?.requests,e,"Server")}async _oninitialize(e){let n=e.params.protocolVersion;return this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo,{protocolVersion:i8.includes(n)?n:Zse,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},P$)}async createMessage(e,n){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(e.messages.length>0){let r=e.messages[e.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],a=i.some(u=>u.type==="tool_result"),o=e.messages.length>1?e.messages[e.messages.length-2]:void 0,s=o?Array.isArray(o.content)?o.content:[o.content]:[],l=s.some(u=>u.type==="tool_use");if(a){if(i.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let u=new Set(s.filter(f=>f.type==="tool_use").map(f=>f.id)),p=new Set(i.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(u.size!==p.size||![...u].every(f=>p.has(f)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return e.tools?this.request({method:"sampling/createMessage",params:e},gle,n):this.request({method:"sampling/createMessage",params:e},hle,n)}async elicitInput(e,n){switch(e.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let i=e;return this.request({method:"elicitation/create",params:i},Y$,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let i=e.mode==="form"?e:{...e,mode:"form"},a=await this.request({method:"elicitation/create",params:i},Y$,n);if(a.action==="accept"&&a.content&&i.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(i.requestedSchema)(a.content);if(!s.valid)throw new hi(Wi.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(o){throw o instanceof hi?o:new hi(Wi.InternalError,`Error validating elicitation response: ${o instanceof Error?o.message:String(o)}`)}return a}}}createElicitationCompletionNotifier(e,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:e}},n)}async listRoots(e,n){return this.request({method:"roots/list",params:e},Ale,n)}async sendLoggingMessage(e,n){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,n))return this.notification({method:"notifications/message",params:e})}async sendResourceUpdated(e){return this.notification({method:"notifications/resources/updated",params:e})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};import jUe from"node:process";var Bj=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
928
928
  `);if(e===-1)return null;let n=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),FBt(n)}clear(){this._buffer=void 0}};function FBt(t){return o8.parse(JSON.parse(t))}function $Ue(t){return JSON.stringify(t)+`
929
929
  `}var Mj=class{constructor(e=jUe.stdin,n=jUe.stdout){this._stdin=e,this._stdout=n,this._readBuffer=new Bj,this._started=!1,this._ondata=r=>{this._readBuffer.append(r),this.processReadBuffer()},this._onerror=r=>{this.onerror?.(r)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(e){return new Promise(n=>{let r=$Ue(e);this._stdout.write(r)?n():this._stdout.once("drain",n)})}};import{Http2ServerRequest as UBt}from"http2";import{Http2ServerRequest as pue}from"http2";import{Readable as qUe}from"stream";import ZBt from"crypto";var Aw=class extends Error{constructor(t,e){super(t,e),this.name="RequestError"}},zBt=t=>t instanceof Aw?t:new Aw(t.message,{cause:t}),QBt=global.Request,j8=class extends QBt{constructor(t,e){typeof t=="object"&&p6 in t&&(t=t[p6]()),typeof e?.body?.getReader<"u"&&(e.duplex??="half"),super(t,e)}},GBt=t=>{let e=[],n=t.rawHeaders;for(let r=0;r<n.length;r+=2){let{[r]:i,[r+1]:a}=n;i.charCodeAt(0)!==58&&e.push([i,a])}return new Headers(e)},YUe=Symbol("wrapBodyStream"),HBt=(t,e,n,r,i)=>{let a={method:t,headers:n,signal:i.signal};if(t==="TRACE"){a.method="GET";let o=new j8(e,a);return Object.defineProperty(o,"method",{get(){return"TRACE"}}),o}if(!(t==="GET"||t==="HEAD"))if("rawBody"in r&&r.rawBody instanceof Buffer)a.body=new ReadableStream({start(o){o.enqueue(r.rawBody),o.close()}});else if(r[YUe]){let o;a.body=new ReadableStream({async pull(s){try{o||=qUe.toWeb(r).getReader();let{done:l,value:u}=await o.read();l?s.close():s.enqueue(u)}catch(l){s.error(l)}}})}else a.body=qUe.toWeb(r);return new j8(e,a)},p6=Symbol("getRequestCache"),$Bt=Symbol("requestCache"),Pj=Symbol("incomingKey"),Lj=Symbol("urlKey"),jBt=Symbol("headersKey"),d6=Symbol("abortControllerKey"),qBt=Symbol("getAbortController"),Fj={get method(){return this[Pj].method||"GET"},get url(){return this[Lj]},get headers(){return this[jBt]||=GBt(this[Pj])},[qBt](){return this[p6](),this[d6]},[p6](){return this[d6]||=new AbortController,this[$Bt]||=HBt(this.method,this[Lj],this.headers,this[Pj],this[d6])}};["body","bodyUsed","cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","signal","keepalive"].forEach(t=>{Object.defineProperty(Fj,t,{get(){return this[p6]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(Fj,t,{value:function(){return this[p6]()[t]()}})});Object.setPrototypeOf(Fj,j8.prototype);var VBt=(t,e)=>{let n=Object.create(Fj);n[Pj]=t;let r=t.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(t instanceof pue)throw new Aw("Absolute URL for :path is not allowed in HTTP/2");try{let s=new URL(r);n[Lj]=s.href}catch(s){throw new Aw("Invalid absolute URL",{cause:s})}return n}let i=(t instanceof pue?t.authority:t.headers.host)||e;if(!i)throw new Aw("Missing host header");let a;if(t instanceof pue){if(a=t.scheme,!(a==="http"||a==="https"))throw new Aw("Unsupported scheme")}else a=t.socket&&t.socket.encrypted?"https":"http";let o=new URL(`${a}://${i}${r}`);if(o.hostname.length!==i.length&&o.hostname!==i.replace(/:\d+$/,""))throw new Aw("Invalid host header");return n[Lj]=o.href,n},VUe=Symbol("responseCache"),u6=Symbol("getResponseCache"),_w=Symbol("cache"),mue=global.Response,q8=class KUe{#e;#t;[u6](){return delete this[_w],this[VUe]||=new mue(this.#e,this.#t)}constructor(e,n){let r;if(this.#e=e,n instanceof KUe){let i=n[VUe];if(i){this.#t=i,this[u6]();return}else this.#t=n.#t,r=new Headers(n.#t.headers)}else this.#t=n;(typeof e=="string"||typeof e?.getReader<"u"||e instanceof Blob||e instanceof Uint8Array)&&(r||=n?.headers||{"content-type":"text/plain; charset=UTF-8"},this[_w]=[n?.status||200,e,r])}get headers(){let e=this[_w];return e?(e[2]instanceof Headers||(e[2]=new Headers(e[2])),e[2]):this[u6]().headers}get status(){return this[_w]?.[0]??this[u6]().status}get ok(){let e=this.status;return e>=200&&e<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(t=>{Object.defineProperty(q8.prototype,t,{get(){return this[u6]()[t]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(t=>{Object.defineProperty(q8.prototype,t,{value:function(){return this[u6]()[t]()}})});Object.setPrototypeOf(q8,mue);Object.setPrototypeOf(q8.prototype,mue.prototype);async function YBt(t){return Promise.race([t,Promise.resolve().then(()=>Promise.resolve(void 0))])}function WUe(t,e,n){let r=s=>{t.cancel(s).catch(()=>{})};return e.on("close",r),e.on("error",r),(n??t.read()).then(o,i),t.closed.finally(()=>{e.off("close",r),e.off("error",r)});function i(s){s&&e.destroy(s)}function a(){t.read().then(o,i)}function o({done:s,value:l}){try{if(s)e.end();else if(!e.write(l))e.once("drain",a);else return t.read().then(o,i)}catch(u){i(u)}}}function KBt(t,e){if(t.locked)throw new TypeError("ReadableStream is locked.");return e.destroyed?void 0:WUe(t.getReader(),e)}var ZUe=t=>{let e={};t instanceof Headers||(t=new Headers(t??void 0));let n=[];for(let[r,i]of t)r==="set-cookie"?n.push(i):e[r]=i;return n.length>0&&(e["set-cookie"]=n),e["content-type"]??="text/plain; charset=UTF-8",e},WBt="x-hono-already-sent";typeof global.crypto>"u"&&(global.crypto=ZBt);var hue=Symbol("outgoingEnded"),JBt=()=>new Response(null,{status:400}),JUe=t=>new Response(null,{status:t instanceof Error&&(t.name==="TimeoutError"||t.constructor.name==="TimeoutError")?504:500}),fue=(t,e)=>{let n=t instanceof Error?t:new Error("unknown error",{cause:t});n.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(t),e.headersSent||e.writeHead(500,{"Content-Type":"text/plain"}),e.end(`Error: ${n.message}`),e.destroy(n))},XUe=t=>{"flushHeaders"in t&&t.writable&&t.flushHeaders()},eze=async(t,e)=>{let[n,r,i]=t[_w];i instanceof Headers&&(i=ZUe(i)),typeof r=="string"?i["Content-Length"]=Buffer.byteLength(r):r instanceof Uint8Array?i["Content-Length"]=r.byteLength:r instanceof Blob&&(i["Content-Length"]=r.size),e.writeHead(n,i),typeof r=="string"||r instanceof Uint8Array?e.end(r):r instanceof Blob?e.end(new Uint8Array(await r.arrayBuffer())):(XUe(e),await KBt(r,e)?.catch(a=>fue(a,e))),e[hue]?.()},XBt=t=>typeof t.then=="function",eMt=async(t,e,n={})=>{if(XBt(t))if(n.errorHandler)try{t=await t}catch(i){let a=await n.errorHandler(i);if(!a)return;t=a}else t=await t.catch(JUe);if(_w in t)return eze(t,e);let r=ZUe(t.headers);if(t.body){let i=t.body.getReader(),a=[],o=!1,s;if(r["transfer-encoding"]!=="chunked"){let l=2;for(let u=0;u<l;u++){s||=i.read();let p=await YBt(s).catch(f=>{console.error(f),o=!0});if(!p){if(u===1){await new Promise(f=>setTimeout(f)),l=3;continue}break}if(s=void 0,p.value&&a.push(p.value),p.done){o=!0;break}}o&&!("content-length"in r)&&(r["content-length"]=a.reduce((u,p)=>u+p.length,0))}e.writeHead(t.status,r),a.forEach(l=>{e.write(l)}),o?e.end():(a.length===0&&XUe(e),await WUe(i,e,s))}else r[WBt]||(e.writeHead(t.status,r),e.end());e[hue]?.()},gue=(t,e={})=>{let n=e.autoCleanupIncoming??!0;return e.overrideGlobalObjects!==!1&&global.Request!==j8&&(Object.defineProperty(global,"Request",{value:j8}),Object.defineProperty(global,"Response",{value:q8})),async(r,i)=>{let a,o;try{o=VBt(r,e.hostname);let s=!n||r.method==="GET"||r.method==="HEAD";if(s||(r[YUe]=!0,r.on("end",()=>{s=!0}),r instanceof UBt&&(i[hue]=()=>{s||setTimeout(()=>{s||setTimeout(()=>{r.destroy(),i.destroy()})})})),i.on("close",()=>{o[d6]&&(r.errored?o[d6].abort(r.errored.toString()):i.writableFinished||o[d6].abort("Client connection prematurely closed.")),s||setTimeout(()=>{s||setTimeout(()=>{r.destroy()})})}),a=t(o,{incoming:r,outgoing:i}),_w in a)return eze(a,i)}catch(s){if(a)return fue(s,i);if(e.errorHandler){if(a=await e.errorHandler(o?s:zBt(s)),!a)return}else o?a=JUe(s):a=JBt()}try{return await eMt(a,i,e)}catch(s){return fue(s,i)}}};var Uj=class{constructor(e={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval}async start(){if(this._started)throw new Error("Transport already started");this._started=!0}createJsonErrorResponse(e,n,r,i){let a={code:n,message:r};return i?.data!==void 0&&(a.data=i.data),new Response(JSON.stringify({jsonrpc:"2.0",error:a,id:null}),{status:e,headers:{"Content-Type":"application/json",...i?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let n=e.headers.get("host");if(!n||!this._allowedHosts.includes(n)){let r=`Invalid Host header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let n=e.headers.get("origin");if(n&&!this._allowedOrigins.includes(n)){let r=`Invalid Origin header: ${n}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}}}async handleRequest(e,n){if(!this.sessionIdGenerator&&this._hasHandledRequest)throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");this._hasHandledRequest=!0;let r=this.validateRequestHeaders(e);if(r)return r;switch(e.method){case"POST":return this.handlePostRequest(e,n);case"GET":return this.handleGetRequest(e);case"DELETE":return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,n,r,i){if(!this._eventStore||i<"2025-11-25")return;let a=await this._eventStore.storeEvent(r,{}),o=`id: ${a}
930
930
  data:
@@ -1058,7 +1058,7 @@ Process error: ${p.message}`}),e.set(a,l),{processId:a}},async poll(r){let i=e.g
1058
1058
  `)),f.error&&process.stderr.write(f.error+`
1059
1059
  `),f.exitCode!=null&&f.exitCode!==0&&(process.exitCode=f.exitCode)}finally{u?.()}}async function bcn(t,e,n){if(t)try{return JSON.parse(t)}catch{ot("Invalid JSON: %s",t)}if(!process.stdin.isTTY){let r=[];for await(let a of process.stdin)r.push(a);let i=Buffer.concat(r).toString("utf-8").trim();if(i)try{return JSON.parse(i)}catch{ot("Invalid JSON from stdin")}}return e.length>0?vcn(e,n):{}}function vcn(t,e){let r=e?.properties??{},i={},a=0;for(;a<t.length;){let o=t[a];if(!o.startsWith("--")){a++;continue}let s=Scn(o.slice(2)),u=r[s]?.type;if(u==="boolean"){i[s]=!0,a++;continue}let p=t[a+1];if(p===void 0||p.startsWith("--")){i[s]=!0,a++;continue}if(u==="array"){let f=i[s];Array.isArray(f)?f.push(p):i[s]=[p],a+=2;continue}if(u==="number"||u==="integer"){let f=Number(p);if(!Number.isNaN(f)){i[s]=f,a+=2;continue}}i[s]=p,a+=2}return i}function Scn(t){return t.replace(/-([a-z])/g,(e,n)=>n.toUpperCase())}function Ccn(){return new Jn("skill").description("Generate SKILL.md for a tool group").argument("[group]","group name (omit to list available groups)").action(t=>{t?Icn(t):Tcn()})}function Tcn(){if(Hu()){hA(y_.map(t=>({name:t.name,description:t.description})));return}mn("Available skill groups:");for(let t of y_)mn(" %s \u2014 %s (%s tools)",t.name,t.description,String(t.entries.length));mn(""),mn("Generate a skill: zenku tool skill <group>")}function Icn(t){let e=y_.find(n=>n.name===t);e||ot("Unknown group: %s. Available: %s",t,y_.map(n=>n.name).join(", ")),process.stdout.write(yct(e))}function wcn(){let t=new Jn("tool").description("Execute tools directly or generate skill files").enablePositionalOptions();return t.addCommand(gcn()),t.addCommand(ycn()),t.addCommand(Ccn()),t}function Ect(t){t.addCommand(wcn())}import{readdirSync as xcn,readFileSync as Dcn,existsSync as Rcn}from"node:fs";import{join as bct}from"node:path";function l3(t){let e=xcn(t).filter(r=>r.endsWith(".js")).sort(),n={};for(let r of e)n[r]=Dcn(bct(t,r),"utf-8");return n}var vct=["apps/api/migrations","migrations","pb_migrations"];function c3(){for(let t of vct){let e=bct(process.cwd(),t);if(Rcn(e))return e}return null}function Sct(){let t=c3();return t||ot(`no migrations directory found (tried ${vct.join(", ")})`),t}import{readFileSync as Ncn,writeFileSync as Ocn,mkdirSync as kcn,existsSync as Iye}from"node:fs";import{join as Bcn,dirname as Mcn}from"node:path";var Pcn=".zenku",Lcn="project.json",Fcn=Ct.object({instanceId:Ct.string(),backendUrl:Ct.string().url()});function wye(){return Bcn(process.cwd(),Pcn,Lcn)}function u3(){let t=wye();if(!Iye(t))throw new Error("no .zenku/project.json found \u2014 run `zenku project init` first");let e=Ncn(t,"utf-8"),n=JSON.parse(e);return Fcn.parse(n)}function MJ(t){let e=wye(),n=Mcn(e);Iye(n)||kcn(n,{recursive:!0}),Ocn(e,JSON.stringify(t,null,2)+`
1060
1060
  `)}function Cct(){return Iye(wye())}import{randomBytes as Tct}from"node:crypto";function PJ(t){if(!(t instanceof bd))return t instanceof Error?t.message:String(t);let e=[];t.message&&t.message!=="ClientResponseError"&&e.push(t.message);let n=t.response?.data;if(n&&typeof n=="object")for(let[r,i]of Object.entries(n))i?.message&&e.push(` ${r}: ${i.message}`);return e.length===0?`PocketBase error (${t.status})`:e.join(`
1061
- `)}function Ucn(t,e){let n=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,20),r=Tct(2).toString("hex");return`${t}${n}-${r}`}function zcn(){return Tct(16).toString("base64url")}async function CL(t){let e=new tm(t.registryPbUrl);e.autoCancellation(!1),e.authStore.save(t.token),t.accountId&&(e.beforeSend=(s,l)=>{let u=l.headers;return u["X-Account-Id"]=t.accountId,{url:s,options:l}});let n=t.instanceIdPrefix??"pb-",r=Ucn(n,t.name),i=`${r}.zenku.dev`,a=zcn(),o;try{o=await e.collection("instances").create({instance_id:r,domains:[i],pb_version:"latest",idle_ttl_ms:t.idleTtlMs??3e5,status:"active",account:t.accountId||void 0,env_vars:{PB_ADMIN_EMAIL:"admin@zenku.dev",PB_ADMIN_PASSWORD:a},migrations:t.migrations})}catch(s){throw new Error(`Failed to create instance "${r}":
1061
+ `)}function Ucn(t,e){let n=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,20),r=Tct(2).toString("hex");return`${t}${n}-${r}`}function zcn(){return Tct(16).toString("base64url")}async function CL(t){let e=new tm(t.registryPbUrl);e.autoCancellation(!1),e.authStore.save(t.token),t.accountId&&(e.beforeSend=(s,l)=>{let u=l.headers;return u["X-Account-Id"]=t.accountId,{url:s,options:l}});let n=t.instanceIdPrefix??"pb-",r=Ucn(n,t.name),i=`${r}.zenku.dev`,a=zcn(),o;try{o=await e.collection("instances").create({instance_id:r,domains:[i],pb_version:"latest",status:"active",account:t.accountId||void 0,expires_at:t.expiresAt||void 0,env_vars:{PB_ADMIN_EMAIL:"admin@zenku.dev",PB_ADMIN_PASSWORD:a},migrations:t.migrations})}catch(s){throw new Error(`Failed to create instance "${r}":
1062
1062
  ${PJ(s)}`)}return{id:o.id,instanceId:o.instance_id,domains:o.domains,backendUrl:`https://${i}`,env:o.env_vars,status:o.status}}async function Ict(t,e,n,r){let i=new tm(t);i.autoCancellation(!1),i.authStore.save(e);try{let a=await i.collection("instances").getFirstListItem(`instance_id = "${n}"`);await i.collection("instances").update(a.id,{migrations:r})}catch(a){throw new Error(`Failed to update migrations for "${n}":
1063
1063
  ${PJ(a)}`)}}async function TL(t,e,n){let r=new tm(t);r.autoCancellation(!1),r.authStore.save(e);try{let i=await r.collection("instances").getFirstListItem(`instance_id = "${n}"`),a=i.domains;return{id:i.id,instanceId:i.instance_id,domains:a,backendUrl:`https://${a[0]}`,env:i.env_vars??{},status:i.status}}catch(i){if(i instanceof bd&&i.status===404)return null;throw new Error(`Failed to get instance "${n}":
1064
1064
  ${PJ(i)}`)}}async function xye(t,e,n){let r=new tm(t);r.autoCancellation(!1),r.authStore.save(e);try{let i=await r.collection("instances").getFirstListItem(`instance_id = "${n}"`);await r.collection("instances").delete(i.id)}catch(i){throw new Error(`Failed to delete instance "${n}":
@@ -1066,7 +1066,7 @@ ${PJ(i)}`)}}async function d3(t,e=6e4,n=2e3){let r=Date.now()+e;for(;Date.now()<
1066
1066
  `)||n===""?"":`
1067
1067
  `}${r}=${t}
1068
1068
  `}$cn(e,n)}function wct(t){let e=new Jn("project").description("Manage project backend instances");e.command("init").description("Initialize a new backend instance for this project").option("-n, --name <name>","project name (default: auto-detect)").action(async n=>{Cct()&&ot(".zenku/project.json already exists \u2014 run `zenku db fresh` to reset, or delete .zenku/ to start over");let{profile:r,token:i}=await vd(),a=pv(r),o=sc(r),s=n.name??LJ(),l={},u=c3();u&&(l=l3(u));let p=Object.keys(l).length,f=await dn("Creating backend instance",()=>CL({name:s,registryPbUrl:a,token:i,accountId:o,migrations:l}));mn("Waiting for instance to become healthy..."),await dn("Starting instance",()=>d3(f.backendUrl)),MJ({instanceId:f.instanceId,backendUrl:f.backendUrl}),FJ(f.backendUrl),Nt({json:()=>({instanceId:f.instanceId,backendUrl:f.backendUrl,domains:f.domains,migrations:p}),human:()=>{On("Project initialized!"),mn(" Instance: %s",f.instanceId),mn(" Backend: %s",f.backendUrl),mn(" Migrations: %s files pushed",p),mn(""),mn("Updated .env with ZENKU_URL, NEXT_PUBLIC_ZENKU_URL, VITE_ZENKU_URL")}})}),e.command("info").description("Show project backend instance info").action(async()=>{let n=u3(),{profile:r,token:i}=await vd(),a=pv(r),o=await dn("Fetching instance info",()=>TL(a,i,n.instanceId));o||ot("instance %s not found on registry",n.instanceId),Nt({json:()=>({instanceId:o.instanceId,backendUrl:o.backendUrl,domains:o.domains,status:o.status,adminEmail:o.env.PB_ADMIN_EMAIL,adminPassword:o.env.PB_ADMIN_PASSWORD}),human:()=>{mn("Instance: %s",o.instanceId),mn("Backend URL: %s",o.backendUrl),mn("Status: %s",o.status),mn("Admin Email: %s",o.env.PB_ADMIN_EMAIL??"n/a"),mn("Admin Password: %s",o.env.PB_ADMIN_PASSWORD??"n/a")}})}),t.addCommand(e)}import{writeFileSync as Ycn,mkdirSync as Kcn}from"node:fs";import{dirname as Wcn}from"node:path";async function Zcn(t,e,n){let r=await fetch(`${t}/api/collections/_superusers/auth-with-password`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({identity:e,password:n})});if(!r.ok){let a=await r.text();throw new Error(`Auth failed (${r.status}): ${a}`)}return(await r.json()).token}async function Jcn(t,e){let n=[],r=1,i=200;for(;;){let a=await fetch(`${t}/api/collections?page=${r}&perPage=${i}`,{headers:{Authorization:e}});if(!a.ok){let s=await a.text();throw new Error(`Failed to fetch collections (${a.status}): ${s}`)}let o=await a.json();if(n.push(...o.items),r>=o.totalPages)break;r++}return n}var Xcn=["_mfas","_otps","_externalAuths","_authOrigins"];function xct(t){return Xcn.some(e=>t.name===e)}function jC(t){return t.split(/[-_]+/).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}function Dye(t){switch(t.type){case"text":case"editor":case"email":case"url":return"string";case"number":return"number";case"bool":return"boolean";case"date":case"autodate":return"ISODateString";case"select":{if(!t.values||t.values.length===0)return"string";let e=t.values.map(n=>`"${n}"`).join(" | ");return t.maxSelect&&t.maxSelect>1?`(${e})[]`:e}case"json":return"unknown";case"file":case"relation":return t.maxSelect&&t.maxSelect>1?"string[]":"string";case"geoPoint":return"{ lon: number; lat: number }";case"password":return"string";default:return"unknown"}}function eun(t,e){let n=[];n.push("/**"),n.push(" * PocketBase Types"),n.push(" *"),n.push(" * THIS FILE IS AUTO-GENERATED \u2014 DO NOT EDIT MANUALLY."),n.push(" *"),n.push(" * Regenerate with:"),n.push(" * pnpm db:types"),n.push(" *"),n.push(` * Source: ${t}`),n.push(` * Generated: ${new Date().toISOString()}`),n.push(" */"),n.push(""),n.push('import type { ZenkuClient, RecordService } from "@zenku/sdk/client";'),n.push(""),n.push('/** ISO 8601 datetime string as returned by PocketBase (e.g. `"2024-01-15 09:30:00.000Z"`). */'),n.push("export type ISODateString = string;"),n.push("");let r=e.filter(a=>!xct(a));r.sort((a,o)=>a.name==="_superusers"?-1:o.name==="_superusers"?1:a.name==="users"?-1:o.name==="users"?1:a.name.localeCompare(o.name));let i=[];for(let a of r){let o=jC(a.name);for(let s of a.fields)s.type==="select"&&s.values&&s.values.length>0&&!s.system&&i.push({enumName:`${o}${jC(s.name)}Options`,values:s.values})}if(i.length>0){n.push("// "+"=".repeat(76)),n.push("// Select field option enums"),n.push("// "+"=".repeat(76)),n.push("");for(let{enumName:a,values:o}of i){n.push(`export enum ${a} {`);for(let s of o){let l=s.toUpperCase().replace(/[^A-Z0-9]+/g,"_").replace(/^_|_$/g,"");n.push(` "${l}" = "${s}",`)}n.push("}"),n.push("")}}n.push("// "+"=".repeat(76)),n.push("// Record types for each collection"),n.push("// "+"=".repeat(76)),n.push("");for(let a of r){let o=`${jC(a.name)}Record`;if(a.type==="view"){n.push("/** View collection \u2014 read-only, no create/update input type. */"),n.push(`export type ${o} = never;`),n.push("");continue}let s=a.fields.filter(l=>!l.hidden&&l.name!=="id"&&!["autodate"].includes(l.type));n.push(`export interface ${o} {`);for(let l of s){let u=Dye(l),p=l.required?"":"?";n.push(` ${l.name}${p}: ${u};`)}n.push("}"),n.push("")}n.push("// "+"=".repeat(76)),n.push("// Response types (record fields + system fields)"),n.push("// "+"=".repeat(76)),n.push("");for(let a of r){let o=`${jC(a.name)}Record`,s=`${jC(a.name)}Response`,l=a.fields.filter(h=>!h.hidden&&(h.name==="id"||h.type==="autodate"));if(a.type==="view"){n.push(`export interface ${s} {`);let h=a.fields.filter(_=>!_.hidden);for(let _ of h){let y=_.primaryKey?"string":Dye(_);n.push(` ${_.name}: ${y};`)}n.push(" collectionId: string;"),n.push(" collectionName: string;"),n.push(" expand?: Record<string, unknown>;"),n.push("}"),n.push("");continue}let u=[],p=[],f=a.fields.filter(h=>!h.hidden&&h.name!=="id"&&!["autodate"].includes(h.type));a.type==="auth"&&(u.push("email"),p.push(" email?: string;"));for(let h of f)if(h.type==="select"&&!h.required&&(!h.maxSelect||h.maxSelect===1)&&h.values&&h.values.length>0){u.push(h.name);let _=h.values.map(y=>`"${y}"`).join(" | ");p.push(` ${h.name}: ${_} | "";`)}if(u.length>0){let h=u.map(_=>`"${_}"`).join(" | ");n.push(`export interface ${s} extends Omit<Required<${o}>, ${h}> {`)}else n.push(`export interface ${s} extends Required<${o}> {`);for(let h of p)n.push(h);for(let h of l){let _=h.primaryKey?"string":Dye(h);n.push(` ${h.name}: ${_};`)}n.push(" collectionId: string;"),n.push(" collectionName: string;"),n.push(" expand?: Record<string, unknown>;"),n.push("}"),n.push("")}n.push("// "+"=".repeat(76)),n.push("// Collection names"),n.push("// "+"=".repeat(76)),n.push(""),n.push("export enum Collections {");for(let a of r){let o=a.name.toUpperCase().replace(/^_/,"").replace(/[^A-Z0-9]+/g,"_");n.push(` ${o} = "${a.name}",`)}n.push("}"),n.push(""),n.push("// "+"=".repeat(76)),n.push("// Type maps"),n.push("// "+"=".repeat(76)),n.push(""),n.push("export type CollectionRecords = {");for(let a of r)n.push(` ${a.name}: ${jC(a.name)}Record;`);n.push("};"),n.push(""),n.push("export type CollectionResponses = {");for(let a of r)n.push(` ${a.name}: ${jC(a.name)}Response;`);n.push("};"),n.push(""),n.push("// "+"=".repeat(76)),n.push("// Typed client"),n.push("// "+"=".repeat(76)),n.push(""),n.push("export type TypedClient = ZenkuClient & {");for(let a of r){let o=`${jC(a.name)}Response`;n.push(` collection(idOrName: "${a.name}"): RecordService<${o}>;`)}return n.push("};"),n.push(""),n.join(`
1069
- `)}async function Dct(t){let{backendUrl:e,adminEmail:n,adminPassword:r,outFile:i}=t,a=await Zcn(e,n,r),o=await Jcn(e,a),s=eun(e,o),l=Wcn(i);return Kcn(l,{recursive:!0}),Ycn(i,s,"utf-8"),{collectionCount:o.filter(p=>!xct(p)).length,outFile:i}}function Rct(t){let e=new Jn("db").description("Manage project database schema and instances");e.command("push").description("Push local migrations to the remote backend").action(async()=>{let n=u3(),{profile:r,token:i}=await vd(),a=pv(r),o=Sct(),s=l3(o),l=Object.keys(s).length;await dn("Pushing migrations",()=>Ict(a,i,n.instanceId,s)),await dn("Waiting for instance restart",()=>d3(n.backendUrl)),Nt({json:()=>({instanceId:n.instanceId,migrations:l,backendUrl:n.backendUrl}),human:()=>{On("Pushed %s migration(s) to %s",l,n.instanceId)}})}),e.command("types").description("Generate TypeScript types from the remote backend schema").option("-o, --out <path>","output file path","packages/validators/src/db-types.ts").action(async n=>{let r=u3(),{profile:i,token:a}=await vd(),o=pv(i),s=await dn("Fetching instance info",()=>TL(o,a,r.instanceId));s||ot("instance %s not found on registry",r.instanceId);let l=s.env.PB_ADMIN_EMAIL,u=s.env.PB_ADMIN_PASSWORD;(!l||!u)&&ot("admin credentials not found in instance env vars \u2014 cannot generate types");let p=await dn("Generating types",()=>Dct({backendUrl:r.backendUrl,adminEmail:l,adminPassword:u,outFile:n.out}));Nt({json:()=>({collections:p.collectionCount,outFile:p.outFile}),human:()=>{On("%s collections \u2192 %s",p.collectionCount,p.outFile)}})}),e.command("create").description("Create a new database instance").option("--ephemeral","create a short-lived instance (30 min idle TTL)").option("-n, --name <name>","instance name","ephemeral").action(async n=>{let{profile:r,token:i}=await vd(),a=pv(r),o=sc(r),s={},l=c3();l&&(s=l3(l));let u=await dn("Creating instance",()=>CL({name:n.name,registryPbUrl:a,token:i,accountId:o,migrations:s,idleTtlMs:n.ephemeral?1800*1e3:void 0,instanceIdPrefix:n.ephemeral?"pb-eph-":"pb-"}));await dn("Waiting for instance",()=>d3(u.backendUrl)),Nt({json:()=>({instanceId:u.instanceId,backendUrl:u.backendUrl,domains:u.domains,ephemeral:n.ephemeral??!1,env:u.env}),human:()=>{On("Instance created!"),mn(" Instance ID: %s",u.instanceId),mn(" Backend URL: %s",u.backendUrl),n.ephemeral&&mn(" TTL: 30 minutes (ephemeral)")}})}),e.command("destroy").description("Delete a database instance").argument("<instance-id>","instance ID to destroy").action(async n=>{let{profile:r,token:i}=await vd(),a=pv(r);await dn("Deleting instance",()=>xye(a,i,n)),Nt({json:()=>({instanceId:n,deleted:!0}),human:()=>{On("Instance %s deleted",n)}})}),e.command("fresh").description("Reset database \u2014 delete and recreate with same config").action(async()=>{let n=u3(),{profile:r,token:i}=await vd(),a=pv(r),o=sc(r);await dn("Fetching instance info",()=>TL(a,i,n.instanceId))||ot("instance %s not found on registry",n.instanceId);let l={},u=c3();u&&(l=l3(u)),await dn("Deleting old instance",()=>xye(a,i,n.instanceId));let p=LJ(),f=await dn("Creating fresh instance",()=>CL({name:p,registryPbUrl:a,token:i,accountId:o,migrations:l}));await dn("Waiting for instance",()=>d3(f.backendUrl)),MJ({instanceId:f.instanceId,backendUrl:f.backendUrl}),FJ(f.backendUrl),Nt({json:()=>({oldInstanceId:n.instanceId,newInstanceId:f.instanceId,backendUrl:f.backendUrl}),human:()=>{On("Fresh instance created!"),mn(" Old: %s",n.instanceId),mn(" New: %s",f.instanceId),mn(" URL: %s",f.backendUrl),mn(""),mn("Updated .zenku/project.json and .env")}})}),t.addCommand(e)}import{closeSync as tun,existsSync as Oct,mkdirSync as nun,openSync as run,readFileSync as iun,renameSync as aun,rmSync as oun,writeFileSync as kct}from"node:fs";import{dirname as sun,join as Bct}from"node:path";var lun="update-state.json",cun="update.lock",Nct={version:1,lastCheckedAt:"",lastSeenLatestVersion:"",pendingNotice:null,lastNotifiedVersion:"",lastNotifiedAt:""};function Rye(){return Bct(dQ(),lun)}function uun(){return Bct(dQ(),cun)}function Mct(){let t=sun(Rye());Oct(t)||nun(t,{recursive:!0,mode:448})}function UJ(){let t=Rye();if(!Oct(t))return{...Nct};try{let e=JSON.parse(iun(t,"utf-8"));return{version:1,lastCheckedAt:e.lastCheckedAt??"",lastSeenLatestVersion:e.lastSeenLatestVersion??"",pendingNotice:e.pendingNotice??null,lastNotifiedVersion:e.lastNotifiedVersion??"",lastNotifiedAt:e.lastNotifiedAt??""}}catch{return{...Nct}}}function fv(t){Mct();let e=Rye(),n=`${e}.${process.pid}.tmp`;kct(n,JSON.stringify(t,null,2),{encoding:"utf-8",mode:384}),aun(n,e)}function Pct(){Mct();let t=uun(),e;try{e=run(t,"wx",384)}catch{return null}return kct(e,String(process.pid),{encoding:"utf-8"}),{release:()=>{try{tun(e)}catch{}oun(t,{force:!0})}}}function Nye(){return new Date().toISOString()}function dun(){let t=sf(),e=Ha(fo()),n;try{({profile:n}=Ja(e))}catch{n=t.profiles[e]}return{cfg:t,profileName:e,profile:n}}function pun(t,e,n=Date.now()){if(!t.lastCheckedAt)return!0;let r=Date.parse(t.lastCheckedAt);return Number.isFinite(r)?n-r>=e*6e4:!0}function zJ(t,e,n,r){return{version:t,message:e,command:n,channel:r,createdAt:Nye()}}function fun(t){return t==="bundle"?"cli-node":t==="standalone"||t==="npm-managed"?C$():null}function mun(t){return t==="development"}async function Lct(){if(vi("ZENKU_SCHEDULED")==="1")return;let t;try{t=dun()}catch{return}let{cfg:e,profile:n}=t,{effective:r}=f2(e,n);if(!r.enabled)return;let i=Pct();if(i)try{let a=UJ();if(!pun(a,r.checkIntervalMinutes))return;let o=T$(),s=T2();if(mun(o)){a.lastCheckedAt=Nye(),a.pendingNotice=null,fv(a);return}let l=fun(o);if(!l)return;let u=await x$(l,r.channel);if(a.lastCheckedAt=Nye(),a.lastSeenLatestVersion=u.version,u.version===s){a.pendingNotice=null,fv(a);return}if(o==="standalone"&&r.autoApplyStandalone){if(CPe(process.execPath))try{await w$(u,process.execPath,{allowSudo:!1}),a.pendingNotice=zJ(u.version,`Updated zenku to v${u.version}. Restart to use the new version.`,"",o),fv(a);return}catch{let h=wR("standalone");a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${h.message}`,h.command,o),fv(a);return}let f=wR("standalone");a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${f.message}`,f.command,o),fv(a);return}let p=wR(o);a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${p.message}`,p.command,o),fv(a)}catch{}finally{i.release()}}function Fct(t){t.command("_update-check",{hidden:!0}).description("Internal updater worker command").action(async()=>{await Lct()})}import{spawn as hun}from"node:child_process";function gun(t){let e=[],n=t;for(;n&&n.parent;)e.unshift(n.name()),n=n.parent;return e}function Aun(){let t=process.argv[1]??"";return!t||t.startsWith("-")?!1:t.endsWith(".js")||t.endsWith(".cjs")||t.endsWith(".mjs")||t.includes("zenku")}function _un(t){let e=process.execPath,n=Aun()?[process.argv[1],"_update-check","--non-interactive"]:["_update-check","--non-interactive"];return t&&n.push("--profile",t),{executable:e,args:n}}function yun(t){let e=gun(t);return!!(e.includes("_update-check")||e[0]==="upgrade"||vi("ZENKU_SCHEDULED")==="1"||vi("ZENKU_INTERNAL_UPDATE_CHECK")==="1")}function Eun(t,e){if(e)return e;let n=vi("ZENKU_PROFILE");return n||(t.defaultProfile?t.defaultProfile:"default")}function bun(t,e){let n=t.trim();return!e||n.includes(e)?n:`${n} Run: ${e}`}function vun(t,e,n){return t&&!e?"interactive":!t&&n?"stderr":"none"}function Sun(t,e,n=Date.now()){let r=t.pendingNotice;if(!r)return!1;if(!t.lastNotifiedVersion||t.lastNotifiedVersion!==r.version||!t.lastNotifiedAt)return!0;let i=Date.parse(t.lastNotifiedAt);return Number.isFinite(i)?n-i>=e*6e4:!0}function Cun(t,e){let n=vun(lf(),Hu(),e);if(n==="interactive"){process.stdout.write(`${t}
1069
+ `)}async function Dct(t){let{backendUrl:e,adminEmail:n,adminPassword:r,outFile:i}=t,a=await Zcn(e,n,r),o=await Jcn(e,a),s=eun(e,o),l=Wcn(i);return Kcn(l,{recursive:!0}),Ycn(i,s,"utf-8"),{collectionCount:o.filter(p=>!xct(p)).length,outFile:i}}function Rct(t){let e=new Jn("db").description("Manage project database schema and instances");e.command("push").description("Push local migrations to the remote backend").action(async()=>{let n=u3(),{profile:r,token:i}=await vd(),a=pv(r),o=Sct(),s=l3(o),l=Object.keys(s).length;await dn("Pushing migrations",()=>Ict(a,i,n.instanceId,s)),await dn("Waiting for instance restart",()=>d3(n.backendUrl)),Nt({json:()=>({instanceId:n.instanceId,migrations:l,backendUrl:n.backendUrl}),human:()=>{On("Pushed %s migration(s) to %s",l,n.instanceId)}})}),e.command("types").description("Generate TypeScript types from the remote backend schema").option("-o, --out <path>","output file path","packages/validators/src/db-types.ts").action(async n=>{let r=u3(),{profile:i,token:a}=await vd(),o=pv(i),s=await dn("Fetching instance info",()=>TL(o,a,r.instanceId));s||ot("instance %s not found on registry",r.instanceId);let l=s.env.PB_ADMIN_EMAIL,u=s.env.PB_ADMIN_PASSWORD;(!l||!u)&&ot("admin credentials not found in instance env vars \u2014 cannot generate types");let p=await dn("Generating types",()=>Dct({backendUrl:r.backendUrl,adminEmail:l,adminPassword:u,outFile:n.out}));Nt({json:()=>({collections:p.collectionCount,outFile:p.outFile}),human:()=>{On("%s collections \u2192 %s",p.collectionCount,p.outFile)}})}),e.command("create").description("Create a new database instance").option("--ephemeral","create a short-lived instance (30 min idle TTL)").option("-n, --name <name>","instance name","ephemeral").action(async n=>{let{profile:r,token:i}=await vd(),a=pv(r),o=sc(r),s={},l=c3();l&&(s=l3(l));let u=await dn("Creating instance",()=>CL({name:n.name,registryPbUrl:a,token:i,accountId:o,migrations:s,expiresAt:n.ephemeral?new Date(Date.now()+1800*1e3).toISOString():void 0,instanceIdPrefix:n.ephemeral?"pb-eph-":"pb-"}));await dn("Waiting for instance",()=>d3(u.backendUrl)),Nt({json:()=>({instanceId:u.instanceId,backendUrl:u.backendUrl,domains:u.domains,ephemeral:n.ephemeral??!1,env:u.env}),human:()=>{On("Instance created!"),mn(" Instance ID: %s",u.instanceId),mn(" Backend URL: %s",u.backendUrl),n.ephemeral&&mn(" Expires: in 30 minutes (auto-delete)")}})}),e.command("destroy").description("Delete a database instance").argument("<instance-id>","instance ID to destroy").action(async n=>{let{profile:r,token:i}=await vd(),a=pv(r);await dn("Deleting instance",()=>xye(a,i,n)),Nt({json:()=>({instanceId:n,deleted:!0}),human:()=>{On("Instance %s deleted",n)}})}),e.command("fresh").description("Reset database \u2014 delete and recreate with same config").action(async()=>{let n=u3(),{profile:r,token:i}=await vd(),a=pv(r),o=sc(r);await dn("Fetching instance info",()=>TL(a,i,n.instanceId))||ot("instance %s not found on registry",n.instanceId);let l={},u=c3();u&&(l=l3(u)),await dn("Deleting old instance",()=>xye(a,i,n.instanceId));let p=LJ(),f=await dn("Creating fresh instance",()=>CL({name:p,registryPbUrl:a,token:i,accountId:o,migrations:l}));await dn("Waiting for instance",()=>d3(f.backendUrl)),MJ({instanceId:f.instanceId,backendUrl:f.backendUrl}),FJ(f.backendUrl),Nt({json:()=>({oldInstanceId:n.instanceId,newInstanceId:f.instanceId,backendUrl:f.backendUrl}),human:()=>{On("Fresh instance created!"),mn(" Old: %s",n.instanceId),mn(" New: %s",f.instanceId),mn(" URL: %s",f.backendUrl),mn(""),mn("Updated .zenku/project.json and .env")}})}),t.addCommand(e)}import{closeSync as tun,existsSync as Oct,mkdirSync as nun,openSync as run,readFileSync as iun,renameSync as aun,rmSync as oun,writeFileSync as kct}from"node:fs";import{dirname as sun,join as Bct}from"node:path";var lun="update-state.json",cun="update.lock",Nct={version:1,lastCheckedAt:"",lastSeenLatestVersion:"",pendingNotice:null,lastNotifiedVersion:"",lastNotifiedAt:""};function Rye(){return Bct(dQ(),lun)}function uun(){return Bct(dQ(),cun)}function Mct(){let t=sun(Rye());Oct(t)||nun(t,{recursive:!0,mode:448})}function UJ(){let t=Rye();if(!Oct(t))return{...Nct};try{let e=JSON.parse(iun(t,"utf-8"));return{version:1,lastCheckedAt:e.lastCheckedAt??"",lastSeenLatestVersion:e.lastSeenLatestVersion??"",pendingNotice:e.pendingNotice??null,lastNotifiedVersion:e.lastNotifiedVersion??"",lastNotifiedAt:e.lastNotifiedAt??""}}catch{return{...Nct}}}function fv(t){Mct();let e=Rye(),n=`${e}.${process.pid}.tmp`;kct(n,JSON.stringify(t,null,2),{encoding:"utf-8",mode:384}),aun(n,e)}function Pct(){Mct();let t=uun(),e;try{e=run(t,"wx",384)}catch{return null}return kct(e,String(process.pid),{encoding:"utf-8"}),{release:()=>{try{tun(e)}catch{}oun(t,{force:!0})}}}function Nye(){return new Date().toISOString()}function dun(){let t=sf(),e=Ha(fo()),n;try{({profile:n}=Ja(e))}catch{n=t.profiles[e]}return{cfg:t,profileName:e,profile:n}}function pun(t,e,n=Date.now()){if(!t.lastCheckedAt)return!0;let r=Date.parse(t.lastCheckedAt);return Number.isFinite(r)?n-r>=e*6e4:!0}function zJ(t,e,n,r){return{version:t,message:e,command:n,channel:r,createdAt:Nye()}}function fun(t){return t==="bundle"?"cli-node":t==="standalone"||t==="npm-managed"?C$():null}function mun(t){return t==="development"}async function Lct(){if(vi("ZENKU_SCHEDULED")==="1")return;let t;try{t=dun()}catch{return}let{cfg:e,profile:n}=t,{effective:r}=f2(e,n);if(!r.enabled)return;let i=Pct();if(i)try{let a=UJ();if(!pun(a,r.checkIntervalMinutes))return;let o=T$(),s=T2();if(mun(o)){a.lastCheckedAt=Nye(),a.pendingNotice=null,fv(a);return}let l=fun(o);if(!l)return;let u=await x$(l,r.channel);if(a.lastCheckedAt=Nye(),a.lastSeenLatestVersion=u.version,u.version===s){a.pendingNotice=null,fv(a);return}if(o==="standalone"&&r.autoApplyStandalone){if(CPe(process.execPath))try{await w$(u,process.execPath,{allowSudo:!1}),a.pendingNotice=zJ(u.version,`Updated zenku to v${u.version}. Restart to use the new version.`,"",o),fv(a);return}catch{let h=wR("standalone");a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${h.message}`,h.command,o),fv(a);return}let f=wR("standalone");a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${f.message}`,f.command,o),fv(a);return}let p=wR(o);a.pendingNotice=zJ(u.version,`Update available: v${s} -> v${u.version}. ${p.message}`,p.command,o),fv(a)}catch{}finally{i.release()}}function Fct(t){t.command("_update-check",{hidden:!0}).description("Internal updater worker command").action(async()=>{await Lct()})}import{spawn as hun}from"node:child_process";function gun(t){let e=[],n=t;for(;n&&n.parent;)e.unshift(n.name()),n=n.parent;return e}function Aun(){let t=process.argv[1]??"";return!t||t.startsWith("-")?!1:t.endsWith(".js")||t.endsWith(".cjs")||t.endsWith(".mjs")||t.includes("zenku")}function _un(t){let e=process.execPath,n=Aun()?[process.argv[1],"_update-check","--non-interactive"]:["_update-check","--non-interactive"];return t&&n.push("--profile",t),{executable:e,args:n}}function yun(t){let e=gun(t);return!!(e.includes("_update-check")||e[0]==="upgrade"||vi("ZENKU_SCHEDULED")==="1"||vi("ZENKU_INTERNAL_UPDATE_CHECK")==="1")}function Eun(t,e){if(e)return e;let n=vi("ZENKU_PROFILE");return n||(t.defaultProfile?t.defaultProfile:"default")}function bun(t,e){let n=t.trim();return!e||n.includes(e)?n:`${n} Run: ${e}`}function vun(t,e,n){return t&&!e?"interactive":!t&&n?"stderr":"none"}function Sun(t,e,n=Date.now()){let r=t.pendingNotice;if(!r)return!1;if(!t.lastNotifiedVersion||t.lastNotifiedVersion!==r.version||!t.lastNotifiedAt)return!0;let i=Date.parse(t.lastNotifiedAt);return Number.isFinite(i)?n-i>=e*6e4:!0}function Cun(t,e){let n=vun(lf(),Hu(),e);if(n==="interactive"){process.stdout.write(`${t}
1070
1070
  `);return}n==="stderr"&&process.stderr.write(`[zenku update] ${t}
1071
1071
  `)}function Tun(t,e){let n=UJ();if(!Sun(n,t))return;let r=n.pendingNotice;r&&(Cun(bun(r.message,r.command),e),n.lastNotifiedVersion=r.version,n.lastNotifiedAt=new Date().toISOString(),fv(n))}function Iun(t){let{executable:e,args:n}=_un(t);hun(e,n,{detached:!0,stdio:"ignore",env:{...process.env,ZENKU_INTERNAL_UPDATE_CHECK:"1"}}).unref()}function Uct(t,e){if(yun(t))return;let n;try{n=sf()}catch{return}let r=Eun(n,e.profile),i=n.profiles[r],{effective:a}=f2(n,i);if(a.enabled){try{Tun(a.checkIntervalMinutes,a.notifyInNonInteractive)}catch{}try{Iun(r)}catch{}}}function zct(){let t=new Jn;return t.name("zenku").description("Zenku CLI \u2014 manage PocketBase services from the terminal.").version(T2()).option("--profile <name>","config profile to use").option("--tenant <id>","override tenant ID for this command").option("--account <id>","override account ID for this command").option("--json","output as JSON").option("--interactive","force interactive mode").option("--non-interactive","force non-interactive mode").hook("preAction",e=>{let n=e.optsWithGlobals();uxe(n.profile??""),Kwe(n.tenant??""),Wwe(n.account??""),Pwe(!!n.json),n.interactive&&n.nonInteractive&&ot("--interactive and --non-interactive cannot be used together"),n.interactive?Rne("interactive"):n.nonInteractive&&Rne("non-interactive"),Uct(e,{profile:n.profile})}),t.commandsGroup("Core Commands:"),vxe(t),Txe(t),t7e(t),y7e(t),t.commandsGroup("Backend Commands:"),wct(t),Rct(t),t.commandsGroup("Platform Commands:"),Exe(t),bxe(t),E7e(t),dPe(t),t.commandsGroup("Auth & Config:"),mxe(t),hxe(t),gxe(t),_xe(t),t.commandsGroup("Tool Server:"),fct(t),gct(t),Act(t),Ect(t),t.commandsGroup("Other:"),RPe(t),_Pe(t),xPe(t),Fct(t),t.addHelpCommand(new Jn("help").argument("[command]")),t}var wun=zct();wun.parse();
1072
1072
  /*! Bundled license information: