vibelearn 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ ${s.stack}`:` ${s.message}`:this.getLevel()===0&&typeof s=="object"?l=`
14
14
  `,"utf8")}catch(f){process.stderr.write(`[LOGGER] Failed to write to log file: ${f}
15
15
  `)}else process.stderr.write(p+`
16
16
  `)}debug(e,r,n,i){this.log(0,e,r,n,i)}info(e,r,n,i){this.log(1,e,r,n,i)}warn(e,r,n,i){this.log(2,e,r,n,i)}error(e,r,n,i){this.log(3,e,r,n,i)}dataIn(e,r,n,i){this.info(e,`\u2192 ${r}`,n,i)}dataOut(e,r,n,i){this.info(e,`\u2190 ${r}`,n,i)}success(e,r,n,i){this.info(e,`\u2713 ${r}`,n,i)}failure(e,r,n,i){this.error(e,`\u2717 ${r}`,n,i)}timing(e,r,n,i){this.info(e,`\u23F1 ${r}`,i,{duration:`${n}ms`})}happyPathError(e,r,n,i,s=""){let u=((new Error().stack||"").split(`
17
- `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,i),s}},b=new m0});function xC(t){return process.platform==="win32"?Math.round(t*Mr.WINDOWS_MULTIPLIER):t}var Mr,ut,Tn=ht(()=>{"use strict";Mr={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},ut={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2,USER_MESSAGE_ONLY:3}});var wC={};vn(wC,{SettingsDefaultsManager:()=>Re});var fi,km,SC,Re,kr=ht(()=>{"use strict";fi=require("fs"),km=require("path"),SC=require("os"),Re=class{static DEFAULTS={VIBELEARN_MODEL:"claude-sonnet-4-5",VIBELEARN_WORKER_PORT:"37778",VIBELEARN_WORKER_HOST:"127.0.0.1",VIBELEARN_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",VIBELEARN_PROVIDER:"claude",VIBELEARN_CLAUDE_AUTH_METHOD:"cli",VIBELEARN_GEMINI_API_KEY:"",VIBELEARN_GEMINI_MODEL:"gemini-2.5-flash-lite",VIBELEARN_GEMINI_RATE_LIMITING_ENABLED:"true",VIBELEARN_OPENROUTER_API_KEY:"",VIBELEARN_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",VIBELEARN_OPENROUTER_SITE_URL:"",VIBELEARN_OPENROUTER_APP_NAME:"vibelearn",VIBELEARN_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",VIBELEARN_OPENROUTER_MAX_TOKENS:"100000",VIBELEARN_DATA_DIR:(0,km.join)((0,SC.homedir)(),".vibelearn"),VIBELEARN_LOG_LEVEL:"INFO",VIBELEARN_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",VIBELEARN_MAX_CONCURRENT_AGENTS:"2",VIBELEARN_EXCLUDED_PROJECTS:"",VIBELEARN_CONTEXT_OBSERVATIONS:"50",VIBELEARN_CONTEXT_FULL_COUNT:"3",VIBELEARN_CONTEXT_FULL_FIELD:"narrative",VIBELEARN_CONTEXT_SESSION_COUNT:"10",VIBELEARN_CONTEXT_SHOW_READ_TOKENS:"true",VIBELEARN_CONTEXT_SHOW_WORK_TOKENS:"true",VIBELEARN_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",VIBELEARN_CONTEXT_SHOW_SAVINGS_PERCENT:"true",VIBELEARN_CONTEXT_SHOW_LAST_SUMMARY:"true",VIBELEARN_CONTEXT_SHOW_LAST_MESSAGE:"true",VIBELEARN_CONTEXT_OBSERVATION_TYPES:"",VIBELEARN_CONTEXT_OBSERVATION_CONCEPTS:"",VIBELEARN_FOLDER_CLAUDEMD_ENABLED:"false",VIBELEARN_FOLDER_MD_EXCLUDE:"[]",VIBELEARN_API_KEY:"",VIBELEARN_API_URL:"https://api.vibelearn.dev",VIBELEARN_AUTO_SYNC:"true",VIBELEARN_SYNC_SNIPPETS:"true"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){let r=this.get(e);return r==="true"||r===!0}static applyEnvOverrides(e){let r={...e};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(e){try{if(!(0,fi.existsSync)(e)){let o=this.getAllDefaults();try{let a=(0,km.dirname)(e);(0,fi.existsSync)(a)||(0,fi.mkdirSync)(a,{recursive:!0}),(0,fi.writeFileSync)(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(o)}let r=(0,fi.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,fi.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o)}}let s={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(s[o]=i[o]);return this.applyEnvOverrides(s)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.applyEnvOverrides(this.getAllDefaults())}}}});var PC={};vn(PC,{ARCHIVES_DIR:()=>h0,BACKUPS_DIR:()=>IC,CLAUDE_COMMANDS_DIR:()=>RC,CLAUDE_CONFIG_DIR:()=>fo,CLAUDE_MD_PATH:()=>WW,CLAUDE_SETTINGS_PATH:()=>GW,DATA_DIR:()=>Yt,DB_PATH:()=>jl,LOGS_DIR:()=>$C,MARKETPLACE_ROOT:()=>Hi,MODES_DIR:()=>g0,OBSERVER_SESSIONS_DIR:()=>Im,TRASH_DIR:()=>TC,USER_CONFIG_PATH:()=>BW,USER_SETTINGS_PATH:()=>Qt,VECTOR_DB_DIR:()=>VW,createBackupFilename:()=>t7,ensureAllClaudeDirs:()=>QW,ensureAllDataDirs:()=>XW,ensureDir:()=>$r,ensureModesDir:()=>YW,getCurrentProjectName:()=>OC,getPackageCommandsDir:()=>e7,getPackageRoot:()=>Tr,getProjectArchiveDir:()=>KW,getWorkerSocketPath:()=>JW});function FW(){return typeof __dirname<"u"?__dirname:(0,st.dirname)((0,kC.fileURLToPath)(r7.url))}function HW(){if(process.env.VIBELEARN_DATA_DIR)return process.env.VIBELEARN_DATA_DIR.replace(/^~(?=$|\/)/,(0,$m.homedir)());let t=(0,st.join)((0,$m.homedir)(),".vibelearn"),e=(0,st.join)(t,"settings.json");try{if((0,Tm.existsSync)(e)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(e,"utf-8")),i=n.env??n;if(i.VIBELEARN_DATA_DIR)return i.VIBELEARN_DATA_DIR}}catch{}return t}function KW(t){return(0,st.join)(h0,t)}function JW(t){return(0,st.join)(Yt,`worker-${t}.sock`)}function $r(t){(0,Tm.mkdirSync)(t,{recursive:!0})}function XW(){$r(Yt),$r(h0),$r($C),$r(TC),$r(IC),$r(g0)}function YW(){$r(g0)}function QW(){$r(fo),$r(RC)}function OC(){try{let t=(0,EC.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,st.basename)((0,st.dirname)(t))+"/"+(0,st.basename)(t)}catch(t){b.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t);let e=process.cwd();return(0,st.basename)((0,st.dirname)(e))+"/"+(0,st.basename)(e)}}function Tr(){return(0,st.join)(ZW,"..")}function e7(){let t=Tr();return(0,st.join)(t,"commands")}function t7(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var st,$m,Tm,EC,kC,r7,ZW,Yt,fo,Hi,h0,$C,TC,IC,g0,Qt,jl,BW,VW,Im,GW,RC,WW,qt=ht(()=>{"use strict";st=require("path"),$m=require("os"),Tm=require("fs"),EC=require("child_process"),kC=require("url");ie();r7={};ZW=FW();Yt=HW(),fo=process.env.CLAUDE_CONFIG_DIR||(0,st.join)((0,$m.homedir)(),".claude"),Hi=(0,st.join)(fo,"plugins","marketplaces","vibelearn"),h0=(0,st.join)(Yt,"archives"),$C=(0,st.join)(Yt,"logs"),TC=(0,st.join)(Yt,"trash"),IC=(0,st.join)(Yt,"backups"),g0=(0,st.join)(Yt,"modes"),Qt=(0,st.join)(Yt,"settings.json"),jl=(0,st.join)(Yt,"vibelearn.db"),BW=(0,st.join)(Yt,"config.json"),VW=(0,st.join)(Yt,"vector-db"),Im=(0,st.join)(Yt,"observer-sessions"),GW=(0,st.join)(fo,"settings.json"),RC=(0,st.join)(fo,"commands"),WW=(0,st.join)(fo,"CLAUDE.md")});function n7(t,e={},r){return new Promise((n,i)=>{let s=setTimeout(()=>i(new Error(`Request timed out after ${r}ms`)),r);fetch(t,e).then(o=>{clearTimeout(s),n(o)},o=>{clearTimeout(s),i(o)})})}function dn(){if(Dl!==null)return Dl;let t=Rm.default.join(Re.get("VIBELEARN_DATA_DIR"),"settings.json"),e=Re.loadFromFile(t);return Dl=parseInt(e.VIBELEARN_WORKER_PORT,10),Dl}function y0(){if(zl!==null)return zl;let t=Rm.default.join(Re.get("VIBELEARN_DATA_DIR"),"settings.json");return zl=Re.loadFromFile(t).VIBELEARN_WORKER_HOST,zl}function NC(){Dl=null,zl=null}function i7(t){return`http://${y0()}:${dn()}${t}`}function Gt(t,e={}){let r=e.method??"GET",n=e.timeoutMs??v0,i=i7(t),s={method:r};return e.headers&&(s.headers=e.headers),e.body&&(s.body=e.body),n>0?n7(i,s,n):fetch(i,s)}async function s7(){return(await Gt("/api/health",{timeoutMs:v0})).ok}function o7(){try{let t=Rm.default.join(Hi,"package.json");return JSON.parse((0,CC.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return b.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function a7(){let t=await Gt("/api/version",{timeoutMs:v0});if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function c7(){try{let t=o7();if(t==="unknown")return;let e=await a7();if(e==="unknown")return;t!==e&&b.debug("SYSTEM","Version check",{pluginVersion:t,workerVersion:e,note:"Mismatch will be auto-restarted by worker-service start command"})}catch(t){b.debug("SYSTEM","Version check failed",{error:t instanceof Error?t.message:String(t)})}}async function In(){try{if(await s7())return await c7(),!0}catch(t){b.debug("SYSTEM","Worker health check failed",{error:t instanceof Error?t.message:String(t)})}return b.warn("SYSTEM","Worker not healthy, hook will proceed gracefully"),!1}var Rm,CC,v0,Dl,zl,Jr=ht(()=>{"use strict";Rm=nt(require("path"),1),CC=require("fs");ie();Tn();kr();qt();v0=(()=>{let t=process.env.VIBELEARN_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;b.warn("SYSTEM","Invalid VIBELEARN_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return xC(Mr.HEALTH_CHECK)})();Dl=null,zl=null});var hi=T((q$e,yN)=>{var C7=require("path").relative;yN.exports=z7;var N7=process.cwd();function gN(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i<r.length;i++){var s=r[i];if(s&&(s==="*"||s.toLowerCase()===n))return!0}return!1}function A7(t,e,r){var n=Object.getOwnPropertyDescriptor(t,e),i=n.value;return n.get=function(){return i},n.writable&&(n.set=function(o){return i=o}),delete n.value,delete n.writable,Object.defineProperty(t,e,n),n}function j7(t){for(var e="",r=0;r<t;r++)e+=", arg"+r;return e.substr(2)}function D7(t){var e=this.name+": "+this.namespace;this.message&&(e+=" deprecated "+this.message);for(var r=0;r<t.length;r++)e+=`
17
+ `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",d={...n,location:l};return this.warn(e,`[HAPPY-PATH] ${r}`,d,i),s}},b=new m0});function xC(t){return process.platform==="win32"?Math.round(t*Mr.WINDOWS_MULTIPLIER):t}var Mr,ut,Tn=ht(()=>{"use strict";Mr={DEFAULT:3e5,HEALTH_CHECK:3e3,POST_SPAWN_WAIT:5e3,READINESS_WAIT:3e4,PORT_IN_USE_WAIT:3e3,WORKER_STARTUP_WAIT:1e3,PRE_RESTART_SETTLE_DELAY:2e3,POWERSHELL_COMMAND:1e4,WINDOWS_MULTIPLIER:1.5},ut={SUCCESS:0,FAILURE:1,BLOCKING_ERROR:2,USER_MESSAGE_ONLY:3}});var wC={};vn(wC,{SettingsDefaultsManager:()=>Re});var fi,km,SC,Re,kr=ht(()=>{"use strict";fi=require("fs"),km=require("path"),SC=require("os"),Re=class{static DEFAULTS={VIBELEARN_MODEL:"claude-sonnet-4-5",VIBELEARN_WORKER_PORT:"37778",VIBELEARN_WORKER_HOST:"127.0.0.1",VIBELEARN_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",VIBELEARN_PROVIDER:"claude",VIBELEARN_CLAUDE_AUTH_METHOD:"cli",VIBELEARN_GEMINI_API_KEY:"",VIBELEARN_GEMINI_MODEL:"gemini-2.5-flash-lite",VIBELEARN_GEMINI_RATE_LIMITING_ENABLED:"true",VIBELEARN_OPENROUTER_API_KEY:"",VIBELEARN_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",VIBELEARN_OPENROUTER_SITE_URL:"",VIBELEARN_OPENROUTER_APP_NAME:"vibelearn",VIBELEARN_OPENROUTER_MAX_CONTEXT_MESSAGES:"20",VIBELEARN_OPENROUTER_MAX_TOKENS:"100000",VIBELEARN_DATA_DIR:(0,km.join)((0,SC.homedir)(),".vibelearn"),VIBELEARN_LOG_LEVEL:"INFO",VIBELEARN_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",VIBELEARN_MAX_CONCURRENT_AGENTS:"2",VIBELEARN_EXCLUDED_PROJECTS:"",VIBELEARN_CONTEXT_OBSERVATIONS:"50",VIBELEARN_CONTEXT_FULL_COUNT:"3",VIBELEARN_CONTEXT_FULL_FIELD:"narrative",VIBELEARN_CONTEXT_SESSION_COUNT:"10",VIBELEARN_CONTEXT_SHOW_READ_TOKENS:"true",VIBELEARN_CONTEXT_SHOW_WORK_TOKENS:"true",VIBELEARN_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",VIBELEARN_CONTEXT_SHOW_SAVINGS_PERCENT:"true",VIBELEARN_CONTEXT_SHOW_LAST_SUMMARY:"true",VIBELEARN_CONTEXT_SHOW_LAST_MESSAGE:"true",VIBELEARN_CONTEXT_OBSERVATION_TYPES:"",VIBELEARN_CONTEXT_OBSERVATION_CONCEPTS:"",VIBELEARN_FOLDER_CLAUDEMD_ENABLED:"false",VIBELEARN_FOLDER_MD_EXCLUDE:"[]",VIBELEARN_API_KEY:"",VIBELEARN_API_URL:"https://vibelearn.dev",VIBELEARN_AUTO_SYNC:"true",VIBELEARN_SYNC_SNIPPETS:"true"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return process.env[e]??this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){let r=this.get(e);return r==="true"||r===!0}static applyEnvOverrides(e){let r={...e};for(let n of Object.keys(this.DEFAULTS))process.env[n]!==void 0&&(r[n]=process.env[n]);return r}static loadFromFile(e){try{if(!(0,fi.existsSync)(e)){let o=this.getAllDefaults();try{let a=(0,km.dirname)(e);(0,fi.existsSync)(a)||(0,fi.mkdirSync)(a,{recursive:!0}),(0,fi.writeFileSync)(e,JSON.stringify(o,null,2),"utf-8"),console.log("[SETTINGS] Created settings file with defaults:",e)}catch(a){console.warn("[SETTINGS] Failed to create settings file, using in-memory defaults:",e,a)}return this.applyEnvOverrides(o)}let r=(0,fi.readFileSync)(e,"utf-8"),n=JSON.parse(r),i=n;if(n.env&&typeof n.env=="object"){i=n.env;try{(0,fi.writeFileSync)(e,JSON.stringify(i,null,2),"utf-8"),console.log("[SETTINGS] Migrated settings file from nested to flat schema:",e)}catch(o){console.warn("[SETTINGS] Failed to auto-migrate settings file:",e,o)}}let s={...this.DEFAULTS};for(let o of Object.keys(this.DEFAULTS))i[o]!==void 0&&(s[o]=i[o]);return this.applyEnvOverrides(s)}catch(r){return console.warn("[SETTINGS] Failed to load settings, using defaults:",e,r),this.applyEnvOverrides(this.getAllDefaults())}}}});var PC={};vn(PC,{ARCHIVES_DIR:()=>h0,BACKUPS_DIR:()=>IC,CLAUDE_COMMANDS_DIR:()=>RC,CLAUDE_CONFIG_DIR:()=>fo,CLAUDE_MD_PATH:()=>WW,CLAUDE_SETTINGS_PATH:()=>GW,DATA_DIR:()=>Yt,DB_PATH:()=>jl,LOGS_DIR:()=>$C,MARKETPLACE_ROOT:()=>Hi,MODES_DIR:()=>g0,OBSERVER_SESSIONS_DIR:()=>Im,TRASH_DIR:()=>TC,USER_CONFIG_PATH:()=>BW,USER_SETTINGS_PATH:()=>Qt,VECTOR_DB_DIR:()=>VW,createBackupFilename:()=>t7,ensureAllClaudeDirs:()=>QW,ensureAllDataDirs:()=>XW,ensureDir:()=>$r,ensureModesDir:()=>YW,getCurrentProjectName:()=>OC,getPackageCommandsDir:()=>e7,getPackageRoot:()=>Tr,getProjectArchiveDir:()=>KW,getWorkerSocketPath:()=>JW});function FW(){return typeof __dirname<"u"?__dirname:(0,st.dirname)((0,kC.fileURLToPath)(r7.url))}function HW(){if(process.env.VIBELEARN_DATA_DIR)return process.env.VIBELEARN_DATA_DIR.replace(/^~(?=$|\/)/,(0,$m.homedir)());let t=(0,st.join)((0,$m.homedir)(),".vibelearn"),e=(0,st.join)(t,"settings.json");try{if((0,Tm.existsSync)(e)){let{readFileSync:r}=require("fs"),n=JSON.parse(r(e,"utf-8")),i=n.env??n;if(i.VIBELEARN_DATA_DIR)return i.VIBELEARN_DATA_DIR}}catch{}return t}function KW(t){return(0,st.join)(h0,t)}function JW(t){return(0,st.join)(Yt,`worker-${t}.sock`)}function $r(t){(0,Tm.mkdirSync)(t,{recursive:!0})}function XW(){$r(Yt),$r(h0),$r($C),$r(TC),$r(IC),$r(g0)}function YW(){$r(g0)}function QW(){$r(fo),$r(RC)}function OC(){try{let t=(0,EC.execSync)("git rev-parse --show-toplevel",{cwd:process.cwd(),encoding:"utf8",stdio:["pipe","pipe","ignore"],windowsHide:!0}).trim();return(0,st.basename)((0,st.dirname)(t))+"/"+(0,st.basename)(t)}catch(t){b.debug("SYSTEM","Git root detection failed, using cwd basename",{cwd:process.cwd()},t);let e=process.cwd();return(0,st.basename)((0,st.dirname)(e))+"/"+(0,st.basename)(e)}}function Tr(){return(0,st.join)(ZW,"..")}function e7(){let t=Tr();return(0,st.join)(t,"commands")}function t7(t){let e=new Date().toISOString().replace(/[:.]/g,"-").replace("T","_").slice(0,19);return`${t}.backup.${e}`}var st,$m,Tm,EC,kC,r7,ZW,Yt,fo,Hi,h0,$C,TC,IC,g0,Qt,jl,BW,VW,Im,GW,RC,WW,qt=ht(()=>{"use strict";st=require("path"),$m=require("os"),Tm=require("fs"),EC=require("child_process"),kC=require("url");ie();r7={};ZW=FW();Yt=HW(),fo=process.env.CLAUDE_CONFIG_DIR||(0,st.join)((0,$m.homedir)(),".claude"),Hi=(0,st.join)(fo,"plugins","marketplaces","vibelearn"),h0=(0,st.join)(Yt,"archives"),$C=(0,st.join)(Yt,"logs"),TC=(0,st.join)(Yt,"trash"),IC=(0,st.join)(Yt,"backups"),g0=(0,st.join)(Yt,"modes"),Qt=(0,st.join)(Yt,"settings.json"),jl=(0,st.join)(Yt,"vibelearn.db"),BW=(0,st.join)(Yt,"config.json"),VW=(0,st.join)(Yt,"vector-db"),Im=(0,st.join)(Yt,"observer-sessions"),GW=(0,st.join)(fo,"settings.json"),RC=(0,st.join)(fo,"commands"),WW=(0,st.join)(fo,"CLAUDE.md")});function n7(t,e={},r){return new Promise((n,i)=>{let s=setTimeout(()=>i(new Error(`Request timed out after ${r}ms`)),r);fetch(t,e).then(o=>{clearTimeout(s),n(o)},o=>{clearTimeout(s),i(o)})})}function dn(){if(Dl!==null)return Dl;let t=Rm.default.join(Re.get("VIBELEARN_DATA_DIR"),"settings.json"),e=Re.loadFromFile(t);return Dl=parseInt(e.VIBELEARN_WORKER_PORT,10),Dl}function y0(){if(zl!==null)return zl;let t=Rm.default.join(Re.get("VIBELEARN_DATA_DIR"),"settings.json");return zl=Re.loadFromFile(t).VIBELEARN_WORKER_HOST,zl}function NC(){Dl=null,zl=null}function i7(t){return`http://${y0()}:${dn()}${t}`}function Gt(t,e={}){let r=e.method??"GET",n=e.timeoutMs??v0,i=i7(t),s={method:r};return e.headers&&(s.headers=e.headers),e.body&&(s.body=e.body),n>0?n7(i,s,n):fetch(i,s)}async function s7(){return(await Gt("/api/health",{timeoutMs:v0})).ok}function o7(){try{let t=Rm.default.join(Hi,"package.json");return JSON.parse((0,CC.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return b.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function a7(){let t=await Gt("/api/version",{timeoutMs:v0});if(!t.ok)throw new Error(`Failed to get worker version: ${t.status}`);return(await t.json()).version}async function c7(){try{let t=o7();if(t==="unknown")return;let e=await a7();if(e==="unknown")return;t!==e&&b.debug("SYSTEM","Version check",{pluginVersion:t,workerVersion:e,note:"Mismatch will be auto-restarted by worker-service start command"})}catch(t){b.debug("SYSTEM","Version check failed",{error:t instanceof Error?t.message:String(t)})}}async function In(){try{if(await s7())return await c7(),!0}catch(t){b.debug("SYSTEM","Worker health check failed",{error:t instanceof Error?t.message:String(t)})}return b.warn("SYSTEM","Worker not healthy, hook will proceed gracefully"),!1}var Rm,CC,v0,Dl,zl,Jr=ht(()=>{"use strict";Rm=nt(require("path"),1),CC=require("fs");ie();Tn();kr();qt();v0=(()=>{let t=process.env.VIBELEARN_HEALTH_TIMEOUT_MS;if(t){let e=parseInt(t,10);if(Number.isFinite(e)&&e>=500&&e<=3e5)return e;b.warn("SYSTEM","Invalid VIBELEARN_HEALTH_TIMEOUT_MS, using default",{value:t,min:500,max:3e5})}return xC(Mr.HEALTH_CHECK)})();Dl=null,zl=null});var hi=T((q$e,yN)=>{var C7=require("path").relative;yN.exports=z7;var N7=process.cwd();function gN(t,e){for(var r=t.split(/[ ,]+/),n=String(e).toLowerCase(),i=0;i<r.length;i++){var s=r[i];if(s&&(s==="*"||s.toLowerCase()===n))return!0}return!1}function A7(t,e,r){var n=Object.getOwnPropertyDescriptor(t,e),i=n.value;return n.get=function(){return i},n.writable&&(n.set=function(o){return i=o}),delete n.value,delete n.writable,Object.defineProperty(t,e,n),n}function j7(t){for(var e="",r=0;r<t;r++)e+=", arg"+r;return e.substr(2)}function D7(t){var e=this.name+": "+this.namespace;this.message&&(e+=" deprecated "+this.message);for(var r=0;r<t.length;r++)e+=`
18
18
  at `+t[r].toString();return e}function z7(t){if(!t)throw new TypeError("argument namespace is required");var e=Mm(),r=Za(e[1]),n=r[0];function i(s){zm.call(i,s)}return i._file=n,i._ignored=L7(t),i._namespace=t,i._traced=U7(t),i._warned=Object.create(null),i.function=H7,i.property=B7,i}function M7(t,e){var r=typeof t.listenerCount!="function"?t.listeners(e).length:t.listenerCount(e);return r>0}function L7(t){if(process.noDeprecation)return!0;var e=process.env.NO_DEPRECATION||"";return gN(e,t)}function U7(t){if(process.traceDeprecation)return!0;var e=process.env.TRACE_DEPRECATION||"";return gN(e,t)}function zm(t,e){var r=M7(process,"deprecation");if(!(!r&&this._ignored)){var n,i,s,o,a=0,c=!1,u=Mm(),l=this._file;for(e?(o=e,s=Za(u[1]),s.name=o.name,l=s[0]):(a=2,o=Za(u[a]),s=o);a<u.length;a++)if(n=Za(u[a]),i=n[0],i===l)c=!0;else if(i===this._file)l=this._file;else if(c)break;var d=n?o.join(":")+"__"+n.join(":"):void 0;if(!(d!==void 0&&d in this._warned)){this._warned[d]=!0;var p=t;if(p||(p=s===o||!s.name?hN(o):hN(s)),r){var f=vN(this._namespace,p,u.slice(a));process.emit("deprecation",f);return}var m=process.stderr.isTTY?F7:q7,g=m.call(this,p,n,u.slice(a));process.stderr.write(g+`
19
19
  `,"utf8")}}}function Za(t){var e=t.getFileName()||"<anonymous>",r=t.getLineNumber(),n=t.getColumnNumber();t.isEval()&&(e=t.getEvalOrigin()+", "+e);var i=[e,r,n];return i.callSite=t,i.name=t.getFunctionName(),i}function hN(t){var e=t.callSite,r=t.name;r||(r="<anonymous@"+D0(t)+">");var n=e.getThis(),i=n&&e.getTypeName();return i==="Object"&&(i=void 0),i==="Function"&&(i=n.name||i),i&&e.getMethodName()?i+"."+r:r}function q7(t,e,r){var n=new Date().toUTCString(),i=n+" "+this._namespace+" deprecated "+t;if(this._traced){for(var s=0;s<r.length;s++)i+=`
20
20
  at `+r[s].toString();return i}return e&&(i+=" at "+D0(e)),i}function F7(t,e,r){var n="\x1B[36;1m"+this._namespace+"\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m"+t+"\x1B[39m";if(this._traced){for(var i=0;i<r.length;i++)n+=`
@@ -43,7 +43,7 @@ return fn.apply(this, arguments)
43
43
  <pre>`+e+`</pre>
44
44
  </body>
45
45
  </html>
