diff --git a/CLAUDE.md b/CLAUDE.md index 3cfc4917..0e78ad70 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,7 +48,7 @@ npm run worker:logs # View worker logs Settings are managed in `~/.claude-mem/settings.json`. The file is auto-created with defaults on first run. **Core Settings:** -- `CLAUDE_MEM_MODEL` - Model for observations/summaries (default: claude-haiku-4-5) +- `CLAUDE_MEM_MODEL` - Model for observations/summaries (default: claude-sonnet-4-5) - `CLAUDE_MEM_CONTEXT_OBSERVATIONS` - Observations injected at SessionStart - `CLAUDE_MEM_WORKER_PORT` - Worker service port (default: 37777) - `CLAUDE_MEM_WORKER_HOST` - Worker bind address (default: 127.0.0.1, use 0.0.0.0 for remote access) diff --git a/README.md b/README.md index 6ac5cb9e..146c20b4 100644 --- a/README.md +++ b/README.md @@ -324,7 +324,7 @@ Settings are managed in `~/.claude-mem/settings.json`. The file is auto-created | Setting | Default | Description | |---------|---------|-------------| -| `CLAUDE_MEM_MODEL` | `claude-haiku-4-5` | AI model for observations | +| `CLAUDE_MEM_MODEL` | `claude-sonnet-4-5` | AI model for observations | | `CLAUDE_MEM_WORKER_PORT` | `37777` | Worker service port | | `CLAUDE_MEM_WORKER_HOST` | `127.0.0.1` | Worker bind address (use `0.0.0.0` for remote access) | | `CLAUDE_MEM_DATA_DIR` | `~/.claude-mem` | Data directory location | @@ -350,7 +350,7 @@ curl http://localhost:37777/api/settings ```json { - "CLAUDE_MEM_MODEL": "claude-haiku-4-5", + "CLAUDE_MEM_MODEL": "claude-sonnet-4-5", "CLAUDE_MEM_WORKER_PORT": "37777", "CLAUDE_MEM_CONTEXT_OBSERVATIONS": "50" } diff --git a/docs/context/platform-integration-guide.md b/docs/context/platform-integration-guide.md index 7a3ae4e6..38a519b1 100644 --- a/docs/context/platform-integration-guide.md +++ b/docs/context/platform-integration-guide.md @@ -57,7 +57,7 @@ GET /api/context/recent?project=my-project&limit=3 ### Environment Variables ```bash -CLAUDE_MEM_MODEL=claude-haiku-4-5 # Model for observations/summaries +CLAUDE_MEM_MODEL=claude-sonnet-4-5 # Model for observations/summaries CLAUDE_MEM_CONTEXT_OBSERVATIONS=50 # Observations injected at SessionStart CLAUDE_MEM_WORKER_PORT=37777 # Worker service port CLAUDE_MEM_PYTHON_VERSION=3.13 # Python version for chroma-mcp diff --git a/docs/public/architecture/hooks.mdx b/docs/public/architecture/hooks.mdx index 3ca327fa..f3509ace 100644 --- a/docs/public/architecture/hooks.mdx +++ b/docs/public/architecture/hooks.mdx @@ -864,7 +864,7 @@ async startSession(session: ActiveSession, worker?: any) { const queryResult = query({ prompt: messageGenerator, options: { - model: 'claude-haiku-4-5', + model: 'claude-sonnet-4-5', disallowedTools: ['Bash', 'Read', 'Write', ...], // Observer-only abortController: session.abortController } diff --git a/docs/public/configuration.mdx b/docs/public/configuration.mdx index b9bc125c..4c8602d0 100644 --- a/docs/public/configuration.mdx +++ b/docs/public/configuration.mdx @@ -13,7 +13,7 @@ Settings are managed in `~/.claude-mem/settings.json`. The file is auto-created | Setting | Default | Description | |-------------------------------|---------------------------------|---------------------------------------| -| `CLAUDE_MEM_MODEL` | `haiku` | AI model for processing observations | +| `CLAUDE_MEM_MODEL` | `sonnet` | AI model for processing observations | | `CLAUDE_MEM_CONTEXT_OBSERVATIONS` | `50` | Number of observations to inject | | `CLAUDE_MEM_WORKER_PORT` | `37777` | Worker service port | | `CLAUDE_MEM_SKIP_TOOLS` | `ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion` | Comma-separated tools to exclude from observations | @@ -35,8 +35,8 @@ Configure which AI model processes your observations. Shorthand model names automatically forward to the latest version: -- `haiku` - Fast, cost-efficient (default) -- `sonnet` - Balanced +- `haiku` - Fast, cost-efficient +- `sonnet` - Balanced (default) - `opus` - Most capable ### Using the Interactive Script @@ -53,7 +53,7 @@ Edit `~/.claude-mem/settings.json`: ```json { - "CLAUDE_MEM_MODEL": "haiku" + "CLAUDE_MEM_MODEL": "sonnet" } ``` @@ -262,7 +262,7 @@ Token economics help you understand the value of cached observations vs. re-read | Setting | Default | Description | |---------|---------|-------------| -| **Model** | haiku | AI model for generating observations | +| **Model** | sonnet | AI model for generating observations | | **Worker Port** | 37777 | Port for background worker service | | **MCP search server** | true | Enable Model Context Protocol search tools | | **Include last summary** | false | Add previous session's summary to context | @@ -420,7 +420,7 @@ npm run worker:logs ### Invalid Model Name -If you specify an invalid model name, the worker will fall back to `haiku` and log a warning. +If you specify an invalid model name, the worker will fall back to `sonnet` and log a warning. Valid shorthand models (forward to latest version): - haiku diff --git a/docs/public/platform-integration.mdx b/docs/public/platform-integration.mdx index f9253083..db17de99 100644 --- a/docs/public/platform-integration.mdx +++ b/docs/public/platform-integration.mdx @@ -46,7 +46,7 @@ GET /api/context/recent?project=my-project&limit=3 ### Environment Variables ```bash -CLAUDE_MEM_MODEL=claude-haiku-4-5 # Model for observations/summaries +CLAUDE_MEM_MODEL=claude-sonnet-4-5 # Model for observations/summaries CLAUDE_MEM_CONTEXT_OBSERVATIONS=50 # Observations injected at SessionStart CLAUDE_MEM_WORKER_PORT=37777 # Worker service port CLAUDE_MEM_PYTHON_VERSION=3.13 # Python version for chroma-mcp diff --git a/plugin/scripts/cleanup-hook.js b/plugin/scripts/cleanup-hook.js index 817c993d..4579771d 100755 --- a/plugin/scripts/cleanup-hook.js +++ b/plugin/scripts/cleanup-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import{stdin as b}from"process";import A from"path";import{homedir as Ot}from"os";import{spawnSync as At}from"child_process";import{existsSync as Ct,writeFileSync as B,readFileSync as Mt,mkdirSync as Dt}from"fs";import{readFileSync as Z,writeFileSync as tt,existsSync as et}from"fs";import{join as rt}from"path";import{homedir as nt}from"os";var Q=["bugfix","feature","refactor","discovery","decision","change"],z=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=Q.join(","),U=z.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:rt(nt(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:U,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!et(t))return this.getAllDefaults();let e=Z(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{tt(t,JSON.stringify(n,null,2),"utf-8"),u.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){u.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var C=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(C||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=C[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import{stdin as b}from"process";import A from"path";import{homedir as Ot}from"os";import{spawnSync as At}from"child_process";import{existsSync as Ct,writeFileSync as B,readFileSync as Mt,mkdirSync as Dt}from"fs";import{readFileSync as Z,writeFileSync as tt,existsSync as et}from"fs";import{join as rt}from"path";import{homedir as nt}from"os";var Q=["bugfix","feature","refactor","discovery","decision","change"],z=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=Q.join(","),U=z.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:rt(nt(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:U,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!et(t))return this.getAllDefaults();let e=Z(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{tt(t,JSON.stringify(n,null,2),"utf-8"),u.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){u.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var C=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(C||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=C[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let n=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${n})`}if(t==="Read"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Edit"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Write"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0"),g=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${n} ${s}:${i}:${c}.${g}`}log(t,e,r,n,s){if(t0&&(w=` {${Object.entries(k).map(([J,q])=>`${J}=${q}`).join(", ")}}`)}let P=`[${i}] [${c}] [${g}] ${m}${r}${w}${a}`;t===3?console.error(P):console.log(P)}debug(t,e,r,n){this.log(0,t,e,r,n)}info(t,e,r,n){this.log(1,t,e,r,n)}warn(t,e,r,n){this.log(2,t,e,r,n)}error(t,e,r,n){this.log(3,t,e,r,n)}dataIn(t,e,r,n){this.info(t,`\u2192 ${e}`,r,n)}dataOut(t,e,r,n){this.info(t,`\u2190 ${e}`,r,n)}success(t,e,r,n){this.info(t,`\u2713 ${e}`,r,n)}failure(t,e,r,n){this.error(t,`\u2717 ${e}`,r,n)}timing(t,e,r,n){this.info(t,`\u23F1 ${e}`,n,{duration:`${r}ms`})}},u=new M;var d={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function N(o){return process.platform==="win32"?Math.round(o*d.WINDOWS_MULTIPLIER):o}import{existsSync as I,readFileSync as lt,writeFileSync as pt,unlinkSync as ft,mkdirSync as H}from"fs";import{createWriteStream as gt}from"fs";import{join as T}from"path";import{spawn as mt}from"child_process";import{homedir as Et}from"os";import{join as p,dirname as ot,basename as Xt}from"path";import{homedir as st}from"os";import{fileURLToPath as it}from"url";function at(){return typeof __dirname<"u"?__dirname:ot(it(import.meta.url))}var Zt=at(),f=l.get("CLAUDE_MEM_DATA_DIR"),D=process.env.CLAUDE_CONFIG_DIR||p(st(),".claude"),te=p(f,"archives"),ee=p(f,"logs"),re=p(f,"trash"),ne=p(f,"backups"),oe=p(f,"settings.json"),se=p(f,"claude-mem.db"),ie=p(f,"vector-db"),ae=p(D,"settings.json"),ce=p(D,"commands"),ue=p(D,"CLAUDE.md");import{spawnSync as ct}from"child_process";import{existsSync as ut}from"fs";import{join as x}from"path";import{homedir as $}from"os";function L(){let o=process.platform==="win32";try{if(ct("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:o}).status===0)return"bun"}catch{}let t=o?[x($(),".bun","bin","bun.exe")]:[x($(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(ut(e))return e;return null}function W(){return L()!==null}var S=T(f,"worker.pid"),F=T(f,"logs"),K=T(Et(),".claude","plugins","marketplaces","thedotmack"),_t=5e3,dt=1e4,St=200,Tt=1e3,ht=100,h=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};H(F,{recursive:!0});let e=T(K,"plugin","scripts","worker-service.cjs");if(!I(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return W()}static async startWithBun(t,e,r){let n=L();if(!n)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=mt(n,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:K,...s&&{windowsHide:!0}}),c=gt(e,{flags:"a"});return i.stdout?.pipe(c),i.stderr?.pipe(c),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=_t){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!I(S))return null;let t=lt(S,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){H(f,{recursive:!0}),pt(S,JSON.stringify(t,null,2))}static removePidFile(){try{I(S)&&ft(S)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=dt){let n=Date.now();for(;Date.now()-nsetTimeout(s,St))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(n,ht))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return T(F,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),n=Date.now()-e,s=Math.floor(n/1e3),i=Math.floor(s/60),c=Math.floor(i/60),g=Math.floor(c/24);return g>0?`${g}d ${c%24}h`:c>0?`${c}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function R(o={}){let{port:t,includeSkillFallback:e=!1,customPrefix:r,actualError:n}=o,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",c=s?"Command Prompt or PowerShell":"Terminal",g=r||"Worker service connection failed.",m=t?` (port ${t})`:"",a=`${g}${m} diff --git a/plugin/scripts/context-generator.cjs b/plugin/scripts/context-generator.cjs index caa0b3d5..744a13ba 100644 --- a/plugin/scripts/context-generator.cjs +++ b/plugin/scripts/context-generator.cjs @@ -1,6 +1,6 @@ "use strict";var Me=Object.create;var q=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var $e=Object.getOwnPropertyNames;var Ue=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty;var we=(c,e)=>{for(var s in e)q(c,s,{get:e[s],enumerable:!0})},_e=(c,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of $e(e))!xe.call(c,n)&&n!==s&&q(c,n,{get:()=>e[n],enumerable:!(r=ke(e,n))||r.enumerable});return c};var Fe=(c,e,s)=>(s=c!=null?Me(Ue(c)):{},_e(e||!c||!c.__esModule?q(s,"default",{value:c,enumerable:!0}):s,c)),Pe=c=>_e(q({},"__esModule",{value:!0}),c);var ze={};we(ze,{generateContext:()=>Qe});module.exports=Pe(ze);var w=Fe(require("path"),1),z=require("os"),B=require("fs");var Ne=require("bun:sqlite");var O=require("path"),he=require("os"),be=require("fs");var fe=require("url");var j=require("fs"),ge=require("path"),Se=require("os");var te=["bugfix","feature","refactor","discovery","decision","change"],re=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"],le={bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",change:"\u2705",discovery:"\u{1F535}",decision:"\u2696\uFE0F","session-request":"\u{1F3AF}"},me={discovery:"\u{1F50D}",change:"\u{1F6E0}\uFE0F",feature:"\u{1F6E0}\uFE0F",bugfix:"\u{1F6E0}\uFE0F",refactor:"\u{1F6E0}\uFE0F",decision:"\u2696\uFE0F"},Ee=te.join(","),Te=re.join(",");var ne=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(ne||{}),oe=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let e=U.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=ne[e]??1}return this.level}correlationId(e,s){return`obs-${e}-${s}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let s=Object.keys(e);return s.length===0?"{}":s.length<=3?JSON.stringify(e):`{${s.length} keys: ${s.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,s){if(!s)return e;try{let r=typeof s=="string"?JSON.parse(s):s;if(e==="Bash"&&r.command){let n=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${e}(${n})`}if(e==="Read"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${e}(${n})`}if(e==="Edit"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${e}(${n})`}if(e==="Write"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${e}(${n})`}return e}catch{return e}}formatTimestamp(e){let s=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),d=String(e.getSeconds()).padStart(2,"0"),u=String(e.getMilliseconds()).padStart(3,"0");return`${s}-${r}-${n} ${i}:${a}:${d}.${u}`}log(e,s,r,n,i){if(e0&&(g=` {${Object.entries(t).map(([R,f])=>`${R}=${f}`).join(", ")}}`)}let b=`[${a}] [${d}] [${u}] ${m}${r}${g}${l}`;e===3?console.error(b):console.log(b)}debug(e,s,r,n){this.log(0,e,s,r,n)}info(e,s,r,n){this.log(1,e,s,r,n)}warn(e,s,r,n){this.log(2,e,s,r,n)}error(e,s,r,n){this.log(3,e,s,r,n)}dataIn(e,s,r,n){this.info(e,`\u2192 ${s}`,r,n)}dataOut(e,s,r,n){this.info(e,`\u2190 ${s}`,r,n)}success(e,s,r,n){this.info(e,`\u2713 ${s}`,r,n)}failure(e,s,r,n){this.error(e,`\u2717 ${s}`,r,n)}timing(e,s,r,n){this.info(e,`\u23F1 ${s}`,n,{duration:`${r}ms`})}},$=new oe;var U=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,ge.join)((0,Se.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:Ee,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:Te,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let s=this.get(e);return parseInt(s,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,j.existsSync)(e))return this.getAllDefaults();let s=(0,j.readFileSync)(e,"utf-8"),r=JSON.parse(s),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{(0,j.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),$.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(a){$.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))n[a]!==void 0&&(i[a]=n[a]);return i}};var We={};function Xe(){return typeof __dirname<"u"?__dirname:(0,O.dirname)((0,fe.fileURLToPath)(We.url))}var us=Xe(),v=U.get("CLAUDE_MEM_DATA_DIR"),ie=process.env.CLAUDE_CONFIG_DIR||(0,O.join)((0,he.homedir)(),".claude"),_s=(0,O.join)(v,"archives"),ls=(0,O.join)(v,"logs"),ms=(0,O.join)(v,"trash"),Es=(0,O.join)(v,"backups"),Ts=(0,O.join)(v,"settings.json"),Oe=(0,O.join)(v,"claude-mem.db"),gs=(0,O.join)(v,"vector-db"),Ss=(0,O.join)(ie,"settings.json"),hs=(0,O.join)(ie,"commands"),bs=(0,O.join)(ie,"CLAUDE.md");function Re(c){(0,be.mkdirSync)(c,{recursive:!0})}var J=class{db;constructor(){Re(v),this.db=new Ne.Database(Oe),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.run(` +`+JSON.stringify(i,null,2):l=" "+this.formatData(i));let g="";if(n){let{sessionId:E,sdkSessionId:I,correlationId:T,...t}=n;Object.keys(t).length>0&&(g=` {${Object.entries(t).map(([R,f])=>`${R}=${f}`).join(", ")}}`)}let b=`[${a}] [${d}] [${u}] ${m}${r}${g}${l}`;e===3?console.error(b):console.log(b)}debug(e,s,r,n){this.log(0,e,s,r,n)}info(e,s,r,n){this.log(1,e,s,r,n)}warn(e,s,r,n){this.log(2,e,s,r,n)}error(e,s,r,n){this.log(3,e,s,r,n)}dataIn(e,s,r,n){this.info(e,`\u2192 ${s}`,r,n)}dataOut(e,s,r,n){this.info(e,`\u2190 ${s}`,r,n)}success(e,s,r,n){this.info(e,`\u2713 ${s}`,r,n)}failure(e,s,r,n){this.error(e,`\u2717 ${s}`,r,n)}timing(e,s,r,n){this.info(e,`\u23F1 ${s}`,n,{duration:`${r}ms`})}},$=new oe;var U=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,ge.join)((0,Se.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:Ee,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:Te,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let s=this.get(e);return parseInt(s,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,j.existsSync)(e))return this.getAllDefaults();let s=(0,j.readFileSync)(e,"utf-8"),r=JSON.parse(s),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{(0,j.writeFileSync)(e,JSON.stringify(n,null,2),"utf-8"),$.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(a){$.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},a)}}let i={...this.DEFAULTS};for(let a of Object.keys(this.DEFAULTS))n[a]!==void 0&&(i[a]=n[a]);return i}};var We={};function Xe(){return typeof __dirname<"u"?__dirname:(0,O.dirname)((0,fe.fileURLToPath)(We.url))}var us=Xe(),v=U.get("CLAUDE_MEM_DATA_DIR"),ie=process.env.CLAUDE_CONFIG_DIR||(0,O.join)((0,he.homedir)(),".claude"),_s=(0,O.join)(v,"archives"),ls=(0,O.join)(v,"logs"),ms=(0,O.join)(v,"trash"),Es=(0,O.join)(v,"backups"),Ts=(0,O.join)(v,"settings.json"),Oe=(0,O.join)(v,"claude-mem.db"),gs=(0,O.join)(v,"vector-db"),Ss=(0,O.join)(ie,"settings.json"),hs=(0,O.join)(ie,"commands"),bs=(0,O.join)(ie,"CLAUDE.md");function Re(c){(0,be.mkdirSync)(c,{recursive:!0})}var J=class{db;constructor(){Re(v),this.db=new Ne.Database(Oe),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( id INTEGER PRIMARY KEY, version INTEGER UNIQUE NOT NULL, diff --git a/plugin/scripts/context-hook.js b/plugin/scripts/context-hook.js index 53efafcb..960007e8 100755 --- a/plugin/scripts/context-hook.js +++ b/plugin/scripts/context-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import bt from"path";import{stdin as w}from"process";import C from"path";import{homedir as Ct}from"os";import{spawnSync as At}from"child_process";import{existsSync as Mt,writeFileSync as K,readFileSync as Dt,mkdirSync as Lt}from"fs";import{readFileSync as tt,writeFileSync as et,existsSync as rt}from"fs";import{join as nt}from"path";import{homedir as ot}from"os";var z=["bugfix","feature","refactor","discovery","decision","change"],Z=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var k=z.join(","),v=Z.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:nt(ot(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:k,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:v,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!rt(t))return this.getAllDefaults();let e=tt(t,"utf-8"),r=JSON.parse(e),o=r;if(r.env&&typeof r.env=="object"){o=r.env;try{et(t,JSON.stringify(o,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import bt from"path";import{stdin as w}from"process";import C from"path";import{homedir as Ct}from"os";import{spawnSync as At}from"child_process";import{existsSync as Mt,writeFileSync as K,readFileSync as Dt,mkdirSync as Lt}from"fs";import{readFileSync as tt,writeFileSync as et,existsSync as rt}from"fs";import{join as nt}from"path";import{homedir as ot}from"os";var z=["bugfix","feature","refactor","discovery","decision","change"],Z=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var k=z.join(","),v=Z.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:nt(ot(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:k,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:v,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!rt(t))return this.getAllDefaults();let e=tt(t,"utf-8"),r=JSON.parse(e),o=r;if(r.env&&typeof r.env=="object"){o=r.env;try{et(t,JSON.stringify(o,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let o=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${o})`}if(t==="Read"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}if(t==="Edit"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}if(t==="Write"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),g=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${o} ${s}:${i}:${a}.${g}`}log(t,e,r,o,s){if(t0&&(b=` {${Object.entries(P).map(([q,Q])=>`${q}=${Q}`).join(", ")}}`)}let y=`[${i}] [${a}] [${g}] ${d}${r}${b}${u}`;t===3?console.error(y):console.log(y)}debug(t,e,r,o){this.log(0,t,e,r,o)}info(t,e,r,o){this.log(1,t,e,r,o)}warn(t,e,r,o){this.log(2,t,e,r,o)}error(t,e,r,o){this.log(3,t,e,r,o)}dataIn(t,e,r,o){this.info(t,`\u2192 ${e}`,r,o)}dataOut(t,e,r,o){this.info(t,`\u2190 ${e}`,r,o)}success(t,e,r,o){this.info(t,`\u2713 ${e}`,r,o)}failure(t,e,r,o){this.error(t,`\u2717 ${e}`,r,o)}timing(t,e,r,o){this.info(t,`\u23F1 ${e}`,o,{duration:`${r}ms`})}},c=new M;var S={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function U(n){return process.platform==="win32"?Math.round(n*S.WINDOWS_MULTIPLIER):n}import{existsSync as R,readFileSync as pt,writeFileSync as ft,unlinkSync as gt,mkdirSync as W}from"fs";import{createWriteStream as mt}from"fs";import{join as h}from"path";import{spawn as Et}from"child_process";import{homedir as _t}from"os";import{join as p,dirname as st,basename as Xt}from"path";import{homedir as it}from"os";import{fileURLToPath as at}from"url";function ct(){return typeof __dirname<"u"?__dirname:st(at(import.meta.url))}var zt=ct(),f=l.get("CLAUDE_MEM_DATA_DIR"),D=process.env.CLAUDE_CONFIG_DIR||p(it(),".claude"),Zt=p(f,"archives"),te=p(f,"logs"),ee=p(f,"trash"),re=p(f,"backups"),ne=p(f,"settings.json"),oe=p(f,"claude-mem.db"),se=p(f,"vector-db"),ie=p(D,"settings.json"),ae=p(D,"commands"),ce=p(D,"CLAUDE.md");import{spawnSync as ut}from"child_process";import{existsSync as lt}from"fs";import{join as N}from"path";import{homedir as x}from"os";function L(){let n=process.platform==="win32";try{if(ut("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:n}).status===0)return"bun"}catch{}let t=n?[N(x(),".bun","bin","bun.exe")]:[N(x(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(lt(e))return e;return null}function $(){return L()!==null}var T=h(f,"worker.pid"),F=h(f,"logs"),H=h(_t(),".claude","plugins","marketplaces","thedotmack"),dt=5e3,St=1e4,Tt=200,ht=1e3,Ot=100,O=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};W(F,{recursive:!0});let e=h(H,"plugin","scripts","worker-service.cjs");if(!R(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return $()}static async startWithBun(t,e,r){let o=L();if(!o)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=Et(o,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:H,...s&&{windowsHide:!0}}),a=mt(e,{flags:"a"});return i.stdout?.pipe(a),i.stderr?.pipe(a),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=dt){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!R(T))return null;let t=pt(T,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){W(f,{recursive:!0}),ft(T,JSON.stringify(t,null,2))}static removePidFile(){try{R(T)&>(T)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=St){let o=Date.now();for(;Date.now()-osetTimeout(s,Tt))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(o,Ot))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return h(F,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),o=Date.now()-e,s=Math.floor(o/1e3),i=Math.floor(s/60),a=Math.floor(i/60),g=Math.floor(a/24);return g>0?`${g}d ${a%24}h`:a>0?`${a}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function m(n={}){let{port:t,includeSkillFallback:e=!1,customPrefix:r,actualError:o}=n,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",a=s?"Command Prompt or PowerShell":"Terminal",g=r||"Worker service connection failed.",d=t?` (port ${t})`:"",u=`${g}${d} diff --git a/plugin/scripts/mcp-server.cjs b/plugin/scripts/mcp-server.cjs index f6987244..313999db 100755 --- a/plugin/scripts/mcp-server.cjs +++ b/plugin/scripts/mcp-server.cjs @@ -7,7 +7,7 @@ `:`[${s[u]}\r ]`;continue}r+=s[u],s[u]==="\\"?n=!0:l&&s[u]==="]"?l=!1:!l&&s[u]==="["&&(l=!0)}try{new RegExp(r)}catch{return console.warn(`Could not convert regex pattern at ${e.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),a.source}return r}function Pa(a,e){if(e.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),e.target==="openApi3"&&a.keyType?._def.typeName===T.ZodEnum)return{type:"object",required:a.keyType._def.values,properties:a.keyType._def.values.reduce((s,r)=>({...s,[r]:B(a.valueType._def,{...e,currentPath:[...e.currentPath,"properties",r]})??fe(e)}),{}),additionalProperties:e.rejectedAdditionalProperties};let t={type:"object",additionalProperties:B(a.valueType._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]})??e.allowedAdditionalProperties};if(e.target==="openApi3")return t;if(a.keyType?._def.typeName===T.ZodString&&a.keyType._def.checks?.length){let{type:s,...r}=Sa(a.keyType._def,e);return{...t,propertyNames:r}}else{if(a.keyType?._def.typeName===T.ZodEnum)return{...t,propertyNames:{enum:a.keyType._def.values}};if(a.keyType?._def.typeName===T.ZodBranded&&a.keyType._def.type._def.typeName===T.ZodString&&a.keyType._def.type._def.checks?.length){let{type:s,...r}=ba(a.keyType._def,e);return{...t,propertyNames:r}}}return t}function Fi(a,e){if(e.mapStrategy==="record")return Pa(a,e);let t=B(a.keyType._def,{...e,currentPath:[...e.currentPath,"items","items","0"]})||fe(e),s=B(a.valueType._def,{...e,currentPath:[...e.currentPath,"items","items","1"]})||fe(e);return{type:"array",maxItems:125,items:{type:"array",items:[t,s],minItems:2,maxItems:2}}}function Ui(a){let e=a.values,s=Object.keys(a.values).filter(n=>typeof e[e[n]]!="number").map(n=>e[n]),r=Array.from(new Set(s.map(n=>typeof n)));return{type:r.length===1?r[0]==="string"?"string":"number":["string","number"],enum:s}}function qi(a){return a.target==="openAi"?void 0:{not:fe({...a,currentPath:[...a.currentPath,"not"]})}}function Vi(a){return a.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var It={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Hi(a,e){if(e.target==="openApi3")return zi(a,e);let t=a.options instanceof Map?Array.from(a.options.values()):a.options;if(t.every(s=>s._def.typeName in It&&(!s._def.checks||!s._def.checks.length))){let s=t.reduce((r,n)=>{let l=It[n._def.typeName];return l&&!r.includes(l)?[...r,l]:r},[]);return{type:s.length>1?s:s[0]}}else if(t.every(s=>s._def.typeName==="ZodLiteral"&&!s.description)){let s=t.reduce((r,n)=>{let l=typeof n._def.value;switch(l){case"string":case"number":case"boolean":return[...r,l];case"bigint":return[...r,"integer"];case"object":if(n._def.value===null)return[...r,"null"];case"symbol":case"undefined":case"function":default:return r}},[]);if(s.length===t.length){let r=s.filter((n,l,i)=>i.indexOf(n)===l);return{type:r.length>1?r:r[0],enum:t.reduce((n,l)=>n.includes(l._def.value)?n:[...n,l._def.value],[])}}}else if(t.every(s=>s._def.typeName==="ZodEnum"))return{type:"string",enum:t.reduce((s,r)=>[...s,...r._def.values.filter(n=>!s.includes(n))],[])};return zi(a,e)}var zi=(a,e)=>{let t=(a.options instanceof Map?Array.from(a.options.values()):a.options).map((s,r)=>B(s._def,{...e,currentPath:[...e.currentPath,"anyOf",`${r}`]})).filter(s=>!!s&&(!e.strictUnions||typeof s=="object"&&Object.keys(s).length>0));return t.length?{anyOf:t}:void 0};function Zi(a,e){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(a.innerType._def.typeName)&&(!a.innerType._def.checks||!a.innerType._def.checks.length))return e.target==="openApi3"?{type:It[a.innerType._def.typeName],nullable:!0}:{type:[It[a.innerType._def.typeName],"null"]};if(e.target==="openApi3"){let s=B(a.innerType._def,{...e,currentPath:[...e.currentPath]});return s&&"$ref"in s?{allOf:[s],nullable:!0}:s&&{...s,nullable:!0}}let t=B(a.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","0"]});return t&&{anyOf:[t,{type:"null"}]}}function Bi(a,e){let t={type:"number"};if(!a.checks)return t;for(let s of a.checks)switch(s.kind){case"int":t.type="integer",Es(t,"type",s.message,e);break;case"min":e.target==="jsonSchema7"?s.inclusive?ee(t,"minimum",s.value,s.message,e):ee(t,"exclusiveMinimum",s.value,s.message,e):(s.inclusive||(t.exclusiveMinimum=!0),ee(t,"minimum",s.value,s.message,e));break;case"max":e.target==="jsonSchema7"?s.inclusive?ee(t,"maximum",s.value,s.message,e):ee(t,"exclusiveMaximum",s.value,s.message,e):(s.inclusive||(t.exclusiveMaximum=!0),ee(t,"maximum",s.value,s.message,e));break;case"multipleOf":ee(t,"multipleOf",s.value,s.message,e);break}return t}function Wi(a,e){let t=e.target==="openAi",s={type:"object",properties:{}},r=[],n=a.shape();for(let i in n){let u=n[i];if(u===void 0||u._def===void 0)continue;let f=Nf(u);f&&t&&(u._def.typeName==="ZodOptional"&&(u=u._def.innerType),u.isNullable()||(u=u.nullable()),f=!1);let p=B(u._def,{...e,currentPath:[...e.currentPath,"properties",i],propertyPath:[...e.currentPath,"properties",i]});p!==void 0&&(s.properties[i]=p,f||r.push(i))}r.length&&(s.required=r);let l=Cf(a,e);return l!==void 0&&(s.additionalProperties=l),s}function Cf(a,e){if(a.catchall._def.typeName!=="ZodNever")return B(a.catchall._def,{...e,currentPath:[...e.currentPath,"additionalProperties"]});switch(a.unknownKeys){case"passthrough":return e.allowedAdditionalProperties;case"strict":return e.rejectedAdditionalProperties;case"strip":return e.removeAdditionalStrategy==="strict"?e.allowedAdditionalProperties:e.rejectedAdditionalProperties}}function Nf(a){try{return a.isOptional()}catch{return!0}}var Ki=(a,e)=>{if(e.currentPath.toString()===e.propertyPath?.toString())return B(a.innerType._def,e);let t=B(a.innerType._def,{...e,currentPath:[...e.currentPath,"anyOf","1"]});return t?{anyOf:[{not:fe(e)},t]}:fe(e)};var Qi=(a,e)=>{if(e.pipeStrategy==="input")return B(a.in._def,e);if(e.pipeStrategy==="output")return B(a.out._def,e);let t=B(a.in._def,{...e,currentPath:[...e.currentPath,"allOf","0"]}),s=B(a.out._def,{...e,currentPath:[...e.currentPath,"allOf",t?"1":"0"]});return{allOf:[t,s].filter(r=>r!==void 0)}};function Ji(a,e){return B(a.type._def,e)}function Gi(a,e){let s={type:"array",uniqueItems:!0,items:B(a.valueType._def,{...e,currentPath:[...e.currentPath,"items"]})};return a.minSize&&ee(s,"minItems",a.minSize.value,a.minSize.message,e),a.maxSize&&ee(s,"maxItems",a.maxSize.value,a.maxSize.message,e),s}function Yi(a,e){return a.rest?{type:"array",minItems:a.items.length,items:a.items.map((t,s)=>B(t._def,{...e,currentPath:[...e.currentPath,"items",`${s}`]})).reduce((t,s)=>s===void 0?t:[...t,s],[]),additionalItems:B(a.rest._def,{...e,currentPath:[...e.currentPath,"additionalItems"]})}:{type:"array",minItems:a.items.length,maxItems:a.items.length,items:a.items.map((t,s)=>B(t._def,{...e,currentPath:[...e.currentPath,"items",`${s}`]})).reduce((t,s)=>s===void 0?t:[...t,s],[])}}function Xi(a){return{not:fe(a)}}function el(a){return fe(a)}var rl=(a,e)=>B(a.innerType._def,e);var tl=(a,e,t)=>{switch(e){case T.ZodString:return Sa(a,t);case T.ZodNumber:return Bi(a,t);case T.ZodObject:return Wi(a,t);case T.ZodBigInt:return Di(a,t);case T.ZodBoolean:return Ii();case T.ZodDate:return bs(a,t);case T.ZodUndefined:return Xi(t);case T.ZodNull:return Vi(t);case T.ZodArray:return Ai(a,t);case T.ZodUnion:case T.ZodDiscriminatedUnion:return Hi(a,t);case T.ZodIntersection:return ji(a,t);case T.ZodTuple:return Yi(a,t);case T.ZodRecord:return Pa(a,t);case T.ZodLiteral:return Li(a,t);case T.ZodEnum:return Ni(a);case T.ZodNativeEnum:return Ui(a);case T.ZodNullable:return Zi(a,t);case T.ZodOptional:return Ki(a,t);case T.ZodMap:return Fi(a,t);case T.ZodSet:return Gi(a,t);case T.ZodLazy:return()=>a.getter()._def;case T.ZodPromise:return Ji(a,t);case T.ZodNaN:case T.ZodNever:return qi(t);case T.ZodEffects:return Ci(a,t);case T.ZodAny:return fe(t);case T.ZodUnknown:return el(t);case T.ZodDefault:return ki(a,t);case T.ZodBranded:return ba(a,t);case T.ZodReadonly:return rl(a,t);case T.ZodCatch:return $i(a,t);case T.ZodPipeline:return Qi(a,t);case T.ZodFunction:case T.ZodVoid:case T.ZodSymbol:return;default:return(s=>{})(e)}};function B(a,e,t=!1){let s=e.seen.get(a);if(e.override){let i=e.override?.(a,e,s,t);if(i!==Ri)return i}if(s&&!t){let i=jf(s,e);if(i!==void 0)return i}let r={def:a,path:e.currentPath,jsonSchema:void 0};e.seen.set(a,r);let n=tl(a,a.typeName,e),l=typeof n=="function"?B(n(),e):n;if(l&&Lf(a,e,l),e.postProcess){let i=e.postProcess(l,a,e);return r.jsonSchema=l,i}return r.jsonSchema=l,l}var jf=(a,e)=>{switch(e.$refStrategy){case"root":return{$ref:a.path.join("/")};case"relative":return{$ref:Ea(e.currentPath,a.path)};case"none":case"seen":return a.path.lengthe.currentPath[s]===t)?(console.warn(`Recursive reference detected at ${e.currentPath.join("/")}! Defaulting to any`),fe(e)):e.$refStrategy==="seen"?fe(e):void 0}},Lf=(a,e,t)=>(a.description&&(t.description=a.description,e.markdownDescription&&(t.markdownDescription=a.description)),t);var xs=(a,e)=>{let t=Oi(e),s=typeof e=="object"&&e.definitions?Object.entries(e.definitions).reduce((u,[f,p])=>({...u,[f]:B(p._def,{...t,currentPath:[...t.basePath,t.definitionPath,f]},!0)??fe(t)}),{}):void 0,r=typeof e=="string"?e:e?.nameStrategy==="title"?void 0:e?.name,n=B(a._def,r===void 0?t:{...t,currentPath:[...t.basePath,t.definitionPath,r]},!1)??fe(t),l=typeof e=="object"&&e.name!==void 0&&e.nameStrategy==="title"?e.name:void 0;l!==void 0&&(n.title=l),t.flags.hasReferencedOpenAiAnyType&&(s||(s={}),s[t.openAiAnyTypeName]||(s[t.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:t.$refStrategy==="relative"?"1":[...t.basePath,t.definitionPath,t.openAiAnyTypeName].join("/")}}));let i=r===void 0?s?{...n,[t.definitionPath]:s}:n:{$ref:[...t.$refStrategy==="relative"?[]:t.basePath,t.definitionPath,r].join("/"),[t.definitionPath]:{...s,[r]:n}};return t.target==="jsonSchema7"?i.$schema="http://json-schema.org/draft-07/schema#":(t.target==="jsonSchema2019-09"||t.target==="openAi")&&(i.$schema="https://json-schema.org/draft/2019-09/schema#"),t.target==="openAi"&&("anyOf"in i||"oneOf"in i||"allOf"in i||"type"in i&&Array.isArray(i.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),i};var al=require("fs"),sl=require("os"),nl=require("path"),Mf=(0,nl.join)((0,sl.homedir)(),".claude-mem","silent.log");function we(a,e,t=""){let s=new Date().toISOString(),i=((new Error().stack||"").split(` `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),u=i?`${i[1].split("/").pop()}:${i[2]}`:"unknown",f=`[${s}] [HAPPY-PATH-ERROR] [${u}] ${a}`;if(e!==void 0)try{f+=` ${JSON.stringify(e)}`}catch(p){f+=` [stringify error: ${p}]`}f+=` -`;try{(0,al.appendFileSync)(Mf,f)}catch(p){console.error("[silent-debug] Failed to write to log:",p)}return t}var wa=Ia(require("path"),1),As=require("os");var pt=require("fs"),ll=require("path"),cl=require("os");var Ff=["bugfix","feature","refactor","discovery","decision","change"],Uf=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var ol=Ff.join(","),il=Uf.join(",");var rr=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,ll.join)((0,cl.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:ol,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:il,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,pt.existsSync)(e))return this.getAllDefaults();let t=(0,pt.readFileSync)(e,"utf-8"),s=JSON.parse(t),r=s;if(s.env&&typeof s.env=="object"){r=s.env;try{(0,pt.writeFileSync)(e,JSON.stringify(r,null,2),"utf-8"),$t.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(l){$t.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},l)}}let n={...this.DEFAULTS};for(let l of Object.keys(this.DEFAULTS))r[l]!==void 0&&(n[l]=r[l]);return n}};var ws=(n=>(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(ws||{}),Rs=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let e=rr.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=ws[e]??1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} +`;try{(0,al.appendFileSync)(Mf,f)}catch(p){console.error("[silent-debug] Failed to write to log:",p)}return t}var wa=Ia(require("path"),1),As=require("os");var pt=require("fs"),ll=require("path"),cl=require("os");var Ff=["bugfix","feature","refactor","discovery","decision","change"],Uf=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var ol=Ff.join(","),il=Uf.join(",");var rr=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,ll.join)((0,cl.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:ol,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:il,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let t=this.get(e);return parseInt(t,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,pt.existsSync)(e))return this.getAllDefaults();let t=(0,pt.readFileSync)(e,"utf-8"),s=JSON.parse(t),r=s;if(s.env&&typeof s.env=="object"){r=s.env;try{(0,pt.writeFileSync)(e,JSON.stringify(r,null,2),"utf-8"),$t.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(l){$t.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},l)}}let n={...this.DEFAULTS};for(let l of Object.keys(this.DEFAULTS))r[l]!==void 0&&(n[l]=r[l]);return n}};var ws=(n=>(n[n.DEBUG=0]="DEBUG",n[n.INFO=1]="INFO",n[n.WARN=2]="WARN",n[n.ERROR=3]="ERROR",n[n.SILENT=4]="SILENT",n))(ws||{}),Rs=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let e=rr.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=ws[e]??1}return this.level}correlationId(e,t){return`obs-${e}-${t}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let t=Object.keys(e);return t.length===0?"{}":t.length<=3?JSON.stringify(e):`{${t.length} keys: ${t.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,t){if(!t)return e;try{let s=typeof t=="string"?JSON.parse(t):t;if(e==="Bash"&&s.command){let r=s.command.length>50?s.command.substring(0,50)+"...":s.command;return`${e}(${r})`}if(e==="Read"&&s.file_path){let r=s.file_path.split("/").pop()||s.file_path;return`${e}(${r})`}if(e==="Edit"&&s.file_path){let r=s.file_path.split("/").pop()||s.file_path;return`${e}(${r})`}if(e==="Write"&&s.file_path){let r=s.file_path.split("/").pop()||s.file_path;return`${e}(${r})`}return e}catch{return e}}formatTimestamp(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),n=String(e.getHours()).padStart(2,"0"),l=String(e.getMinutes()).padStart(2,"0"),i=String(e.getSeconds()).padStart(2,"0"),u=String(e.getMilliseconds()).padStart(3,"0");return`${t}-${s}-${r} ${n}:${l}:${i}.${u}`}log(e,t,s,r,n){if(e0&&(m=` {${Object.entries(v).map(([O,x])=>`${O}=${x}`).join(", ")}}`)}let E=`[${l}] [${i}] [${u}] ${f}${s}${m}${p}`;e===3?console.error(E):console.log(E)}debug(e,t,s,r){this.log(0,e,t,s,r)}info(e,t,s,r){this.log(1,e,t,s,r)}warn(e,t,s,r){this.log(2,e,t,s,r)}error(e,t,s,r){this.log(3,e,t,s,r)}dataIn(e,t,s,r){this.info(e,`\u2192 ${t}`,s,r)}dataOut(e,t,s,r){this.info(e,`\u2190 ${t}`,s,r)}success(e,t,s,r){this.info(e,`\u2713 ${t}`,s,r)}failure(e,t,s,r){this.error(e,`\u2717 ${t}`,s,r)}timing(e,t,s,r){this.info(e,`\u23F1 ${t}`,r,{duration:`${s}ms`})}},$t=new Rs;var Ts={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function ul(a){return process.platform==="win32"?Math.round(a*Ts.WINDOWS_MULTIPLIER):a}var xa=require("path");var pl=require("os");var ke=require("path"),dl=require("os");var fl=require("url");var Vf={};function qf(){return typeof __dirname<"u"?__dirname:(0,ke.dirname)((0,fl.fileURLToPath)(Vf.url))}var Fg=qf(),cr=rr.get("CLAUDE_MEM_DATA_DIR"),Os=process.env.CLAUDE_CONFIG_DIR||(0,ke.join)((0,dl.homedir)(),".claude"),Ug=(0,ke.join)(cr,"archives"),qg=(0,ke.join)(cr,"logs"),Vg=(0,ke.join)(cr,"trash"),zg=(0,ke.join)(cr,"backups"),Hg=(0,ke.join)(cr,"settings.json"),Zg=(0,ke.join)(cr,"claude-mem.db"),Bg=(0,ke.join)(cr,"vector-db"),Wg=(0,ke.join)(Os,"settings.json"),Kg=(0,ke.join)(Os,"commands"),Qg=(0,ke.join)(Os,"CLAUDE.md");var ty=(0,xa.join)(cr,"worker.pid"),ay=(0,xa.join)(cr,"logs"),sy=(0,xa.join)((0,pl.homedir)(),".claude","plugins","marketplaces","thedotmack");var hy=wa.default.join((0,As.homedir)(),".claude","plugins","marketplaces","thedotmack"),my=ul(Ts.HEALTH_CHECK),ht=null;function hl(){if(ht!==null)return ht;try{let a=wa.default.join(rr.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),e=rr.loadFromFile(a);return ht=parseInt(e.CLAUDE_MEM_WORKER_PORT,10),ht}catch(a){return $t.debug("SYSTEM","Failed to load port from settings, using default",{error:a}),ht=parseInt(rr.get("CLAUDE_MEM_WORKER_PORT"),10),ht}}function ml(){let a=wa.default.join((0,As.homedir)(),".claude-mem","settings.json");return rr.loadFromFile(a).CLAUDE_MEM_WORKER_HOST}var zf=hl(),Hf=ml(),mt=`http://${Hf}:${zf}`,kt={search:"/api/search",timeline:"/api/timeline",get_recent_context:"/api/context/recent",get_context_timeline:"/api/context/timeline",progressive_description:"/api/instructions"};async function Ct(a,e){we("[mcp-server] \u2192 Worker API",{endpoint:a,params:e});try{let t=new URLSearchParams;for(let[l,i]of Object.entries(e))i!=null&&t.append(l,String(i));let s=`${mt}${a}?${t}`,r=await fetch(s);if(!r.ok){let l=await r.text();throw new Error(`Worker API error (${r.status}): ${l}`)}let n=await r.json();return we("[mcp-server] \u2190 Worker API success",{endpoint:a}),n}catch(t){return we("[mcp-server] \u2190 Worker API error",{endpoint:a,error:t.message}),{content:[{type:"text",text:`Error calling Worker API: ${t.message}`}],isError:!0}}}async function Ds(a,e){we("[mcp-server] \u2192 Worker API (path)",{endpoint:a,id:e});try{let t=`${mt}${a}/${e}`,s=await fetch(t);if(!s.ok){let n=await s.text();throw new Error(`Worker API error (${s.status}): ${n}`)}let r=await s.json();return we("[mcp-server] \u2190 Worker API success (path)",{endpoint:a,id:e}),{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}catch(t){return we("[mcp-server] \u2190 Worker API error (path)",{endpoint:a,id:e,error:t.message}),{content:[{type:"text",text:`Error calling Worker API: ${t.message}`}],isError:!0}}}async function Zf(a,e){we("[mcp-server] \u2192 Worker API (POST)",{endpoint:a,body:e});try{let t=`${mt}${a}`,s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok){let n=await s.text();throw new Error(`Worker API error (${s.status}): ${n}`)}let r=await s.json();return we("[mcp-server] \u2190 Worker API success (POST)",{endpoint:a}),{content:[{type:"text",text:JSON.stringify(r,null,2)}]}}catch(t){return we("[mcp-server] \u2190 Worker API error (POST)",{endpoint:a,error:t.message}),{content:[{type:"text",text:`Error calling Worker API: ${t.message}`}],isError:!0}}}async function Bf(){try{return(await fetch(`${mt}/api/health`)).ok}catch{return!1}}var vl=[{name:"search",description:"Search memory",inputSchema:o.object({query:o.string().optional(),type:o.enum(["observations","sessions","prompts"]).optional(),obs_type:o.string().optional(),concepts:o.string().optional(),files:o.string().optional(),project:o.string().optional(),dateStart:o.union([o.string(),o.number()]).optional(),dateEnd:o.union([o.string(),o.number()]).optional(),limit:o.number().min(1).max(100).default(20),offset:o.number().min(0).default(0),orderBy:o.enum(["relevance","date_desc","date_asc"]).default("date_desc")}),handler:async a=>{let e=kt.search;return await Ct(e,a)}},{name:"timeline",description:"Timeline context",inputSchema:o.object({query:o.string().optional(),anchor:o.number().optional(),depth_before:o.number().min(0).max(100).default(10),depth_after:o.number().min(0).max(100).default(10),type:o.string().optional(),concepts:o.string().optional(),files:o.string().optional(),project:o.string().optional()}),handler:async a=>{let e=kt.timeline;return await Ct(e,a)}},{name:"get_recent_context",description:"Recent context",inputSchema:o.object({limit:o.number().min(1).max(100).default(30),type:o.string().optional(),concepts:o.string().optional(),files:o.string().optional(),project:o.string().optional(),dateStart:o.union([o.string(),o.number()]).optional(),dateEnd:o.union([o.string(),o.number()]).optional()}),handler:async a=>{let e=kt.get_recent_context;return await Ct(e,a)}},{name:"get_context_timeline",description:"Timeline around ID",inputSchema:o.object({anchor:o.number(),depth_before:o.number().min(0).max(100).default(10),depth_after:o.number().min(0).max(100).default(10),type:o.string().optional(),concepts:o.string().optional(),files:o.string().optional(),project:o.string().optional()}),handler:async a=>{let e=kt.get_context_timeline;return await Ct(e,a)}},{name:"progressive_description",description:"Usage help",inputSchema:o.object({topic:o.enum(["workflow","search_params","examples","all"]).default("all")}),handler:async a=>{let e=kt.progressive_description;return await Ct(e,a)}},{name:"get_observation",description:"Fetch by ID",inputSchema:o.object({id:o.number()}),handler:async a=>await Ds("/api/observation",a.id)},{name:"get_batch_observations",description:"Batch fetch",inputSchema:o.object({ids:o.array(o.number()),orderBy:o.enum(["date_desc","date_asc"]).optional(),limit:o.number().optional(),project:o.string().optional()}),handler:async a=>await Zf("/api/observations/batch",a)},{name:"get_session",description:"Session by ID",inputSchema:o.object({id:o.number()}),handler:async a=>await Ds("/api/session",a.id)},{name:"get_prompt",description:"Prompt by ID",inputSchema:o.object({id:o.number()}),handler:async a=>await Ds("/api/prompt",a.id)}],Is=new ga({name:"claude-mem-search-server",version:"1.0.0"},{capabilities:{tools:{}}});Is.setRequestHandler(za,async()=>({tools:vl.map(a=>({name:a.name,description:a.description,inputSchema:xs(a.inputSchema)}))}));Is.setRequestHandler(Ha,async a=>{let e=vl.find(t=>t.name===a.params.name);if(!e)throw new Error(`Unknown tool: ${a.params.name}`);try{return await e.handler(a.params.arguments||{})}catch(t){return{content:[{type:"text",text:`Tool execution failed: ${t.message}`}],isError:!0}}});async function gl(){we("[mcp-server] Shutting down..."),process.exit(0)}process.on("SIGTERM",gl);process.on("SIGINT",gl);async function Wf(){let a=new _a;await Is.connect(a),we("[mcp-server] Claude-mem search server started"),setTimeout(async()=>{await Bf()?we("[mcp-server] Worker available at",mt):(we("[mcp-server] WARNING: Worker not available at",mt),we("[mcp-server] Tools will fail until Worker is started"),we("[mcp-server] Start Worker with: npm run worker:restart"))},0)}Wf().catch(a=>{we("[mcp-server] Fatal error:",a),process.exit(1)}); /*! Bundled license information: diff --git a/plugin/scripts/new-hook.js b/plugin/scripts/new-hook.js index be502a87..b1f5cead 100755 --- a/plugin/scripts/new-hook.js +++ b/plugin/scripts/new-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import xt from"path";import{stdin as z}from"process";function tt(n,t,e){return n==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:n==="UserPromptSubmit"||n==="PostToolUse"?{continue:!0,suppressOutput:!0}:n==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function A(n,t,e={}){let r=tt(n,t,e);return JSON.stringify(r)}import C from"path";import{homedir as Dt}from"os";import{spawnSync as Lt}from"child_process";import{existsSync as bt,writeFileSync as V,readFileSync as Rt,mkdirSync as wt}from"fs";import{readFileSync as nt,writeFileSync as ot,existsSync as st}from"fs";import{join as it}from"path";import{homedir as at}from"os";var et=["bugfix","feature","refactor","discovery","decision","change"],rt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var N=et.join(","),x=rt.join(",");var m=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:it(at(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:N,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:x,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!st(t))return this.getAllDefaults();let e=nt(t,"utf-8"),r=JSON.parse(e),o=r;if(r.env&&typeof r.env=="object"){o=r.env;try{ot(t,JSON.stringify(o,null,2),"utf-8"),p.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){p.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var M=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(M||{}),D=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=m.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=M[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import xt from"path";import{stdin as z}from"process";function tt(n,t,e){return n==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:n==="UserPromptSubmit"||n==="PostToolUse"?{continue:!0,suppressOutput:!0}:n==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function A(n,t,e={}){let r=tt(n,t,e);return JSON.stringify(r)}import C from"path";import{homedir as Dt}from"os";import{spawnSync as Lt}from"child_process";import{existsSync as bt,writeFileSync as V,readFileSync as Rt,mkdirSync as wt}from"fs";import{readFileSync as nt,writeFileSync as ot,existsSync as st}from"fs";import{join as it}from"path";import{homedir as at}from"os";var et=["bugfix","feature","refactor","discovery","decision","change"],rt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var N=et.join(","),x=rt.join(",");var m=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:it(at(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:N,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:x,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!st(t))return this.getAllDefaults();let e=nt(t,"utf-8"),r=JSON.parse(e),o=r;if(r.env&&typeof r.env=="object"){o=r.env;try{ot(t,JSON.stringify(o,null,2),"utf-8"),p.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){p.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var M=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(M||{}),D=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=m.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=M[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let o=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${o})`}if(t==="Read"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}if(t==="Edit"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}if(t==="Write"&&r.file_path){let o=r.file_path.split("/").pop()||r.file_path;return`${t}(${o})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),u=String(t.getSeconds()).padStart(2,"0"),l=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${o} ${s}:${i}:${u}.${l}`}log(t,e,r,o,s){if(t0&&(O=` {${Object.entries(U).map(([Q,Z])=>`${Q}=${Z}`).join(", ")}}`)}let v=`[${i}] [${u}] [${l}] ${c}${r}${O}${a}`;t===3?console.error(v):console.log(v)}debug(t,e,r,o){this.log(0,t,e,r,o)}info(t,e,r,o){this.log(1,t,e,r,o)}warn(t,e,r,o){this.log(2,t,e,r,o)}error(t,e,r,o){this.log(3,t,e,r,o)}dataIn(t,e,r,o){this.info(t,`\u2192 ${e}`,r,o)}dataOut(t,e,r,o){this.info(t,`\u2190 ${e}`,r,o)}success(t,e,r,o){this.info(t,`\u2713 ${e}`,r,o)}failure(t,e,r,o){this.error(t,`\u2717 ${e}`,r,o)}timing(t,e,r,o){this.info(t,`\u23F1 ${e}`,o,{duration:`${r}ms`})}},p=new D;var L={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function $(n){return process.platform==="win32"?Math.round(n*L.WINDOWS_MULTIPLIER):n}import{existsSync as w,readFileSync as gt,writeFileSync as Et,unlinkSync as _t,mkdirSync as K}from"fs";import{createWriteStream as dt}from"fs";import{join as T}from"path";import{spawn as St}from"child_process";import{homedir as Tt}from"os";import{join as f,dirname as ct,basename as ee}from"path";import{homedir as ut}from"os";import{fileURLToPath as pt}from"url";function lt(){return typeof __dirname<"u"?__dirname:ct(pt(import.meta.url))}var ie=lt(),g=m.get("CLAUDE_MEM_DATA_DIR"),b=process.env.CLAUDE_CONFIG_DIR||f(ut(),".claude"),ae=f(g,"archives"),ce=f(g,"logs"),ue=f(g,"trash"),pe=f(g,"backups"),le=f(g,"settings.json"),me=f(g,"claude-mem.db"),fe=f(g,"vector-db"),ge=f(b,"settings.json"),Ee=f(b,"commands"),_e=f(b,"CLAUDE.md");import{spawnSync as mt}from"child_process";import{existsSync as ft}from"fs";import{join as H}from"path";import{homedir as W}from"os";function R(){let n=process.platform==="win32";try{if(mt("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:n}).status===0)return"bun"}catch{}let t=n?[H(W(),".bun","bin","bun.exe")]:[H(W(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(ft(e))return e;return null}function F(){return R()!==null}var S=T(g,"worker.pid"),j=T(g,"logs"),B=T(Tt(),".claude","plugins","marketplaces","thedotmack"),ht=5e3,Ot=1e4,Ct=200,At=1e3,Mt=100,h=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};K(j,{recursive:!0});let e=T(B,"plugin","scripts","worker-service.cjs");if(!w(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return F()}static async startWithBun(t,e,r){let o=R();if(!o)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=St(o,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:B,...s&&{windowsHide:!0}}),u=dt(e,{flags:"a"});return i.stdout?.pipe(u),i.stderr?.pipe(u),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=ht){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!w(S))return null;let t=gt(S,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){K(g,{recursive:!0}),Et(S,JSON.stringify(t,null,2))}static removePidFile(){try{w(S)&&_t(S)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=Ot){let o=Date.now();for(;Date.now()-osetTimeout(s,Ct))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(o,Mt))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return T(j,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),o=Date.now()-e,s=Math.floor(o/1e3),i=Math.floor(s/60),u=Math.floor(i/60),l=Math.floor(u/24);return l>0?`${l}d ${u%24}h`:u>0?`${u}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function E(n={}){let{port:t,includeSkillFallback:e=!1,customPrefix:r,actualError:o}=n,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",u=s?"Command Prompt or PowerShell":"Terminal",l=r||"Worker service connection failed.",c=t?` (port ${t})`:"",a=`${l}${c} @@ -12,6 +12,6 @@ ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Obje If that doesn't work, try: /troubleshoot`),o&&(a=`Worker Error: ${o} -${a}`),a}var X=C.join(Dt(),".claude","plugins","marketplaces","thedotmack"),Y=$(L.HEALTH_CHECK),d=null;function _(){if(d!==null)return d;try{let n=C.join(m.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=m.loadFromFile(n);return d=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),d}catch(n){return p.debug("SYSTEM","Failed to load port from settings, using default",{error:n}),d=parseInt(m.get("CLAUDE_MEM_WORKER_PORT"),10),d}}async function k(){try{let n=_();return(await fetch(`http://127.0.0.1:${n}/health`,{signal:AbortSignal.timeout(Y)})).ok}catch(n){return p.debug("SYSTEM","Worker health check failed",{error:n instanceof Error?n.message:String(n),errorType:n?.constructor?.name}),!1}}function kt(){try{let n=C.join(X,"package.json");return JSON.parse(Rt(n,"utf-8")).version}catch(n){return p.debug("SYSTEM","Failed to read plugin version",{error:n instanceof Error?n.message:String(n)}),null}}async function yt(){try{let n=_(),t=await fetch(`http://127.0.0.1:${n}/api/version`,{signal:AbortSignal.timeout(Y)});return t.ok?(await t.json()).version:null}catch(n){return p.debug("SYSTEM","Failed to get worker version",{error:n instanceof Error?n.message:String(n)}),null}}async function G(){let n=kt(),t=await yt();!n||!t||n!==t&&(p.info("SYSTEM","Worker version mismatch detected - restarting worker",{pluginVersion:n,workerVersion:t}),await h.restart(_()),await new Promise(e=>setTimeout(e,1e3)),await k()||p.error("SYSTEM","Worker failed to restart after version mismatch",{expectedVersion:n,runningVersion:t,port}))}async function It(){let n=m.get("CLAUDE_MEM_DATA_DIR"),t=C.join(n,".pm2-migrated");if(wt(n,{recursive:!0}),!bt(t))try{Lt("pm2",["delete","claude-mem-worker"],{stdio:"ignore"}),V(t,new Date().toISOString(),"utf-8"),p.debug("SYSTEM","PM2 cleanup completed and marked")}catch{V(t,new Date().toISOString(),"utf-8")}let e=_(),r=await h.start(e);return r.success||p.error("SYSTEM","Failed to start worker",{platform:process.platform,port:e,error:r.error,marketplaceRoot:X}),r.success}async function J(){if(await k()){await G();return}if(!await It()){let e=_();throw new Error(E({port:e,customPrefix:`Worker service failed to start on port ${e}.`}))}for(let e=0;e<5;e++)if(await new Promise(r=>setTimeout(r,500)),await k()){await G();return}let t=_();throw p.error("SYSTEM","Worker started but not responding to health checks"),new Error(E({port:t,customPrefix:`Worker service started but is not responding on port ${t}.`}))}import{appendFileSync as Pt}from"fs";import{homedir as vt}from"os";import{join as Ut}from"path";var Nt=Ut(vt(),".claude-mem","silent.log");function q(n,t,e=""){let r=new Date().toISOString(),u=((new Error().stack||"").split(` +${a}`),a}var X=C.join(Dt(),".claude","plugins","marketplaces","thedotmack"),Y=$(L.HEALTH_CHECK),d=null;function _(){if(d!==null)return d;try{let n=C.join(m.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=m.loadFromFile(n);return d=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),d}catch(n){return p.debug("SYSTEM","Failed to load port from settings, using default",{error:n}),d=parseInt(m.get("CLAUDE_MEM_WORKER_PORT"),10),d}}async function y(){try{let n=_();return(await fetch(`http://127.0.0.1:${n}/health`,{signal:AbortSignal.timeout(Y)})).ok}catch(n){return p.debug("SYSTEM","Worker health check failed",{error:n instanceof Error?n.message:String(n),errorType:n?.constructor?.name}),!1}}function yt(){try{let n=C.join(X,"package.json");return JSON.parse(Rt(n,"utf-8")).version}catch(n){return p.debug("SYSTEM","Failed to read plugin version",{error:n instanceof Error?n.message:String(n)}),null}}async function It(){try{let n=_(),t=await fetch(`http://127.0.0.1:${n}/api/version`,{signal:AbortSignal.timeout(Y)});return t.ok?(await t.json()).version:null}catch(n){return p.debug("SYSTEM","Failed to get worker version",{error:n instanceof Error?n.message:String(n)}),null}}async function G(){let n=yt(),t=await It();!n||!t||n!==t&&(p.info("SYSTEM","Worker version mismatch detected - restarting worker",{pluginVersion:n,workerVersion:t}),await h.restart(_()),await new Promise(e=>setTimeout(e,1e3)),await y()||p.error("SYSTEM","Worker failed to restart after version mismatch",{expectedVersion:n,runningVersion:t,port}))}async function kt(){let n=m.get("CLAUDE_MEM_DATA_DIR"),t=C.join(n,".pm2-migrated");if(wt(n,{recursive:!0}),!bt(t))try{Lt("pm2",["delete","claude-mem-worker"],{stdio:"ignore"}),V(t,new Date().toISOString(),"utf-8"),p.debug("SYSTEM","PM2 cleanup completed and marked")}catch{V(t,new Date().toISOString(),"utf-8")}let e=_(),r=await h.start(e);return r.success||p.error("SYSTEM","Failed to start worker",{platform:process.platform,port:e,error:r.error,marketplaceRoot:X}),r.success}async function J(){if(await y()){await G();return}if(!await kt()){let e=_();throw new Error(E({port:e,customPrefix:`Worker service failed to start on port ${e}.`}))}for(let e=0;e<5;e++)if(await new Promise(r=>setTimeout(r,500)),await y()){await G();return}let t=_();throw p.error("SYSTEM","Worker started but not responding to health checks"),new Error(E({port:t,customPrefix:`Worker service started but is not responding on port ${t}.`}))}import{appendFileSync as Pt}from"fs";import{homedir as vt}from"os";import{join as Ut}from"path";var Nt=Ut(vt(),".claude-mem","silent.log");function q(n,t,e=""){let r=new Date().toISOString(),u=((new Error().stack||"").split(` `)[2]||"").match(/at\s+(?:.*\s+)?\(?([^:]+):(\d+):(\d+)\)?/),l=u?`${u[1].split("/").pop()}:${u[2]}`:"unknown",c=`[${r}] [HAPPY-PATH-ERROR] [${l}] ${n}`;if(t!==void 0)try{c+=` ${JSON.stringify(t)}`}catch(a){c+=` [stringify error: ${a}]`}c+=` -`;try{Pt(Nt,c)}catch(a){console.error("[silent-debug] Failed to write to log:",a)}return e}function y(n){throw n.cause?.code==="ECONNREFUSED"||n.code==="ConnectionRefused"||n.name==="TimeoutError"||n.message?.includes("fetch failed")||n.message?.includes("Unable to connect")?new Error(E()):n}function I(n,t,e){p.error("HOOK",`${e.operation} failed`,{status:n.status,...e},t);let r=e.toolName?`Failed ${e.operation} for ${e.toolName}: ${E()}`:`${e.operation} failed: ${E()}`;throw new Error(r)}async function $t(n){if(await J(),!n)throw new Error("newHook requires input");let{session_id:t,cwd:e,prompt:r}=n,o=xt.basename(e);q("[new-hook] Input received",{session_id:t,project:o,prompt_length:r?.length});let s=_(),i,u;try{let c=await fetch(`http://127.0.0.1:${s}/api/sessions/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({claudeSessionId:t,project:o,prompt:r}),signal:AbortSignal.timeout(5e3)});if(!c.ok){let O=await c.text();I(c,O,{hookName:"new",operation:"Session initialization",project:o,port:s})}let a=await c.json();if(i=a.sessionDbId,u=a.promptNumber,a.skipped&&a.reason==="private"){console.error(`[new-hook] Session ${i}, prompt #${u} (fully private - skipped)`),console.log(A("UserPromptSubmit",!0));return}console.error(`[new-hook] Session ${i}, prompt #${u}`)}catch(c){y(c)}let l=r.startsWith("/")?r.substring(1):r;try{let c=await fetch(`http://127.0.0.1:${s}/sessions/${i}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:l,promptNumber:u}),signal:AbortSignal.timeout(5e3)});if(!c.ok){let a=await c.text();I(c,a,{hookName:"new",operation:"SDK agent start",project:o,port:s,sessionId:String(i)})}}catch(c){y(c)}console.log(A("UserPromptSubmit",!0))}var P="";z.on("data",n=>P+=n);z.on("end",async()=>{let n=P?JSON.parse(P):void 0;await $t(n)}); +`;try{Pt(Nt,c)}catch(a){console.error("[silent-debug] Failed to write to log:",a)}return e}function I(n){throw n.cause?.code==="ECONNREFUSED"||n.code==="ConnectionRefused"||n.name==="TimeoutError"||n.message?.includes("fetch failed")||n.message?.includes("Unable to connect")?new Error(E()):n}function k(n,t,e){p.error("HOOK",`${e.operation} failed`,{status:n.status,...e},t);let r=e.toolName?`Failed ${e.operation} for ${e.toolName}: ${E()}`:`${e.operation} failed: ${E()}`;throw new Error(r)}async function $t(n){if(await J(),!n)throw new Error("newHook requires input");let{session_id:t,cwd:e,prompt:r}=n,o=xt.basename(e);q("[new-hook] Input received",{session_id:t,project:o,prompt_length:r?.length});let s=_(),i,u;try{let c=await fetch(`http://127.0.0.1:${s}/api/sessions/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({claudeSessionId:t,project:o,prompt:r}),signal:AbortSignal.timeout(5e3)});if(!c.ok){let O=await c.text();k(c,O,{hookName:"new",operation:"Session initialization",project:o,port:s})}let a=await c.json();if(i=a.sessionDbId,u=a.promptNumber,a.skipped&&a.reason==="private"){console.error(`[new-hook] Session ${i}, prompt #${u} (fully private - skipped)`),console.log(A("UserPromptSubmit",!0));return}console.error(`[new-hook] Session ${i}, prompt #${u}`)}catch(c){I(c)}let l=r.startsWith("/")?r.substring(1):r;try{let c=await fetch(`http://127.0.0.1:${s}/sessions/${i}/init`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userPrompt:l,promptNumber:u}),signal:AbortSignal.timeout(5e3)});if(!c.ok){let a=await c.text();k(c,a,{hookName:"new",operation:"SDK agent start",project:o,port:s,sessionId:String(i)})}}catch(c){I(c)}console.log(A("UserPromptSubmit",!0))}var P="";z.on("data",n=>P+=n);z.on("end",async()=>{let n=P?JSON.parse(P):void 0;await $t(n)}); diff --git a/plugin/scripts/save-hook.js b/plugin/scripts/save-hook.js index 834b1e8e..19e026b2 100755 --- a/plugin/scripts/save-hook.js +++ b/plugin/scripts/save-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import{stdin as Q}from"process";function tt(o,t,e){return o==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:o==="UserPromptSubmit"||o==="PostToolUse"?{continue:!0,suppressOutput:!0}:o==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function P(o,t,e={}){let r=tt(o,t,e);return JSON.stringify(r)}import{readFileSync as ot,writeFileSync as nt,existsSync as st}from"fs";import{join as it}from"path";import{homedir as at}from"os";var et=["bugfix","feature","refactor","discovery","decision","change"],rt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=et.join(","),U=rt.join(",");var f=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:it(at(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:U,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!st(t))return this.getAllDefaults();let e=ot(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{nt(t,JSON.stringify(n,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=f.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import{stdin as Q}from"process";function tt(o,t,e){return o==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:o==="UserPromptSubmit"||o==="PostToolUse"?{continue:!0,suppressOutput:!0}:o==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function P(o,t,e={}){let r=tt(o,t,e);return JSON.stringify(r)}import{readFileSync as ot,writeFileSync as nt,existsSync as st}from"fs";import{join as it}from"path";import{homedir as at}from"os";var et=["bugfix","feature","refactor","discovery","decision","change"],rt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=et.join(","),U=rt.join(",");var f=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:it(at(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:U,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!st(t))return this.getAllDefaults();let e=ot(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{nt(t,JSON.stringify(n,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=f.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let n=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${n})`}if(t==="Read"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Edit"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Write"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),p=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${n} ${s}:${i}:${a}.${p}`}log(t,e,r,n,s){if(t0&&(w=` {${Object.entries(k).map(([z,Z])=>`${z}=${Z}`).join(", ")}}`)}let y=`[${i}] [${a}] [${p}] ${l}${r}${w}${u}`;t===3?console.error(y):console.log(y)}debug(t,e,r,n){this.log(0,t,e,r,n)}info(t,e,r,n){this.log(1,t,e,r,n)}warn(t,e,r,n){this.log(2,t,e,r,n)}error(t,e,r,n){this.log(3,t,e,r,n)}dataIn(t,e,r,n){this.info(t,`\u2192 ${e}`,r,n)}dataOut(t,e,r,n){this.info(t,`\u2190 ${e}`,r,n)}success(t,e,r,n){this.info(t,`\u2713 ${e}`,r,n)}failure(t,e,r,n){this.error(t,`\u2717 ${e}`,r,n)}timing(t,e,r,n){this.info(t,`\u23F1 ${e}`,n,{duration:`${r}ms`})}},c=new M;import C from"path";import{homedir as Dt}from"os";import{spawnSync as Lt}from"child_process";import{existsSync as Rt,writeFileSync as B,readFileSync as bt,mkdirSync as It}from"fs";var S={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function N(o){return process.platform==="win32"?Math.round(o*S.WINDOWS_MULTIPLIER):o}import{existsSync as R,readFileSync as gt,writeFileSync as Et,unlinkSync as _t,mkdirSync as W}from"fs";import{createWriteStream as dt}from"fs";import{join as O}from"path";import{spawn as St}from"child_process";import{homedir as Tt}from"os";import{join as m,dirname as ct,basename as te}from"path";import{homedir as ut}from"os";import{fileURLToPath as pt}from"url";function lt(){return typeof __dirname<"u"?__dirname:ct(pt(import.meta.url))}var se=lt(),g=f.get("CLAUDE_MEM_DATA_DIR"),D=process.env.CLAUDE_CONFIG_DIR||m(ut(),".claude"),ie=m(g,"archives"),ae=m(g,"logs"),ce=m(g,"trash"),ue=m(g,"backups"),pe=m(g,"settings.json"),le=m(g,"claude-mem.db"),fe=m(g,"vector-db"),me=m(D,"settings.json"),ge=m(D,"commands"),Ee=m(D,"CLAUDE.md");import{spawnSync as ft}from"child_process";import{existsSync as mt}from"fs";import{join as x}from"path";import{homedir as $}from"os";function L(){let o=process.platform==="win32";try{if(ft("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:o}).status===0)return"bun"}catch{}let t=o?[x($(),".bun","bin","bun.exe")]:[x($(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(mt(e))return e;return null}function H(){return L()!==null}var T=O(g,"worker.pid"),F=O(g,"logs"),K=O(Tt(),".claude","plugins","marketplaces","thedotmack"),Ot=5e3,ht=1e4,Ct=200,At=1e3,Mt=100,h=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};W(F,{recursive:!0});let e=O(K,"plugin","scripts","worker-service.cjs");if(!R(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return H()}static async startWithBun(t,e,r){let n=L();if(!n)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=St(n,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:K,...s&&{windowsHide:!0}}),a=dt(e,{flags:"a"});return i.stdout?.pipe(a),i.stderr?.pipe(a),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=Ot){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!R(T))return null;let t=gt(T,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){W(g,{recursive:!0}),Et(T,JSON.stringify(t,null,2))}static removePidFile(){try{R(T)&&_t(T)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=ht){let n=Date.now();for(;Date.now()-nsetTimeout(s,Ct))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(n,Mt))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return O(F,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),n=Date.now()-e,s=Math.floor(n/1e3),i=Math.floor(s/60),a=Math.floor(i/60),p=Math.floor(a/24);return p>0?`${p}d ${a%24}h`:a>0?`${a}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function E(o={}){let{port:t,includeSkillFallback:e=!1,customPrefix:r,actualError:n}=o,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",a=s?"Command Prompt or PowerShell":"Terminal",p=r||"Worker service connection failed.",l=t?` (port ${t})`:"",u=`${p}${l} diff --git a/plugin/scripts/summary-hook.js b/plugin/scripts/summary-hook.js index b9119ca7..94c56500 100755 --- a/plugin/scripts/summary-hook.js +++ b/plugin/scripts/summary-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import{stdin as Q}from"process";function et(r,t,e){return r==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:r==="UserPromptSubmit"||r==="PostToolUse"?{continue:!0,suppressOutput:!0}:r==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function U(r,t,e={}){let n=et(r,t,e);return JSON.stringify(n)}import{readFileSync as ot,writeFileSync as st,existsSync as it}from"fs";import{join as at}from"path";import{homedir as ct}from"os";var rt=["bugfix","feature","refactor","discovery","decision","change"],nt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=rt.join(","),N=nt.join(",");var m=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:at(ct(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:N,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!it(t))return this.getAllDefaults();let e=ot(t,"utf-8"),n=JSON.parse(e),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{st(t,JSON.stringify(o,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=m.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import{stdin as Q}from"process";function et(r,t,e){return r==="SessionStart"?t&&e.context?{continue:!0,suppressOutput:!0,hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:e.context}}:{continue:!0,suppressOutput:!0}:r==="UserPromptSubmit"||r==="PostToolUse"?{continue:!0,suppressOutput:!0}:r==="Stop"?{continue:!0,suppressOutput:!0}:{continue:t,suppressOutput:!0,...e.reason&&!t?{stopReason:e.reason}:{}}}function U(r,t,e={}){let n=et(r,t,e);return JSON.stringify(n)}import{readFileSync as ot,writeFileSync as st,existsSync as it}from"fs";import{join as at}from"path";import{homedir as ct}from"os";var rt=["bugfix","feature","refactor","discovery","decision","change"],nt=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var v=rt.join(","),N=nt.join(",");var m=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:at(ct(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:v,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:N,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!it(t))return this.getAllDefaults();let e=ot(t,"utf-8"),n=JSON.parse(e),o=n;if(n.env&&typeof n.env=="object"){o=n.env;try{st(t,JSON.stringify(o,null,2),"utf-8"),c.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){c.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))o[i]!==void 0&&(s[i]=o[i]);return s}};var A=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(A||{}),M=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=m.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=A[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let n=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&n.command){let o=n.command.length>50?n.command.substring(0,50)+"...":n.command;return`${t}(${o})`}if(t==="Read"&&n.file_path){let o=n.file_path.split("/").pop()||n.file_path;return`${t}(${o})`}if(t==="Edit"&&n.file_path){let o=n.file_path.split("/").pop()||n.file_path;return`${t}(${o})`}if(t==="Write"&&n.file_path){let o=n.file_path.split("/").pop()||n.file_path;return`${t}(${o})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),p=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${n}-${o} ${s}:${i}:${a}.${p}`}log(t,e,n,o,s){if(t0&&(w=` {${Object.entries(P).map(([Z,tt])=>`${Z}=${tt}`).join(", ")}}`)}let k=`[${i}] [${a}] [${p}] ${l}${n}${w}${u}`;t===3?console.error(k):console.log(k)}debug(t,e,n,o){this.log(0,t,e,n,o)}info(t,e,n,o){this.log(1,t,e,n,o)}warn(t,e,n,o){this.log(2,t,e,n,o)}error(t,e,n,o){this.log(3,t,e,n,o)}dataIn(t,e,n,o){this.info(t,`\u2192 ${e}`,n,o)}dataOut(t,e,n,o){this.info(t,`\u2190 ${e}`,n,o)}success(t,e,n,o){this.info(t,`\u2713 ${e}`,n,o)}failure(t,e,n,o){this.error(t,`\u2717 ${e}`,n,o)}timing(t,e,n,o){this.info(t,`\u23F1 ${e}`,o,{duration:`${n}ms`})}},c=new M;import C from"path";import{homedir as Dt}from"os";import{spawnSync as Lt}from"child_process";import{existsSync as Rt,writeFileSync as j,readFileSync as bt,mkdirSync as It}from"fs";var S={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function x(r){return process.platform==="win32"?Math.round(r*S.WINDOWS_MULTIPLIER):r}import{existsSync as L,readFileSync as Et,writeFileSync as _t,unlinkSync as dt,mkdirSync as W}from"fs";import{createWriteStream as St}from"fs";import{join as O}from"path";import{spawn as Tt}from"child_process";import{homedir as Ot}from"os";import{join as f,dirname as ut,basename as ne}from"path";import{homedir as pt}from"os";import{fileURLToPath as lt}from"url";function mt(){return typeof __dirname<"u"?__dirname:ut(lt(import.meta.url))}var ce=mt(),g=m.get("CLAUDE_MEM_DATA_DIR"),y=process.env.CLAUDE_CONFIG_DIR||f(pt(),".claude"),ue=f(g,"archives"),pe=f(g,"logs"),le=f(g,"trash"),me=f(g,"backups"),fe=f(g,"settings.json"),ge=f(g,"claude-mem.db"),Ee=f(g,"vector-db"),_e=f(y,"settings.json"),de=f(y,"commands"),Se=f(y,"CLAUDE.md");import{spawnSync as ft}from"child_process";import{existsSync as gt}from"fs";import{join as $}from"path";import{homedir as H}from"os";function D(){let r=process.platform==="win32";try{if(ft("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:r}).status===0)return"bun"}catch{}let t=r?[$(H(),".bun","bin","bun.exe")]:[$(H(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(gt(e))return e;return null}function F(){return D()!==null}var T=O(g,"worker.pid"),K=O(g,"logs"),B=O(Ot(),".claude","plugins","marketplaces","thedotmack"),ht=5e3,Ct=1e4,At=200,Mt=1e3,yt=100,h=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};W(K,{recursive:!0});let e=O(B,"plugin","scripts","worker-service.cjs");if(!L(e))return{success:!1,error:`Worker script not found at ${e}`};let n=this.getLogFilePath();return this.startWithBun(e,n,t)}static isBunAvailable(){return F()}static async startWithBun(t,e,n){let o=D();if(!o)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=Tt(o,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(n)},cwd:B,...s&&{windowsHide:!0}}),a=St(e,{flags:"a"});return i.stdout?.pipe(a),i.stderr?.pipe(a),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:n,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,n)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=ht){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!L(T))return null;let t=Et(T,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){W(g,{recursive:!0}),_t(T,JSON.stringify(t,null,2))}static removePidFile(){try{L(T)&&dt(T)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,n=Ct){let o=Date.now();for(;Date.now()-osetTimeout(s,At))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let n=Date.now();for(;Date.now()-nsetTimeout(o,yt))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return O(K,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),o=Date.now()-e,s=Math.floor(o/1e3),i=Math.floor(s/60),a=Math.floor(i/60),p=Math.floor(a/24);return p>0?`${p}d ${a%24}h`:a>0?`${a}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function E(r={}){let{port:t,includeSkillFallback:e=!1,customPrefix:n,actualError:o}=r,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",a=s?"Command Prompt or PowerShell":"Terminal",p=n||"Worker service connection failed.",l=t?` (port ${t})`:"",u=`${p}${l} diff --git a/plugin/scripts/user-message-hook.js b/plugin/scripts/user-message-hook.js index d71a5d8a..87ee7ef9 100755 --- a/plugin/scripts/user-message-hook.js +++ b/plugin/scripts/user-message-hook.js @@ -1,5 +1,5 @@ #!/usr/bin/env bun -import{basename as Rt}from"path";import O from"path";import{homedir as Tt}from"os";import{spawnSync as ht}from"child_process";import{existsSync as Ot,writeFileSync as K,readFileSync as Ct,mkdirSync as At}from"fs";import{readFileSync as Q,writeFileSync as z,existsSync as Z}from"fs";import{join as tt}from"path";import{homedir as et}from"os";var J=["bugfix","feature","refactor","discovery","decision","change"],q=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var P=J.join(","),v=q.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:tt(et(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:P,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:v,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!Z(t))return this.getAllDefaults();let e=Q(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{z(t,JSON.stringify(n,null,2),"utf-8"),u.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){u.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var C=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(C||{}),A=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=C[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import{basename as Rt}from"path";import O from"path";import{homedir as Tt}from"os";import{spawnSync as ht}from"child_process";import{existsSync as Ot,writeFileSync as K,readFileSync as Ct,mkdirSync as At}from"fs";import{readFileSync as Q,writeFileSync as z,existsSync as Z}from"fs";import{join as tt}from"path";import{homedir as et}from"os";var J=["bugfix","feature","refactor","discovery","decision","change"],q=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var P=J.join(","),v=q.join(",");var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:tt(et(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:P,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:v,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!Z(t))return this.getAllDefaults();let e=Q(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{z(t,JSON.stringify(n,null,2),"utf-8"),u.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){u.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let s={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(s[i]=n[i]);return s}};var C=(s=>(s[s.DEBUG=0]="DEBUG",s[s.INFO=1]="INFO",s[s.WARN=2]="WARN",s[s.ERROR=3]="ERROR",s[s.SILENT=4]="SILENT",s))(C||{}),A=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=C[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let n=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${n})`}if(t==="Read"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Edit"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Write"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0"),g=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${n} ${s}:${i}:${c}.${g}`}log(t,e,r,n,s){if(t0&&(w=` {${Object.entries(y).map(([X,Y])=>`${X}=${Y}`).join(", ")}}`)}let I=`[${i}] [${c}] [${g}] ${_}${r}${w}${a}`;t===3?console.error(I):console.log(I)}debug(t,e,r,n){this.log(0,t,e,r,n)}info(t,e,r,n){this.log(1,t,e,r,n)}warn(t,e,r,n){this.log(2,t,e,r,n)}error(t,e,r,n){this.log(3,t,e,r,n)}dataIn(t,e,r,n){this.info(t,`\u2192 ${e}`,r,n)}dataOut(t,e,r,n){this.info(t,`\u2190 ${e}`,r,n)}success(t,e,r,n){this.info(t,`\u2713 ${e}`,r,n)}failure(t,e,r,n){this.error(t,`\u2717 ${e}`,r,n)}timing(t,e,r,n){this.info(t,`\u23F1 ${e}`,n,{duration:`${r}ms`})}},u=new A;var M={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5},k={SUCCESS:0,FAILURE:1,USER_MESSAGE_ONLY:3};function U(o){return process.platform==="win32"?Math.round(o*M.WINDOWS_MULTIPLIER):o}import{existsSync as R,readFileSync as ct,writeFileSync as ut,unlinkSync as lt,mkdirSync as W}from"fs";import{createWriteStream as pt}from"fs";import{join as S}from"path";import{spawn as Et}from"child_process";import{homedir as gt}from"os";import{join as p,dirname as rt,basename as Bt}from"path";import{homedir as nt}from"os";import{fileURLToPath as ot}from"url";function st(){return typeof __dirname<"u"?__dirname:rt(ot(import.meta.url))}var Yt=st(),E=l.get("CLAUDE_MEM_DATA_DIR"),D=process.env.CLAUDE_CONFIG_DIR||p(nt(),".claude"),Jt=p(E,"archives"),qt=p(E,"logs"),Qt=p(E,"trash"),zt=p(E,"backups"),Zt=p(E,"settings.json"),te=p(E,"claude-mem.db"),ee=p(E,"vector-db"),re=p(D,"settings.json"),ne=p(D,"commands"),oe=p(D,"CLAUDE.md");import{spawnSync as it}from"child_process";import{existsSync as at}from"fs";import{join as N}from"path";import{homedir as x}from"os";function L(){let o=process.platform==="win32";try{if(it("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:o}).status===0)return"bun"}catch{}let t=o?[N(x(),".bun","bin","bun.exe")]:[N(x(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(at(e))return e;return null}function $(){return L()!==null}var d=S(E,"worker.pid"),F=S(E,"logs"),H=S(gt(),".claude","plugins","marketplaces","thedotmack"),mt=5e3,ft=1e4,_t=200,dt=1e3,St=100,T=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};W(F,{recursive:!0});let e=S(H,"plugin","scripts","worker-service.cjs");if(!R(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return $()}static async startWithBun(t,e,r){let n=L();if(!n)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let s=process.platform==="win32",i=Et(n,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:H,...s&&{windowsHide:!0}}),c=pt(e,{flags:"a"});return i.stdout?.pipe(c),i.stderr?.pipe(c),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(s){return{success:!1,error:s instanceof Error?s.message:String(s)}}}static async stop(t=mt){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!R(d))return null;let t=ct(d,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){W(E,{recursive:!0}),ut(d,JSON.stringify(t,null,2))}static removePidFile(){try{R(d)&<(d)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=ft){let n=Date.now();for(;Date.now()-nsetTimeout(s,_t))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(n,St))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return S(F,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),n=Date.now()-e,s=Math.floor(n/1e3),i=Math.floor(s/60),c=Math.floor(i/60),g=Math.floor(c/24);return g>0?`${g}d ${c%24}h`:c>0?`${c}h ${i%60}m`:i>0?`${i}m ${s%60}s`:`${s}s`}};function h(o={}){let{port:t,includeSkillFallback:e=!1,customPrefix:r,actualError:n}=o,s=process.platform==="win32",i=s?"%USERPROFILE%\\.claude\\plugins\\marketplaces\\thedotmack":"~/.claude/plugins/marketplaces/thedotmack",c=s?"Command Prompt or PowerShell":"Terminal",g=r||"Worker service connection failed.",_=t?` (port ${t})`:"",a=`${g}${_} diff --git a/plugin/scripts/worker-cli.js b/plugin/scripts/worker-cli.js index 1de8cef7..a3e1978a 100755 --- a/plugin/scripts/worker-cli.js +++ b/plugin/scripts/worker-cli.js @@ -1,4 +1,4 @@ #!/usr/bin/env bun -import{existsSync as C,readFileSync as et,writeFileSync as rt,unlinkSync as nt,mkdirSync as k}from"fs";import{createWriteStream as ot}from"fs";import{join as _}from"path";import{spawn as st}from"child_process";import{homedir as it}from"os";import{join as c,dirname as J,basename as bt}from"path";import{homedir as q}from"os";import{fileURLToPath as Q}from"url";import{readFileSync as V,writeFileSync as j,existsSync as G}from"fs";import{join as X}from"path";import{homedir as Y}from"os";var K=["bugfix","feature","refactor","discovery","decision","change"],B=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var R=K.join(","),b=B.join(",");var T=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(T||{}),O=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=T[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} +import{existsSync as C,readFileSync as et,writeFileSync as rt,unlinkSync as nt,mkdirSync as v}from"fs";import{createWriteStream as ot}from"fs";import{join as _}from"path";import{spawn as st}from"child_process";import{homedir as it}from"os";import{join as c,dirname as J,basename as bt}from"path";import{homedir as q}from"os";import{fileURLToPath as Q}from"url";import{readFileSync as V,writeFileSync as j,existsSync as G}from"fs";import{join as X}from"path";import{homedir as Y}from"os";var K=["bugfix","feature","refactor","discovery","decision","change"],B=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];var R=K.join(","),b=B.join(",");var T=(o=>(o[o.DEBUG=0]="DEBUG",o[o.INFO=1]="INFO",o[o.WARN=2]="WARN",o[o.ERROR=3]="ERROR",o[o.SILENT=4]="SILENT",o))(T||{}),O=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let t=l.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=T[t]??1}return this.level}correlationId(t,e){return`obs-${t}-${e}`}sessionId(t){return`session-${t}`}formatData(t){if(t==null)return"";if(typeof t=="string")return t;if(typeof t=="number"||typeof t=="boolean")return t.toString();if(typeof t=="object"){if(t instanceof Error)return this.getLevel()===0?`${t.message} ${t.stack}`:t.message;if(Array.isArray(t))return`[${t.length} items]`;let e=Object.keys(t);return e.length===0?"{}":e.length<=3?JSON.stringify(t):`{${e.length} keys: ${e.slice(0,3).join(", ")}...}`}return String(t)}formatTool(t,e){if(!e)return t;try{let r=typeof e=="string"?JSON.parse(e):e;if(t==="Bash"&&r.command){let n=r.command.length>50?r.command.substring(0,50)+"...":r.command;return`${t}(${n})`}if(t==="Read"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Edit"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}if(t==="Write"&&r.file_path){let n=r.file_path.split("/").pop()||r.file_path;return`${t}(${n})`}return t}catch{return t}}formatTimestamp(t){let e=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),n=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0"),g=String(t.getMilliseconds()).padStart(3,"0");return`${e}-${r}-${n} ${o}:${i}:${a}.${g}`}log(t,e,r,n,o){if(t0&&(D=` {${Object.entries(I).map(([F,H])=>`${F}=${H}`).join(", ")}}`)}let L=`[${i}] [${a}] [${g}] ${S}${r}${D}${d}`;t===3?console.error(L):console.log(L)}debug(t,e,r,n){this.log(0,t,e,r,n)}info(t,e,r,n){this.log(1,t,e,r,n)}warn(t,e,r,n){this.log(2,t,e,r,n)}error(t,e,r,n){this.log(3,t,e,r,n)}dataIn(t,e,r,n){this.info(t,`\u2192 ${e}`,r,n)}dataOut(t,e,r,n){this.info(t,`\u2190 ${e}`,r,n)}success(t,e,r,n){this.info(t,`\u2713 ${e}`,r,n)}failure(t,e,r,n){this.error(t,`\u2717 ${e}`,r,n)}timing(t,e,r,n){this.info(t,`\u23F1 ${e}`,n,{duration:`${r}ms`})}},f=new O;var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:X(Y(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:R,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:b,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!G(t))return this.getAllDefaults();let e=V(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{j(t,JSON.stringify(n,null,2),"utf-8"),f.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){f.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return o}};function z(){return typeof __dirname<"u"?__dirname:J(Q(import.meta.url))}var vt=z(),u=l.get("CLAUDE_MEM_DATA_DIR"),h=process.env.CLAUDE_CONFIG_DIR||c(q(),".claude"),Ut=c(u,"archives"),Nt=c(u,"logs"),xt=c(u,"trash"),$t=c(u,"backups"),Wt=c(u,"settings.json"),Ft=c(u,"claude-mem.db"),Ht=c(u,"vector-db"),Kt=c(h,"settings.json"),Bt=c(h,"commands"),Vt=c(h,"CLAUDE.md");import{spawnSync as Z}from"child_process";import{existsSync as tt}from"fs";import{join as w}from"path";import{homedir as P}from"os";function A(){let s=process.platform==="win32";try{if(Z("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:s}).status===0)return"bun"}catch{}let t=s?[w(P(),".bun","bin","bun.exe")]:[w(P(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(tt(e))return e;return null}function y(){return A()!==null}var m=_(u,"worker.pid"),v=_(u,"logs"),U=_(it(),".claude","plugins","marketplaces","thedotmack"),at=5e3,ct=1e4,ut=200,lt=1e3,pt=100,p=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};k(v,{recursive:!0});let e=_(U,"plugin","scripts","worker-service.cjs");if(!C(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return y()}static async startWithBun(t,e,r){let n=A();if(!n)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let o=process.platform==="win32",i=st(n,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:U,...o&&{windowsHide:!0}}),a=ot(e,{flags:"a"});return i.stdout?.pipe(a),i.stderr?.pipe(a),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(o){return{success:!1,error:o instanceof Error?o.message:String(o)}}}static async stop(t=at){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!C(m))return null;let t=et(m,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){k(u,{recursive:!0}),rt(m,JSON.stringify(t,null,2))}static removePidFile(){try{C(m)&&nt(m)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=ct){let n=Date.now();for(;Date.now()-nsetTimeout(o,ut))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(n,pt))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return _(v,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),n=Date.now()-e,o=Math.floor(n/1e3),i=Math.floor(o/60),a=Math.floor(i/60),g=Math.floor(a/24);return g>0?`${g}d ${a%24}h`:a>0?`${a}h ${i%60}m`:i>0?`${i}m ${o%60}s`:`${o}s`}};import x from"path";import{homedir as gt}from"os";var M={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function N(s){return process.platform==="win32"?Math.round(s*M.WINDOWS_MULTIPLIER):s}var me=x.join(gt(),".claude","plugins","marketplaces","thedotmack"),_e=N(M.HEALTH_CHECK),E=null;function $(){if(E!==null)return E;try{let s=x.join(l.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=l.loadFromFile(s);return E=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),E}catch(s){return f.debug("SYSTEM","Failed to load port from settings, using default",{error:s}),E=parseInt(l.get("CLAUDE_MEM_WORKER_PORT"),10),E}}var Et=process.argv[2],W=$();async function ft(){switch(Et){case"start":{let s=await p.start(W);if(s.success){console.log(`Worker started (PID: ${s.pid})`);let t=new Date().toISOString().slice(0,10);console.log(`Logs: ~/.claude-mem/logs/worker-${t}.log`),process.exit(0)}else console.error(`Failed to start: ${s.error}`),process.exit(1);break}case"stop":await p.stop(),console.log("Worker stopped"),process.exit(0);case"restart":{let s=await p.restart(W);s.success?(console.log(`Worker restarted (PID: ${s.pid})`),process.exit(0)):(console.error(`Failed to restart: ${s.error}`),process.exit(1));break}case"status":{let s=await p.status();s.running?(console.log("Worker is running"),console.log(` PID: ${s.pid}`),console.log(` Port: ${s.port}`),console.log(` Uptime: ${s.uptime}`)):console.log("Worker is not running"),process.exit(0)}default:console.log("Usage: worker-cli.js "),process.exit(1)}}ft().catch(s=>{console.error(s),process.exit(1)}); +`+JSON.stringify(o,null,2):d=" "+this.formatData(o));let D="";if(n){let{sessionId:mt,sdkSessionId:_t,correlationId:St,...I}=n;Object.keys(I).length>0&&(D=` {${Object.entries(I).map(([F,H])=>`${F}=${H}`).join(", ")}}`)}let L=`[${i}] [${a}] [${g}] ${S}${r}${D}${d}`;t===3?console.error(L):console.log(L)}debug(t,e,r,n){this.log(0,t,e,r,n)}info(t,e,r,n){this.log(1,t,e,r,n)}warn(t,e,r,n){this.log(2,t,e,r,n)}error(t,e,r,n){this.log(3,t,e,r,n)}dataIn(t,e,r,n){this.info(t,`\u2192 ${e}`,r,n)}dataOut(t,e,r,n){this.info(t,`\u2190 ${e}`,r,n)}success(t,e,r,n){this.info(t,`\u2713 ${e}`,r,n)}failure(t,e,r,n){this.error(t,`\u2717 ${e}`,r,n)}timing(t,e,r,n){this.info(t,`\u23F1 ${e}`,n,{duration:`${r}ms`})}},f=new O;var l=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:X(Y(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:R,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:b,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(t){return this.DEFAULTS[t]}static getInt(t){let e=this.get(t);return parseInt(e,10)}static getBool(t){return this.get(t)==="true"}static loadFromFile(t){if(!G(t))return this.getAllDefaults();let e=V(t,"utf-8"),r=JSON.parse(e),n=r;if(r.env&&typeof r.env=="object"){n=r.env;try{j(t,JSON.stringify(n,null,2),"utf-8"),f.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:t})}catch(i){f.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:t},i)}}let o={...this.DEFAULTS};for(let i of Object.keys(this.DEFAULTS))n[i]!==void 0&&(o[i]=n[i]);return o}};function z(){return typeof __dirname<"u"?__dirname:J(Q(import.meta.url))}var kt=z(),u=l.get("CLAUDE_MEM_DATA_DIR"),h=process.env.CLAUDE_CONFIG_DIR||c(q(),".claude"),Ut=c(u,"archives"),Nt=c(u,"logs"),xt=c(u,"trash"),$t=c(u,"backups"),Wt=c(u,"settings.json"),Ft=c(u,"claude-mem.db"),Ht=c(u,"vector-db"),Kt=c(h,"settings.json"),Bt=c(h,"commands"),Vt=c(h,"CLAUDE.md");import{spawnSync as Z}from"child_process";import{existsSync as tt}from"fs";import{join as w}from"path";import{homedir as P}from"os";function A(){let s=process.platform==="win32";try{if(Z("bun",["--version"],{encoding:"utf-8",stdio:["pipe","pipe","pipe"],shell:s}).status===0)return"bun"}catch{}let t=s?[w(P(),".bun","bin","bun.exe")]:[w(P(),".bun","bin","bun"),"/usr/local/bin/bun","/opt/homebrew/bin/bun","/home/linuxbrew/.linuxbrew/bin/bun"];for(let e of t)if(tt(e))return e;return null}function y(){return A()!==null}var m=_(u,"worker.pid"),k=_(u,"logs"),U=_(it(),".claude","plugins","marketplaces","thedotmack"),at=5e3,ct=1e4,ut=200,lt=1e3,pt=100,p=class{static async start(t){if(isNaN(t)||t<1024||t>65535)return{success:!1,error:`Invalid port ${t}. Must be between 1024 and 65535`};if(await this.isRunning())return{success:!0,pid:this.getPidInfo()?.pid};v(k,{recursive:!0});let e=_(U,"plugin","scripts","worker-service.cjs");if(!C(e))return{success:!1,error:`Worker script not found at ${e}`};let r=this.getLogFilePath();return this.startWithBun(e,r,t)}static isBunAvailable(){return y()}static async startWithBun(t,e,r){let n=A();if(!n)return{success:!1,error:"Bun is required but not found in PATH or common installation paths. Install from https://bun.sh"};try{let o=process.platform==="win32",i=st(n,[t],{detached:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,CLAUDE_MEM_WORKER_PORT:String(r)},cwd:U,...o&&{windowsHide:!0}}),a=ot(e,{flags:"a"});return i.stdout?.pipe(a),i.stderr?.pipe(a),i.unref(),i.pid?(this.writePidFile({pid:i.pid,port:r,startedAt:new Date().toISOString(),version:process.env.npm_package_version||"unknown"}),this.waitForHealth(i.pid,r)):{success:!1,error:"Failed to get PID from spawned process"}}catch(o){return{success:!1,error:o instanceof Error?o.message:String(o)}}}static async stop(t=at){let e=this.getPidInfo();if(!e)return!0;try{process.kill(e.pid,"SIGTERM"),await this.waitForExit(e.pid,t)}catch{try{process.kill(e.pid,"SIGKILL")}catch{}}return this.removePidFile(),!0}static async restart(t){return await this.stop(),this.start(t)}static async status(){let t=this.getPidInfo();if(!t)return{running:!1};let e=this.isProcessAlive(t.pid);return{running:e,pid:e?t.pid:void 0,port:e?t.port:void 0,uptime:e?this.formatUptime(t.startedAt):void 0}}static async isRunning(){let t=this.getPidInfo();if(!t)return!1;let e=this.isProcessAlive(t.pid);return e||this.removePidFile(),e}static getPidInfo(){try{if(!C(m))return null;let t=et(m,"utf-8"),e=JSON.parse(t);return typeof e.pid!="number"||typeof e.port!="number"?null:e}catch{return null}}static writePidFile(t){v(u,{recursive:!0}),rt(m,JSON.stringify(t,null,2))}static removePidFile(){try{C(m)&&nt(m)}catch{}}static isProcessAlive(t){try{return process.kill(t,0),!0}catch{return!1}}static async waitForHealth(t,e,r=ct){let n=Date.now();for(;Date.now()-nsetTimeout(o,ut))}return{success:!1,error:"Health check timed out"}}static async waitForExit(t,e){let r=Date.now();for(;Date.now()-rsetTimeout(n,pt))}throw new Error("Process did not exit within timeout")}static getLogFilePath(){let t=new Date().toISOString().slice(0,10);return _(k,`worker-${t}.log`)}static formatUptime(t){let e=new Date(t).getTime(),n=Date.now()-e,o=Math.floor(n/1e3),i=Math.floor(o/60),a=Math.floor(i/60),g=Math.floor(a/24);return g>0?`${g}d ${a%24}h`:a>0?`${a}h ${i%60}m`:i>0?`${i}m ${o%60}s`:`${o}s`}};import x from"path";import{homedir as gt}from"os";var M={DEFAULT:5e3,HEALTH_CHECK:1e3,WORKER_STARTUP_WAIT:1e3,WORKER_STARTUP_RETRIES:15,WINDOWS_MULTIPLIER:1.5};function N(s){return process.platform==="win32"?Math.round(s*M.WINDOWS_MULTIPLIER):s}var me=x.join(gt(),".claude","plugins","marketplaces","thedotmack"),_e=N(M.HEALTH_CHECK),E=null;function $(){if(E!==null)return E;try{let s=x.join(l.get("CLAUDE_MEM_DATA_DIR"),"settings.json"),t=l.loadFromFile(s);return E=parseInt(t.CLAUDE_MEM_WORKER_PORT,10),E}catch(s){return f.debug("SYSTEM","Failed to load port from settings, using default",{error:s}),E=parseInt(l.get("CLAUDE_MEM_WORKER_PORT"),10),E}}var Et=process.argv[2],W=$();async function ft(){switch(Et){case"start":{let s=await p.start(W);if(s.success){console.log(`Worker started (PID: ${s.pid})`);let t=new Date().toISOString().slice(0,10);console.log(`Logs: ~/.claude-mem/logs/worker-${t}.log`),process.exit(0)}else console.error(`Failed to start: ${s.error}`),process.exit(1);break}case"stop":await p.stop(),console.log("Worker stopped"),process.exit(0);case"restart":{let s=await p.restart(W);s.success?(console.log(`Worker restarted (PID: ${s.pid})`),process.exit(0)):(console.error(`Failed to restart: ${s.error}`),process.exit(1));break}case"status":{let s=await p.status();s.running?(console.log("Worker is running"),console.log(` PID: ${s.pid}`),console.log(` Port: ${s.port}`),console.log(` Uptime: ${s.uptime}`)):console.log("Worker is not running"),process.exit(0)}default:console.log("Usage: worker-cli.js "),process.exit(1)}}ft().catch(s=>{console.error(s),process.exit(1)}); diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index c8ee0a4e..c17fa4a5 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -49,7 +49,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
`+e+`
-`}function _D(){return function(){this.error(404)}}function SD(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=sd.original(this.req);r.path=null,r.pathname=bD(r.pathname+"/");var t=mD(gD.format(r)),s=xD("Redirecting","Redirecting to "+hD(t));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",t),e.end(s)}}});var Lx=U((Ut,Mx)=>{"use strict";var _c=iy(),ED=require("events").EventEmitter,Dx=cy(),Nx=Hb(),wD=Op(),TD=kp(),jx=mx(),$x=kx();Ut=Mx.exports=RD;function RD(){var a=function(e,r,t){a.handle(e,r,t)};return Dx(a,ED.prototype,!1),Dx(a,Nx,!1),a.request=Object.create(jx,{app:{configurable:!0,enumerable:!0,writable:!0,value:a}}),a.response=Object.create($x,{app:{configurable:!0,enumerable:!0,writable:!0,value:a}}),a.init(),a}Ut.application=Nx;Ut.request=jx;Ut.response=$x;Ut.Route=wD;Ut.Router=TD;Ut.json=_c.json;Ut.query=Ap();Ut.raw=_c.raw;Ut.static=Ix();Ut.text=_c.text;Ut.urlencoded=_c.urlencoded;var PD=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];PD.forEach(function(a){Object.defineProperty(Ut,a,{get:function(){throw new Error("Most middleware (like "+a+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var id=U((XF,qx)=>{"use strict";qx.exports=Lx()});var g0=U(($c,v0)=>{(function(a,e){typeof $c=="object"&&typeof v0<"u"?e($c):typeof define=="function"&&define.amd?define(["exports"],e):e(a.URI=a.URI||{})})($c,(function(a){"use strict";function e(){for(var M=arguments.length,I=Array(M),_=0;_1){I[0]=I[0].slice(0,-1);for(var x=I.length-1,T=1;T= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=d-v,$=Math.floor,D=String.fromCharCode;function C(M){throw new RangeError(N[M])}function O(M,I){for(var _=[],x=M.length;x--;)_[x]=I(M[x]);return _}function j(M,I){var _=M.split("@"),x="";_.length>1&&(x=_[0]+"@",M=_[1]),M=M.replace(k,".");var T=M.split("."),L=O(T,I).join(".");return x+L}function q(M){for(var I=[],_=0,x=M.length;_=55296&&T<=56319&&_>1,I+=$(I/_);I>A*h>>1;T+=d)I=$(I/A);return $(T+(A+1)*I/(I+f))},K=function(I){var _=[],x=I.length,T=0,L=b,B=g,J=I.lastIndexOf(w);J<0&&(J=0);for(var ue=0;ue=128&&C("not-basic"),_.push(I.charCodeAt(ue));for(var xe=J>0?J+1:0;xe=x&&C("invalid-input");var Ae=V(I.charCodeAt(xe++));(Ae>=d||Ae>$((m-T)/je))&&C("overflow"),T+=Ae*je;var Se=ye<=B?v:ye>=B+h?h:ye-B;if(Ae$(m/Ie)&&C("overflow"),je*=Ie}var he=_.length+1;B=Z(T-me,he,me==0),$(T/he)>m-L&&C("overflow"),L+=$(T/he),T%=he,_.splice(T++,0,L)}return String.fromCodePoint.apply(String,_)},se=function(I){var _=[];I=q(I);var x=I.length,T=b,L=0,B=g,J=!0,ue=!1,xe=void 0;try{for(var me=I[Symbol.iterator](),je;!(J=(je=me.next()).done);J=!0){var ye=je.value;ye<128&&_.push(D(ye))}}catch(Mt){ue=!0,xe=Mt}finally{try{!J&&me.return&&me.return()}finally{if(ue)throw xe}}var Ae=_.length,Se=Ae;for(Ae&&_.push(w);Se=T&&nt$((m-L)/He)&&C("overflow"),L+=(Ie-T)*He,T=Ie;var ot=!0,ht=!1,vt=void 0;try{for(var Zt=I[Symbol.iterator](),$t;!(ot=($t=Zt.next()).done);ot=!0){var Nr=$t.value;if(Nrm&&C("overflow"),Nr==T){for(var Er=L,wr=d;;wr+=d){var Ot=wr<=B?v:wr>=B+h?h:wr-B;if(Er>6|192).toString(16).toUpperCase()+"%"+(I&63|128).toString(16).toUpperCase():_="%"+(I>>12|224).toString(16).toUpperCase()+"%"+(I>>6&63|128).toString(16).toUpperCase()+"%"+(I&63|128).toString(16).toUpperCase(),_}function De(M){for(var I="",_=0,x=M.length;_=194&&T<224){if(x-_>=6){var L=parseInt(M.substr(_+4,2),16);I+=String.fromCharCode((T&31)<<6|L&63)}else I+=M.substr(_,6);_+=6}else if(T>=224){if(x-_>=9){var B=parseInt(M.substr(_+4,2),16),J=parseInt(M.substr(_+7,2),16);I+=String.fromCharCode((T&15)<<12|(B&63)<<6|J&63)}else I+=M.substr(_,9);_+=9}else I+=M.substr(_,3),_+=3}return I}function H(M,I){function _(x){var T=De(x);return T.match(I.UNRESERVED)?T:x}return M.scheme&&(M.scheme=String(M.scheme).replace(I.PCT_ENCODED,_).toLowerCase().replace(I.NOT_SCHEME,"")),M.userinfo!==void 0&&(M.userinfo=String(M.userinfo).replace(I.PCT_ENCODED,_).replace(I.NOT_USERINFO,we).replace(I.PCT_ENCODED,s)),M.host!==void 0&&(M.host=String(M.host).replace(I.PCT_ENCODED,_).toLowerCase().replace(I.NOT_HOST,we).replace(I.PCT_ENCODED,s)),M.path!==void 0&&(M.path=String(M.path).replace(I.PCT_ENCODED,_).replace(M.scheme?I.NOT_PATH:I.NOT_PATH_NOSCHEME,we).replace(I.PCT_ENCODED,s)),M.query!==void 0&&(M.query=String(M.query).replace(I.PCT_ENCODED,_).replace(I.NOT_QUERY,we).replace(I.PCT_ENCODED,s)),M.fragment!==void 0&&(M.fragment=String(M.fragment).replace(I.PCT_ENCODED,_).replace(I.NOT_FRAGMENT,we).replace(I.PCT_ENCODED,s)),M}function W(M){return M.replace(/^0*(.*)/,"$1")||"0"}function te(M,I){var _=M.match(I.IPV4ADDRESS)||[],x=u(_,2),T=x[1];return T?T.split(".").map(W).join("."):M}function le(M,I){var _=M.match(I.IPV6ADDRESS)||[],x=u(_,3),T=x[1],L=x[2];if(T){for(var B=T.toLowerCase().split("::").reverse(),J=u(B,2),ue=J[0],xe=J[1],me=xe?xe.split(":").map(W):[],je=ue.split(":").map(W),ye=I.IPV4ADDRESS.test(je[je.length-1]),Ae=ye?7:8,Se=je.length-Ae,Ie=Array(Ae),he=0;he1){var Ue=Ie.slice(0,Le.index),nt=Ie.slice(Le.index+Le.length);mt=Ue.join(":")+"::"+nt.join(":")}else mt=Ie.join(":");return L&&(mt+="%"+L),mt}else return M}var G=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Q="".match(/(){0}/)[1]===void 0;function ne(M){var I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_={},x=I.iri!==!1?c:l;I.reference==="suffix"&&(M=(I.scheme?I.scheme+":":"")+"//"+M);var T=M.match(G);if(T){Q?(_.scheme=T[1],_.userinfo=T[3],_.host=T[4],_.port=parseInt(T[5],10),_.path=T[6]||"",_.query=T[7],_.fragment=T[8],isNaN(_.port)&&(_.port=T[5])):(_.scheme=T[1]||void 0,_.userinfo=M.indexOf("@")!==-1?T[3]:void 0,_.host=M.indexOf("//")!==-1?T[4]:void 0,_.port=parseInt(T[5],10),_.path=T[6]||"",_.query=M.indexOf("?")!==-1?T[7]:void 0,_.fragment=M.indexOf("#")!==-1?T[8]:void 0,isNaN(_.port)&&(_.port=M.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?T[4]:void 0)),_.host&&(_.host=le(te(_.host,x),x)),_.scheme===void 0&&_.userinfo===void 0&&_.host===void 0&&_.port===void 0&&!_.path&&_.query===void 0?_.reference="same-document":_.scheme===void 0?_.reference="relative":_.fragment===void 0?_.reference="absolute":_.reference="uri",I.reference&&I.reference!=="suffix"&&I.reference!==_.reference&&(_.error=_.error||"URI is not a "+I.reference+" reference.");var L=Ee[(I.scheme||_.scheme||"").toLowerCase()];if(!I.unicodeSupport&&(!L||!L.unicodeSupport)){if(_.host&&(I.domainHost||L&&L.domainHost))try{_.host=fe.toASCII(_.host.replace(x.PCT_ENCODED,De).toLowerCase())}catch(B){_.error=_.error||"Host's domain name can not be converted to ASCII via punycode: "+B}H(_,l)}else H(_,x);L&&L.parse&&L.parse(_,I)}else _.error=_.error||"URI can not be parsed.";return _}function Te(M,I){var _=I.iri!==!1?c:l,x=[];return M.userinfo!==void 0&&(x.push(M.userinfo),x.push("@")),M.host!==void 0&&x.push(le(te(String(M.host),_),_).replace(_.IPV6ADDRESS,function(T,L,B){return"["+L+(B?"%25"+B:"")+"]"})),(typeof M.port=="number"||typeof M.port=="string")&&(x.push(":"),x.push(String(M.port))),x.length?x.join(""):void 0}var ce=/^\.\.?\//,$e=/^\/\.(\/|$)/,ze=/^\/\.\.(\/|$)/,_e=/^\/?(?:.|\n)*?(?=\/|$)/;function et(M){for(var I=[];M.length;)if(M.match(ce))M=M.replace(ce,"");else if(M.match($e))M=M.replace($e,"/");else if(M.match(ze))M=M.replace(ze,"/"),I.pop();else if(M==="."||M==="..")M="";else{var _=M.match(_e);if(_){var x=_[0];M=M.slice(x.length),I.push(x)}else throw new Error("Unexpected dot segment condition")}return I.join("")}function Ve(M){var I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=I.iri?c:l,x=[],T=Ee[(I.scheme||M.scheme||"").toLowerCase()];if(T&&T.serialize&&T.serialize(M,I),M.host&&!_.IPV6ADDRESS.test(M.host)){if(I.domainHost||T&&T.domainHost)try{M.host=I.iri?fe.toUnicode(M.host):fe.toASCII(M.host.replace(_.PCT_ENCODED,De).toLowerCase())}catch(J){M.error=M.error||"Host's domain name can not be converted to "+(I.iri?"Unicode":"ASCII")+" via punycode: "+J}}H(M,_),I.reference!=="suffix"&&M.scheme&&(x.push(M.scheme),x.push(":"));var L=Te(M,I);if(L!==void 0&&(I.reference!=="suffix"&&x.push("//"),x.push(L),M.path&&M.path.charAt(0)!=="/"&&x.push("/")),M.path!==void 0){var B=M.path;!I.absolutePath&&(!T||!T.absolutePath)&&(B=et(B)),L===void 0&&(B=B.replace(/^\/\//,"/%2F")),x.push(B)}return M.query!==void 0&&(x.push("?"),x.push(M.query)),M.fragment!==void 0&&(x.push("#"),x.push(M.fragment)),x.join("")}function Qe(M,I){var _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},x=arguments[3],T={};return x||(M=ne(Ve(M,_),_),I=ne(Ve(I,_),_)),_=_||{},!_.tolerant&&I.scheme?(T.scheme=I.scheme,T.userinfo=I.userinfo,T.host=I.host,T.port=I.port,T.path=et(I.path||""),T.query=I.query):(I.userinfo!==void 0||I.host!==void 0||I.port!==void 0?(T.userinfo=I.userinfo,T.host=I.host,T.port=I.port,T.path=et(I.path||""),T.query=I.query):(I.path?(I.path.charAt(0)==="/"?T.path=et(I.path):((M.userinfo!==void 0||M.host!==void 0||M.port!==void 0)&&!M.path?T.path="/"+I.path:M.path?T.path=M.path.slice(0,M.path.lastIndexOf("/")+1)+I.path:T.path=I.path,T.path=et(T.path)),T.query=I.query):(T.path=M.path,I.query!==void 0?T.query=I.query:T.query=M.query),T.userinfo=M.userinfo,T.host=M.host,T.port=M.port),T.scheme=M.scheme),T.fragment=I.fragment,T}function Ze(M,I,_){var x=n({scheme:"null"},_);return Ve(Qe(ne(M,x),ne(I,x),x,!0),x)}function Xe(M,I){return typeof M=="string"?M=Ve(ne(M,I),I):t(M)==="object"&&(M=ne(Ve(M,I),I)),M}function Et(M,I,_){return typeof M=="string"?M=Ve(ne(M,_),_):t(M)==="object"&&(M=Ve(M,_)),typeof I=="string"?I=Ve(ne(I,_),_):t(I)==="object"&&(I=Ve(I,_)),M===I}function wt(M,I){return M&&M.toString().replace(!I||!I.iri?l.ESCAPE:c.ESCAPE,we)}function Pt(M,I){return M&&M.toString().replace(!I||!I.iri?l.PCT_ENCODED:c.PCT_ENCODED,De)}var Qr={scheme:"http",domainHost:!0,parse:function(I,_){return I.host||(I.error=I.error||"HTTP URIs must have a host."),I},serialize:function(I,_){var x=String(I.scheme).toLowerCase()==="https";return(I.port===(x?443:80)||I.port==="")&&(I.port=void 0),I.path||(I.path="/"),I}},jt={scheme:"https",domainHost:Qr.domainHost,parse:Qr.parse,serialize:Qr.serialize};function ma(M){return typeof M.secure=="boolean"?M.secure:String(M.scheme).toLowerCase()==="wss"}var ha={scheme:"ws",domainHost:!0,parse:function(I,_){var x=I;return x.secure=ma(x),x.resourceName=(x.path||"/")+(x.query?"?"+x.query:""),x.path=void 0,x.query=void 0,x},serialize:function(I,_){if((I.port===(ma(I)?443:80)||I.port==="")&&(I.port=void 0),typeof I.secure=="boolean"&&(I.scheme=I.secure?"wss":"ws",I.secure=void 0),I.resourceName){var x=I.resourceName.split("?"),T=u(x,2),L=T[0],B=T[1];I.path=L&&L!=="/"?L:void 0,I.query=B,I.resourceName=void 0}return I.fragment=void 0,I}},ti={scheme:"wss",domainHost:ha.domainHost,parse:ha.parse,serialize:ha.serialize},Fa={},co=!0,lo="[A-Za-z0-9\\-\\.\\_\\~"+(co?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",rr="[0-9A-Fa-f]",uo=r(r("%[EFef]"+rr+"%"+rr+rr+"%"+rr+rr)+"|"+r("%[89A-Fa-f]"+rr+"%"+rr+rr)+"|"+r("%"+rr+rr)),ar="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Xl="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Ql=e(Xl,'[\\"\\\\]'),Yl="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Jl=new RegExp(lo,"g"),va=new RegExp(uo,"g"),eu=new RegExp(e("[^]",ar,"[\\.]",'[\\"]',Ql),"g"),Yr=new RegExp(e("[^]",lo,Yl),"g"),tu=Yr;function Ws(M){var I=De(M);return I.match(Jl)?I:M}var po={scheme:"mailto",parse:function(I,_){var x=I,T=x.to=x.path?x.path.split(","):[];if(x.path=void 0,x.query){for(var L=!1,B={},J=x.query.split("&"),ue=0,xe=J.length;ue{"use strict";y0.exports=function a(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var t,s,i;if(Array.isArray(e)){if(t=e.length,t!=r.length)return!1;for(s=t;s--!==0;)if(!a(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),t=i.length,t!==Object.keys(r).length)return!1;for(s=t;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=t;s--!==0;){var n=i[s];if(!a(e[n],r[n]))return!1}return!0}return e!==e&&r!==r}});var x0=U((j3,b0)=>{"use strict";b0.exports=function(e){for(var r=0,t=e.length,s=0,i;s=55296&&i<=56319&&s{"use strict";E0.exports={copy:N2,checkDataType:wd,checkDataTypes:j2,coerceToTypes:$2,toHash:Rd,getProperty:Pd,escapeQuotes:Od,equal:Mc(),ucs2length:x0(),varOccurences:q2,varReplace:F2,schemaHasRules:U2,schemaHasRulesExcept:H2,schemaUnknownRules:B2,toQuotedString:Td,getPathExpr:z2,getPath:V2,getData:Z2,unescapeFragment:K2,unescapeJsonPointer:kd,escapeFragment:X2,escapeJsonPointer:Cd};function N2(a,e){e=e||{};for(var r in a)e[r]=a[r];return e}function wd(a,e,r,t){var s=t?" !== ":" === ",i=t?" || ":" && ",n=t?"!":"",o=t?"":"!";switch(a){case"null":return e+s+"null";case"array":return n+"Array.isArray("+e+")";case"object":return"("+n+e+i+"typeof "+e+s+'"object"'+i+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+s+'"number"'+i+o+"("+e+" % 1)"+i+e+s+e+(r?i+n+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+s+'"'+a+'"'+(r?i+n+"isFinite("+e+")":"")+")";default:return"typeof "+e+s+'"'+a+'"'}}function j2(a,e,r){switch(a.length){case 1:return wd(a[0],e,r,!0);default:var t="",s=Rd(a);s.array&&s.object&&(t=s.null?"(":"(!"+e+" || ",t+="typeof "+e+' !== "object")',delete s.null,delete s.array,delete s.object),s.number&&delete s.integer;for(var i in s)t+=(t?" && ":"")+wd(i,e,r,!0);return t}}var _0=Rd(["string","number","integer","boolean","null"]);function $2(a,e){if(Array.isArray(e)){for(var r=[],t=0;t=e)throw new Error("Cannot access property/index "+t+" levels up, current level is "+e);return r[e-t]}if(t>e)throw new Error("Cannot access data "+t+" levels up, current level is "+e);if(i="data"+(e-t||""),!s)return i}for(var o=i,l=s.split("/"),c=0;c{"use strict";var Q2=_s();w0.exports=Y2;function Y2(a){Q2.copy(a,this)}});var R0=U((L3,T0)=>{"use strict";var Da=T0.exports=function(a,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var t=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};Lc(e,t,s,a,"",a)};Da.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Da.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Da.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Da.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Lc(a,e,r,t,s,i,n,o,l,c){if(t&&typeof t=="object"&&!Array.isArray(t)){e(t,s,i,n,o,l,c);for(var u in t){var p=t[u];if(Array.isArray(p)){if(u in Da.arrayKeywords)for(var m=0;m{"use strict";var Gi=g0(),P0=Mc(),Hc=_s(),qc=Ad(),ej=R0();k0.exports=ja;ja.normalizeId=Na;ja.fullPath=Fc;ja.url=Uc;ja.ids=nj;ja.inlineRef=Id;ja.schema=Bc;function ja(a,e,r){var t=this._refs[r];if(typeof t=="string")if(this._refs[t])t=this._refs[t];else return ja.call(this,a,e,t);if(t=t||this._schemas[r],t instanceof qc)return Id(t.schema,this._opts.inlineRefs)?t.schema:t.validate||this._compile(t);var s=Bc.call(this,e,r),i,n,o;return s&&(i=s.schema,e=s.root,o=s.baseId),i instanceof qc?n=i.validate||a.call(this,i.schema,e,void 0,o):i!==void 0&&(n=Id(i,this._opts.inlineRefs)?i:a.call(this,i,e,void 0,o)),n}function Bc(a,e){var r=Gi.parse(e),t=C0(r),s=Fc(this._getId(a.schema));if(Object.keys(a.schema).length===0||t!==s){var i=Na(t),n=this._refs[i];if(typeof n=="string")return tj.call(this,a,n,r);if(n instanceof qc)n.validate||this._compile(n),a=n;else if(n=this._schemas[i],n instanceof qc){if(n.validate||this._compile(n),i==Na(e))return{schema:n,root:a,baseId:s};a=n}else return;if(!a.schema)return;s=Fc(this._getId(a.schema))}return O0.call(this,r,s,a.schema,a)}function tj(a,e,r){var t=Bc.call(this,a,e);if(t){var s=t.schema,i=t.baseId;a=t.root;var n=this._getId(s);return n&&(i=Uc(i,n)),O0.call(this,r,i,s,a)}}var rj=Hc.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function O0(a,e,r,t){if(a.fragment=a.fragment||"",a.fragment.slice(0,1)=="/"){for(var s=a.fragment.split("/"),i=1;i{"use strict";var jd=zc();I0.exports={Validation:A0(ij),MissingRef:A0($d)};function ij(a){this.message="validation failed",this.errors=a,this.ajv=this.validation=!0}$d.message=function(a,e){return"can't resolve reference "+e+" from id "+a};function $d(a,e,r){this.message=r||$d.message(a,e),this.missingRef=jd.url(a,e),this.missingSchema=jd.normalizeId(jd.fullPath(this.missingRef))}function A0(a){return a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a}});var Md=U((U3,D0)=>{"use strict";D0.exports=function(a,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=typeof e.cycles=="boolean"?e.cycles:!1,t=e.cmp&&(function(i){return function(n){return function(o,l){var c={key:o,value:n[o]},u={key:l,value:n[l]};return i(c,u)}}})(e.cmp),s=[];return(function i(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n!==void 0){if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);var o,l;if(Array.isArray(n)){for(l="[",o=0;o{"use strict";N0.exports=function(e,r,t){var s="",i=e.schema.$async===!0,n=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var c="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(c);else throw new Error(c)}}if(e.isTop&&(s+=" var validate = ",i&&(e.async=!0,s+="async "),s+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(s+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(n||e.schema.$ref)){var r="false schema",u=e.level,p=e.dataLevel,m=e.schema[r],d=e.schemaPath+e.util.getProperty(r),v=e.errSchemaPath+"/"+r,P=!e.opts.allErrors,N,h="data"+(p||""),w="valid"+u;if(e.schema===!1){e.isTop?P=!0:s+=" var "+w+" = false; ";var f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(N||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(v)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'boolean schema is false' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var y=s;s=f.pop(),!e.compositeRule&&P?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?i?s+=" return data; ":s+=" validate.errors = null; return true; ":s+=" var "+w+" = true; ";return e.isTop&&(s+=" }; return validate; "),s}if(e.isTop){var g=e.isTop,u=e.level=0,p=e.dataLevel=0,h="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var b="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(b);else throw new Error(b)}s+=" var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data; "}else{var u=e.level,p=e.dataLevel,h="data"+(p||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),i&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+u+" = errors;"}var w="valid"+u,P=!e.opts.allErrors,R="",k="",N,A=e.schema.type,$=Array.isArray(A);if(A&&e.opts.nullable&&e.schema.nullable===!0&&($?A.indexOf("null")==-1&&(A=A.concat("null")):A!="null"&&(A=[A,"null"],$=!0)),$&&A.length==1&&(A=A[0],$=!1),e.schema.$ref&&n){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(n=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(s+=" "+e.RULES.all.$comment.code(e,"$comment")),A){if(e.opts.coerceTypes)var D=e.util.coerceToTypes(e.opts.coerceTypes,A);var C=e.RULES.types[A];if(D||$||C===!0||C&&!_e(C)){var d=e.schemaPath+".type",v=e.errSchemaPath+"/type",d=e.schemaPath+".type",v=e.errSchemaPath+"/type",O=$?"checkDataTypes":"checkDataType";if(s+=" if ("+e.util[O](A,h,e.opts.strictNumbers,!0)+") { ",D){var j="dataType"+u,q="coerced"+u;s+=" var "+j+" = typeof "+h+"; var "+q+" = undefined; ",e.opts.coerceTypes=="array"&&(s+=" if ("+j+" == 'object' && Array.isArray("+h+") && "+h+".length == 1) { "+h+" = "+h+"[0]; "+j+" = typeof "+h+"; if ("+e.util.checkDataType(e.schema.type,h,e.opts.strictNumbers)+") "+q+" = "+h+"; } "),s+=" if ("+q+" !== undefined) ; ";var z=D;if(z)for(var V,X=-1,Z=z.length-1;X{"use strict";var Wc=zc(),Zc=_s(),$0=Vc(),oj=Md(),j0=Ld(),cj=Zc.ucs2length,lj=Mc(),uj=$0.Validation;L0.exports=qd;function qd(a,e,r,t){var s=this,i=this._opts,n=[void 0],o={},l=[],c={},u=[],p={},m=[];e=e||{schema:a,refVal:n,refs:o};var d=pj.call(this,a,e,t),v=this._compilations[d.index];if(d.compiling)return v.callValidate=b;var h=this._formats,f=this.RULES;try{var y=w(a,e,r,t);v.validate=y;var g=v.callValidate;return g&&(g.schema=y.schema,g.errors=null,g.refs=y.refs,g.refVal=y.refVal,g.root=y.root,g.$async=y.$async,i.sourceCode&&(g.source=y.source)),y}finally{dj.call(this,a,e,t)}function b(){var O=v.validate,j=O.apply(this,arguments);return b.errors=O.errors,j}function w(O,j,q,z){var V=!j||j&&j.schema==O;if(j.schema!=e.schema)return qd.call(s,O,j,q,z);var X=O.$async===!0,Z=j0({isTop:!0,schema:O,isRoot:V,baseId:z,root:j,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:$0.MissingRef,RULES:f,validate:j0,util:Zc,resolve:Wc,resolveRef:P,usePattern:$,useDefault:D,useCustomRule:C,opts:i,formats:h,logger:s.logger,self:s});Z=Gc(n,hj)+Gc(l,fj)+Gc(u,mj)+Gc(m,vj)+Z,i.processCode&&(Z=i.processCode(Z,O));var K;try{var se=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",Z);K=se(s,f,h,e,n,u,m,lj,cj,uj),n[0]=K}catch(Y){throw s.logger.error("Error compiling schema, function code:",Z),Y}return K.schema=O,K.errors=null,K.refs=o,K.refVal=n,K.root=V?K:j,X&&(K.$async=!0),i.sourceCode===!0&&(K.source={code:Z,patterns:l,defaults:u}),K}function P(O,j,q){j=Wc.url(O,j);var z=o[j],V,X;if(z!==void 0)return V=n[z],X="refVal["+z+"]",A(V,X);if(!q&&e.refs){var Z=e.refs[j];if(Z!==void 0)return V=e.refVal[Z],X=R(j,V),A(V,X)}X=R(j);var K=Wc.call(s,w,e,j);if(K===void 0){var se=r&&r[j];se&&(K=Wc.inlineRef(se,i.inlineRefs)?se:qd.call(s,se,e,r,O))}if(K===void 0)k(j);else return N(j,K),A(K,X)}function R(O,j){var q=n.length;return n[q]=j,o[O]=q,"refVal"+q}function k(O){delete o[O]}function N(O,j){var q=o[O];n[q]=j}function A(O,j){return typeof O=="object"||typeof O=="boolean"?{code:j,schema:O,inline:!0}:{code:j,$async:O&&!!O.$async}}function $(O){var j=c[O];return j===void 0&&(j=c[O]=l.length,l[j]=O),"pattern"+j}function D(O){switch(typeof O){case"boolean":case"number":return""+O;case"string":return Zc.toQuotedString(O);case"object":if(O===null)return"null";var j=oj(O),q=p[j];return q===void 0&&(q=p[j]=u.length,u[q]=O),"default"+q}}function C(O,j,q,z){if(s._opts.validateSchema!==!1){var V=O.definition.dependencies;if(V&&!V.every(function(we){return Object.prototype.hasOwnProperty.call(q,we)}))throw new Error("parent schema must have all required keywords: "+V.join(","));var X=O.definition.validateSchema;if(X){var Z=X(j);if(!Z){var K="keyword schema is invalid: "+s.errorsText(X.errors);if(s._opts.validateSchema=="log")s.logger.error(K);else throw new Error(K)}}}var se=O.definition.compile,Y=O.definition.inline,Pe=O.definition.macro,fe;if(se)fe=se.call(s,j,q,z);else if(Pe)fe=Pe.call(s,j,q,z),i.validateSchema!==!1&&s.validateSchema(fe,!0);else if(Y)fe=Y.call(s,z,O.keyword,j,q);else if(fe=O.definition.validate,!fe)return;if(fe===void 0)throw new Error('custom keyword "'+O.keyword+'"failed to compile');var Ee=m.length;return m[Ee]=fe,{code:"customRule"+Ee,validate:fe}}}function pj(a,e,r){var t=M0.call(this,a,e,r);return t>=0?{index:t,compiling:!0}:(t=this._compilations.length,this._compilations[t]={schema:a,root:e,baseId:r},{index:t,compiling:!1})}function dj(a,e,r){var t=M0.call(this,a,e,r);t>=0&&this._compilations.splice(t,1)}function M0(a,e,r){for(var t=0;t{"use strict";var Kc=F0.exports=function(){this._cache={}};Kc.prototype.put=function(e,r){this._cache[e]=r};Kc.prototype.get=function(e){return this._cache[e]};Kc.prototype.del=function(e){delete this._cache[e]};Kc.prototype.clear=function(){this._cache={}}});var J0=U((V3,Y0)=>{"use strict";var gj=_s(),yj=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,bj=[0,31,28,31,30,31,30,31,31,30,31,30,31],xj=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,H0=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,_j=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,Sj=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,B0=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,z0=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,V0=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,W0=/^(?:\/(?:[^~/]|~0|~1)*)*$/,G0=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Z0=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;Y0.exports=Xc;function Xc(a){return a=a=="full"?"full":"fast",gj.copy(Xc[a])}Xc.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":B0,url:z0,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:H0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q0,uuid:V0,"json-pointer":W0,"json-pointer-uri-fragment":G0,"relative-json-pointer":Z0};Xc.full={date:K0,time:X0,"date-time":Tj,uri:Pj,"uri-reference":Sj,"uri-template":B0,url:z0,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:H0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q0,uuid:V0,"json-pointer":W0,"json-pointer-uri-fragment":G0,"relative-json-pointer":Z0};function Ej(a){return a%4===0&&(a%100!==0||a%400===0)}function K0(a){var e=a.match(yj);if(!e)return!1;var r=+e[1],t=+e[2],s=+e[3];return t>=1&&t<=12&&s>=1&&s<=(t==2&&Ej(r)?29:bj[t])}function X0(a,e){var r=a.match(xj);if(!r)return!1;var t=r[1],s=r[2],i=r[3],n=r[5];return(t<=23&&s<=59&&i<=59||t==23&&s==59&&i==60)&&(!e||n)}var wj=/t|\s/i;function Tj(a){var e=a.split(wj);return e.length==2&&K0(e[0])&&X0(e[1],!0)}var Rj=/\/|:/;function Pj(a){return Rj.test(a)&&_j.test(a)}var Oj=/[^\\]\\Z/;function Q0(a){if(Oj.test(a))return!1;try{return new RegExp(a),!0}catch{return!1}}});var t_=U((W3,e_)=>{"use strict";e_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(n||""),p="valid"+i,m,d;if(o=="#"||o=="#/")e.isRoot?(m=e.async,d="validate"):(m=e.root.schema.$async===!0,d="root.refVal[0]");else{var v=e.resolveRef(e.baseId,o,e.isRoot);if(v===void 0){var h=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(h);var f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var y=s;s=f.pop(),!e.compositeRule&&c?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(s+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(h),c&&(s+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,h)}else if(v.inline){var g=e.util.copy(e);g.level++;var b="valid"+g.level;g.schema=v.schema,g.schemaPath="",g.errSchemaPath=o;var w=e.validate(g).replace(/validate\.schema/g,v.code);s+=" "+w+" ",c&&(s+=" if ("+b+") { ")}else m=v.$async===!0||e.async&&v.$async!==!1,d=v.code}if(d){var f=f||[];f.push(s),s="",e.opts.passContext?s+=" "+d+".call(this, ":s+=" "+d+"( ",s+=" "+u+", (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var P=n?"data"+(n-1||""):"parentData",R=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+P+" , "+R+", rootData) ";var k=s;if(s=f.pop(),m){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(s+=" var "+p+"; "),s+=" try { await "+k+"; ",c&&(s+=" "+p+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(s+=" "+p+" = false; "),s+=" } ",c&&(s+=" if ("+p+") { ")}else s+=" if (!"+k+") { if (vErrors === null) vErrors = "+d+".errors; else vErrors = vErrors.concat("+d+".errors); errors = vErrors.length; } ",c&&(s+=" else { ")}return s}});var a_=U((G3,r_)=>{"use strict";r_.exports=function(e,r,t){var s=" ",i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c=e.util.copy(e),u="";c.level++;var p="valid"+c.level,m=c.baseId,d=!0,v=i;if(v)for(var h,f=-1,y=v.length-1;f0||h===!1:e.util.schemaHasRules(h,e.RULES.all))&&(d=!1,c.schema=h,c.schemaPath=n+"["+f+"]",c.errSchemaPath=o+"/"+f,s+=" "+e.validate(c)+" ",c.baseId=m,l&&(s+=" if ("+p+") { ",u+="}"));return l&&(d?s+=" if (true) { ":s+=" "+u.slice(0,-1)+" "),s}});var n_=U((Z3,s_)=>{"use strict";s_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y=o.every(function(N){return e.opts.strictKeywords?typeof N=="object"&&Object.keys(N).length>0||N===!1:e.util.schemaHasRules(N,e.RULES.all)});if(y){var g=v.baseId;s+=" var "+d+" = errors; var "+m+" = false; ";var b=e.compositeRule;e.compositeRule=v.compositeRule=!0;var w=o;if(w)for(var P,R=-1,k=w.length-1;R{"use strict";i_.exports=function(e,r,t){var s=" ",i=e.schema[r],n=e.errSchemaPath+"/"+r,o=!e.opts.allErrors,l=e.util.toQuotedString(i);return e.opts.$comment===!0?s+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(s+=" self._opts.$comment("+l+", "+e.util.toQuotedString(n)+", validate.root.schema);"),s}});var l_=U((X3,c_)=>{"use strict";c_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o,d||(s+=" var schema"+i+" = validate.schema"+l+";"),s+="var "+m+" = equal("+p+", schema"+i+"); if (!"+m+") { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValue: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var f=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var p_=U((Q3,u_)=>{"use strict";u_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y="i"+i,g=v.dataLevel=e.dataLevel+1,b="data"+g,w=e.baseId,P=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(s+="var "+d+" = errors;var "+m+";",P){var R=e.compositeRule;e.compositeRule=v.compositeRule=!0,v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" var "+f+" = false; for (var "+y+" = 0; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var k=p+"["+y+"]";v.dataPathArr[g]=y;var N=e.validate(v);v.baseId=w,e.util.varOccurences(N,b)<2?s+=" "+e.util.varReplace(N,b,k)+" ":s+=" var "+b+" = "+k+"; "+N+" ",s+=" if ("+f+") break; } ",e.compositeRule=v.compositeRule=R,s+=" "+h+" if (!"+f+") {"}else s+=" if ("+p+".length == 0) {";var A=A||[];A.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should contain a valid item' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var $=s;return s=A.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+$+"]); ":s+=" validate.errors = ["+$+"]; return false; ":s+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",P&&(s+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(s+=" } "),s}});var f_=U((Y3,d_)=>{"use strict";d_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level,f={},y={},g=e.opts.ownProperties;for(R in o)if(R!="__proto__"){var b=o[R],w=Array.isArray(b)?y:f;w[R]=b}s+="var "+m+" = errors;";var P=e.errorPath;s+="var missing"+i+";";for(var R in y)if(w=y[R],w.length){if(s+=" if ( "+p+e.util.getProperty(R)+" !== undefined ",g&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(R)+"') "),u){s+=" && ( ";var k=w;if(k)for(var N,A=-1,$=k.length-1;A<$;){N=k[A+=1],A&&(s+=" || ");var D=e.util.getProperty(N),C=p+D;s+=" ( ( "+C+" === undefined ",g&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(N)+"') "),s+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?N:D)+") ) "}s+=")) { ";var O="missing"+i,j="' + "+O+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,O,!0):P+" + "+O);var q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { property: '"+e.util.escapeQuotes(R)+"', missingProperty: '"+j+"', depsCount: "+w.length+", deps: '"+e.util.escapeQuotes(w.length==1?w[0]:w.join(", "))+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should have ",w.length==1?s+="property "+e.util.escapeQuotes(w[0]):s+="properties "+e.util.escapeQuotes(w.join(", ")),s+=" when property "+e.util.escapeQuotes(R)+" is present' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var z=s;s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+z+"]); ":s+=" validate.errors = ["+z+"]; return false; ":s+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{s+=" ) { ";var V=w;if(V)for(var N,X=-1,Z=V.length-1;X0||b===!1:e.util.schemaHasRules(b,e.RULES.all))&&(s+=" "+h+" = true; if ( "+p+e.util.getProperty(R)+" !== undefined ",g&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(R)+"') "),s+=") { ",d.schema=b,d.schemaPath=l+e.util.getProperty(R),d.errSchemaPath=c+"/"+e.util.escapeFragment(R),s+=" "+e.validate(d)+" ",d.baseId=K,s+=" } ",u&&(s+=" if ("+h+") { ",v+="}"))}return u&&(s+=" "+v+" if ("+m+" == errors) {"),s}});var h_=U((J3,m_)=>{"use strict";m_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var h="i"+i,f="schema"+i;d||(s+=" var "+f+" = validate.schema"+l+";"),s+="var "+m+";",d&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=""+m+" = false;for (var "+h+"=0; "+h+"<"+f+".length; "+h+"++) if (equal("+p+", "+f+"["+h+"])) { "+m+" = true; break; }",d&&(s+=" } "),s+=" if (!"+m+") { ";var y=y||[];y.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;return s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var g_=U((eU,v_)=>{"use strict";v_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||"");if(e.opts.format===!1)return u&&(s+=" if (true) { "),s;var m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=e.opts.unknownFormats,h=Array.isArray(v);if(m){var f="format"+i,y="isObject"+i,g="formatType"+i;s+=" var "+f+" = formats["+d+"]; var "+y+" = typeof "+f+" == 'object' && !("+f+" instanceof RegExp) && "+f+".validate; var "+g+" = "+y+" && "+f+".type || 'string'; if ("+y+") { ",e.async&&(s+=" var async"+i+" = "+f+".async; "),s+=" "+f+" = "+f+".validate; } if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),s+=" (",v!="ignore"&&(s+=" ("+d+" && !"+f+" ",h&&(s+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),s+=") || "),s+=" ("+f+" && "+g+" == '"+t+"' && !(typeof "+f+" == 'function' ? ",e.async?s+=" (async"+i+" ? await "+f+"("+p+") : "+f+"("+p+")) ":s+=" "+f+"("+p+") ",s+=" : "+f+".test("+p+"))))) {"}else{var f=e.formats[o];if(!f){if(v=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),u&&(s+=" if (true) { "),s;if(h&&v.indexOf(o)>=0)return u&&(s+=" if (true) { "),s;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var y=typeof f=="object"&&!(f instanceof RegExp)&&f.validate,g=y&&f.type||"string";if(y){var b=f.async===!0;f=f.validate}if(g!=t)return u&&(s+=" if (true) { "),s;if(b){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(o)+".validate";s+=" if (!(await "+w+"("+p+"))) { "}else{s+=" if (! ";var w="formats"+e.util.getProperty(o);y&&(w+=".validate"),typeof f=="function"?s+=" "+w+"("+p+") ":s+=" "+w+".test("+p+") ",s+=") { "}}var P=P||[];P.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { format: ",m?s+=""+d:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match format "`,m?s+="' + "+d+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var R=s;return s=P.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var b_=U((tU,y_)=>{"use strict";y_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e);v.level++;var h="valid"+v.level,f=e.schema.then,y=e.schema.else,g=f!==void 0&&(e.opts.strictKeywords?typeof f=="object"&&Object.keys(f).length>0||f===!1:e.util.schemaHasRules(f,e.RULES.all)),b=y!==void 0&&(e.opts.strictKeywords?typeof y=="object"&&Object.keys(y).length>0||y===!1:e.util.schemaHasRules(y,e.RULES.all)),w=v.baseId;if(g||b){var P;v.createErrors=!1,v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" var "+d+" = errors; var "+m+" = true; ";var R=e.compositeRule;e.compositeRule=v.compositeRule=!0,s+=" "+e.validate(v)+" ",v.baseId=w,v.createErrors=!0,s+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=v.compositeRule=R,g?(s+=" if ("+h+") { ",v.schema=e.schema.then,v.schemaPath=e.schemaPath+".then",v.errSchemaPath=e.errSchemaPath+"/then",s+=" "+e.validate(v)+" ",v.baseId=w,s+=" "+m+" = "+h+"; ",g&&b?(P="ifClause"+i,s+=" var "+P+" = 'then'; "):P="'then'",s+=" } ",b&&(s+=" else { ")):s+=" if (!"+h+") { ",b&&(v.schema=e.schema.else,v.schemaPath=e.schemaPath+".else",v.errSchemaPath=e.errSchemaPath+"/else",s+=" "+e.validate(v)+" ",v.baseId=w,s+=" "+m+" = "+h+"; ",g&&b?(P="ifClause"+i,s+=" var "+P+" = 'else'; "):P="'else'",s+=" } "),s+=" if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { failingKeyword: "+P+" } ",e.opts.messages!==!1&&(s+=` , message: 'should match "' + `+P+` + '" schema' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var __=U((rU,x_)=>{"use strict";x_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y="i"+i,g=v.dataLevel=e.dataLevel+1,b="data"+g,w=e.baseId;if(s+="var "+d+" = errors;var "+m+";",Array.isArray(o)){var P=e.schema.additionalItems;if(P===!1){s+=" "+m+" = "+p+".length <= "+o.length+"; ";var R=c;c=e.errSchemaPath+"/additionalItems",s+=" if (!"+m+") { ";var k=k||[];k.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var N=s;s=k.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+N+"]); ":s+=" validate.errors = ["+N+"]; return false; ":s+=" var err = "+N+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",c=R,u&&(h+="}",s+=" else { ")}var A=o;if(A){for(var $,D=-1,C=A.length-1;D0||$===!1:e.util.schemaHasRules($,e.RULES.all)){s+=" "+f+" = true; if ("+p+".length > "+D+") { ";var O=p+"["+D+"]";v.schema=$,v.schemaPath=l+"["+D+"]",v.errSchemaPath=c+"/"+D,v.errorPath=e.util.getPathExpr(e.errorPath,D,e.opts.jsonPointers,!0),v.dataPathArr[g]=D;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",s+=" } ",u&&(s+=" if ("+f+") { ",h+="}")}}if(typeof P=="object"&&(e.opts.strictKeywords?typeof P=="object"&&Object.keys(P).length>0||P===!1:e.util.schemaHasRules(P,e.RULES.all))){v.schema=P,v.schemaPath=e.schemaPath+".additionalItems",v.errSchemaPath=e.errSchemaPath+"/additionalItems",s+=" "+f+" = true; if ("+p+".length > "+o.length+") { for (var "+y+" = "+o.length+"; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var O=p+"["+y+"]";v.dataPathArr[g]=y;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",u&&(s+=" if (!"+f+") break; "),s+=" } } ",u&&(s+=" if ("+f+") { ",h+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" for (var "+y+" = 0; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var O=p+"["+y+"]";v.dataPathArr[g]=y;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",u&&(s+=" if (!"+f+") break; "),s+=" }"}return u&&(s+=" "+h+" if ("+d+" == errors) {"),s}});var Fd=U((aU,S_)=>{"use strict";S_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,w,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=r=="maximum",h=v?"exclusiveMaximum":"exclusiveMinimum",f=e.schema[h],y=e.opts.$data&&f&&f.$data,g=v?"<":">",b=v?">":"<",w=void 0;if(!(m||typeof o=="number"||o===void 0))throw new Error(r+" must be number");if(!(y||f===void 0||typeof f=="number"||typeof f=="boolean"))throw new Error(h+" must be number or boolean");if(y){var P=e.util.getData(f.$data,n,e.dataPathArr),R="exclusive"+i,k="exclType"+i,N="exclIsNumber"+i,A="op"+i,$="' + "+A+" + '";s+=" var schemaExcl"+i+" = "+P+"; ",P="schemaExcl"+i,s+=" var "+R+"; var "+k+" = typeof "+P+"; if ("+k+" != 'boolean' && "+k+" != 'undefined' && "+k+" != 'number') { ";var w=h,D=D||[];D.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(w||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+h+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;s=D.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+k+" == 'number' ? ( ("+R+" = "+d+" === undefined || "+P+" "+g+"= "+d+") ? "+p+" "+b+"= "+P+" : "+p+" "+b+" "+d+" ) : ( ("+R+" = "+P+" === true) ? "+p+" "+b+"= "+d+" : "+p+" "+b+" "+d+" ) || "+p+" !== "+p+") { var op"+i+" = "+R+" ? '"+g+"' : '"+g+"='; ",o===void 0&&(w=h,c=e.errSchemaPath+"/"+h,d=P,m=y)}else{var N=typeof f=="number",$=g;if(N&&m){var A="'"+$+"'";s+=" if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" ( "+d+" === undefined || "+f+" "+g+"= "+d+" ? "+p+" "+b+"= "+f+" : "+p+" "+b+" "+d+" ) || "+p+" !== "+p+") { "}else{N&&o===void 0?(R=!0,w=h,c=e.errSchemaPath+"/"+h,d=f,b+="="):(N&&(d=Math[v?"min":"max"](f,o)),f===(N?d:!0)?(R=!0,w=h,c=e.errSchemaPath+"/"+h,b+="="):(R=!1,$+="="));var A="'"+$+"'";s+=" if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+p+" "+b+" "+d+" || "+p+" !== "+p+") { "}}w=w||r;var D=D||[];D.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(w||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+A+", limit: "+d+", exclusive: "+R+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+$+" ",m?s+="' + "+d:s+=""+d+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;return s=D.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var Ud=U((sU,E_)=>{"use strict";E_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxItems"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+p+".length "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",r=="maxItems"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Hd=U((nU,w_)=>{"use strict";w_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxLength"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),e.opts.unicode===!1?s+=" "+p+".length ":s+=" ucs2length("+p+") ",s+=" "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",r=="maxLength"?s+="longer":s+="shorter",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Bd=U((iU,T_)=>{"use strict";T_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxProperties"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" Object.keys("+p+").length "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",r=="maxProperties"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var P_=U((oU,R_)=>{"use strict";R_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");s+="var division"+i+";if (",m&&(s+=" "+d+" !== undefined && ( typeof "+d+" != 'number' || "),s+=" (division"+i+" = "+p+" / "+d+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+i+" !== parseInt(division"+i+") ",s+=" ) ",m&&(s+=" ) "),s+=" ) { ";var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",m?s+="' + "+d:s+=""+d+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var h=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+h+"]); ":s+=" validate.errors = ["+h+"]; return false; ":s+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var C_=U((cU,O_)=>{"use strict";O_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e);d.level++;var v="valid"+d.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=l,d.errSchemaPath=c,s+=" var "+m+" = errors; ";var h=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var f;d.opts.allErrors&&(f=d.opts.allErrors,d.opts.allErrors=!1),s+=" "+e.validate(d)+" ",d.createErrors=!0,f&&(d.opts.allErrors=f),e.compositeRule=d.compositeRule=h,s+=" if ("+v+") { ";var y=y||[];y.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+m+"; if (vErrors !== null) { if ("+m+") vErrors.length = "+m+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")}else s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");return s}});var A_=U((lU,k_)=>{"use strict";k_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y=v.baseId,g="prevValid"+i,b="passingSchemas"+i;s+="var "+d+" = errors , "+g+" = false , "+m+" = false , "+b+" = null; ";var w=e.compositeRule;e.compositeRule=v.compositeRule=!0;var P=o;if(P)for(var R,k=-1,N=P.length-1;k0||R===!1:e.util.schemaHasRules(R,e.RULES.all))?(v.schema=R,v.schemaPath=l+"["+k+"]",v.errSchemaPath=c+"/"+k,s+=" "+e.validate(v)+" ",v.baseId=y):s+=" var "+f+" = true; ",k&&(s+=" if ("+f+" && "+g+") { "+m+" = false; "+b+" = ["+b+", "+k+"]; } else { ",h+="}"),s+=" if ("+f+") { "+m+" = "+g+" = true; "+b+" = "+k+"; }";return e.compositeRule=v.compositeRule=w,s+=""+h+"if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+b+" } ",e.opts.messages!==!1&&(s+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(s+=" } "),s}});var D_=U((uU,I_)=>{"use strict";I_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=m?"(new RegExp("+d+"))":e.usePattern(o);s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),s+=" !"+v+".test("+p+") ) { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",m?s+=""+d:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match pattern "`,m?s+="' + "+d+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var f=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var j_=U((pU,N_)=>{"use strict";N_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level,f="key"+i,y="idx"+i,g=d.dataLevel=e.dataLevel+1,b="data"+g,w="dataProperties"+i,P=Object.keys(o||{}).filter(X),R=e.schema.patternProperties||{},k=Object.keys(R).filter(X),N=e.schema.additionalProperties,A=P.length||k.length,$=N===!1,D=typeof N=="object"&&Object.keys(N).length,C=e.opts.removeAdditional,O=$||D||C,j=e.opts.ownProperties,q=e.baseId,z=e.schema.required;if(z&&!(e.opts.$data&&z.$data)&&z.length8)s+=" || validate.schema"+l+".hasOwnProperty("+f+") ";else{var Z=P;if(Z)for(var K,se=-1,Y=Z.length-1;se0||_e===!1:e.util.schemaHasRules(_e,e.RULES.all)){var et=e.util.getProperty(K),Q=p+et,Ve=Te&&_e.default!==void 0;d.schema=_e,d.schemaPath=l+et,d.errSchemaPath=c+"/"+e.util.escapeFragment(K),d.errorPath=e.util.getPath(e.errorPath,K,e.opts.jsonPointers),d.dataPathArr[g]=e.util.toQuotedString(K);var ne=e.validate(d);if(d.baseId=q,e.util.varOccurences(ne,b)<2){ne=e.util.varReplace(ne,b,Q);var Qe=Q}else{var Qe=b;s+=" var "+b+" = "+Q+"; "}if(Ve)s+=" "+ne+" ";else{if(V&&V[K]){s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=") { "+h+" = false; ";var De=e.errorPath,W=c,Ze=e.util.escapeQuotes(K);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(De,K,e.opts.jsonPointers)),c=e.errSchemaPath+"/required";var te=te||[];te.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+Ze+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+Ze+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var le=s;s=te.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+le+"]); ":s+=" validate.errors = ["+le+"]; return false; ":s+=" var err = "+le+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c=W,e.errorPath=De,s+=" } else { "}else u?(s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=") { "+h+" = true; } else { "):(s+=" if ("+Qe+" !== undefined ",j&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=" ) { ");s+=" "+ne+" } "}}u&&(s+=" if ("+h+") { ",v+="}")}}if(k.length){var Xe=k;if(Xe)for(var fe,Et=-1,wt=Xe.length-1;Et0||_e===!1:e.util.schemaHasRules(_e,e.RULES.all)){d.schema=_e,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(fe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(fe),j?s+=" "+w+" = "+w+" || Object.keys("+p+"); for (var "+y+"=0; "+y+"<"+w+".length; "+y+"++) { var "+f+" = "+w+"["+y+"]; ":s+=" for (var "+f+" in "+p+") { ",s+=" if ("+e.usePattern(fe)+".test("+f+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,f,e.opts.jsonPointers);var Q=p+"["+f+"]";d.dataPathArr[g]=f;var ne=e.validate(d);d.baseId=q,e.util.varOccurences(ne,b)<2?s+=" "+e.util.varReplace(ne,b,Q)+" ":s+=" var "+b+" = "+Q+"; "+ne+" ",u&&(s+=" if (!"+h+") break; "),s+=" } ",u&&(s+=" else "+h+" = true; "),s+=" } ",u&&(s+=" if ("+h+") { ",v+="}")}}}return u&&(s+=" "+v+" if ("+m+" == errors) {"),s}});var M_=U((dU,$_)=>{"use strict";$_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level;if(s+="var "+m+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=l,d.errSchemaPath=c;var f="key"+i,y="idx"+i,g="i"+i,b="' + "+f+" + '",w=d.dataLevel=e.dataLevel+1,P="data"+w,R="dataProperties"+i,k=e.opts.ownProperties,N=e.baseId;k&&(s+=" var "+R+" = undefined; "),k?s+=" "+R+" = "+R+" || Object.keys("+p+"); for (var "+y+"=0; "+y+"<"+R+".length; "+y+"++) { var "+f+" = "+R+"["+y+"]; ":s+=" for (var "+f+" in "+p+") { ",s+=" var startErrs"+i+" = errors; ";var A=f,$=e.compositeRule;e.compositeRule=d.compositeRule=!0;var D=e.validate(d);d.baseId=N,e.util.varOccurences(D,P)<2?s+=" "+e.util.varReplace(D,P,A)+" ":s+=" var "+P+" = "+A+"; "+D+" ",e.compositeRule=d.compositeRule=$,s+=" if (!"+h+") { for (var "+g+"=startErrs"+i+"; "+g+"{"use strict";L_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var h="schema"+i;if(!d)if(o.length0||P===!1:e.util.schemaHasRules(P,e.RULES.all))||(f[f.length]=g)}}else var f=o;if(d||f.length){var R=e.errorPath,k=d||f.length>=e.opts.loopRequired,N=e.opts.ownProperties;if(u)if(s+=" var missing"+i+"; ",k){d||(s+=" var "+h+" = validate.schema"+l+"; ");var A="i"+i,$="schema"+i+"["+A+"]",D="' + "+$+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(R,$,e.opts.jsonPointers)),s+=" var "+m+" = true; ",d&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=" for (var "+A+" = 0; "+A+" < "+h+".length; "+A+"++) { "+m+" = "+p+"["+h+"["+A+"]] !== undefined ",N&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", "+h+"["+A+"]) "),s+="; if (!"+m+") break; } ",d&&(s+=" } "),s+=" if (!"+m+") { ";var C=C||[];C.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+D+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+D+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var O=s;s=C.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+O+"]); ":s+=" validate.errors = ["+O+"]; return false; ":s+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var j=f;if(j)for(var q,A=-1,z=j.length-1;A{"use strict";F_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;if(d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o,(o||d)&&e.opts.uniqueItems!==!1){d&&(s+=" var "+m+"; if ("+v+" === false || "+v+" === undefined) "+m+" = true; else if (typeof "+v+" != 'boolean') "+m+" = false; else { "),s+=" var i = "+p+".length , "+m+" = true , j; if (i > 1) { ";var h=e.schema.items&&e.schema.items.type,f=Array.isArray(h);if(!h||h=="object"||h=="array"||f&&(h.indexOf("object")>=0||h.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+m+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ";var y="checkDataType"+(f?"s":"");s+=" if ("+e.util[y](h,"item",e.opts.strictNumbers,!0)+") continue; ",f&&(s+=` if (typeof item == 'string') item = '"' + item; `),s+=" if (typeof itemIndices[item] == 'number') { "+m+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",d&&(s+=" } "),s+=" if (!"+m+") { ";var g=g||[];g.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",d?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;s=g.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var B_=U((hU,H_)=>{"use strict";H_.exports={$ref:t_(),allOf:a_(),anyOf:n_(),$comment:o_(),const:l_(),contains:p_(),dependencies:f_(),enum:h_(),format:g_(),if:b_(),items:__(),maximum:Fd(),minimum:Fd(),maxItems:Ud(),minItems:Ud(),maxLength:Hd(),minLength:Hd(),maxProperties:Bd(),minProperties:Bd(),multipleOf:P_(),not:C_(),oneOf:A_(),pattern:D_(),properties:j_(),propertyNames:M_(),required:q_(),uniqueItems:U_(),validate:Ld()}});var W_=U((vU,V_)=>{"use strict";var z_=B_(),zd=_s().toHash;V_.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],t=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],s=["number","integer","string","array","object","boolean","null"];return e.all=zd(r),e.types=zd(s),e.forEach(function(i){i.rules=i.rules.map(function(n){var o;if(typeof n=="object"){var l=Object.keys(n)[0];o=n[l],n=l,o.forEach(function(u){r.push(u),e.all[u]=!0})}r.push(n);var c=e.all[n]={keyword:n,code:z_[n],implements:o};return c}),e.all.$comment={keyword:"$comment",code:z_.$comment},i.type&&(e.types[i.type]=i)}),e.keywords=zd(r.concat(t)),e.custom={},e}});var K_=U((gU,Z_)=>{"use strict";var G_=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Z_.exports=function(a,e){for(var r=0;r{"use strict";var Cj=Vc().MissingRef;Q_.exports=X_;function X_(a,e,r){var t=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(r=e,e=void 0);var s=i(a).then(function(){var o=t._addSchema(a,void 0,e);return o.validate||n(o)});return r&&s.then(function(o){r(null,o)},r),s;function i(o){var l=o.$schema;return l&&!t.getSchema(l)?X_.call(t,{$ref:l},!0):Promise.resolve()}function n(o){try{return t._compile(o)}catch(c){if(c instanceof Cj)return l(c);throw c}function l(c){var u=c.missingSchema;if(d(u))throw new Error("Schema "+u+" is loaded but "+c.missingRef+" cannot be resolved");var p=t._loadingSchemas[u];return p||(p=t._loadingSchemas[u]=t._opts.loadSchema(u),p.then(m,m)),p.then(function(v){if(!d(u))return i(v).then(function(){d(u)||t.addSchema(v,u,void 0,e)})}).then(function(){return n(o)});function m(){delete t._loadingSchemas[u]}function d(v){return t._refs[v]||t._schemas[v]}}}}});var eS=U((bU,J_)=>{"use strict";J_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p,m="data"+(n||""),d="valid"+i,v="errs__"+i,h=e.opts.$data&&o&&o.$data,f;h?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var y=this,g="definition"+i,b=y.definition,w="",P,R,k,N,A;if(h&&b.$data){A="keywordValidate"+i;var $=b.validateSchema;s+=" var "+g+" = RULES.custom['"+r+"'].definition; var "+A+" = "+g+".validate;"}else{if(N=e.useCustomRule(y,o,e.schema,e),!N)return;f="validate.schema"+l,A=N.code,P=b.compile,R=b.inline,k=b.macro}var D=A+".errors",C="i"+i,O="ruleErr"+i,j=b.async;if(j&&!e.async)throw new Error("async keyword in sync schema");if(R||k||(s+=""+D+" = null;"),s+="var "+v+" = errors;var "+d+";",h&&b.$data&&(w+="}",s+=" if ("+f+" === undefined) { "+d+" = true; } else { ",$&&(w+="}",s+=" "+d+" = "+g+".validateSchema("+f+"); if ("+d+") { ")),R)b.statements?s+=" "+N.validate+" ":s+=" "+d+" = "+N.validate+"; ";else if(k){var q=e.util.copy(e),w="";q.level++;var z="valid"+q.level;q.schema=N.validate,q.schemaPath="";var V=e.compositeRule;e.compositeRule=q.compositeRule=!0;var X=e.validate(q).replace(/validate\.schema/g,A);e.compositeRule=q.compositeRule=V,s+=" "+X}else{var Z=Z||[];Z.push(s),s="",s+=" "+A+".call( ",e.opts.passContext?s+="this":s+="self",P||b.schema===!1?s+=" , "+m+" ":s+=" , "+f+" , "+m+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var K=n?"data"+(n-1||""):"parentData",se=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+K+" , "+se+" , rootData ) ";var Y=s;s=Z.pop(),b.errors===!1?(s+=" "+d+" = ",j&&(s+="await "),s+=""+Y+"; "):j?(D="customErrors"+i,s+=" var "+D+" = null; try { "+d+" = await "+Y+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+D+" = e.errors; else throw e; } "):s+=" "+D+" = null; "+d+" = "+Y+"; "}if(b.modifying&&(s+=" if ("+K+") "+m+" = "+K+"["+se+"];"),s+=""+w,b.valid)u&&(s+=" if (true) { ");else{s+=" if ( ",b.valid===void 0?(s+=" !",k?s+=""+z:s+=""+d):s+=" "+!b.valid+" ",s+=") { ",p=y.keyword;var Z=Z||[];Z.push(s),s="";var Z=Z||[];Z.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(p||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+y.keyword+"' } ",e.opts.messages!==!1&&(s+=` , message: 'should pass "`+y.keyword+`" keyword validation' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),s+=" } "):s+=" {} ";var Pe=s;s=Z.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+Pe+"]); ":s+=" validate.errors = ["+Pe+"]; return false; ":s+=" var err = "+Pe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var fe=s;s=Z.pop(),R?b.errors?b.errors!="full"&&(s+=" for (var "+C+"="+v+"; "+C+"{kj.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aS=U((_U,rS)=>{"use strict";var tS=Vd();rS.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:tS.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:tS.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var nS=U((SU,sS)=>{"use strict";var Aj=/^[a-z_$][a-z0-9_$-]*$/i,Ij=eS(),Dj=aS();sS.exports={add:Nj,get:jj,remove:$j,validate:Wd};function Nj(a,e){var r=this.RULES;if(r.keywords[a])throw new Error("Keyword "+a+" is already defined");if(!Aj.test(a))throw new Error("Keyword "+a+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var t=e.type;if(Array.isArray(t))for(var s=0;s{Mj.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var vS=U((wU,hS)=>{"use strict";var cS=q0(),Ss=zc(),Lj=U0(),lS=Ad(),qj=Md(),Fj=J0(),Uj=W_(),uS=K_(),pS=_s();hS.exports=dt;dt.prototype.validate=Bj;dt.prototype.compile=zj;dt.prototype.addSchema=Vj;dt.prototype.addMetaSchema=Wj;dt.prototype.validateSchema=Gj;dt.prototype.getSchema=Kj;dt.prototype.removeSchema=Qj;dt.prototype.addFormat=n$;dt.prototype.errorsText=s$;dt.prototype._addSchema=Yj;dt.prototype._compile=Jj;dt.prototype.compileAsync=Y_();var Jc=nS();dt.prototype.addKeyword=Jc.add;dt.prototype.getKeyword=Jc.get;dt.prototype.removeKeyword=Jc.remove;dt.prototype.validateKeyword=Jc.validate;var dS=Vc();dt.ValidationError=dS.Validation;dt.MissingRefError=dS.MissingRef;dt.$dataMetaSchema=uS;var Yc="http://json-schema.org/draft-07/schema",oS=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],Hj=["/properties"];function dt(a){if(!(this instanceof dt))return new dt(a);a=this._opts=pS.copy(a)||{},p$(this),this._schemas={},this._refs={},this._fragments={},this._formats=Fj(a.format),this._cache=a.cache||new Lj,this._loadingSchemas={},this._compilations=[],this.RULES=Uj(),this._getId=e$(a),a.loopRequired=a.loopRequired||1/0,a.errorDataPath=="property"&&(a._errorDataPathProperty=!0),a.serialize===void 0&&(a.serialize=qj),this._metaOpts=u$(this),a.formats&&c$(this),a.keywords&&l$(this),i$(this),typeof a.meta=="object"&&this.addMetaSchema(a.meta),a.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),o$(this)}function Bj(a,e){var r;if(typeof a=="string"){if(r=this.getSchema(a),!r)throw new Error('no schema with key or ref "'+a+'"')}else{var t=this._addSchema(a);r=t.validate||this._compile(t)}var s=r(e);return r.$async!==!0&&(this.errors=r.errors),s}function zj(a,e){var r=this._addSchema(a,void 0,e);return r.validate||this._compile(r)}function Vj(a,e,r,t){if(Array.isArray(a)){for(var s=0;s{_S.exports=xS;xS.sync=f$;var yS=require("fs");function d$(a,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var t=0;t{RS.exports=wS;wS.sync=m$;var ES=require("fs");function wS(a,e,r){ES.stat(a,function(t,s){r(t,t?!1:TS(s,e))})}function m$(a,e){return TS(ES.statSync(a),e)}function TS(a,e){return a.isFile()&&h$(a,e)}function h$(a,e){var r=a.mode,t=a.uid,s=a.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),n=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=o|l,p=r&c||r&l&&s===n||r&o&&t===i||r&u&&i===0;return p}});var CS=U((AU,OS)=>{var kU=require("fs"),el;process.platform==="win32"||global.TESTING_WINDOWS?el=SS():el=PS();OS.exports=Zd;Zd.sync=v$;function Zd(a,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(t,s){Zd(a,e||{},function(i,n){i?s(i):t(n)})})}el(a,e||{},function(t,s){t&&(t.code==="EACCES"||e&&e.ignoreErrors)&&(t=null,s=!1),r(t,s)})}function v$(a,e){try{return el.sync(a,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var $S=U((IU,jS)=>{var In=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",kS=require("path"),g$=In?";":":",AS=CS(),IS=a=>Object.assign(new Error(`not found: ${a}`),{code:"ENOENT"}),DS=(a,e)=>{let r=e.colon||g$,t=a.match(/\//)||In&&a.match(/\\/)?[""]:[...In?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=In?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=In?s.split(r):[""];return In&&a.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:t,pathExt:i,pathExtExe:s}},NS=(a,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:t,pathExt:s,pathExtExe:i}=DS(a,e),n=[],o=c=>new Promise((u,p)=>{if(c===t.length)return e.all&&n.length?u(n):p(IS(a));let m=t[c],d=/^".*"$/.test(m)?m.slice(1,-1):m,v=kS.join(d,a),h=!d&&/^\.[\\\/]/.test(a)?a.slice(0,2)+v:v;u(l(h,c,0))}),l=(c,u,p)=>new Promise((m,d)=>{if(p===s.length)return m(o(u+1));let v=s[p];AS(c+v,{pathExt:i},(h,f)=>{if(!h&&f)if(e.all)n.push(c+v);else return m(c+v);return m(l(c,u,p+1))})});return r?o(0).then(c=>r(null,c),r):o(0)},y$=(a,e)=>{e=e||{};let{pathEnv:r,pathExt:t,pathExtExe:s}=DS(a,e),i=[];for(let n=0;n{"use strict";var MS=(a={})=>{let e=a.env||process.env;return(a.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(t=>t.toUpperCase()==="PATH")||"Path"};Kd.exports=MS;Kd.exports.default=MS});var HS=U((NU,US)=>{"use strict";var qS=require("path"),b$=$S(),x$=LS();function FS(a,e){let r=a.options.env||process.env,t=process.cwd(),s=a.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(a.options.cwd)}catch{}let n;try{n=b$.sync(a.command,{path:r[x$({env:r})],pathExt:e?qS.delimiter:void 0})}catch{}finally{i&&process.chdir(t)}return n&&(n=qS.resolve(s?a.options.cwd:"",n)),n}function _$(a){return FS(a)||FS(a,!0)}US.exports=_$});var BS=U((jU,Qd)=>{"use strict";var Xd=/([()\][%!^"`<>&|;, *?])/g;function S$(a){return a=a.replace(Xd,"^$1"),a}function E$(a,e){return a=`${a}`,a=a.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),a=a.replace(/(?=(\\+?)?)\1$/,"$1$1"),a=`"${a}"`,a=a.replace(Xd,"^$1"),e&&(a=a.replace(Xd,"^$1")),a}Qd.exports.command=S$;Qd.exports.argument=E$});var VS=U(($U,zS)=>{"use strict";zS.exports=/^#!(.*)/});var GS=U((MU,WS)=>{"use strict";var w$=VS();WS.exports=(a="")=>{let e=a.match(w$);if(!e)return null;let[r,t]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?t:t?`${s} ${t}`:s}});var KS=U((LU,ZS)=>{"use strict";var Yd=require("fs"),T$=GS();function R$(a){let r=Buffer.alloc(150),t;try{t=Yd.openSync(a,"r"),Yd.readSync(t,r,0,150,0),Yd.closeSync(t)}catch{}return T$(r.toString())}ZS.exports=R$});var JS=U((qU,YS)=>{"use strict";var P$=require("path"),XS=HS(),QS=BS(),O$=KS(),C$=process.platform==="win32",k$=/\.(?:com|exe)$/i,A$=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function I$(a){a.file=XS(a);let e=a.file&&O$(a.file);return e?(a.args.unshift(a.file),a.command=e,XS(a)):a.file}function D$(a){if(!C$)return a;let e=I$(a),r=!k$.test(e);if(a.options.forceShell||r){let t=A$.test(e);a.command=P$.normalize(a.command),a.command=QS.command(a.command),a.args=a.args.map(i=>QS.argument(i,t));let s=[a.command].concat(a.args).join(" ");a.args=["/d","/s","/c",`"${s}"`],a.command=process.env.comspec||"cmd.exe",a.options.windowsVerbatimArguments=!0}return a}function N$(a,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let t={command:a,args:e,options:r,file:void 0,original:{command:a,args:e}};return r.shell?t:D$(t)}YS.exports=N$});var rE=U((FU,tE)=>{"use strict";var Jd=process.platform==="win32";function ef(a,e){return Object.assign(new Error(`${e} ${a.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${a.command}`,path:a.command,spawnargs:a.args})}function j$(a,e){if(!Jd)return;let r=a.emit;a.emit=function(t,s){if(t==="exit"){let i=eE(s,e);if(i)return r.call(a,"error",i)}return r.apply(a,arguments)}}function eE(a,e){return Jd&&a===1&&!e.file?ef(e.original,"spawn"):null}function $$(a,e){return Jd&&a===1&&!e.file?ef(e.original,"spawnSync"):null}tE.exports={hookChildProcess:j$,verifyENOENT:eE,verifyENOENTSync:$$,notFoundError:ef}});var nE=U((UU,Dn)=>{"use strict";var aE=require("child_process"),tf=JS(),rf=rE();function sE(a,e,r){let t=tf(a,e,r),s=aE.spawn(t.command,t.args,t.options);return rf.hookChildProcess(s,t),s}function M$(a,e,r){let t=tf(a,e,r),s=aE.spawnSync(t.command,t.args,t.options);return s.error=s.error||rf.verifyENOENTSync(s.status,t),s}Dn.exports=sE;Dn.exports.spawn=sE;Dn.exports.sync=M$;Dn.exports._parse=tf;Dn.exports._enoent=rf});var jn,$n,rl,al,lE,uE,Ki=Zs(()=>{"use strict";jn=["bugfix","feature","refactor","discovery","decision","change"],$n=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"],rl={bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",change:"\u2705",discovery:"\u{1F535}",decision:"\u2696\uFE0F","session-request":"\u{1F3AF}"},al={discovery:"\u{1F50D}",change:"\u{1F6E0}\uFE0F",feature:"\u{1F6E0}\uFE0F",bugfix:"\u{1F6E0}\uFE0F",refactor:"\u{1F6E0}\uFE0F",decision:"\u2696\uFE0F"},lE=jn.join(","),uE=$n.join(",")});var Mn,pE,dE,lt,oa=Zs(()=>{"use strict";Mn=require("fs"),pE=require("path"),dE=require("os");Ki();yt();lt=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,pE.join)((0,dE.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:lE,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:uE,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,Mn.existsSync)(e))return this.getAllDefaults();let r=(0,Mn.readFileSync)(e,"utf-8"),t=JSON.parse(r),s=t;if(t.env&&typeof t.env=="object"){s=t.env;try{(0,Mn.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),F.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(n){F.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},n)}}let i={...this.DEFAULTS};for(let n of Object.keys(this.DEFAULTS))s[n]!==void 0&&(i[n]=s[n]);return i}}});var af,sf,F,yt=Zs(()=>{"use strict";oa();af=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(af||{}),sf=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let e=lt.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=af[e]??1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} +`}function _D(){return function(){this.error(404)}}function SD(){return function(e){if(this.hasTrailingSlash()){this.error(404);return}var r=sd.original(this.req);r.path=null,r.pathname=bD(r.pathname+"/");var t=mD(gD.format(r)),s=xD("Redirecting","Redirecting to "+hD(t));e.statusCode=301,e.setHeader("Content-Type","text/html; charset=UTF-8"),e.setHeader("Content-Length",Buffer.byteLength(s)),e.setHeader("Content-Security-Policy","default-src 'none'"),e.setHeader("X-Content-Type-Options","nosniff"),e.setHeader("Location",t),e.end(s)}}});var Lx=U((Ut,Mx)=>{"use strict";var _c=iy(),ED=require("events").EventEmitter,Dx=cy(),Nx=Hb(),wD=Op(),TD=kp(),jx=mx(),$x=kx();Ut=Mx.exports=RD;function RD(){var a=function(e,r,t){a.handle(e,r,t)};return Dx(a,ED.prototype,!1),Dx(a,Nx,!1),a.request=Object.create(jx,{app:{configurable:!0,enumerable:!0,writable:!0,value:a}}),a.response=Object.create($x,{app:{configurable:!0,enumerable:!0,writable:!0,value:a}}),a.init(),a}Ut.application=Nx;Ut.request=jx;Ut.response=$x;Ut.Route=wD;Ut.Router=TD;Ut.json=_c.json;Ut.query=Ap();Ut.raw=_c.raw;Ut.static=Ix();Ut.text=_c.text;Ut.urlencoded=_c.urlencoded;var PD=["bodyParser","compress","cookieSession","session","logger","cookieParser","favicon","responseTime","errorHandler","timeout","methodOverride","vhost","csrf","directory","limit","multipart","staticCache"];PD.forEach(function(a){Object.defineProperty(Ut,a,{get:function(){throw new Error("Most middleware (like "+a+") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.")},configurable:!0})})});var id=U((XF,qx)=>{"use strict";qx.exports=Lx()});var g0=U(($c,v0)=>{(function(a,e){typeof $c=="object"&&typeof v0<"u"?e($c):typeof define=="function"&&define.amd?define(["exports"],e):e(a.URI=a.URI||{})})($c,(function(a){"use strict";function e(){for(var M=arguments.length,I=Array(M),_=0;_1){I[0]=I[0].slice(0,-1);for(var x=I.length-1,T=1;T= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=d-v,$=Math.floor,D=String.fromCharCode;function C(M){throw new RangeError(N[M])}function O(M,I){for(var _=[],x=M.length;x--;)_[x]=I(M[x]);return _}function j(M,I){var _=M.split("@"),x="";_.length>1&&(x=_[0]+"@",M=_[1]),M=M.replace(k,".");var T=M.split("."),L=O(T,I).join(".");return x+L}function q(M){for(var I=[],_=0,x=M.length;_=55296&&T<=56319&&_>1,I+=$(I/_);I>A*h>>1;T+=d)I=$(I/A);return $(T+(A+1)*I/(I+f))},K=function(I){var _=[],x=I.length,T=0,L=b,B=g,J=I.lastIndexOf(w);J<0&&(J=0);for(var ue=0;ue=128&&C("not-basic"),_.push(I.charCodeAt(ue));for(var xe=J>0?J+1:0;xe=x&&C("invalid-input");var Ae=V(I.charCodeAt(xe++));(Ae>=d||Ae>$((m-T)/je))&&C("overflow"),T+=Ae*je;var Se=ye<=B?v:ye>=B+h?h:ye-B;if(Ae$(m/Ie)&&C("overflow"),je*=Ie}var he=_.length+1;B=Z(T-me,he,me==0),$(T/he)>m-L&&C("overflow"),L+=$(T/he),T%=he,_.splice(T++,0,L)}return String.fromCodePoint.apply(String,_)},se=function(I){var _=[];I=q(I);var x=I.length,T=b,L=0,B=g,J=!0,ue=!1,xe=void 0;try{for(var me=I[Symbol.iterator](),je;!(J=(je=me.next()).done);J=!0){var ye=je.value;ye<128&&_.push(D(ye))}}catch(Mt){ue=!0,xe=Mt}finally{try{!J&&me.return&&me.return()}finally{if(ue)throw xe}}var Ae=_.length,Se=Ae;for(Ae&&_.push(w);Se=T&&nt$((m-L)/He)&&C("overflow"),L+=(Ie-T)*He,T=Ie;var ot=!0,ht=!1,vt=void 0;try{for(var Zt=I[Symbol.iterator](),$t;!(ot=($t=Zt.next()).done);ot=!0){var Nr=$t.value;if(Nrm&&C("overflow"),Nr==T){for(var Er=L,wr=d;;wr+=d){var Ot=wr<=B?v:wr>=B+h?h:wr-B;if(Er>6|192).toString(16).toUpperCase()+"%"+(I&63|128).toString(16).toUpperCase():_="%"+(I>>12|224).toString(16).toUpperCase()+"%"+(I>>6&63|128).toString(16).toUpperCase()+"%"+(I&63|128).toString(16).toUpperCase(),_}function De(M){for(var I="",_=0,x=M.length;_=194&&T<224){if(x-_>=6){var L=parseInt(M.substr(_+4,2),16);I+=String.fromCharCode((T&31)<<6|L&63)}else I+=M.substr(_,6);_+=6}else if(T>=224){if(x-_>=9){var B=parseInt(M.substr(_+4,2),16),J=parseInt(M.substr(_+7,2),16);I+=String.fromCharCode((T&15)<<12|(B&63)<<6|J&63)}else I+=M.substr(_,9);_+=9}else I+=M.substr(_,3),_+=3}return I}function H(M,I){function _(x){var T=De(x);return T.match(I.UNRESERVED)?T:x}return M.scheme&&(M.scheme=String(M.scheme).replace(I.PCT_ENCODED,_).toLowerCase().replace(I.NOT_SCHEME,"")),M.userinfo!==void 0&&(M.userinfo=String(M.userinfo).replace(I.PCT_ENCODED,_).replace(I.NOT_USERINFO,we).replace(I.PCT_ENCODED,s)),M.host!==void 0&&(M.host=String(M.host).replace(I.PCT_ENCODED,_).toLowerCase().replace(I.NOT_HOST,we).replace(I.PCT_ENCODED,s)),M.path!==void 0&&(M.path=String(M.path).replace(I.PCT_ENCODED,_).replace(M.scheme?I.NOT_PATH:I.NOT_PATH_NOSCHEME,we).replace(I.PCT_ENCODED,s)),M.query!==void 0&&(M.query=String(M.query).replace(I.PCT_ENCODED,_).replace(I.NOT_QUERY,we).replace(I.PCT_ENCODED,s)),M.fragment!==void 0&&(M.fragment=String(M.fragment).replace(I.PCT_ENCODED,_).replace(I.NOT_FRAGMENT,we).replace(I.PCT_ENCODED,s)),M}function W(M){return M.replace(/^0*(.*)/,"$1")||"0"}function te(M,I){var _=M.match(I.IPV4ADDRESS)||[],x=u(_,2),T=x[1];return T?T.split(".").map(W).join("."):M}function le(M,I){var _=M.match(I.IPV6ADDRESS)||[],x=u(_,3),T=x[1],L=x[2];if(T){for(var B=T.toLowerCase().split("::").reverse(),J=u(B,2),ue=J[0],xe=J[1],me=xe?xe.split(":").map(W):[],je=ue.split(":").map(W),ye=I.IPV4ADDRESS.test(je[je.length-1]),Ae=ye?7:8,Se=je.length-Ae,Ie=Array(Ae),he=0;he1){var Ue=Ie.slice(0,Le.index),nt=Ie.slice(Le.index+Le.length);mt=Ue.join(":")+"::"+nt.join(":")}else mt=Ie.join(":");return L&&(mt+="%"+L),mt}else return M}var G=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,Q="".match(/(){0}/)[1]===void 0;function ne(M){var I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_={},x=I.iri!==!1?c:l;I.reference==="suffix"&&(M=(I.scheme?I.scheme+":":"")+"//"+M);var T=M.match(G);if(T){Q?(_.scheme=T[1],_.userinfo=T[3],_.host=T[4],_.port=parseInt(T[5],10),_.path=T[6]||"",_.query=T[7],_.fragment=T[8],isNaN(_.port)&&(_.port=T[5])):(_.scheme=T[1]||void 0,_.userinfo=M.indexOf("@")!==-1?T[3]:void 0,_.host=M.indexOf("//")!==-1?T[4]:void 0,_.port=parseInt(T[5],10),_.path=T[6]||"",_.query=M.indexOf("?")!==-1?T[7]:void 0,_.fragment=M.indexOf("#")!==-1?T[8]:void 0,isNaN(_.port)&&(_.port=M.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?T[4]:void 0)),_.host&&(_.host=le(te(_.host,x),x)),_.scheme===void 0&&_.userinfo===void 0&&_.host===void 0&&_.port===void 0&&!_.path&&_.query===void 0?_.reference="same-document":_.scheme===void 0?_.reference="relative":_.fragment===void 0?_.reference="absolute":_.reference="uri",I.reference&&I.reference!=="suffix"&&I.reference!==_.reference&&(_.error=_.error||"URI is not a "+I.reference+" reference.");var L=Ee[(I.scheme||_.scheme||"").toLowerCase()];if(!I.unicodeSupport&&(!L||!L.unicodeSupport)){if(_.host&&(I.domainHost||L&&L.domainHost))try{_.host=fe.toASCII(_.host.replace(x.PCT_ENCODED,De).toLowerCase())}catch(B){_.error=_.error||"Host's domain name can not be converted to ASCII via punycode: "+B}H(_,l)}else H(_,x);L&&L.parse&&L.parse(_,I)}else _.error=_.error||"URI can not be parsed.";return _}function Te(M,I){var _=I.iri!==!1?c:l,x=[];return M.userinfo!==void 0&&(x.push(M.userinfo),x.push("@")),M.host!==void 0&&x.push(le(te(String(M.host),_),_).replace(_.IPV6ADDRESS,function(T,L,B){return"["+L+(B?"%25"+B:"")+"]"})),(typeof M.port=="number"||typeof M.port=="string")&&(x.push(":"),x.push(String(M.port))),x.length?x.join(""):void 0}var ce=/^\.\.?\//,$e=/^\/\.(\/|$)/,ze=/^\/\.\.(\/|$)/,_e=/^\/?(?:.|\n)*?(?=\/|$)/;function et(M){for(var I=[];M.length;)if(M.match(ce))M=M.replace(ce,"");else if(M.match($e))M=M.replace($e,"/");else if(M.match(ze))M=M.replace(ze,"/"),I.pop();else if(M==="."||M==="..")M="";else{var _=M.match(_e);if(_){var x=_[0];M=M.slice(x.length),I.push(x)}else throw new Error("Unexpected dot segment condition")}return I.join("")}function Ve(M){var I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},_=I.iri?c:l,x=[],T=Ee[(I.scheme||M.scheme||"").toLowerCase()];if(T&&T.serialize&&T.serialize(M,I),M.host&&!_.IPV6ADDRESS.test(M.host)){if(I.domainHost||T&&T.domainHost)try{M.host=I.iri?fe.toUnicode(M.host):fe.toASCII(M.host.replace(_.PCT_ENCODED,De).toLowerCase())}catch(J){M.error=M.error||"Host's domain name can not be converted to "+(I.iri?"Unicode":"ASCII")+" via punycode: "+J}}H(M,_),I.reference!=="suffix"&&M.scheme&&(x.push(M.scheme),x.push(":"));var L=Te(M,I);if(L!==void 0&&(I.reference!=="suffix"&&x.push("//"),x.push(L),M.path&&M.path.charAt(0)!=="/"&&x.push("/")),M.path!==void 0){var B=M.path;!I.absolutePath&&(!T||!T.absolutePath)&&(B=et(B)),L===void 0&&(B=B.replace(/^\/\//,"/%2F")),x.push(B)}return M.query!==void 0&&(x.push("?"),x.push(M.query)),M.fragment!==void 0&&(x.push("#"),x.push(M.fragment)),x.join("")}function Qe(M,I){var _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},x=arguments[3],T={};return x||(M=ne(Ve(M,_),_),I=ne(Ve(I,_),_)),_=_||{},!_.tolerant&&I.scheme?(T.scheme=I.scheme,T.userinfo=I.userinfo,T.host=I.host,T.port=I.port,T.path=et(I.path||""),T.query=I.query):(I.userinfo!==void 0||I.host!==void 0||I.port!==void 0?(T.userinfo=I.userinfo,T.host=I.host,T.port=I.port,T.path=et(I.path||""),T.query=I.query):(I.path?(I.path.charAt(0)==="/"?T.path=et(I.path):((M.userinfo!==void 0||M.host!==void 0||M.port!==void 0)&&!M.path?T.path="/"+I.path:M.path?T.path=M.path.slice(0,M.path.lastIndexOf("/")+1)+I.path:T.path=I.path,T.path=et(T.path)),T.query=I.query):(T.path=M.path,I.query!==void 0?T.query=I.query:T.query=M.query),T.userinfo=M.userinfo,T.host=M.host,T.port=M.port),T.scheme=M.scheme),T.fragment=I.fragment,T}function Ze(M,I,_){var x=n({scheme:"null"},_);return Ve(Qe(ne(M,x),ne(I,x),x,!0),x)}function Xe(M,I){return typeof M=="string"?M=Ve(ne(M,I),I):t(M)==="object"&&(M=ne(Ve(M,I),I)),M}function Et(M,I,_){return typeof M=="string"?M=Ve(ne(M,_),_):t(M)==="object"&&(M=Ve(M,_)),typeof I=="string"?I=Ve(ne(I,_),_):t(I)==="object"&&(I=Ve(I,_)),M===I}function wt(M,I){return M&&M.toString().replace(!I||!I.iri?l.ESCAPE:c.ESCAPE,we)}function Pt(M,I){return M&&M.toString().replace(!I||!I.iri?l.PCT_ENCODED:c.PCT_ENCODED,De)}var Qr={scheme:"http",domainHost:!0,parse:function(I,_){return I.host||(I.error=I.error||"HTTP URIs must have a host."),I},serialize:function(I,_){var x=String(I.scheme).toLowerCase()==="https";return(I.port===(x?443:80)||I.port==="")&&(I.port=void 0),I.path||(I.path="/"),I}},jt={scheme:"https",domainHost:Qr.domainHost,parse:Qr.parse,serialize:Qr.serialize};function ma(M){return typeof M.secure=="boolean"?M.secure:String(M.scheme).toLowerCase()==="wss"}var ha={scheme:"ws",domainHost:!0,parse:function(I,_){var x=I;return x.secure=ma(x),x.resourceName=(x.path||"/")+(x.query?"?"+x.query:""),x.path=void 0,x.query=void 0,x},serialize:function(I,_){if((I.port===(ma(I)?443:80)||I.port==="")&&(I.port=void 0),typeof I.secure=="boolean"&&(I.scheme=I.secure?"wss":"ws",I.secure=void 0),I.resourceName){var x=I.resourceName.split("?"),T=u(x,2),L=T[0],B=T[1];I.path=L&&L!=="/"?L:void 0,I.query=B,I.resourceName=void 0}return I.fragment=void 0,I}},ti={scheme:"wss",domainHost:ha.domainHost,parse:ha.parse,serialize:ha.serialize},Fa={},co=!0,lo="[A-Za-z0-9\\-\\.\\_\\~"+(co?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]",rr="[0-9A-Fa-f]",uo=r(r("%[EFef]"+rr+"%"+rr+rr+"%"+rr+rr)+"|"+r("%[89A-Fa-f]"+rr+"%"+rr+rr)+"|"+r("%"+rr+rr)),ar="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]",Xl="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",Ql=e(Xl,'[\\"\\\\]'),Yl="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]",Jl=new RegExp(lo,"g"),va=new RegExp(uo,"g"),eu=new RegExp(e("[^]",ar,"[\\.]",'[\\"]',Ql),"g"),Yr=new RegExp(e("[^]",lo,Yl),"g"),tu=Yr;function Ws(M){var I=De(M);return I.match(Jl)?I:M}var po={scheme:"mailto",parse:function(I,_){var x=I,T=x.to=x.path?x.path.split(","):[];if(x.path=void 0,x.query){for(var L=!1,B={},J=x.query.split("&"),ue=0,xe=J.length;ue{"use strict";y0.exports=function a(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return!1;var t,s,i;if(Array.isArray(e)){if(t=e.length,t!=r.length)return!1;for(s=t;s--!==0;)if(!a(e[s],r[s]))return!1;return!0}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();if(i=Object.keys(e),t=i.length,t!==Object.keys(r).length)return!1;for(s=t;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[s]))return!1;for(s=t;s--!==0;){var n=i[s];if(!a(e[n],r[n]))return!1}return!0}return e!==e&&r!==r}});var x0=U((j3,b0)=>{"use strict";b0.exports=function(e){for(var r=0,t=e.length,s=0,i;s=55296&&i<=56319&&s{"use strict";E0.exports={copy:N2,checkDataType:wd,checkDataTypes:j2,coerceToTypes:$2,toHash:Rd,getProperty:Pd,escapeQuotes:Od,equal:Mc(),ucs2length:x0(),varOccurences:q2,varReplace:F2,schemaHasRules:U2,schemaHasRulesExcept:H2,schemaUnknownRules:B2,toQuotedString:Td,getPathExpr:z2,getPath:V2,getData:Z2,unescapeFragment:K2,unescapeJsonPointer:kd,escapeFragment:X2,escapeJsonPointer:Cd};function N2(a,e){e=e||{};for(var r in a)e[r]=a[r];return e}function wd(a,e,r,t){var s=t?" !== ":" === ",i=t?" || ":" && ",n=t?"!":"",o=t?"":"!";switch(a){case"null":return e+s+"null";case"array":return n+"Array.isArray("+e+")";case"object":return"("+n+e+i+"typeof "+e+s+'"object"'+i+o+"Array.isArray("+e+"))";case"integer":return"(typeof "+e+s+'"number"'+i+o+"("+e+" % 1)"+i+e+s+e+(r?i+n+"isFinite("+e+")":"")+")";case"number":return"(typeof "+e+s+'"'+a+'"'+(r?i+n+"isFinite("+e+")":"")+")";default:return"typeof "+e+s+'"'+a+'"'}}function j2(a,e,r){switch(a.length){case 1:return wd(a[0],e,r,!0);default:var t="",s=Rd(a);s.array&&s.object&&(t=s.null?"(":"(!"+e+" || ",t+="typeof "+e+' !== "object")',delete s.null,delete s.array,delete s.object),s.number&&delete s.integer;for(var i in s)t+=(t?" && ":"")+wd(i,e,r,!0);return t}}var _0=Rd(["string","number","integer","boolean","null"]);function $2(a,e){if(Array.isArray(e)){for(var r=[],t=0;t=e)throw new Error("Cannot access property/index "+t+" levels up, current level is "+e);return r[e-t]}if(t>e)throw new Error("Cannot access data "+t+" levels up, current level is "+e);if(i="data"+(e-t||""),!s)return i}for(var o=i,l=s.split("/"),c=0;c{"use strict";var Q2=_s();w0.exports=Y2;function Y2(a){Q2.copy(a,this)}});var R0=U((L3,T0)=>{"use strict";var Da=T0.exports=function(a,e,r){typeof e=="function"&&(r=e,e={}),r=e.cb||r;var t=typeof r=="function"?r:r.pre||function(){},s=r.post||function(){};Lc(e,t,s,a,"",a)};Da.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0};Da.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};Da.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};Da.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Lc(a,e,r,t,s,i,n,o,l,c){if(t&&typeof t=="object"&&!Array.isArray(t)){e(t,s,i,n,o,l,c);for(var u in t){var p=t[u];if(Array.isArray(p)){if(u in Da.arrayKeywords)for(var m=0;m{"use strict";var Gi=g0(),P0=Mc(),Hc=_s(),qc=Ad(),ej=R0();k0.exports=ja;ja.normalizeId=Na;ja.fullPath=Fc;ja.url=Uc;ja.ids=nj;ja.inlineRef=Id;ja.schema=Bc;function ja(a,e,r){var t=this._refs[r];if(typeof t=="string")if(this._refs[t])t=this._refs[t];else return ja.call(this,a,e,t);if(t=t||this._schemas[r],t instanceof qc)return Id(t.schema,this._opts.inlineRefs)?t.schema:t.validate||this._compile(t);var s=Bc.call(this,e,r),i,n,o;return s&&(i=s.schema,e=s.root,o=s.baseId),i instanceof qc?n=i.validate||a.call(this,i.schema,e,void 0,o):i!==void 0&&(n=Id(i,this._opts.inlineRefs)?i:a.call(this,i,e,void 0,o)),n}function Bc(a,e){var r=Gi.parse(e),t=C0(r),s=Fc(this._getId(a.schema));if(Object.keys(a.schema).length===0||t!==s){var i=Na(t),n=this._refs[i];if(typeof n=="string")return tj.call(this,a,n,r);if(n instanceof qc)n.validate||this._compile(n),a=n;else if(n=this._schemas[i],n instanceof qc){if(n.validate||this._compile(n),i==Na(e))return{schema:n,root:a,baseId:s};a=n}else return;if(!a.schema)return;s=Fc(this._getId(a.schema))}return O0.call(this,r,s,a.schema,a)}function tj(a,e,r){var t=Bc.call(this,a,e);if(t){var s=t.schema,i=t.baseId;a=t.root;var n=this._getId(s);return n&&(i=Uc(i,n)),O0.call(this,r,i,s,a)}}var rj=Hc.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function O0(a,e,r,t){if(a.fragment=a.fragment||"",a.fragment.slice(0,1)=="/"){for(var s=a.fragment.split("/"),i=1;i{"use strict";var jd=zc();I0.exports={Validation:A0(ij),MissingRef:A0($d)};function ij(a){this.message="validation failed",this.errors=a,this.ajv=this.validation=!0}$d.message=function(a,e){return"can't resolve reference "+e+" from id "+a};function $d(a,e,r){this.message=r||$d.message(a,e),this.missingRef=jd.url(a,e),this.missingSchema=jd.normalizeId(jd.fullPath(this.missingRef))}function A0(a){return a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a}});var Md=U((U3,D0)=>{"use strict";D0.exports=function(a,e){e||(e={}),typeof e=="function"&&(e={cmp:e});var r=typeof e.cycles=="boolean"?e.cycles:!1,t=e.cmp&&(function(i){return function(n){return function(o,l){var c={key:o,value:n[o]},u={key:l,value:n[l]};return i(c,u)}}})(e.cmp),s=[];return(function i(n){if(n&&n.toJSON&&typeof n.toJSON=="function"&&(n=n.toJSON()),n!==void 0){if(typeof n=="number")return isFinite(n)?""+n:"null";if(typeof n!="object")return JSON.stringify(n);var o,l;if(Array.isArray(n)){for(l="[",o=0;o{"use strict";N0.exports=function(e,r,t){var s="",i=e.schema.$async===!0,n=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var l=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(l){var c="unknown keyword: "+l;if(e.opts.strictKeywords==="log")e.logger.warn(c);else throw new Error(c)}}if(e.isTop&&(s+=" var validate = ",i&&(e.async=!0,s+="async "),s+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(e.opts.sourceCode||e.opts.processCode)&&(s+=" "+("/*# sourceURL="+o+" */")+" ")),typeof e.schema=="boolean"||!(n||e.schema.$ref)){var r="false schema",u=e.level,p=e.dataLevel,m=e.schema[r],d=e.schemaPath+e.util.getProperty(r),v=e.errSchemaPath+"/"+r,P=!e.opts.allErrors,N,h="data"+(p||""),w="valid"+u;if(e.schema===!1){e.isTop?P=!0:s+=" var "+w+" = false; ";var f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(N||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(v)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'boolean schema is false' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var y=s;s=f.pop(),!e.compositeRule&&P?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?i?s+=" return data; ":s+=" validate.errors = null; return true; ":s+=" var "+w+" = true; ";return e.isTop&&(s+=" }; return validate; "),s}if(e.isTop){var g=e.isTop,u=e.level=0,p=e.dataLevel=0,h="data";if(e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],e.schema.default!==void 0&&e.opts.useDefaults&&e.opts.strictDefaults){var b="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(b);else throw new Error(b)}s+=" var vErrors = null; ",s+=" var errors = 0; ",s+=" if (rootData === undefined) rootData = data; "}else{var u=e.level,p=e.dataLevel,h="data"+(p||"");if(o&&(e.baseId=e.resolve.url(e.baseId,o)),i&&!e.async)throw new Error("async schema in sync schema");s+=" var errs_"+u+" = errors;"}var w="valid"+u,P=!e.opts.allErrors,R="",k="",N,A=e.schema.type,$=Array.isArray(A);if(A&&e.opts.nullable&&e.schema.nullable===!0&&($?A.indexOf("null")==-1&&(A=A.concat("null")):A!="null"&&(A=[A,"null"],$=!0)),$&&A.length==1&&(A=A[0],$=!1),e.schema.$ref&&n){if(e.opts.extendRefs=="fail")throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');e.opts.extendRefs!==!0&&(n=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(s+=" "+e.RULES.all.$comment.code(e,"$comment")),A){if(e.opts.coerceTypes)var D=e.util.coerceToTypes(e.opts.coerceTypes,A);var C=e.RULES.types[A];if(D||$||C===!0||C&&!_e(C)){var d=e.schemaPath+".type",v=e.errSchemaPath+"/type",d=e.schemaPath+".type",v=e.errSchemaPath+"/type",O=$?"checkDataTypes":"checkDataType";if(s+=" if ("+e.util[O](A,h,e.opts.strictNumbers,!0)+") { ",D){var j="dataType"+u,q="coerced"+u;s+=" var "+j+" = typeof "+h+"; var "+q+" = undefined; ",e.opts.coerceTypes=="array"&&(s+=" if ("+j+" == 'object' && Array.isArray("+h+") && "+h+".length == 1) { "+h+" = "+h+"[0]; "+j+" = typeof "+h+"; if ("+e.util.checkDataType(e.schema.type,h,e.opts.strictNumbers)+") "+q+" = "+h+"; } "),s+=" if ("+q+" !== undefined) ; ";var z=D;if(z)for(var V,X=-1,Z=z.length-1;X{"use strict";var Wc=zc(),Zc=_s(),$0=Vc(),oj=Md(),j0=Ld(),cj=Zc.ucs2length,lj=Mc(),uj=$0.Validation;L0.exports=qd;function qd(a,e,r,t){var s=this,i=this._opts,n=[void 0],o={},l=[],c={},u=[],p={},m=[];e=e||{schema:a,refVal:n,refs:o};var d=pj.call(this,a,e,t),v=this._compilations[d.index];if(d.compiling)return v.callValidate=b;var h=this._formats,f=this.RULES;try{var y=w(a,e,r,t);v.validate=y;var g=v.callValidate;return g&&(g.schema=y.schema,g.errors=null,g.refs=y.refs,g.refVal=y.refVal,g.root=y.root,g.$async=y.$async,i.sourceCode&&(g.source=y.source)),y}finally{dj.call(this,a,e,t)}function b(){var O=v.validate,j=O.apply(this,arguments);return b.errors=O.errors,j}function w(O,j,q,z){var V=!j||j&&j.schema==O;if(j.schema!=e.schema)return qd.call(s,O,j,q,z);var X=O.$async===!0,Z=j0({isTop:!0,schema:O,isRoot:V,baseId:z,root:j,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:$0.MissingRef,RULES:f,validate:j0,util:Zc,resolve:Wc,resolveRef:P,usePattern:$,useDefault:D,useCustomRule:C,opts:i,formats:h,logger:s.logger,self:s});Z=Gc(n,hj)+Gc(l,fj)+Gc(u,mj)+Gc(m,vj)+Z,i.processCode&&(Z=i.processCode(Z,O));var K;try{var se=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",Z);K=se(s,f,h,e,n,u,m,lj,cj,uj),n[0]=K}catch(Y){throw s.logger.error("Error compiling schema, function code:",Z),Y}return K.schema=O,K.errors=null,K.refs=o,K.refVal=n,K.root=V?K:j,X&&(K.$async=!0),i.sourceCode===!0&&(K.source={code:Z,patterns:l,defaults:u}),K}function P(O,j,q){j=Wc.url(O,j);var z=o[j],V,X;if(z!==void 0)return V=n[z],X="refVal["+z+"]",A(V,X);if(!q&&e.refs){var Z=e.refs[j];if(Z!==void 0)return V=e.refVal[Z],X=R(j,V),A(V,X)}X=R(j);var K=Wc.call(s,w,e,j);if(K===void 0){var se=r&&r[j];se&&(K=Wc.inlineRef(se,i.inlineRefs)?se:qd.call(s,se,e,r,O))}if(K===void 0)k(j);else return N(j,K),A(K,X)}function R(O,j){var q=n.length;return n[q]=j,o[O]=q,"refVal"+q}function k(O){delete o[O]}function N(O,j){var q=o[O];n[q]=j}function A(O,j){return typeof O=="object"||typeof O=="boolean"?{code:j,schema:O,inline:!0}:{code:j,$async:O&&!!O.$async}}function $(O){var j=c[O];return j===void 0&&(j=c[O]=l.length,l[j]=O),"pattern"+j}function D(O){switch(typeof O){case"boolean":case"number":return""+O;case"string":return Zc.toQuotedString(O);case"object":if(O===null)return"null";var j=oj(O),q=p[j];return q===void 0&&(q=p[j]=u.length,u[q]=O),"default"+q}}function C(O,j,q,z){if(s._opts.validateSchema!==!1){var V=O.definition.dependencies;if(V&&!V.every(function(we){return Object.prototype.hasOwnProperty.call(q,we)}))throw new Error("parent schema must have all required keywords: "+V.join(","));var X=O.definition.validateSchema;if(X){var Z=X(j);if(!Z){var K="keyword schema is invalid: "+s.errorsText(X.errors);if(s._opts.validateSchema=="log")s.logger.error(K);else throw new Error(K)}}}var se=O.definition.compile,Y=O.definition.inline,Pe=O.definition.macro,fe;if(se)fe=se.call(s,j,q,z);else if(Pe)fe=Pe.call(s,j,q,z),i.validateSchema!==!1&&s.validateSchema(fe,!0);else if(Y)fe=Y.call(s,z,O.keyword,j,q);else if(fe=O.definition.validate,!fe)return;if(fe===void 0)throw new Error('custom keyword "'+O.keyword+'"failed to compile');var Ee=m.length;return m[Ee]=fe,{code:"customRule"+Ee,validate:fe}}}function pj(a,e,r){var t=M0.call(this,a,e,r);return t>=0?{index:t,compiling:!0}:(t=this._compilations.length,this._compilations[t]={schema:a,root:e,baseId:r},{index:t,compiling:!1})}function dj(a,e,r){var t=M0.call(this,a,e,r);t>=0&&this._compilations.splice(t,1)}function M0(a,e,r){for(var t=0;t{"use strict";var Kc=F0.exports=function(){this._cache={}};Kc.prototype.put=function(e,r){this._cache[e]=r};Kc.prototype.get=function(e){return this._cache[e]};Kc.prototype.del=function(e){delete this._cache[e]};Kc.prototype.clear=function(){this._cache={}}});var J0=U((V3,Y0)=>{"use strict";var gj=_s(),yj=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,bj=[0,31,28,31,30,31,30,31,31,30,31,30,31],xj=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,H0=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,_j=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,Sj=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,B0=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,z0=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,V0=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,W0=/^(?:\/(?:[^~/]|~0|~1)*)*$/,G0=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Z0=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;Y0.exports=Xc;function Xc(a){return a=a=="full"?"full":"fast",gj.copy(Xc[a])}Xc.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":B0,url:z0,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:H0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q0,uuid:V0,"json-pointer":W0,"json-pointer-uri-fragment":G0,"relative-json-pointer":Z0};Xc.full={date:K0,time:X0,"date-time":Tj,uri:Pj,"uri-reference":Sj,"uri-template":B0,url:z0,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:H0,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:Q0,uuid:V0,"json-pointer":W0,"json-pointer-uri-fragment":G0,"relative-json-pointer":Z0};function Ej(a){return a%4===0&&(a%100!==0||a%400===0)}function K0(a){var e=a.match(yj);if(!e)return!1;var r=+e[1],t=+e[2],s=+e[3];return t>=1&&t<=12&&s>=1&&s<=(t==2&&Ej(r)?29:bj[t])}function X0(a,e){var r=a.match(xj);if(!r)return!1;var t=r[1],s=r[2],i=r[3],n=r[5];return(t<=23&&s<=59&&i<=59||t==23&&s==59&&i==60)&&(!e||n)}var wj=/t|\s/i;function Tj(a){var e=a.split(wj);return e.length==2&&K0(e[0])&&X0(e[1],!0)}var Rj=/\/|:/;function Pj(a){return Rj.test(a)&&_j.test(a)}var Oj=/[^\\]\\Z/;function Q0(a){if(Oj.test(a))return!1;try{return new RegExp(a),!0}catch{return!1}}});var t_=U((W3,e_)=>{"use strict";e_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(n||""),p="valid"+i,m,d;if(o=="#"||o=="#/")e.isRoot?(m=e.async,d="validate"):(m=e.root.schema.$async===!0,d="root.refVal[0]");else{var v=e.resolveRef(e.baseId,o,e.isRoot);if(v===void 0){var h=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(h);var f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ",e.opts.messages!==!1&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),s+=" } "):s+=" {} ";var y=s;s=f.pop(),!e.compositeRule&&c?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(s+=" if (false) { ")}else if(e.opts.missingRefs=="ignore")e.logger.warn(h),c&&(s+=" if (true) { ");else throw new e.MissingRefError(e.baseId,o,h)}else if(v.inline){var g=e.util.copy(e);g.level++;var b="valid"+g.level;g.schema=v.schema,g.schemaPath="",g.errSchemaPath=o;var w=e.validate(g).replace(/validate\.schema/g,v.code);s+=" "+w+" ",c&&(s+=" if ("+b+") { ")}else m=v.$async===!0||e.async&&v.$async!==!1,d=v.code}if(d){var f=f||[];f.push(s),s="",e.opts.passContext?s+=" "+d+".call(this, ":s+=" "+d+"( ",s+=" "+u+", (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var P=n?"data"+(n-1||""):"parentData",R=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+P+" , "+R+", rootData) ";var k=s;if(s=f.pop(),m){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(s+=" var "+p+"; "),s+=" try { await "+k+"; ",c&&(s+=" "+p+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(s+=" "+p+" = false; "),s+=" } ",c&&(s+=" if ("+p+") { ")}else s+=" if (!"+k+") { if (vErrors === null) vErrors = "+d+".errors; else vErrors = vErrors.concat("+d+".errors); errors = vErrors.length; } ",c&&(s+=" else { ")}return s}});var a_=U((G3,r_)=>{"use strict";r_.exports=function(e,r,t){var s=" ",i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c=e.util.copy(e),u="";c.level++;var p="valid"+c.level,m=c.baseId,d=!0,v=i;if(v)for(var h,f=-1,y=v.length-1;f0||h===!1:e.util.schemaHasRules(h,e.RULES.all))&&(d=!1,c.schema=h,c.schemaPath=n+"["+f+"]",c.errSchemaPath=o+"/"+f,s+=" "+e.validate(c)+" ",c.baseId=m,l&&(s+=" if ("+p+") { ",u+="}"));return l&&(d?s+=" if (true) { ":s+=" "+u.slice(0,-1)+" "),s}});var n_=U((Z3,s_)=>{"use strict";s_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y=o.every(function(N){return e.opts.strictKeywords?typeof N=="object"&&Object.keys(N).length>0||N===!1:e.util.schemaHasRules(N,e.RULES.all)});if(y){var g=v.baseId;s+=" var "+d+" = errors; var "+m+" = false; ";var b=e.compositeRule;e.compositeRule=v.compositeRule=!0;var w=o;if(w)for(var P,R=-1,k=w.length-1;R{"use strict";i_.exports=function(e,r,t){var s=" ",i=e.schema[r],n=e.errSchemaPath+"/"+r,o=!e.opts.allErrors,l=e.util.toQuotedString(i);return e.opts.$comment===!0?s+=" console.log("+l+");":typeof e.opts.$comment=="function"&&(s+=" self._opts.$comment("+l+", "+e.util.toQuotedString(n)+", validate.root.schema);"),s}});var l_=U((X3,c_)=>{"use strict";c_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o,d||(s+=" var schema"+i+" = validate.schema"+l+";"),s+="var "+m+" = equal("+p+", schema"+i+"); if (!"+m+") { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValue: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to constant' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var f=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var p_=U((Q3,u_)=>{"use strict";u_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y="i"+i,g=v.dataLevel=e.dataLevel+1,b="data"+g,w=e.baseId,P=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all);if(s+="var "+d+" = errors;var "+m+";",P){var R=e.compositeRule;e.compositeRule=v.compositeRule=!0,v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" var "+f+" = false; for (var "+y+" = 0; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var k=p+"["+y+"]";v.dataPathArr[g]=y;var N=e.validate(v);v.baseId=w,e.util.varOccurences(N,b)<2?s+=" "+e.util.varReplace(N,b,k)+" ":s+=" var "+b+" = "+k+"; "+N+" ",s+=" if ("+f+") break; } ",e.compositeRule=v.compositeRule=R,s+=" "+h+" if (!"+f+") {"}else s+=" if ("+p+".length == 0) {";var A=A||[];A.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should contain a valid item' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var $=s;return s=A.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+$+"]); ":s+=" validate.errors = ["+$+"]; return false; ":s+=" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { ",P&&(s+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(s+=" } "),s}});var f_=U((Y3,d_)=>{"use strict";d_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level,f={},y={},g=e.opts.ownProperties;for(R in o)if(R!="__proto__"){var b=o[R],w=Array.isArray(b)?y:f;w[R]=b}s+="var "+m+" = errors;";var P=e.errorPath;s+="var missing"+i+";";for(var R in y)if(w=y[R],w.length){if(s+=" if ( "+p+e.util.getProperty(R)+" !== undefined ",g&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(R)+"') "),u){s+=" && ( ";var k=w;if(k)for(var N,A=-1,$=k.length-1;A<$;){N=k[A+=1],A&&(s+=" || ");var D=e.util.getProperty(N),C=p+D;s+=" ( ( "+C+" === undefined ",g&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(N)+"') "),s+=") && (missing"+i+" = "+e.util.toQuotedString(e.opts.jsonPointers?N:D)+") ) "}s+=")) { ";var O="missing"+i,j="' + "+O+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,O,!0):P+" + "+O);var q=q||[];q.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { property: '"+e.util.escapeQuotes(R)+"', missingProperty: '"+j+"', depsCount: "+w.length+", deps: '"+e.util.escapeQuotes(w.length==1?w[0]:w.join(", "))+"' } ",e.opts.messages!==!1&&(s+=" , message: 'should have ",w.length==1?s+="property "+e.util.escapeQuotes(w[0]):s+="properties "+e.util.escapeQuotes(w.join(", ")),s+=" when property "+e.util.escapeQuotes(R)+" is present' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var z=s;s=q.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+z+"]); ":s+=" validate.errors = ["+z+"]; return false; ":s+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{s+=" ) { ";var V=w;if(V)for(var N,X=-1,Z=V.length-1;X0||b===!1:e.util.schemaHasRules(b,e.RULES.all))&&(s+=" "+h+" = true; if ( "+p+e.util.getProperty(R)+" !== undefined ",g&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(R)+"') "),s+=") { ",d.schema=b,d.schemaPath=l+e.util.getProperty(R),d.errSchemaPath=c+"/"+e.util.escapeFragment(R),s+=" "+e.validate(d)+" ",d.baseId=K,s+=" } ",u&&(s+=" if ("+h+") { ",v+="}"))}return u&&(s+=" "+v+" if ("+m+" == errors) {"),s}});var h_=U((J3,m_)=>{"use strict";m_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var h="i"+i,f="schema"+i;d||(s+=" var "+f+" = validate.schema"+l+";"),s+="var "+m+";",d&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=""+m+" = false;for (var "+h+"=0; "+h+"<"+f+".length; "+h+"++) if (equal("+p+", "+f+"["+h+"])) { "+m+" = true; break; }",d&&(s+=" } "),s+=" if (!"+m+") { ";var y=y||[];y.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { allowedValues: schema"+i+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;return s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" }",u&&(s+=" else { "),s}});var g_=U((eU,v_)=>{"use strict";v_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||"");if(e.opts.format===!1)return u&&(s+=" if (true) { "),s;var m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=e.opts.unknownFormats,h=Array.isArray(v);if(m){var f="format"+i,y="isObject"+i,g="formatType"+i;s+=" var "+f+" = formats["+d+"]; var "+y+" = typeof "+f+" == 'object' && !("+f+" instanceof RegExp) && "+f+".validate; var "+g+" = "+y+" && "+f+".type || 'string'; if ("+y+") { ",e.async&&(s+=" var async"+i+" = "+f+".async; "),s+=" "+f+" = "+f+".validate; } if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),s+=" (",v!="ignore"&&(s+=" ("+d+" && !"+f+" ",h&&(s+=" && self._opts.unknownFormats.indexOf("+d+") == -1 "),s+=") || "),s+=" ("+f+" && "+g+" == '"+t+"' && !(typeof "+f+" == 'function' ? ",e.async?s+=" (async"+i+" ? await "+f+"("+p+") : "+f+"("+p+")) ":s+=" "+f+"("+p+") ",s+=" : "+f+".test("+p+"))))) {"}else{var f=e.formats[o];if(!f){if(v=="ignore")return e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"'),u&&(s+=" if (true) { "),s;if(h&&v.indexOf(o)>=0)return u&&(s+=" if (true) { "),s;throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}var y=typeof f=="object"&&!(f instanceof RegExp)&&f.validate,g=y&&f.type||"string";if(y){var b=f.async===!0;f=f.validate}if(g!=t)return u&&(s+=" if (true) { "),s;if(b){if(!e.async)throw new Error("async format in sync schema");var w="formats"+e.util.getProperty(o)+".validate";s+=" if (!(await "+w+"("+p+"))) { "}else{s+=" if (! ";var w="formats"+e.util.getProperty(o);y&&(w+=".validate"),typeof f=="function"?s+=" "+w+"("+p+") ":s+=" "+w+".test("+p+") ",s+=") { "}}var P=P||[];P.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { format: ",m?s+=""+d:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match format "`,m?s+="' + "+d+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var R=s;return s=P.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var b_=U((tU,y_)=>{"use strict";y_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e);v.level++;var h="valid"+v.level,f=e.schema.then,y=e.schema.else,g=f!==void 0&&(e.opts.strictKeywords?typeof f=="object"&&Object.keys(f).length>0||f===!1:e.util.schemaHasRules(f,e.RULES.all)),b=y!==void 0&&(e.opts.strictKeywords?typeof y=="object"&&Object.keys(y).length>0||y===!1:e.util.schemaHasRules(y,e.RULES.all)),w=v.baseId;if(g||b){var P;v.createErrors=!1,v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" var "+d+" = errors; var "+m+" = true; ";var R=e.compositeRule;e.compositeRule=v.compositeRule=!0,s+=" "+e.validate(v)+" ",v.baseId=w,v.createErrors=!0,s+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=v.compositeRule=R,g?(s+=" if ("+h+") { ",v.schema=e.schema.then,v.schemaPath=e.schemaPath+".then",v.errSchemaPath=e.errSchemaPath+"/then",s+=" "+e.validate(v)+" ",v.baseId=w,s+=" "+m+" = "+h+"; ",g&&b?(P="ifClause"+i,s+=" var "+P+" = 'then'; "):P="'then'",s+=" } ",b&&(s+=" else { ")):s+=" if (!"+h+") { ",b&&(v.schema=e.schema.else,v.schemaPath=e.schemaPath+".else",v.errSchemaPath=e.errSchemaPath+"/else",s+=" "+e.validate(v)+" ",v.baseId=w,s+=" "+m+" = "+h+"; ",g&&b?(P="ifClause"+i,s+=" var "+P+" = 'else'; "):P="'else'",s+=" } "),s+=" if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { failingKeyword: "+P+" } ",e.opts.messages!==!1&&(s+=` , message: 'should match "' + `+P+` + '" schema' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var __=U((rU,x_)=>{"use strict";x_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y="i"+i,g=v.dataLevel=e.dataLevel+1,b="data"+g,w=e.baseId;if(s+="var "+d+" = errors;var "+m+";",Array.isArray(o)){var P=e.schema.additionalItems;if(P===!1){s+=" "+m+" = "+p+".length <= "+o.length+"; ";var R=c;c=e.errSchemaPath+"/additionalItems",s+=" if (!"+m+") { ";var k=k||[];k.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+o.length+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(s+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var N=s;s=k.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+N+"]); ":s+=" validate.errors = ["+N+"]; return false; ":s+=" var err = "+N+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",c=R,u&&(h+="}",s+=" else { ")}var A=o;if(A){for(var $,D=-1,C=A.length-1;D0||$===!1:e.util.schemaHasRules($,e.RULES.all)){s+=" "+f+" = true; if ("+p+".length > "+D+") { ";var O=p+"["+D+"]";v.schema=$,v.schemaPath=l+"["+D+"]",v.errSchemaPath=c+"/"+D,v.errorPath=e.util.getPathExpr(e.errorPath,D,e.opts.jsonPointers,!0),v.dataPathArr[g]=D;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",s+=" } ",u&&(s+=" if ("+f+") { ",h+="}")}}if(typeof P=="object"&&(e.opts.strictKeywords?typeof P=="object"&&Object.keys(P).length>0||P===!1:e.util.schemaHasRules(P,e.RULES.all))){v.schema=P,v.schemaPath=e.schemaPath+".additionalItems",v.errSchemaPath=e.errSchemaPath+"/additionalItems",s+=" "+f+" = true; if ("+p+".length > "+o.length+") { for (var "+y+" = "+o.length+"; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var O=p+"["+y+"]";v.dataPathArr[g]=y;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",u&&(s+=" if (!"+f+") break; "),s+=" } } ",u&&(s+=" if ("+f+") { ",h+="}")}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){v.schema=o,v.schemaPath=l,v.errSchemaPath=c,s+=" for (var "+y+" = 0; "+y+" < "+p+".length; "+y+"++) { ",v.errorPath=e.util.getPathExpr(e.errorPath,y,e.opts.jsonPointers,!0);var O=p+"["+y+"]";v.dataPathArr[g]=y;var j=e.validate(v);v.baseId=w,e.util.varOccurences(j,b)<2?s+=" "+e.util.varReplace(j,b,O)+" ":s+=" var "+b+" = "+O+"; "+j+" ",u&&(s+=" if (!"+f+") break; "),s+=" }"}return u&&(s+=" "+h+" if ("+d+" == errors) {"),s}});var Fd=U((aU,S_)=>{"use strict";S_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,w,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=r=="maximum",h=v?"exclusiveMaximum":"exclusiveMinimum",f=e.schema[h],y=e.opts.$data&&f&&f.$data,g=v?"<":">",b=v?">":"<",w=void 0;if(!(m||typeof o=="number"||o===void 0))throw new Error(r+" must be number");if(!(y||f===void 0||typeof f=="number"||typeof f=="boolean"))throw new Error(h+" must be number or boolean");if(y){var P=e.util.getData(f.$data,n,e.dataPathArr),R="exclusive"+i,k="exclType"+i,N="exclIsNumber"+i,A="op"+i,$="' + "+A+" + '";s+=" var schemaExcl"+i+" = "+P+"; ",P="schemaExcl"+i,s+=" var "+R+"; var "+k+" = typeof "+P+"; if ("+k+" != 'boolean' && "+k+" != 'undefined' && "+k+" != 'number') { ";var w=h,D=D||[];D.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(w||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: '"+h+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;s=D.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+k+" == 'number' ? ( ("+R+" = "+d+" === undefined || "+P+" "+g+"= "+d+") ? "+p+" "+b+"= "+P+" : "+p+" "+b+" "+d+" ) : ( ("+R+" = "+P+" === true) ? "+p+" "+b+"= "+d+" : "+p+" "+b+" "+d+" ) || "+p+" !== "+p+") { var op"+i+" = "+R+" ? '"+g+"' : '"+g+"='; ",o===void 0&&(w=h,c=e.errSchemaPath+"/"+h,d=P,m=y)}else{var N=typeof f=="number",$=g;if(N&&m){var A="'"+$+"'";s+=" if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" ( "+d+" === undefined || "+f+" "+g+"= "+d+" ? "+p+" "+b+"= "+f+" : "+p+" "+b+" "+d+" ) || "+p+" !== "+p+") { "}else{N&&o===void 0?(R=!0,w=h,c=e.errSchemaPath+"/"+h,d=f,b+="="):(N&&(d=Math[v?"min":"max"](f,o)),f===(N?d:!0)?(R=!0,w=h,c=e.errSchemaPath+"/"+h,b+="="):(R=!1,$+="="));var A="'"+$+"'";s+=" if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+p+" "+b+" "+d+" || "+p+" !== "+p+") { "}}w=w||r;var D=D||[];D.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(w||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+A+", limit: "+d+", exclusive: "+R+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be "+$+" ",m?s+="' + "+d:s+=""+d+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var C=s;return s=D.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+C+"]); ":s+=" validate.errors = ["+C+"]; return false; ":s+=" var err = "+C+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}});var Ud=U((sU,E_)=>{"use strict";E_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxItems"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" "+p+".length "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",r=="maxItems"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Hd=U((nU,w_)=>{"use strict";w_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxLength"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),e.opts.unicode===!1?s+=" "+p+".length ":s+=" ucs2length("+p+") ",s+=" "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be ",r=="maxLength"?s+="longer":s+="shorter",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var Bd=U((iU,T_)=>{"use strict";T_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");var v=r=="maxProperties"?">":"<";s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "),s+=" Object.keys("+p+").length "+v+" "+d+") { ";var h=r,f=f||[];f.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(h||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have ",r=="maxProperties"?s+="more":s+="fewer",s+=" than ",m?s+="' + "+d+" + '":s+=""+o,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var y=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+y+"]); ":s+=" validate.errors = ["+y+"]; return false; ":s+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var P_=U((oU,R_)=>{"use strict";R_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;if(m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o,!(m||typeof o=="number"))throw new Error(r+" must be number");s+="var division"+i+";if (",m&&(s+=" "+d+" !== undefined && ( typeof "+d+" != 'number' || "),s+=" (division"+i+" = "+p+" / "+d+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+i+") - division"+i+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+i+" !== parseInt(division"+i+") ",s+=" ) ",m&&(s+=" ) "),s+=" ) { ";var v=v||[];v.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+d+" } ",e.opts.messages!==!1&&(s+=" , message: 'should be multiple of ",m?s+="' + "+d:s+=""+d+"'"),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var h=s;return s=v.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+h+"]); ":s+=" validate.errors = ["+h+"]; return false; ":s+=" var err = "+h+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var C_=U((cU,O_)=>{"use strict";O_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e);d.level++;var v="valid"+d.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=l,d.errSchemaPath=c,s+=" var "+m+" = errors; ";var h=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var f;d.opts.allErrors&&(f=d.opts.allErrors,d.opts.allErrors=!1),s+=" "+e.validate(d)+" ",d.createErrors=!0,f&&(d.opts.allErrors=f),e.compositeRule=d.compositeRule=h,s+=" if ("+v+") { ";var y=y||[];y.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var g=s;s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { errors = "+m+"; if (vErrors !== null) { if ("+m+") vErrors.length = "+m+"; else vErrors = null; } ",e.opts.allErrors&&(s+=" } ")}else s+=" var err = ",e.createErrors!==!1?(s+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",e.opts.messages!==!1&&(s+=" , message: 'should NOT be valid' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(s+=" if (false) { ");return s}});var A_=U((lU,k_)=>{"use strict";k_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d="errs__"+i,v=e.util.copy(e),h="";v.level++;var f="valid"+v.level,y=v.baseId,g="prevValid"+i,b="passingSchemas"+i;s+="var "+d+" = errors , "+g+" = false , "+m+" = false , "+b+" = null; ";var w=e.compositeRule;e.compositeRule=v.compositeRule=!0;var P=o;if(P)for(var R,k=-1,N=P.length-1;k0||R===!1:e.util.schemaHasRules(R,e.RULES.all))?(v.schema=R,v.schemaPath=l+"["+k+"]",v.errSchemaPath=c+"/"+k,s+=" "+e.validate(v)+" ",v.baseId=y):s+=" var "+f+" = true; ",k&&(s+=" if ("+f+" && "+g+") { "+m+" = false; "+b+" = ["+b+", "+k+"]; } else { ",h+="}"),s+=" if ("+f+") { "+m+" = "+g+" = true; "+b+" = "+k+"; }";return e.compositeRule=v.compositeRule=w,s+=""+h+"if (!"+m+") { var err = ",e.createErrors!==!1?(s+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { passingSchemas: "+b+" } ",e.opts.messages!==!1&&(s+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(e.async?s+=" throw new ValidationError(vErrors); ":s+=" validate.errors = vErrors; return false; "),s+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(s+=" } "),s}});var D_=U((uU,I_)=>{"use strict";I_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m=e.opts.$data&&o&&o.$data,d;m?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",d="schema"+i):d=o;var v=m?"(new RegExp("+d+"))":e.usePattern(o);s+="if ( ",m&&(s+=" ("+d+" !== undefined && typeof "+d+" != 'string') || "),s+=" !"+v+".test("+p+") ) { ";var h=h||[];h.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",m?s+=""+d:s+=""+e.util.toQuotedString(o),s+=" } ",e.opts.messages!==!1&&(s+=` , message: 'should match pattern "`,m?s+="' + "+d+" + '":s+=""+e.util.escapeQuotes(o),s+=`"' `),e.opts.verbose&&(s+=" , schema: ",m?s+="validate.schema"+l:s+=""+e.util.toQuotedString(o),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var f=s;return s=h.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}});var j_=U((pU,N_)=>{"use strict";N_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level,f="key"+i,y="idx"+i,g=d.dataLevel=e.dataLevel+1,b="data"+g,w="dataProperties"+i,P=Object.keys(o||{}).filter(X),R=e.schema.patternProperties||{},k=Object.keys(R).filter(X),N=e.schema.additionalProperties,A=P.length||k.length,$=N===!1,D=typeof N=="object"&&Object.keys(N).length,C=e.opts.removeAdditional,O=$||D||C,j=e.opts.ownProperties,q=e.baseId,z=e.schema.required;if(z&&!(e.opts.$data&&z.$data)&&z.length8)s+=" || validate.schema"+l+".hasOwnProperty("+f+") ";else{var Z=P;if(Z)for(var K,se=-1,Y=Z.length-1;se0||_e===!1:e.util.schemaHasRules(_e,e.RULES.all)){var et=e.util.getProperty(K),Q=p+et,Ve=Te&&_e.default!==void 0;d.schema=_e,d.schemaPath=l+et,d.errSchemaPath=c+"/"+e.util.escapeFragment(K),d.errorPath=e.util.getPath(e.errorPath,K,e.opts.jsonPointers),d.dataPathArr[g]=e.util.toQuotedString(K);var ne=e.validate(d);if(d.baseId=q,e.util.varOccurences(ne,b)<2){ne=e.util.varReplace(ne,b,Q);var Qe=Q}else{var Qe=b;s+=" var "+b+" = "+Q+"; "}if(Ve)s+=" "+ne+" ";else{if(V&&V[K]){s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=") { "+h+" = false; ";var De=e.errorPath,W=c,Ze=e.util.escapeQuotes(K);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(De,K,e.opts.jsonPointers)),c=e.errSchemaPath+"/required";var te=te||[];te.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+Ze+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+Ze+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var le=s;s=te.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+le+"]); ":s+=" validate.errors = ["+le+"]; return false; ":s+=" var err = "+le+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c=W,e.errorPath=De,s+=" } else { "}else u?(s+=" if ( "+Qe+" === undefined ",j&&(s+=" || ! Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=") { "+h+" = true; } else { "):(s+=" if ("+Qe+" !== undefined ",j&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", '"+e.util.escapeQuotes(K)+"') "),s+=" ) { ");s+=" "+ne+" } "}}u&&(s+=" if ("+h+") { ",v+="}")}}if(k.length){var Xe=k;if(Xe)for(var fe,Et=-1,wt=Xe.length-1;Et0||_e===!1:e.util.schemaHasRules(_e,e.RULES.all)){d.schema=_e,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(fe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(fe),j?s+=" "+w+" = "+w+" || Object.keys("+p+"); for (var "+y+"=0; "+y+"<"+w+".length; "+y+"++) { var "+f+" = "+w+"["+y+"]; ":s+=" for (var "+f+" in "+p+") { ",s+=" if ("+e.usePattern(fe)+".test("+f+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,f,e.opts.jsonPointers);var Q=p+"["+f+"]";d.dataPathArr[g]=f;var ne=e.validate(d);d.baseId=q,e.util.varOccurences(ne,b)<2?s+=" "+e.util.varReplace(ne,b,Q)+" ":s+=" var "+b+" = "+Q+"; "+ne+" ",u&&(s+=" if (!"+h+") break; "),s+=" } ",u&&(s+=" else "+h+" = true; "),s+=" } ",u&&(s+=" if ("+h+") { ",v+="}")}}}return u&&(s+=" "+v+" if ("+m+" == errors) {"),s}});var M_=U((dU,$_)=>{"use strict";$_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="errs__"+i,d=e.util.copy(e),v="";d.level++;var h="valid"+d.level;if(s+="var "+m+" = errors;",e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===!1:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=l,d.errSchemaPath=c;var f="key"+i,y="idx"+i,g="i"+i,b="' + "+f+" + '",w=d.dataLevel=e.dataLevel+1,P="data"+w,R="dataProperties"+i,k=e.opts.ownProperties,N=e.baseId;k&&(s+=" var "+R+" = undefined; "),k?s+=" "+R+" = "+R+" || Object.keys("+p+"); for (var "+y+"=0; "+y+"<"+R+".length; "+y+"++) { var "+f+" = "+R+"["+y+"]; ":s+=" for (var "+f+" in "+p+") { ",s+=" var startErrs"+i+" = errors; ";var A=f,$=e.compositeRule;e.compositeRule=d.compositeRule=!0;var D=e.validate(d);d.baseId=N,e.util.varOccurences(D,P)<2?s+=" "+e.util.varReplace(D,P,A)+" ":s+=" var "+P+" = "+A+"; "+D+" ",e.compositeRule=d.compositeRule=$,s+=" if (!"+h+") { for (var "+g+"=startErrs"+i+"; "+g+"{"use strict";L_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o;var h="schema"+i;if(!d)if(o.length0||P===!1:e.util.schemaHasRules(P,e.RULES.all))||(f[f.length]=g)}}else var f=o;if(d||f.length){var R=e.errorPath,k=d||f.length>=e.opts.loopRequired,N=e.opts.ownProperties;if(u)if(s+=" var missing"+i+"; ",k){d||(s+=" var "+h+" = validate.schema"+l+"; ");var A="i"+i,$="schema"+i+"["+A+"]",D="' + "+$+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(R,$,e.opts.jsonPointers)),s+=" var "+m+" = true; ",d&&(s+=" if (schema"+i+" === undefined) "+m+" = true; else if (!Array.isArray(schema"+i+")) "+m+" = false; else {"),s+=" for (var "+A+" = 0; "+A+" < "+h+".length; "+A+"++) { "+m+" = "+p+"["+h+"["+A+"]] !== undefined ",N&&(s+=" && Object.prototype.hasOwnProperty.call("+p+", "+h+"["+A+"]) "),s+="; if (!"+m+") break; } ",d&&(s+=" } "),s+=" if (!"+m+") { ";var C=C||[];C.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { missingProperty: '"+D+"' } ",e.opts.messages!==!1&&(s+=" , message: '",e.opts._errorDataPathProperty?s+="is a required property":s+="should have required property \\'"+D+"\\'",s+="' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var O=s;s=C.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+O+"]); ":s+=" validate.errors = ["+O+"]; return false; ":s+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else { "}else{s+=" if ( ";var j=f;if(j)for(var q,A=-1,z=j.length-1;A{"use strict";F_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p="data"+(n||""),m="valid"+i,d=e.opts.$data&&o&&o.$data,v;if(d?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",v="schema"+i):v=o,(o||d)&&e.opts.uniqueItems!==!1){d&&(s+=" var "+m+"; if ("+v+" === false || "+v+" === undefined) "+m+" = true; else if (typeof "+v+" != 'boolean') "+m+" = false; else { "),s+=" var i = "+p+".length , "+m+" = true , j; if (i > 1) { ";var h=e.schema.items&&e.schema.items.type,f=Array.isArray(h);if(!h||h=="object"||h=="array"||f&&(h.indexOf("object")>=0||h.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+p+"[i], "+p+"[j])) { "+m+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+p+"[i]; ";var y="checkDataType"+(f?"s":"");s+=" if ("+e.util[y](h,"item",e.opts.strictNumbers,!0)+") continue; ",f&&(s+=` if (typeof item == 'string') item = '"' + item; `),s+=" if (typeof itemIndices[item] == 'number') { "+m+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",d&&(s+=" } "),s+=" if (!"+m+") { ";var g=g||[];g.push(s),s="",e.createErrors!==!1?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",e.opts.messages!==!1&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",d?s+="validate.schema"+l:s+=""+o,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+p+" "),s+=" } "):s+=" {} ";var b=s;s=g.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+b+"]); ":s+=" validate.errors = ["+b+"]; return false; ":s+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}});var B_=U((hU,H_)=>{"use strict";H_.exports={$ref:t_(),allOf:a_(),anyOf:n_(),$comment:o_(),const:l_(),contains:p_(),dependencies:f_(),enum:h_(),format:g_(),if:b_(),items:__(),maximum:Fd(),minimum:Fd(),maxItems:Ud(),minItems:Ud(),maxLength:Hd(),minLength:Hd(),maxProperties:Bd(),minProperties:Bd(),multipleOf:P_(),not:C_(),oneOf:A_(),pattern:D_(),properties:j_(),propertyNames:M_(),required:q_(),uniqueItems:U_(),validate:Ld()}});var W_=U((vU,V_)=>{"use strict";var z_=B_(),zd=_s().toHash;V_.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"],t=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"],s=["number","integer","string","array","object","boolean","null"];return e.all=zd(r),e.types=zd(s),e.forEach(function(i){i.rules=i.rules.map(function(n){var o;if(typeof n=="object"){var l=Object.keys(n)[0];o=n[l],n=l,o.forEach(function(u){r.push(u),e.all[u]=!0})}r.push(n);var c=e.all[n]={keyword:n,code:z_[n],implements:o};return c}),e.all.$comment={keyword:"$comment",code:z_.$comment},i.type&&(e.types[i.type]=i)}),e.keywords=zd(r.concat(t)),e.custom={},e}});var K_=U((gU,Z_)=>{"use strict";var G_=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];Z_.exports=function(a,e){for(var r=0;r{"use strict";var Cj=Vc().MissingRef;Q_.exports=X_;function X_(a,e,r){var t=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");typeof e=="function"&&(r=e,e=void 0);var s=i(a).then(function(){var o=t._addSchema(a,void 0,e);return o.validate||n(o)});return r&&s.then(function(o){r(null,o)},r),s;function i(o){var l=o.$schema;return l&&!t.getSchema(l)?X_.call(t,{$ref:l},!0):Promise.resolve()}function n(o){try{return t._compile(o)}catch(c){if(c instanceof Cj)return l(c);throw c}function l(c){var u=c.missingSchema;if(d(u))throw new Error("Schema "+u+" is loaded but "+c.missingRef+" cannot be resolved");var p=t._loadingSchemas[u];return p||(p=t._loadingSchemas[u]=t._opts.loadSchema(u),p.then(m,m)),p.then(function(v){if(!d(u))return i(v).then(function(){d(u)||t.addSchema(v,u,void 0,e)})}).then(function(){return n(o)});function m(){delete t._loadingSchemas[u]}function d(v){return t._refs[v]||t._schemas[v]}}}}});var eS=U((bU,J_)=>{"use strict";J_.exports=function(e,r,t){var s=" ",i=e.level,n=e.dataLevel,o=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,p,m="data"+(n||""),d="valid"+i,v="errs__"+i,h=e.opts.$data&&o&&o.$data,f;h?(s+=" var schema"+i+" = "+e.util.getData(o.$data,n,e.dataPathArr)+"; ",f="schema"+i):f=o;var y=this,g="definition"+i,b=y.definition,w="",P,R,k,N,A;if(h&&b.$data){A="keywordValidate"+i;var $=b.validateSchema;s+=" var "+g+" = RULES.custom['"+r+"'].definition; var "+A+" = "+g+".validate;"}else{if(N=e.useCustomRule(y,o,e.schema,e),!N)return;f="validate.schema"+l,A=N.code,P=b.compile,R=b.inline,k=b.macro}var D=A+".errors",C="i"+i,O="ruleErr"+i,j=b.async;if(j&&!e.async)throw new Error("async keyword in sync schema");if(R||k||(s+=""+D+" = null;"),s+="var "+v+" = errors;var "+d+";",h&&b.$data&&(w+="}",s+=" if ("+f+" === undefined) { "+d+" = true; } else { ",$&&(w+="}",s+=" "+d+" = "+g+".validateSchema("+f+"); if ("+d+") { ")),R)b.statements?s+=" "+N.validate+" ":s+=" "+d+" = "+N.validate+"; ";else if(k){var q=e.util.copy(e),w="";q.level++;var z="valid"+q.level;q.schema=N.validate,q.schemaPath="";var V=e.compositeRule;e.compositeRule=q.compositeRule=!0;var X=e.validate(q).replace(/validate\.schema/g,A);e.compositeRule=q.compositeRule=V,s+=" "+X}else{var Z=Z||[];Z.push(s),s="",s+=" "+A+".call( ",e.opts.passContext?s+="this":s+="self",P||b.schema===!1?s+=" , "+m+" ":s+=" , "+f+" , "+m+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",e.errorPath!='""'&&(s+=" + "+e.errorPath);var K=n?"data"+(n-1||""):"parentData",se=n?e.dataPathArr[n]:"parentDataProperty";s+=" , "+K+" , "+se+" , rootData ) ";var Y=s;s=Z.pop(),b.errors===!1?(s+=" "+d+" = ",j&&(s+="await "),s+=""+Y+"; "):j?(D="customErrors"+i,s+=" var "+D+" = null; try { "+d+" = await "+Y+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+D+" = e.errors; else throw e; } "):s+=" "+D+" = null; "+d+" = "+Y+"; "}if(b.modifying&&(s+=" if ("+K+") "+m+" = "+K+"["+se+"];"),s+=""+w,b.valid)u&&(s+=" if (true) { ");else{s+=" if ( ",b.valid===void 0?(s+=" !",k?s+=""+z:s+=""+d):s+=" "+!b.valid+" ",s+=") { ",p=y.keyword;var Z=Z||[];Z.push(s),s="";var Z=Z||[];Z.push(s),s="",e.createErrors!==!1?(s+=" { keyword: '"+(p||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+y.keyword+"' } ",e.opts.messages!==!1&&(s+=` , message: 'should pass "`+y.keyword+`" keyword validation' `),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),s+=" } "):s+=" {} ";var Pe=s;s=Z.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+Pe+"]); ":s+=" validate.errors = ["+Pe+"]; return false; ":s+=" var err = "+Pe+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var fe=s;s=Z.pop(),R?b.errors?b.errors!="full"&&(s+=" for (var "+C+"="+v+"; "+C+"{kj.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var aS=U((_U,rS)=>{"use strict";var tS=Vd();rS.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:tS.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:tS.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}});var nS=U((SU,sS)=>{"use strict";var Aj=/^[a-z_$][a-z0-9_$-]*$/i,Ij=eS(),Dj=aS();sS.exports={add:Nj,get:jj,remove:$j,validate:Wd};function Nj(a,e){var r=this.RULES;if(r.keywords[a])throw new Error("Keyword "+a+" is already defined");if(!Aj.test(a))throw new Error("Keyword "+a+" is not a valid identifier");if(e){this.validateKeyword(e,!0);var t=e.type;if(Array.isArray(t))for(var s=0;s{Mj.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var vS=U((wU,hS)=>{"use strict";var cS=q0(),Ss=zc(),Lj=U0(),lS=Ad(),qj=Md(),Fj=J0(),Uj=W_(),uS=K_(),pS=_s();hS.exports=dt;dt.prototype.validate=Bj;dt.prototype.compile=zj;dt.prototype.addSchema=Vj;dt.prototype.addMetaSchema=Wj;dt.prototype.validateSchema=Gj;dt.prototype.getSchema=Kj;dt.prototype.removeSchema=Qj;dt.prototype.addFormat=n$;dt.prototype.errorsText=s$;dt.prototype._addSchema=Yj;dt.prototype._compile=Jj;dt.prototype.compileAsync=Y_();var Jc=nS();dt.prototype.addKeyword=Jc.add;dt.prototype.getKeyword=Jc.get;dt.prototype.removeKeyword=Jc.remove;dt.prototype.validateKeyword=Jc.validate;var dS=Vc();dt.ValidationError=dS.Validation;dt.MissingRefError=dS.MissingRef;dt.$dataMetaSchema=uS;var Yc="http://json-schema.org/draft-07/schema",oS=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],Hj=["/properties"];function dt(a){if(!(this instanceof dt))return new dt(a);a=this._opts=pS.copy(a)||{},p$(this),this._schemas={},this._refs={},this._fragments={},this._formats=Fj(a.format),this._cache=a.cache||new Lj,this._loadingSchemas={},this._compilations=[],this.RULES=Uj(),this._getId=e$(a),a.loopRequired=a.loopRequired||1/0,a.errorDataPath=="property"&&(a._errorDataPathProperty=!0),a.serialize===void 0&&(a.serialize=qj),this._metaOpts=u$(this),a.formats&&c$(this),a.keywords&&l$(this),i$(this),typeof a.meta=="object"&&this.addMetaSchema(a.meta),a.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),o$(this)}function Bj(a,e){var r;if(typeof a=="string"){if(r=this.getSchema(a),!r)throw new Error('no schema with key or ref "'+a+'"')}else{var t=this._addSchema(a);r=t.validate||this._compile(t)}var s=r(e);return r.$async!==!0&&(this.errors=r.errors),s}function zj(a,e){var r=this._addSchema(a,void 0,e);return r.validate||this._compile(r)}function Vj(a,e,r,t){if(Array.isArray(a)){for(var s=0;s{_S.exports=xS;xS.sync=f$;var yS=require("fs");function d$(a,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var t=0;t{RS.exports=wS;wS.sync=m$;var ES=require("fs");function wS(a,e,r){ES.stat(a,function(t,s){r(t,t?!1:TS(s,e))})}function m$(a,e){return TS(ES.statSync(a),e)}function TS(a,e){return a.isFile()&&h$(a,e)}function h$(a,e){var r=a.mode,t=a.uid,s=a.gid,i=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),n=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),o=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=o|l,p=r&c||r&l&&s===n||r&o&&t===i||r&u&&i===0;return p}});var CS=U((AU,OS)=>{var kU=require("fs"),el;process.platform==="win32"||global.TESTING_WINDOWS?el=SS():el=PS();OS.exports=Zd;Zd.sync=v$;function Zd(a,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(t,s){Zd(a,e||{},function(i,n){i?s(i):t(n)})})}el(a,e||{},function(t,s){t&&(t.code==="EACCES"||e&&e.ignoreErrors)&&(t=null,s=!1),r(t,s)})}function v$(a,e){try{return el.sync(a,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var $S=U((IU,jS)=>{var In=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",kS=require("path"),g$=In?";":":",AS=CS(),IS=a=>Object.assign(new Error(`not found: ${a}`),{code:"ENOENT"}),DS=(a,e)=>{let r=e.colon||g$,t=a.match(/\//)||In&&a.match(/\\/)?[""]:[...In?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],s=In?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",i=In?s.split(r):[""];return In&&a.indexOf(".")!==-1&&i[0]!==""&&i.unshift(""),{pathEnv:t,pathExt:i,pathExtExe:s}},NS=(a,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:t,pathExt:s,pathExtExe:i}=DS(a,e),n=[],o=c=>new Promise((u,p)=>{if(c===t.length)return e.all&&n.length?u(n):p(IS(a));let m=t[c],d=/^".*"$/.test(m)?m.slice(1,-1):m,v=kS.join(d,a),h=!d&&/^\.[\\\/]/.test(a)?a.slice(0,2)+v:v;u(l(h,c,0))}),l=(c,u,p)=>new Promise((m,d)=>{if(p===s.length)return m(o(u+1));let v=s[p];AS(c+v,{pathExt:i},(h,f)=>{if(!h&&f)if(e.all)n.push(c+v);else return m(c+v);return m(l(c,u,p+1))})});return r?o(0).then(c=>r(null,c),r):o(0)},y$=(a,e)=>{e=e||{};let{pathEnv:r,pathExt:t,pathExtExe:s}=DS(a,e),i=[];for(let n=0;n{"use strict";var MS=(a={})=>{let e=a.env||process.env;return(a.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(t=>t.toUpperCase()==="PATH")||"Path"};Kd.exports=MS;Kd.exports.default=MS});var HS=U((NU,US)=>{"use strict";var qS=require("path"),b$=$S(),x$=LS();function FS(a,e){let r=a.options.env||process.env,t=process.cwd(),s=a.options.cwd!=null,i=s&&process.chdir!==void 0&&!process.chdir.disabled;if(i)try{process.chdir(a.options.cwd)}catch{}let n;try{n=b$.sync(a.command,{path:r[x$({env:r})],pathExt:e?qS.delimiter:void 0})}catch{}finally{i&&process.chdir(t)}return n&&(n=qS.resolve(s?a.options.cwd:"",n)),n}function _$(a){return FS(a)||FS(a,!0)}US.exports=_$});var BS=U((jU,Qd)=>{"use strict";var Xd=/([()\][%!^"`<>&|;, *?])/g;function S$(a){return a=a.replace(Xd,"^$1"),a}function E$(a,e){return a=`${a}`,a=a.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),a=a.replace(/(?=(\\+?)?)\1$/,"$1$1"),a=`"${a}"`,a=a.replace(Xd,"^$1"),e&&(a=a.replace(Xd,"^$1")),a}Qd.exports.command=S$;Qd.exports.argument=E$});var VS=U(($U,zS)=>{"use strict";zS.exports=/^#!(.*)/});var GS=U((MU,WS)=>{"use strict";var w$=VS();WS.exports=(a="")=>{let e=a.match(w$);if(!e)return null;let[r,t]=e[0].replace(/#! ?/,"").split(" "),s=r.split("/").pop();return s==="env"?t:t?`${s} ${t}`:s}});var KS=U((LU,ZS)=>{"use strict";var Yd=require("fs"),T$=GS();function R$(a){let r=Buffer.alloc(150),t;try{t=Yd.openSync(a,"r"),Yd.readSync(t,r,0,150,0),Yd.closeSync(t)}catch{}return T$(r.toString())}ZS.exports=R$});var JS=U((qU,YS)=>{"use strict";var P$=require("path"),XS=HS(),QS=BS(),O$=KS(),C$=process.platform==="win32",k$=/\.(?:com|exe)$/i,A$=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function I$(a){a.file=XS(a);let e=a.file&&O$(a.file);return e?(a.args.unshift(a.file),a.command=e,XS(a)):a.file}function D$(a){if(!C$)return a;let e=I$(a),r=!k$.test(e);if(a.options.forceShell||r){let t=A$.test(e);a.command=P$.normalize(a.command),a.command=QS.command(a.command),a.args=a.args.map(i=>QS.argument(i,t));let s=[a.command].concat(a.args).join(" ");a.args=["/d","/s","/c",`"${s}"`],a.command=process.env.comspec||"cmd.exe",a.options.windowsVerbatimArguments=!0}return a}function N$(a,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let t={command:a,args:e,options:r,file:void 0,original:{command:a,args:e}};return r.shell?t:D$(t)}YS.exports=N$});var rE=U((FU,tE)=>{"use strict";var Jd=process.platform==="win32";function ef(a,e){return Object.assign(new Error(`${e} ${a.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${a.command}`,path:a.command,spawnargs:a.args})}function j$(a,e){if(!Jd)return;let r=a.emit;a.emit=function(t,s){if(t==="exit"){let i=eE(s,e);if(i)return r.call(a,"error",i)}return r.apply(a,arguments)}}function eE(a,e){return Jd&&a===1&&!e.file?ef(e.original,"spawn"):null}function $$(a,e){return Jd&&a===1&&!e.file?ef(e.original,"spawnSync"):null}tE.exports={hookChildProcess:j$,verifyENOENT:eE,verifyENOENTSync:$$,notFoundError:ef}});var nE=U((UU,Dn)=>{"use strict";var aE=require("child_process"),tf=JS(),rf=rE();function sE(a,e,r){let t=tf(a,e,r),s=aE.spawn(t.command,t.args,t.options);return rf.hookChildProcess(s,t),s}function M$(a,e,r){let t=tf(a,e,r),s=aE.spawnSync(t.command,t.args,t.options);return s.error=s.error||rf.verifyENOENTSync(s.status,t),s}Dn.exports=sE;Dn.exports.spawn=sE;Dn.exports.sync=M$;Dn.exports._parse=tf;Dn.exports._enoent=rf});var jn,$n,rl,al,lE,uE,Ki=Zs(()=>{"use strict";jn=["bugfix","feature","refactor","discovery","decision","change"],$n=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"],rl={bugfix:"\u{1F534}",feature:"\u{1F7E3}",refactor:"\u{1F504}",change:"\u2705",discovery:"\u{1F535}",decision:"\u2696\uFE0F","session-request":"\u{1F3AF}"},al={discovery:"\u{1F50D}",change:"\u{1F6E0}\uFE0F",feature:"\u{1F6E0}\uFE0F",bugfix:"\u{1F6E0}\uFE0F",refactor:"\u{1F6E0}\uFE0F",decision:"\u2696\uFE0F"},lE=jn.join(","),uE=$n.join(",")});var Mn,pE,dE,lt,oa=Zs(()=>{"use strict";Mn=require("fs"),pE=require("path"),dE=require("os");Ki();yt();lt=class{static DEFAULTS={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_SKIP_TOOLS:"ListMcpResourcesTool,SlashCommand,Skill,TodoWrite,AskUserQuestion",CLAUDE_MEM_DATA_DIR:(0,pE.join)((0,dE.homedir)(),".claude-mem"),CLAUDE_MEM_LOG_LEVEL:"INFO",CLAUDE_MEM_PYTHON_VERSION:"3.13",CLAUDE_CODE_PATH:"",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:lE,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:uE,CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};static getAllDefaults(){return{...this.DEFAULTS}}static get(e){return this.DEFAULTS[e]}static getInt(e){let r=this.get(e);return parseInt(r,10)}static getBool(e){return this.get(e)==="true"}static loadFromFile(e){if(!(0,Mn.existsSync)(e))return this.getAllDefaults();let r=(0,Mn.readFileSync)(e,"utf-8"),t=JSON.parse(r),s=t;if(t.env&&typeof t.env=="object"){s=t.env;try{(0,Mn.writeFileSync)(e,JSON.stringify(s,null,2),"utf-8"),F.info("SETTINGS","Migrated settings file from nested to flat schema",{settingsPath:e})}catch(n){F.warn("SETTINGS","Failed to auto-migrate settings file",{settingsPath:e},n)}}let i={...this.DEFAULTS};for(let n of Object.keys(this.DEFAULTS))s[n]!==void 0&&(i[n]=s[n]);return i}}});var af,sf,F,yt=Zs(()=>{"use strict";oa();af=(i=>(i[i.DEBUG=0]="DEBUG",i[i.INFO=1]="INFO",i[i.WARN=2]="WARN",i[i.ERROR=3]="ERROR",i[i.SILENT=4]="SILENT",i))(af||{}),sf=class{level=null;useColor;constructor(){this.useColor=process.stdout.isTTY??!1}getLevel(){if(this.level===null){let e=lt.get("CLAUDE_MEM_LOG_LEVEL").toUpperCase();this.level=af[e]??1}return this.level}correlationId(e,r){return`obs-${e}-${r}`}sessionId(e){return`session-${e}`}formatData(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(typeof e=="object"){if(e instanceof Error)return this.getLevel()===0?`${e.message} ${e.stack}`:e.message;if(Array.isArray(e))return`[${e.length} items]`;let r=Object.keys(e);return r.length===0?"{}":r.length<=3?JSON.stringify(e):`{${r.length} keys: ${r.slice(0,3).join(", ")}...}`}return String(e)}formatTool(e,r){if(!r)return e;try{let t=typeof r=="string"?JSON.parse(r):r;if(e==="Bash"&&t.command){let s=t.command.length>50?t.command.substring(0,50)+"...":t.command;return`${e}(${s})`}if(e==="Read"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}if(e==="Edit"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}if(e==="Write"&&t.file_path){let s=t.file_path.split("/").pop()||t.file_path;return`${e}(${s})`}return e}catch{return e}}formatTimestamp(e){let r=e.getFullYear(),t=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0"),i=String(e.getHours()).padStart(2,"0"),n=String(e.getMinutes()).padStart(2,"0"),o=String(e.getSeconds()).padStart(2,"0"),l=String(e.getMilliseconds()).padStart(3,"0");return`${r}-${t}-${s} ${i}:${n}:${o}.${l}`}log(e,r,t,s,i){if(e0&&(p=` {${Object.entries(f).map(([g,b])=>`${g}=${b}`).join(", ")}}`)}let m=`[${n}] [${o}] [${l}] ${c}${t}${p}${u}`;e===3?console.error(m):console.log(m)}debug(e,r,t,s){this.log(0,e,r,t,s)}info(e,r,t,s){this.log(1,e,r,t,s)}warn(e,r,t,s){this.log(2,e,r,t,s)}error(e,r,t,s){this.log(3,e,r,t,s)}dataIn(e,r,t,s){this.info(e,`\u2192 ${r}`,t,s)}dataOut(e,r,t,s){this.info(e,`\u2190 ${r}`,t,s)}success(e,r,t,s){this.info(e,`\u2713 ${r}`,t,s)}failure(e,r,t,s){this.error(e,`\u2717 ${r}`,t,s)}timing(e,r,t,s){this.info(e,`\u23F1 ${r}`,s,{duration:`${t}ms`})}},F=new sf});function H$(){return typeof __dirname<"u"?__dirname:(0,kt.dirname)((0,vE.fileURLToPath)(z$.url))}function nl(a){(0,hE.mkdirSync)(a,{recursive:!0})}function ca(){return(0,kt.join)(B$,"..","..")}var kt,mE,hE,vE,z$,B$,Vt,of,rH,aH,sH,nH,Ln,sl,iH,oH,cH,lH,Ar=Zs(()=>{"use strict";kt=require("path"),mE=require("os"),hE=require("fs"),vE=require("url");oa();z$={};B$=H$(),Vt=lt.get("CLAUDE_MEM_DATA_DIR"),of=process.env.CLAUDE_CONFIG_DIR||(0,kt.join)((0,mE.homedir)(),".claude"),rH=(0,kt.join)(Vt,"archives"),aH=(0,kt.join)(Vt,"logs"),sH=(0,kt.join)(Vt,"trash"),nH=(0,kt.join)(Vt,"backups"),Ln=(0,kt.join)(Vt,"settings.json"),sl=(0,kt.join)(Vt,"claude-mem.db"),iH=(0,kt.join)(Vt,"vector-db"),oH=(0,kt.join)(of,"settings.json"),cH=(0,kt.join)(of,"commands"),lH=(0,kt.join)(of,"CLAUDE.md")});var xE,$a,cl=Zs(()=>{"use strict";xE=require("bun:sqlite");Ar();yt();$a=class{db;constructor(){nl(Vt),this.db=new xE.Database(sl),this.db.run("PRAGMA journal_mode = WAL"),this.db.run("PRAGMA synchronous = NORMAL"),this.db.run("PRAGMA foreign_keys = ON"),this.initializeSchema(),this.ensureWorkerPortColumn(),this.ensurePromptTrackingColumns(),this.removeSessionSummariesUniqueConstraint(),this.addObservationHierarchicalFields(),this.makeObservationsTextNullable(),this.createUserPromptsTable(),this.ensureDiscoveryTokensColumn()}initializeSchema(){try{this.db.run(` CREATE TABLE IF NOT EXISTS schema_versions ( diff --git a/plugin/skills/troubleshoot/operations/reference.md b/plugin/skills/troubleshoot/operations/reference.md index 1c5ca442..fe9a53fa 100644 --- a/plugin/skills/troubleshoot/operations/reference.md +++ b/plugin/skills/troubleshoot/operations/reference.md @@ -95,7 +95,7 @@ echo '{"env":{"CLAUDE_MEM_WORKER_PORT":"37778"}}' > ~/.claude-mem/settings.json # Change AI model { "env": { - "CLAUDE_MEM_MODEL": "claude-haiku-4-5" + "CLAUDE_MEM_MODEL": "claude-sonnet-4-5" } } ``` diff --git a/plugin/ui/viewer-bundle.js b/plugin/ui/viewer-bundle.js index 12e23627..27936ea4 100644 --- a/plugin/ui/viewer-bundle.js +++ b/plugin/ui/viewer-bundle.js @@ -7,7 +7,7 @@ Error generating stack: `+l.message+` `+l.stack}return{value:e,source:t,stack:o,digest:null}}function ei(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Fi(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Pm=typeof WeakMap=="function"?WeakMap:Map;function Yc(e,t,r){r=ft(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){bo||(bo=!0,bi=n),Fi(e,t)},r}function Zc(e,t,r){r=ft(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var o=t.value;r.payload=function(){return n(o)},r.callback=function(){Fi(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(r.callback=function(){Fi(e,t),typeof n!="function"&&(At===null?At=new Set([this]):At.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),r}function aa(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Pm;var o=new Set;n.set(t,o)}else o=n.get(t),o===void 0&&(o=new Set,n.set(t,o));o.has(r)||(o.add(r),e=Xm.bind(null,e,t,r),t.then(e,e))}function ca(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function fa(e,t,r,n,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=ft(-1,1),t.tag=2,Pt(r,t,1))),r.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Am=gt.ReactCurrentOwner,_e=!1;function ve(e,t,r,n){t.child=e===null?xc(t,null,r,n):Ar(t,e.child,r,n)}function da(e,t,r,n,o){r=r.render;var l=t.ref;return xr(t,o),n=ku(e,t,r,n,l,o),r=Cu(),e!==null&&!_e?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,ht(e,t,o)):(q&&r&&du(t),t.flags|=1,ve(e,t,n,o),t.child)}function pa(e,t,r,n,o){if(e===null){var l=r.type;return typeof l=="function"&&!Iu(l)&&l.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=l,Jc(e,t,l,n,o)):(e=Co(r.type,null,n,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,(e.lanes&o)===0){var i=l.memoizedProps;if(r=r.compare,r=r!==null?r:kn,r(i,n)&&e.ref===t.ref)return ht(e,t,o)}return t.flags|=1,e=Ut(l,n),e.ref=t.ref,e.return=t,t.child=e}function Jc(e,t,r,n,o){if(e!==null){var l=e.memoizedProps;if(kn(l,n)&&e.ref===t.ref)if(_e=!1,t.pendingProps=n=l,(e.lanes&o)!==0)(e.flags&131072)!==0&&(_e=!0);else return t.lanes=e.lanes,ht(e,t,o)}return zi(e,t,r,n,o)}function ef(e,t,r){var n=t.pendingProps,o=n.children,l=e!==null?e.memoizedState:null;if(n.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},z(_r,Le),Le|=r;else{if((r&1073741824)===0)return e=l!==null?l.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,z(_r,Le),Le|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=l!==null?l.baseLanes:r,z(_r,Le),Le|=n}else l!==null?(n=l.baseLanes|r,t.memoizedState=null):n=r,z(_r,Le),Le|=n;return ve(e,t,o,r),t.child}function tf(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function zi(e,t,r,n,o){var l=ke(r)?Jt:he.current;return l=Or(t,l),xr(t,o),r=ku(e,t,r,n,l,o),n=Cu(),e!==null&&!_e?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,ht(e,t,o)):(q&&n&&du(t),t.flags|=1,ve(e,t,r,o),t.child)}function ma(e,t,r,n,o){if(ke(r)){var l=!0;Fo(t)}else l=!1;if(xr(t,o),t.stateNode===null)_o(e,t),Kc(t,r,n),Ii(t,r,n,o),n=!0;else if(e===null){var i=t.stateNode,u=t.memoizedProps;i.props=u;var s=i.context,a=r.contextType;typeof a=="object"&&a!==null?a=qe(a):(a=ke(r)?Jt:he.current,a=Or(t,a));var p=r.getDerivedStateFromProps,m=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function";m||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==n||s!==a)&&sa(t,i,n,a),_t=!1;var h=t.memoizedState;i.state=h,Vo(t,n,i,o),s=t.memoizedState,u!==n||h!==s||Te.current||_t?(typeof p=="function"&&(Ui(t,r,p,n),s=t.memoizedState),(u=_t||ua(t,r,u,n,h,s,a))?(m||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=s),i.props=n,i.state=s,i.context=a,n=u):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{i=t.stateNode,Mc(e,t),u=t.memoizedProps,a=t.type===t.elementType?u:We(t.type,u),i.props=a,m=t.pendingProps,h=i.context,s=r.contextType,typeof s=="object"&&s!==null?s=qe(s):(s=ke(r)?Jt:he.current,s=Or(t,s));var y=r.getDerivedStateFromProps;(p=typeof y=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(u!==m||h!==s)&&sa(t,i,n,s),_t=!1,h=t.memoizedState,i.state=h,Vo(t,n,i,o);var w=t.memoizedState;u!==m||h!==w||Te.current||_t?(typeof y=="function"&&(Ui(t,r,y,n),w=t.memoizedState),(a=_t||ua(t,r,a,n,h,w,s)||!1)?(p||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(n,w,s),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(n,w,s)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=w),i.props=n,i.state=w,i.context=s,n=a):(typeof i.componentDidUpdate!="function"||u===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||u===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),n=!1)}return ji(e,t,r,n,l,o)}function ji(e,t,r,n,o,l){tf(e,t);var i=(t.flags&128)!==0;if(!n&&!i)return o&&Js(t,r,!1),ht(e,t,l);n=t.stateNode,Am.current=t;var u=i&&typeof r.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&i?(t.child=Ar(t,e.child,null,l),t.child=Ar(t,null,u,l)):ve(e,t,u,l),t.memoizedState=n.state,o&&Js(t,r,!0),t.child}function rf(e){var t=e.stateNode;t.pendingContext?Zs(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Zs(e,t.context,!1),Eu(e,t.containerInfo)}function ha(e,t,r,n,o){return Pr(),mu(o),t.flags|=256,ve(e,t,r,n),t.child}var Hi={dehydrated:null,treeContext:null,retryLane:0};function qi(e){return{baseLanes:e,cachePool:null,transitions:null}}function nf(e,t,r){var n=t.pendingProps,o=V.current,l=!1,i=(t.flags&128)!==0,u;if((u=i)||(u=e!==null&&e.memoizedState===null?!1:(o&2)!==0),u?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),z(V,o&1),e===null)return Ai(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=n.children,e=n.fallback,l?(n=t.mode,l=t.child,i={mode:"hidden",children:i},(n&1)===0&&l!==null?(l.childLanes=0,l.pendingProps=i):l=il(i,n,0,null),e=Zt(e,n,r,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=qi(r),t.memoizedState=Hi,e):Lu(t,i));if(o=e.memoizedState,o!==null&&(u=o.dehydrated,u!==null))return Dm(e,t,i,n,u,o,r);if(l){l=n.fallback,i=t.mode,o=e.child,u=o.sibling;var s={mode:"hidden",children:n.children};return(i&1)===0&&t.child!==o?(n=t.child,n.childLanes=0,n.pendingProps=s,t.deletions=null):(n=Ut(o,s),n.subtreeFlags=o.subtreeFlags&14680064),u!==null?l=Ut(u,l):(l=Zt(l,i,r,null),l.flags|=2),l.return=t,n.return=t,n.sibling=l,t.child=n,n=l,l=t.child,i=e.child.memoizedState,i=i===null?qi(r):{baseLanes:i.baseLanes|r,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~r,t.memoizedState=Hi,n}return l=e.child,e=l.sibling,n=Ut(l,{mode:"visible",children:n.children}),(t.mode&1)===0&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function Lu(e,t){return t=il({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function po(e,t,r,n){return n!==null&&mu(n),Ar(t,e.child,null,r),e=Lu(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Dm(e,t,r,n,o,l,i){if(r)return t.flags&256?(t.flags&=-257,n=ei(Error(S(422))),po(e,t,i,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=n.fallback,o=t.mode,n=il({mode:"visible",children:n.children},o,0,null),l=Zt(l,o,i,null),l.flags|=2,n.return=t,l.return=t,n.sibling=l,t.child=n,(t.mode&1)!==0&&Ar(t,e.child,null,i),t.child.memoizedState=qi(i),t.memoizedState=Hi,l);if((t.mode&1)===0)return po(e,t,i,null);if(o.data==="$!"){if(n=o.nextSibling&&o.nextSibling.dataset,n)var u=n.dgst;return n=u,l=Error(S(419)),n=ei(l,n,void 0),po(e,t,i,n)}if(u=(i&e.childLanes)!==0,_e||u){if(n=ne,n!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(n.suspendedLanes|i))!==0?0:o,o!==0&&o!==l.retryLane&&(l.retryLane=o,mt(e,o),Ge(n,e,o,-1))}return Uu(),n=ei(Error(S(421))),po(e,t,i,n)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=bm.bind(null,e),o._reactRetry=t,null):(e=l.treeContext,Me=Ot(o.nextSibling),Oe=t,q=!0,be=null,e!==null&&(Fe[ze++]=at,Fe[ze++]=ct,Fe[ze++]=er,at=e.id,ct=e.overflow,er=t),t=Lu(t,n.children),t.flags|=4096,t)}function ga(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),Di(e.return,t,r)}function ti(e,t,r,n,o){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:o}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=n,l.tail=r,l.tailMode=o)}function of(e,t,r){var n=t.pendingProps,o=n.revealOrder,l=n.tail;if(ve(e,t,n.children,r),n=V.current,(n&2)!==0)n=n&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ga(e,r,t);else if(e.tag===19)ga(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(z(V,n),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(r=t.child,o=null;r!==null;)e=r.alternate,e!==null&&Bo(e)===null&&(o=r),r=r.sibling;r=o,r===null?(o=t.child,t.child=null):(o=r.sibling,r.sibling=null),ti(t,!1,o,r,l);break;case"backwards":for(r=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Bo(e)===null){t.child=o;break}e=o.sibling,o.sibling=r,r=o,o=e}ti(t,!0,r,null,l);break;case"together":ti(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function _o(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function ht(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),rr|=t.lanes,(r&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(S(153));if(t.child!==null){for(e=t.child,r=Ut(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=Ut(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function Um(e,t,r){switch(t.tag){case 3:rf(t),Pr();break;case 5:Oc(t);break;case 1:ke(t.type)&&Fo(t);break;case 4:Eu(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,o=t.memoizedProps.value;z(Ho,n._currentValue),n._currentValue=o;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(z(V,V.current&1),t.flags|=128,null):(r&t.child.childLanes)!==0?nf(e,t,r):(z(V,V.current&1),e=ht(e,t,r),e!==null?e.sibling:null);z(V,V.current&1);break;case 19:if(n=(r&t.childLanes)!==0,(e.flags&128)!==0){if(n)return of(e,t,r);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),z(V,V.current),n)break;return null;case 22:case 23:return t.lanes=0,ef(e,t,r)}return ht(e,t,r)}var lf,Vi,uf,sf;lf=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};Vi=function(){};uf=function(e,t,r,n){var o=e.memoizedProps;if(o!==n){e=t.stateNode,Kt(ot.current);var l=null;switch(r){case"input":o=ai(e,o),n=ai(e,n),l=[];break;case"select":o=R({},o,{value:void 0}),n=R({},n,{value:void 0}),l=[];break;case"textarea":o=di(e,o),n=di(e,n),l=[];break;default:typeof o.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=Uo)}mi(r,n);var i;r=null;for(a in o)if(!n.hasOwnProperty(a)&&o.hasOwnProperty(a)&&o[a]!=null)if(a==="style"){var u=o[a];for(i in u)u.hasOwnProperty(i)&&(r||(r={}),r[i]="")}else a!=="dangerouslySetInnerHTML"&&a!=="children"&&a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&a!=="autoFocus"&&(vn.hasOwnProperty(a)?l||(l=[]):(l=l||[]).push(a,null));for(a in n){var s=n[a];if(u=o?.[a],n.hasOwnProperty(a)&&s!==u&&(s!=null||u!=null))if(a==="style")if(u){for(i in u)!u.hasOwnProperty(i)||s&&s.hasOwnProperty(i)||(r||(r={}),r[i]="");for(i in s)s.hasOwnProperty(i)&&u[i]!==s[i]&&(r||(r={}),r[i]=s[i])}else r||(l||(l=[]),l.push(a,r)),r=s;else a==="dangerouslySetInnerHTML"?(s=s?s.__html:void 0,u=u?u.__html:void 0,s!=null&&u!==s&&(l=l||[]).push(a,s)):a==="children"?typeof s!="string"&&typeof s!="number"||(l=l||[]).push(a,""+s):a!=="suppressContentEditableWarning"&&a!=="suppressHydrationWarning"&&(vn.hasOwnProperty(a)?(s!=null&&a==="onScroll"&&j("scroll",e),l||u===s||(l=[])):(l=l||[]).push(a,s))}r&&(l=l||[]).push("style",r);var a=l;(t.updateQueue=a)&&(t.flags|=4)}};sf=function(e,t,r,n){r!==n&&(t.flags|=4)};function en(e,t){if(!q)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function pe(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var o=e.child;o!==null;)r|=o.lanes|o.childLanes,n|=o.subtreeFlags&14680064,n|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)r|=o.lanes|o.childLanes,n|=o.subtreeFlags,n|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function Im(e,t,r){var n=t.pendingProps;switch(pu(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return pe(t),null;case 1:return ke(t.type)&&Io(),pe(t),null;case 3:return n=t.stateNode,Dr(),H(Te),H(he),_u(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(co(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,be!==null&&(Qi(be),be=null))),Vi(e,t),pe(t),null;case 5:wu(t);var o=Kt(Mn.current);if(r=t.type,e!==null&&t.stateNode!=null)uf(e,t,r,n,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(S(166));return pe(t),null}if(e=Kt(ot.current),co(t)){n=t.stateNode,r=t.type;var l=t.memoizedProps;switch(n[rt]=t,n[xn]=l,e=(t.mode&1)!==0,r){case"dialog":j("cancel",n),j("close",n);break;case"iframe":case"object":case"embed":j("load",n);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=i.createElement(r,{is:n.is}):(e=i.createElement(r),r==="select"&&(i=e,n.multiple?i.multiple=!0:n.size&&(i.size=n.size))):e=i.createElementNS(e,r),e[rt]=t,e[xn]=n,lf(e,t,!1,!1),t.stateNode=e;e:{switch(i=hi(r,n),r){case"dialog":j("cancel",e),j("close",e),o=n;break;case"iframe":case"object":case"embed":j("load",e),o=n;break;case"video":case"audio":for(o=0;oIr&&(t.flags|=128,n=!0,en(l,!1),t.lanes=4194304)}else{if(!n)if(e=Bo(i),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),en(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!q)return pe(t),null}else 2*G()-l.renderingStartTime>Ir&&r!==1073741824&&(t.flags|=128,n=!0,en(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(r=l.last,r!==null?r.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=G(),t.sibling=null,r=V.current,z(V,n?r&1|2:r&1),t):(pe(t),null);case 22:case 23:return Du(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&(t.mode&1)!==0?(Le&1073741824)!==0&&(pe(t),t.subtreeFlags&6&&(t.flags|=8192)):pe(t),null;case 24:return null;case 25:return null}throw Error(S(156,t.tag))}function Fm(e,t){switch(pu(t),t.tag){case 1:return ke(t.type)&&Io(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Dr(),H(Te),H(he),_u(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return wu(t),null;case 13:if(H(V),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(S(340));Pr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return H(V),null;case 4:return Dr(),null;case 10:return vu(t.type._context),null;case 22:case 23:return Du(),null;case 24:return null;default:return null}}var mo=!1,me=!1,zm=typeof WeakSet=="function"?WeakSet:Set,k=null;function wr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){b(e,t,n)}else r.current=null}function Bi(e,t,r){try{r()}catch(n){b(e,t,n)}}var va=!1;function jm(e,t){if(Ci=Po,e=dc(),fu(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,l=n.focusNode;n=n.focusOffset;try{r.nodeType,l.nodeType}catch{r=null;break e}var i=0,u=-1,s=-1,a=0,p=0,m=e,h=null;t:for(;;){for(var y;m!==r||o!==0&&m.nodeType!==3||(u=i+o),m!==l||n!==0&&m.nodeType!==3||(s=i+n),m.nodeType===3&&(i+=m.nodeValue.length),(y=m.firstChild)!==null;)h=m,m=y;for(;;){if(m===e)break t;if(h===r&&++a===o&&(u=i),h===l&&++p===n&&(s=i),(y=m.nextSibling)!==null)break;m=h,h=m.parentNode}m=y}r=u===-1||s===-1?null:{start:u,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(Ni={focusedElem:e,selectionRange:r},Po=!1,k=t;k!==null;)if(t=k,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,k=e;else for(;k!==null;){t=k;try{var w=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var _=w.memoizedProps,A=w.memoizedState,d=t.stateNode,c=d.getSnapshotBeforeUpdate(t.elementType===t.type?_:We(t.type,_),A);d.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(S(163))}}catch(v){b(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,k=e;break}k=t.return}return w=va,va=!1,w}function mn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&Bi(t,r,l)}o=o.next}while(o!==n)}}function ol(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Ri(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function af(e){var t=e.alternate;t!==null&&(e.alternate=null,af(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[rt],delete t[xn],delete t[Mi],delete t[Em],delete t[wm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function cf(e){return e.tag===5||e.tag===3||e.tag===4}function ya(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||cf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Wi(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Uo));else if(n!==4&&(e=e.child,e!==null))for(Wi(e,t,r),e=e.sibling;e!==null;)Wi(e,t,r),e=e.sibling}function Xi(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Xi(e,t,r),e=e.sibling;e!==null;)Xi(e,t,r),e=e.sibling}var le=null,Xe=!1;function Et(e,t,r){for(r=r.child;r!==null;)ff(e,t,r),r=r.sibling}function ff(e,t,r){if(nt&&typeof nt.onCommitFiberUnmount=="function")try{nt.onCommitFiberUnmount(Ko,r)}catch{}switch(r.tag){case 5:me||wr(r,t);case 6:var n=le,o=Xe;le=null,Et(e,t,r),le=n,Xe=o,le!==null&&(Xe?(e=le,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):le.removeChild(r.stateNode));break;case 18:le!==null&&(Xe?(e=le,r=r.stateNode,e.nodeType===8?Gl(e.parentNode,r):e.nodeType===1&&Gl(e,r),_n(e)):Gl(le,r.stateNode));break;case 4:n=le,o=Xe,le=r.stateNode.containerInfo,Xe=!0,Et(e,t,r),le=n,Xe=o;break;case 0:case 11:case 14:case 15:if(!me&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){o=n=n.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&Bi(r,t,i),o=o.next}while(o!==n)}Et(e,t,r);break;case 1:if(!me&&(wr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(u){b(r,t,u)}Et(e,t,r);break;case 21:Et(e,t,r);break;case 22:r.mode&1?(me=(n=me)||r.memoizedState!==null,Et(e,t,r),me=n):Et(e,t,r);break;default:Et(e,t,r)}}function Sa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new zm),t.forEach(function(n){var o=$m.bind(null,e,n);r.has(n)||(r.add(n),n.then(o,o))})}}function Re(e,t){var r=t.deletions;if(r!==null)for(var n=0;no&&(o=i),n&=~l}if(n=o,n=G()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*qm(n/1960))-n,10e?16:e,Nt===null)var n=!1;else{if(e=Nt,Nt=null,$o=0,(D&6)!==0)throw Error(S(331));var o=D;for(D|=4,k=e.current;k!==null;){var l=k,i=l.child;if((k.flags&16)!==0){var u=l.deletions;if(u!==null){for(var s=0;sG()-Pu?Yt(e,0):Ou|=r),Ce(e,t)}function Sf(e,t){t===0&&((e.mode&1)===0?t=1:(t=eo,eo<<=1,(eo&130023424)===0&&(eo=4194304)));var r=ye();e=mt(e,t),e!==null&&(Un(e,t,r),Ce(e,r))}function bm(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Sf(e,r)}function $m(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(S(314))}n!==null&&n.delete(t),Sf(e,r)}var Ef;Ef=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Te.current)_e=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return _e=!1,Um(e,t,r);_e=(e.flags&131072)!==0}else _e=!1,q&&(t.flags&1048576)!==0&&Tc(t,jo,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;_o(e,t),e=t.pendingProps;var o=Or(t,he.current);xr(t,r),o=ku(null,t,n,e,o,r);var l=Cu();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ke(n)?(l=!0,Fo(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Su(t),o.updater=nl,t.stateNode=o,o._reactInternals=t,Ii(t,n,e,r),t=ji(null,t,n,!0,l,r)):(t.tag=0,q&&l&&du(t),ve(null,t,o,r),t=t.child),t;case 16:n=t.elementType;e:{switch(_o(e,t),e=t.pendingProps,o=n._init,n=o(n._payload),t.type=n,o=t.tag=Qm(n),e=We(n,e),o){case 0:t=zi(null,t,n,e,r);break e;case 1:t=ma(null,t,n,e,r);break e;case 11:t=da(null,t,n,e,r);break e;case 14:t=pa(null,t,n,We(n.type,e),r);break e}throw Error(S(306,n,""))}return t;case 0:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:We(n,o),zi(e,t,n,o,r);case 1:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:We(n,o),ma(e,t,n,o,r);case 3:e:{if(rf(t),e===null)throw Error(S(387));n=t.pendingProps,l=t.memoizedState,o=l.element,Mc(e,t),Vo(t,n,null,r);var i=t.memoizedState;if(n=i.element,l.isDehydrated)if(l={element:n,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=Ur(Error(S(423)),t),t=ha(e,t,n,r,o);break e}else if(n!==o){o=Ur(Error(S(424)),t),t=ha(e,t,n,r,o);break e}else for(Me=Ot(t.stateNode.containerInfo.firstChild),Oe=t,q=!0,be=null,r=xc(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Pr(),n===o){t=ht(e,t,r);break e}ve(e,t,n,r)}t=t.child}return t;case 5:return Oc(t),e===null&&Ai(t),n=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,xi(n,o)?i=null:l!==null&&xi(n,l)&&(t.flags|=32),tf(e,t),ve(e,t,i,r),t.child;case 6:return e===null&&Ai(t),null;case 13:return nf(e,t,r);case 4:return Eu(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Ar(t,null,n,r):ve(e,t,n,r),t.child;case 11:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:We(n,o),da(e,t,n,o,r);case 7:return ve(e,t,t.pendingProps,r),t.child;case 8:return ve(e,t,t.pendingProps.children,r),t.child;case 12:return ve(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,z(Ho,n._currentValue),n._currentValue=i,l!==null)if(Qe(l.value,i)){if(l.children===o.children&&!Te.current){t=ht(e,t,r);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var u=l.dependencies;if(u!==null){i=l.child;for(var s=u.firstContext;s!==null;){if(s.context===n){if(l.tag===1){s=ft(-1,r&-r),s.tag=2;var a=l.updateQueue;if(a!==null){a=a.shared;var p=a.pending;p===null?s.next=s:(s.next=p.next,p.next=s),a.pending=s}}l.lanes|=r,s=l.alternate,s!==null&&(s.lanes|=r),Di(l.return,r,t),u.lanes|=r;break}s=s.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(S(341));i.lanes|=r,u=i.alternate,u!==null&&(u.lanes|=r),Di(i,r,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}ve(e,t,o.children,r),t=t.child}return t;case 9:return o=t.type,n=t.pendingProps.children,xr(t,r),o=qe(o),n=n(o),t.flags|=1,ve(e,t,n,r),t.child;case 14:return n=t.type,o=We(n,t.pendingProps),o=We(n.type,o),pa(e,t,n,o,r);case 15:return Jc(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:We(n,o),_o(e,t),t.tag=1,ke(n)?(e=!0,Fo(t)):e=!1,xr(t,r),Kc(t,n,o),Ii(t,n,o,r),ji(null,t,n,!0,e,r);case 19:return of(e,t,r);case 22:return ef(e,t,r)}throw Error(S(156,t.tag))};function wf(e,t){return $a(e,t)}function Gm(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function je(e,t,r,n){return new Gm(e,t,r,n)}function Iu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Qm(e){if(typeof e=="function")return Iu(e)?1:0;if(e!=null){if(e=e.$$typeof,e===eu)return 11;if(e===tu)return 14}return 2}function Ut(e,t){var r=e.alternate;return r===null?(r=je(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Co(e,t,r,n,o,l){var i=2;if(n=e,typeof e=="function")Iu(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case dr:return Zt(r.children,o,l,t);case Ji:i=8,o|=8;break;case li:return e=je(12,r,t,o|2),e.elementType=li,e.lanes=l,e;case ii:return e=je(13,r,t,o),e.elementType=ii,e.lanes=l,e;case ui:return e=je(19,r,t,o),e.elementType=ui,e.lanes=l,e;case Oa:return il(r,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case La:i=10;break e;case Ma:i=9;break e;case eu:i=11;break e;case tu:i=14;break e;case wt:i=16,n=null;break e}throw Error(S(130,e==null?e:typeof e,""))}return t=je(i,r,t,o),t.elementType=e,t.type=n,t.lanes=l,t}function Zt(e,t,r,n){return e=je(7,e,n,t),e.lanes=r,e}function il(e,t,r,n){return e=je(22,e,n,t),e.elementType=Oa,e.lanes=r,e.stateNode={isHidden:!1},e}function ri(e,t,r){return e=je(6,e,null,t),e.lanes=r,e}function ni(e,t,r){return t=je(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Km(e,t,r,n,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ql(0),this.expirationTimes=ql(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ql(0),this.identifierPrefix=n,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Fu(e,t,r,n,o,l,i,u,s){return e=new Km(e,t,r,u,s),t===1?(t=1,l===!0&&(t|=8)):t=0,l=je(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Su(l),e}function Ym(e,t,r){var n=3{"use strict";function Nf(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Nf)}catch(e){console.error(e)}}Nf(),xf.exports=Cf()});var Of=ce(qu=>{"use strict";var Mf=Lf();qu.createRoot=Mf.createRoot,qu.hydrateRoot=Mf.hydrateRoot;var $h});var Vu=ce((Sg,rh)=>{rh.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` `,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var Bf=ce((Eg,nh)=>{nh.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var Bu=ce((wg,oh)=>{oh.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rf=ce((_g,lh)=>{lh.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var Xf=ce(Hn=>{"use strict";var ih=Hn&&Hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Hn,"__esModule",{value:!0});var Wf=ih(Rf()),uh=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function sh(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in Wf.default&&(e=Wf.default[e]),uh(e))}Hn.default=sh});var Wu=ce(it=>{"use strict";var fl=it&&it.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(it,"__esModule",{value:!0});it.decodeHTML=it.decodeHTMLStrict=it.decodeXML=void 0;var Ru=fl(Vu()),ah=fl(Bf()),ch=fl(Bu()),bf=fl(Xf()),fh=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;it.decodeXML=Gf(ch.default);it.decodeHTMLStrict=Gf(Ru.default);function Gf(e){var t=Qf(e);return function(r){return String(r).replace(fh,t)}}var $f=function(e,t){return e{"use strict";var Kf=Ne&&Ne.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.escapeUTF8=Ne.escape=Ne.encodeNonAsciiHTML=Ne.encodeHTML=Ne.encodeXML=void 0;var dh=Kf(Bu()),Yf=Jf(dh.default),Zf=ed(Yf);Ne.encodeXML=nd(Yf);var ph=Kf(Vu()),Xu=Jf(ph.default),mh=ed(Xu);Ne.encodeHTML=gh(Xu,mh);Ne.encodeNonAsciiHTML=nd(Xu);function Jf(e){return Object.keys(e).sort().reduce(function(t,r){return t[e[r]]="&"+r+";",t},{})}function ed(e){for(var t=[],r=[],n=0,o=Object.keys(e);n1?hh(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function gh(e,t){return function(r){return r.replace(t,function(n){return e[n]}).replace(td,dl)}}var rd=new RegExp(Zf.source+"|"+td.source,"g");function vh(e){return e.replace(rd,dl)}Ne.escape=vh;function yh(e){return e.replace(Zf,dl)}Ne.escapeUTF8=yh;function nd(e){return function(t){return t.replace(rd,function(r){return e[r]||dl(r)})}}});var ld=ce(M=>{"use strict";Object.defineProperty(M,"__esModule",{value:!0});M.decodeXMLStrict=M.decodeHTML5Strict=M.decodeHTML4Strict=M.decodeHTML5=M.decodeHTML4=M.decodeHTMLStrict=M.decodeHTML=M.decodeXML=M.encodeHTML5=M.encodeHTML4=M.escapeUTF8=M.escape=M.encodeNonAsciiHTML=M.encodeHTML=M.encodeXML=M.encode=M.decodeStrict=M.decode=void 0;var pl=Wu(),od=bu();function Sh(e,t){return(!t||t<=0?pl.decodeXML:pl.decodeHTML)(e)}M.decode=Sh;function Eh(e,t){return(!t||t<=0?pl.decodeXML:pl.decodeHTMLStrict)(e)}M.decodeStrict=Eh;function wh(e,t){return(!t||t<=0?od.encodeXML:od.encodeHTML)(e)}M.encode=wh;var ir=bu();Object.defineProperty(M,"encodeXML",{enumerable:!0,get:function(){return ir.encodeXML}});Object.defineProperty(M,"encodeHTML",{enumerable:!0,get:function(){return ir.encodeHTML}});Object.defineProperty(M,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return ir.encodeNonAsciiHTML}});Object.defineProperty(M,"escape",{enumerable:!0,get:function(){return ir.escape}});Object.defineProperty(M,"escapeUTF8",{enumerable:!0,get:function(){return ir.escapeUTF8}});Object.defineProperty(M,"encodeHTML4",{enumerable:!0,get:function(){return ir.encodeHTML}});Object.defineProperty(M,"encodeHTML5",{enumerable:!0,get:function(){return ir.encodeHTML}});var Bt=Wu();Object.defineProperty(M,"decodeXML",{enumerable:!0,get:function(){return Bt.decodeXML}});Object.defineProperty(M,"decodeHTML",{enumerable:!0,get:function(){return Bt.decodeHTML}});Object.defineProperty(M,"decodeHTMLStrict",{enumerable:!0,get:function(){return Bt.decodeHTMLStrict}});Object.defineProperty(M,"decodeHTML4",{enumerable:!0,get:function(){return Bt.decodeHTML}});Object.defineProperty(M,"decodeHTML5",{enumerable:!0,get:function(){return Bt.decodeHTML}});Object.defineProperty(M,"decodeHTML4Strict",{enumerable:!0,get:function(){return Bt.decodeHTMLStrict}});Object.defineProperty(M,"decodeHTML5Strict",{enumerable:!0,get:function(){return Bt.decodeHTMLStrict}});Object.defineProperty(M,"decodeXMLStrict",{enumerable:!0,get:function(){return Bt.decodeXML}})});var gd=ce((xg,hd)=>{"use strict";function _h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function id(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(a){throw a},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,u;return{s:function(){r=r.call(e)},n:function(){var a=r.next();return l=a.done,a},e:function(a){i=!0,u=a},f:function(){try{!l&&r.return!=null&&r.return()}finally{if(i)throw u}}}}function kh(e,t){if(e){if(typeof e=="string")return ud(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ud(e,t)}}function ud(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?e*40+55:0,i=t>0?t*40+55:0,u=r>0?r*40+55:0;n[o]=Lh([l,i,u])}function pd(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Lh(e){var t=[],r=dd(e),n;try{for(r.s();!(n=r.n()).done;){var o=n.value;t.push(pd(o))}}catch(l){r.e(l)}finally{r.f()}return"#"+t.join("")}function ad(e,t,r,n){var o;return t==="text"?o=Ah(r,n):t==="display"?o=Oh(e,r,n):t==="xterm256Foreground"?o=gl(e,n.colors[r]):t==="xterm256Background"?o=vl(e,n.colors[r]):t==="rgb"&&(o=Mh(e,r)),o}function Mh(e,t){t=t.substring(2).slice(0,-1);var r=+t.substr(0,2),n=t.substring(5).split(";"),o=n.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return hl(e,(r===38?"color:#":"background-color:#")+o)}function Oh(e,t,r){t=parseInt(t,10);var n={"-1":function(){return"
"},0:function(){return e.length&&md(e)},1:function(){return Rt(e,"b")},3:function(){return Rt(e,"i")},4:function(){return Rt(e,"u")},8:function(){return hl(e,"display:none")},9:function(){return Rt(e,"strike")},22:function(){return hl(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return fd(e,"i")},24:function(){return fd(e,"u")},39:function(){return gl(e,r.fg)},49:function(){return vl(e,r.bg)},53:function(){return hl(e,"text-decoration:overline")}},o;return n[t]?o=n[t]():4"}).join("")}function ml(e,t){for(var r=[],n=e;n<=t;n++)r.push(n);return r}function Ph(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function cd(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function hl(e,t){return Rt(e,"span",t)}function gl(e,t){return Rt(e,"span","color:"+t)}function vl(e,t){return Rt(e,"span","background-color:"+t)}function fd(e,t){var r;if(e.slice(-1)[0]===t&&(r=e.pop()),r)return""}function Dh(e,t,r){var n=!1,o=3;function l(){return""}function i(E,T){return r("xterm256Foreground",T),""}function u(E,T){return r("xterm256Background",T),""}function s(E){return t.newline?r("display",-1):r("text",E),""}function a(E,T){n=!0,T.trim().length===0&&(T="0"),T=T.trimRight(";").split(";");var C=dd(T),N;try{for(C.s();!(N=C.n()).done;){var I=N.value;r("display",I)}}catch(L){C.e(L)}finally{C.f()}return""}function p(E){return r("text",E),""}function m(E){return r("rgb",E),""}var h=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:m},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:u},{pattern:/^\n/,sub:s},{pattern:/^\r+\n/,sub:s},{pattern:/^\r/,sub:s},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:a},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:p}];function y(E,T){T>o&&n||(n=!1,e=e.replace(E.pattern,E.sub))}var w=[],_=e,A=_.length;e:for(;A>0;){for(var d=0,c=0,f=h.length;c{let l=["system","light","dark"],u=(l.indexOf(e)+1)%l.length;t(l[u])},n=()=>{switch(e){case"light":return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),oe.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),oe.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),oe.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),oe.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),oe.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),oe.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),oe.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),oe.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));case"system":default:return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),oe.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),oe.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";case"system":default:return"Theme: System (click for Light)"}};return oe.default.createElement("button",{className:"theme-toggle-btn",onClick:r,title:o(),"aria-label":o()},n())}var lt=W(X(),1);var qt=W(X(),1);function Af(e,t){let[r,n]=(0,qt.useState)(null),[o,l]=(0,qt.useState)(!0),[i,u]=(0,qt.useState)(null),s=(0,qt.useCallback)(async()=>{try{l(!0),u(null);let a=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let p=await a.json();n(p.stargazers_count)}catch(a){console.error("Failed to fetch GitHub stars:",a),u(a instanceof Error?a:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,qt.useEffect)(()=>{s()},[s]),{stars:r,isLoading:o,error:i}}function Df(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Uf({username:e,repo:t,className:r=""}){let{stars:n,isLoading:o,error:l}=Af(e,t),i=`https://github.com/${e}/${t}`;return l?lt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},lt.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},lt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):lt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${r}`,title:`Star us on GitHub${n!==null?` (${n.toLocaleString()} stars)`:""}`},lt.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},lt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),lt.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},lt.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),lt.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":n!==null?Df(n):"\u2014"))}function If({isConnected:e,projects:t,currentFilter:r,onFilterChange:n,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:u,onContextPreviewToggle:s}){let m=`https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1045833&theme=${i==="dark"||i==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}`;return $.default.createElement("div",{className:"header"},$.default.createElement("h1",null,$.default.createElement("div",{style:{position:"relative",display:"inline-block"}},$.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&$.default.createElement("div",{className:"queue-bubble"},l)),$.default.createElement("span",{className:"logo-text"},"claude-mem")),$.default.createElement("div",{className:"status"},$.default.createElement("a",{href:"https://www.producthunt.com/products/claude-mem?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-claude-mem",target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center"}},$.default.createElement("img",{src:m,alt:"Claude-Mem on Product Hunt",style:{width:"180px",height:"40px"},width:"180",height:"40"})),$.default.createElement(Uf,{username:"thedotmack",repo:"claude-mem"}),$.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},$.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},$.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),$.default.createElement("select",{value:r,onChange:h=>n(h.target.value)},$.default.createElement("option",{value:""},"All Projects"),t.map(h=>$.default.createElement("option",{key:h,value:h},h))),$.default.createElement(Pf,{preference:i,onThemeChange:u}),$.default.createElement("button",{className:"settings-btn",onClick:s,title:"Settings"},$.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},$.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),$.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var Q=W(X(),1);var P=W(X(),1);function jr(e){return new Date(e).toLocaleString()}function Ff(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let r=e.indexOf("claude-mem/");if(r!==-1)return e.substring(r+11);let n=e.split("/");return n.length>3?n.slice(-3).join("/"):e}function zf({observation:e}){let[t,r]=(0,P.useState)(!1),[n,o]=(0,P.useState)(!1),l=jr(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],u=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read).map(Ff):[],a=e.files_modified?JSON.parse(e.files_modified).map(Ff):[],p=i.length>0||u.length>0||s.length>0||a.length>0;return P.default.createElement("div",{className:"card"},P.default.createElement("div",{className:"card-header"},P.default.createElement("div",{className:"card-header-left"},P.default.createElement("span",{className:`card-type type-${e.type}`},e.type),P.default.createElement("span",{className:"card-project"},e.project)),P.default.createElement("div",{className:"view-mode-toggles"},p&&P.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{r(!t),t||o(!1)}},P.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},P.default.createElement("polyline",{points:"9 11 12 14 22 4"}),P.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),P.default.createElement("span",null,"facts")),e.narrative&&P.default.createElement("button",{className:`view-mode-toggle ${n?"active":""}`,onClick:()=>{o(!n),n||r(!1)}},P.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},P.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),P.default.createElement("polyline",{points:"14 2 14 8 20 8"}),P.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),P.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),P.default.createElement("span",null,"narrative")))),P.default.createElement("div",{className:"card-title"},e.title||"Untitled"),P.default.createElement("div",{className:"view-mode-content"},!t&&!n&&e.subtitle&&P.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&P.default.createElement("ul",{className:"facts-list"},i.map((m,h)=>P.default.createElement("li",{key:h},m))),n&&e.narrative&&P.default.createElement("div",{className:"narrative"},e.narrative)),P.default.createElement("div",{className:"card-meta"},P.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(u.length>0||s.length>0||a.length>0)&&P.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},u.map((m,h)=>P.default.createElement("span",{key:h,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},m)),s.length>0&&P.default.createElement("span",{className:"meta-files"},P.default.createElement("span",{className:"file-label"},"read:")," ",s.join(", ")),a.length>0&&P.default.createElement("span",{className:"meta-files"},P.default.createElement("span",{className:"file-label"},"modified:")," ",a.join(", ")))))}var se=W(X(),1);function jf({summary:e}){let t=jr(e.created_at_epoch),r=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(n=>n.content);return se.default.createElement("article",{className:"card summary-card"},se.default.createElement("header",{className:"summary-card-header"},se.default.createElement("div",{className:"summary-badge-row"},se.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),se.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&se.default.createElement("h2",{className:"summary-title"},e.request)),se.default.createElement("div",{className:"summary-sections"},r.map((n,o)=>se.default.createElement("section",{key:n.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},se.default.createElement("div",{className:"summary-section-header"},se.default.createElement("img",{src:n.icon,alt:n.label,className:`summary-section-icon summary-section-icon--${n.key}`}),se.default.createElement("h3",{className:"summary-section-label"},n.label)),se.default.createElement("div",{className:"summary-section-content"},n.content)))),se.default.createElement("footer",{className:"summary-card-footer"},se.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),se.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),se.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var vt=W(X(),1);function Hf({prompt:e}){let t=jr(e.created_at_epoch);return vt.default.createElement("div",{className:"card prompt-card"},vt.default.createElement("div",{className:"card-header"},vt.default.createElement("div",{className:"card-header-left"},vt.default.createElement("span",{className:"card-type"},"Prompt"),vt.default.createElement("span",{className:"card-project"},e.project))),vt.default.createElement("div",{className:"card-content"},e.prompt_text),vt.default.createElement("div",{className:"card-meta"},vt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Vt=W(X(),1);function qf({targetRef:e}){let[t,r]=(0,Vt.useState)(!1);(0,Vt.useEffect)(()=>{let o=()=>{let i=e.current;i&&r(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let n=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?Vt.default.createElement("button",{onClick:n,className:"scroll-to-top","aria-label":"Scroll to top"},Vt.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Vt.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var jn={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function Vf({observations:e,summaries:t,prompts:r,onLoadMore:n,isLoading:o,hasMore:l}){let i=(0,Q.useRef)(null),u=(0,Q.useRef)(null),s=(0,Q.useRef)(n);(0,Q.useEffect)(()=>{s.current=n},[n]),(0,Q.useEffect)(()=>{let p=i.current;if(!p)return;let m=new IntersectionObserver(h=>{h[0].isIntersecting&&l&&!o&&s.current?.()},{threshold:jn.LOAD_MORE_THRESHOLD});return m.observe(p),()=>{p&&m.unobserve(p),m.disconnect()}},[l,o]);let a=(0,Q.useMemo)(()=>[...e.map(m=>({...m,itemType:"observation"})),...t.map(m=>({...m,itemType:"summary"})),...r.map(m=>({...m,itemType:"prompt"}))].sort((m,h)=>h.created_at_epoch-m.created_at_epoch),[e,t,r]);return Q.default.createElement("div",{className:"feed",ref:u},Q.default.createElement(qf,{targetRef:u}),Q.default.createElement("div",{className:"feed-content"},a.map(p=>{let m=`${p.itemType}-${p.id}`;return p.itemType==="observation"?Q.default.createElement(zf,{key:m,observation:p}):p.itemType==="summary"?Q.default.createElement(jf,{key:m,summary:p}):Q.default.createElement(Hf,{key:m,prompt:p})}),a.length===0&&!o&&Q.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&Q.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},Q.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&a.length>0&&Q.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&a.length>0&&Q.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var g=W(X(),1);var te=W(X(),1),vd=W(gd(),1),Fh=new vd.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function yd({content:e,isLoading:t=!1,className:r=""}){let n=(0,te.useRef)(null),o=(0,te.useRef)(0),[l,i]=(0,te.useState)(!0),u=(0,te.useMemo)(()=>(n.current&&(o.current=n.current.scrollTop),e?Fh.toHtml(e):""),[e]);return(0,te.useLayoutEffect)(()=>{n.current&&o.current>0&&(n.current.scrollTop=o.current)},[u]),te.default.createElement("div",{className:r,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},te.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),te.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--color-accent-primary)",a.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",a.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?te.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):te.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},te.default.createElement("pre",{ref:n,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:u}})))}var Ke=W(X(),1);function Sd(e){let[t,r]=(0,Ke.useState)(""),[n,o]=(0,Ke.useState)(!1),[l,i]=(0,Ke.useState)(null),[u,s]=(0,Ke.useState)([]),[a,p]=(0,Ke.useState)(null);(0,Ke.useEffect)(()=>{async function h(){try{let w=await(await fetch("/api/projects")).json();w.projects&&w.projects.length>0&&(s(w.projects),p(w.projects[0]))}catch(y){console.error("Failed to fetch projects:",y)}}h()},[]);let m=(0,Ke.useCallback)(async()=>{if(!a){r("No project selected");return}o(!0),i(null);try{let h=new URLSearchParams({project:a}),y=await fetch(`/api/context/preview?${h}`),w=await y.text();y.ok?r(w):i("Failed to load preview")}catch(h){i(h.message)}finally{o(!1)}},[a]);return(0,Ke.useEffect)(()=>{let h=setTimeout(()=>{m()},300);return()=>clearTimeout(h)},[e,m]),{preview:t,isLoading:n,error:l,refresh:m,projects:u,selectedProject:a,setSelectedProject:p}}function zh(e,t){let r;return((...n)=>{clearTimeout(r),r=setTimeout(()=>e(...n),t)})}function yl({title:e,description:t,children:r,defaultOpen:n=!0}){let[o,l]=(0,g.useState)(n);return g.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},g.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},g.default.createElement("div",{className:"section-header-content"},g.default.createElement("span",{className:"section-title"},e),t&&g.default.createElement("span",{className:"section-description"},t)),g.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&g.default.createElement("div",{className:"section-content"},r))}function Ed({label:e,options:t,selectedValues:r,onToggle:n,onSelectAll:o,onSelectNone:l}){let i=t.every(s=>r.includes(s)),u=t.every(s=>!r.includes(s));return g.default.createElement("div",{className:"chip-group"},g.default.createElement("div",{className:"chip-group-header"},g.default.createElement("span",{className:"chip-group-label"},e),g.default.createElement("div",{className:"chip-group-actions"},g.default.createElement("button",{type:"button",className:`chip-action ${i?"active":""}`,onClick:o},"All"),g.default.createElement("button",{type:"button",className:`chip-action ${u?"active":""}`,onClick:l},"None"))),g.default.createElement("div",{className:"chips-container"},t.map(s=>g.default.createElement("button",{key:s,type:"button",className:`chip ${r.includes(s)?"selected":""}`,onClick:()=>n(s)},s))))}function Hr({label:e,tooltip:t,children:r}){return g.default.createElement("div",{className:"form-field"},g.default.createElement("label",{className:"form-field-label"},e,t&&g.default.createElement("span",{className:"tooltip-trigger",title:t},g.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),g.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),g.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),r)}function qr({id:e,label:t,description:r,checked:n,onChange:o,disabled:l}){return g.default.createElement("div",{className:"toggle-row"},g.default.createElement("div",{className:"toggle-info"},g.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),r&&g.default.createElement("span",{className:"toggle-description"},r)),g.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":n,className:`toggle-switch ${n?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!n),disabled:l},g.default.createElement("span",{className:"toggle-knob"})))}function wd({isOpen:e,onClose:t,settings:r,onSave:n,isSaving:o,saveStatus:l}){let[i,u]=(0,g.useState)(r),[s,a]=(0,g.useState)(!0),[p,m]=(0,g.useState)(!1),[h,y]=(0,g.useState)(""),w=(0,g.useCallback)(zh(x=>{n(x)},300),[n]);(0,g.useEffect)(()=>{u(r)},[r]),(0,g.useEffect)(()=>{fetch("/api/mcp/status").then(x=>x.json()).then(x=>a(x.enabled)).catch(x=>console.error("Failed to load MCP status:",x))},[]);let{preview:_,isLoading:A,error:d,projects:c,selectedProject:f,setSelectedProject:v}=Sd(i),E=(0,g.useCallback)((x,Y)=>{let Ee={...i,[x]:Y};u(Ee),w(Ee)},[i,w]),T=(0,g.useCallback)(x=>{let Ee=i[x]==="true"?"false":"true";E(x,Ee)},[i,E]),C=(0,g.useCallback)((x,Y)=>{let Ee=i[x]||"",Ze=Ee?Ee.split(","):[],qn=Ze.includes(Y)?Ze.filter(Vn=>Vn!==Y):[...Ze,Y];E(x,qn.join(","))},[i,E]),N=(0,g.useCallback)(x=>{let Y=i[x]||"";return Y?Y.split(","):[]},[i]),I=(0,g.useCallback)((x,Y)=>{E(x,Y.join(","))},[E]),L=async x=>{m(!0),y("Toggling...");try{let Ee=await(await fetch("/api/mcp/toggle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:x})})).json();Ee.success?(a(Ee.enabled),y("Updated (restart to apply)"),setTimeout(()=>y(""),3e3)):(y(`Error: ${Ee.error}`),setTimeout(()=>y(""),3e3))}catch(Y){y(`Error: ${Y instanceof Error?Y.message:"Unknown error"}`),setTimeout(()=>y(""),3e3)}finally{m(!1)}};if((0,g.useEffect)(()=>{let x=Y=>{Y.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[e,t]),!e)return null;let xe=["bugfix","feature","refactor","discovery","decision","change"],ur=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];return g.default.createElement("div",{className:"modal-backdrop",onClick:t},g.default.createElement("div",{className:"context-settings-modal",onClick:x=>x.stopPropagation()},g.default.createElement("div",{className:"modal-header"},g.default.createElement("h2",null,"Settings"),g.default.createElement("div",{className:"header-controls"},g.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",title:"Documentation",className:"modal-icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},g.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),g.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),g.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",title:"X (Twitter)",className:"modal-icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},g.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),g.default.createElement("label",{className:"preview-selector"},"Preview for:",g.default.createElement("select",{value:f||"",onChange:x=>v(x.target.value)},c.map(x=>g.default.createElement("option",{key:x,value:x},x)))),g.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},g.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),g.default.createElement("div",{className:"modal-body"},g.default.createElement("div",{className:"preview-column"},g.default.createElement("div",{className:"preview-content"},d?g.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",d):g.default.createElement(yd,{content:_,isLoading:A}))),g.default.createElement("div",{className:"settings-column"},g.default.createElement(yl,{title:"Loading",description:"How many observations to inject"},g.default.createElement(Hr,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},g.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:x=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",x.target.value)})),g.default.createElement(Hr,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},g.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:x=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",x.target.value)}))),g.default.createElement(yl,{title:"Filters",description:"Which observation types to include"},g.default.createElement(Ed,{label:"Type",options:xe,selectedValues:N("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES"),onToggle:x=>C("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",x),onSelectAll:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",xe),onSelectNone:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",[])}),g.default.createElement(Ed,{label:"Concept",options:ur,selectedValues:N("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS"),onToggle:x=>C("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",x),onSelectAll:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",ur),onSelectNone:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",[])})),g.default.createElement(yl,{title:"Display",description:"What to show in context tables"},g.default.createElement("div",{className:"display-subsection"},g.default.createElement("span",{className:"subsection-label"},"Full Observations"),g.default.createElement(Hr,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},g.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:x=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",x.target.value)})),g.default.createElement(Hr,{label:"Field",tooltip:"Which field to expand for full observations"},g.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:x=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",x.target.value)},g.default.createElement("option",{value:"narrative"},"Narrative"),g.default.createElement("option",{value:"facts"},"Facts")))),g.default.createElement("div",{className:"display-subsection"},g.default.createElement("span",{className:"subsection-label"},"Token Economics"),g.default.createElement("div",{className:"toggle-group"},g.default.createElement(qr,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),g.default.createElement(qr,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),g.default.createElement(qr,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),g.default.createElement(yl,{title:"Advanced",description:"Model selection and integrations",defaultOpen:!1},g.default.createElement(Hr,{label:"Model",tooltip:"AI model used for generating observations"},g.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:x=>E("CLAUDE_MEM_MODEL",x.target.value)},g.default.createElement("option",{value:"haiku"},"haiku (fastest)"),g.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),g.default.createElement("option",{value:"opus"},"opus (highest quality)"))),g.default.createElement(Hr,{label:"Worker Port",tooltip:"Port for the background worker service"},g.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:x=>E("CLAUDE_MEM_WORKER_PORT",x.target.value)})),g.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},g.default.createElement(qr,{id:"mcp-enabled",label:"MCP search server",description:h||"Enable Model Context Protocol search",checked:s,onChange:L,disabled:p}),g.default.createElement(qr,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),g.default.createElement(qr,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")})))))))}var Ue=W(X(),1);var Ye={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Sl={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function _d(){let[e,t]=(0,Ue.useState)([]),[r,n]=(0,Ue.useState)([]),[o,l]=(0,Ue.useState)([]),[i,u]=(0,Ue.useState)([]),[s,a]=(0,Ue.useState)(!1),[p,m]=(0,Ue.useState)(!1),[h,y]=(0,Ue.useState)(0),w=(0,Ue.useRef)(null),_=(0,Ue.useRef)();return(0,Ue.useEffect)(()=>{let A=()=>{w.current&&w.current.close();let d=new EventSource(Ye.STREAM);w.current=d,d.onopen=()=>{console.log("[SSE] Connected"),a(!0),_.current&&clearTimeout(_.current)},d.onerror=c=>{console.error("[SSE] Connection error:",c),a(!1),d.close(),_.current=setTimeout(()=>{_.current=void 0,console.log("[SSE] Attempting to reconnect..."),A()},Sl.SSE_RECONNECT_DELAY_MS)},d.onmessage=c=>{try{let f=JSON.parse(c.data);switch(f.type){case"initial_load":console.log("[SSE] Initial load:",{projects:f.projects?.length||0}),u(f.projects||[]);break;case"new_observation":f.observation&&(console.log("[SSE] New observation:",f.observation.id),t(v=>[f.observation,...v]));break;case"new_summary":if(f.summary){let v=f.summary;console.log("[SSE] New summary:",v.id),n(E=>[v,...E])}break;case"new_prompt":if(f.prompt){let v=f.prompt;console.log("[SSE] New prompt:",v.id),l(E=>[v,...E])}break;case"processing_status":typeof f.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",f.isProcessing,"Queue depth:",f.queueDepth),m(f.isProcessing),y(f.queueDepth||0));break}}catch(f){console.error("[SSE] Failed to parse message:",f)}}};return A(),()=>{w.current&&w.current.close(),_.current&&clearTimeout(_.current)}},[]),{observations:e,summaries:r,prompts:o,projects:i,isProcessing:p,queueDepth:h,isConnected:s}}var Vr=W(X(),1);var ae={CLAUDE_MEM_MODEL:"claude-haiku-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:"bugfix,feature,refactor,discovery,decision,change",CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:"how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off",CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};function Td(){let[e,t]=(0,Vr.useState)(ae),[r,n]=(0,Vr.useState)(!1),[o,l]=(0,Vr.useState)("");return(0,Vr.useEffect)(()=>{fetch(Ye.SETTINGS).then(u=>u.json()).then(u=>{t({CLAUDE_MEM_MODEL:u.CLAUDE_MEM_MODEL||ae.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:u.CLAUDE_MEM_CONTEXT_OBSERVATIONS||ae.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:u.CLAUDE_MEM_WORKER_PORT||ae.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:u.CLAUDE_MEM_WORKER_HOST||ae.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:u.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS||ae.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:u.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS||ae.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:u.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT||ae.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:u.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT||ae.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:u.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES||ae.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:u.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS||ae.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS,CLAUDE_MEM_CONTEXT_FULL_COUNT:u.CLAUDE_MEM_CONTEXT_FULL_COUNT||ae.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:u.CLAUDE_MEM_CONTEXT_FULL_FIELD||ae.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:u.CLAUDE_MEM_CONTEXT_SESSION_COUNT||ae.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:u.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY||ae.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:u.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE||ae.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(u=>{console.error("Failed to load settings:",u)})},[]),{settings:e,saveSettings:async u=>{n(!0),l("Saving...");try{let a=await(await fetch(Ye.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)})).json();a.success?(t(u),l("\u2713 Saved"),setTimeout(()=>l(""),Sl.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${a.error}`)}catch(s){l(`\u2717 Error: ${s instanceof Error?s.message:"Unknown error"}`)}finally{n(!1)}},isSaving:r,saveStatus:o}}var Br=W(X(),1);function kd(){let[e,t]=(0,Br.useState)({}),r=(0,Br.useCallback)(async()=>{try{let o=await(await fetch(Ye.STATS)).json();t(o)}catch(n){console.error("Failed to load stats:",n)}},[]);return(0,Br.useEffect)(()=>{r()},[r]),{stats:e,refreshStats:r}}var Wt=W(X(),1);function $u(e,t,r){let[n,o]=(0,Wt.useState)({isLoading:!1,hasMore:!0}),l=(0,Wt.useRef)(0),i=(0,Wt.useRef)(r),u=(0,Wt.useRef)(n),s=(0,Wt.useCallback)(async()=>{let a=i.current!==r;if(a){l.current=0,i.current=r;let p={isLoading:!1,hasMore:!0};o(p),u.current=p}if(!a&&(u.current.isLoading||!u.current.hasMore))return[];o(p=>({...p,isLoading:!0}));try{let p=new URLSearchParams({offset:l.current.toString(),limit:jn.PAGINATION_PAGE_SIZE.toString()});r&&p.append("project",r);let m=await fetch(`${e}?${p}`);if(!m.ok)throw new Error(`Failed to load ${t}: ${m.statusText}`);let h=await m.json();return o(y=>({...y,isLoading:!1,hasMore:h.hasMore})),l.current+=jn.PAGINATION_PAGE_SIZE,h.items}catch(p){return console.error(`Failed to load ${t}:`,p),o(m=>({...m,isLoading:!1})),[]}},[r,e,t]);return{...n,loadMore:s}}function Cd(e){let t=$u(Ye.OBSERVATIONS,"observations",e),r=$u(Ye.SUMMARIES,"summaries",e),n=$u(Ye.PROMPTS,"prompts",e);return{observations:t,summaries:r,prompts:n}}var Rr=W(X(),1),Ld="claude-mem-theme";function jh(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Nd(){try{let e=localStorage.getItem(Ld);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function xd(e){return e==="system"?jh():e}function Md(){let[e,t]=(0,Rr.useState)(Nd),[r,n]=(0,Rr.useState)(()=>xd(Nd()));return(0,Rr.useEffect)(()=>{let l=xd(e);n(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Rr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=u=>{let s=u.matches?"dark":"light";n(s),document.documentElement.setAttribute("data-theme",s)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:r,setThemePreference:l=>{try{localStorage.setItem(Ld,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function El(e,t){let r=new Set;return[...e,...t].filter(n=>r.has(n.id)?!1:(r.add(n.id),!0))}function Od(){let[e,t]=(0,K.useState)(""),[r,n]=(0,K.useState)(!1),[o,l]=(0,K.useState)([]),[i,u]=(0,K.useState)([]),[s,a]=(0,K.useState)([]),{observations:p,summaries:m,prompts:h,projects:y,isProcessing:w,queueDepth:_,isConnected:A}=_d(),{settings:d,saveSettings:c,isSaving:f,saveStatus:v}=Td(),{stats:E,refreshStats:T}=kd(),{preference:C,resolvedTheme:N,setThemePreference:I}=Md(),L=Cd(e),xe=(0,K.useMemo)(()=>e?o:El(p,o),[p,o,e]),ur=(0,K.useMemo)(()=>e?i:El(m,i),[m,i,e]),x=(0,K.useMemo)(()=>e?s:El(h,s),[h,s,e]),Y=(0,K.useCallback)(()=>{n(Ze=>!Ze)},[]),Ee=(0,K.useCallback)(async()=>{try{let[Ze,qn,Vn]=await Promise.all([L.observations.loadMore(),L.summaries.loadMore(),L.prompts.loadMore()]);Ze.length>0&&l(Wr=>[...Wr,...Ze]),qn.length>0&&u(Wr=>[...Wr,...qn]),Vn.length>0&&a(Wr=>[...Wr,...Vn])}catch(Ze){console.error("Failed to load more data:",Ze)}},[e,L.observations,L.summaries,L.prompts]);return(0,K.useEffect)(()=>{l([]),u([]),a([]),Ee()},[e]),K.default.createElement(K.default.Fragment,null,K.default.createElement(If,{isConnected:A,projects:y,currentFilter:e,onFilterChange:t,isProcessing:w,queueDepth:_,themePreference:C,onThemeChange:I,onContextPreviewToggle:Y}),K.default.createElement(Vf,{observations:xe,summaries:ur,prompts:x,onLoadMore:Ee,isLoading:L.observations.isLoading||L.summaries.isLoading||L.prompts.isLoading,hasMore:L.observations.hasMore||L.summaries.hasMore||L.prompts.hasMore}),K.default.createElement(wd,{isOpen:r,onClose:Y,settings:d,onSave:c,isSaving:f,saveStatus:v}))}var yt=W(X(),1),wl=class extends yt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,r){console.error("[ErrorBoundary] Caught error:",t,r),this.setState({error:t,errorInfo:r})}render(){return this.state.hasError?yt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},yt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),yt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&yt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},yt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),yt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,u;return{s:function(){r=r.call(e)},n:function(){var a=r.next();return l=a.done,a},e:function(a){i=!0,u=a},f:function(){try{!l&&r.return!=null&&r.return()}finally{if(i)throw u}}}}function kh(e,t){if(e){if(typeof e=="string")return ud(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ud(e,t)}}function ud(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?e*40+55:0,i=t>0?t*40+55:0,u=r>0?r*40+55:0;n[o]=Lh([l,i,u])}function pd(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Lh(e){var t=[],r=dd(e),n;try{for(r.s();!(n=r.n()).done;){var o=n.value;t.push(pd(o))}}catch(l){r.e(l)}finally{r.f()}return"#"+t.join("")}function ad(e,t,r,n){var o;return t==="text"?o=Ah(r,n):t==="display"?o=Oh(e,r,n):t==="xterm256Foreground"?o=gl(e,n.colors[r]):t==="xterm256Background"?o=vl(e,n.colors[r]):t==="rgb"&&(o=Mh(e,r)),o}function Mh(e,t){t=t.substring(2).slice(0,-1);var r=+t.substr(0,2),n=t.substring(5).split(";"),o=n.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return hl(e,(r===38?"color:#":"background-color:#")+o)}function Oh(e,t,r){t=parseInt(t,10);var n={"-1":function(){return"
"},0:function(){return e.length&&md(e)},1:function(){return Rt(e,"b")},3:function(){return Rt(e,"i")},4:function(){return Rt(e,"u")},8:function(){return hl(e,"display:none")},9:function(){return Rt(e,"strike")},22:function(){return hl(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return fd(e,"i")},24:function(){return fd(e,"u")},39:function(){return gl(e,r.fg)},49:function(){return vl(e,r.bg)},53:function(){return hl(e,"text-decoration:overline")}},o;return n[t]?o=n[t]():4"}).join("")}function ml(e,t){for(var r=[],n=e;n<=t;n++)r.push(n);return r}function Ph(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function cd(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function hl(e,t){return Rt(e,"span",t)}function gl(e,t){return Rt(e,"span","color:"+t)}function vl(e,t){return Rt(e,"span","background-color:"+t)}function fd(e,t){var r;if(e.slice(-1)[0]===t&&(r=e.pop()),r)return""}function Dh(e,t,r){var n=!1,o=3;function l(){return""}function i(E,T){return r("xterm256Foreground",T),""}function u(E,T){return r("xterm256Background",T),""}function s(E){return t.newline?r("display",-1):r("text",E),""}function a(E,T){n=!0,T.trim().length===0&&(T="0"),T=T.trimRight(";").split(";");var C=dd(T),N;try{for(C.s();!(N=C.n()).done;){var I=N.value;r("display",I)}}catch(L){C.e(L)}finally{C.f()}return""}function p(E){return r("text",E),""}function m(E){return r("rgb",E),""}var h=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:m},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:u},{pattern:/^\n/,sub:s},{pattern:/^\r+\n/,sub:s},{pattern:/^\r/,sub:s},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:a},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:p}];function y(E,T){T>o&&n||(n=!1,e=e.replace(E.pattern,E.sub))}var w=[],_=e,A=_.length;e:for(;A>0;){for(var d=0,c=0,f=h.length;c{let l=["system","light","dark"],u=(l.indexOf(e)+1)%l.length;t(l[u])},n=()=>{switch(e){case"light":return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),oe.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),oe.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),oe.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),oe.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),oe.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),oe.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),oe.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),oe.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));case"system":default:return oe.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},oe.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),oe.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),oe.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";case"system":default:return"Theme: System (click for Light)"}};return oe.default.createElement("button",{className:"theme-toggle-btn",onClick:r,title:o(),"aria-label":o()},n())}var lt=W(X(),1);var qt=W(X(),1);function Af(e,t){let[r,n]=(0,qt.useState)(null),[o,l]=(0,qt.useState)(!0),[i,u]=(0,qt.useState)(null),s=(0,qt.useCallback)(async()=>{try{l(!0),u(null);let a=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let p=await a.json();n(p.stargazers_count)}catch(a){console.error("Failed to fetch GitHub stars:",a),u(a instanceof Error?a:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,qt.useEffect)(()=>{s()},[s]),{stars:r,isLoading:o,error:i}}function Df(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Uf({username:e,repo:t,className:r=""}){let{stars:n,isLoading:o,error:l}=Af(e,t),i=`https://github.com/${e}/${t}`;return l?lt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},lt.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},lt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):lt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${r}`,title:`Star us on GitHub${n!==null?` (${n.toLocaleString()} stars)`:""}`},lt.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},lt.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),lt.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},lt.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),lt.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":n!==null?Df(n):"\u2014"))}function If({isConnected:e,projects:t,currentFilter:r,onFilterChange:n,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:u,onContextPreviewToggle:s}){let m=`https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1045833&theme=${i==="dark"||i==="system"&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}`;return $.default.createElement("div",{className:"header"},$.default.createElement("h1",null,$.default.createElement("div",{style:{position:"relative",display:"inline-block"}},$.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&$.default.createElement("div",{className:"queue-bubble"},l)),$.default.createElement("span",{className:"logo-text"},"claude-mem")),$.default.createElement("div",{className:"status"},$.default.createElement("a",{href:"https://www.producthunt.com/products/claude-mem?embed=true&utm_source=badge-featured&utm_medium=badge&utm_source=badge-claude-mem",target:"_blank",rel:"noopener noreferrer",style:{display:"flex",alignItems:"center"}},$.default.createElement("img",{src:m,alt:"Claude-Mem on Product Hunt",style:{width:"180px",height:"40px"},width:"180",height:"40"})),$.default.createElement(Uf,{username:"thedotmack",repo:"claude-mem"}),$.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},$.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},$.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),$.default.createElement("select",{value:r,onChange:h=>n(h.target.value)},$.default.createElement("option",{value:""},"All Projects"),t.map(h=>$.default.createElement("option",{key:h,value:h},h))),$.default.createElement(Pf,{preference:i,onThemeChange:u}),$.default.createElement("button",{className:"settings-btn",onClick:s,title:"Settings"},$.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},$.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),$.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var Q=W(X(),1);var P=W(X(),1);function jr(e){return new Date(e).toLocaleString()}function Ff(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let r=e.indexOf("claude-mem/");if(r!==-1)return e.substring(r+11);let n=e.split("/");return n.length>3?n.slice(-3).join("/"):e}function zf({observation:e}){let[t,r]=(0,P.useState)(!1),[n,o]=(0,P.useState)(!1),l=jr(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],u=e.concepts?JSON.parse(e.concepts):[],s=e.files_read?JSON.parse(e.files_read).map(Ff):[],a=e.files_modified?JSON.parse(e.files_modified).map(Ff):[],p=i.length>0||u.length>0||s.length>0||a.length>0;return P.default.createElement("div",{className:"card"},P.default.createElement("div",{className:"card-header"},P.default.createElement("div",{className:"card-header-left"},P.default.createElement("span",{className:`card-type type-${e.type}`},e.type),P.default.createElement("span",{className:"card-project"},e.project)),P.default.createElement("div",{className:"view-mode-toggles"},p&&P.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{r(!t),t||o(!1)}},P.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},P.default.createElement("polyline",{points:"9 11 12 14 22 4"}),P.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),P.default.createElement("span",null,"facts")),e.narrative&&P.default.createElement("button",{className:`view-mode-toggle ${n?"active":""}`,onClick:()=>{o(!n),n||r(!1)}},P.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},P.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),P.default.createElement("polyline",{points:"14 2 14 8 20 8"}),P.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),P.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),P.default.createElement("span",null,"narrative")))),P.default.createElement("div",{className:"card-title"},e.title||"Untitled"),P.default.createElement("div",{className:"view-mode-content"},!t&&!n&&e.subtitle&&P.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&P.default.createElement("ul",{className:"facts-list"},i.map((m,h)=>P.default.createElement("li",{key:h},m))),n&&e.narrative&&P.default.createElement("div",{className:"narrative"},e.narrative)),P.default.createElement("div",{className:"card-meta"},P.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(u.length>0||s.length>0||a.length>0)&&P.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},u.map((m,h)=>P.default.createElement("span",{key:h,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},m)),s.length>0&&P.default.createElement("span",{className:"meta-files"},P.default.createElement("span",{className:"file-label"},"read:")," ",s.join(", ")),a.length>0&&P.default.createElement("span",{className:"meta-files"},P.default.createElement("span",{className:"file-label"},"modified:")," ",a.join(", ")))))}var se=W(X(),1);function jf({summary:e}){let t=jr(e.created_at_epoch),r=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(n=>n.content);return se.default.createElement("article",{className:"card summary-card"},se.default.createElement("header",{className:"summary-card-header"},se.default.createElement("div",{className:"summary-badge-row"},se.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),se.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&se.default.createElement("h2",{className:"summary-title"},e.request)),se.default.createElement("div",{className:"summary-sections"},r.map((n,o)=>se.default.createElement("section",{key:n.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},se.default.createElement("div",{className:"summary-section-header"},se.default.createElement("img",{src:n.icon,alt:n.label,className:`summary-section-icon summary-section-icon--${n.key}`}),se.default.createElement("h3",{className:"summary-section-label"},n.label)),se.default.createElement("div",{className:"summary-section-content"},n.content)))),se.default.createElement("footer",{className:"summary-card-footer"},se.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),se.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),se.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var vt=W(X(),1);function Hf({prompt:e}){let t=jr(e.created_at_epoch);return vt.default.createElement("div",{className:"card prompt-card"},vt.default.createElement("div",{className:"card-header"},vt.default.createElement("div",{className:"card-header-left"},vt.default.createElement("span",{className:"card-type"},"Prompt"),vt.default.createElement("span",{className:"card-project"},e.project))),vt.default.createElement("div",{className:"card-content"},e.prompt_text),vt.default.createElement("div",{className:"card-meta"},vt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Vt=W(X(),1);function qf({targetRef:e}){let[t,r]=(0,Vt.useState)(!1);(0,Vt.useEffect)(()=>{let o=()=>{let i=e.current;i&&r(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let n=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?Vt.default.createElement("button",{onClick:n,className:"scroll-to-top","aria-label":"Scroll to top"},Vt.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Vt.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var jn={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function Vf({observations:e,summaries:t,prompts:r,onLoadMore:n,isLoading:o,hasMore:l}){let i=(0,Q.useRef)(null),u=(0,Q.useRef)(null),s=(0,Q.useRef)(n);(0,Q.useEffect)(()=>{s.current=n},[n]),(0,Q.useEffect)(()=>{let p=i.current;if(!p)return;let m=new IntersectionObserver(h=>{h[0].isIntersecting&&l&&!o&&s.current?.()},{threshold:jn.LOAD_MORE_THRESHOLD});return m.observe(p),()=>{p&&m.unobserve(p),m.disconnect()}},[l,o]);let a=(0,Q.useMemo)(()=>[...e.map(m=>({...m,itemType:"observation"})),...t.map(m=>({...m,itemType:"summary"})),...r.map(m=>({...m,itemType:"prompt"}))].sort((m,h)=>h.created_at_epoch-m.created_at_epoch),[e,t,r]);return Q.default.createElement("div",{className:"feed",ref:u},Q.default.createElement(qf,{targetRef:u}),Q.default.createElement("div",{className:"feed-content"},a.map(p=>{let m=`${p.itemType}-${p.id}`;return p.itemType==="observation"?Q.default.createElement(zf,{key:m,observation:p}):p.itemType==="summary"?Q.default.createElement(jf,{key:m,summary:p}):Q.default.createElement(Hf,{key:m,prompt:p})}),a.length===0&&!o&&Q.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&Q.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},Q.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&a.length>0&&Q.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&a.length>0&&Q.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var g=W(X(),1);var te=W(X(),1),vd=W(gd(),1),Fh=new vd.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function yd({content:e,isLoading:t=!1,className:r=""}){let n=(0,te.useRef)(null),o=(0,te.useRef)(0),[l,i]=(0,te.useState)(!0),u=(0,te.useMemo)(()=>(n.current&&(o.current=n.current.scrollTop),e?Fh.toHtml(e):""),[e]);return(0,te.useLayoutEffect)(()=>{n.current&&o.current>0&&(n.current.scrollTop=o.current)},[u]),te.default.createElement("div",{className:r,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},te.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),te.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),te.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--color-accent-primary)",a.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",a.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?te.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):te.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},te.default.createElement("pre",{ref:n,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:u}})))}var Ke=W(X(),1);function Sd(e){let[t,r]=(0,Ke.useState)(""),[n,o]=(0,Ke.useState)(!1),[l,i]=(0,Ke.useState)(null),[u,s]=(0,Ke.useState)([]),[a,p]=(0,Ke.useState)(null);(0,Ke.useEffect)(()=>{async function h(){try{let w=await(await fetch("/api/projects")).json();w.projects&&w.projects.length>0&&(s(w.projects),p(w.projects[0]))}catch(y){console.error("Failed to fetch projects:",y)}}h()},[]);let m=(0,Ke.useCallback)(async()=>{if(!a){r("No project selected");return}o(!0),i(null);try{let h=new URLSearchParams({project:a}),y=await fetch(`/api/context/preview?${h}`),w=await y.text();y.ok?r(w):i("Failed to load preview")}catch(h){i(h.message)}finally{o(!1)}},[a]);return(0,Ke.useEffect)(()=>{let h=setTimeout(()=>{m()},300);return()=>clearTimeout(h)},[e,m]),{preview:t,isLoading:n,error:l,refresh:m,projects:u,selectedProject:a,setSelectedProject:p}}function zh(e,t){let r;return((...n)=>{clearTimeout(r),r=setTimeout(()=>e(...n),t)})}function yl({title:e,description:t,children:r,defaultOpen:n=!0}){let[o,l]=(0,g.useState)(n);return g.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},g.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},g.default.createElement("div",{className:"section-header-content"},g.default.createElement("span",{className:"section-title"},e),t&&g.default.createElement("span",{className:"section-description"},t)),g.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&g.default.createElement("div",{className:"section-content"},r))}function Ed({label:e,options:t,selectedValues:r,onToggle:n,onSelectAll:o,onSelectNone:l}){let i=t.every(s=>r.includes(s)),u=t.every(s=>!r.includes(s));return g.default.createElement("div",{className:"chip-group"},g.default.createElement("div",{className:"chip-group-header"},g.default.createElement("span",{className:"chip-group-label"},e),g.default.createElement("div",{className:"chip-group-actions"},g.default.createElement("button",{type:"button",className:`chip-action ${i?"active":""}`,onClick:o},"All"),g.default.createElement("button",{type:"button",className:`chip-action ${u?"active":""}`,onClick:l},"None"))),g.default.createElement("div",{className:"chips-container"},t.map(s=>g.default.createElement("button",{key:s,type:"button",className:`chip ${r.includes(s)?"selected":""}`,onClick:()=>n(s)},s))))}function Hr({label:e,tooltip:t,children:r}){return g.default.createElement("div",{className:"form-field"},g.default.createElement("label",{className:"form-field-label"},e,t&&g.default.createElement("span",{className:"tooltip-trigger",title:t},g.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),g.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),g.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),r)}function qr({id:e,label:t,description:r,checked:n,onChange:o,disabled:l}){return g.default.createElement("div",{className:"toggle-row"},g.default.createElement("div",{className:"toggle-info"},g.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),r&&g.default.createElement("span",{className:"toggle-description"},r)),g.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":n,className:`toggle-switch ${n?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!n),disabled:l},g.default.createElement("span",{className:"toggle-knob"})))}function wd({isOpen:e,onClose:t,settings:r,onSave:n,isSaving:o,saveStatus:l}){let[i,u]=(0,g.useState)(r),[s,a]=(0,g.useState)(!0),[p,m]=(0,g.useState)(!1),[h,y]=(0,g.useState)(""),w=(0,g.useCallback)(zh(x=>{n(x)},300),[n]);(0,g.useEffect)(()=>{u(r)},[r]),(0,g.useEffect)(()=>{fetch("/api/mcp/status").then(x=>x.json()).then(x=>a(x.enabled)).catch(x=>console.error("Failed to load MCP status:",x))},[]);let{preview:_,isLoading:A,error:d,projects:c,selectedProject:f,setSelectedProject:v}=Sd(i),E=(0,g.useCallback)((x,Y)=>{let Ee={...i,[x]:Y};u(Ee),w(Ee)},[i,w]),T=(0,g.useCallback)(x=>{let Ee=i[x]==="true"?"false":"true";E(x,Ee)},[i,E]),C=(0,g.useCallback)((x,Y)=>{let Ee=i[x]||"",Ze=Ee?Ee.split(","):[],qn=Ze.includes(Y)?Ze.filter(Vn=>Vn!==Y):[...Ze,Y];E(x,qn.join(","))},[i,E]),N=(0,g.useCallback)(x=>{let Y=i[x]||"";return Y?Y.split(","):[]},[i]),I=(0,g.useCallback)((x,Y)=>{E(x,Y.join(","))},[E]),L=async x=>{m(!0),y("Toggling...");try{let Ee=await(await fetch("/api/mcp/toggle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:x})})).json();Ee.success?(a(Ee.enabled),y("Updated (restart to apply)"),setTimeout(()=>y(""),3e3)):(y(`Error: ${Ee.error}`),setTimeout(()=>y(""),3e3))}catch(Y){y(`Error: ${Y instanceof Error?Y.message:"Unknown error"}`),setTimeout(()=>y(""),3e3)}finally{m(!1)}};if((0,g.useEffect)(()=>{let x=Y=>{Y.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[e,t]),!e)return null;let xe=["bugfix","feature","refactor","discovery","decision","change"],ur=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];return g.default.createElement("div",{className:"modal-backdrop",onClick:t},g.default.createElement("div",{className:"context-settings-modal",onClick:x=>x.stopPropagation()},g.default.createElement("div",{className:"modal-header"},g.default.createElement("h2",null,"Settings"),g.default.createElement("div",{className:"header-controls"},g.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",title:"Documentation",className:"modal-icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},g.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),g.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),g.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",title:"X (Twitter)",className:"modal-icon-link"},g.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},g.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),g.default.createElement("label",{className:"preview-selector"},"Preview for:",g.default.createElement("select",{value:f||"",onChange:x=>v(x.target.value)},c.map(x=>g.default.createElement("option",{key:x,value:x},x)))),g.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},g.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},g.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),g.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),g.default.createElement("div",{className:"modal-body"},g.default.createElement("div",{className:"preview-column"},g.default.createElement("div",{className:"preview-content"},d?g.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",d):g.default.createElement(yd,{content:_,isLoading:A}))),g.default.createElement("div",{className:"settings-column"},g.default.createElement(yl,{title:"Loading",description:"How many observations to inject"},g.default.createElement(Hr,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},g.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:x=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",x.target.value)})),g.default.createElement(Hr,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},g.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:x=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",x.target.value)}))),g.default.createElement(yl,{title:"Filters",description:"Which observation types to include"},g.default.createElement(Ed,{label:"Type",options:xe,selectedValues:N("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES"),onToggle:x=>C("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",x),onSelectAll:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",xe),onSelectNone:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",[])}),g.default.createElement(Ed,{label:"Concept",options:ur,selectedValues:N("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS"),onToggle:x=>C("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",x),onSelectAll:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",ur),onSelectNone:()=>I("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",[])})),g.default.createElement(yl,{title:"Display",description:"What to show in context tables"},g.default.createElement("div",{className:"display-subsection"},g.default.createElement("span",{className:"subsection-label"},"Full Observations"),g.default.createElement(Hr,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},g.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:x=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",x.target.value)})),g.default.createElement(Hr,{label:"Field",tooltip:"Which field to expand for full observations"},g.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:x=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",x.target.value)},g.default.createElement("option",{value:"narrative"},"Narrative"),g.default.createElement("option",{value:"facts"},"Facts")))),g.default.createElement("div",{className:"display-subsection"},g.default.createElement("span",{className:"subsection-label"},"Token Economics"),g.default.createElement("div",{className:"toggle-group"},g.default.createElement(qr,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),g.default.createElement(qr,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),g.default.createElement(qr,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),g.default.createElement(yl,{title:"Advanced",description:"Model selection and integrations",defaultOpen:!1},g.default.createElement(Hr,{label:"Model",tooltip:"AI model used for generating observations"},g.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:x=>E("CLAUDE_MEM_MODEL",x.target.value)},g.default.createElement("option",{value:"haiku"},"haiku (fastest)"),g.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),g.default.createElement("option",{value:"opus"},"opus (highest quality)"))),g.default.createElement(Hr,{label:"Worker Port",tooltip:"Port for the background worker service"},g.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:x=>E("CLAUDE_MEM_WORKER_PORT",x.target.value)})),g.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},g.default.createElement(qr,{id:"mcp-enabled",label:"MCP search server",description:h||"Enable Model Context Protocol search",checked:s,onChange:L,disabled:p}),g.default.createElement(qr,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),g.default.createElement(qr,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>T("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")})))))))}var Ue=W(X(),1);var Ye={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Sl={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function _d(){let[e,t]=(0,Ue.useState)([]),[r,n]=(0,Ue.useState)([]),[o,l]=(0,Ue.useState)([]),[i,u]=(0,Ue.useState)([]),[s,a]=(0,Ue.useState)(!1),[p,m]=(0,Ue.useState)(!1),[h,y]=(0,Ue.useState)(0),w=(0,Ue.useRef)(null),_=(0,Ue.useRef)();return(0,Ue.useEffect)(()=>{let A=()=>{w.current&&w.current.close();let d=new EventSource(Ye.STREAM);w.current=d,d.onopen=()=>{console.log("[SSE] Connected"),a(!0),_.current&&clearTimeout(_.current)},d.onerror=c=>{console.error("[SSE] Connection error:",c),a(!1),d.close(),_.current=setTimeout(()=>{_.current=void 0,console.log("[SSE] Attempting to reconnect..."),A()},Sl.SSE_RECONNECT_DELAY_MS)},d.onmessage=c=>{try{let f=JSON.parse(c.data);switch(f.type){case"initial_load":console.log("[SSE] Initial load:",{projects:f.projects?.length||0}),u(f.projects||[]);break;case"new_observation":f.observation&&(console.log("[SSE] New observation:",f.observation.id),t(v=>[f.observation,...v]));break;case"new_summary":if(f.summary){let v=f.summary;console.log("[SSE] New summary:",v.id),n(E=>[v,...E])}break;case"new_prompt":if(f.prompt){let v=f.prompt;console.log("[SSE] New prompt:",v.id),l(E=>[v,...E])}break;case"processing_status":typeof f.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",f.isProcessing,"Queue depth:",f.queueDepth),m(f.isProcessing),y(f.queueDepth||0));break}}catch(f){console.error("[SSE] Failed to parse message:",f)}}};return A(),()=>{w.current&&w.current.close(),_.current&&clearTimeout(_.current)}},[]),{observations:e,summaries:r,prompts:o,projects:i,isProcessing:p,queueDepth:h,isConnected:s}}var Vr=W(X(),1);var ae={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:"bugfix,feature,refactor,discovery,decision,change",CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:"how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off",CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};function Td(){let[e,t]=(0,Vr.useState)(ae),[r,n]=(0,Vr.useState)(!1),[o,l]=(0,Vr.useState)("");return(0,Vr.useEffect)(()=>{fetch(Ye.SETTINGS).then(u=>u.json()).then(u=>{t({CLAUDE_MEM_MODEL:u.CLAUDE_MEM_MODEL||ae.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:u.CLAUDE_MEM_CONTEXT_OBSERVATIONS||ae.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:u.CLAUDE_MEM_WORKER_PORT||ae.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:u.CLAUDE_MEM_WORKER_HOST||ae.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:u.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS||ae.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:u.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS||ae.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:u.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT||ae.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:u.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT||ae.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:u.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES||ae.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:u.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS||ae.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS,CLAUDE_MEM_CONTEXT_FULL_COUNT:u.CLAUDE_MEM_CONTEXT_FULL_COUNT||ae.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:u.CLAUDE_MEM_CONTEXT_FULL_FIELD||ae.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:u.CLAUDE_MEM_CONTEXT_SESSION_COUNT||ae.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:u.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY||ae.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:u.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE||ae.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(u=>{console.error("Failed to load settings:",u)})},[]),{settings:e,saveSettings:async u=>{n(!0),l("Saving...");try{let a=await(await fetch(Ye.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)})).json();a.success?(t(u),l("\u2713 Saved"),setTimeout(()=>l(""),Sl.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${a.error}`)}catch(s){l(`\u2717 Error: ${s instanceof Error?s.message:"Unknown error"}`)}finally{n(!1)}},isSaving:r,saveStatus:o}}var Br=W(X(),1);function kd(){let[e,t]=(0,Br.useState)({}),r=(0,Br.useCallback)(async()=>{try{let o=await(await fetch(Ye.STATS)).json();t(o)}catch(n){console.error("Failed to load stats:",n)}},[]);return(0,Br.useEffect)(()=>{r()},[r]),{stats:e,refreshStats:r}}var Wt=W(X(),1);function $u(e,t,r){let[n,o]=(0,Wt.useState)({isLoading:!1,hasMore:!0}),l=(0,Wt.useRef)(0),i=(0,Wt.useRef)(r),u=(0,Wt.useRef)(n),s=(0,Wt.useCallback)(async()=>{let a=i.current!==r;if(a){l.current=0,i.current=r;let p={isLoading:!1,hasMore:!0};o(p),u.current=p}if(!a&&(u.current.isLoading||!u.current.hasMore))return[];o(p=>({...p,isLoading:!0}));try{let p=new URLSearchParams({offset:l.current.toString(),limit:jn.PAGINATION_PAGE_SIZE.toString()});r&&p.append("project",r);let m=await fetch(`${e}?${p}`);if(!m.ok)throw new Error(`Failed to load ${t}: ${m.statusText}`);let h=await m.json();return o(y=>({...y,isLoading:!1,hasMore:h.hasMore})),l.current+=jn.PAGINATION_PAGE_SIZE,h.items}catch(p){return console.error(`Failed to load ${t}:`,p),o(m=>({...m,isLoading:!1})),[]}},[r,e,t]);return{...n,loadMore:s}}function Cd(e){let t=$u(Ye.OBSERVATIONS,"observations",e),r=$u(Ye.SUMMARIES,"summaries",e),n=$u(Ye.PROMPTS,"prompts",e);return{observations:t,summaries:r,prompts:n}}var Rr=W(X(),1),Ld="claude-mem-theme";function jh(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Nd(){try{let e=localStorage.getItem(Ld);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function xd(e){return e==="system"?jh():e}function Md(){let[e,t]=(0,Rr.useState)(Nd),[r,n]=(0,Rr.useState)(()=>xd(Nd()));return(0,Rr.useEffect)(()=>{let l=xd(e);n(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Rr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=u=>{let s=u.matches?"dark":"light";n(s),document.documentElement.setAttribute("data-theme",s)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:r,setThemePreference:l=>{try{localStorage.setItem(Ld,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function El(e,t){let r=new Set;return[...e,...t].filter(n=>r.has(n.id)?!1:(r.add(n.id),!0))}function Od(){let[e,t]=(0,K.useState)(""),[r,n]=(0,K.useState)(!1),[o,l]=(0,K.useState)([]),[i,u]=(0,K.useState)([]),[s,a]=(0,K.useState)([]),{observations:p,summaries:m,prompts:h,projects:y,isProcessing:w,queueDepth:_,isConnected:A}=_d(),{settings:d,saveSettings:c,isSaving:f,saveStatus:v}=Td(),{stats:E,refreshStats:T}=kd(),{preference:C,resolvedTheme:N,setThemePreference:I}=Md(),L=Cd(e),xe=(0,K.useMemo)(()=>e?o:El(p,o),[p,o,e]),ur=(0,K.useMemo)(()=>e?i:El(m,i),[m,i,e]),x=(0,K.useMemo)(()=>e?s:El(h,s),[h,s,e]),Y=(0,K.useCallback)(()=>{n(Ze=>!Ze)},[]),Ee=(0,K.useCallback)(async()=>{try{let[Ze,qn,Vn]=await Promise.all([L.observations.loadMore(),L.summaries.loadMore(),L.prompts.loadMore()]);Ze.length>0&&l(Wr=>[...Wr,...Ze]),qn.length>0&&u(Wr=>[...Wr,...qn]),Vn.length>0&&a(Wr=>[...Wr,...Vn])}catch(Ze){console.error("Failed to load more data:",Ze)}},[e,L.observations,L.summaries,L.prompts]);return(0,K.useEffect)(()=>{l([]),u([]),a([]),Ee()},[e]),K.default.createElement(K.default.Fragment,null,K.default.createElement(If,{isConnected:A,projects:y,currentFilter:e,onFilterChange:t,isProcessing:w,queueDepth:_,themePreference:C,onThemeChange:I,onContextPreviewToggle:Y}),K.default.createElement(Vf,{observations:xe,summaries:ur,prompts:x,onLoadMore:Ee,isLoading:L.observations.isLoading||L.summaries.isLoading||L.prompts.isLoading,hasMore:L.observations.hasMore||L.summaries.hasMore||L.prompts.hasMore}),K.default.createElement(wd,{isOpen:r,onClose:Y,settings:d,onSave:c,isSaving:f,saveStatus:v}))}var yt=W(X(),1),wl=class extends yt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,r){console.error("[ErrorBoundary] Caught error:",t,r),this.setState({error:t,errorInfo:r})}render(){return this.state.hasError?yt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},yt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),yt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&yt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},yt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),yt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` `+this.state.errorInfo.componentStack))):this.props.children}};var Ad=document.getElementById("root");if(!Ad)throw new Error("Root element not found");var Hh=(0,Pd.createRoot)(Ad);Hh.render(Gu.default.createElement(wl,null,Gu.default.createElement(Od,null)));})(); /*! Bundled license information: diff --git a/src/shared/SettingsDefaultsManager.ts b/src/shared/SettingsDefaultsManager.ts index a01e35c9..80603239 100644 --- a/src/shared/SettingsDefaultsManager.ts +++ b/src/shared/SettingsDefaultsManager.ts @@ -44,7 +44,7 @@ export class SettingsDefaultsManager { * Default values for all settings */ private static readonly DEFAULTS: SettingsDefaults = { - CLAUDE_MEM_MODEL: 'claude-haiku-4-5', + CLAUDE_MEM_MODEL: 'claude-sonnet-4-5', CLAUDE_MEM_CONTEXT_OBSERVATIONS: '50', CLAUDE_MEM_WORKER_PORT: '37777', CLAUDE_MEM_WORKER_HOST: '127.0.0.1', diff --git a/src/ui/viewer/constants/settings.ts b/src/ui/viewer/constants/settings.ts index bf576530..874c83de 100644 --- a/src/ui/viewer/constants/settings.ts +++ b/src/ui/viewer/constants/settings.ts @@ -3,7 +3,7 @@ * Shared across UI components and hooks */ export const DEFAULT_SETTINGS = { - CLAUDE_MEM_MODEL: 'claude-haiku-4-5', + CLAUDE_MEM_MODEL: 'claude-sonnet-4-5', CLAUDE_MEM_CONTEXT_OBSERVATIONS: '50', CLAUDE_MEM_WORKER_PORT: '37777', CLAUDE_MEM_WORKER_HOST: '127.0.0.1',