46
- `}Vz.exports=Tee;function Tee(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",s=n.onerror;return function(o){var a,c,u;if(!o&&Zz(e)){iE("cannot 404 after headers sent");return}if(o?(u=Oee(o),u===void 0?u=Cee(e):a=Iee(o),c=Ree(o,u,i)):(u=404,c="Cannot "+t.method+" "+yee(Pee(t))),iE("default %s",u),o&&s&&Eee(s,o,t,e),Zz(e)){iE("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}Nee(t,e,u,a,c)}}function Iee(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),n=0;n<r.length;n++){var i=r[n];e[i]=t.headers[i]}return e}}function Ree(t,e,r){var n;return r!=="production"&&(n=t.stack,!n&&typeof t.toString=="function"&&(n=t.toString())),n||Bz.message[e]}function Oee(t){if(typeof t.status=="number"&&t.status>=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function Pee(t){try{return bee.original(t).pathname}catch{return"resource"}}function Cee(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function Zz(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function Nee(t,e,r,n,i){function s(){var o=$ee(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=Bz.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),Aee(e,n),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(o,"utf8")),t.method==="HEAD"){e.end();return}e.end(o,"utf8")}if(kee(t)){s();return}xee(t),Hz(t,s),t.resume()}function Aee(t,e){if(e)for(var r=Object.keys(e),n=0;n<r.length;n++){var i=r[n];t.setHeader(i,e[i])}}});var gd=T((CIe,Jz)=>{"use strict";Jz.exports=jee;function Wz(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];r>0&&Array.isArray(i)?Wz(i,e,r-1):e.push(i)}return e}function Kz(t,e){for(var r=0;r<t.length;r++){var n=t[r];Array.isArray(n)?Kz(n,e):e.push(n)}return e}function jee(t,e){return e==null?Kz(t,[]):Wz(t,[],e)}});var eM=T((NIe,Qz)=>{Qz.exports=Yz;var Xz=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Yz(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,s=r.sensitive?"":"i",o=r.lookahead!==!1,a=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=Xz.exec(t.source);)f[0][0]!=="\\"&&e.push({name:f[1]||l++,optional:!1,offset:f.index});return t}if(Array.isArray(t))return t=t.map(function(m){return Yz(m,e,r).source}),new RegExp(t.join("|"),s);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(m,g,h,v,_,y,x,S){if(m[0]==="\\")return p+=m,d+=2,m;if(m===".")return p+="\\.",a+=1,d+=1,"\\.";if(g||h?p="":p+=t.slice(d,S),d=S+m.length,m==="*")return a+=3,"(.*)";if(m==="/(")return p+="/",a+=2,"/(?:";g=g||"",h=h?"\\.":"",x=x||"",_=_?_.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):p?"((?:(?!/|"+p+").)+?)":"([^/"+h+"]+?)",e.push({name:v,optional:!!x,offset:S+a});var w="(?:"+h+g+_+(y?"((?:[/"+h+"].+?)?)":"")+")"+x;return a+=w.length-m.length,w});f=Xz.exec(t);)f[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>f.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:f.index}),u++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",i?t+="$":t[t.length-1]!=="/"&&(t+=o?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,s)}});var sE=T((AIe,rM)=>{"use strict";var Dee=eM(),zee=Rn()("express:router:layer"),Mee=Object.prototype.hasOwnProperty;rM.exports=cc;function cc(t,e,r){if(!(this instanceof cc))return new cc(t,e,r);zee("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"<anonymous>",this.params=void 0,this.path=void 0,this.regexp=Dee(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}cc.prototype.handle_error=function(e,r,n,i){var s=this.handle;if(s.length!==4)return i(e);try{s(e,r,n,i)}catch(o){i(o)}};cc.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(s){n(s)}};cc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:tM(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,i=this.params,s=1;s<r.length;s++){var o=n[s-1],a=o.name,c=tM(r[s]);(c!==void 0||!Mee.call(i,a))&&(i[a]=c)}return!0};function tM(t){if(typeof t!="string"||t.length===0)return t;try{return decodeURIComponent(t)}catch(e){throw e instanceof URIError&&(e.message="Failed to decode param '"+t+"'",e.status=e.statusCode=400),e}}});var Eh=T((jIe,iM)=>{"use strict";var nM=require("http");iM.exports=Lee()||Uee();function Lee(){return nM.METHODS&&nM.METHODS.map(function(e){return e.toLowerCase()})}function Uee(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var oE=T((DIe,lM)=>{"use strict";var sM=Rn()("express:router:route"),oM=gd(),aM=sE(),qee=Eh(),cM=Array.prototype.slice,uM=Object.prototype.toString;lM.exports=uc;function uc(t){this.path=t,this.stack=[],sM("new %o",t),this.methods={}}uc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};uc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r<e.length;r++)e[r]=e[r].toUpperCase();return e};uc.prototype.dispatch=function(e,r,n){var i=0,s=this.stack,o=0;if(s.length===0)return n();var a=typeof e.method=="string"?e.method.toLowerCase():e.method;a==="head"&&!this.methods.head&&(a="get"),e.route=this,c();function c(u){if(u&&u==="route")return n();if(u&&u==="router")return n(u);if(++o>100)return setImmediate(c,u);var l=s[i++];if(!l)return n(u);l.method&&l.method!==a?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};uc.prototype.all=function(){for(var e=oM(cM.call(arguments)),r=0;r<e.length;r++){var n=e[r];if(typeof n!="function"){var i=uM.call(n),s="Route.all() requires a callback function but got a "+i;throw new TypeError(s)}var o=aM("/",{},n);o.method=void 0,this.methods._all=!0,this.stack.push(o)}return this};qee.forEach(function(t){uc.prototype[t]=function(){for(var e=oM(cM.call(arguments)),r=0;r<e.length;r++){var n=e[r];if(typeof n!="function"){var i=uM.call(n),s="Route."+t+"() requires a callback function but got a "+i;throw new Error(s)}sM("%s %o",t,this.path);var o=aM("/",{},n);o.method=t,this.methods[t]=!0,this.stack.push(o)}return this}})});var vd=T((dM,pM)=>{dM=pM.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var cE=T((zIe,gM)=>{"use strict";var Fee=oE(),mM=sE(),Zee=Eh(),aE=vd(),kh=Rn()("express:router"),fM=hi()("express"),Hee=gd(),Bee=ac(),Vee=ql(),Gee=/^\[object (\S+)\]$/,hM=Array.prototype.slice,Wee=Object.prototype.toString,Ro=gM.exports=function(t){var e=t||{};function r(n,i,s){r.handle(n,i,s)}return Vee(r,Ro),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};Ro.param=function(e,r){if(typeof e=="function"){fM("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,s;e[0]===":"&&(fM("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var o=0;o<i;++o)(s=n[o](e,r))&&(r=s);if(typeof r!="function")throw new Error("invalid param() call for "+e+", got "+r);return(this.params[e]=this.params[e]||[]).push(r),this};Ro.handle=function(e,r,n){var i=this;kh("dispatching %s %s",e.method,e.url);var s=0,o=Xee(e.url)||"",a="",c=!1,u=0,l={},d=[],p=i.stack,f=e.params,m=e.baseUrl||"",g=tte(n,e,"baseUrl","next","params");e.next=h,e.method==="OPTIONS"&&(g=nte(g,function(_,y){if(y||d.length===0)return _(y);rte(r,d,_)})),e.baseUrl=m,e.originalUrl=e.originalUrl||e.url,h();function h(_){var y=_==="route"?null:_;if(c&&(e.url=e.url.slice(1),c=!1),a.length!==0&&(e.baseUrl=m,e.url=o+a+e.url.slice(o.length),a=""),y==="router"){setImmediate(g,null);return}if(s>=p.length){setImmediate(g,y);return}if(++u>100)return setImmediate(h,_);var x=Jee(e);if(x==null)return g(y);for(var S,w,E;w!==!0&&s<p.length;)if(S=p[s++],w=Qee(S,x),E=S.route,typeof w!="boolean"&&(y=y||w),w===!0&&E){if(y){w=!1;continue}var $=e.method,R=E._handles_method($);!R&&$==="OPTIONS"&&Kee(d,E._options()),!R&&$!=="HEAD"&&(w=!1)}if(w!==!0)return g(y);E&&(e.route=E),e.params=i.mergeParams?ete(S.params,f):S.params;var N=S.path;i.process_params(S,l,e,r,function(A){A?h(y||A):E?S.handle_request(e,r,h):v(S,y,N,x),u=0})}function v(_,y,x,S){if(x.length!==0){if(x!==S.slice(0,x.length)){h(y);return}var w=S[x.length];if(w&&w!=="/"&&w!==".")return h(y);kh("trim prefix (%s) from url %s",x,e.url),a=x,e.url=o+e.url.slice(o.length+a.length),!o&&e.url[0]!=="/"&&(e.url="/"+e.url,c=!0),e.baseUrl=m+(a[a.length-1]==="/"?a.substring(0,a.length-1):a)}kh("%s %s : %s",_.name,x,e.originalUrl),y?_.handle_error(y,e,r,h):_.handle_request(e,r,h)}};Ro.process_params=function(e,r,n,i,s){var o=this.params,a=e.keys;if(!a||a.length===0)return s();var c=0,u,l=0,d,p,f,m;function g(v){if(v)return s(v);if(c>=a.length)return s();if(l=0,d=a[c++],u=d.name,p=n.params[u],f=o[u],m=r[u],p===void 0||!f)return g();if(m&&(m.match===p||m.error&&m.error!=="route"))return n.params[u]=m.value,g(m.error);r[u]=m={error:null,match:p,value:p},h()}function h(v){var _=f[l++];if(m.value=n.params[d.name],v){m.error=v,g(v);return}if(!_)return g();try{_(n,i,h,p,d.name)}catch(y){h(y)}}g()};Ro.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=Hee(hM.call(arguments,r));if(s.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o<s.length;o++){var e=s[o];if(typeof e!="function")throw new TypeError("Router.use() requires a middleware function but got a "+Yee(e));kh("use %o %s",n,e.name||"<anonymous>");var a=new mM(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);a.route=void 0,this.stack.push(a)}return this};Ro.route=function(e){var r=new Fee(e),n=new mM(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};Zee.concat("all").forEach(function(t){Ro[t]=function(e){var r=this.route(e);return r[t].apply(r,hM.call(arguments,1)),this}});function Kee(t,e){for(var r=0;r<e.length;r++){var n=e[r];t.indexOf(n)===-1&&t.push(n)}}function Jee(t){try{return Bee(t).pathname}catch{return}}function Xee(t){if(!(typeof t!="string"||t.length===0||t[0]==="/")){var e=t.indexOf("?"),r=e!==-1?e:t.length,n=t.slice(0,r).indexOf("://");return n!==-1?t.substring(0,t.indexOf("/",3+n)):void 0}}function Yee(t){var e=typeof t;return e!=="object"?e:Wee.call(t).replace(Gee,"$1")}function Qee(t,e){try{return t.match(e)}catch(r){return r}}function ete(t,e){if(typeof e!="object"||!e)return t;var r=aE({},e);if(!(0 in t)||!(0 in e))return aE(r,t);for(var n=0,i=0;n in t;)n++;for(;i in e;)i++;for(n--;n>=0;n--)t[n+i]=t[n],n<i&&delete t[n];return aE(r,t)}function tte(t,e){for(var r=new Array(arguments.length-2),n=new Array(arguments.length-2),i=0;i<r.length;i++)r[i]=arguments[i+2],n[i]=e[r[i]];return function(){for(var s=0;s<r.length;s++)e[r[s]]=n[s];return t.apply(this,arguments)}}function rte(t,e,r){try{var n=e.join(",");t.set("Allow",n),t.send(n)}catch(i){r(i)}}function nte(t,e){return function(){var n=new Array(arguments.length+1);n[0]=t;for(var i=0,s=arguments.length;i<s;i++)n[i+1]=arguments[i];e.apply(this,n)}}});var _M=T(yM=>{"use strict";var vM=ql();yM.init=function(t){return function(r,n,i){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=i,vM(r,t.request),vM(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var uE=T((LIe,bM)=>{"use strict";var ite=vd(),ste=ac(),ote=bh();bM.exports=function(e){var r=ite({},e),n=ote.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(s,o,a){if(!s.query){var c=ste(s).query;s.query=n(c,r)}a()}}});var kM=T((UIe,EM)=>{"use strict";var $h=Rn()("express:view"),yd=require("path"),ate=require("fs"),cte=yd.dirname,wM=yd.basename,ute=yd.extname,xM=yd.join,lte=yd.resolve;EM.exports=Th;function Th(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=ute(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var i=this.ext.slice(1);$h('require "%s"',i);var s=require(i).__express;if(typeof s!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=s}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Th.prototype.lookup=function(e){var r,n=[].concat(this.root);$h('lookup "%s"',e);for(var i=0;i<n.length&&!r;i++){var s=n[i],o=lte(s,e),a=cte(o),c=wM(o);r=this.resolve(a,c)}return r};Th.prototype.render=function(e,r){$h('render "%s"',this.path),this.engine(this.path,e,r)};Th.prototype.resolve=function(e,r){var n=this.ext,i=xM(e,r),s=SM(i);if(s&&s.isFile()||(i=xM(e,wM(r,n),"index"+n),s=SM(i),s&&s.isFile()))return i};function SM(t){$h('stat "%s"',t);try{return ate.statSync(t)}catch{return}}});var Rh=T((lE,TM)=>{var Ih=require("buffer"),Si=Ih.Buffer;function $M(t,e){for(var r in t)e[r]=t[r]}Si.from&&Si.alloc&&Si.allocUnsafe&&Si.allocUnsafeSlow?TM.exports=Ih:($M(Ih,lE),lE.Buffer=Oo);function Oo(t,e,r){return Si(t,e,r)}Oo.prototype=Object.create(Si.prototype);$M(Si,Oo);Oo.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Si(t,e,r)};Oo.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Si(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Oo.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Si(t)};Oo.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Ih.SlowBuffer(t)}});var pE=T((qIe,dE)=>{"use strict";dE.exports=xte;dE.exports.parse=kte;var IM=require("path").basename,dte=Rh().Buffer,pte=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,fte=/%[0-9A-Fa-f]{2}/,mte=/%([0-9A-Fa-f]{2})/g,OM=/[^\x20-\x7e\xa0-\xff]/g,hte=/\\([\u0000-\u007f])/g,gte=/([\\"])/g,RM=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,vte=/^[\x20-\x7e\x80-\xff]+$/,yte=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,_te=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,bte=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function xte(t,e){var r=e||{},n=r.type||"attachment",i=Ste(t,r.fallback);return wte(new CM(n,i))}function Ste(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&OM.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=IM(t),i=vte.test(n),s=typeof e!="string"?e&&PM(n):IM(e),o=typeof s=="string"&&s!==n;return(o||!i||fte.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?s:n),r}}function wte(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!yte.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o<s.length;o++){i=s[o];var a=i.substr(-1)==="*"?Rte(e[i]):Ite(e[i]);n+="; "+i+"="+a}return n}function Ete(t){var e=_te.exec(t);if(!e)throw new TypeError("invalid extended field value");var r=e[1].toLowerCase(),n=e[2],i,s=n.replace(mte,$te);switch(r){case"iso-8859-1":i=PM(s);break;case"utf-8":i=dte.from(s,"binary").toString("utf8");break;default:throw new TypeError("unsupported charset in extended field")}return i}function PM(t){return String(t).replace(OM,"?")}function kte(t){if(!t||typeof t!="string")throw new TypeError("argument string is required");var e=bte.exec(t);if(!e)throw new TypeError("invalid type format");var r=e[0].length,n=e[1].toLowerCase(),i,s=[],o={},a;for(r=RM.lastIndex=e[0].substr(-1)===";"?r-1:r;e=RM.exec(t);){if(e.index!==r)throw new TypeError("invalid parameter format");if(r+=e[0].length,i=e[1].toLowerCase(),a=e[2],s.indexOf(i)!==-1)throw new TypeError("invalid duplicate parameter");if(s.push(i),i.indexOf("*")+1===i.length){i=i.slice(0,-1),a=Ete(a),o[i]=a;continue}typeof o[i]!="string"&&(a[0]==='"'&&(a=a.substr(1,a.length-2).replace(hte,"$1")),o[i]=a)}if(r!==-1&&r!==t.length)throw new TypeError("invalid parameter format");return new CM(n,o)}function $te(t,e){return String.fromCharCode(parseInt(e,16))}function Tte(t){return"%"+String(t).charCodeAt(0).toString(16).toUpperCase()}function Ite(t){var e=String(t);return'"'+e.replace(gte,"\\$1")+'"'}function Rte(t){var e=String(t),r=encodeURIComponent(e).replace(pte,Tte);return"UTF-8''"+r}function CM(t,e){this.type=t,this.parameters=e}});var fE=T((FIe,jM)=>{"use strict";jM.exports=Cte;var Ote=require("crypto"),NM=require("fs").Stats,AM=Object.prototype.toString;function Pte(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=Ote.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function Cte(t,e){if(t==null)throw new TypeError("argument entity is required");var r=Nte(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var i=r?Ate(t):Pte(t);return n?"W/"+i:i}function Nte(t){return typeof NM=="function"&&t instanceof NM?!0:t&&typeof t=="object"&&"ctime"in t&&AM.call(t.ctime)==="[object Date]"&&"mtime"in t&&AM.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function Ate(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var mE=T((ZIe,zM)=>{"use strict";var jte=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;zM.exports=Dte;function Dte(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var i=t["cache-control"];if(i&&jte.test(i))return!1;if(n&&n!=="*"){var s=e.etag;if(!s)return!1;for(var o=!0,a=zte(n),c=0;c<a.length;c++){var u=a[c];if(u===s||u==="W/"+s||"W/"+u===s){o=!1;break}}if(o)return!1}if(r){var l=e["last-modified"],d=!l||!(DM(l)<=DM(r));if(d)return!1}return!0}function DM(t){var e=t&&Date.parse(t);return typeof e=="number"?e:NaN}function zte(t){for(var e=0,r=[],n=0,i=0,s=t.length;i<s;i++)switch(t.charCodeAt(i)){case 32:n===e&&(n=e=i+1);break;case 44:r.push(t.substring(n,e)),n=e=i+1;break;default:e=i+1;break}return r.push(t.substring(n,e)),r}});var MM=T((HIe,Mte)=>{Mte.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var UM=T((VIe,LM)=>{var BIe=require("path"),Lte=require("fs");function dc(){this.types=Object.create(null),this.extensions=Object.create(null)}dc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n<r.length;n++)process.env.DEBUG_MIME&&this.types[r[n]]&&console.warn((this._loading||"define()").replace(/.*\//,""),'changes "'+r[n]+'" extension type from '+this.types[r[n]]+" to "+e),this.types[r[n]]=e;this.extensions[e]||(this.extensions[e]=r[0])}};dc.prototype.load=function(t){this._loading=t;var e={},r=Lte.readFileSync(t,"ascii"),n=r.split(/[\r\n]+/);n.forEach(function(i){var s=i.replace(/\s*#.*|^\s*|\s*$/g,"").split(/\s+/);e[s.shift()]=s}),this.define(e),this._loading=null};dc.prototype.lookup=function(t,e){var r=t.replace(/^.*[\.\/\\]/,"").toLowerCase();return this.types[r]||e||this.default_type};dc.prototype.extension=function(t){var e=t.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();return this.extensions[e]};var lc=new dc;lc.define(MM());lc.default_type=lc.lookup("bin");lc.Mime=dc;lc.charsets={lookup:function(t,e){return/^text\/|^application\/(javascript|json)/.test(t)?"UTF-8":e}};LM.exports=lc});var FM=T((GIe,qM)=>{var pc=1e3,fc=pc*60,mc=fc*60,Po=mc*24,Ute=Po*7,qte=Po*365.25;qM.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Fte(t);if(r==="number"&&isFinite(t))return e.long?Hte(t):Zte(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Fte(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*qte;case"weeks":case"week":case"w":return r*Ute;case"days":case"day":case"d":return r*Po;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mc;case"minutes":case"minute":case"mins":case"min":case"m":return r*fc;case"seconds":case"second":case"secs":case"sec":case"s":return r*pc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Zte(t){var e=Math.abs(t);return e>=Po?Math.round(t/Po)+"d":e>=mc?Math.round(t/mc)+"h":e>=fc?Math.round(t/fc)+"m":e>=pc?Math.round(t/pc)+"s":t+"ms"}function Hte(t){var e=Math.abs(t);return e>=Po?Oh(t,e,Po,"day"):e>=mc?Oh(t,e,mc,"hour"):e>=fc?Oh(t,e,fc,"minute"):e>=pc?Oh(t,e,pc,"second"):t+" ms"}function Oh(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var hE=T((WIe,ZM)=>{"use strict";ZM.exports=Bte;function Bte(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var i=e.slice(n+1).split(","),s=[];s.type=e.slice(0,n);for(var o=0;o<i.length;o++){var a=i[o].split("-"),c=parseInt(a[0],10),u=parseInt(a[1],10);isNaN(c)?(c=t-u,u=t-1):isNaN(u)&&(u=t-1),u>t-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&s.push({start:c,end:u})}return s.length<1?-1:r&&r.combine?Vte(s):s}function Vte(t){for(var e=t.map(Gte).sort(Jte),r=0,n=1;n<e.length;n++){var i=e[n],s=e[r];i.start>s.end+1?e[++r]=i:i.end>s.end&&(s.end=i.end,s.index=Math.min(s.index,i.index))}e.length=r+1;var o=e.sort(Kte).map(Wte);return o.type=t.type,o}function Gte(t,e){return{start:t.start,end:t.end,index:e}}function Wte(t){return{start:t.start,end:t.end}}function Kte(t,e){return t.index-e.index}function Jte(t,e){return t.start-e.start}});var Ah=T((KIe,xE)=>{"use strict";var gE=yo(),zt=Rn()("send"),Co=hi()("send"),Xte=G0(),Yte=md(),VM=hd(),Qte=fE(),ere=mE(),Ch=require("fs"),yE=UM(),GM=FM(),tre=Xl(),rre=hE(),_d=require("path"),nre=Fl(),WM=require("stream"),ire=require("util"),sre=_d.extname,KM=_d.join,vE=_d.normalize,bE=_d.resolve,Ph=_d.sep,ore=/^ *bytes=/,JM=3600*24*365*1e3,HM=/(?:^|[\\/])\.\.(?:[\\/]|$)/;xE.exports=are;xE.exports.mime=yE;function are(t,e,r){return new ct(t,e,r)}function ct(t,e,r){WM.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&Co("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?_E(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?_E(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?GM(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),JM),this._root=n.root?bE(n.root):null,!this._root&&n.from&&this.from(n.from)}ire.inherits(ct,WM);ct.prototype.etag=Co.function(function(e){return this._etag=!!e,zt("etag %s",this._etag),this},"send.etag: pass etag as option");ct.prototype.hidden=Co.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,zt("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");ct.prototype.index=Co.function(function(e){var r=e?_E(e,"paths argument"):[];return zt("index %o",e),this._index=r,this},"send.index: pass index as option");ct.prototype.root=function(e){return this._root=bE(String(e)),zt("root %s",this._root),this};ct.prototype.from=Co.function(ct.prototype.root,"send.from: pass root as option");ct.prototype.root=Co.function(ct.prototype.root,"send.root: pass root as option");ct.prototype.maxage=Co.function(function(e){return this._maxage=typeof e=="string"?GM(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),JM),zt("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");ct.prototype.error=function(e,r){if(YM(this,"error"))return this.emit("error",dre(e,r));var n=this.res,i=nre.message[e]||String(e),s=XM("Error",VM(i));cre(n),r&&r.headers&&gre(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(s)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(s)};ct.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};ct.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};ct.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var i=r.getHeader("ETag");return!i||n!=="*"&&hre(n).every(function(a){return a!==i&&a!=="W/"+i&&"W/"+a!==i})}var s=Nh(e.headers["if-unmodified-since"]);if(!isNaN(s)){var o=Nh(r.getHeader("Last-Modified"));return isNaN(o)||o>s}return!1};ct.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};ct.prototype.notModified=function(){var e=this.res;zt("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};ct.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");zt("headers already sent"),this.error(500,e)};ct.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};ct.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};ct.prototype.isFresh=function(){return ere(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};ct.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return Nh(n)<=Nh(e)};ct.prototype.redirect=function(e){var r=this.res;if(YM(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=Yte(ure(this.path+"/")),i=XM("Redirecting","Redirecting to "+VM(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(i)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(i)};ct.prototype.pipe=function(e){var r=this._root;this.res=e;var n=pre(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var i;if(r!==null){if(n&&(n=vE("."+Ph+n)),HM.test(n))return zt('malicious path "%s"',n),this.error(403),e;i=n.split(Ph),n=vE(KM(r,n))}else{if(HM.test(n))return zt('malicious path "%s"',n),this.error(403),e;i=vE(n).split(Ph),n=bE(n)}if(lre(i)){var s=this._dotfiles;switch(s===void 0&&(s=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),zt('%s dotfile "%s"',s,n),s){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};ct.prototype.send=function(e,r){var n=r.size,i=this.options,s={},o=this.res,a=this.req,c=a.headers.range,u=i.start||0;if(mre(o)){this.headersAlreadySent();return}if(zt('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-u),i.end!==void 0){var l=i.end-u+1;n>l&&(n=l)}if(this._acceptRanges&&ore.test(c)){if(c=rre(n,c,{combine:!0}),this.isRangeFresh()||(zt("range stale"),c=-2),c===-1)return zt("range unsatisfiable"),o.setHeader("Content-Range",BM("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(zt("range %j",c),o.statusCode=206,o.setHeader("Content-Range",BM("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)s[d]=i[d];if(s.start=u,s.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),a.method==="HEAD"){o.end();return}this.stream(e,s)};ct.prototype.sendFile=function(e){var r=0,n=this;zt('stat "%s"',e),Ch.stat(e,function(o,a){if(o&&o.code==="ENOENT"&&!sre(e)&&e[e.length-1]!==Ph)return i(o);if(o)return n.onStatError(o);if(a.isDirectory())return n.redirect(e);n.emit("file",e,a),n.send(e,a)});function i(s){if(n._extensions.length<=r)return s?n.onStatError(s):n.error(404);var o=e+"."+n._extensions[r++];zt('stat "%s"',o),Ch.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};ct.prototype.sendIndex=function(e){var r=-1,n=this;function i(s){if(++r>=n._index.length)return s?n.onStatError(s):n.error(404);var o=KM(e,n._index[r]);zt('stat "%s"',o),Ch.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};ct.prototype.stream=function(e,r){var n=this,i=this.res,s=Ch.createReadStream(e,r);this.emit("stream",s),s.pipe(i);function o(){Xte(s,!0)}tre(i,o),s.on("error",function(c){o(),n.onStatError(c)}),s.on("end",function(){n.emit("end")})};ct.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=yE.lookup(e);if(!n){zt("no content-type");return}var i=yE.charsets.lookup(n);zt("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};ct.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(zt("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(i+=", immutable"),zt("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var s=r.mtime.toUTCString();zt("modified %s",s),n.setHeader("Last-Modified",s)}if(this._etag&&!n.getHeader("ETag")){var o=Qte(r);zt("etag %s",o),n.setHeader("ETag",o)}};function cre(t){for(var e=fre(t),r=0;r<e.length;r++)t.removeHeader(e[r])}function ure(t){for(var e=0;e<t.length&&t[e]==="/";e++);return e>1?"/"+t.substr(e):t}function lre(t){for(var e=0;e<t.length;e++){var r=t[e];if(r.length>1&&r[0]===".")return!0}return!1}function BM(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function XM(t,e){return`<!DOCTYPE html>
46
+ `}Vz.exports=Tee;function Tee(t,e,r){var n=r||{},i=n.env||process.env.NODE_ENV||"development",s=n.onerror;return function(o){var a,c,u;if(!o&&Zz(e)){iE("cannot 404 after headers sent");return}if(o?(u=Oee(o),u===void 0?u=Cee(e):a=Iee(o),c=Ree(o,u,i)):(u=404,c="Cannot "+t.method+" "+yee(Pee(t))),iE("default %s",u),o&&s&&Eee(s,o,t,e),Zz(e)){iE("cannot %d after headers sent",u),t.socket&&t.socket.destroy();return}Nee(t,e,u,a,c)}}function Iee(t){if(!(!t.headers||typeof t.headers!="object")){for(var e=Object.create(null),r=Object.keys(t.headers),n=0;n<r.length;n++){var i=r[n];e[i]=t.headers[i]}return e}}function Ree(t,e,r){var n;return r!=="production"&&(n=t.stack,!n&&typeof t.toString=="function"&&(n=t.toString())),n||Bz.message[e]}function Oee(t){if(typeof t.status=="number"&&t.status>=400&&t.status<600)return t.status;if(typeof t.statusCode=="number"&&t.statusCode>=400&&t.statusCode<600)return t.statusCode}function Pee(t){try{return bee.original(t).pathname}catch{return"resource"}}function Cee(t){var e=t.statusCode;return(typeof e!="number"||e<400||e>599)&&(e=500),e}function Zz(t){return typeof t.headersSent!="boolean"?!!t._header:t.headersSent}function Nee(t,e,r,n,i){function s(){var o=$ee(i);if(e.statusCode=r,t.httpVersionMajor<2&&(e.statusMessage=Bz.message[r]),e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Range"),Aee(e,n),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Content-Type","text/html; charset=utf-8"),e.setHeader("Content-Length",Buffer.byteLength(o,"utf8")),t.method==="HEAD"){e.end();return}e.end(o,"utf8")}if(kee(t)){s();return}xee(t),Hz(t,s),t.resume()}function Aee(t,e){if(e)for(var r=Object.keys(e),n=0;n<r.length;n++){var i=r[n];t.setHeader(i,e[i])}}});var gd=T((CIe,Jz)=>{"use strict";Jz.exports=jee;function Wz(t,e,r){for(var n=0;n<t.length;n++){var i=t[n];r>0&&Array.isArray(i)?Wz(i,e,r-1):e.push(i)}return e}function Kz(t,e){for(var r=0;r<t.length;r++){var n=t[r];Array.isArray(n)?Kz(n,e):e.push(n)}return e}function jee(t,e){return e==null?Kz(t,[]):Wz(t,[],e)}});var eM=T((NIe,Qz)=>{Qz.exports=Yz;var Xz=/\\.|\((?:\?<(.*?)>)?(?!\?)/g;function Yz(t,e,r){r=r||{},e=e||[];var n=r.strict,i=r.end!==!1,s=r.sensitive?"":"i",o=r.lookahead!==!1,a=0,c=e.length,u=0,l=0,d=0,p="",f;if(t instanceof RegExp){for(;f=Xz.exec(t.source);)f[0][0]!=="\\"&&e.push({name:f[1]||l++,optional:!1,offset:f.index});return t}if(Array.isArray(t))return t=t.map(function(m){return Yz(m,e,r).source}),new RegExp(t.join("|"),s);if(typeof t!="string")throw new TypeError("path must be a string, array of strings, or regular expression");for(t=t.replace(/\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,function(m,g,h,v,_,y,x,S){if(m[0]==="\\")return p+=m,d+=2,m;if(m===".")return p+="\\.",a+=1,d+=1,"\\.";if(g||h?p="":p+=t.slice(d,S),d=S+m.length,m==="*")return p="",a+=3,"(.*)";if(m==="/(")return p+="/",a+=2,"/(?:";g=g||"",h=h?"\\.":"",x=x||"",_=_?_.replace(/\\.|\*/,function(E){return E==="*"?"(.*)":E}):p?"((?:(?!/|"+p+").)+?)":"([^/"+h+"]+?)",e.push({name:v,optional:!!x,offset:S+a});var w="(?:"+h+g+_+(y?"((?:[/"+h+"].+?)?)":"")+")"+x;return p="",a+=w.length-m.length,w});f=Xz.exec(t);)f[0][0]!=="\\"&&((c+u===e.length||e[c+u].offset>f.index)&&e.splice(c+u,0,{name:l++,optional:!1,offset:f.index}),u++);return t+=n?"":t[t.length-1]==="/"?"?":"/?",i?t+="$":t[t.length-1]!=="/"&&(t+=o?"(?=/|$)":"(?:/|$)"),new RegExp("^"+t,s)}});var sE=T((AIe,rM)=>{"use strict";var Dee=eM(),zee=Rn()("express:router:layer"),Mee=Object.prototype.hasOwnProperty;rM.exports=cc;function cc(t,e,r){if(!(this instanceof cc))return new cc(t,e,r);zee("new %o",t);var n=e||{};this.handle=r,this.name=r.name||"<anonymous>",this.params=void 0,this.path=void 0,this.regexp=Dee(t,this.keys=[],n),this.regexp.fast_star=t==="*",this.regexp.fast_slash=t==="/"&&n.end===!1}cc.prototype.handle_error=function(e,r,n,i){var s=this.handle;if(s.length!==4)return i(e);try{s(e,r,n,i)}catch(o){i(o)}};cc.prototype.handle_request=function(e,r,n){var i=this.handle;if(i.length>3)return n();try{i(e,r,n)}catch(s){n(s)}};cc.prototype.match=function(e){var r;if(e!=null){if(this.regexp.fast_slash)return this.params={},this.path="",!0;if(this.regexp.fast_star)return this.params={0:tM(e)},this.path=e,!0;r=this.regexp.exec(e)}if(!r)return this.params=void 0,this.path=void 0,!1;this.params={},this.path=r[0];for(var n=this.keys,i=this.params,s=1;s<r.length;s++){var o=n[s-1],a=o.name,c=tM(r[s]);(c!==void 0||!Mee.call(i,a))&&(i[a]=c)}return!0};function tM(t){if(typeof t!="string"||t.length===0)return t;try{return decodeURIComponent(t)}catch(e){throw e instanceof URIError&&(e.message="Failed to decode param '"+t+"'",e.status=e.statusCode=400),e}}});var Eh=T((jIe,iM)=>{"use strict";var nM=require("http");iM.exports=Lee()||Uee();function Lee(){return nM.METHODS&&nM.METHODS.map(function(e){return e.toLowerCase()})}function Uee(){return["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}});var oE=T((DIe,lM)=>{"use strict";var sM=Rn()("express:router:route"),oM=gd(),aM=sE(),qee=Eh(),cM=Array.prototype.slice,uM=Object.prototype.toString;lM.exports=uc;function uc(t){this.path=t,this.stack=[],sM("new %o",t),this.methods={}}uc.prototype._handles_method=function(e){if(this.methods._all)return!0;var r=typeof e=="string"?e.toLowerCase():e;return r==="head"&&!this.methods.head&&(r="get"),!!this.methods[r]};uc.prototype._options=function(){var e=Object.keys(this.methods);this.methods.get&&!this.methods.head&&e.push("head");for(var r=0;r<e.length;r++)e[r]=e[r].toUpperCase();return e};uc.prototype.dispatch=function(e,r,n){var i=0,s=this.stack,o=0;if(s.length===0)return n();var a=typeof e.method=="string"?e.method.toLowerCase():e.method;a==="head"&&!this.methods.head&&(a="get"),e.route=this,c();function c(u){if(u&&u==="route")return n();if(u&&u==="router")return n(u);if(++o>100)return setImmediate(c,u);var l=s[i++];if(!l)return n(u);l.method&&l.method!==a?c(u):u?l.handle_error(u,e,r,c):l.handle_request(e,r,c),o=0}};uc.prototype.all=function(){for(var e=oM(cM.call(arguments)),r=0;r<e.length;r++){var n=e[r];if(typeof n!="function"){var i=uM.call(n),s="Route.all() requires a callback function but got a "+i;throw new TypeError(s)}var o=aM("/",{},n);o.method=void 0,this.methods._all=!0,this.stack.push(o)}return this};qee.forEach(function(t){uc.prototype[t]=function(){for(var e=oM(cM.call(arguments)),r=0;r<e.length;r++){var n=e[r];if(typeof n!="function"){var i=uM.call(n),s="Route."+t+"() requires a callback function but got a "+i;throw new Error(s)}sM("%s %o",t,this.path);var o=aM("/",{},n);o.method=t,this.methods[t]=!0,this.stack.push(o)}return this}})});var vd=T((dM,pM)=>{dM=pM.exports=function(t,e){if(t&&e)for(var r in e)t[r]=e[r];return t}});var cE=T((zIe,gM)=>{"use strict";var Fee=oE(),mM=sE(),Zee=Eh(),aE=vd(),kh=Rn()("express:router"),fM=hi()("express"),Hee=gd(),Bee=ac(),Vee=ql(),Gee=/^\[object (\S+)\]$/,hM=Array.prototype.slice,Wee=Object.prototype.toString,Ro=gM.exports=function(t){var e=t||{};function r(n,i,s){r.handle(n,i,s)}return Vee(r,Ro),r.params={},r._params=[],r.caseSensitive=e.caseSensitive,r.mergeParams=e.mergeParams,r.strict=e.strict,r.stack=[],r};Ro.param=function(e,r){if(typeof e=="function"){fM("router.param(fn): Refactor to use path params"),this._params.push(e);return}var n=this._params,i=n.length,s;e[0]===":"&&(fM("router.param("+JSON.stringify(e)+", fn): Use router.param("+JSON.stringify(e.slice(1))+", fn) instead"),e=e.slice(1));for(var o=0;o<i;++o)(s=n[o](e,r))&&(r=s);if(typeof r!="function")throw new Error("invalid param() call for "+e+", got "+r);return(this.params[e]=this.params[e]||[]).push(r),this};Ro.handle=function(e,r,n){var i=this;kh("dispatching %s %s",e.method,e.url);var s=0,o=Xee(e.url)||"",a="",c=!1,u=0,l={},d=[],p=i.stack,f=e.params,m=e.baseUrl||"",g=tte(n,e,"baseUrl","next","params");e.next=h,e.method==="OPTIONS"&&(g=nte(g,function(_,y){if(y||d.length===0)return _(y);rte(r,d,_)})),e.baseUrl=m,e.originalUrl=e.originalUrl||e.url,h();function h(_){var y=_==="route"?null:_;if(c&&(e.url=e.url.slice(1),c=!1),a.length!==0&&(e.baseUrl=m,e.url=o+a+e.url.slice(o.length),a=""),y==="router"){setImmediate(g,null);return}if(s>=p.length){setImmediate(g,y);return}if(++u>100)return setImmediate(h,_);var x=Jee(e);if(x==null)return g(y);for(var S,w,E;w!==!0&&s<p.length;)if(S=p[s++],w=Qee(S,x),E=S.route,typeof w!="boolean"&&(y=y||w),w===!0&&E){if(y){w=!1;continue}var $=e.method,R=E._handles_method($);!R&&$==="OPTIONS"&&Kee(d,E._options()),!R&&$!=="HEAD"&&(w=!1)}if(w!==!0)return g(y);E&&(e.route=E),e.params=i.mergeParams?ete(S.params,f):S.params;var N=S.path;i.process_params(S,l,e,r,function(A){A?h(y||A):E?S.handle_request(e,r,h):v(S,y,N,x),u=0})}function v(_,y,x,S){if(x.length!==0){if(x!==S.slice(0,x.length)){h(y);return}var w=S[x.length];if(w&&w!=="/"&&w!==".")return h(y);kh("trim prefix (%s) from url %s",x,e.url),a=x,e.url=o+e.url.slice(o.length+a.length),!o&&e.url[0]!=="/"&&(e.url="/"+e.url,c=!0),e.baseUrl=m+(a[a.length-1]==="/"?a.substring(0,a.length-1):a)}kh("%s %s : %s",_.name,x,e.originalUrl),y?_.handle_error(y,e,r,h):_.handle_request(e,r,h)}};Ro.process_params=function(e,r,n,i,s){var o=this.params,a=e.keys;if(!a||a.length===0)return s();var c=0,u,l=0,d,p,f,m;function g(v){if(v)return s(v);if(c>=a.length)return s();if(l=0,d=a[c++],u=d.name,p=n.params[u],f=o[u],m=r[u],p===void 0||!f)return g();if(m&&(m.match===p||m.error&&m.error!=="route"))return n.params[u]=m.value,g(m.error);r[u]=m={error:null,match:p,value:p},h()}function h(v){var _=f[l++];if(m.value=n.params[d.name],v){m.error=v,g(v);return}if(!_)return g();try{_(n,i,h,p,d.name)}catch(y){h(y)}}g()};Ro.use=function(e){var r=0,n="/";if(typeof e!="function"){for(var i=e;Array.isArray(i)&&i.length!==0;)i=i[0];typeof i!="function"&&(r=1,n=e)}var s=Hee(hM.call(arguments,r));if(s.length===0)throw new TypeError("Router.use() requires a middleware function");for(var o=0;o<s.length;o++){var e=s[o];if(typeof e!="function")throw new TypeError("Router.use() requires a middleware function but got a "+Yee(e));kh("use %o %s",n,e.name||"<anonymous>");var a=new mM(n,{sensitive:this.caseSensitive,strict:!1,end:!1},e);a.route=void 0,this.stack.push(a)}return this};Ro.route=function(e){var r=new Fee(e),n=new mM(e,{sensitive:this.caseSensitive,strict:this.strict,end:!0},r.dispatch.bind(r));return n.route=r,this.stack.push(n),r};Zee.concat("all").forEach(function(t){Ro[t]=function(e){var r=this.route(e);return r[t].apply(r,hM.call(arguments,1)),this}});function Kee(t,e){for(var r=0;r<e.length;r++){var n=e[r];t.indexOf(n)===-1&&t.push(n)}}function Jee(t){try{return Bee(t).pathname}catch{return}}function Xee(t){if(!(typeof t!="string"||t.length===0||t[0]==="/")){var e=t.indexOf("?"),r=e!==-1?e:t.length,n=t.slice(0,r).indexOf("://");return n!==-1?t.substring(0,t.indexOf("/",3+n)):void 0}}function Yee(t){var e=typeof t;return e!=="object"?e:Wee.call(t).replace(Gee,"$1")}function Qee(t,e){try{return t.match(e)}catch(r){return r}}function ete(t,e){if(typeof e!="object"||!e)return t;var r=aE({},e);if(!(0 in t)||!(0 in e))return aE(r,t);for(var n=0,i=0;n in t;)n++;for(;i in e;)i++;for(n--;n>=0;n--)t[n+i]=t[n],n<i&&delete t[n];return aE(r,t)}function tte(t,e){for(var r=new Array(arguments.length-2),n=new Array(arguments.length-2),i=0;i<r.length;i++)r[i]=arguments[i+2],n[i]=e[r[i]];return function(){for(var s=0;s<r.length;s++)e[r[s]]=n[s];return t.apply(this,arguments)}}function rte(t,e,r){try{var n=e.join(",");t.set("Allow",n),t.send(n)}catch(i){r(i)}}function nte(t,e){return function(){var n=new Array(arguments.length+1);n[0]=t;for(var i=0,s=arguments.length;i<s;i++)n[i+1]=arguments[i];e.apply(this,n)}}});var _M=T(yM=>{"use strict";var vM=ql();yM.init=function(t){return function(r,n,i){t.enabled("x-powered-by")&&n.setHeader("X-Powered-By","Express"),r.res=n,n.req=r,r.next=i,vM(r,t.request),vM(n,t.response),n.locals=n.locals||Object.create(null),i()}}});var uE=T((LIe,bM)=>{"use strict";var ite=vd(),ste=ac(),ote=bh();bM.exports=function(e){var r=ite({},e),n=ote.parse;return typeof e=="function"&&(n=e,r=void 0),r!==void 0&&r.allowPrototypes===void 0&&(r.allowPrototypes=!0),function(s,o,a){if(!s.query){var c=ste(s).query;s.query=n(c,r)}a()}}});var kM=T((UIe,EM)=>{"use strict";var $h=Rn()("express:view"),yd=require("path"),ate=require("fs"),cte=yd.dirname,wM=yd.basename,ute=yd.extname,xM=yd.join,lte=yd.resolve;EM.exports=Th;function Th(t,e){var r=e||{};if(this.defaultEngine=r.defaultEngine,this.ext=ute(t),this.name=t,this.root=r.root,!this.ext&&!this.defaultEngine)throw new Error("No default engine was specified and no extension was provided.");var n=t;if(this.ext||(this.ext=this.defaultEngine[0]!=="."?"."+this.defaultEngine:this.defaultEngine,n+=this.ext),!r.engines[this.ext]){var i=this.ext.slice(1);$h('require "%s"',i);var s=require(i).__express;if(typeof s!="function")throw new Error('Module "'+i+'" does not provide a view engine.');r.engines[this.ext]=s}this.engine=r.engines[this.ext],this.path=this.lookup(n)}Th.prototype.lookup=function(e){var r,n=[].concat(this.root);$h('lookup "%s"',e);for(var i=0;i<n.length&&!r;i++){var s=n[i],o=lte(s,e),a=cte(o),c=wM(o);r=this.resolve(a,c)}return r};Th.prototype.render=function(e,r){$h('render "%s"',this.path),this.engine(this.path,e,r)};Th.prototype.resolve=function(e,r){var n=this.ext,i=xM(e,r),s=SM(i);if(s&&s.isFile()||(i=xM(e,wM(r,n),"index"+n),s=SM(i),s&&s.isFile()))return i};function SM(t){$h('stat "%s"',t);try{return ate.statSync(t)}catch{return}}});var Rh=T((lE,TM)=>{var Ih=require("buffer"),Si=Ih.Buffer;function $M(t,e){for(var r in t)e[r]=t[r]}Si.from&&Si.alloc&&Si.allocUnsafe&&Si.allocUnsafeSlow?TM.exports=Ih:($M(Ih,lE),lE.Buffer=Oo);function Oo(t,e,r){return Si(t,e,r)}Oo.prototype=Object.create(Si.prototype);$M(Si,Oo);Oo.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return Si(t,e,r)};Oo.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var n=Si(t);return e!==void 0?typeof r=="string"?n.fill(e,r):n.fill(e):n.fill(0),n};Oo.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Si(t)};Oo.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return Ih.SlowBuffer(t)}});var pE=T((qIe,dE)=>{"use strict";dE.exports=xte;dE.exports.parse=kte;var IM=require("path").basename,dte=Rh().Buffer,pte=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,fte=/%[0-9A-Fa-f]{2}/,mte=/%([0-9A-Fa-f]{2})/g,OM=/[^\x20-\x7e\xa0-\xff]/g,hte=/\\([\u0000-\u007f])/g,gte=/([\\"])/g,RM=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,vte=/^[\x20-\x7e\x80-\xff]+$/,yte=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,_te=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,bte=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function xte(t,e){var r=e||{},n=r.type||"attachment",i=Ste(t,r.fallback);return wte(new CM(n,i))}function Ste(t,e){if(t!==void 0){var r={};if(typeof t!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&OM.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var n=IM(t),i=vte.test(n),s=typeof e!="string"?e&&PM(n):IM(e),o=typeof s=="string"&&s!==n;return(o||!i||fte.test(n))&&(r["filename*"]=n),(i||o)&&(r.filename=o?s:n),r}}function wte(t){var e=t.parameters,r=t.type;if(!r||typeof r!="string"||!yte.test(r))throw new TypeError("invalid type");var n=String(r).toLowerCase();if(e&&typeof e=="object")for(var i,s=Object.keys(e).sort(),o=0;o<s.length;o++){i=s[o];var a=i.substr(-1)==="*"?Rte(e[i]):Ite(e[i]);n+="; "+i+"="+a}return n}function Ete(t){var e=_te.exec(t);if(!e)throw new TypeError("invalid extended field value");var r=e[1].toLowerCase(),n=e[2],i,s=n.replace(mte,$te);switch(r){case"iso-8859-1":i=PM(s);break;case"utf-8":i=dte.from(s,"binary").toString("utf8");break;default:throw new TypeError("unsupported charset in extended field")}return i}function PM(t){return String(t).replace(OM,"?")}function kte(t){if(!t||typeof t!="string")throw new TypeError("argument string is required");var e=bte.exec(t);if(!e)throw new TypeError("invalid type format");var r=e[0].length,n=e[1].toLowerCase(),i,s=[],o={},a;for(r=RM.lastIndex=e[0].substr(-1)===";"?r-1:r;e=RM.exec(t);){if(e.index!==r)throw new TypeError("invalid parameter format");if(r+=e[0].length,i=e[1].toLowerCase(),a=e[2],s.indexOf(i)!==-1)throw new TypeError("invalid duplicate parameter");if(s.push(i),i.indexOf("*")+1===i.length){i=i.slice(0,-1),a=Ete(a),o[i]=a;continue}typeof o[i]!="string"&&(a[0]==='"'&&(a=a.substr(1,a.length-2).replace(hte,"$1")),o[i]=a)}if(r!==-1&&r!==t.length)throw new TypeError("invalid parameter format");return new CM(n,o)}function $te(t,e){return String.fromCharCode(parseInt(e,16))}function Tte(t){return"%"+String(t).charCodeAt(0).toString(16).toUpperCase()}function Ite(t){var e=String(t);return'"'+e.replace(gte,"\\$1")+'"'}function Rte(t){var e=String(t),r=encodeURIComponent(e).replace(pte,Tte);return"UTF-8''"+r}function CM(t,e){this.type=t,this.parameters=e}});var fE=T((FIe,jM)=>{"use strict";jM.exports=Cte;var Ote=require("crypto"),NM=require("fs").Stats,AM=Object.prototype.toString;function Pte(t){if(t.length===0)return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';var e=Ote.createHash("sha1").update(t,"utf8").digest("base64").substring(0,27),r=typeof t=="string"?Buffer.byteLength(t,"utf8"):t.length;return'"'+r.toString(16)+"-"+e+'"'}function Cte(t,e){if(t==null)throw new TypeError("argument entity is required");var r=Nte(t),n=e&&typeof e.weak=="boolean"?e.weak:r;if(!r&&typeof t!="string"&&!Buffer.isBuffer(t))throw new TypeError("argument entity must be string, Buffer, or fs.Stats");var i=r?Ate(t):Pte(t);return n?"W/"+i:i}function Nte(t){return typeof NM=="function"&&t instanceof NM?!0:t&&typeof t=="object"&&"ctime"in t&&AM.call(t.ctime)==="[object Date]"&&"mtime"in t&&AM.call(t.mtime)==="[object Date]"&&"ino"in t&&typeof t.ino=="number"&&"size"in t&&typeof t.size=="number"}function Ate(t){var e=t.mtime.getTime().toString(16),r=t.size.toString(16);return'"'+r+"-"+e+'"'}});var mE=T((ZIe,zM)=>{"use strict";var jte=/(?:^|,)\s*?no-cache\s*?(?:,|$)/;zM.exports=Dte;function Dte(t,e){var r=t["if-modified-since"],n=t["if-none-match"];if(!r&&!n)return!1;var i=t["cache-control"];if(i&&jte.test(i))return!1;if(n&&n!=="*"){var s=e.etag;if(!s)return!1;for(var o=!0,a=zte(n),c=0;c<a.length;c++){var u=a[c];if(u===s||u==="W/"+s||"W/"+u===s){o=!1;break}}if(o)return!1}if(r){var l=e["last-modified"],d=!l||!(DM(l)<=DM(r));if(d)return!1}return!0}function DM(t){var e=t&&Date.parse(t);return typeof e=="number"?e:NaN}function zte(t){for(var e=0,r=[],n=0,i=0,s=t.length;i<s;i++)switch(t.charCodeAt(i)){case 32:n===e&&(n=e=i+1);break;case 44:r.push(t.substring(n,e)),n=e=i+1;break;default:e=i+1;break}return r.push(t.substring(n,e)),r}});var MM=T((HIe,Mte)=>{Mte.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}});var UM=T((VIe,LM)=>{var BIe=require("path"),Lte=require("fs");function dc(){this.types=Object.create(null),this.extensions=Object.create(null)}dc.prototype.define=function(t){for(var e in t){for(var r=t[e],n=0;n<r.length;n++)process.env.DEBUG_MIME&&this.types[r[n]]&&console.warn((this._loading||"define()").replace(/.*\//,""),'changes "'+r[n]+'" extension type from '+this.types[r[n]]+" to "+e),this.types[r[n]]=e;this.extensions[e]||(this.extensions[e]=r[0])}};dc.prototype.load=function(t){this._loading=t;var e={},r=Lte.readFileSync(t,"ascii"),n=r.split(/[\r\n]+/);n.forEach(function(i){var s=i.replace(/\s*#.*|^\s*|\s*$/g,"").split(/\s+/);e[s.shift()]=s}),this.define(e),this._loading=null};dc.prototype.lookup=function(t,e){var r=t.replace(/^.*[\.\/\\]/,"").toLowerCase();return this.types[r]||e||this.default_type};dc.prototype.extension=function(t){var e=t.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();return this.extensions[e]};var lc=new dc;lc.define(MM());lc.default_type=lc.lookup("bin");lc.Mime=dc;lc.charsets={lookup:function(t,e){return/^text\/|^application\/(javascript|json)/.test(t)?"UTF-8":e}};LM.exports=lc});var FM=T((GIe,qM)=>{var pc=1e3,fc=pc*60,mc=fc*60,Po=mc*24,Ute=Po*7,qte=Po*365.25;qM.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Fte(t);if(r==="number"&&isFinite(t))return e.long?Hte(t):Zte(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Fte(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*qte;case"weeks":case"week":case"w":return r*Ute;case"days":case"day":case"d":return r*Po;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mc;case"minutes":case"minute":case"mins":case"min":case"m":return r*fc;case"seconds":case"second":case"secs":case"sec":case"s":return r*pc;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Zte(t){var e=Math.abs(t);return e>=Po?Math.round(t/Po)+"d":e>=mc?Math.round(t/mc)+"h":e>=fc?Math.round(t/fc)+"m":e>=pc?Math.round(t/pc)+"s":t+"ms"}function Hte(t){var e=Math.abs(t);return e>=Po?Oh(t,e,Po,"day"):e>=mc?Oh(t,e,mc,"hour"):e>=fc?Oh(t,e,fc,"minute"):e>=pc?Oh(t,e,pc,"second"):t+" ms"}function Oh(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var hE=T((WIe,ZM)=>{"use strict";ZM.exports=Bte;function Bte(t,e,r){if(typeof e!="string")throw new TypeError("argument str must be a string");var n=e.indexOf("=");if(n===-1)return-2;var i=e.slice(n+1).split(","),s=[];s.type=e.slice(0,n);for(var o=0;o<i.length;o++){var a=i[o].split("-"),c=parseInt(a[0],10),u=parseInt(a[1],10);isNaN(c)?(c=t-u,u=t-1):isNaN(u)&&(u=t-1),u>t-1&&(u=t-1),!(isNaN(c)||isNaN(u)||c>u||c<0)&&s.push({start:c,end:u})}return s.length<1?-1:r&&r.combine?Vte(s):s}function Vte(t){for(var e=t.map(Gte).sort(Jte),r=0,n=1;n<e.length;n++){var i=e[n],s=e[r];i.start>s.end+1?e[++r]=i:i.end>s.end&&(s.end=i.end,s.index=Math.min(s.index,i.index))}e.length=r+1;var o=e.sort(Kte).map(Wte);return o.type=t.type,o}function Gte(t,e){return{start:t.start,end:t.end,index:e}}function Wte(t){return{start:t.start,end:t.end}}function Kte(t,e){return t.index-e.index}function Jte(t,e){return t.start-e.start}});var Ah=T((KIe,xE)=>{"use strict";var gE=yo(),zt=Rn()("send"),Co=hi()("send"),Xte=G0(),Yte=md(),VM=hd(),Qte=fE(),ere=mE(),Ch=require("fs"),yE=UM(),GM=FM(),tre=Xl(),rre=hE(),_d=require("path"),nre=Fl(),WM=require("stream"),ire=require("util"),sre=_d.extname,KM=_d.join,vE=_d.normalize,bE=_d.resolve,Ph=_d.sep,ore=/^ *bytes=/,JM=3600*24*365*1e3,HM=/(?:^|[\\/])\.\.(?:[\\/]|$)/;xE.exports=are;xE.exports.mime=yE;function are(t,e,r){return new ct(t,e,r)}function ct(t,e,r){WM.call(this);var n=r||{};if(this.options=n,this.path=e,this.req=t,this._acceptRanges=n.acceptRanges!==void 0?!!n.acceptRanges:!0,this._cacheControl=n.cacheControl!==void 0?!!n.cacheControl:!0,this._etag=n.etag!==void 0?!!n.etag:!0,this._dotfiles=n.dotfiles!==void 0?n.dotfiles:"ignore",this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny")throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');this._hidden=!!n.hidden,n.hidden!==void 0&&Co("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead"),n.dotfiles===void 0&&(this._dotfiles=void 0),this._extensions=n.extensions!==void 0?_E(n.extensions,"extensions option"):[],this._immutable=n.immutable!==void 0?!!n.immutable:!1,this._index=n.index!==void 0?_E(n.index,"index option"):["index.html"],this._lastModified=n.lastModified!==void 0?!!n.lastModified:!0,this._maxage=n.maxAge||n.maxage,this._maxage=typeof this._maxage=="string"?GM(this._maxage):Number(this._maxage),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),JM),this._root=n.root?bE(n.root):null,!this._root&&n.from&&this.from(n.from)}ire.inherits(ct,WM);ct.prototype.etag=Co.function(function(e){return this._etag=!!e,zt("etag %s",this._etag),this},"send.etag: pass etag as option");ct.prototype.hidden=Co.function(function(e){return this._hidden=!!e,this._dotfiles=void 0,zt("hidden %s",this._hidden),this},"send.hidden: use dotfiles option");ct.prototype.index=Co.function(function(e){var r=e?_E(e,"paths argument"):[];return zt("index %o",e),this._index=r,this},"send.index: pass index as option");ct.prototype.root=function(e){return this._root=bE(String(e)),zt("root %s",this._root),this};ct.prototype.from=Co.function(ct.prototype.root,"send.from: pass root as option");ct.prototype.root=Co.function(ct.prototype.root,"send.root: pass root as option");ct.prototype.maxage=Co.function(function(e){return this._maxage=typeof e=="string"?GM(e):Number(e),this._maxage=isNaN(this._maxage)?0:Math.min(Math.max(0,this._maxage),JM),zt("max-age %d",this._maxage),this},"send.maxage: pass maxAge as option");ct.prototype.error=function(e,r){if(YM(this,"error"))return this.emit("error",dre(e,r));var n=this.res,i=nre.message[e]||String(e),s=XM("Error",VM(i));cre(n),r&&r.headers&&gre(n,r.headers),n.statusCode=e,n.setHeader("Content-Type","text/html; charset=UTF-8"),n.setHeader("Content-Length",Buffer.byteLength(s)),n.setHeader("Content-Security-Policy","default-src 'none'"),n.setHeader("X-Content-Type-Options","nosniff"),n.end(s)};ct.prototype.hasTrailingSlash=function(){return this.path[this.path.length-1]==="/"};ct.prototype.isConditionalGET=function(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};ct.prototype.isPreconditionFailure=function(){var e=this.req,r=this.res,n=e.headers["if-match"];if(n){var i=r.getHeader("ETag");return!i||n!=="*"&&hre(n).every(function(a){return a!==i&&a!=="W/"+i&&"W/"+a!==i})}var s=Nh(e.headers["if-unmodified-since"]);if(!isNaN(s)){var o=Nh(r.getHeader("Last-Modified"));return isNaN(o)||o>s}return!1};ct.prototype.removeContentHeaderFields=function(){var e=this.res;e.removeHeader("Content-Encoding"),e.removeHeader("Content-Language"),e.removeHeader("Content-Length"),e.removeHeader("Content-Range"),e.removeHeader("Content-Type")};ct.prototype.notModified=function(){var e=this.res;zt("not modified"),this.removeContentHeaderFields(),e.statusCode=304,e.end()};ct.prototype.headersAlreadySent=function(){var e=new Error("Can't set headers after they are sent.");zt("headers already sent"),this.error(500,e)};ct.prototype.isCachable=function(){var e=this.res.statusCode;return e>=200&&e<300||e===304};ct.prototype.onStatError=function(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};ct.prototype.isFresh=function(){return ere(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};ct.prototype.isRangeFresh=function(){var e=this.req.headers["if-range"];if(!e)return!0;if(e.indexOf('"')!==-1){var r=this.res.getHeader("ETag");return!!(r&&e.indexOf(r)!==-1)}var n=this.res.getHeader("Last-Modified");return Nh(n)<=Nh(e)};ct.prototype.redirect=function(e){var r=this.res;if(YM(this,"directory")){this.emit("directory",r,e);return}if(this.hasTrailingSlash()){this.error(403);return}var n=Yte(ure(this.path+"/")),i=XM("Redirecting","Redirecting to "+VM(n));r.statusCode=301,r.setHeader("Content-Type","text/html; charset=UTF-8"),r.setHeader("Content-Length",Buffer.byteLength(i)),r.setHeader("Content-Security-Policy","default-src 'none'"),r.setHeader("X-Content-Type-Options","nosniff"),r.setHeader("Location",n),r.end(i)};ct.prototype.pipe=function(e){var r=this._root;this.res=e;var n=pre(this.path);if(n===-1)return this.error(400),e;if(~n.indexOf("\0"))return this.error(400),e;var i;if(r!==null){if(n&&(n=vE("."+Ph+n)),HM.test(n))return zt('malicious path "%s"',n),this.error(403),e;i=n.split(Ph),n=vE(KM(r,n))}else{if(HM.test(n))return zt('malicious path "%s"',n),this.error(403),e;i=vE(n).split(Ph),n=bE(n)}if(lre(i)){var s=this._dotfiles;switch(s===void 0&&(s=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"),zt('%s dotfile "%s"',s,n),s){case"allow":break;case"deny":return this.error(403),e;default:return this.error(404),e}}return this._index.length&&this.hasTrailingSlash()?(this.sendIndex(n),e):(this.sendFile(n),e)};ct.prototype.send=function(e,r){var n=r.size,i=this.options,s={},o=this.res,a=this.req,c=a.headers.range,u=i.start||0;if(mre(o)){this.headersAlreadySent();return}if(zt('pipe "%s"',e),this.setHeader(e,r),this.type(e),this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}if(n=Math.max(0,n-u),i.end!==void 0){var l=i.end-u+1;n>l&&(n=l)}if(this._acceptRanges&&ore.test(c)){if(c=rre(n,c,{combine:!0}),this.isRangeFresh()||(zt("range stale"),c=-2),c===-1)return zt("range unsatisfiable"),o.setHeader("Content-Range",BM("bytes",n)),this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}});c!==-2&&c.length===1&&(zt("range %j",c),o.statusCode=206,o.setHeader("Content-Range",BM("bytes",n,c[0])),u+=c[0].start,n=c[0].end-c[0].start+1)}for(var d in i)s[d]=i[d];if(s.start=u,s.end=Math.max(u,u+n-1),o.setHeader("Content-Length",n),a.method==="HEAD"){o.end();return}this.stream(e,s)};ct.prototype.sendFile=function(e){var r=0,n=this;zt('stat "%s"',e),Ch.stat(e,function(o,a){if(o&&o.code==="ENOENT"&&!sre(e)&&e[e.length-1]!==Ph)return i(o);if(o)return n.onStatError(o);if(a.isDirectory())return n.redirect(e);n.emit("file",e,a),n.send(e,a)});function i(s){if(n._extensions.length<=r)return s?n.onStatError(s):n.error(404);var o=e+"."+n._extensions[r++];zt('stat "%s"',o),Ch.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}};ct.prototype.sendIndex=function(e){var r=-1,n=this;function i(s){if(++r>=n._index.length)return s?n.onStatError(s):n.error(404);var o=KM(e,n._index[r]);zt('stat "%s"',o),Ch.stat(o,function(a,c){if(a)return i(a);if(c.isDirectory())return i();n.emit("file",o,c),n.send(o,c)})}i()};ct.prototype.stream=function(e,r){var n=this,i=this.res,s=Ch.createReadStream(e,r);this.emit("stream",s),s.pipe(i);function o(){Xte(s,!0)}tre(i,o),s.on("error",function(c){o(),n.onStatError(c)}),s.on("end",function(){n.emit("end")})};ct.prototype.type=function(e){var r=this.res;if(!r.getHeader("Content-Type")){var n=yE.lookup(e);if(!n){zt("no content-type");return}var i=yE.charsets.lookup(n);zt("content-type %s",n),r.setHeader("Content-Type",n+(i?"; charset="+i:""))}};ct.prototype.setHeader=function(e,r){var n=this.res;if(this.emit("headers",n,e,r),this._acceptRanges&&!n.getHeader("Accept-Ranges")&&(zt("accept ranges"),n.setHeader("Accept-Ranges","bytes")),this._cacheControl&&!n.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);this._immutable&&(i+=", immutable"),zt("cache-control %s",i),n.setHeader("Cache-Control",i)}if(this._lastModified&&!n.getHeader("Last-Modified")){var s=r.mtime.toUTCString();zt("modified %s",s),n.setHeader("Last-Modified",s)}if(this._etag&&!n.getHeader("ETag")){var o=Qte(r);zt("etag %s",o),n.setHeader("ETag",o)}};function cre(t){for(var e=fre(t),r=0;r<e.length;r++)t.removeHeader(e[r])}function ure(t){for(var e=0;e<t.length&&t[e]==="/";e++);return e>1?"/"+t.substr(e):t}function lre(t){for(var e=0;e<t.length;e++){var r=t[e];if(r.length>1&&r[0]===".")return!0}return!1}function BM(t,e,r){return t+" "+(r?r.start+"-"+r.end:"*")+"/"+e}function XM(t,e){return`<!DOCTYPE html>
47
47
  <html lang="en">
48
48
  <head>
49
49
  <meta charset="utf-8">
@@ -246,8 +246,8 @@ ${a}`}(0,sr.writeFileSync)(i,c),(0,sr.renameSync)(i,n)}function Mhe(t,e,r,n,i,s,
246
246
  Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let o of t.seen.entries()){let a=o[1];if(e===o[0]){s(o);continue}if(t.external){let u=t.external.registry.get(o[0])?.id;if(e!==o[0]&&u){s(o);continue}}if(t.metadataRegistry.get(o[0])?.id){s(o);continue}if(a.cycle){s(o);continue}if(a.count>1&&t.reused==="ref"){s(o);continue}}}function af(t,e){let r=t.seen.get(e);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let n=o=>{let a=t.seen.get(o);if(a.ref===null)return;let c=a.def??a.schema,u={...c},l=a.ref;if(a.ref=null,l){n(l);let p=t.seen.get(l),f=p.schema;if(f.$ref&&(t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),o._zod.parent===l)for(let g in c)g==="$ref"||g==="allOf"||g in u||delete c[g];if(f.$ref&&p.def)for(let g in c)g==="$ref"||g==="allOf"||g in p.def&&JSON.stringify(c[g])===JSON.stringify(p.def[g])&&delete c[g]}let d=o._zod.parent;if(d&&d!==l){n(d);let p=t.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}t.override({zodSchema:o,jsonSchema:c,path:a.path??[]})};for(let o of[...t.seen.entries()].reverse())n(o[0]);let i={};if(t.target==="draft-2020-12"?i.$schema="https://json-schema.org/draft/2020-12/schema":t.target==="draft-07"?i.$schema="http://json-schema.org/draft-07/schema#":t.target==="draft-04"?i.$schema="http://json-schema.org/draft-04/schema#":t.target,t.external?.uri){let o=t.external.registry.get(e)?.id;if(!o)throw new Error("Schema is missing an `id` property");i.$id=t.external.uri(o)}Object.assign(i,r.def??r.schema);let s=t.external?.defs??{};for(let o of t.seen.entries()){let a=o[1];a.def&&a.defId&&(s[a.defId]=a.def)}t.external||Object.keys(s).length>0&&(t.target==="draft-2020-12"?i.$defs=s:i.definitions=s);try{let o=JSON.parse(JSON.stringify(i));return Object.defineProperty(o,"~standard",{value:{...e["~standard"],jsonSchema:{input:Zu(e,"input",t.processors),output:Zu(e,"output",t.processors)}},enumerable:!1,writable:!1}),o}catch{throw new Error("Error converting schema to JSON.")}}function jr(t,e){let r=e??{seen:new Set};if(r.seen.has(t))return!1;r.seen.add(t);let n=t._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return jr(n.element,r);if(n.type==="set")return jr(n.valueType,r);if(n.type==="lazy")return jr(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return jr(n.innerType,r);if(n.type==="intersection")return jr(n.left,r)||jr(n.right,r);if(n.type==="record"||n.type==="map")return jr(n.keyType,r)||jr(n.valueType,r);if(n.type==="pipe")return jr(n.in,r)||jr(n.out,r);if(n.type==="object"){for(let i in n.shape)if(jr(n.shape[i],r))return!0;return!1}if(n.type==="union"){for(let i of n.options)if(jr(i,r))return!0;return!1}if(n.type==="tuple"){for(let i of n.items)if(jr(i,r))return!0;return!!(n.rest&&jr(n.rest,r))}return!1}var PT=(t,e={})=>r=>{let n=sf({...r,processors:e});return wt(t,n),of(n,t),af(n,t)},Zu=(t,e,r={})=>n=>{let{libraryOptions:i,target:s}=n??{},o=sf({...i??{},target:s,io:e,processors:r});return wt(t,o),of(o,t),af(o,t)};var hF={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},CT=(t,e,r,n)=>{let i=r;i.type="string";let{minimum:s,maximum:o,format:a,patterns:c,contentEncoding:u}=t._zod.bag;if(typeof s=="number"&&(i.minLength=s),typeof o=="number"&&(i.maxLength=o),a&&(i.format=hF[a]??a,i.format===""&&delete i.format,a==="time"&&delete i.format),u&&(i.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?i.pattern=l[0].source:l.length>1&&(i.allOf=[...l.map(d=>({...e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},NT=(t,e,r,n)=>{let i=r,{minimum:s,maximum:o,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=t._zod.bag;typeof a=="string"&&a.includes("int")?i.type="integer":i.type="number",typeof l=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.minimum=l,i.exclusiveMinimum=!0):i.exclusiveMinimum=l),typeof s=="number"&&(i.minimum=s,typeof l=="number"&&e.target!=="draft-04"&&(l>=s?delete i.minimum:delete i.exclusiveMinimum)),typeof u=="number"&&(e.target==="draft-04"||e.target==="openapi-3.0"?(i.maximum=u,i.exclusiveMaximum=!0):i.exclusiveMaximum=u),typeof o=="number"&&(i.maximum=o,typeof u=="number"&&e.target!=="draft-04"&&(u<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c=="number"&&(i.multipleOf=c)},AT=(t,e,r,n)=>{r.type="boolean"},jT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},DT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},zT=(t,e,r,n)=>{e.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},MT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},LT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},UT=(t,e,r,n)=>{r.not={}},qT=(t,e,r,n)=>{},FT=(t,e,r,n)=>{},ZT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},HT=(t,e,r,n)=>{let i=t._zod.def,s=du(i.entries);s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),r.enum=s},BT=(t,e,r,n)=>{let i=t._zod.def,s=[];for(let o of i.values)if(o===void 0){if(e.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof o=="bigint"){if(e.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");s.push(Number(o))}else s.push(o);if(s.length!==0)if(s.length===1){let o=s[0];r.type=o===null?"null":typeof o,e.target==="draft-04"||e.target==="openapi-3.0"?r.enum=[o]:r.const=o}else s.every(o=>typeof o=="number")&&(r.type="number"),s.every(o=>typeof o=="string")&&(r.type="string"),s.every(o=>typeof o=="boolean")&&(r.type="boolean"),s.every(o=>o===null)&&(r.type="null"),r.enum=s},VT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},GT=(t,e,r,n)=>{let i=r,s=t._zod.pattern;if(!s)throw new Error("Pattern not found in template literal");i.type="string",i.pattern=s.source},WT=(t,e,r,n)=>{let i=r,s={type:"string",format:"binary",contentEncoding:"binary"},{minimum:o,maximum:a,mime:c}=t._zod.bag;o!==void 0&&(s.minLength=o),a!==void 0&&(s.maxLength=a),c?c.length===1?(s.contentMediaType=c[0],Object.assign(i,s)):(Object.assign(i,s),i.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(i,s)},KT=(t,e,r,n)=>{r.type="boolean"},JT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},XT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},YT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},QT=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},eI=(t,e,r,n)=>{if(e.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},tI=(t,e,r,n)=>{let i=r,s=t._zod.def,{minimum:o,maximum:a}=t._zod.bag;typeof o=="number"&&(i.minItems=o),typeof a=="number"&&(i.maxItems=a),i.type="array",i.items=wt(s.element,e,{...n,path:[...n.path,"items"]})},rI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object",i.properties={};let o=s.shape;for(let u in o)i.properties[u]=wt(o[u],e,{...n,path:[...n.path,"properties",u]});let a=new Set(Object.keys(o)),c=new Set([...a].filter(u=>{let l=s.shape[u]._zod;return e.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(i.required=Array.from(c)),s.catchall?._zod.def.type==="never"?i.additionalProperties=!1:s.catchall?s.catchall&&(i.additionalProperties=wt(s.catchall,e,{...n,path:[...n.path,"additionalProperties"]})):e.io==="output"&&(i.additionalProperties=!1)},Y_=(t,e,r,n)=>{let i=t._zod.def,s=i.inclusive===!1,o=i.options.map((a,c)=>wt(a,e,{...n,path:[...n.path,s?"oneOf":"anyOf",c]}));s?r.oneOf=o:r.anyOf=o},nI=(t,e,r,n)=>{let i=t._zod.def,s=wt(i.left,e,{...n,path:[...n.path,"allOf",0]}),o=wt(i.right,e,{...n,path:[...n.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(o)?o.allOf:[o]];r.allOf=c},iI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="array";let o=e.target==="draft-2020-12"?"prefixItems":"items",a=e.target==="draft-2020-12"||e.target==="openapi-3.0"?"items":"additionalItems",c=s.items.map((p,f)=>wt(p,e,{...n,path:[...n.path,o,f]})),u=s.rest?wt(s.rest,e,{...n,path:[...n.path,a,...e.target==="openapi-3.0"?[s.items.length]:[]]}):null;e.target==="draft-2020-12"?(i.prefixItems=c,u&&(i.items=u)):e.target==="openapi-3.0"?(i.items={anyOf:c},u&&i.items.anyOf.push(u),i.minItems=c.length,u||(i.maxItems=c.length)):(i.items=c,u&&(i.additionalItems=u));let{minimum:l,maximum:d}=t._zod.bag;typeof l=="number"&&(i.minItems=l),typeof d=="number"&&(i.maxItems=d)},sI=(t,e,r,n)=>{let i=r,s=t._zod.def;i.type="object";let o=s.keyType,c=o._zod.bag?.patterns;if(s.mode==="loose"&&c&&c.size>0){let l=wt(s.valueType,e,{...n,path:[...n.path,"patternProperties","*"]});i.patternProperties={};for(let d of c)i.patternProperties[d.source]=l}else(e.target==="draft-07"||e.target==="draft-2020-12")&&(i.propertyNames=wt(s.keyType,e,{...n,path:[...n.path,"propertyNames"]})),i.additionalProperties=wt(s.valueType,e,{...n,path:[...n.path,"additionalProperties"]});let u=o._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(i.required=l)}},oI=(t,e,r,n)=>{let i=t._zod.def,s=wt(i.innerType,e,n),o=e.seen.get(t);e.target==="openapi-3.0"?(o.ref=i.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},aI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},cI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.default=JSON.parse(JSON.stringify(i.defaultValue))},uI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,e.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},lI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=o},dI=(t,e,r,n)=>{let i=t._zod.def,s=e.io==="input"?i.in._zod.def.type==="transform"?i.out:i.in:i.out;wt(s,e,n);let o=e.seen.get(t);o.ref=s},pI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType,r.readOnly=!0},fI=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},Q_=(t,e,r,n)=>{let i=t._zod.def;wt(i.innerType,e,n);let s=e.seen.get(t);s.ref=i.innerType},mI=(t,e,r,n)=>{let i=t._zod.innerType;wt(i,e,n);let s=e.seen.get(t);s.ref=i};function ga(t){return!!t._zod}function Fn(t,e){return ga(t)?da(t,e):t.safeParse(e)}function cf(t){if(!t)return;let e;if(ga(t)?e=t._zod?.def?.shape:e=t.shape,!!e){if(typeof e=="function")try{return e()}catch{return}return e}}function yI(t){if(ga(t)){let s=t._zod?.def;if(s){if(s.value!==void 0)return s.value;if(Array.isArray(s.values)&&s.values.length>0)return s.values[0]}}let r=t._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let n=t.value;if(n!==void 0)return n}var Hu={};vn(Hu,{ZodAny:()=>DI,ZodArray:()=>UI,ZodBase64:()=>wb,ZodBase64URL:()=>Eb,ZodBigInt:()=>vf,ZodBigIntFormat:()=>Tb,ZodBoolean:()=>gf,ZodCIDRv4:()=>xb,ZodCIDRv6:()=>Sb,ZodCUID:()=>mb,ZodCUID2:()=>hb,ZodCatch:()=>oR,ZodCodec:()=>Ab,ZodCustom:()=>Sf,ZodCustomStringFormat:()=>Vu,ZodDate:()=>Rb,ZodDefault:()=>eR,ZodDiscriminatedUnion:()=>FI,ZodE164:()=>kb,ZodEmail:()=>db,ZodEmoji:()=>pb,ZodEnum:()=>Bu,ZodExactOptional:()=>XI,ZodFile:()=>KI,ZodFunction:()=>hR,ZodGUID:()=>lf,ZodIPv4:()=>_b,ZodIPv6:()=>bb,ZodIntersection:()=>ZI,ZodJWT:()=>$b,ZodKSUID:()=>yb,ZodLazy:()=>pR,ZodLiteral:()=>WI,ZodMAC:()=>CI,ZodMap:()=>VI,ZodNaN:()=>cR,ZodNanoID:()=>fb,ZodNever:()=>MI,ZodNonOptional:()=>Cb,ZodNull:()=>jI,ZodNullable:()=>QI,ZodNumber:()=>hf,ZodNumberFormat:()=>va,ZodObject:()=>yf,ZodOptional:()=>Pb,ZodPipe:()=>Nb,ZodPrefault:()=>rR,ZodPromise:()=>mR,ZodReadonly:()=>uR,ZodRecord:()=>xf,ZodSet:()=>GI,ZodString:()=>ff,ZodStringFormat:()=>vt,ZodSuccess:()=>sR,ZodSymbol:()=>NI,ZodTemplateLiteral:()=>dR,ZodTransform:()=>JI,ZodTuple:()=>HI,ZodType:()=>Ae,ZodULID:()=>gb,ZodURL:()=>mf,ZodUUID:()=>Di,ZodUndefined:()=>AI,ZodUnion:()=>_f,ZodUnknown:()=>zI,ZodVoid:()=>LI,ZodXID:()=>vb,ZodXor:()=>qI,_ZodString:()=>lb,_default:()=>tR,_function:()=>N8,any:()=>h8,array:()=>He,base64:()=>YF,base64url:()=>QF,bigint:()=>l8,boolean:()=>Wt,catch:()=>aR,check:()=>A8,cidrv4:()=>JF,cidrv6:()=>XF,codec:()=>O8,cuid:()=>FF,cuid2:()=>ZF,custom:()=>jb,date:()=>v8,describe:()=>j8,discriminatedUnion:()=>bf,e164:()=>e8,email:()=>CF,emoji:()=>UF,enum:()=>xr,exactOptional:()=>YI,file:()=>$8,float32:()=>o8,float64:()=>a8,function:()=>N8,guid:()=>NF,hash:()=>s8,hex:()=>i8,hostname:()=>n8,httpUrl:()=>LF,instanceof:()=>z8,int:()=>ub,int32:()=>c8,int64:()=>d8,intersection:()=>Wu,ipv4:()=>GF,ipv6:()=>KF,json:()=>L8,jwt:()=>t8,keyof:()=>y8,ksuid:()=>VF,lazy:()=>fR,literal:()=>pe,looseObject:()=>br,looseRecord:()=>S8,mac:()=>WF,map:()=>w8,meta:()=>D8,nan:()=>R8,nanoid:()=>qF,nativeEnum:()=>k8,never:()=>Ib,nonoptional:()=>iR,null:()=>Gu,nullable:()=>df,nullish:()=>T8,number:()=>it,object:()=>ne,optional:()=>Tt,partialRecord:()=>x8,pipe:()=>pf,prefault:()=>nR,preprocess:()=>wf,promise:()=>C8,readonly:()=>lR,record:()=>Et,refine:()=>gR,set:()=>E8,strictObject:()=>_8,string:()=>M,stringFormat:()=>r8,stringbool:()=>M8,success:()=>I8,superRefine:()=>vR,symbol:()=>f8,templateLiteral:()=>P8,transform:()=>Ob,tuple:()=>BI,uint32:()=>u8,uint64:()=>p8,ulid:()=>HF,undefined:()=>m8,union:()=>dt,unknown:()=>yt,url:()=>MF,uuid:()=>AF,uuidv4:()=>jF,uuidv6:()=>DF,uuidv7:()=>zF,void:()=>g8,xid:()=>BF,xor:()=>b8});var uf={};vn(uf,{endsWith:()=>zu,gt:()=>Ai,gte:()=>Ar,includes:()=>ju,length:()=>ma,lowercase:()=>Nu,lt:()=>Ni,lte:()=>cn,maxLength:()=>fa,maxSize:()=>Ys,mime:()=>Mu,minLength:()=>ms,minSize:()=>ji,multipleOf:()=>Xs,negative:()=>q_,nonnegative:()=>Z_,nonpositive:()=>F_,normalize:()=>Lu,overwrite:()=>oi,positive:()=>U_,property:()=>H_,regex:()=>Cu,size:()=>pa,slugify:()=>nf,startsWith:()=>Du,toLowerCase:()=>qu,toUpperCase:()=>Fu,trim:()=>Uu,uppercase:()=>Au});var Qs={};vn(Qs,{ZodISODate:()=>nb,ZodISODateTime:()=>tb,ZodISODuration:()=>ab,ZodISOTime:()=>sb,date:()=>ib,datetime:()=>rb,duration:()=>cb,time:()=>ob});var tb=O("ZodISODateTime",(t,e)=>{hy.init(t,e),vt.init(t,e)});function rb(t){return v_(tb,t)}var nb=O("ZodISODate",(t,e)=>{gy.init(t,e),vt.init(t,e)});function ib(t){return y_(nb,t)}var sb=O("ZodISOTime",(t,e)=>{vy.init(t,e),vt.init(t,e)});function ob(t){return __(sb,t)}var ab=O("ZodISODuration",(t,e)=>{yy.init(t,e),vt.init(t,e)});function cb(t){return b_(ab,t)}var _I=(t,e)=>{Sp.init(t,e),t.name="ZodError",Object.defineProperties(t,{format:{value:r=>Ep(t,r)},flatten:{value:r=>wp(t,r)},addIssue:{value:r=>{t.issues.push(r),t.message=JSON.stringify(t.issues,ca,2)}},addIssues:{value:r=>{t.issues.push(...r),t.message=JSON.stringify(t.issues,ca,2)}},isEmpty:{get(){return t.issues.length===0}}})},Kbe=O("ZodError",_I),un=O("ZodError",_I,{Parent:Error});var bI=vu(un),xI=_u(un),SI=xu(un),wI=Su(un),EI=A$(un),kI=j$(un),$I=D$(un),TI=z$(un),II=M$(un),RI=L$(un),OI=U$(un),PI=q$(un);var Ae=O("ZodType",(t,e)=>(Ie.init(t,e),Object.assign(t["~standard"],{jsonSchema:{input:Zu(t,"input"),output:Zu(t,"output")}}),t.toJSONSchema=PT(t,{}),t.def=e,t.type=e.type,Object.defineProperty(t,"_def",{value:e}),t.check=(...r)=>t.clone(V.mergeDefs(e,{checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),t.with=t.check,t.clone=(r,n)=>Cr(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.parse=(r,n)=>bI(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>SI(t,r,n),t.parseAsync=async(r,n)=>xI(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>wI(t,r,n),t.spa=t.safeParseAsync,t.encode=(r,n)=>EI(t,r,n),t.decode=(r,n)=>kI(t,r,n),t.encodeAsync=async(r,n)=>$I(t,r,n),t.decodeAsync=async(r,n)=>TI(t,r,n),t.safeEncode=(r,n)=>II(t,r,n),t.safeDecode=(r,n)=>RI(t,r,n),t.safeEncodeAsync=async(r,n)=>OI(t,r,n),t.safeDecodeAsync=async(r,n)=>PI(t,r,n),t.refine=(r,n)=>t.check(gR(r,n)),t.superRefine=r=>t.check(vR(r)),t.overwrite=r=>t.check(oi(r)),t.optional=()=>Tt(t),t.exactOptional=()=>YI(t),t.nullable=()=>df(t),t.nullish=()=>Tt(df(t)),t.nonoptional=r=>iR(t,r),t.array=()=>He(t),t.or=r=>dt([t,r]),t.and=r=>Wu(t,r),t.transform=r=>pf(t,Ob(r)),t.default=r=>tR(t,r),t.prefault=r=>nR(t,r),t.catch=r=>aR(t,r),t.pipe=r=>pf(t,r),t.readonly=()=>lR(t),t.describe=r=>{let n=t.clone();return Nr.add(n,{description:r}),n},Object.defineProperty(t,"description",{get(){return Nr.get(t)?.description},configurable:!0}),t.meta=(...r)=>{if(r.length===0)return Nr.get(t);let n=t.clone();return Nr.add(n,r[0]),n},t.isOptional=()=>t.safeParse(void 0).success,t.isNullable=()=>t.safeParse(null).success,t.apply=r=>r(t),t)),lb=O("_ZodString",(t,e)=>{Js.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(n,i,s)=>CT(t,n,i,s);let r=t._zod.bag;t.format=r.format??null,t.minLength=r.minimum??null,t.maxLength=r.maximum??null,t.regex=(...n)=>t.check(Cu(...n)),t.includes=(...n)=>t.check(ju(...n)),t.startsWith=(...n)=>t.check(Du(...n)),t.endsWith=(...n)=>t.check(zu(...n)),t.min=(...n)=>t.check(ms(...n)),t.max=(...n)=>t.check(fa(...n)),t.length=(...n)=>t.check(ma(...n)),t.nonempty=(...n)=>t.check(ms(1,...n)),t.lowercase=n=>t.check(Nu(n)),t.uppercase=n=>t.check(Au(n)),t.trim=()=>t.check(Uu()),t.normalize=(...n)=>t.check(Lu(...n)),t.toLowerCase=()=>t.check(qu()),t.toUpperCase=()=>t.check(Fu()),t.slugify=()=>t.check(nf())}),ff=O("ZodString",(t,e)=>{Js.init(t,e),lb.init(t,e),t.email=r=>t.check(zp(db,r)),t.url=r=>t.check(Pu(mf,r)),t.jwt=r=>t.check(rf($b,r)),t.emoji=r=>t.check(Fp(pb,r)),t.guid=r=>t.check(Ou(lf,r)),t.uuid=r=>t.check(Mp(Di,r)),t.uuidv4=r=>t.check(Lp(Di,r)),t.uuidv6=r=>t.check(Up(Di,r)),t.uuidv7=r=>t.check(qp(Di,r)),t.nanoid=r=>t.check(Zp(fb,r)),t.guid=r=>t.check(Ou(lf,r)),t.cuid=r=>t.check(Hp(mb,r)),t.cuid2=r=>t.check(Bp(hb,r)),t.ulid=r=>t.check(Vp(gb,r)),t.base64=r=>t.check(Qp(wb,r)),t.base64url=r=>t.check(ef(Eb,r)),t.xid=r=>t.check(Gp(vb,r)),t.ksuid=r=>t.check(Wp(yb,r)),t.ipv4=r=>t.check(Kp(_b,r)),t.ipv6=r=>t.check(Jp(bb,r)),t.cidrv4=r=>t.check(Xp(xb,r)),t.cidrv6=r=>t.check(Yp(Sb,r)),t.e164=r=>t.check(tf(kb,r)),t.datetime=r=>t.check(rb(r)),t.date=r=>t.check(ib(r)),t.time=r=>t.check(ob(r)),t.duration=r=>t.check(cb(r))});function M(t){return h_(ff,t)}var vt=O("ZodStringFormat",(t,e)=>{lt.init(t,e),lb.init(t,e)}),db=O("ZodEmail",(t,e)=>{oy.init(t,e),vt.init(t,e)});function CF(t){return zp(db,t)}var lf=O("ZodGUID",(t,e)=>{iy.init(t,e),vt.init(t,e)});function NF(t){return Ou(lf,t)}var Di=O("ZodUUID",(t,e)=>{sy.init(t,e),vt.init(t,e)});function AF(t){return Mp(Di,t)}function jF(t){return Lp(Di,t)}function DF(t){return Up(Di,t)}function zF(t){return qp(Di,t)}var mf=O("ZodURL",(t,e)=>{ay.init(t,e),vt.init(t,e)});function MF(t){return Pu(mf,t)}function LF(t){return Pu(mf,{protocol:/^https?$/,hostname:bn.domain,...V.normalizeParams(t)})}var pb=O("ZodEmoji",(t,e)=>{cy.init(t,e),vt.init(t,e)});function UF(t){return Fp(pb,t)}var fb=O("ZodNanoID",(t,e)=>{uy.init(t,e),vt.init(t,e)});function qF(t){return Zp(fb,t)}var mb=O("ZodCUID",(t,e)=>{ly.init(t,e),vt.init(t,e)});function FF(t){return Hp(mb,t)}var hb=O("ZodCUID2",(t,e)=>{dy.init(t,e),vt.init(t,e)});function ZF(t){return Bp(hb,t)}var gb=O("ZodULID",(t,e)=>{py.init(t,e),vt.init(t,e)});function HF(t){return Vp(gb,t)}var vb=O("ZodXID",(t,e)=>{fy.init(t,e),vt.init(t,e)});function BF(t){return Gp(vb,t)}var yb=O("ZodKSUID",(t,e)=>{my.init(t,e),vt.init(t,e)});function VF(t){return Wp(yb,t)}var _b=O("ZodIPv4",(t,e)=>{_y.init(t,e),vt.init(t,e)});function GF(t){return Kp(_b,t)}var CI=O("ZodMAC",(t,e)=>{xy.init(t,e),vt.init(t,e)});function WF(t){return g_(CI,t)}var bb=O("ZodIPv6",(t,e)=>{by.init(t,e),vt.init(t,e)});function KF(t){return Jp(bb,t)}var xb=O("ZodCIDRv4",(t,e)=>{Sy.init(t,e),vt.init(t,e)});function JF(t){return Xp(xb,t)}var Sb=O("ZodCIDRv6",(t,e)=>{wy.init(t,e),vt.init(t,e)});function XF(t){return Yp(Sb,t)}var wb=O("ZodBase64",(t,e)=>{Ey.init(t,e),vt.init(t,e)});function YF(t){return Qp(wb,t)}var Eb=O("ZodBase64URL",(t,e)=>{ky.init(t,e),vt.init(t,e)});function QF(t){return ef(Eb,t)}var kb=O("ZodE164",(t,e)=>{$y.init(t,e),vt.init(t,e)});function e8(t){return tf(kb,t)}var $b=O("ZodJWT",(t,e)=>{Ty.init(t,e),vt.init(t,e)});function t8(t){return rf($b,t)}var Vu=O("ZodCustomStringFormat",(t,e)=>{Iy.init(t,e),vt.init(t,e)});function r8(t,e,r={}){return ha(Vu,t,e,r)}function n8(t){return ha(Vu,"hostname",bn.hostname,t)}function i8(t){return ha(Vu,"hex",bn.hex,t)}function s8(t,e){let r=e?.enc??"hex",n=`${t}_${r}`,i=bn[n];if(!i)throw new Error(`Unrecognized hash format: ${n}`);return ha(Vu,n,i,e)}var hf=O("ZodNumber",(t,e)=>{Np.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(n,i,s)=>NT(t,n,i,s),t.gt=(n,i)=>t.check(Ai(n,i)),t.gte=(n,i)=>t.check(Ar(n,i)),t.min=(n,i)=>t.check(Ar(n,i)),t.lt=(n,i)=>t.check(Ni(n,i)),t.lte=(n,i)=>t.check(cn(n,i)),t.max=(n,i)=>t.check(cn(n,i)),t.int=n=>t.check(ub(n)),t.safe=n=>t.check(ub(n)),t.positive=n=>t.check(Ai(0,n)),t.nonnegative=n=>t.check(Ar(0,n)),t.negative=n=>t.check(Ni(0,n)),t.nonpositive=n=>t.check(cn(0,n)),t.multipleOf=(n,i)=>t.check(Xs(n,i)),t.step=(n,i)=>t.check(Xs(n,i)),t.finite=()=>t;let r=t._zod.bag;t.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,t.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,t.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),t.isFinite=!0,t.format=r.format??null});function it(t){return x_(hf,t)}var va=O("ZodNumberFormat",(t,e)=>{Ry.init(t,e),hf.init(t,e)});function ub(t){return S_(va,t)}function o8(t){return w_(va,t)}function a8(t){return E_(va,t)}function c8(t){return k_(va,t)}function u8(t){return $_(va,t)}var gf=O("ZodBoolean",(t,e)=>{Tu.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>AT(t,r,n,i)});function Wt(t){return T_(gf,t)}var vf=O("ZodBigInt",(t,e)=>{Ap.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(n,i,s)=>jT(t,n,i,s),t.gte=(n,i)=>t.check(Ar(n,i)),t.min=(n,i)=>t.check(Ar(n,i)),t.gt=(n,i)=>t.check(Ai(n,i)),t.gte=(n,i)=>t.check(Ar(n,i)),t.min=(n,i)=>t.check(Ar(n,i)),t.lt=(n,i)=>t.check(Ni(n,i)),t.lte=(n,i)=>t.check(cn(n,i)),t.max=(n,i)=>t.check(cn(n,i)),t.positive=n=>t.check(Ai(BigInt(0),n)),t.negative=n=>t.check(Ni(BigInt(0),n)),t.nonpositive=n=>t.check(cn(BigInt(0),n)),t.nonnegative=n=>t.check(Ar(BigInt(0),n)),t.multipleOf=(n,i)=>t.check(Xs(n,i));let r=t._zod.bag;t.minValue=r.minimum??null,t.maxValue=r.maximum??null,t.format=r.format??null});function l8(t){return I_(vf,t)}var Tb=O("ZodBigIntFormat",(t,e)=>{Oy.init(t,e),vf.init(t,e)});function d8(t){return R_(Tb,t)}function p8(t){return O_(Tb,t)}var NI=O("ZodSymbol",(t,e)=>{Py.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>DT(t,r,n,i)});function f8(t){return P_(NI,t)}var AI=O("ZodUndefined",(t,e)=>{Cy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>MT(t,r,n,i)});function m8(t){return C_(AI,t)}var jI=O("ZodNull",(t,e)=>{Ny.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>zT(t,r,n,i)});function Gu(t){return N_(jI,t)}var DI=O("ZodAny",(t,e)=>{Ay.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>qT(t,r,n,i)});function h8(){return A_(DI)}var zI=O("ZodUnknown",(t,e)=>{jy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>FT(t,r,n,i)});function yt(){return j_(zI)}var MI=O("ZodNever",(t,e)=>{Dy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>UT(t,r,n,i)});function Ib(t){return D_(MI,t)}var LI=O("ZodVoid",(t,e)=>{zy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>LT(t,r,n,i)});function g8(t){return z_(LI,t)}var Rb=O("ZodDate",(t,e)=>{My.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(n,i,s)=>ZT(t,n,i,s),t.min=(n,i)=>t.check(Ar(n,i)),t.max=(n,i)=>t.check(cn(n,i));let r=t._zod.bag;t.minDate=r.minimum?new Date(r.minimum):null,t.maxDate=r.maximum?new Date(r.maximum):null});function v8(t){return M_(Rb,t)}var UI=O("ZodArray",(t,e)=>{Ly.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>tI(t,r,n,i),t.element=e.element,t.min=(r,n)=>t.check(ms(r,n)),t.nonempty=r=>t.check(ms(1,r)),t.max=(r,n)=>t.check(fa(r,n)),t.length=(r,n)=>t.check(ma(r,n)),t.unwrap=()=>t.element});function He(t,e){return OT(UI,t,e)}function y8(t){let e=t._zod.def.shape;return xr(Object.keys(e))}var yf=O("ZodObject",(t,e)=>{IT.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>rI(t,r,n,i),V.defineLazy(t,"shape",()=>e.shape),t.keyof=()=>xr(Object.keys(t._zod.def.shape)),t.catchall=r=>t.clone({...t._zod.def,catchall:r}),t.passthrough=()=>t.clone({...t._zod.def,catchall:yt()}),t.loose=()=>t.clone({...t._zod.def,catchall:yt()}),t.strict=()=>t.clone({...t._zod.def,catchall:Ib()}),t.strip=()=>t.clone({...t._zod.def,catchall:void 0}),t.extend=r=>V.extend(t,r),t.safeExtend=r=>V.safeExtend(t,r),t.merge=r=>V.merge(t,r),t.pick=r=>V.pick(t,r),t.omit=r=>V.omit(t,r),t.partial=(...r)=>V.partial(Pb,t,r[0]),t.required=(...r)=>V.required(Cb,t,r[0])});function ne(t,e){let r={type:"object",shape:t??{},...V.normalizeParams(e)};return new yf(r)}function _8(t,e){return new yf({type:"object",shape:t,catchall:Ib(),...V.normalizeParams(e)})}function br(t,e){return new yf({type:"object",shape:t,catchall:yt(),...V.normalizeParams(e)})}var _f=O("ZodUnion",(t,e)=>{Iu.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Y_(t,r,n,i),t.options=e.options});function dt(t,e){return new _f({type:"union",options:t,...V.normalizeParams(e)})}var qI=O("ZodXor",(t,e)=>{_f.init(t,e),Uy.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Y_(t,r,n,i),t.options=e.options});function b8(t,e){return new qI({type:"union",options:t,inclusive:!1,...V.normalizeParams(e)})}var FI=O("ZodDiscriminatedUnion",(t,e)=>{_f.init(t,e),qy.init(t,e)});function bf(t,e,r){return new FI({type:"union",options:e,discriminator:t,...V.normalizeParams(r)})}var ZI=O("ZodIntersection",(t,e)=>{Fy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>nI(t,r,n,i)});function Wu(t,e){return new ZI({type:"intersection",left:t,right:e})}var HI=O("ZodTuple",(t,e)=>{jp.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>iI(t,r,n,i),t.rest=r=>t.clone({...t._zod.def,rest:r})});function BI(t,e,r){let n=e instanceof Ie,i=n?r:e,s=n?e:null;return new HI({type:"tuple",items:t,rest:s,...V.normalizeParams(i)})}var xf=O("ZodRecord",(t,e)=>{Zy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>sI(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType});function Et(t,e,r){return new xf({type:"record",keyType:t,valueType:e,...V.normalizeParams(r)})}function x8(t,e,r){let n=Cr(t);return n._zod.values=void 0,new xf({type:"record",keyType:n,valueType:e,...V.normalizeParams(r)})}function S8(t,e,r){return new xf({type:"record",keyType:t,valueType:e,mode:"loose",...V.normalizeParams(r)})}var VI=O("ZodMap",(t,e)=>{Hy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>QT(t,r,n,i),t.keyType=e.keyType,t.valueType=e.valueType,t.min=(...r)=>t.check(ji(...r)),t.nonempty=r=>t.check(ji(1,r)),t.max=(...r)=>t.check(Ys(...r)),t.size=(...r)=>t.check(pa(...r))});function w8(t,e,r){return new VI({type:"map",keyType:t,valueType:e,...V.normalizeParams(r)})}var GI=O("ZodSet",(t,e)=>{By.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>eI(t,r,n,i),t.min=(...r)=>t.check(ji(...r)),t.nonempty=r=>t.check(ji(1,r)),t.max=(...r)=>t.check(Ys(...r)),t.size=(...r)=>t.check(pa(...r))});function E8(t,e){return new GI({type:"set",valueType:t,...V.normalizeParams(e)})}var Bu=O("ZodEnum",(t,e)=>{Vy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(n,i,s)=>HT(t,n,i,s),t.enum=e.entries,t.options=Object.values(e.entries);let r=new Set(Object.keys(e.entries));t.extract=(n,i)=>{let s={};for(let o of n)if(r.has(o))s[o]=e.entries[o];else throw new Error(`Key ${o} not found in enum`);return new Bu({...e,checks:[],...V.normalizeParams(i),entries:s})},t.exclude=(n,i)=>{let s={...e.entries};for(let o of n)if(r.has(o))delete s[o];else throw new Error(`Key ${o} not found in enum`);return new Bu({...e,checks:[],...V.normalizeParams(i),entries:s})}});function xr(t,e){let r=Array.isArray(t)?Object.fromEntries(t.map(n=>[n,n])):t;return new Bu({type:"enum",entries:r,...V.normalizeParams(e)})}function k8(t,e){return new Bu({type:"enum",entries:t,...V.normalizeParams(e)})}var WI=O("ZodLiteral",(t,e)=>{Gy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>BT(t,r,n,i),t.values=new Set(e.values),Object.defineProperty(t,"value",{get(){if(e.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return e.values[0]}})});function pe(t,e){return new WI({type:"literal",values:Array.isArray(t)?t:[t],...V.normalizeParams(e)})}var KI=O("ZodFile",(t,e)=>{Wy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>WT(t,r,n,i),t.min=(r,n)=>t.check(ji(r,n)),t.max=(r,n)=>t.check(Ys(r,n)),t.mime=(r,n)=>t.check(Mu(Array.isArray(r)?r:[r],n))});function $8(t){return B_(KI,t)}var JI=O("ZodTransform",(t,e)=>{Ky.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>YT(t,r,n,i),t._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Gs(t.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(V.issue(s,r.value,e));else{let o=s;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),r.issues.push(V.issue(o))}};let i=e.transform(r.value,r);return i instanceof Promise?i.then(s=>(r.value=s,r)):(r.value=i,r)}});function Ob(t){return new JI({type:"transform",transform:t})}var Pb=O("ZodOptional",(t,e)=>{Dp.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Q_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function Tt(t){return new Pb({type:"optional",innerType:t})}var XI=O("ZodExactOptional",(t,e)=>{Jy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>Q_(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function YI(t){return new XI({type:"optional",innerType:t})}var QI=O("ZodNullable",(t,e)=>{Xy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>oI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function df(t){return new QI({type:"nullable",innerType:t})}function T8(t){return Tt(df(t))}var eR=O("ZodDefault",(t,e)=>{Yy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>cI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeDefault=t.unwrap});function tR(t,e){return new eR({type:"default",innerType:t,get defaultValue(){return typeof e=="function"?e():V.shallowClone(e)}})}var rR=O("ZodPrefault",(t,e)=>{Qy.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>uI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function nR(t,e){return new rR({type:"prefault",innerType:t,get defaultValue(){return typeof e=="function"?e():V.shallowClone(e)}})}var Cb=O("ZodNonOptional",(t,e)=>{e_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>aI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function iR(t,e){return new Cb({type:"nonoptional",innerType:t,...V.normalizeParams(e)})}var sR=O("ZodSuccess",(t,e)=>{t_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>KT(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function I8(t){return new sR({type:"success",innerType:t})}var oR=O("ZodCatch",(t,e)=>{r_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>lI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType,t.removeCatch=t.unwrap});function aR(t,e){return new oR({type:"catch",innerType:t,catchValue:typeof e=="function"?e:()=>e})}var cR=O("ZodNaN",(t,e)=>{n_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>VT(t,r,n,i)});function R8(t){return L_(cR,t)}var Nb=O("ZodPipe",(t,e)=>{i_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>dI(t,r,n,i),t.in=e.in,t.out=e.out});function pf(t,e){return new Nb({type:"pipe",in:t,out:e})}var Ab=O("ZodCodec",(t,e)=>{Nb.init(t,e),Ru.init(t,e)});function O8(t,e,r){return new Ab({type:"pipe",in:t,out:e,transform:r.decode,reverseTransform:r.encode})}var uR=O("ZodReadonly",(t,e)=>{s_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>pI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function lR(t){return new uR({type:"readonly",innerType:t})}var dR=O("ZodTemplateLiteral",(t,e)=>{o_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>GT(t,r,n,i)});function P8(t,e){return new dR({type:"template_literal",parts:t,...V.normalizeParams(e)})}var pR=O("ZodLazy",(t,e)=>{u_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>mI(t,r,n,i),t.unwrap=()=>t._zod.def.getter()});function fR(t){return new pR({type:"lazy",getter:t})}var mR=O("ZodPromise",(t,e)=>{c_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>fI(t,r,n,i),t.unwrap=()=>t._zod.def.innerType});function C8(t){return new mR({type:"promise",innerType:t})}var hR=O("ZodFunction",(t,e)=>{a_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>XT(t,r,n,i)});function N8(t){return new hR({type:"function",input:Array.isArray(t?.input)?BI(t?.input):t?.input??He(yt()),output:t?.output??yt()})}var Sf=O("ZodCustom",(t,e)=>{l_.init(t,e),Ae.init(t,e),t._zod.processJSONSchema=(r,n,i)=>JT(t,r,n,i)});function A8(t){let e=new gt({check:"custom"});return e._zod.check=t,e}function jb(t,e){return V_(Sf,t??(()=>!0),e)}function gR(t,e={}){return G_(Sf,t,e)}function vR(t){return W_(t)}var j8=K_,D8=J_;function z8(t,e={}){let r=new Sf({type:"custom",check:"custom",fn:n=>n instanceof t,abort:!0,...V.normalizeParams(e)});return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}var M8=(...t)=>X_({Codec:Ab,Boolean:gf,String:ff},...t);function L8(t){let e=fR(()=>dt([M(t),it(),Wt(),Gu(),He(e),Et(M(),e)]));return e}function wf(t,e){return pf(Ob(t),e)}var yR;yR||(yR={});var nxe={...Hu,...uf,iso:Qs};Xt(d_());var zb="2025-11-25";var _R=[zb,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],hs="io.modelcontextprotocol/related-task",kf="2.0",dr=jb(t=>t!==null&&(typeof t=="object"||typeof t=="function")),bR=dt([M(),it().int()]),xR=M(),Sxe=br({ttl:dt([it(),Gu()]).optional(),pollInterval:it().optional()}),Z8=ne({ttl:it().optional()}),H8=ne({taskId:M()}),Mb=br({progressToken:bR.optional(),[hs]:H8.optional()}),ln=ne({_meta:Mb.optional()}),Ku=ln.extend({task:Z8.optional()}),SR=t=>Ku.safeParse(t).success,pr=ne({method:M(),params:ln.loose().optional()}),xn=ne({_meta:Mb.optional()}),Sn=ne({method:M(),params:xn.loose().optional()}),fr=br({_meta:Mb.optional()}),$f=dt([M(),it().int()]),wR=ne({jsonrpc:pe(kf),id:$f,...pr.shape}).strict(),Lb=t=>wR.safeParse(t).success,ER=ne({jsonrpc:pe(kf),...Sn.shape}).strict(),kR=t=>ER.safeParse(t).success,Ub=ne({jsonrpc:pe(kf),id:$f,result:fr}).strict(),Ju=t=>Ub.safeParse(t).success;var ke;(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"})(ke||(ke={}));var qb=ne({jsonrpc:pe(kf),id:$f.optional(),error:ne({code:it().int(),message:M(),data:yt().optional()})}).strict();var $R=t=>qb.safeParse(t).success;var TR=dt([wR,ER,Ub,qb]),wxe=dt([Ub,qb]),eo=fr.strict(),B8=xn.extend({requestId:$f.optional(),reason:M().optional()}),Tf=Sn.extend({method:pe("notifications/cancelled"),params:B8}),V8=ne({src:M(),mimeType:M().optional(),sizes:He(M()).optional(),theme:xr(["light","dark"]).optional()}),Xu=ne({icons:He(V8).optional()}),ya=ne({name:M(),title:M().optional()}),IR=ya.extend({...ya.shape,...Xu.shape,version:M(),websiteUrl:M().optional(),description:M().optional()}),G8=Wu(ne({applyDefaults:Wt().optional()}),Et(M(),yt())),W8=wf(t=>t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length===0?{form:{}}:t,Wu(ne({form:G8.optional(),url:dr.optional()}),Et(M(),yt()).optional())),K8=br({list:dr.optional(),cancel:dr.optional(),requests:br({sampling:br({createMessage:dr.optional()}).optional(),elicitation:br({create:dr.optional()}).optional()}).optional()}),J8=br({list:dr.optional(),cancel:dr.optional(),requests:br({tools:br({call:dr.optional()}).optional()}).optional()}),X8=ne({experimental:Et(M(),dr).optional(),sampling:ne({context:dr.optional(),tools:dr.optional()}).optional(),elicitation:W8.optional(),roots:ne({listChanged:Wt().optional()}).optional(),tasks:K8.optional()}),Y8=ln.extend({protocolVersion:M(),capabilities:X8,clientInfo:IR}),Q8=pr.extend({method:pe("initialize"),params:Y8});var e5=ne({experimental:Et(M(),dr).optional(),logging:dr.optional(),completions:dr.optional(),prompts:ne({listChanged:Wt().optional()}).optional(),resources:ne({subscribe:Wt().optional(),listChanged:Wt().optional()}).optional(),tools:ne({listChanged:Wt().optional()}).optional(),tasks:J8.optional()}),Fb=fr.extend({protocolVersion:M(),capabilities:e5,serverInfo:IR,instructions:M().optional()}),t5=Sn.extend({method:pe("notifications/initialized"),params:xn.optional()});var If=pr.extend({method:pe("ping"),params:ln.optional()}),r5=ne({progress:it(),total:Tt(it()),message:Tt(M())}),n5=ne({...xn.shape,...r5.shape,progressToken:bR}),Rf=Sn.extend({method:pe("notifications/progress"),params:n5}),i5=ln.extend({cursor:xR.optional()}),Yu=pr.extend({params:i5.optional()}),Qu=fr.extend({nextCursor:xR.optional()}),s5=xr(["working","input_required","completed","failed","cancelled"]),el=ne({taskId:M(),status:s5,ttl:dt([it(),Gu()]),createdAt:M(),lastUpdatedAt:M(),pollInterval:Tt(it()),statusMessage:Tt(M())}),to=fr.extend({task:el}),o5=xn.merge(el),tl=Sn.extend({method:pe("notifications/tasks/status"),params:o5}),Of=pr.extend({method:pe("tasks/get"),params:ln.extend({taskId:M()})}),Pf=fr.merge(el),Cf=pr.extend({method:pe("tasks/result"),params:ln.extend({taskId:M()})}),Exe=fr.loose(),Nf=Yu.extend({method:pe("tasks/list")}),Af=Qu.extend({tasks:He(el)}),jf=pr.extend({method:pe("tasks/cancel"),params:ln.extend({taskId:M()})}),RR=fr.merge(el),OR=ne({uri:M(),mimeType:Tt(M()),_meta:Et(M(),yt()).optional()}),PR=OR.extend({text:M()}),Zb=M().refine(t=>{try{return atob(t),!0}catch{return!1}},{message:"Invalid Base64 string"}),CR=OR.extend({blob:Zb}),rl=xr(["user","assistant"]),_a=ne({audience:He(rl).optional(),priority:it().min(0).max(1).optional(),lastModified:Qs.datetime({offset:!0}).optional()}),NR=ne({...ya.shape,...Xu.shape,uri:M(),description:Tt(M()),mimeType:Tt(M()),annotations:_a.optional(),_meta:Tt(br({}))}),a5=ne({...ya.shape,...Xu.shape,uriTemplate:M(),description:Tt(M()),mimeType:Tt(M()),annotations:_a.optional(),_meta:Tt(br({}))}),c5=Yu.extend({method:pe("resources/list")}),Hb=Qu.extend({resources:He(NR)}),u5=Yu.extend({method:pe("resources/templates/list")}),Bb=Qu.extend({resourceTemplates:He(a5)}),Vb=ln.extend({uri:M()}),l5=Vb,d5=pr.extend({method:pe("resources/read"),params:l5}),Gb=fr.extend({contents:He(dt([PR,CR]))}),Wb=Sn.extend({method:pe("notifications/resources/list_changed"),params:xn.optional()}),p5=Vb,f5=pr.extend({method:pe("resources/subscribe"),params:p5}),m5=Vb,h5=pr.extend({method:pe("resources/unsubscribe"),params:m5}),g5=xn.extend({uri:M()}),v5=Sn.extend({method:pe("notifications/resources/updated"),params:g5}),y5=ne({name:M(),description:Tt(M()),required:Tt(Wt())}),_5=ne({...ya.shape,...Xu.shape,description:Tt(M()),arguments:Tt(He(y5)),_meta:Tt(br({}))}),b5=Yu.extend({method:pe("prompts/list")}),Kb=Qu.extend({prompts:He(_5)}),x5=ln.extend({name:M(),arguments:Et(M(),M()).optional()}),S5=pr.extend({method:pe("prompts/get"),params:x5}),Jb=ne({type:pe("text"),text:M(),annotations:_a.optional(),_meta:Et(M(),yt()).optional()}),Xb=ne({type:pe("image"),data:Zb,mimeType:M(),annotations:_a.optional(),_meta:Et(M(),yt()).optional()}),Yb=ne({type:pe("audio"),data:Zb,mimeType:M(),annotations:_a.optional(),_meta:Et(M(),yt()).optional()}),w5=ne({type:pe("tool_use"),name:M(),id:M(),input:Et(M(),yt()),_meta:Et(M(),yt()).optional()}),E5=ne({type:pe("resource"),resource:dt([PR,CR]),annotations:_a.optional(),_meta:Et(M(),yt()).optional()}),k5=NR.extend({type:pe("resource_link")}),Qb=dt([Jb,Xb,Yb,k5,E5]),$5=ne({role:rl,content:Qb}),ex=fr.extend({description:M().optional(),messages:He($5)}),tx=Sn.extend({method:pe("notifications/prompts/list_changed"),params:xn.optional()}),T5=ne({title:M().optional(),readOnlyHint:Wt().optional(),destructiveHint:Wt().optional(),idempotentHint:Wt().optional(),openWorldHint:Wt().optional()}),I5=ne({taskSupport:xr(["required","optional","forbidden"]).optional()}),AR=ne({...ya.shape,...Xu.shape,description:M().optional(),inputSchema:ne({type:pe("object"),properties:Et(M(),dr).optional(),required:He(M()).optional()}).catchall(yt()),outputSchema:ne({type:pe("object"),properties:Et(M(),dr).optional(),required:He(M()).optional()}).catchall(yt()).optional(),annotations:T5.optional(),execution:I5.optional(),_meta:Et(M(),yt()).optional()}),R5=Yu.extend({method:pe("tools/list")}),rx=Qu.extend({tools:He(AR)}),ba=fr.extend({content:He(Qb).default([]),structuredContent:Et(M(),yt()).optional(),isError:Wt().optional()}),kxe=ba.or(fr.extend({toolResult:yt()})),O5=Ku.extend({name:M(),arguments:Et(M(),yt()).optional()}),P5=pr.extend({method:pe("tools/call"),params:O5}),nx=Sn.extend({method:pe("notifications/tools/list_changed"),params:xn.optional()}),jR=ne({autoRefresh:Wt().default(!0),debounceMs:it().int().nonnegative().default(300)}),DR=xr(["debug","info","notice","warning","error","critical","alert","emergency"]),C5=ln.extend({level:DR}),N5=pr.extend({method:pe("logging/setLevel"),params:C5}),A5=xn.extend({level:DR,logger:M().optional(),data:yt()}),j5=Sn.extend({method:pe("notifications/message"),params:A5}),D5=ne({name:M().optional()}),z5=ne({hints:He(D5).optional(),costPriority:it().min(0).max(1).optional(),speedPriority:it().min(0).max(1).optional(),intelligencePriority:it().min(0).max(1).optional()}),M5=ne({mode:xr(["auto","required","none"]).optional()}),L5=ne({type:pe("tool_result"),toolUseId:M().describe("The unique identifier for the corresponding tool call."),content:He(Qb).default([]),structuredContent:ne({}).loose().optional(),isError:Wt().optional(),_meta:Et(M(),yt()).optional()}),U5=bf("type",[Jb,Xb,Yb]),Ef=bf("type",[Jb,Xb,Yb,w5,L5]),q5=ne({role:rl,content:dt([Ef,He(Ef)]),_meta:Et(M(),yt()).optional()}),F5=Ku.extend({messages:He(q5),modelPreferences:z5.optional(),systemPrompt:M().optional(),includeContext:xr(["none","thisServer","allServers"]).optional(),temperature:it().optional(),maxTokens:it().int(),stopSequences:He(M()).optional(),metadata:dr.optional(),tools:He(AR).optional(),toolChoice:M5.optional()}),ix=pr.extend({method:pe("sampling/createMessage"),params:F5}),sx=fr.extend({model:M(),stopReason:Tt(xr(["endTurn","stopSequence","maxTokens"]).or(M())),role:rl,content:U5}),ox=fr.extend({model:M(),stopReason:Tt(xr(["endTurn","stopSequence","maxTokens","toolUse"]).or(M())),role:rl,content:dt([Ef,He(Ef)])}),Z5=ne({type:pe("boolean"),title:M().optional(),description:M().optional(),default:Wt().optional()}),H5=ne({type:pe("string"),title:M().optional(),description:M().optional(),minLength:it().optional(),maxLength:it().optional(),format:xr(["email","uri","date","date-time"]).optional(),default:M().optional()}),B5=ne({type:xr(["number","integer"]),title:M().optional(),description:M().optional(),minimum:it().optional(),maximum:it().optional(),default:it().optional()}),V5=ne({type:pe("string"),title:M().optional(),description:M().optional(),enum:He(M()),default:M().optional()}),G5=ne({type:pe("string"),title:M().optional(),description:M().optional(),oneOf:He(ne({const:M(),title:M()})),default:M().optional()}),W5=ne({type:pe("string"),title:M().optional(),description:M().optional(),enum:He(M()),enumNames:He(M()).optional(),default:M().optional()}),K5=dt([V5,G5]),J5=ne({type:pe("array"),title:M().optional(),description:M().optional(),minItems:it().optional(),maxItems:it().optional(),items:ne({type:pe("string"),enum:He(M())}),default:He(M()).optional()}),X5=ne({type:pe("array"),title:M().optional(),description:M().optional(),minItems:it().optional(),maxItems:it().optional(),items:ne({anyOf:He(ne({const:M(),title:M()}))}),default:He(M()).optional()}),Y5=dt([J5,X5]),Q5=dt([W5,K5,Y5]),e3=dt([Q5,Z5,H5,B5]),t3=Ku.extend({mode:pe("form").optional(),message:M(),requestedSchema:ne({type:pe("object"),properties:Et(M(),e3),required:He(M()).optional()})}),r3=Ku.extend({mode:pe("url"),message:M(),elicitationId:M(),url:M().url()}),n3=dt([t3,r3]),ax=pr.extend({method:pe("elicitation/create"),params:n3}),i3=xn.extend({elicitationId:M()}),s3=Sn.extend({method:pe("notifications/elicitation/complete"),params:i3}),cx=fr.extend({action:xr(["accept","decline","cancel"]),content:wf(t=>t===null?void 0:t,Et(M(),dt([M(),it(),Wt(),He(M())])).optional())}),o3=ne({type:pe("ref/resource"),uri:M()});var a3=ne({type:pe("ref/prompt"),name:M()}),c3=ln.extend({ref:dt([a3,o3]),argument:ne({name:M(),value:M()}),context:ne({arguments:Et(M(),M()).optional()}).optional()}),u3=pr.extend({method:pe("completion/complete"),params:c3});var ux=fr.extend({completion:br({values:He(M()).max(100),total:Tt(it().int()),hasMore:Tt(Wt())})}),l3=ne({uri:M().startsWith("file://"),name:M().optional(),_meta:Et(M(),yt()).optional()}),d3=pr.extend({method:pe("roots/list"),params:ln.optional()}),p3=fr.extend({roots:He(l3)}),f3=Sn.extend({method:pe("notifications/roots/list_changed"),params:xn.optional()}),$xe=dt([If,Q8,u3,N5,S5,b5,c5,u5,d5,f5,h5,P5,R5,Of,Cf,Nf,jf]),Txe=dt([Tf,Rf,t5,f3,tl]),Ixe=dt([eo,sx,ox,cx,p3,Pf,Af,to]),Rxe=dt([If,ix,ax,d3,Of,Cf,Nf,jf]),Oxe=dt([Tf,Rf,j5,v5,Wb,nx,tx,tl,s3]),Pxe=dt([eo,Fb,ux,ex,Kb,Hb,Bb,Gb,ba,rx,Pf,Af,to]),ge=class t extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,r,n){if(e===ke.UrlElicitationRequired&&n){let i=n;if(i.elicitations)return new Db(i.elicitations,r)}return new t(e,r,n)}},Db=class extends ge{constructor(e,r=`URL elicitation${e.length>1?"s":""} required`){super(ke.UrlElicitationRequired,r,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}};function gs(t){return t==="completed"||t==="failed"||t==="cancelled"}var dSe=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function lx(t){let r=cf(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let n=yI(r);if(typeof n!="string")throw new Error("Schema method literal must be a string");return n}function dx(t,e){let r=Fn(t,e);if(!r.success)throw r.error;return r.data}var _3=6e4,Df=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(Tf,r=>{this._oncancel(r)}),this.setNotificationHandler(Rf,r=>{this._onprogress(r)}),this.setRequestHandler(If,r=>({})),this._taskStore=e?.taskStore,this._taskMessageQueue=e?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Of,async(r,n)=>{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ge(ke.InvalidParams,"Failed to retrieve task: Task not found");return{...i}}),this.setRequestHandler(Cf,async(r,n)=>{let i=async()=>{let s=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(s,n.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),a.type==="response")l(c);else{let d=c,p=new ge(d.error.code,d.error.message,d.error.data);l(p)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(a.message,{relatedRequestId:n.requestId})}}let o=await this._taskStore.getTask(s,n.sessionId);if(!o)throw new ge(ke.InvalidParams,`Task not found: ${s}`);if(!gs(o.status))return await this._waitForTaskUpdate(s,n.signal),await i();if(gs(o.status)){let a=await this._taskStore.getTaskResult(s,n.sessionId);return this._clearTaskQueue(s),{...a,_meta:{...a._meta,[hs]:{taskId:s}}}}return await i()};return await i()}),this.setRequestHandler(Nf,async(r,n)=>{try{let{tasks:i,nextCursor:s}=await this._taskStore.listTasks(r.params?.cursor,n.sessionId);return{tasks:i,nextCursor:s,_meta:{}}}catch(i){throw new ge(ke.InvalidParams,`Failed to list tasks: ${i instanceof Error?i.message:String(i)}`)}}),this.setRequestHandler(jf,async(r,n)=>{try{let i=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!i)throw new ge(ke.InvalidParams,`Task not found: ${r.params.taskId}`);if(gs(i.status))throw new ge(ke.InvalidParams,`Cannot cancel task in terminal status: ${i.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",n.sessionId),this._clearTaskQueue(r.params.taskId);let s=await this._taskStore.getTask(r.params.taskId,n.sessionId);if(!s)throw new ge(ke.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...s}}catch(i){throw i instanceof ge?i:new ge(ke.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,r,n,i,s=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:s,onTimeout:i})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),ge.fromError(ke.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.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 r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let n=this.transport?.onerror;this._transport.onerror=s=>{n?.(s),this._onerror(s)};let i=this._transport?.onmessage;this._transport.onmessage=(s,o)=>{i?.(s,o),Ju(s)||$R(s)?this._onresponse(s):Lb(s)?this._onrequest(s,o):kR(s)?this._onnotification(s):this._onerror(new Error(`Unknown message type: ${JSON.stringify(s)}`))},await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let n of this._timeoutInfo.values())clearTimeout(n.timeoutId);this._timeoutInfo.clear();for(let n of this._requestHandlerAbortControllers.values())n.abort();this._requestHandlerAbortControllers.clear();let r=ge.fromError(ke.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let n of e.values())n(r)}_onerror(e){this.onerror?.(e)}_onnotification(e){let r=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(e)).catch(n=>this._onerror(new Error(`Uncaught error in notification handler: ${n}`)))}_onrequest(e,r){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,i=this._transport,s=e.params?._meta?.[hs]?.taskId;if(n===void 0){let l={jsonrpc:"2.0",id:e.id,error:{code:ke.MethodNotFound,message:"Method not found"}};s&&this._taskMessageQueue?this._enqueueTaskMessage(s,{type:"error",message:l,timestamp:Date.now()},i?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):i?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let o=new AbortController;this._requestHandlerAbortControllers.set(e.id,o);let a=SR(e.params)?e.params.task:void 0,c=this._taskStore?this.requestTaskStore(e,i?.sessionId):void 0,u={signal:o.signal,sessionId:i?.sessionId,_meta:e.params?._meta,sendNotification:async l=>{if(o.signal.aborted)return;let d={relatedRequestId:e.id};s&&(d.relatedTask={taskId:s}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(o.signal.aborted)throw new ge(ke.ConnectionClosed,"Request was cancelled");let f={...p,relatedRequestId:e.id};s&&!f.relatedTask&&(f.relatedTask={taskId:s});let m=f.relatedTask?.taskId??s;return m&&c&&await c.updateTaskStatus(m,"input_required"),await this.request(l,d,f)},authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo,taskId:s,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(e.method)}).then(()=>n(e,u)).then(async l=>{if(o.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:e.id};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"response",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)},async l=>{if(o.signal.aborted)return;let d={jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(l.code)?l.code:ke.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};s&&this._taskMessageQueue?await this._enqueueTaskMessage(s,{type:"error",message:d,timestamp:Date.now()},i?.sessionId):await i?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===o&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),s=this._progressHandlers.get(i);if(!s){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),a=this._timeoutInfo.get(i);if(a&&o&&a.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(c){this._responseHandlers.delete(i),this._progressHandlers.delete(i),this._cleanupTimeout(i),o(c);return}s(n)}_onresponse(e){let r=Number(e.id),n=this._requestResolvers.get(r);if(n){if(this._requestResolvers.delete(r),Ju(e))n(e);else{let o=new ge(e.error.code,e.error.message,e.error.data);n(o)}return}let i=this._responseHandlers.get(r);if(i===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let s=!1;if(Ju(e)&&e.result&&typeof e.result=="object"){let o=e.result;if(o.task&&typeof o.task=="object"){let a=o.task;typeof a.taskId=="string"&&(s=!0,this._taskProgressTokens.set(a.taskId,r))}}if(s||this._progressHandlers.delete(r),Ju(e))i(e);else{let o=ge.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,r,n){let{task:i}=n??{};if(!i){try{yield{type:"result",result:await this.request(e,r,n)}}catch(o){yield{type:"error",error:o instanceof ge?o:new ge(ke.InternalError,String(o))}}return}let s;try{let o=await this.request(e,to,n);if(o.task)s=o.task.taskId,yield{type:"taskCreated",task:o.task};else throw new ge(ke.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:s},n);if(yield{type:"taskStatus",task:a},gs(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)}:a.status==="failed"?yield{type:"error",error:new ge(ke.InternalError,`Task ${s} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new ge(ke.InternalError,`Task ${s} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:s},r,n)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),n?.signal?.throwIfAborted()}}catch(o){yield{type:"error",error:o instanceof ge?o:new ge(ke.InternalError,String(o))}}}request(e,r,n){let{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o,task:a,relatedTask:c}=n??{};return new Promise((u,l)=>{let d=_=>{l(_)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method),a&&this.assertTaskCapability(e.method)}catch(_){d(_);return}n?.signal?.throwIfAborted();let p=this._requestMessageId++,f={...e,jsonrpc:"2.0",id:p};n?.onprogress&&(this._progressHandlers.set(p,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta||{},progressToken:p}}),a&&(f.params={...f.params,task:a}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[hs]:c}});let m=_=>{this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(_)}},{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(x=>this._onerror(new Error(`Failed to send cancellation: ${x}`)));let y=_ instanceof ge?_:new ge(ke.RequestTimeout,String(_));l(y)};this._responseHandlers.set(p,_=>{if(!n?.signal?.aborted){if(_ instanceof Error)return l(_);try{let y=Fn(r,_.result);y.success?u(y.data):l(y.error)}catch(y){l(y)}}}),n?.signal?.addEventListener("abort",()=>{m(n?.signal?.reason)});let g=n?.timeout??_3,h=()=>m(ge.fromError(ke.RequestTimeout,"Request timed out",{timeout:g}));this._setupTimeout(p,g,n?.maxTotalTimeout,h,n?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let _=y=>{let x=this._responseHandlers.get(p);x?x(y):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,_),this._enqueueTaskMessage(v,{type:"request",message:f,timestamp:Date.now()}).catch(y=>{this._cleanupTimeout(p),l(y)})}else this._transport.send(f,{relatedRequestId:i,resumptionToken:s,onresumptiontoken:o}).catch(_=>{this._cleanupTimeout(p),l(_)})})}async getTask(e,r){return this.request({method:"tasks/get",params:e},Pf,r)}async getTaskResult(e,r,n){return this.request({method:"tasks/result",params:e},r,n)}async listTasks(e,r){return this.request({method:"tasks/list",params:e},Af,r)}async cancelTask(e,r){return this.request({method:"tasks/cancel",params:e},RR,r)}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n=r?.relatedTask?.taskId;if(n){let a={...e,jsonrpc:"2.0",params:{...e.params,_meta:{...e.params?._meta||{},[hs]:r.relatedTask}}};await this._enqueueTaskMessage(n,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!r?.relatedRequestId&&!r?.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 a={...e,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[hs]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let o={...e,jsonrpc:"2.0"};r?.relatedTask&&(o={...o,params:{...o.params,_meta:{...o.params?._meta||{},[hs]:r.relatedTask}}}),await this._transport.send(o,r)}setRequestHandler(e,r){let n=lx(e);this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,s)=>{let o=dx(e,i);return Promise.resolve(r(o,s))})}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,r){let n=lx(e);this._notificationHandlers.set(n,i=>{let s=dx(e,i);return Promise.resolve(r(s))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}_cleanupTaskProgressHandler(e){let r=this._taskProgressTokens.get(e);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(e))}async _enqueueTaskMessage(e,r,n){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,r,n,i)}async _clearTaskQueue(e,r){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,r);for(let i of n)if(i.type==="request"&&Lb(i.message)){let s=i.message.id,o=this._requestResolvers.get(s);o?(o(new ge(ke.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(s)):this._onerror(new Error(`Resolver missing for request ${s} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,r){let n=this._options?.defaultTaskPollInterval??1e3;try{let i=await this._taskStore?.getTask(e);i?.pollInterval&&(n=i.pollInterval)}catch{}return new Promise((i,s)=>{if(r.aborted){s(new ge(ke.InvalidRequest,"Request cancelled"));return}let o=setTimeout(i,n);r.addEventListener("abort",()=>{clearTimeout(o),s(new ge(ke.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(e,r){let n=this._taskStore;if(!n)throw new Error("No task store configured");return{createTask:async i=>{if(!e)throw new Error("No request provided");return await n.createTask(i,e.id,{method:e.method,params:e.params},r)},getTask:async i=>{let s=await n.getTask(i,r);if(!s)throw new ge(ke.InvalidParams,"Failed to retrieve task: Task not found");return s},storeTaskResult:async(i,s,o)=>{await n.storeTaskResult(i,s,o,r);let a=await n.getTask(i,r);if(a){let c=tl.parse({method:"notifications/tasks/status",params:a});await this.notification(c),gs(a.status)&&this._cleanupTaskProgressHandler(i)}},getTaskResult:i=>n.getTaskResult(i,r),updateTaskStatus:async(i,s,o)=>{let a=await n.getTask(i,r);if(!a)throw new ge(ke.InvalidParams,`Task "${i}" not found - it may have been cleaned up`);if(gs(a.status))throw new ge(ke.InvalidParams,`Cannot update task "${i}" from terminal status "${a.status}" to "${s}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(i,s,o,r);let c=await n.getTask(i,r);if(c){let u=tl.parse({method:"notifications/tasks/status",params:c});await this.notification(u),gs(c.status)&&this._cleanupTaskProgressHandler(i)}},listTasks:i=>n.listTasks(i,r)}}};function zR(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function MR(t,e){let r={...t};for(let n in e){let i=n,s=e[i];if(s===void 0)continue;let o=r[i];zR(o)&&zR(s)?r[i]={...o,...s}:r[i]=s}return r}var EP=nt(JS(),1),kP=nt(wP(),1);function lW(){let t=new EP.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,kP.default)(t),t}var ym=class{constructor(e){this._ajv=e??lW()}getValidator(e){let r="$id"in e&&typeof e.$id=="string"?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return n=>r(n)?{valid:!0,data:n,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var _m=class{constructor(e){this._client=e}async*callToolStream(e,r=ba,n){let i=this._client,s={...n,task:n?.task??(i.isToolTask(e.name)?{}:void 0)},o=i.requestStream({method:"tools/call",params:e},r,s),a=i.getToolOutputValidator(e.name);for await(let c of o){if(c.type==="result"&&a){let u=c.result;if(!u.structuredContent&&!u.isError){yield{type:"error",error:new ge(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`)};return}if(u.structuredContent)try{let l=a(u.structuredContent);if(!l.valid){yield{type:"error",error:new ge(ke.InvalidParams,`Structured content does not match the tool's output schema: ${l.errorMessage}`)};return}}catch(l){if(l instanceof ge){yield{type:"error",error:l};return}yield{type:"error",error:new ge(ke.InvalidParams,`Failed to validate structured content: ${l instanceof Error?l.message:String(l)}`)};return}}yield c}}async getTask(e,r){return this._client.getTask({taskId:e},r)}async getTaskResult(e,r,n){return this._client.getTaskResult({taskId:e},r,n)}async listTasks(e,r){return this._client.listTasks(e?{cursor:e}:void 0,r)}async cancelTask(e,r){return this._client.cancelTask({taskId:e},r)}requestStream(e,r,n){return this._client.requestStream(e,r,n)}};function $P(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"tools/call":if(!t.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${e})`);break;default:break}}function TP(t,e,r){if(!t)throw new Error(`${r} does not support task creation (required for ${e})`);switch(e){case"sampling/createMessage":if(!t.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${e})`);break;case"elicitation/create":if(!t.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${e})`);break;default:break}}function bm(t,e){if(!(!t||e===null||typeof e!="object")){if(t.type==="object"&&t.properties&&typeof t.properties=="object"){let r=e,n=t.properties;for(let i of Object.keys(n)){let s=n[i];r[i]===void 0&&Object.prototype.hasOwnProperty.call(s,"default")&&(r[i]=s.default),r[i]!==void 0&&bm(s,r[i])}}if(Array.isArray(t.anyOf))for(let r of t.anyOf)typeof r!="boolean"&&bm(r,e);if(Array.isArray(t.oneOf))for(let r of t.oneOf)typeof r!="boolean"&&bm(r,e)}}function dW(t){if(!t)return{supportsFormMode:!1,supportsUrlMode:!1};let e=t.form!==void 0,r=t.url!==void 0;return{supportsFormMode:e||!e&&!r,supportsUrlMode:r}}var xm=class extends Df{constructor(e,r){super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=r?.capabilities??{},this._jsonSchemaValidator=r?.jsonSchemaValidator??new ym,r?.listChanged&&(this._pendingListChangedConfig=r.listChanged)}_setupListChangedHandlers(e){e.tools&&this._serverCapabilities?.tools?.listChanged&&this._setupListChangedHandler("tools",nx,e.tools,async()=>(await this.listTools()).tools),e.prompts&&this._serverCapabilities?.prompts?.listChanged&&this._setupListChangedHandler("prompts",tx,e.prompts,async()=>(await this.listPrompts()).prompts),e.resources&&this._serverCapabilities?.resources?.listChanged&&this._setupListChangedHandler("resources",Wb,e.resources,async()=>(await this.listResources()).resources)}get experimental(){return this._experimental||(this._experimental={tasks:new _m(this)}),this._experimental}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=MR(this._capabilities,e)}setRequestHandler(e,r){let i=cf(e)?.method;if(!i)throw new Error("Schema is missing a method literal");let s;if(ga(i)){let a=i;s=a._zod?.def?.value??a.value}else{let a=i;s=a._def?.value??a.value}if(typeof s!="string")throw new Error("Schema method literal must be a string");let o=s;if(o==="elicitation/create"){let a=async(c,u)=>{let l=Fn(ax,c);if(!l.success){let _=l.error instanceof Error?l.error.message:String(l.error);throw new ge(ke.InvalidParams,`Invalid elicitation request: ${_}`)}let{params:d}=l.data;d.mode=d.mode??"form";let{supportsFormMode:p,supportsUrlMode:f}=dW(this._capabilities.elicitation);if(d.mode==="form"&&!p)throw new ge(ke.InvalidParams,"Client does not support form-mode elicitation requests");if(d.mode==="url"&&!f)throw new ge(ke.InvalidParams,"Client does not support URL-mode elicitation requests");let m=await Promise.resolve(r(c,u));if(d.task){let _=Fn(to,m);if(!_.success){let y=_.error instanceof Error?_.error.message:String(_.error);throw new ge(ke.InvalidParams,`Invalid task creation result: ${y}`)}return _.data}let g=Fn(cx,m);if(!g.success){let _=g.error instanceof Error?g.error.message:String(g.error);throw new ge(ke.InvalidParams,`Invalid elicitation result: ${_}`)}let h=g.data,v=d.mode==="form"?d.requestedSchema:void 0;if(d.mode==="form"&&h.action==="accept"&&h.content&&v&&this._capabilities.elicitation?.form?.applyDefaults)try{bm(v,h.content)}catch{}return h};return super.setRequestHandler(e,a)}if(o==="sampling/createMessage"){let a=async(c,u)=>{let l=Fn(ix,c);if(!l.success){let h=l.error instanceof Error?l.error.message:String(l.error);throw new ge(ke.InvalidParams,`Invalid sampling request: ${h}`)}let{params:d}=l.data,p=await Promise.resolve(r(c,u));if(d.task){let h=Fn(to,p);if(!h.success){let v=h.error instanceof Error?h.error.message:String(h.error);throw new ge(ke.InvalidParams,`Invalid task creation result: ${v}`)}return h.data}let m=d.tools||d.toolChoice?ox:sx,g=Fn(m,p);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new ge(ke.InvalidParams,`Invalid sampling result: ${h}`)}return g.data};return super.setRequestHandler(e,a)}return super.setRequestHandler(e,r)}assertCapability(e,r){if(!this._serverCapabilities?.[e])throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:zb,capabilities:this._capabilities,clientInfo:this._clientInfo}},Fb,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!_R.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig&&(this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0)}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){switch(e){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){switch(e){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){if(this._capabilities)switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Client does not support tasks capability (required for ${e})`);break;case"ping":break}}assertTaskCapability(e){$P(this._serverCapabilities?.tasks?.requests,e,"Server")}assertTaskHandlerCapability(e){this._capabilities&&TP(this._capabilities.tasks?.requests,e,"Client")}async ping(e){return this.request({method:"ping"},eo,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},ux,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},eo,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},ex,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Kb,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},Hb,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bb,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Gb,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},eo,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},eo,r)}async callTool(e,r=ba,n){if(this.isToolTaskRequired(e.name))throw new ge(ke.InvalidRequest,`Tool "${e.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let i=await this.request({method:"tools/call",params:e},r,n),s=this.getToolOutputValidator(e.name);if(s){if(!i.structuredContent&&!i.isError)throw new ge(ke.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{let o=s(i.structuredContent);if(!o.valid)throw new ge(ke.InvalidParams,`Structured content does not match the tool's output schema: ${o.errorMessage}`)}catch(o){throw o instanceof ge?o:new ge(ke.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}isToolTask(e){return this._serverCapabilities?.tasks?.requests?.tools?.call?this._cachedKnownTaskTools.has(e):!1}isToolTaskRequired(e){return this._cachedRequiredTaskTools.has(e)}cacheToolMetadata(e){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let r of e){if(r.outputSchema){let i=this._jsonSchemaValidator.getValidator(r.outputSchema);this._cachedToolOutputValidators.set(r.name,i)}let n=r.execution?.taskSupport;(n==="required"||n==="optional")&&this._cachedKnownTaskTools.add(r.name),n==="required"&&this._cachedRequiredTaskTools.add(r.name)}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},rx,r);return this.cacheToolMetadata(n.tools),n}_setupListChangedHandler(e,r,n,i){let s=jR.safeParse(n);if(!s.success)throw new Error(`Invalid ${e} listChanged options: ${s.error.message}`);if(typeof n.onChanged!="function")throw new Error(`Invalid ${e} listChanged options: onChanged must be a function`);let{autoRefresh:o,debounceMs:a}=s.data,{onChanged:c}=n,u=async()=>{if(!o){c(null,null);return}try{let d=await i();c(null,d)}catch(d){let p=d instanceof Error?d:new Error(String(d));c(p,null)}},l=()=>{if(a){let d=this._listChangedDebounceTimers.get(e);d&&clearTimeout(d);let p=setTimeout(u,a);this._listChangedDebounceTimers.set(e,p)}else u()};this.setNotificationHandler(r,l)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var vC=nt(hC(),1),Nl=nt(require("node:process"),1),yC=require("node:stream");var wm=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
247
247
  `);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),MW(r)}clear(){this._buffer=void 0}};function MW(t){return TR.parse(JSON.parse(t))}function gC(t){return JSON.stringify(t)+`
248
248
  `}var LW=Nl.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function UW(){let t={};for(let e of LW){let r=Nl.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Em=class{constructor(e){this._readBuffer=new wm,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new yC.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,vC.default)(this._serverParams.command,this._serverParams.args??[],{env:{...UW(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Nl.default.platform==="win32"&&qW(),cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=gC(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function qW(){return"type"in Nl.default}Jr();Tn();kr();var Ua=require("fs"),b0=require("path"),AC=require("os");ie();var u7=(0,b0.join)((0,AC.homedir)(),".vibelearn"),_0=(0,b0.join)(u7,".env"),l7=["ANTHROPIC_API_KEY","CLAUDECODE"];function d7(t){let e={};for(let r of t.split(`
249
- `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let s=n.slice(0,i).trim(),o=n.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),s&&(e[s]=o)}return e}function x0(){if(!(0,Ua.existsSync)(_0))return{};try{let t=(0,Ua.readFileSync)(_0,"utf-8"),e=d7(t),r={};return e.ANTHROPIC_API_KEY&&(r.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY),e.GEMINI_API_KEY&&(r.GEMINI_API_KEY=e.GEMINI_API_KEY),e.OPENROUTER_API_KEY&&(r.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY),e.VIBELEARN_API_KEY&&(r.VIBELEARN_API_KEY=e.VIBELEARN_API_KEY),r}catch(t){return b.warn("ENV","Failed to load .env file",{path:_0},t),{}}}function jC(t=!0){let e={};for(let[r,n]of Object.entries(process.env))n!==void 0&&!l7.includes(r)&&(e[r]=n);if(e.CLAUDE_CODE_ENTRYPOINT="sdk-ts",t){let r=x0();r.ANTHROPIC_API_KEY&&(e.ANTHROPIC_API_KEY=r.ANTHROPIC_API_KEY),r.GEMINI_API_KEY&&(e.GEMINI_API_KEY=r.GEMINI_API_KEY),r.OPENROUTER_API_KEY&&(e.OPENROUTER_API_KEY=r.OPENROUTER_API_KEY),!e.ANTHROPIC_API_KEY&&process.env.CLAUDE_CODE_OAUTH_TOKEN&&(e.CLAUDE_CODE_OAUTH_TOKEN=process.env.CLAUDE_CODE_OAUTH_TOKEN)}return e}function qa(t){return x0()[t]}function p7(){return!!x0().ANTHROPIC_API_KEY}function Om(){return p7()?"API key (from ~/.vibelearn/.env)":process.env.CLAUDE_CODE_OAUTH_TOKEN?"Claude Code OAuth token (from parent process)":"Claude Code CLI (subscription billing)"}ie();var mo=require("fs"),GC=require("os"),$0=nt(require("path"),1);ie();var Bi=require("fs"),DC=require("os"),Ml=nt(require("path"),1);ie();var f7=5e3,m7=1e3,h7=Ml.default.join((0,DC.homedir)(),".vibelearn"),g7=Ml.default.join(h7,"supervisor.json");function pn(t){if(!Number.isInteger(t)||t<0||t===0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}var w0=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(e=g7){this.registryPath=e}initialize(){if(this.initialized)return;if(this.initialized=!0,(0,Bi.mkdirSync)(Ml.default.dirname(this.registryPath),{recursive:!0}),!(0,Bi.existsSync)(this.registryPath)){this.persist();return}try{let n=JSON.parse((0,Bi.readFileSync)(this.registryPath,"utf-8")).processes??{};for(let[i,s]of Object.entries(n))this.entries.set(i,s)}catch(r){b.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},r),this.entries.clear()}let e=this.pruneDeadEntries();e>0&&b.info("SYSTEM","Removed dead processes from supervisor registry",{removed:e}),this.persist()}register(e,r,n){this.initialize(),this.entries.set(e,r),n&&this.runtimeProcesses.set(e,n),this.persist()}unregister(e){this.initialize(),this.entries.delete(e),this.runtimeProcesses.delete(e),this.persist()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([e,r])=>({id:e,...r})).sort((e,r)=>{let n=Date.parse(e.startedAt),i=Date.parse(r.startedAt);return(Number.isNaN(n)?0:n)-(Number.isNaN(i)?0:i)})}getBySession(e){let r=String(e);return this.getAll().filter(n=>n.sessionId!==void 0&&String(n.sessionId)===r)}getRuntimeProcess(e){return this.runtimeProcesses.get(e)}getByPid(e){return this.getAll().filter(r=>r.pid===e)}pruneDeadEntries(){this.initialize();let e=0;for(let[r,n]of this.entries)pn(n.pid)||(this.entries.delete(r),this.runtimeProcesses.delete(r),e+=1);return e>0&&this.persist(),e}async reapSession(e){this.initialize();let r=this.getBySession(e);if(r.length===0)return 0;let n=typeof e=="number"?e:Number(e)||void 0;b.info("SYSTEM",`Reaping ${r.length} process(es) for session ${e}`,{sessionId:n,pids:r.map(a=>a.pid)});let i=r.filter(a=>pn(a.pid));for(let a of i)try{process.kill(a.pid,"SIGTERM")}catch(c){c.code!=="ESRCH"&&b.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid},c)}let s=Date.now()+f7;for(;Date.now()<s&&i.filter(c=>pn(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let o=i.filter(a=>pn(a.pid));for(let a of o){b.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,sessionId:n});try{process.kill(a.pid,"SIGKILL")}catch(c){c.code!=="ESRCH"&&b.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid},c)}}if(o.length>0){let a=Date.now()+m7;for(;Date.now()<a&&o.filter(u=>pn(u.pid)).length!==0;)await new Promise(u=>setTimeout(u,100))}for(let a of r)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);return this.persist(),b.info("SYSTEM",`Reaped ${r.length} process(es) for session ${e}`,{sessionId:n,reaped:r.length}),r.length}persist(){let e={processes:Object.fromEntries(this.entries.entries())};(0,Bi.mkdirSync)(Ml.default.dirname(this.registryPath),{recursive:!0}),(0,Bi.writeFileSync)(this.registryPath,JSON.stringify(e,null,2))}},S0=null;function Pm(){return S0||(S0=new w0),S0}var LC=require("child_process"),UC=require("fs"),qC=require("os"),E0=nt(require("path"),1),FC=require("util");ie();Tn();var v7=(0,FC.promisify)(LC.execFile),y7=E0.default.join((0,qC.homedir)(),".vibelearn"),_7=E0.default.join(y7,"worker.pid");async function ZC(t){let e=t.currentPid??process.pid,r=t.pidFilePath??_7,n=t.registry.getAll(),i=[...n].filter(o=>o.pid!==e).sort((o,a)=>Date.parse(a.startedAt)-Date.parse(o.startedAt));for(let o of i){if(!pn(o.pid)){t.registry.unregister(o.id);continue}try{await MC(o.pid,"SIGTERM")}catch(a){b.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:o.pid,type:o.type},a)}}await zC(i,5e3);let s=i.filter(o=>pn(o.pid));for(let o of s)try{await MC(o.pid,"SIGKILL")}catch(a){b.debug("SYSTEM","Failed to force kill child process",{pid:o.pid,type:o.type},a)}await zC(s,1e3);for(let o of i)t.registry.unregister(o.id);for(let o of n.filter(a=>a.pid===e))t.registry.unregister(o.id);try{(0,UC.rmSync)(r,{force:!0})}catch(o){b.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:r},o)}t.registry.pruneDeadEntries()}async function zC(t,e){let r=Date.now()+e;for(;Date.now()<r;){if(t.filter(i=>pn(i.pid)).length===0)return;await new Promise(i=>setTimeout(i,100))}}async function MC(t,e){if(e==="SIGTERM"){try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}return}if(process.platform==="win32"){let r=await b7();if(r){await new Promise((i,s)=>{r(t,e,o=>{if(!o){i();return}if(o.code==="ESRCH"){i();return}s(o)})});return}let n=["/PID",String(t),"/T"];e==="SIGKILL"&&n.push("/F"),await v7("taskkill",n,{timeout:Mr.POWERSHELL_COMMAND,windowsHide:!0});return}try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}}async function b7(){let t="tree-kill";try{let e=await import(t);return e.default??e}catch{return null}}ie();var HC=3e4,Fa=null;function x7(){let e=Pm().pruneDeadEntries();e>0&&b.info("SYSTEM",`Health check: pruned ${e} dead process(es) from registry`)}function BC(){Fa===null&&(Fa=setInterval(x7,HC),Fa.unref(),b.debug("SYSTEM","Health checker started",{intervalMs:HC}))}function VC(){Fa!==null&&(clearInterval(Fa),Fa=null,b.debug("SYSTEM","Health checker stopped"))}var S7=$0.default.join((0,GC.homedir)(),".vibelearn"),w7=$0.default.join(S7,"worker.pid"),k0=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(e){this.registry=e}async start(){if(this.started)return;if(this.registry.initialize(),T0({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,BC()}configureSignalHandlers(e){if(this.shutdownHandler=e,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let r=async n=>{if(this.shutdownInitiated){b.warn("SYSTEM",`Received ${n} but shutdown already in progress`);return}this.shutdownInitiated=!0,b.info("SYSTEM",`Received ${n}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(i){b.error("SYSTEM","Error during shutdown",{},i);try{await this.stop()}catch(s){b.debug("SYSTEM","Supervisor shutdown fallback failed",{},s)}}process.exit(0)};process.on("SIGTERM",()=>{r("SIGTERM")}),process.on("SIGINT",()=>{r("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{b.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{r("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}VC(),this.stopPromise=ZC({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(e){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${e}`)}registerProcess(e,r,n){this.registry.register(e,r,n)}unregisterProcess(e){this.registry.unregister(e)}getRegistry(){return this.registry}},Cm=new k0(Pm());async function WC(){await Cm.start()}async function KC(){await Cm.stop()}function Ft(){return Cm}function JC(t){Cm.configureSignalHandlers(t)}function T0(t={}){let e=t.pidFilePath??w7;if(!(0,mo.existsSync)(e))return"missing";let r=null;try{r=JSON.parse((0,mo.readFileSync)(e,"utf-8"))}catch(n){return b.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:e},n),(0,mo.rmSync)(e,{force:!0}),"invalid"}return pn(r.pid)?((t.logAlive??!0)&&b.info("SYSTEM","Worker already running (PID alive)",{existingPid:r.pid,existingPort:r.port,startedAt:r.startedAt}),"alive"):(b.info("SYSTEM","Removing stale PID file (worker process is dead)",{pid:r.pid,port:r.port,startedAt:r.startedAt}),(0,mo.rmSync)(e,{force:!0}),"stale")}var I0=["CLAUDECODE_","CLAUDE_CODE_"],R0=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]);function ks(t=process.env){let e={};for(let[r,n]of Object.entries(t))n!==void 0&&(R0.has(r)||I0.some(i=>r.startsWith(i))||(e[r]=n));return e}var Nm=require("fs"),O0=require("path"),XC=require("os"),E7="vibelearn@anergcorp";function Am(){try{let t=process.env.CLAUDE_CONFIG_DIR||(0,O0.join)((0,XC.homedir)(),".claude"),e=(0,O0.join)(t,"settings.json");if(!(0,Nm.existsSync)(e))return!1;let r=(0,Nm.readFileSync)(e,"utf-8");return JSON.parse(r)?.enabledPlugins?.[E7]===!1}catch{return!1}}var $s=nt(require("path"),1),C0=require("os"),er=require("fs"),Vi=require("child_process"),tN=require("util");ie();Tn();var YC=(0,tN.promisify)(Vi.exec),rN=$s.default.join((0,C0.homedir)(),".vibelearn"),mi=$s.default.join(rN,"worker.pid");var QC=30;function eN(t){return t?/(^|[\\/])bun(\.exe)?$/i.test(t.trim()):!1}function k7(t,e){let r=e==="win32"?`where ${t}`:`which ${t}`;try{return(0,Vi.execSync)(r,{stdio:["ignore","pipe","ignore"],encoding:"utf-8",windowsHide:!0}).split(/\r?\n/).map(s=>s.trim()).find(s=>s.length>0)||null}catch{return null}}function $7(t={}){let e=t.platform??process.platform,r=t.execPath??process.execPath;if(e!=="win32"||eN(r))return r;let n=t.env??process.env,i=t.homeDirectory??(0,C0.homedir)(),s=t.pathExists??er.existsSync,o=t.lookupInPath??k7,a=[n.BUN,n.BUN_PATH,$s.default.join(i,".bun","bin","bun.exe"),$s.default.join(i,".bun","bin","bun"),n.USERPROFILE?$s.default.join(n.USERPROFILE,".bun","bin","bun.exe"):void 0,n.LOCALAPPDATA?$s.default.join(n.LOCALAPPDATA,"bun","bun.exe"):void 0,n.LOCALAPPDATA?$s.default.join(n.LOCALAPPDATA,"bun","bin","bun.exe"):void 0];for(let c of a){let u=c?.trim();if(u&&(eN(u)&&s(u)||u.toLowerCase()==="bun"))return u}return o("bun",e)}function nN(t){(0,er.mkdirSync)(rN,{recursive:!0}),(0,er.writeFileSync)(mi,JSON.stringify(t,null,2))}function N0(){if(!(0,er.existsSync)(mi))return null;try{return JSON.parse((0,er.readFileSync)(mi,"utf-8"))}catch(t){return b.warn("SYSTEM","Failed to parse PID file",{path:mi},t),null}}function ho(){if((0,er.existsSync)(mi))try{(0,er.unlinkSync)(mi)}catch(t){b.warn("SYSTEM","Failed to remove PID file",{path:mi},t)}}function Gi(t){return process.platform==="win32"?Math.round(t*2):t}function T7(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0,n=e.match(/^(\d+)-(\d+):(\d+):(\d+)$/);if(n)return r=parseInt(n[1],10)*24*60+parseInt(n[2],10)*60+parseInt(n[3],10),r;let i=e.match(/^(\d+):(\d+):(\d+)$/);if(i)return r=parseInt(i[1],10)*60+parseInt(i[2],10),r;let s=e.match(/^(\d+):(\d+)$/);return s?parseInt(s[1],10):-1}var P0=["worker-service.cjs","chroma-mcp"],I7=["mcp-server.cjs"];async function iN(){let t=process.platform==="win32",e=process.pid,r=[],n=[...P0,...I7];try{if(t){let s=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter '(${n.map(l=>`CommandLine LIKE '%${l}%'`).join(" OR ")}) AND ProcessId != ${e}' | Select-Object ProcessId, CommandLine, CreationDate | ConvertTo-Json"`,{stdout:o}=await YC(s,{timeout:Mr.POWERSHELL_COMMAND,windowsHide:!0});if(!o.trim()||o.trim()==="null"){b.debug("SYSTEM","No orphaned vibelearn processes found (Windows)");return}let a=JSON.parse(o),c=Array.isArray(a)?a:[a],u=Date.now();for(let l of c){let d=l.ProcessId;if(!Number.isInteger(d)||d<=0||d===e)continue;let p=l.CommandLine||"";if(P0.some(m=>p.includes(m)))r.push(d),b.debug("SYSTEM","Found orphaned process (aggressive)",{pid:d,commandLine:p.substring(0,80)});else{let m=l.CreationDate?.match(/\/Date\((\d+)\)\//);if(m){let g=parseInt(m[1],10),h=(u-g)/(1e3*60);h>=QC&&(r.push(d),b.debug("SYSTEM","Found orphaned process (age-gated)",{pid:d,ageMinutes:Math.round(h)}))}}}}else{let i=n.join("|"),{stdout:s}=await YC(`ps -eo pid,etime,command | grep -E "${i}" | grep -v grep || true`);if(!s.trim()){b.debug("SYSTEM","No orphaned vibelearn processes found (Unix)");return}let o=s.trim().split(`
250
- `);for(let a of o){let c=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!c)continue;let u=parseInt(c[1],10),l=c[2],d=c[3];if(!Number.isInteger(u)||u<=0||u===e)continue;if(P0.some(f=>d.includes(f)))r.push(u),b.debug("SYSTEM","Found orphaned process (aggressive)",{pid:u,command:d.substring(0,80)});else{let f=T7(l);f>=QC&&(r.push(u),b.debug("SYSTEM","Found orphaned process (age-gated)",{pid:u,ageMinutes:f,command:d.substring(0,80)}))}}}}catch(i){b.error("SYSTEM","Failed to enumerate orphaned processes during aggressive cleanup",{},i);return}if(r.length!==0){if(b.info("SYSTEM","Aggressive startup cleanup: killing orphaned processes",{platform:t?"Windows":"Unix",count:r.length,pids:r}),t){for(let i of r)if(!(!Number.isInteger(i)||i<=0))try{(0,Vi.execSync)(`taskkill /PID ${i} /T /F`,{timeout:Mr.POWERSHELL_COMMAND,stdio:"ignore",windowsHide:!0})}catch(s){b.debug("SYSTEM","Failed to kill process, may have already exited",{pid:i},s)}}else for(let i of r)try{process.kill(i,"SIGKILL")}catch(s){b.debug("SYSTEM","Process already exited",{pid:i},s)}b.info("SYSTEM","Aggressive startup cleanup complete",{count:r.length})}}function A0(t,e,r={}){let n=process.platform==="win32";Ft().assertCanSpawn("worker daemon");let i=ks({...process.env,VIBELEARN_WORKER_PORT:String(e),...r});if(n){let a=$7();if(!a){b.error("SYSTEM","Failed to locate Bun runtime for Windows worker spawn");return}let c=a.replace(/'/g,"''"),u=t.replace(/'/g,"''"),l=`Start-Process -FilePath '${c}' -ArgumentList '${u}','--daemon' -WindowStyle Hidden`;try{return(0,Vi.execSync)(`powershell -NoProfile -Command "${l}"`,{stdio:"ignore",windowsHide:!0,env:i}),0}catch(d){b.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:a},d);return}}let s="/usr/bin/setsid";if((0,er.existsSync)(s)){let a=(0,Vi.spawn)(s,[process.execPath,t,"--daemon"],{detached:!0,stdio:"ignore",env:i});return a.pid===void 0?void 0:(a.unref(),a.pid)}let o=(0,Vi.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(o.pid!==void 0)return o.unref(),o.pid}function sN(t){if(t===0)return!0;if(!Number.isInteger(t)||t<0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}function oN(t=15e3){try{let e=(0,er.statSync)(mi);return Date.now()-e.mtimeMs<t}catch{return!1}}function aN(){try{if(!(0,er.existsSync)(mi))return;let t=new Date;(0,er.utimesSync)(mi,t,t)}catch{}}function cN(){return T0({logAlive:!1})}var uN=nt(require("path"),1),lN=require("fs");ie();qt();async function j0(t,e,r="GET"){let n=await fetch(`http://127.0.0.1:${t}${e}`,{method:r}),i="";try{i=await n.text()}catch{}return{ok:n.ok,statusCode:n.status,body:i}}async function Ll(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function dN(t,e,r,n){let i=Date.now();for(;Date.now()-i<r;){try{if((await j0(t,e)).ok)return!0}catch(s){b.debug("SYSTEM",n,{},s)}await new Promise(s=>setTimeout(s,500))}return!1}function go(t,e=3e4){return dN(t,"/api/health",e,"Service not ready yet, will retry")}function pN(t,e=3e4){return dN(t,"/api/readiness",e,"Worker not ready yet, will retry")}async function jm(t,e=1e4){let r=Date.now();for(;Date.now()-r<e;){if(!await Ll(t))return!0;await new Promise(n=>setTimeout(n,500))}return!1}async function Dm(t){try{let e=await j0(t,"/api/admin/shutdown","POST");return e.ok?!0:(b.warn("SYSTEM","Shutdown request returned error",{status:e.statusCode}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(b.debug("SYSTEM","Worker already stopped",{},e),!1):(b.error("SYSTEM","Shutdown request failed unexpectedly",{},e),!1)}}function R7(){try{let t=uN.default.join(Hi,"package.json");return JSON.parse((0,lN.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return b.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function O7(t){try{let e=await j0(t,"/api/version");return e.ok?JSON.parse(e.body).version:null}catch{return b.debug("SYSTEM","Could not fetch worker version",{}),null}}async function fN(t){let e=R7(),r=await O7(t);return!r||e==="unknown"?{matches:!0,pluginVersion:e,workerVersion:r}:{matches:e===r,pluginVersion:e,workerVersion:r}}ie();async function mN(t){b.info("SYSTEM","Shutdown initiated"),t.server&&(await P7(t.server),b.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),b.info("SYSTEM","MCP client closed")),t.chromaMcpManager&&(b.info("SHUTDOWN","Stopping Chroma MCP connection..."),await t.chromaMcpManager.stop(),b.info("SHUTDOWN","Chroma MCP connection stopped")),t.dbManager&&await t.dbManager.close(),await KC(),b.info("SYSTEM","Worker shutdown complete")}async function P7(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),b.info("SYSTEM","Waited for Windows port cleanup"))}var E2=nt(Zh(),1),qE=nt(require("fs"),1),Ed=nt(require("path"),1);var d2=["search","context","summarize","import","export"],p2=["workflow","search_params","examples","all"];ie();var ME=nt(Zh(),1),y2=nt(v2(),1),_2=nt(require("path"),1);qt();ie();function LE(t){let e=[];e.push(ME.default.json({limit:"50mb"})),e.push((0,y2.default)({origin:(i,s)=>{!i||i.startsWith("http://localhost:")||i.startsWith("http://127.0.0.1:")?s(null,!0):s(new Error("CORS not allowed"))},methods:["GET","HEAD","POST","PUT","PATCH","DELETE"],allowedHeaders:["Content-Type","Authorization","X-Requested-With"],credentials:!1})),e.push((i,s,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(m=>i.path.endsWith(m)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);b.debug("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=s.send.bind(s);s.send=function(m){let g=Date.now()-l;return b.debug("HTTP",`\u2190 ${s.statusCode} ${i.path}`,{requestId:d,duration:`${g}ms`}),f(m)},o()});let r=Tr(),n=_2.default.join(r,"plugin","ui");return e.push(ME.default.static(n)),e}function wd(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){b.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function UE(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${b.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}ie();var gc=class extends Error{constructor(r,n=500,i,s){super(r);this.statusCode=n;this.code=i;this.details=s;this.name="AppError"}};function b2(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var x2=(t,e,r,n)=>{let i=t instanceof gc?t.statusCode:500;b.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof gc?t.code:void 0},t);let s=b2(t.name||"Error",t.message,t instanceof gc?t.code:void 0,t instanceof gc?t.details:void 0);r.status(i).json(s)};function S2(t,e){e.status(404).json(b2("NotFound",`Cannot ${t.method} ${t.path}`))}var w2="0.1.1",Hh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,E2.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{b.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,b.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(S2),this.app.use(x2)}setupMiddleware(){LE(UE).forEach(r=>this.app.use(r))}setupCoreRoutes(){this.app.get("/api/health",(e,r)=>{r.status(200).json({status:"ok",version:w2,workerPath:this.options.workerPath,uptime:Date.now()-this.startTime,managed:process.env.VIBELEARN_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady(),ai:this.options.getAiStatus()})}),this.app.get("/api/readiness",(e,r)=>{this.options.getInitializationComplete()?r.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):r.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(e,r)=>{r.status(200).json({version:w2})}),this.app.get("/api/instructions",async(e,r)=>{let n=e.query.topic||"all",i=e.query.operation;if(n&&!p2.includes(n))return r.status(400).json({error:"Invalid topic"});try{let s;if(i){if(!d2.includes(i))return r.status(400).json({error:"Invalid operation"});let o=Ed.default.resolve(__dirname,"../skills/mem-search/operations"),a=Ed.default.resolve(o,`${i}.md`);if(!a.startsWith(o+Ed.default.sep))return r.status(400).json({error:"Invalid request"});s=await qE.promises.readFile(a,"utf-8")}else{let o=Ed.default.join(__dirname,"../skills/mem-search/SKILL.md"),a=await qE.promises.readFile(o,"utf-8");s=this.extractInstructionSection(a,n)}r.json({content:[{type:"text",text:s}]})}catch{r.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",wd,async(e,r)=>{r.json({status:"restarting"}),process.platform==="win32"&&process.env.VIBELEARN_MANAGED==="true"&&process.send?(b.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{try{await this.options.onRestart()}finally{process.exit(0)}},100)}),this.app.post("/api/admin/shutdown",wd,async(e,r)=>{r.json({status:"shutting_down"}),process.platform==="win32"&&process.env.VIBELEARN_MANAGED==="true"&&process.send?(b.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{try{await this.options.onShutdown()}finally{process.exit(0)}},100)}),this.app.get("/api/admin/doctor",wd,(e,r)=>{let o=Ft().getRegistry().getAll().map(m=>({id:m.id,pid:m.pid,type:m.type,status:pn(m.pid)?"alive":"dead",startedAt:m.startedAt})),a=o.filter(m=>m.status==="dead").map(m=>m.pid),c=!Object.keys(process.env).some(m=>R0.has(m)||I0.some(g=>m.startsWith(g))),u=Date.now()-this.startTime,l=Math.floor(u/1e3),d=Math.floor(l/3600),p=Math.floor(l%3600/60),f=d>0?`${d}h ${p}m`:`${p}m`;r.json({supervisor:{running:!0,pid:process.pid,uptime:f},processes:o,health:{deadProcessPids:a,envClean:c}})})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),s=e.indexOf(n);return i===-1?e:s===-1?e.substring(i):e.substring(i,s).trim()}};var mt=nt(require("path"),1),$d=require("os"),Bt=require("fs"),T2=require("child_process"),I2=require("util");ie();Jr();qt();var Nn=require("fs"),kd=require("path");ie();function k2(t){try{return(0,Nn.existsSync)(t)?JSON.parse((0,Nn.readFileSync)(t,"utf-8")):{}}catch(e){return b.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function $2(t,e){let r=(0,kd.join)(t,"..");(0,Nn.mkdirSync)(r,{recursive:!0}),(0,Nn.writeFileSync)(t,JSON.stringify(e,null,2))}function FE(t,e){let r=(0,kd.join)(t,".cursor","rules"),n=(0,kd.join)(r,"vibelearn-context.mdc"),i=`${n}.tmp`;(0,Nn.mkdirSync)(r,{recursive:!0});let s=`---
249
+ `)){let n=r.trim();if(!n||n.startsWith("#"))continue;let i=n.indexOf("=");if(i===-1)continue;let s=n.slice(0,i).trim(),o=n.slice(i+1).trim();(o.startsWith('"')&&o.endsWith('"')||o.startsWith("'")&&o.endsWith("'"))&&(o=o.slice(1,-1)),s&&(e[s]=o)}return e}function x0(){if(!(0,Ua.existsSync)(_0))return{};try{let t=(0,Ua.readFileSync)(_0,"utf-8"),e=d7(t),r={};return e.ANTHROPIC_API_KEY&&(r.ANTHROPIC_API_KEY=e.ANTHROPIC_API_KEY),e.GEMINI_API_KEY&&(r.GEMINI_API_KEY=e.GEMINI_API_KEY),e.OPENROUTER_API_KEY&&(r.OPENROUTER_API_KEY=e.OPENROUTER_API_KEY),e.VIBELEARN_API_KEY&&(r.VIBELEARN_API_KEY=e.VIBELEARN_API_KEY),r}catch(t){return b.warn("ENV","Failed to load .env file",{path:_0},t),{}}}function jC(t=!0){let e={};for(let[r,n]of Object.entries(process.env))n!==void 0&&!l7.includes(r)&&(e[r]=n);if(e.CLAUDE_CODE_ENTRYPOINT="sdk-ts",t){let r=x0();(process.env.VIBELEARN_CLAUDE_AUTH_METHOD??"cli")==="api"&&r.ANTHROPIC_API_KEY&&(e.ANTHROPIC_API_KEY=r.ANTHROPIC_API_KEY),r.GEMINI_API_KEY&&(e.GEMINI_API_KEY=r.GEMINI_API_KEY),r.OPENROUTER_API_KEY&&(e.OPENROUTER_API_KEY=r.OPENROUTER_API_KEY),!e.ANTHROPIC_API_KEY&&process.env.CLAUDE_CODE_OAUTH_TOKEN&&(e.CLAUDE_CODE_OAUTH_TOKEN=process.env.CLAUDE_CODE_OAUTH_TOKEN)}return e}function qa(t){return x0()[t]}function p7(){return!!x0().ANTHROPIC_API_KEY}function Om(){return p7()?"API key (from ~/.vibelearn/.env)":process.env.CLAUDE_CODE_OAUTH_TOKEN?"Claude Code OAuth token (from parent process)":"Claude Code CLI (subscription billing)"}ie();var mo=require("fs"),GC=require("os"),$0=nt(require("path"),1);ie();var Bi=require("fs"),DC=require("os"),Ml=nt(require("path"),1);ie();var f7=5e3,m7=1e3,h7=Ml.default.join((0,DC.homedir)(),".vibelearn"),g7=Ml.default.join(h7,"supervisor.json");function pn(t){if(!Number.isInteger(t)||t<0||t===0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}var w0=class{registryPath;entries=new Map;runtimeProcesses=new Map;initialized=!1;constructor(e=g7){this.registryPath=e}initialize(){if(this.initialized)return;if(this.initialized=!0,(0,Bi.mkdirSync)(Ml.default.dirname(this.registryPath),{recursive:!0}),!(0,Bi.existsSync)(this.registryPath)){this.persist();return}try{let n=JSON.parse((0,Bi.readFileSync)(this.registryPath,"utf-8")).processes??{};for(let[i,s]of Object.entries(n))this.entries.set(i,s)}catch(r){b.warn("SYSTEM","Failed to parse supervisor registry, rebuilding",{path:this.registryPath},r),this.entries.clear()}let e=this.pruneDeadEntries();e>0&&b.info("SYSTEM","Removed dead processes from supervisor registry",{removed:e}),this.persist()}register(e,r,n){this.initialize(),this.entries.set(e,r),n&&this.runtimeProcesses.set(e,n),this.persist()}unregister(e){this.initialize(),this.entries.delete(e),this.runtimeProcesses.delete(e),this.persist()}clear(){this.entries.clear(),this.runtimeProcesses.clear(),this.persist()}getAll(){return this.initialize(),Array.from(this.entries.entries()).map(([e,r])=>({id:e,...r})).sort((e,r)=>{let n=Date.parse(e.startedAt),i=Date.parse(r.startedAt);return(Number.isNaN(n)?0:n)-(Number.isNaN(i)?0:i)})}getBySession(e){let r=String(e);return this.getAll().filter(n=>n.sessionId!==void 0&&String(n.sessionId)===r)}getRuntimeProcess(e){return this.runtimeProcesses.get(e)}getByPid(e){return this.getAll().filter(r=>r.pid===e)}pruneDeadEntries(){this.initialize();let e=0;for(let[r,n]of this.entries)pn(n.pid)||(this.entries.delete(r),this.runtimeProcesses.delete(r),e+=1);return e>0&&this.persist(),e}async reapSession(e){this.initialize();let r=this.getBySession(e);if(r.length===0)return 0;let n=typeof e=="number"?e:Number(e)||void 0;b.info("SYSTEM",`Reaping ${r.length} process(es) for session ${e}`,{sessionId:n,pids:r.map(a=>a.pid)});let i=r.filter(a=>pn(a.pid));for(let a of i)try{process.kill(a.pid,"SIGTERM")}catch(c){c.code!=="ESRCH"&&b.debug("SYSTEM",`Failed to SIGTERM session process PID ${a.pid}`,{pid:a.pid},c)}let s=Date.now()+f7;for(;Date.now()<s&&i.filter(c=>pn(c.pid)).length!==0;)await new Promise(c=>setTimeout(c,100));let o=i.filter(a=>pn(a.pid));for(let a of o){b.warn("SYSTEM",`Session process PID ${a.pid} did not exit after SIGTERM, sending SIGKILL`,{pid:a.pid,sessionId:n});try{process.kill(a.pid,"SIGKILL")}catch(c){c.code!=="ESRCH"&&b.debug("SYSTEM",`Failed to SIGKILL session process PID ${a.pid}`,{pid:a.pid},c)}}if(o.length>0){let a=Date.now()+m7;for(;Date.now()<a&&o.filter(u=>pn(u.pid)).length!==0;)await new Promise(u=>setTimeout(u,100))}for(let a of r)this.entries.delete(a.id),this.runtimeProcesses.delete(a.id);return this.persist(),b.info("SYSTEM",`Reaped ${r.length} process(es) for session ${e}`,{sessionId:n,reaped:r.length}),r.length}persist(){let e={processes:Object.fromEntries(this.entries.entries())};(0,Bi.mkdirSync)(Ml.default.dirname(this.registryPath),{recursive:!0}),(0,Bi.writeFileSync)(this.registryPath,JSON.stringify(e,null,2))}},S0=null;function Pm(){return S0||(S0=new w0),S0}var LC=require("child_process"),UC=require("fs"),qC=require("os"),E0=nt(require("path"),1),FC=require("util");ie();Tn();var v7=(0,FC.promisify)(LC.execFile),y7=E0.default.join((0,qC.homedir)(),".vibelearn"),_7=E0.default.join(y7,"worker.pid");async function ZC(t){let e=t.currentPid??process.pid,r=t.pidFilePath??_7,n=t.registry.getAll(),i=[...n].filter(o=>o.pid!==e).sort((o,a)=>Date.parse(a.startedAt)-Date.parse(o.startedAt));for(let o of i){if(!pn(o.pid)){t.registry.unregister(o.id);continue}try{await MC(o.pid,"SIGTERM")}catch(a){b.debug("SYSTEM","Failed to send SIGTERM to child process",{pid:o.pid,type:o.type},a)}}await zC(i,5e3);let s=i.filter(o=>pn(o.pid));for(let o of s)try{await MC(o.pid,"SIGKILL")}catch(a){b.debug("SYSTEM","Failed to force kill child process",{pid:o.pid,type:o.type},a)}await zC(s,1e3);for(let o of i)t.registry.unregister(o.id);for(let o of n.filter(a=>a.pid===e))t.registry.unregister(o.id);try{(0,UC.rmSync)(r,{force:!0})}catch(o){b.debug("SYSTEM","Failed to remove PID file during shutdown",{pidFilePath:r},o)}t.registry.pruneDeadEntries()}async function zC(t,e){let r=Date.now()+e;for(;Date.now()<r;){if(t.filter(i=>pn(i.pid)).length===0)return;await new Promise(i=>setTimeout(i,100))}}async function MC(t,e){if(e==="SIGTERM"){try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}return}if(process.platform==="win32"){let r=await b7();if(r){await new Promise((i,s)=>{r(t,e,o=>{if(!o){i();return}if(o.code==="ESRCH"){i();return}s(o)})});return}let n=["/PID",String(t),"/T"];e==="SIGKILL"&&n.push("/F"),await v7("taskkill",n,{timeout:Mr.POWERSHELL_COMMAND,windowsHide:!0});return}try{process.kill(t,e)}catch(r){if(r.code==="ESRCH")return;throw r}}async function b7(){let t="tree-kill";try{let e=await import(t);return e.default??e}catch{return null}}ie();var HC=3e4,Fa=null;function x7(){let e=Pm().pruneDeadEntries();e>0&&b.info("SYSTEM",`Health check: pruned ${e} dead process(es) from registry`)}function BC(){Fa===null&&(Fa=setInterval(x7,HC),Fa.unref(),b.debug("SYSTEM","Health checker started",{intervalMs:HC}))}function VC(){Fa!==null&&(clearInterval(Fa),Fa=null,b.debug("SYSTEM","Health checker stopped"))}var S7=$0.default.join((0,GC.homedir)(),".vibelearn"),w7=$0.default.join(S7,"worker.pid"),k0=class{registry;started=!1;stopPromise=null;signalHandlersRegistered=!1;shutdownInitiated=!1;shutdownHandler=null;constructor(e){this.registry=e}async start(){if(this.started)return;if(this.registry.initialize(),T0({logAlive:!1})==="alive")throw new Error("Worker already running");this.started=!0,BC()}configureSignalHandlers(e){if(this.shutdownHandler=e,this.signalHandlersRegistered)return;this.signalHandlersRegistered=!0;let r=async n=>{if(this.shutdownInitiated){b.warn("SYSTEM",`Received ${n} but shutdown already in progress`);return}this.shutdownInitiated=!0,b.info("SYSTEM",`Received ${n}, shutting down...`);try{this.shutdownHandler?await this.shutdownHandler():await this.stop()}catch(i){b.error("SYSTEM","Error during shutdown",{},i);try{await this.stop()}catch(s){b.debug("SYSTEM","Supervisor shutdown fallback failed",{},s)}}process.exit(0)};process.on("SIGTERM",()=>{r("SIGTERM")}),process.on("SIGINT",()=>{r("SIGINT")}),process.platform!=="win32"&&(process.argv.includes("--daemon")?process.on("SIGHUP",()=>{b.debug("SYSTEM","Ignoring SIGHUP in daemon mode")}):process.on("SIGHUP",()=>{r("SIGHUP")}))}async stop(){if(this.stopPromise){await this.stopPromise;return}VC(),this.stopPromise=ZC({registry:this.registry,currentPid:process.pid}).finally(()=>{this.started=!1,this.stopPromise=null}),await this.stopPromise}assertCanSpawn(e){if(this.stopPromise!==null)throw new Error(`Supervisor is shutting down, refusing to spawn ${e}`)}registerProcess(e,r,n){this.registry.register(e,r,n)}unregisterProcess(e){this.registry.unregister(e)}getRegistry(){return this.registry}},Cm=new k0(Pm());async function WC(){await Cm.start()}async function KC(){await Cm.stop()}function Ft(){return Cm}function JC(t){Cm.configureSignalHandlers(t)}function T0(t={}){let e=t.pidFilePath??w7;if(!(0,mo.existsSync)(e))return"missing";let r=null;try{r=JSON.parse((0,mo.readFileSync)(e,"utf-8"))}catch(n){return b.warn("SYSTEM","Failed to parse worker PID file, removing it",{path:e},n),(0,mo.rmSync)(e,{force:!0}),"invalid"}return pn(r.pid)?((t.logAlive??!0)&&b.info("SYSTEM","Worker already running (PID alive)",{existingPid:r.pid,existingPort:r.port,startedAt:r.startedAt}),"alive"):(b.info("SYSTEM","Removing stale PID file (worker process is dead)",{pid:r.pid,port:r.port,startedAt:r.startedAt}),(0,mo.rmSync)(e,{force:!0}),"stale")}var I0=["CLAUDECODE_","CLAUDE_CODE_"],R0=new Set(["CLAUDECODE","CLAUDE_CODE_SESSION","CLAUDE_CODE_ENTRYPOINT","MCP_SESSION_ID"]);function ks(t=process.env){let e={};for(let[r,n]of Object.entries(t))n!==void 0&&(R0.has(r)||I0.some(i=>r.startsWith(i))||(e[r]=n));return e}var Nm=require("fs"),O0=require("path"),XC=require("os"),E7="vibelearn@anergcorp";function Am(){try{let t=process.env.CLAUDE_CONFIG_DIR||(0,O0.join)((0,XC.homedir)(),".claude"),e=(0,O0.join)(t,"settings.json");if(!(0,Nm.existsSync)(e))return!1;let r=(0,Nm.readFileSync)(e,"utf-8");return JSON.parse(r)?.enabledPlugins?.[E7]===!1}catch{return!1}}var $s=nt(require("path"),1),C0=require("os"),er=require("fs"),Vi=require("child_process"),tN=require("util");ie();Tn();var YC=(0,tN.promisify)(Vi.exec),rN=$s.default.join((0,C0.homedir)(),".vibelearn"),mi=$s.default.join(rN,"worker.pid");var QC=30;function eN(t){return t?/(^|[\\/])bun(\.exe)?$/i.test(t.trim()):!1}function k7(t,e){let r=e==="win32"?`where ${t}`:`which ${t}`;try{return(0,Vi.execSync)(r,{stdio:["ignore","pipe","ignore"],encoding:"utf-8",windowsHide:!0}).split(/\r?\n/).map(s=>s.trim()).find(s=>s.length>0)||null}catch{return null}}function $7(t={}){let e=t.platform??process.platform,r=t.execPath??process.execPath;if(e!=="win32"||eN(r))return r;let n=t.env??process.env,i=t.homeDirectory??(0,C0.homedir)(),s=t.pathExists??er.existsSync,o=t.lookupInPath??k7,a=[n.BUN,n.BUN_PATH,$s.default.join(i,".bun","bin","bun.exe"),$s.default.join(i,".bun","bin","bun"),n.USERPROFILE?$s.default.join(n.USERPROFILE,".bun","bin","bun.exe"):void 0,n.LOCALAPPDATA?$s.default.join(n.LOCALAPPDATA,"bun","bun.exe"):void 0,n.LOCALAPPDATA?$s.default.join(n.LOCALAPPDATA,"bun","bin","bun.exe"):void 0];for(let c of a){let u=c?.trim();if(u&&(eN(u)&&s(u)||u.toLowerCase()==="bun"))return u}return o("bun",e)}function nN(t){(0,er.mkdirSync)(rN,{recursive:!0}),(0,er.writeFileSync)(mi,JSON.stringify(t,null,2))}function N0(){if(!(0,er.existsSync)(mi))return null;try{return JSON.parse((0,er.readFileSync)(mi,"utf-8"))}catch(t){return b.warn("SYSTEM","Failed to parse PID file",{path:mi},t),null}}function ho(){if((0,er.existsSync)(mi))try{(0,er.unlinkSync)(mi)}catch(t){b.warn("SYSTEM","Failed to remove PID file",{path:mi},t)}}function Gi(t){return process.platform==="win32"?Math.round(t*2):t}function T7(t){if(!t||t.trim()==="")return-1;let e=t.trim(),r=0,n=e.match(/^(\d+)-(\d+):(\d+):(\d+)$/);if(n)return r=parseInt(n[1],10)*24*60+parseInt(n[2],10)*60+parseInt(n[3],10),r;let i=e.match(/^(\d+):(\d+):(\d+)$/);if(i)return r=parseInt(i[1],10)*60+parseInt(i[2],10),r;let s=e.match(/^(\d+):(\d+)$/);return s?parseInt(s[1],10):-1}var P0=["worker-service.cjs","chroma-mcp"],I7=["mcp-server.cjs"];async function iN(){let t=process.platform==="win32",e=process.pid,r=[],n=[...P0,...I7];try{if(t){let s=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter '(${n.map(l=>`CommandLine LIKE '%${l}%'`).join(" OR ")}) AND ProcessId != ${e}' | Select-Object ProcessId, CommandLine, CreationDate | ConvertTo-Json"`,{stdout:o}=await YC(s,{timeout:Mr.POWERSHELL_COMMAND,windowsHide:!0});if(!o.trim()||o.trim()==="null"){b.debug("SYSTEM","No orphaned vibelearn processes found (Windows)");return}let a=JSON.parse(o),c=Array.isArray(a)?a:[a],u=Date.now();for(let l of c){let d=l.ProcessId;if(!Number.isInteger(d)||d<=0||d===e)continue;let p=l.CommandLine||"";if(P0.some(m=>p.includes(m)))r.push(d),b.debug("SYSTEM","Found orphaned process (aggressive)",{pid:d,commandLine:p.substring(0,80)});else{let m=l.CreationDate?.match(/\/Date\((\d+)\)\//);if(m){let g=parseInt(m[1],10),h=(u-g)/(1e3*60);h>=QC&&(r.push(d),b.debug("SYSTEM","Found orphaned process (age-gated)",{pid:d,ageMinutes:Math.round(h)}))}}}}else{let i=n.join("|"),{stdout:s}=await YC(`ps -eo pid,etime,command | grep -E "${i}" | grep -v grep || true`);if(!s.trim()){b.debug("SYSTEM","No orphaned vibelearn processes found (Unix)");return}let o=s.trim().split(`
250
+ `);for(let a of o){let c=a.trim().match(/^(\d+)\s+(\S+)\s+(.*)$/);if(!c)continue;let u=parseInt(c[1],10),l=c[2],d=c[3];if(!Number.isInteger(u)||u<=0||u===e)continue;if(P0.some(f=>d.includes(f)))r.push(u),b.debug("SYSTEM","Found orphaned process (aggressive)",{pid:u,command:d.substring(0,80)});else{let f=T7(l);f>=QC&&(r.push(u),b.debug("SYSTEM","Found orphaned process (age-gated)",{pid:u,ageMinutes:f,command:d.substring(0,80)}))}}}}catch(i){b.error("SYSTEM","Failed to enumerate orphaned processes during aggressive cleanup",{},i);return}if(r.length!==0){if(b.info("SYSTEM","Aggressive startup cleanup: killing orphaned processes",{platform:t?"Windows":"Unix",count:r.length,pids:r}),t){for(let i of r)if(!(!Number.isInteger(i)||i<=0))try{(0,Vi.execSync)(`taskkill /PID ${i} /T /F`,{timeout:Mr.POWERSHELL_COMMAND,stdio:"ignore",windowsHide:!0})}catch(s){b.debug("SYSTEM","Failed to kill process, may have already exited",{pid:i},s)}}else for(let i of r)try{process.kill(i,"SIGKILL")}catch(s){b.debug("SYSTEM","Process already exited",{pid:i},s)}b.info("SYSTEM","Aggressive startup cleanup complete",{count:r.length})}}function A0(t,e,r={}){let n=process.platform==="win32";Ft().assertCanSpawn("worker daemon");let i=ks({...process.env,VIBELEARN_WORKER_PORT:String(e),...r});if(n){let a=$7();if(!a){b.error("SYSTEM","Failed to locate Bun runtime for Windows worker spawn");return}let c=a.replace(/'/g,"''"),u=t.replace(/'/g,"''"),l=`Start-Process -FilePath '${c}' -ArgumentList '${u}','--daemon' -WindowStyle Hidden`;try{return(0,Vi.execSync)(`powershell -NoProfile -Command "${l}"`,{stdio:"ignore",windowsHide:!0,env:i}),0}catch(d){b.error("SYSTEM","Failed to spawn worker daemon on Windows",{runtimePath:a},d);return}}let s="/usr/bin/setsid";if((0,er.existsSync)(s)){let a=(0,Vi.spawn)(s,[process.execPath,t,"--daemon"],{detached:!0,stdio:"ignore",env:i});return a.pid===void 0?void 0:(a.unref(),a.pid)}let o=(0,Vi.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(o.pid!==void 0)return o.unref(),o.pid}function sN(t){if(t===0)return!0;if(!Number.isInteger(t)||t<0)return!1;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}function oN(t=15e3){try{let e=(0,er.statSync)(mi);return Date.now()-e.mtimeMs<t}catch{return!1}}function aN(){try{if(!(0,er.existsSync)(mi))return;let t=new Date;(0,er.utimesSync)(mi,t,t)}catch{}}function cN(){return T0({logAlive:!1})}var uN=nt(require("path"),1),lN=require("fs");ie();qt();async function j0(t,e,r="GET"){let n=await fetch(`http://127.0.0.1:${t}${e}`,{method:r}),i="";try{i=await n.text()}catch{}return{ok:n.ok,statusCode:n.status,body:i}}async function Ll(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function dN(t,e,r,n){let i=Date.now();for(;Date.now()-i<r;){try{if((await j0(t,e)).ok)return!0}catch(s){b.debug("SYSTEM",n,{},s)}await new Promise(s=>setTimeout(s,500))}return!1}function go(t,e=3e4){return dN(t,"/api/health",e,"Service not ready yet, will retry")}function pN(t,e=3e4){return dN(t,"/api/readiness",e,"Worker not ready yet, will retry")}async function jm(t,e=1e4){let r=Date.now();for(;Date.now()-r<e;){if(!await Ll(t))return!0;await new Promise(n=>setTimeout(n,500))}return!1}async function Dm(t){try{let e=await j0(t,"/api/admin/shutdown","POST");return e.ok?!0:(b.warn("SYSTEM","Shutdown request returned error",{status:e.statusCode}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(b.debug("SYSTEM","Worker already stopped",{},e),!1):(b.error("SYSTEM","Shutdown request failed unexpectedly",{},e),!1)}}function R7(){try{let t=uN.default.join(Hi,"package.json");return JSON.parse((0,lN.readFileSync)(t,"utf-8")).version}catch(t){let e=t.code;if(e==="ENOENT"||e==="EBUSY")return b.debug("SYSTEM","Could not read plugin version (shutdown race)",{code:e}),"unknown";throw t}}async function O7(t){try{let e=await j0(t,"/api/version");return e.ok?JSON.parse(e.body).version:null}catch{return b.debug("SYSTEM","Could not fetch worker version",{}),null}}async function fN(t){let e=R7(),r=await O7(t);return!r||e==="unknown"?{matches:!0,pluginVersion:e,workerVersion:r}:{matches:e===r,pluginVersion:e,workerVersion:r}}ie();async function mN(t){b.info("SYSTEM","Shutdown initiated"),t.server&&(await P7(t.server),b.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),b.info("SYSTEM","MCP client closed")),t.chromaMcpManager&&(b.info("SHUTDOWN","Stopping Chroma MCP connection..."),await t.chromaMcpManager.stop(),b.info("SHUTDOWN","Chroma MCP connection stopped")),t.dbManager&&await t.dbManager.close(),await KC(),b.info("SYSTEM","Worker shutdown complete")}async function P7(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),b.info("SYSTEM","Waited for Windows port cleanup"))}var E2=nt(Zh(),1),qE=nt(require("fs"),1),Ed=nt(require("path"),1);var d2=["search","context","summarize","import","export"],p2=["workflow","search_params","examples","all"];ie();var ME=nt(Zh(),1),y2=nt(v2(),1),_2=nt(require("path"),1);qt();ie();function LE(t){let e=[];e.push(ME.default.json({limit:"50mb"})),e.push((0,y2.default)({origin:(i,s)=>{!i||i.startsWith("http://localhost:")||i.startsWith("http://127.0.0.1:")?s(null,!0):s(new Error("CORS not allowed"))},methods:["GET","HEAD","POST","PUT","PATCH","DELETE"],allowedHeaders:["Content-Type","Authorization","X-Requested-With"],credentials:!1})),e.push((i,s,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(m=>i.path.endsWith(m)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);b.debug("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=s.send.bind(s);s.send=function(m){let g=Date.now()-l;return b.debug("HTTP",`\u2190 ${s.statusCode} ${i.path}`,{requestId:d,duration:`${g}ms`}),f(m)},o()});let r=Tr(),n=_2.default.join(r,"plugin","ui");return e.push(ME.default.static(n)),e}function wd(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){b.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function UE(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${b.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}ie();var gc=class extends Error{constructor(r,n=500,i,s){super(r);this.statusCode=n;this.code=i;this.details=s;this.name="AppError"}};function b2(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var x2=(t,e,r,n)=>{let i=t instanceof gc?t.statusCode:500;b.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof gc?t.code:void 0},t);let s=b2(t.name||"Error",t.message,t instanceof gc?t.code:void 0,t instanceof gc?t.details:void 0);r.status(i).json(s)};function S2(t,e){e.status(404).json(b2("NotFound",`Cannot ${t.method} ${t.path}`))}var w2="0.1.2",Hh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,E2.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{b.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,b.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(S2),this.app.use(x2)}setupMiddleware(){LE(UE).forEach(r=>this.app.use(r))}setupCoreRoutes(){this.app.get("/api/health",(e,r)=>{r.status(200).json({status:"ok",version:w2,workerPath:this.options.workerPath,uptime:Date.now()-this.startTime,managed:process.env.VIBELEARN_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady(),ai:this.options.getAiStatus()})}),this.app.get("/api/readiness",(e,r)=>{this.options.getInitializationComplete()?r.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):r.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(e,r)=>{r.status(200).json({version:w2})}),this.app.get("/api/instructions",async(e,r)=>{let n=e.query.topic||"all",i=e.query.operation;if(n&&!p2.includes(n))return r.status(400).json({error:"Invalid topic"});try{let s;if(i){if(!d2.includes(i))return r.status(400).json({error:"Invalid operation"});let o=Ed.default.resolve(__dirname,"../skills/mem-search/operations"),a=Ed.default.resolve(o,`${i}.md`);if(!a.startsWith(o+Ed.default.sep))return r.status(400).json({error:"Invalid request"});s=await qE.promises.readFile(a,"utf-8")}else{let o=Ed.default.join(__dirname,"../skills/mem-search/SKILL.md"),a=await qE.promises.readFile(o,"utf-8");s=this.extractInstructionSection(a,n)}r.json({content:[{type:"text",text:s}]})}catch{r.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",wd,async(e,r)=>{r.json({status:"restarting"}),process.platform==="win32"&&process.env.VIBELEARN_MANAGED==="true"&&process.send?(b.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{try{await this.options.onRestart()}finally{process.exit(0)}},100)}),this.app.post("/api/admin/shutdown",wd,async(e,r)=>{r.json({status:"shutting_down"}),process.platform==="win32"&&process.env.VIBELEARN_MANAGED==="true"&&process.send?(b.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{try{await this.options.onShutdown()}finally{process.exit(0)}},100)}),this.app.get("/api/admin/doctor",wd,(e,r)=>{let o=Ft().getRegistry().getAll().map(m=>({id:m.id,pid:m.pid,type:m.type,status:pn(m.pid)?"alive":"dead",startedAt:m.startedAt})),a=o.filter(m=>m.status==="dead").map(m=>m.pid),c=!Object.keys(process.env).some(m=>R0.has(m)||I0.some(g=>m.startsWith(g))),u=Date.now()-this.startTime,l=Math.floor(u/1e3),d=Math.floor(l/3600),p=Math.floor(l%3600/60),f=d>0?`${d}h ${p}m`:`${p}m`;r.json({supervisor:{running:!0,pid:process.pid,uptime:f},processes:o,health:{deadProcessPids:a,envClean:c}})})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),s=e.indexOf(n);return i===-1?e:s===-1?e.substring(i):e.substring(i,s).trim()}};var mt=nt(require("path"),1),$d=require("os"),Bt=require("fs"),T2=require("child_process"),I2=require("util");ie();Jr();qt();var Nn=require("fs"),kd=require("path");ie();function k2(t){try{return(0,Nn.existsSync)(t)?JSON.parse((0,Nn.readFileSync)(t,"utf-8")):{}}catch(e){return b.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function $2(t,e){let r=(0,kd.join)(t,"..");(0,Nn.mkdirSync)(r,{recursive:!0}),(0,Nn.writeFileSync)(t,JSON.stringify(e,null,2))}function FE(t,e){let r=(0,kd.join)(t,".cursor","rules"),n=(0,kd.join)(r,"vibelearn-context.mdc"),i=`${n}.tmp`;(0,Nn.mkdirSync)(r,{recursive:!0});let s=`---
251
251
  alwaysApply: true
252
252
  description: "VibeLearn context from past sessions (auto-updated)"
253
253
  ---
@@ -1592,7 +1592,7 @@ Respond ONLY with this XML (no other text):
1592
1592
  FROM vl_concepts
1593
1593
  WHERE session_id = ?
1594
1594
  ORDER BY confidence DESC
1595
- `).all(i);n.json({summary:o,concepts:a})}};var Khe={},qhe=120*1e3;function m$(){return f$.default.join(Re.get("VIBELEARN_DATA_DIR"),".worker-start-attempted")}function Fhe(){if(process.platform!=="win32")return!1;let t=m$();if(!(0,os.existsSync)(t))return!1;try{let e=(0,os.statSync)(t).mtimeMs;return Date.now()-e<qhe}catch{return!1}}function Zhe(){if(process.platform==="win32")try{(0,os.writeFileSync)(m$(),"","utf-8")}catch{}}function Hhe(){if(process.platform==="win32")try{let t=m$();(0,os.existsSync)(t)&&(0,os.unlinkSync)(t)}catch{}}var Bhe="0.1.1";function Aq(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}var av=class{server;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;searchRoutes=null;initializationComplete;resolveInitialization;stopOrphanReaper=null;staleSessionReaperInterval=null;lastAiInteraction=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Kh,this.sessionManager=new Qh(this.dbManager),this.sseBroadcaster=new eg,this.sdkAgent=new Pg(this.dbManager,this.sessionManager),this.geminiAgent=new Cg(this.dbManager,this.sessionManager),this.openRouterAgent=new jg(this.dbManager,this.sessionManager),this.paginationHelper=new Dg(this.dbManager),this.settingsManager=new zg(this.dbManager),this.sessionEventBroadcaster=new qg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new xm({name:"worker-search-proxy",version:Bhe},{capabilities:{}}),this.server=new Hh({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown(),workerPath:__filename,getAiStatus:()=>{let e="claude";return Gc()&&Zo()?e="openrouter":Vc()&&Fo()&&(e="gemini"),{provider:e,authMethod:Om(),lastInteraction:this.lastAiInteraction?{timestamp:this.lastAiInteraction.timestamp,success:this.lastAiInteraction.success,...this.lastAiInteraction.error&&{error:this.lastAiInteraction.error}}:null}}}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){JC(async()=>{this.isShuttingDown=!0,await this.shutdown()})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{if(!this.initializationCompleteFlag||!this.searchRoutes){b.warn("SYSTEM","Context requested before initialization complete, returning empty"),r.status(200).json({content:[{type:"text",text:""}]});return}n()}),this.server.app.use("/api",async(e,r,n)=>{if(this.initializationCompleteFlag){n();return}let i=3e4,s=new Promise((o,a)=>setTimeout(()=>a(new Error("Database initialization timeout")),i));try{await Promise.race([this.initializationComplete,s]),n()}catch(o){b.error("HTTP",`Request to ${e.method} ${e.path} rejected \u2014 DB not initialized`,{},o),r.status(503).json({error:"Service initializing",message:"Database is still initializing, please retry"})}}),this.server.registerRoutes(new Zg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new Vg(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Gg(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new Xg(this.settingsManager)),this.server.registerRoutes(new Qg),this.server.registerRoutes(new ev(this.dbManager,"vibelearn")),this.server.registerRoutes(new iv(this.dbManager))}async start(){let e=dn(),r=y0();await WC(),await this.server.listen(e,r),nN({pid:process.pid,port:e,startedAt:new Date().toISOString()}),Ft().registerProcess("worker",{pid:process.pid,type:"worker",startedAt:new Date().toISOString()}),b.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{b.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await iN();let{ModeManager:e}=await Promise.resolve().then(()=>(Xn(),G2)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(kr(),wC)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(qt(),PC)),i=r.loadFromFile(n),s="code";e.getInstance().loadMode(s),b.info("SYSTEM",`Mode loaded: ${s}`),await this.dbManager.initialize();let{PendingMessageStore:o}=await Promise.resolve().then(()=>(js(),Ao)),c=new o(this.dbManager.getSessionStore().db,3).resetStaleProcessingMessages(0);c>0&&b.info("SYSTEM",`Reset ${c} stale processing messages to pending`);let u=new Lg,l=new Ug,d=new Mg(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),u,l);this.searchRoutes=new Wg(d),this.server.registerRoutes(this.searchRoutes),b.info("WORKER","SearchManager initialized and search routes registered"),this.initializationCompleteFlag=!0,this.resolveInitialization(),b.info("SYSTEM","Core initialization complete (DB + search ready)");let p=f$.default.join(__dirname,"mcp-server.cjs");Ft().assertCanSpawn("mcp server");let f=new Em({command:"node",args:[p],env:ks(process.env)}),m=3e5,g=this.mcpClient.connect(f),h,v=new Promise((y,x)=>{h=setTimeout(()=>x(new Error("MCP connection timeout after 5 minutes")),m)});try{await Promise.race([g,v])}catch(y){clearTimeout(h),b.warn("WORKER","MCP server connection failed, cleaning up subprocess",{error:y instanceof Error?y.message:String(y)});try{await f.close()}catch{}throw y}clearTimeout(h);let _=f._process;_?.pid&&(Ft().registerProcess("mcp-server",{pid:_.pid,type:"mcp",startedAt:new Date().toISOString()},_),_.once("exit",()=>{Ft().unregisterProcess("mcp-server")})),this.mcpReady=!0,b.success("WORKER","MCP server connected"),this.stopOrphanReaper=B2(()=>{let y=new Set;for(let[x]of this.sessionManager.sessions)y.add(x);return y}),b.info("SYSTEM","Started orphan reaper (runs every 30 seconds)"),this.staleSessionReaperInterval=setInterval(async()=>{try{let y=await this.sessionManager.reapStaleSessions();y>0&&b.info("SYSTEM",`Reaped ${y} stale sessions`)}catch(y){b.error("SYSTEM","Stale session reaper error",{error:y instanceof Error?y.message:String(y)})}},120*1e3),this.processPendingQueues(50).then(y=>{y.sessionsStarted>0&&b.info("SYSTEM",`Auto-recovered ${y.sessionsStarted} sessions with pending work`,{totalPending:y.totalPendingSessions,started:y.sessionsStarted,sessionIds:y.startedSessionIds})}).catch(y=>{b.error("SYSTEM","Auto-recovery of pending queues failed",{},y)})}catch(e){throw b.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return Gc()&&Zo()?this.openRouterAgent:Vc()&&Fo()?this.geminiAgent:this.sdkAgent}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId,i=this.getActiveAgent(),s=i.constructor.name;e.abortController.signal.aborted&&(b.debug("SYSTEM","Replacing aborted AbortController before starting generator",{sessionId:e.sessionDbId}),e.abortController=new AbortController);let o=!1,a=!1;b.info("SYSTEM",`Starting generator (${r}) using ${s}`,{sessionId:n}),e.lastGeneratorActivity=Date.now(),e.generatorPromise=i.startSession(e,this).catch(async c=>{let u=c?.message||"";if(["Claude executable not found","CLAUDE_CODE_PATH","ENOENT","spawn","Invalid API key","FOREIGN KEY constraint failed"].some(d=>u.includes(d))){o=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},b.error("SDK","Unrecoverable generator error - will NOT restart",{sessionId:e.sessionDbId,project:e.project,errorMessage:u});return}if(this.isSessionTerminatedError(c))return b.warn("SDK","SDK resume failed, falling back to standalone processing",{sessionId:e.sessionDbId,project:e.project,reason:c instanceof Error?c.message:String(c)}),this.runFallbackForTerminatedSession(e,c);throw(u.includes("aborted by user")||u.includes("No conversation found"))&&e.memorySessionId&&(b.warn("SDK","Detected stale resume failure, clearing memorySessionId for fresh start",{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,errorMessage:u}),this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,null),e.memorySessionId=null,e.forceInit=!0),b.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:s},c),a=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},c}).finally(async()=>{let c=Ds(e.sessionDbId);if(c&&c.process.exitCode===null&&await zs(c,5e3),e.generatorPromise=null,!a&&!o&&(this.lastAiInteraction={timestamp:Date.now(),success:!0,provider:s}),o){b.warn("SYSTEM","Skipping restart due to unrecoverable error",{sessionId:e.sessionDbId}),this.broadcastProcessingStatus();return}let{PendingMessageStore:u}=(js(),Xc(Ao)),l=new u(this.dbManager.getSessionStore().db,3);if(e.idleTimedOut){b.info("SYSTEM","Generator exited due to idle timeout, not restarting",{sessionId:e.sessionDbId}),e.idleTimedOut=!1,this.broadcastProcessingStatus();return}let d=l.getPendingCount(e.sessionDbId),p=3;if(d>0){if(e.consecutiveRestarts=(e.consecutiveRestarts||0)+1,e.consecutiveRestarts>p){b.error("SYSTEM","Exceeded max pending-work restarts, stopping to prevent infinite loop",{sessionId:e.sessionDbId,pendingCount:d,consecutiveRestarts:e.consecutiveRestarts}),e.consecutiveRestarts=0,this.broadcastProcessingStatus();return}b.info("SYSTEM","Pending work remains after generator exit, restarting with fresh AbortController",{sessionId:e.sessionDbId,pendingCount:d,attempt:e.consecutiveRestarts}),e.abortController=new AbortController,this.startSessionProcessor(e,"pending-work-restart")}else e.consecutiveRestarts=0;this.broadcastProcessingStatus()})}isSessionTerminatedError(e){let n=(e instanceof Error?e.message:String(e)).toLowerCase();return n.includes("process aborted by user")||n.includes("processtransport")||n.includes("not ready for writing")||n.includes("session generator failed")||n.includes("claude code process")}async runFallbackForTerminatedSession(e,r){if(!e)return;let n=e.sessionDbId;if(!e.memorySessionId){let o=`fallback-${n}-${Date.now()}`;e.memorySessionId=o,this.dbManager.getSessionStore().updateMemorySessionId(n,o)}if(Fo())try{await this.geminiAgent.startSession(e,this);return}catch(o){b.warn("SDK","Fallback Gemini failed, trying OpenRouter",{sessionId:n,error:o instanceof Error?o.message:String(o)})}if(Zo())try{await this.openRouterAgent.startSession(e,this);return}catch(o){b.warn("SDK","Fallback OpenRouter failed",{sessionId:n,error:o instanceof Error?o.message:String(o)})}let s=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(n);s>0&&b.warn("SDK","No fallback available; marked pending messages abandoned",{sessionId:n,abandoned:s}),this.sessionManager.removeSessionImmediate(n),this.sessionEventBroadcaster.broadcastSessionCompleted(n)}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(js(),Ao)),n=new r(this.dbManager.getSessionStore().db,3),i=this.dbManager.getSessionStore(),s=360*60*1e3,o=Date.now()-s;try{let u=i.db.prepare(`
1595
+ `).all(i);n.json({summary:o,concepts:a})}};var Khe={},qhe=120*1e3;function m$(){return f$.default.join(Re.get("VIBELEARN_DATA_DIR"),".worker-start-attempted")}function Fhe(){if(process.platform!=="win32")return!1;let t=m$();if(!(0,os.existsSync)(t))return!1;try{let e=(0,os.statSync)(t).mtimeMs;return Date.now()-e<qhe}catch{return!1}}function Zhe(){if(process.platform==="win32")try{(0,os.writeFileSync)(m$(),"","utf-8")}catch{}}function Hhe(){if(process.platform==="win32")try{let t=m$();(0,os.existsSync)(t)&&(0,os.unlinkSync)(t)}catch{}}var Bhe="0.1.2";function Aq(t,e){return{continue:!0,suppressOutput:!0,status:t,...e&&{message:e}}}var av=class{server;startTime=Date.now();mcpClient;mcpReady=!1;initializationCompleteFlag=!1;isShuttingDown=!1;dbManager;sessionManager;sseBroadcaster;sdkAgent;geminiAgent;openRouterAgent;paginationHelper;settingsManager;sessionEventBroadcaster;searchRoutes=null;initializationComplete;resolveInitialization;stopOrphanReaper=null;staleSessionReaperInterval=null;lastAiInteraction=null;constructor(){this.initializationComplete=new Promise(e=>{this.resolveInitialization=e}),this.dbManager=new Kh,this.sessionManager=new Qh(this.dbManager),this.sseBroadcaster=new eg,this.sdkAgent=new Pg(this.dbManager,this.sessionManager),this.geminiAgent=new Cg(this.dbManager,this.sessionManager),this.openRouterAgent=new jg(this.dbManager,this.sessionManager),this.paginationHelper=new Dg(this.dbManager),this.settingsManager=new zg(this.dbManager),this.sessionEventBroadcaster=new qg(this.sseBroadcaster,this),this.sessionManager.setOnSessionDeleted(()=>{this.broadcastProcessingStatus()}),this.mcpClient=new xm({name:"worker-search-proxy",version:Bhe},{capabilities:{}}),this.server=new Hh({getInitializationComplete:()=>this.initializationCompleteFlag,getMcpReady:()=>this.mcpReady,onShutdown:()=>this.shutdown(),onRestart:()=>this.shutdown(),workerPath:__filename,getAiStatus:()=>{let e="claude";return Gc()&&Zo()?e="openrouter":Vc()&&Fo()&&(e="gemini"),{provider:e,authMethod:Om(),lastInteraction:this.lastAiInteraction?{timestamp:this.lastAiInteraction.timestamp,success:this.lastAiInteraction.success,...this.lastAiInteraction.error&&{error:this.lastAiInteraction.error}}:null}}}),this.registerRoutes(),this.registerSignalHandlers()}registerSignalHandlers(){JC(async()=>{this.isShuttingDown=!0,await this.shutdown()})}registerRoutes(){this.server.app.get("/api/context/inject",async(e,r,n)=>{if(!this.initializationCompleteFlag||!this.searchRoutes){b.warn("SYSTEM","Context requested before initialization complete, returning empty"),r.status(200).json({content:[{type:"text",text:""}]});return}n()}),this.server.app.use("/api",async(e,r,n)=>{if(this.initializationCompleteFlag){n();return}let i=3e4,s=new Promise((o,a)=>setTimeout(()=>a(new Error("Database initialization timeout")),i));try{await Promise.race([this.initializationComplete,s]),n()}catch(o){b.error("HTTP",`Request to ${e.method} ${e.path} rejected \u2014 DB not initialized`,{},o),r.status(503).json({error:"Service initializing",message:"Database is still initializing, please retry"})}}),this.server.registerRoutes(new Zg(this.sseBroadcaster,this.dbManager,this.sessionManager)),this.server.registerRoutes(new Vg(this.sessionManager,this.dbManager,this.sdkAgent,this.geminiAgent,this.openRouterAgent,this.sessionEventBroadcaster,this)),this.server.registerRoutes(new Gg(this.paginationHelper,this.dbManager,this.sessionManager,this.sseBroadcaster,this,this.startTime)),this.server.registerRoutes(new Xg(this.settingsManager)),this.server.registerRoutes(new Qg),this.server.registerRoutes(new ev(this.dbManager,"vibelearn")),this.server.registerRoutes(new iv(this.dbManager))}async start(){let e=dn(),r=y0();await WC(),await this.server.listen(e,r),nN({pid:process.pid,port:e,startedAt:new Date().toISOString()}),Ft().registerProcess("worker",{pid:process.pid,type:"worker",startedAt:new Date().toISOString()}),b.info("SYSTEM","Worker started",{host:r,port:e,pid:process.pid}),this.initializeBackground().catch(n=>{b.error("SYSTEM","Background initialization failed",{},n)})}async initializeBackground(){try{await iN();let{ModeManager:e}=await Promise.resolve().then(()=>(Xn(),G2)),{SettingsDefaultsManager:r}=await Promise.resolve().then(()=>(kr(),wC)),{USER_SETTINGS_PATH:n}=await Promise.resolve().then(()=>(qt(),PC)),i=r.loadFromFile(n),s="code";e.getInstance().loadMode(s),b.info("SYSTEM",`Mode loaded: ${s}`),await this.dbManager.initialize();let{PendingMessageStore:o}=await Promise.resolve().then(()=>(js(),Ao)),c=new o(this.dbManager.getSessionStore().db,3).resetStaleProcessingMessages(0);c>0&&b.info("SYSTEM",`Reset ${c} stale processing messages to pending`);let u=new Lg,l=new Ug,d=new Mg(this.dbManager.getSessionSearch(),this.dbManager.getSessionStore(),this.dbManager.getChromaSync(),u,l);this.searchRoutes=new Wg(d),this.server.registerRoutes(this.searchRoutes),b.info("WORKER","SearchManager initialized and search routes registered"),this.initializationCompleteFlag=!0,this.resolveInitialization(),b.info("SYSTEM","Core initialization complete (DB + search ready)");let p=f$.default.join(__dirname,"mcp-server.cjs");Ft().assertCanSpawn("mcp server");let f=new Em({command:"node",args:[p],env:ks(process.env)}),m=3e5,g=this.mcpClient.connect(f),h,v=new Promise((y,x)=>{h=setTimeout(()=>x(new Error("MCP connection timeout after 5 minutes")),m)});try{await Promise.race([g,v])}catch(y){clearTimeout(h),b.warn("WORKER","MCP server connection failed, cleaning up subprocess",{error:y instanceof Error?y.message:String(y)});try{await f.close()}catch{}throw y}clearTimeout(h);let _=f._process;_?.pid&&(Ft().registerProcess("mcp-server",{pid:_.pid,type:"mcp",startedAt:new Date().toISOString()},_),_.once("exit",()=>{Ft().unregisterProcess("mcp-server")})),this.mcpReady=!0,b.success("WORKER","MCP server connected"),this.stopOrphanReaper=B2(()=>{let y=new Set;for(let[x]of this.sessionManager.sessions)y.add(x);return y}),b.info("SYSTEM","Started orphan reaper (runs every 30 seconds)"),this.staleSessionReaperInterval=setInterval(async()=>{try{let y=await this.sessionManager.reapStaleSessions();y>0&&b.info("SYSTEM",`Reaped ${y} stale sessions`)}catch(y){b.error("SYSTEM","Stale session reaper error",{error:y instanceof Error?y.message:String(y)})}},120*1e3),this.processPendingQueues(50).then(y=>{y.sessionsStarted>0&&b.info("SYSTEM",`Auto-recovered ${y.sessionsStarted} sessions with pending work`,{totalPending:y.totalPendingSessions,started:y.sessionsStarted,sessionIds:y.startedSessionIds})}).catch(y=>{b.error("SYSTEM","Auto-recovery of pending queues failed",{},y)})}catch(e){throw b.error("SYSTEM","Background initialization failed",{},e),e}}getActiveAgent(){return Gc()&&Zo()?this.openRouterAgent:Vc()&&Fo()?this.geminiAgent:this.sdkAgent}startSessionProcessor(e,r){if(!e)return;let n=e.sessionDbId,i=this.getActiveAgent(),s=i.constructor.name;e.abortController.signal.aborted&&(b.debug("SYSTEM","Replacing aborted AbortController before starting generator",{sessionId:e.sessionDbId}),e.abortController=new AbortController);let o=!1,a=!1;b.info("SYSTEM",`Starting generator (${r}) using ${s}`,{sessionId:n}),e.lastGeneratorActivity=Date.now(),e.generatorPromise=i.startSession(e,this).catch(async c=>{let u=c?.message||"";if(["Claude executable not found","CLAUDE_CODE_PATH","ENOENT","spawn","Invalid API key","FOREIGN KEY constraint failed"].some(d=>u.includes(d))){o=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},b.error("SDK","Unrecoverable generator error - will NOT restart",{sessionId:e.sessionDbId,project:e.project,errorMessage:u});return}if(this.isSessionTerminatedError(c))return b.warn("SDK","SDK resume failed, falling back to standalone processing",{sessionId:e.sessionDbId,project:e.project,reason:c instanceof Error?c.message:String(c)}),this.runFallbackForTerminatedSession(e,c);throw(u.includes("aborted by user")||u.includes("No conversation found"))&&e.memorySessionId&&(b.warn("SDK","Detected stale resume failure, clearing memorySessionId for fresh start",{sessionId:e.sessionDbId,memorySessionId:e.memorySessionId,errorMessage:u}),this.dbManager.getSessionStore().updateMemorySessionId(e.sessionDbId,null),e.memorySessionId=null,e.forceInit=!0),b.error("SDK","Session generator failed",{sessionId:e.sessionDbId,project:e.project,provider:s},c),a=!0,this.lastAiInteraction={timestamp:Date.now(),success:!1,provider:s,error:u},c}).finally(async()=>{let c=Ds(e.sessionDbId);if(c&&c.process.exitCode===null&&await zs(c,5e3),e.generatorPromise=null,!a&&!o&&(this.lastAiInteraction={timestamp:Date.now(),success:!0,provider:s}),o){b.warn("SYSTEM","Skipping restart due to unrecoverable error",{sessionId:e.sessionDbId}),this.broadcastProcessingStatus();return}let{PendingMessageStore:u}=(js(),Xc(Ao)),l=new u(this.dbManager.getSessionStore().db,3);if(e.idleTimedOut){b.info("SYSTEM","Generator exited due to idle timeout, not restarting",{sessionId:e.sessionDbId}),e.idleTimedOut=!1,this.broadcastProcessingStatus();return}let d=l.getPendingCount(e.sessionDbId),p=3;if(d>0){if(e.consecutiveRestarts=(e.consecutiveRestarts||0)+1,e.consecutiveRestarts>p){b.error("SYSTEM","Exceeded max pending-work restarts, stopping to prevent infinite loop",{sessionId:e.sessionDbId,pendingCount:d,consecutiveRestarts:e.consecutiveRestarts}),e.consecutiveRestarts=0,this.broadcastProcessingStatus();return}b.info("SYSTEM","Pending work remains after generator exit, restarting with fresh AbortController",{sessionId:e.sessionDbId,pendingCount:d,attempt:e.consecutiveRestarts}),e.abortController=new AbortController,this.startSessionProcessor(e,"pending-work-restart")}else e.consecutiveRestarts=0;this.broadcastProcessingStatus()})}isSessionTerminatedError(e){let n=(e instanceof Error?e.message:String(e)).toLowerCase();return n.includes("process aborted by user")||n.includes("processtransport")||n.includes("not ready for writing")||n.includes("session generator failed")||n.includes("claude code process")}async runFallbackForTerminatedSession(e,r){if(!e)return;let n=e.sessionDbId;if(!e.memorySessionId){let o=`fallback-${n}-${Date.now()}`;e.memorySessionId=o,this.dbManager.getSessionStore().updateMemorySessionId(n,o)}if(Fo())try{await this.geminiAgent.startSession(e,this);return}catch(o){b.warn("SDK","Fallback Gemini failed, trying OpenRouter",{sessionId:n,error:o instanceof Error?o.message:String(o)})}if(Zo())try{await this.openRouterAgent.startSession(e,this);return}catch(o){b.warn("SDK","Fallback OpenRouter failed",{sessionId:n,error:o instanceof Error?o.message:String(o)})}let s=this.sessionManager.getPendingMessageStore().markAllSessionMessagesAbandoned(n);s>0&&b.warn("SDK","No fallback available; marked pending messages abandoned",{sessionId:n,abandoned:s}),this.sessionManager.removeSessionImmediate(n),this.sessionEventBroadcaster.broadcastSessionCompleted(n)}async processPendingQueues(e=10){let{PendingMessageStore:r}=await Promise.resolve().then(()=>(js(),Ao)),n=new r(this.dbManager.getSessionStore().db,3),i=this.dbManager.getSessionStore(),s=360*60*1e3,o=Date.now()-s;try{let u=i.db.prepare(`
1596
1596
  SELECT id FROM sdk_sessions
1597
1597
  WHERE status = 'active' AND started_at_epoch < ?
1598
1598
  `).all(o);if(u.length>0){let l=u.map(f=>f.id),d=l.map(()=>"?").join(",");i.db.prepare(`