diff --git a/main.js b/main.js index b67db7d..add0d4e 100644 --- a/main.js +++ b/main.js @@ -1,9 +1,9 @@ -var ra=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var Yn=Object.prototype.hasOwnProperty;var Dn=(t,e)=>{for(var a in e)ra(t,a,{get:e[a],enumerable:!0})},zn=(t,e,a,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ln(e))!Yn.call(t,i)&&i!==a&&ra(t,i,{get:()=>e[i],enumerable:!(s=Rn(e,i))||s.enumerable});return t};var An=t=>zn(ra({},"__esModule",{value:!0}),t);var wc={};Dn(wc,{default:()=>ia});module.exports=An(wc);var jn=require("obsidian");var Tn=require("obsidian");var K=require("obsidian");function bs(){try{let t=window.require;return typeof t!="function"?null:t("electron")?.shell??null}catch{return null}}function ut(t){let e=bs();if(e){e.openExternal(t);return}window.open(t,"_blank")}function ht(t){let e=bs();e&&e.showItemInFolder(t)}var mt=require("os"),T=require("fs"),Q=require("path"),v=(0,mt.homedir)(),Ce=(0,mt.platform)()==="win32",Se=process.env.XDG_CONFIG_HOME||(Ce?(0,Q.join)(v,".config"):(0,Q.join)(v,".config")),oa=new Map;function Ps(){oa.clear()}function M(t,e){let a=oa.get(t);if(a!==void 0)return a;let s=e();return oa.set(t,s),s}function Fe(t){if(Ce){let e=process.env.ProgramFiles||"C:\\Program Files",a=process.env.LOCALAPPDATA||(0,Q.join)(v,"AppData","Local");return(0,T.existsSync)((0,Q.join)(e,t))||(0,T.existsSync)((0,Q.join)(a,"Programs",t))}return(0,T.existsSync)(`/Applications/${t}.app`)||(0,T.existsSync)((0,Q.join)(v,"Applications",`${t}.app`))}function ie(t){let e=Ce?[`${t}.cmd`,`${t}.exe`,t]:[t],a=[];if(Ce){let i=process.env.APPDATA||(0,Q.join)(v,"AppData","Roaming");a.push((0,Q.join)(i,"npm"),(0,Q.join)(v,".bun","bin"),(0,Q.join)(v,"AppData","Local","npm"))}else a.push("/usr/local/bin","/opt/homebrew/bin",(0,Q.join)(v,".local","bin"));for(let i of a)for(let r of e)if((0,T.existsSync)((0,Q.join)(i,r)))return!0;let s=Ce?(0,Q.join)(v,"AppData","Roaming","nvm"):(0,Q.join)(v,".nvm","versions","node");try{for(let i of(0,T.readdirSync)(s)){let r=Ce?(0,Q.join)(s,i):(0,Q.join)(s,i,"bin");for(let n of e)if((0,T.existsSync)((0,Q.join)(r,n)))return!0}}catch{}return!1}var na=["Code","Code - Insiders","Cursor","VSCodium","Windsurf"];function ks(t){let e;if(process.platform==="darwin")e=na.map(a=>(0,Q.join)(v,"Library","Application Support",a,"User","globalStorage",t));else if(Ce){let a=process.env.APPDATA||(0,Q.join)(v,"AppData","Roaming");e=na.map(s=>(0,Q.join)(a,s,"User","globalStorage",t))}else e=na.map(a=>(0,Q.join)(Se,a,"User","globalStorage",t));return e.some(a=>(0,T.existsSync)(a))}var U=[{id:"claude-code",name:"Claude Code",color:"#f97316",icon:"brain",paths:[{baseDir:(0,Q.join)(v,".claude","skills"),type:"skill",pattern:"directory-with-skillmd"},{baseDir:(0,Q.join)(v,".claude","commands"),type:"command",pattern:"flat-md"}],agentPaths:[{baseDir:(0,Q.join)(v,".claude","agents"),type:"agent",pattern:"flat-md"}],isInstalled:()=>M("claude-code",()=>(0,T.existsSync)((0,Q.join)(v,".claude","settings.json"))||(0,T.existsSync)((0,Q.join)(v,".claude","CLAUDE.md"))||ie("claude"))},{id:"cursor",name:"Cursor",color:"#3b82f6",icon:"mouse-pointer",paths:[{baseDir:(0,Q.join)(v,".cursor","skills"),type:"skill",pattern:"directory-with-skillmd"},{baseDir:(0,Q.join)(v,".cursor","rules"),type:"rule",pattern:"mdc"}],agentPaths:[{baseDir:(0,Q.join)(v,".cursor","agents"),type:"agent",pattern:"flat-md"}],isInstalled:()=>M("cursor",()=>Fe("Cursor")||(0,T.existsSync)((0,Q.join)(v,".cursor","argv.json")))},{id:"windsurf",name:"Windsurf",color:"#14b8a6",icon:"wind",paths:[{baseDir:(0,Q.join)(v,".codeium","windsurf","skills"),type:"skill",pattern:"directory-with-skillmd"},{baseDir:(0,Q.join)(v,".codeium","windsurf","memories"),type:"memory",pattern:"flat-md"},{baseDir:(0,Q.join)(v,".windsurf","rules"),type:"rule",pattern:"flat-md"}],agentPaths:[],isInstalled:()=>M("windsurf",()=>Fe("Windsurf")||(0,T.existsSync)((0,Q.join)(v,".codeium","windsurf","argv.json")))},{id:"codex",name:"Codex",color:"#22c55e",icon:"book",paths:[{baseDir:(0,Q.join)(v,".codex","skills"),type:"skill",pattern:"directory-with-skillmd"},{baseDir:(0,Q.join)(v,".codex","prompts"),type:"command",pattern:"flat-md"},{baseDir:(0,Q.join)(v,".codex","memories"),type:"memory",pattern:"flat-md"}],agentPaths:[{baseDir:(0,Q.join)(v,".codex","agents"),type:"agent",pattern:"flat-md"}],isInstalled:()=>M("codex",()=>(0,T.existsSync)((0,Q.join)(v,".codex","config.toml"))||(0,T.existsSync)((0,Q.join)(v,".codex","auth.json"))||ie("codex"))},{id:"copilot",name:"Copilot",color:"#a855f7",icon:"plane",paths:[{baseDir:(0,Q.join)(v,".copilot","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("copilot",()=>(0,T.existsSync)((0,Q.join)(v,".copilot"))||ie("copilot"))},{id:"amp",name:"Amp",color:"#ec4899",icon:"zap",paths:[{baseDir:(0,Q.join)(Se,"amp","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("amp",()=>(0,T.existsSync)((0,Q.join)(Se,"amp","config.json"))||(0,T.existsSync)((0,Q.join)(Se,"amp","settings.json"))||ie("amp"))},{id:"opencode",name:"OpenCode",color:"#ef4444",icon:"terminal",paths:[{baseDir:(0,Q.join)(Se,"opencode","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("opencode",()=>Fe("OpenCode")||(0,T.existsSync)((0,Q.join)(Se,"opencode","opencode.json"))||(0,T.existsSync)((0,Q.join)(Se,"opencode","opencode.jsonc"))||ie("opencode"))},{id:"pi",name:"Pi",color:"#06b6d4",icon:"sparkles",paths:[{baseDir:(0,Q.join)(v,".pi","agent","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("pi",()=>ie("pi"))},{id:"antigravity",name:"Antigravity",color:"#ef4444",icon:"arrow-up-circle",paths:[{baseDir:(0,Q.join)(v,".gemini","antigravity","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("antigravity",()=>Fe("Antigravity")||(0,T.existsSync)((0,Q.join)(v,".gemini","antigravity","skills"))||ie("antigravity"))},{id:"claude-desktop",name:"Claude Desktop",color:"#f97316",icon:"monitor",paths:[],agentPaths:[],isInstalled:()=>M("claude-desktop",()=>Fe("Claude"))},{id:"global-agents",name:"Global",color:"#a3e635",icon:"globe",paths:[{baseDir:(0,Q.join)(v,".agents","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("global-agents",()=>(0,T.existsSync)((0,Q.join)(v,".agents","skills")))},{id:"cline",name:"Cline",color:"#8b5cf6",icon:"bot",paths:[],agentPaths:[],isInstalled:()=>M("cline",()=>(0,T.existsSync)((0,Q.join)(v,".cline"))||ks("saoudrizwan.claude-dev"))},{id:"roo-code",name:"Roo Code",color:"#0ea5e9",icon:"rocket",paths:[{baseDir:(0,Q.join)(v,".roo","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("roo-code",()=>(0,T.existsSync)((0,Q.join)(v,".roo"))||ks("RooVeterinaryInc.roo-cline"))},{id:"kilocode",name:"Kilo Code",color:"#facc15",icon:"square",paths:[{baseDir:(0,Q.join)(v,".kilocode","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("kilocode",()=>(0,T.existsSync)((0,Q.join)(v,".kilocode"))||(0,T.existsSync)((0,Q.join)(v,".local","share","kilo"))||ie("kilo"))},{id:"continue",name:"Continue",color:"#64748b",icon:"play",paths:[{baseDir:(0,Q.join)(v,".continue","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("continue",()=>(0,T.existsSync)((0,Q.join)(v,".continue"))||ie("cn"))},{id:"openhands",name:"OpenHands",color:"#fbbf24",icon:"hand",paths:[{baseDir:(0,Q.join)(v,".openhands","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("openhands",()=>(0,T.existsSync)((0,Q.join)(v,".openhands"))||ie("openhands"))},{id:"goose",name:"Goose",color:"#3b82f6",icon:"feather",paths:[{baseDir:(0,Q.join)(Se,"goose","skills"),type:"skill",pattern:"directory-with-skillmd"}],agentPaths:[],isInstalled:()=>M("goose",()=>(0,T.existsSync)((0,Q.join)(Se,"goose"))||ie("goose"))},{id:"aider",name:"Aider",color:"#eab308",icon:"wrench",paths:[],agentPaths:[],isInstalled:()=>M("aider",()=>ie("aider"))}];var W={"claude-code":{viewBox:"0 0 24 24",paths:''},cursor:{viewBox:"0 0 466.73 532.09",paths:''},windsurf:{viewBox:"0 0 24 24",paths:''},codex:{viewBox:"0 0 24 24",paths:''},copilot:{viewBox:"0 0 24 24",paths:''},opencode:{viewBox:"0 0 24 36",paths:''},"claude-desktop":{viewBox:"0 0 24 24",paths:''},"global-agents":{viewBox:"0 0 24 24",paths:''},goose:{viewBox:"0 0 24 24",paths:''},cline:{viewBox:"0 0 24 24",paths:''},continue:{viewBox:"0 0 26 24",paths:''},"roo-code":{viewBox:"0 0 96 96",paths:''},replit:{viewBox:"0 0 24 24",paths:''},"gemini-cli":{viewBox:"0 0 24 24",paths:''},amp:{viewBox:"0 0 21 21",paths:''},antigravity:{viewBox:"0 0 112 96",paths:''},kilocode:{viewBox:"0 0 39.9997627 39.9999944",paths:''},openhands:{viewBox:"0 -24 148 148",paths:''}};function oe(t,e,a=16){let s=W[e];if(!s)return;let i=createSvg("svg");i.setAttribute("viewBox",s.viewBox),i.setAttribute("width",String(a)),i.setAttribute("height",String(a)),i.setAttribute("fill","none"),i.classList.add("as-tool-svg");let n=new DOMParser().parseFromString(`${s.paths}`,"image/svg+xml");for(let o of Array.from(n.documentElement.childNodes))i.appendChild(i.ownerDocument.importNode(o,!0));t.appendChild(i)}var ft=class{containerEl;store;onToggleDashboard;onToggleMarketplace;onCreateSkill;onToggleConversations;conversationStore;dashboardActive=!1;marketplaceActive=!1;conversationsActive=!1;constructor(e,a,s,i,r,n,o){this.containerEl=e,this.store=a,this.onToggleDashboard=s,this.onToggleMarketplace=i,this.onCreateSkill=r,this.onToggleConversations=n||(()=>{}),this.conversationStore=o||null}setDashboardActive(e){this.dashboardActive=e}setMarketplaceActive(e){this.marketplaceActive=e}setConversationsActive(e){this.conversationsActive=e}render(){this.containerEl.empty(),this.containerEl.addClass("as-sidebar"),this.renderLibrarySection(),this.conversationsActive&&this.conversationStore?this.renderConversationFilters():(this.renderTypeSection(),this.renderToolSection(),this.renderProjectSection(),this.renderCollectionSection(),this.store.hasSkillkit||this.renderSkillkitCta())}renderSection(e,a){let s=this.containerEl.createDiv("as-sidebar-section");s.createDiv({cls:"as-sidebar-title",text:e});for(let i of a){let r=s.createDiv("as-sidebar-item");!this.dashboardActive&&this.isActive(i.filter)&&r.addClass("is-active");let n=r.createSpan("as-sidebar-icon");(0,K.setIcon)(n,i.icon),r.createSpan({cls:"as-sidebar-label",text:i.label}),i.count!==void 0&&r.createSpan({cls:"as-sidebar-count",text:String(i.count)}),r.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.marketplaceActive&&this.onToggleMarketplace(),this.store.setFilter(i.filter)})}}renderTypeSection(){let e=this.store.getTypeCounts(),s=[{label:"Skills",icon:"sparkles",type:"skill"},{label:"Commands",icon:"terminal",type:"command"},{label:"Agents",icon:"bot",type:"agent"},{label:"Rules",icon:"scroll",type:"rule"}].filter(i=>e.has(i.type)).map(i=>({label:i.label,icon:i.icon,filter:{kind:"type",type:i.type},count:e.get(i.type)||0}));s.length>0&&this.renderSection("Types",s)}renderToolSection(){let e=this.store.getToolCounts(),a=U.filter(i=>i.isInstalled()&&e.has(i.id));if(a.length===0)return;let s=this.containerEl.createDiv("as-sidebar-section");s.createDiv({cls:"as-sidebar-title",text:"Tools"});for(let i of a){let r={kind:"tool",toolId:i.id},n=s.createDiv("as-sidebar-item");!this.dashboardActive&&this.isActive(r)&&n.addClass("is-active");let o=n.createSpan("as-sidebar-icon");W[i.id]?oe(o,i.id,14):(0,K.setIcon)(o,i.icon),n.createSpan({cls:"as-sidebar-label",text:i.name}),n.createSpan({cls:"as-sidebar-count",text:String(e.get(i.id)||0)}),n.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.store.setFilter(r)})}}renderProjectSection(){let e=this.store.getProjectCounts();if(e.size===0)return;let a=[];for(let[s,i]of e)a.push({label:s,icon:"folder-git-2",filter:{kind:"project",project:s},count:i});a.sort((s,i)=>s.label.localeCompare(i.label)),this.renderSection("Projects",a)}renderCollectionSection(){let e=this.containerEl.createDiv("as-sidebar-section");e.createDiv({cls:"as-sidebar-title",text:"Collections"});let a=new Set;for(let s of this.store.allItems)for(let i of s.collections)a.add(i);if(a.size===0){e.createDiv({cls:"as-sidebar-empty",text:"No collections yet"});return}for(let s of a){let i={kind:"collection",name:s},r=e.createDiv("as-sidebar-item");!this.dashboardActive&&this.isActive(i)&&r.addClass("is-active");let n=r.createSpan("as-sidebar-icon");(0,K.setIcon)(n,"folder"),r.createSpan({cls:"as-sidebar-label",text:s}),r.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.store.setFilter(i)})}}renderLibrarySection(){let e=this.containerEl.createDiv("as-sidebar-section");e.createDiv({cls:"as-sidebar-title",text:"Library"});let a=[{label:"All Skills",icon:"layers",filter:{kind:"all"}},{label:"Favorites",icon:"star",filter:{kind:"favorites"}}],s=this.dashboardActive||this.marketplaceActive||this.conversationsActive;for(let p of a){let u=e.createDiv("as-sidebar-item");!s&&this.isActive(p.filter)&&u.addClass("is-active");let g=u.createSpan("as-sidebar-icon");(0,K.setIcon)(g,p.icon),u.createSpan({cls:"as-sidebar-label",text:p.label}),u.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.marketplaceActive&&this.onToggleMarketplace(),this.conversationsActive&&this.onToggleConversations(),this.store.setFilter(p.filter)})}let i=e.createDiv("as-sidebar-item");this.dashboardActive&&i.addClass("is-active");let r=i.createSpan("as-sidebar-icon");(0,K.setIcon)(r,"bar-chart-2"),i.createSpan({cls:"as-sidebar-label",text:"Dashboard"}),i.addEventListener("click",()=>{this.marketplaceActive&&this.onToggleMarketplace(),this.conversationsActive&&this.onToggleConversations(),this.dashboardActive||this.onToggleDashboard()});let n=e.createDiv("as-sidebar-item");this.marketplaceActive&&n.addClass("is-active");let o=n.createSpan("as-sidebar-icon");(0,K.setIcon)(o,"shopping-bag"),n.createSpan({cls:"as-sidebar-label",text:"Marketplace"}),n.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.conversationsActive&&this.onToggleConversations(),this.marketplaceActive||this.onToggleMarketplace()});let l=e.createDiv("as-sidebar-item");this.conversationsActive&&l.addClass("is-active");let O=l.createSpan("as-sidebar-icon");(0,K.setIcon)(O,"message-circle"),l.createSpan({cls:"as-sidebar-label",text:"Conversations"}),l.addEventListener("click",()=>{this.dashboardActive&&this.onToggleDashboard(),this.marketplaceActive&&this.onToggleMarketplace(),this.conversationsActive||this.onToggleConversations()});let c=e.createDiv("as-sidebar-item as-sidebar-create"),d=c.createSpan("as-sidebar-icon");(0,K.setIcon)(d,"plus"),c.createSpan({cls:"as-sidebar-label",text:"Create"}),c.addEventListener("click",()=>this.onCreateSkill())}renderSkillkitCta(){let e=this.containerEl.createDiv("as-skillkit-cta"),a=e.createDiv("as-skillkit-icon");(0,K.setIcon)(a,"bar-chart-2"),e.createDiv({cls:"as-skillkit-title",text:"Unlock analytics"}),e.createDiv({cls:"as-skillkit-desc",text:"Install skillkit to see usage stats, stale badges, and heavy skill warnings."}),e.createDiv("as-skillkit-cmd").createEl("code",{text:"npm i -g @crafter/skillkit"}),e.createEl("a",{cls:"as-skillkit-link",text:"Learn more",href:"https://www.npmjs.com/package/@crafter/skillkit"}).addEventListener("click",r=>{r.preventDefault(),ut("https://www.npmjs.com/package/@crafter/skillkit")})}renderConversationFilters(){if(!this.conversationStore)return;let e=this.conversationStore.getProjectCounts();if(e.size>0){let a=this.containerEl.createDiv("as-sidebar-section");a.createDiv({cls:"as-sidebar-title",text:"Projects"});let s=a.createDiv("as-sidebar-item"),i=this.conversationStore.filter;i.kind==="all-conversations"&&s.addClass("is-active");let r=s.createSpan("as-sidebar-icon");(0,K.setIcon)(r,"layers"),s.createSpan({cls:"as-sidebar-label",text:"All"}),s.createSpan({cls:"as-sidebar-count",text:String(this.conversationStore.allItems.length)}),s.addEventListener("click",()=>{this.conversationStore.setFilter({kind:"all-conversations"})});let n=a.createDiv("as-sidebar-item");i.kind==="conversation-favorites"&&n.addClass("is-active");let o=n.createSpan("as-sidebar-icon");(0,K.setIcon)(o,"star"),n.createSpan({cls:"as-sidebar-label",text:"Favorites"}),n.addEventListener("click",()=>{this.conversationStore.setFilter({kind:"conversation-favorites"})});for(let[l,O]of Array.from(e.entries()).sort((c,d)=>d[1]-c[1])){let c=a.createDiv("as-sidebar-item");i.kind==="conversation-project"&&i.project===l&&c.addClass("is-active");let d=c.createSpan("as-sidebar-icon");(0,K.setIcon)(d,"folder-git-2"),c.createSpan({cls:"as-sidebar-label",text:l}),c.createSpan({cls:"as-sidebar-count",text:String(O)}),c.addEventListener("click",()=>{this.conversationStore.setFilter({kind:"conversation-project",project:l})})}}}isActive(e){let a=this.store.filter;return a.kind!==e.kind?!1:a.kind==="tool"&&e.kind==="tool"?a.toolId===e.toolId:a.kind==="type"&&e.kind==="type"?a.type===e.type:a.kind==="collection"&&e.kind==="collection"?a.name===e.name:a.kind==="project"&&e.kind==="project"?a.project===e.project:!0}};var ye=require("obsidian");var gt=class{containerEl;store;onSelect;selectedId=null;inputEl=null;listEl=null;typeFilter=null;sortBy="name";openDropdown=null;menuDropdownEl=null;outsideClickCleanup=null;constructor(e,a,s){this.containerEl=e,this.store=a,this.onSelect=s}setSelected(e){this.selectedId=e}render(){if(!this.inputEl){this.containerEl.empty(),this.containerEl.addClass("as-list");let e=this.containerEl.createDiv("as-search");this.inputEl=e.createEl("input",{type:"text",placeholder:"Search skills...",cls:"as-search-input"}),this.inputEl.addEventListener("input",()=>{this.store.setSearch(this.inputEl.value)});let a=e.createDiv("as-conv-search-actions"),s=a.createEl("button",{cls:"as-conv-icon-btn"}),i=s.createSpan("as-conv-icon-btn-icon");(0,ye.setIcon)(i,"file-search"),s.setAttribute("aria-label","Search file content"),this.store.deepSearch&&s.addClass("has-active"),s.addEventListener("click",()=>{this.store.setDeepSearch(!this.store.deepSearch),s.toggleClass("has-active",this.store.deepSearch)});let r=a.createDiv("as-conv-dropdown-wrap"),n=r.createEl("button",{cls:"as-conv-icon-btn"}),o=n.createSpan("as-conv-icon-btn-icon");(0,ye.setIcon)(o,"sliders-horizontal"),n.setAttribute("aria-label","Filter & sort"),(this.typeFilter||this.sortBy!=="name")&&n.addClass("has-active"),this.menuDropdownEl=r.createDiv("as-conv-dropdown as-conv-dropdown-wide"),this.renderMenuDropdown(),n.addEventListener("click",l=>{if(l.stopPropagation(),this.openDropdown==="menu")this.closeDropdown();else{this.closeDropdown(),this.openDropdown="menu",this.menuDropdownEl?.addClass("is-open");let O=c=>{r.contains(c.target)||this.closeDropdown()};window.setTimeout(()=>activeDocument.addEventListener("click",O),0),this.outsideClickCleanup=()=>activeDocument.removeEventListener("click",O)}}),this.listEl=this.containerEl.createDiv("as-list-items")}this.inputEl.value=this.store.searchQuery,this.renderList()}closeDropdown(){this.openDropdown=null,this.menuDropdownEl?.removeClass("is-open"),this.outsideClickCleanup&&(this.outsideClickCleanup(),this.outsideClickCleanup=null)}renderMenuDropdown(){if(!this.menuDropdownEl)return;this.menuDropdownEl.empty(),this.menuDropdownEl.createDiv("as-conv-dropdown-header").setText("Sort");let a=[{label:"Name",value:"name",icon:"arrow-up-az"},{label:"Usage",value:"usage",icon:"trending-up"}];for(let r of a){let n=this.menuDropdownEl.createDiv(`as-conv-dropdown-item ${this.sortBy===r.value?"is-active":""}`),o=n.createSpan("as-conv-dropdown-check");this.sortBy===r.value&&(0,ye.setIcon)(o,"check"),n.createSpan({cls:"as-conv-dropdown-item-label",text:r.label}),n.addEventListener("click",l=>{l.stopPropagation(),this.sortBy=r.value,this.updateMenuBtnState(),this.renderMenuDropdown(),this.renderList()})}this.menuDropdownEl.createDiv("as-conv-dropdown-header").setText("Filter");let i=[{id:null,label:"All"},{id:"stale",label:"Stale"},{id:"heavy",label:"Heavy"},{id:"oversized",label:"Oversized"},{id:"conflict",label:"Conflicts"}];for(let r of i){let n=this.typeFilter===r.id,o=this.menuDropdownEl.createDiv(`as-conv-dropdown-item ${n?"is-active":""}`),l=o.createSpan("as-conv-dropdown-check");n&&(0,ye.setIcon)(l,"check"),o.createSpan({cls:"as-conv-dropdown-item-label",text:r.label}),o.addEventListener("click",O=>{O.stopPropagation(),this.typeFilter=r.id,this.updateMenuBtnState(),this.renderMenuDropdown(),this.renderList()})}}updateMenuBtnState(){let e=this.containerEl.querySelector(".as-conv-dropdown-wrap .as-conv-icon-btn");if(e){let a=this.typeFilter!==null||this.sortBy!=="name";e.toggleClass("has-active",a)}}renderList(){if(!this.listEl)return;this.listEl.empty();let e=this.store.filteredItems;if(this.typeFilter)switch(this.typeFilter){case"stale":e=e.filter(a=>a.usage?.isStale);break;case"heavy":e=e.filter(a=>a.usage?.isHeavy);break;case"oversized":e=e.filter(a=>a.warnings?.oversized);break;case"conflict":e=e.filter(a=>a.conflicts&&a.conflicts.length>0);break}if(this.sortBy==="usage"&&(e=[...e].sort((a,s)=>(s.usage?.uses??0)-(a.usage?.uses??0))),this.typeFilter){let a={stale:"Stale",heavy:"Heavy",oversized:"Oversized",conflict:"Conflict"},s=this.listEl.createDiv("as-active-filter");s.createSpan({text:`Showing: ${a[this.typeFilter]??this.typeFilter}`}),s.createSpan({cls:"as-filter-clear",text:"Clear"}).addEventListener("click",()=>{this.typeFilter=null,this.updateMenuBtnState(),this.renderList()})}if(e.length===0){this.listEl.createDiv({cls:"as-list-empty",text:"No skills found"});return}for(let a of e)this.renderCard(this.listEl,a)}renderCard(e,a){let s=e.createDiv("as-skill-card");a.id===this.selectedId&&s.addClass("is-selected");let i=s.createDiv("as-skill-header");if(i.createSpan({cls:"as-skill-name",text:a.name}),a.isFavorite){let n=i.createSpan("as-skill-star");(0,ye.setIcon)(n,"star")}a.description&&s.createDiv({cls:"as-skill-desc",text:a.description.length>80?a.description.slice(0,80)+"...":a.description});let r=s.createDiv("as-skill-meta");r.createSpan({cls:`as-type-tag as-type-${a.type}`,text:a.type});for(let n of a.tools){let o=U.find(O=>O.id===n);if(!o)continue;let l=r.createSpan("as-tool-badge");l.title=o.name,l.setAttribute("aria-label",o.name),l.setCssProps({"--tool-color":o.color}),W[n]?oe(l,n,12):l.addClass("as-tool-badge-dot")}a.usage&&(a.usage.uses>0&&r.createSpan({cls:"as-usage-badge",text:`${a.usage.uses}`,attr:{"aria-label":`Used ${a.usage.uses} times`}}),a.usage.isStale&&r.createSpan({cls:"as-badge-stale",text:"stale"}),a.usage.isHeavy&&r.createSpan({cls:"as-badge-heavy",text:"heavy"})),a.warnings?.oversized&&r.createSpan({cls:"as-badge-warn",text:"oversized"}),a.conflicts&&a.conflicts.length>0&&r.createSpan({cls:"as-badge-conflict",text:"conflict"}),s.addEventListener("click",()=>{this.selectedId=a.id,this.onSelect(a)}),s.addEventListener("contextmenu",n=>{n.preventDefault();let o=new ye.Menu;o.addItem(l=>l.setTitle("Reveal in system explorer").setIcon("folder-open").onClick(()=>ht(a.filePath))),o.addItem(l=>l.setTitle("Copy file path").setIcon("copy").onClick(()=>navigator.clipboard.writeText(a.filePath))),o.showAtMouseEvent(n)})}};var V=require("obsidian"),Ur=require("fs");var _e=require("child_process"),le=require("fs"),$=require("path"),Qt=require("os"),Mn=new Set(["Read","Write","Edit","MultiEdit","Bash","Glob","Grep","WebSearch","WebFetch","TodoRead","TodoWrite","Task","Agent","Skill","LSP","NotebookEdit","AskFollowupQuestion","AttemptCompletion","SearchReplace","InsertCodeBlock","ReadImages","ExecuteCommand","ListFiles","SearchFiles","ReadFile","WriteFile","ReplaceInFile","ListCodeDefinitionNames","BrowserAction","UseMcp","shell","shell_command","update_plan","create_plan","read_file","write_file","execute_command","spawn_agent","write_stdin","multi_tool_use.parallel"]);function Vn(t){return!(Mn.has(t)||t.startsWith("mcp__")||t.startsWith("mcp_"))}var x=(0,Qt.homedir)(),H=(0,Qt.platform)()==="win32",qn=(0,$.join)(x,".skillkit","analytics.db"),la=H?["skillkit.cmd","skillkit.exe","skillkit"]:["skillkit"];function St(){let t=[];if(H){let a=process.env.APPDATA||(0,$.join)(x,"AppData","Roaming");t.push((0,$.join)(a,"npm"),(0,$.join)(x,".bun","bin"),(0,$.join)(x,"AppData","Local","npm"))}else t.push("/usr/local/bin","/opt/homebrew/bin",(0,$.join)(x,".local","bin"),(0,$.join)(x,".bun","bin"),(0,$.join)(x,".local","share","pnpm"),(0,$.join)(x,".volta","bin"),(0,$.join)(x,".yarn","bin"),(0,$.join)(x,".config","yarn","global","node_modules",".bin"),(0,$.join)(x,".fnm","aliases","default","bin"),(0,$.join)(x,".asdf","shims"),(0,$.join)(x,".proto","bin"));let e=H?(0,$.join)(x,"AppData","Roaming","nvm"):(0,$.join)(x,".nvm","versions","node");try{for(let a of(0,le.readdirSync)(e))t.push(H?(0,$.join)(e,a):(0,$.join)(e,a,"bin"))}catch{}if(!H){let a=(0,$.join)(x,".local","share","mise","installs");for(let s of["node","bun"])try{for(let i of(0,le.readdirSync)((0,$.join)(a,s)))t.push((0,$.join)(a,s,i,"bin"))}catch{}}return[...t,process.env.PATH||""].join($.delimiter)}function ys(t){try{return(0,_e.execSync)(`"${t}" help`,{encoding:"utf-8",timeout:5e3,env:{...process.env,NO_COLOR:"1",PATH:St()},stdio:["pipe","pipe","pipe"],shell:H?"cmd.exe":void 0}).includes("Analytics for AI agent skills")}catch{return!1}}function Wn(){let t=[],e=[];if(H){let s=process.env.APPDATA||(0,$.join)(x,"AppData","Roaming");e.push((0,$.join)(s,"npm"),(0,$.join)(x,".bun","bin"),(0,$.join)(x,"AppData","Local","npm"))}else e.push("/usr/local/bin","/opt/homebrew/bin",(0,$.join)(x,".local","bin"),(0,$.join)(x,".bun","bin"),(0,$.join)(x,".local","share","mise","shims"),(0,$.join)(x,".local","share","pnpm"),(0,$.join)(x,".volta","bin"),(0,$.join)(x,".yarn","bin"),(0,$.join)(x,".config","yarn","global","node_modules",".bin"),(0,$.join)(x,".fnm","aliases","default","bin"),(0,$.join)(x,".asdf","shims"),(0,$.join)(x,".proto","bin"));for(let s of e)for(let i of la){let r=(0,$.join)(s,i);(0,le.existsSync)(r)&&t.push(r)}let a=H?(0,$.join)(x,"AppData","Roaming","nvm"):(0,$.join)(x,".nvm","versions","node");try{for(let s of(0,le.readdirSync)(a)){let i=H?(0,$.join)(a,s):(0,$.join)(a,s,"bin");for(let r of la){let n=(0,$.join)(i,r);(0,le.existsSync)(n)&&t.push(n)}}}catch{}if(!H){let s=(0,$.join)(x,".local","share","mise","installs");for(let i of["node","bun"])try{for(let r of(0,le.readdirSync)((0,$.join)(s,i))){let n=(0,$.join)(s,i,r,"bin","skillkit");(0,le.existsSync)(n)&&t.push(n)}}catch{}}if(t.length===0&&!H){let s=[["pnpm","bin","-g"],["yarn","global","bin"],["npm","bin","-g"]];for(let i of s)try{let r=(0,_e.execSync)(i.join(" "),{encoding:"utf-8",timeout:5e3,stdio:["pipe","pipe","pipe"]}).trim();if(r)for(let n of la){let o=(0,$.join)(r,n);if((0,le.existsSync)(o)&&ys(o))return o}}catch{}}for(let s of t)if(ys(s))return s;return null}var Oa;function vt(){return Oa===void 0&&(Oa=Wn()),Oa}function ee(){return vt()!==null||(0,le.existsSync)(qn)}function De(t){let e=vt();if(!e)return null;try{let a=(0,_e.execSync)(`${e} ${t} --json`,{encoding:"utf-8",timeout:15e3,env:{...process.env,NO_COLOR:"1",PATH:St()},stdio:["pipe","pipe","pipe"],shell:H?"cmd.exe":void 0}).trim();return ws(a)}catch{return null}}function ws(t){let e=t.indexOf("{"),a=t.indexOf("["),s=e===-1?a:a===-1?e:Math.min(e,a);return s===-1?null:JSON.parse(t.slice(s))}function ca(t){let e=vt();return e?new Promise(a=>{(0,_e.exec)(`${e} ${t} --json`,{encoding:"utf-8",timeout:15e3,env:{...process.env,NO_COLOR:"1",PATH:St()},shell:H?"cmd.exe":void 0},(s,i)=>{if(s){a(null);return}try{a(ws(String(i).trim()))}catch{a(null)}})}):Promise.resolve(null)}function xs(t){if(!ee())return[];let e=De(`trace --list --skill ${t} --limit 5`);return Array.isArray(e)?e.map(a=>({traceId:a.trace_id,timestamp:a.timestamp,tokens:a.tokens_total,cost:a.cost_estimate,duration:a.duration_ms,model:a.model||"unknown"})):[]}async function Zs(){let t=new Map;if(!ee())return t;let e=await ca("stats");if(!e?.top_skills)return t;let a=Date.now();for(let s of e.top_skills){if(!Vn(s.name))continue;let i=s.daily.length>0?s.daily[s.daily.length-1]?.date:null,r=null;i&&(r=Math.floor((a-new Date(i).getTime())/(1e3*60*60*24))),t.set(s.name,{uses:s.total,lastUsed:i||null,daysSinceUsed:r,isStale:r!==null&&r>30,isHeavy:!1,daily:s.daily})}return t}async function Ts(){let t=new Map;if(!ee())return t;let e=await ca("conflicts --dry-run");if(!e||!("pairs"in e))return t;for(let a of e.pairs)t.has(a.skill_a)||t.set(a.skill_a,[]),t.has(a.skill_b)||t.set(a.skill_b,[]),t.get(a.skill_a).push({skillName:a.skill_b,similarity:a.similarity}),t.get(a.skill_b).push({skillName:a.skill_a,similarity:a.similarity});return t}async function Xs(){if(!ee())return{oversized:[],longDesc:[]};let t=await ca("health");return t?.warnings?{oversized:t.warnings.oversized||[],longDesc:t.warnings.long_descriptions||[]}:{oversized:[],longDesc:[]}}function ze(t){let e=vt();if(!e)return{success:!1,output:"skillkit not found"};try{return{success:!0,output:(0,_e.execSync)(`${e} ${t}`,{encoding:"utf-8",timeout:3e4,env:{...process.env,NO_COLOR:"1",PATH:St()},stdio:["pipe","pipe","pipe"],shell:H?"cmd.exe":void 0}).trim()}}catch(a){return{success:!1,output:a instanceof Error?a.message:"unknown error"}}}function da(t){if(!t)return"never";let e=Date.now()-new Date(t).getTime(),a=Math.floor(e/6e4);if(a<60)return`${a}m ago`;let s=Math.floor(a/60);if(s<24)return`${s}h ago`;let i=Math.floor(s/24);return i<30?`${i}d ago`:`${Math.floor(i/30)}mo ago`}function Cs(t,e,a=48,s=16){if(e.length===0)return;let i=Math.max(...e,1),r=e.map((l,O)=>{let c=O/(e.length-1||1)*a,d=s-l/i*s;return`${c.toFixed(1)},${d.toFixed(1)}`}),n=createSvg("svg");n.setAttribute("viewBox",`0 0 ${a} ${s}`),n.setAttribute("width",String(a)),n.setAttribute("height",String(s)),n.classList.add("as-sparkline");let o=createSvg("polyline");o.setAttribute("points",r.join(" ")),o.setAttribute("fill","none"),o.setAttribute("stroke","currentColor"),o.setAttribute("stroke-width","1.5"),o.setAttribute("stroke-linecap","round"),o.setAttribute("stroke-linejoin","round"),n.appendChild(o),t.appendChild(n)}var _s=require("obsidian");function je(t,e,a,s){new pa(t,e,a,s).open()}var pa=class extends _s.Modal{title;message;onConfirm;constructor(e,a,s,i){super(e),this.title=a,this.message=s,this.onConfirm=i}onOpen(){let{contentEl:e}=this;e.addClass("as-confirm-modal"),e.createEl("p",{cls:"as-confirm-title",text:this.title}),e.createEl("p",{cls:"as-confirm-message",text:this.message});let a=e.createDiv("as-confirm-buttons");a.createEl("button",{cls:"as-confirm-cancel",text:"Cancel"}).addEventListener("click",()=>this.close()),a.createEl("button",{cls:"as-confirm-action mod-warning",text:"Confirm"}).addEventListener("click",()=>{this.close(),this.onConfirm()})}onClose(){this.contentEl.empty()}};var G=require("@codemirror/view"),qr=require("@codemirror/state"),ue=require("@codemirror/language"),xe=require("@codemirror/commands"),Rt=require("@codemirror/autocomplete"),Wr=require("@codemirror/search"),Lt=require("@codemirror/lint");var I=require("@codemirror/state"),Et=require("@codemirror/view"),_=require("@codemirror/language"),wr=require("@codemirror/autocomplete");var E=require("@lezer/common"),b=require("@lezer/highlight"),kt=class t{static create(e,a,s,i,r){let n=i+(i<<8)+e+(a<<4)|0;return new t(e,a,s,n,r,[],[])}constructor(e,a,s,i,r,n,o){this.type=e,this.value=a,this.from=s,this.hash=i,this.end=r,this.children=n,this.positions=o,this.hashProp=[[E.NodeProp.contextHash,i]]}addChild(e,a){e.prop(E.NodeProp.contextHash)!=this.hash&&(e=new E.Tree(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(a)}toTree(e,a=this.end){let s=this.children.length-1;return s>=0&&(a=Math.max(a,this.positions[s]+this.children[s].length+this.from)),new E.Tree(e.types[this.type],this.children,this.positions,a-this.from).balance({makeTree:(i,r,n)=>new E.Tree(E.NodeType.none,i,r,n,this.hashProp)})}},h;(function(t){t[t.Document=1]="Document",t[t.CodeBlock=2]="CodeBlock",t[t.FencedCode=3]="FencedCode",t[t.Blockquote=4]="Blockquote",t[t.HorizontalRule=5]="HorizontalRule",t[t.BulletList=6]="BulletList",t[t.OrderedList=7]="OrderedList",t[t.ListItem=8]="ListItem",t[t.ATXHeading1=9]="ATXHeading1",t[t.ATXHeading2=10]="ATXHeading2",t[t.ATXHeading3=11]="ATXHeading3",t[t.ATXHeading4=12]="ATXHeading4",t[t.ATXHeading5=13]="ATXHeading5",t[t.ATXHeading6=14]="ATXHeading6",t[t.SetextHeading1=15]="SetextHeading1",t[t.SetextHeading2=16]="SetextHeading2",t[t.HTMLBlock=17]="HTMLBlock",t[t.LinkReference=18]="LinkReference",t[t.Paragraph=19]="Paragraph",t[t.CommentBlock=20]="CommentBlock",t[t.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",t[t.Escape=22]="Escape",t[t.Entity=23]="Entity",t[t.HardBreak=24]="HardBreak",t[t.Emphasis=25]="Emphasis",t[t.StrongEmphasis=26]="StrongEmphasis",t[t.Link=27]="Link",t[t.Image=28]="Image",t[t.InlineCode=29]="InlineCode",t[t.HTMLTag=30]="HTMLTag",t[t.Comment=31]="Comment",t[t.ProcessingInstruction=32]="ProcessingInstruction",t[t.Autolink=33]="Autolink",t[t.HeaderMark=34]="HeaderMark",t[t.QuoteMark=35]="QuoteMark",t[t.ListMark=36]="ListMark",t[t.LinkMark=37]="LinkMark",t[t.EmphasisMark=38]="EmphasisMark",t[t.CodeMark=39]="CodeMark",t[t.CodeText=40]="CodeText",t[t.CodeInfo=41]="CodeInfo",t[t.LinkTitle=42]="LinkTitle",t[t.LinkLabel=43]="LinkLabel",t[t.URL=44]="URL"})(h||(h={}));var ma=class{constructor(e,a){this.start=e,this.content=a,this.marks=[],this.parsers=[]}},fa=class{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return Ke(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,a=0,s=0){for(let i=a;i=e.stack[a.depth+1].value+a.baseIndent)return!0;if(a.indent>=a.baseIndent+4)return!1;let s=(t.type==h.OrderedList?Za:xa)(a,e,!1);return s>0&&(t.type!=h.BulletList||wa(a,e,!1)<0)&&a.text.charCodeAt(a.pos+s-1)==t.value}var Ws={[h.Blockquote](t,e,a){return a.next!=62?!1:(a.markers.push(y(h.QuoteMark,e.lineStart+a.pos,e.lineStart+a.pos+1)),a.moveBase(a.pos+(re(a.text.charCodeAt(a.pos+1))?2:1)),t.end=e.lineStart+a.text.length,!0)},[h.ListItem](t,e,a){return a.indent-1?!1:(a.moveBaseColumn(a.baseIndent+t.value),!0)},[h.OrderedList]:js,[h.BulletList]:js,[h.Document](){return!0}};function re(t){return t==32||t==9||t==10||t==13}function Ke(t,e=0){for(;ea&&re(t.charCodeAt(e-1));)e--;return e}function Is(t){if(t.next!=96&&t.next!=126)return-1;let e=t.pos+1;for(;e-1&&t.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(Ks.SetextHeading)>-1||s<3?-1:1}function Us(t,e){for(let a=t.stack.length-1;a>=0;a--)if(t.stack[a].type==e)return!0;return!1}function xa(t,e,a){return(t.next==45||t.next==43||t.next==42)&&(t.pos==t.text.length-1||re(t.text.charCodeAt(t.pos+1)))&&(!a||Us(e,h.BulletList)||t.skipSpace(t.pos+2)=48&&i<=57;){s++;if(s==t.text.length)return-1;i=t.text.charCodeAt(s)}return s==t.pos||s>t.pos+9||i!=46&&i!=41||st.pos+1||t.next!=49)?-1:s+1-t.pos}function Ns(t){if(t.next!=35)return-1;let e=t.pos+1;for(;e6?-1:a}function Bs(t){if(t.next!=45&&t.next!=61||t.indent>=t.baseIndent+4)return-1;let e=t.pos+1;for(;e/,Fs=/\?>/,Qa=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/,Js=/\?>/,Qa=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(s);if(r)return t.append(y(h.Comment,a,a+1+r[0].length));let n=/^\?[^]*?\?>/.exec(s);if(n)return t.append(y(h.ProcessingInstruction,a,a+1+n[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(s);return o?t.append(y(h.HTMLTag,a,a+1+o[0].length)):-1},Emphasis(t,e,a){if(e!=95&&e!=42)return-1;let s=a+1;for(;t.char(s)==e;)s++;let i=t.slice(a-1,a),r=t.slice(s,s+1),n=at.test(i),o=at.test(r),l=/\s|^$/.test(i),O=/\s|^$/.test(r),c=!O&&(!o||l||n),d=!l&&(!n||O||o),p=c&&(e==42||!d||n),u=d&&(e==42||!c||o);return t.append(new N(e==95?ai:si,a,s,(p?1:0)|(u?2:0)))},HardBreak(t,e,a){if(e==92&&t.char(a+1)==10)return t.append(y(h.HardBreak,a,a+2));if(e==32){let s=a+1;for(;t.char(s)==32;)s++;if(t.char(s)==10&&s>=a+2)return t.append(y(h.HardBreak,a,s+1))}return-1},Link(t,e,a){return e==91?t.append(new N(Ee,a,a+1,1)):-1},Image(t,e,a){return e==33&&t.char(a+1)==91?t.append(new N(wt,a,a+2,1)):-1},LinkEnd(t,e,a){if(e!=93)return-1;for(let s=t.parts.length-1;s>=0;s--){let i=t.parts[s];if(i instanceof N&&(i.type==Ee||i.type==wt)){if(!i.side||t.skipSpace(i.to)==a&&!/[(\[]/.test(t.slice(a+1,a+2)))return t.parts[s]=null,-1;let r=t.takeContent(s),n=t.parts[s]=Un(t,r,i.type==Ee?h.Link:h.Image,i.from,a+1);if(i.type==Ee)for(let o=0;oe?y(h.URL,e+a,r+a):r==t.length?null:!1}}function ri(t,e,a){let s=t.charCodeAt(e);if(s!=39&&s!=34&&s!=40)return!1;let i=s==40?41:s;for(let r=e+1,n=!1;r=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,a){return this.text.slice(e-this.offset,a-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,a,s,i,r){return this.append(new N(e,a,s,(i?1:0)|(r?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let a=this.parts[e];if(a instanceof N&&(a.type==Ee||a.type==wt))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let s=e;s=e;l--){let f=this.parts[l];if(f instanceof N&&f.side&1&&f.type==i.type&&!(r&&(i.side&1||f.side&2)&&(f.to-f.from+n)%3==0&&((f.to-f.from)%3||n%3))){o=f;break}}if(!o)continue;let O=i.type.resolve,c=[],d=o.from,p=i.to;if(r){let f=Math.min(2,o.to-o.from,n);d=o.to-f,p=i.from+f,O=f==1?"Emphasis":"StrongEmphasis"}o.type.mark&&c.push(this.elt(o.type.mark,d,o.to));for(let f=l+1;f=0;a--){let s=this.parts[a];if(s instanceof N&&s.type==e&&s.side&1)return a}return null}takeContent(e){let a=this.resolveMarkers(e);return this.parts.length=e,a}getDelimiterAt(e){let a=this.parts[e];return a instanceof N?a:null}skipSpace(e){return Ke(this.text,e-this.offset)+this.offset}elt(e,a,s,i){return typeof e=="string"?y(this.parser.getNodeType(e),a,s,i):new yt(e,a)}};st.linkStart=Ee;st.imageStart=wt;function ka(t,e){if(!e.length)return t;if(!t.length)return e;let a=t.slice(),s=0;for(let i of e){for(;s(e?e-1:0))return!1;if(this.fragmentEnd<0){let r=this.fragment.to;for(;r>0&&this.input.read(r-1,r)!=` -`;)r--;this.fragmentEnd=r?r-1:0}let s=this.cursor;s||(s=this.cursor=this.fragment.tree.cursor(),s.firstChild());let i=e+this.fragment.offset;for(;s.to<=i;)if(!s.parent())return!1;for(;;){if(s.from>=i)return this.fragment.from<=a;if(!s.childAfter(i))return!1}}matches(e){let a=this.cursor.tree;return a&&a.prop(E.NodeProp.contextHash)==e}takeNodes(e){let a=this.cursor,s=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),r=e.absoluteLineStart,n=r,o=e.block.children.length,l=n,O=o;for(;;){if(a.to-s>i){if(a.type.isAnonymous&&a.firstChild())continue;break}let c=oi(a.from-s,e.ranges);if(a.to-s<=e.ranges[e.rangeI].to)e.addNode(a.tree,c);else{let d=new E.Tree(e.parser.nodeSet.types[h.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(d,a.tree),e.addNode(d,c)}if(a.type.is("Block")&&(Nn.indexOf(a.type.id)<0?(n=a.to-s,o=e.block.children.length):(n=l,o=O),l=a.to-s,O=e.block.children.length),!a.nextSibling())break}for(;e.block.children.length>o;)e.block.children.pop(),e.block.positions.pop();return n-r}};function oi(t,e){let a=t;for(let s=1;s$t[t]),Object.keys($t).map(t=>Ks[t]),Object.keys($t),In,Ws,Object.keys(ha).map(t=>ha[t]),Object.keys(ha),[]);function Hn(t,e,a){let s=[];for(let i=t.firstChild,r=e;;i=i.nextSibling){let n=i?i.from:a;if(n>r&&s.push({from:r,to:n}),!i)break;r=i.to}return s}function Oi(t){let{codeParser:e,htmlParser:a}=t;return{wrap:(0,E.parseMixed)((i,r)=>{let n=i.type.id;if(e&&(n==h.CodeBlock||n==h.FencedCode)){let o="";if(n==h.FencedCode){let O=i.node.getChild(h.CodeInfo);O&&(o=r.read(O.from,O.to))}let l=e(o);if(l)return{parser:l,overlay:O=>O.type.id==h.CodeText,bracketed:n==h.FencedCode}}else if(a&&(n==h.HTMLBlock||n==h.HTMLTag||n==h.CommentBlock))return{parser:a,overlay:Hn(i.node,i.from,i.to)};return null})}}var Fn={resolve:"Strikethrough",mark:"StrikethroughMark"},Jn={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":b.tags.strikethrough}},{name:"StrikethroughMark",style:b.tags.processingInstruction}],parseInline:[{name:"Strikethrough",parse(t,e,a){if(e!=126||t.char(a+1)!=126||t.char(a+2)==126)return-1;let s=t.slice(a-1,a),i=t.slice(a+2,a+3),r=/\s|^$/.test(s),n=/\s|^$/.test(i),o=at.test(s),l=at.test(i);return t.addDelimiter(Fn,a,a+2,!n&&(!l||r||o),!r&&(!o||n||l))},after:"Emphasis"}]};function et(t,e,a=0,s,i=0){let r=0,n=!0,o=-1,l=-1,O=!1,c=()=>{s.push(t.elt("TableCell",i+o,i+l,t.parser.parseInline(e.slice(o,l),i+o)))};for(let d=a;d-1)&&r++,n=!1,s&&(o>-1&&c(),s.push(t.elt("TableDelimiter",d+i,d+i+1))),o=l=-1):(O||p!=32&&p!=9)&&(o<0&&(o=d),l=d+1),O=!O&&p==92}return o>-1&&(r++,s&&c()),r}function Ys(t,e){for(let a=e;ai instanceof xt)||!Ys(e.text,e.basePos))return!1;let s=t.peekLine();return ci.test(s)&&et(t,e.text,e.basePos)==et(t,s,e.basePos)},before:"SetextHeading"}]},ya=class{nextLine(){return!1}finish(e,a){return e.addLeafElement(a,e.elt("Task",a.start,a.start+a.content.length,[e.elt("TaskMarker",a.start,a.start+3),...e.parser.parseInline(a.content.slice(3),a.start+3)])),!0}},eo={defineNodes:[{name:"Task",block:!0,style:b.tags.list},{name:"TaskMarker",style:b.tags.atom}],parseBlock:[{name:"TaskList",leaf(t,e){return/^\[[ xX]\][ \t]/.test(e.content)&&t.parentType().name=="ListItem"?new ya:null},after:"SetextHeading"}]},Ds=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,zs=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,to=/[\w-]+\.[\w-]+($|\/)/,As=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,Ms=/\/[a-zA-Z\d@.]+/gy;function Vs(t,e,a,s){let i=0;for(let r=e;r-1)return-1;let s=e+a[0].length;for(;;){let i=t[s-1],r;if(/[?!.,:*_~]/.test(i)||i==")"&&Vs(t,e,s,")")>Vs(t,e,s,"("))s--;else if(i==";"&&(r=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(e,s))))s=e+r.index;else break}return s}function qs(t,e){As.lastIndex=e;let a=As.exec(t);if(!a)return-1;let s=a[0][a[0].length-1];return s=="_"||s=="-"?-1:e+a[0].length-(s=="."?1:0)}var so={parseInline:[{name:"Autolink",parse(t,e,a){let s=a-t.offset;if(s&&/\w/.test(t.text[s-1]))return-1;Ds.lastIndex=s;let i=Ds.exec(t.text),r=-1;if(!i)return-1;if(i[1]||i[2]){if(r=ao(t.text,s+i[0].length),r>-1&&t.hasOpenLink){let n=/([^\[\]]|\[[^\]]*\])*/.exec(t.text.slice(s,r));r=s+n[0].length}}else i[3]?r=qs(t.text,s):(r=qs(t.text,s+i[0].length),r>-1&&i[0]=="xmpp:"&&(Ms.lastIndex=r,i=Ms.exec(t.text),i&&(r=i.index+i[0].length)));return r<0?-1:(t.addElement(t.elt("URL",a,r+t.offset)),r+t.offset)}}]},di=[Kn,eo,Jn,so];function pi(t,e,a){return(s,i,r)=>{if(i!=t||s.char(r+1)==t)return-1;let n=[s.elt(a,r,r+1)];for(let o=r+1;o=65&&t<=90||t==95||t>=97&&t<=122||t>=161}var Si=null,vi=null,$i=0;function _a(t,e){let a=t.pos+e;if($i==a&&vi==t)return Si;let s=t.peek(e),i="";for(;Zo(s);)i+=String.fromCharCode(s),s=t.peek(++e);return vi=t,$i=a,Si=i?i.toLowerCase():s==To||s==Xo?void 0:null}var _i=60,Zt=62,Ea=47,To=63,Xo=33,Co=45;function bi(t,e){this.name=t,this.parent=e}var _o=[ja,Zi,yi,wi,xi],jo=new ve.ContextTracker({start:null,shift(t,e,a,s){return _o.indexOf(e)>-1?new bi(_a(s,1)||"",t):t},reduce(t,e){return e==Ti&&t?t.parent:t},reuse(t,e,a,s){let i=e.type.id;return i==ja||i==bo?new bi(_a(s,1)||"",t):t},strict:!1}),Eo=new ve.ExternalTokenizer((t,e)=>{if(t.next!=_i){t.next<0&&e.context&&t.acceptToken(Ta);return}t.advance();let a=t.next==Ea;a&&t.advance();let s=_a(t,0);if(s===void 0)return;if(!s)return t.acceptToken(a?fo:mo);let i=e.context?e.context.name:null;if(a){if(s==i)return t.acceptToken(po);if(i&&xo[i])return t.acceptToken(Ta,-2);if(e.dialectEnabled(Po))return t.acceptToken(uo);for(let r=e.context;r;r=r.parent)if(r.name==s)return;t.acceptToken(ho)}else{if(s=="script")return t.acceptToken(yi);if(s=="style")return t.acceptToken(wi);if(s=="textarea")return t.acceptToken(xi);if(wo.hasOwnProperty(s))return t.acceptToken(Zi);i&&Qi[i]&&Qi[i][s]?t.acceptToken(Ta,-1):t.acceptToken(ja)}},{contextual:!0}),Ro=new ve.ExternalTokenizer(t=>{for(let e=0,a=0;;a++){if(t.next<0){a&&t.acceptToken(gi);break}if(t.next==Co)e++;else if(t.next==Zt&&e>=2){a>=3&&t.acceptToken(gi,-2);break}else e=0;t.advance()}});function Lo(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}var Yo=new ve.ExternalTokenizer((t,e)=>{if(t.next==Ea&&t.peek(1)==Zt){let a=e.dialectEnabled(yo)||Lo(e.context);t.acceptToken(a?co:fi,2)}else t.next==Zt&&t.acceptToken(fi,1)});function Ra(t,e,a){let s=2+t.length;return new ve.ExternalTokenizer(i=>{for(let r=0,n=0,o=0;;o++){if(i.next<0){o&&i.acceptToken(e);break}if(r==0&&i.next==_i||r==1&&i.next==Ea||r>=2&&rn?i.acceptToken(e,-n):i.acceptToken(a,-(n-2));break}else if((i.next==10||i.next==13)&&o){i.acceptToken(e,1);break}else r=n=0;i.advance()}})}var Do=Ra("script",io,ro),zo=Ra("style",no,oo),Ao=Ra("textarea",lo,Oo),Mo=(0,B.styleTags)({"Text RawText IncompleteTag IncompleteCloseTag":B.tags.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":B.tags.angleBracket,TagName:B.tags.tagName,"MismatchedCloseTag/TagName":[B.tags.tagName,B.tags.invalid],AttributeName:B.tags.attributeName,"AttributeValue UnquotedAttributeValue":B.tags.attributeValue,Is:B.tags.definitionOperator,"EntityReference CharacterReference":B.tags.character,Comment:B.tags.blockComment,ProcessingInst:B.tags.processingInstruction,DoctypeDecl:B.tags.documentMeta}),ji=ve.LRParser.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:jo,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[Mo],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let O=o.type.id;if(O==So)return Xa(o,l,a);if(O==vo)return Xa(o,l,s);if(O==$o)return Xa(o,l,i);if(O==Ti&&r.length){let c=o.node,d=c.firstChild,p=d&&ki(d,l),u;if(p){for(let g of r)if(g.tag==p&&(!g.attrs||g.attrs(u||(u=Ei(d,l))))){let f=c.lastChild,w=f.type.id==ko?f.from:c.to;if(w>d.to)return{parser:g.parser,overlay:[{from:d.to,to:w}]}}}}if(n&&O==Xi){let c=o.node,d;if(d=c.firstChild){let p=n[l.read(d.from,d.to)];if(p)for(let u of p){if(u.tagName&&u.tagName!=ki(c.parent,l))continue;let g=c.lastChild;if(g.type.id==Ca){let f=g.from+1,w=g.lastChild,P=g.to-(w&&w.isError?0:1);if(P>f)return{parser:u.parser,overlay:[{from:f,to:P}],bracketed:!0}}else if(g.type.id==Ci)return{parser:u.parser,overlay:[{from:g.from,to:g.to}]}}}}return null})}var $e=require("@lezer/lr"),k=require("@lezer/highlight"),Vo=135,Ri=1,qo=136,Wo=137,Yi=2,Io=138,Go=3,Uo=4,Di=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],No=58,Bo=40,zi=95,Ho=91,Tt=45,Fo=46,Jo=35,Ko=37,el=38,tl=92,al=10,sl=42;function it(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function Ya(t){return t>=48&&t<=57}function Li(t){return Ya(t)||t>=97&&t<=102||t>=65&&t<=70}var Ai=(t,e,a)=>(s,i)=>{for(let r=!1,n=0,o=0;;o++){let{next:l}=s;if(it(l)||l==Tt||l==zi||r&&Ya(l))!r&&(l!=Tt||o>0)&&(r=!0),n===o&&l==Tt&&n++,s.advance();else if(l==tl&&s.peek(1)!=al){if(s.advance(),Li(s.next)){do s.advance();while(Li(s.next));s.next==32&&s.advance()}else s.next>-1&&s.advance();r=!0}else{r&&s.acceptToken(n==2&&i.canShift(Yi)?e:l==Bo?a:t);break}}},il=new $e.ExternalTokenizer(Ai(qo,Yi,Wo),{contextual:!0}),rl=new $e.ExternalTokenizer(Ai(Io,Go,Uo),{contextual:!0}),nl=new $e.ExternalTokenizer(t=>{if(Di.includes(t.peek(-1))){let{next:e}=t;(it(e)||e==zi||e==Jo||e==Fo||e==sl||e==Ho||e==No&&it(t.peek(1))||e==Tt||e==el)&&t.acceptToken(Vo)}}),ol=new $e.ExternalTokenizer(t=>{if(!Di.includes(t.peek(-1))){let{next:e}=t;if(e==Ko&&(t.advance(),t.acceptToken(Ri)),it(e)){do t.advance();while(it(t.next)||Ya(t.next));t.acceptToken(Ri)}}}),ll=(0,k.styleTags)({"AtKeyword import charset namespace keyframes media supports font-feature-values":k.tags.definitionKeyword,"from to selector scope MatchFlag":k.tags.keyword,NamespaceName:k.tags.namespace,KeyframeName:k.tags.labelName,KeyframeRangeName:k.tags.operatorKeyword,TagName:k.tags.tagName,ClassName:k.tags.className,PseudoClassName:k.tags.constant(k.tags.className),IdName:k.tags.labelName,"FeatureName PropertyName":k.tags.propertyName,AttributeName:k.tags.attributeName,NumberLiteral:k.tags.number,KeywordQuery:k.tags.keyword,UnaryQueryOp:k.tags.operatorKeyword,"CallTag ValueName FontName":k.tags.atom,VariableName:k.tags.variableName,Callee:k.tags.operatorKeyword,Unit:k.tags.unit,"UniversalSelector NestingSelector":k.tags.definitionOperator,"MatchOp CompareOp":k.tags.compareOperator,"ChildOp SiblingOp, LogicOp":k.tags.logicOperator,BinOp:k.tags.arithmeticOperator,Important:k.tags.modifier,Comment:k.tags.blockComment,ColorLiteral:k.tags.color,"ParenthesizedContent StringLiteral":k.tags.string,":":k.tags.punctuation,"PseudoOp #":k.tags.derefOperator,"; , |":k.tags.separator,"( )":k.tags.paren,"[ ]":k.tags.squareBracket,"{ }":k.tags.brace}),Ol={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:132,"url-prefix":132,domain:132,regexp:132},cl={__proto__:null,or:104,and:104,not:112,only:112,layer:186},dl={__proto__:null,selector:118,layer:182},pl={__proto__:null,"@import":178,"@media":190,"@charset":194,"@namespace":198,"@keyframes":204,"@supports":216,"@scope":220,"@font-feature-values":226},ul={__proto__:null,to:223},Mi=$e.LRParser.deserialize({version:14,states:"IpQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FdO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#DtO'dQdO'#DvO'oQdO'#D}O'oQdO'#EQOOQP'#Fd'#FdO)OQhO'#EsOOQS'#Fc'#FcOOQS'#Ev'#EvQYQdOOO)VQdO'#EWO*cQhO'#E^O)VQdO'#E`O*jQdO'#EbO*uQdO'#EeO)zQhO'#EkO*}QdO'#EmO+YQdO'#EpO+_QaO'#CfO+fQ`O'#ETO+kQ`O'#FnO+vQdO'#FnQOQ`OOP,QO&jO'#CaPOOO)CAR)CAROOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,]QdO,59YO'_QdO,5:`O'dQdO,5:bO'oQdO,5:iO'oQdO,5:kO'oQdO,5:lO'oQdO'#E}O,hQ`O,58}O,pQdO'#ESOOQS,58},58}OOQP'#Cq'#CqOOQO'#Dr'#DrOOQP,59Y,59YO,wQ`O,59YO,|Q`O,59YOOQP'#Du'#DuOOQP,5:`,5:`O-RQpO'#DwO-^QdO'#DxO-cQ`O'#DxO-hQpO,5:bO.RQaO,5:iO.iQaO,5:lOOQW'#D^'#D^O/eQhO'#DgO/xQhO,5;_O)zQhO'#DeO0VQ`O'#DkO0[QhO'#DnOOQW'#Fj'#FjOOQS,5;_,5;_O0aQ`O'#DhOOQS-E8t-E8tOOQ['#Cv'#CvO0fQdO'#CwO0|QdO'#C}O1dQdO'#DQO1zQ!pO'#DSO4TQ!jO,5:rOOQO'#DX'#DXO,|Q`O'#DWO4eQ!nO'#FgO6hQ`O'#DYO6mQ`O'#DoOOQ['#Fg'#FgO6rQhO'#FqO7QQ`O,5:xO7VQ!bO,5:zOOQS'#Ed'#EdO7_Q`O,5:|O7dQdO,5:|OOQO'#Eg'#EgO7lQ`O,5;PO7qQhO,5;VO'oQdO'#DjOOQS,5;X,5;XO0aQ`O,5;XO7yQdO,5;XOOQS'#FU'#FUO8RQdO'#ErO7QQ`O,5;[O8ZQdO,5:oO8kQdO'#FPO8xQ`O,5QQhO'#DlOOQW,5:V,5:VOOQW,5:Y,5:YOOQW,5:S,5:SO>[Q!fO'#FhOOQS'#Fh'#FhOOQS'#Ex'#ExO?lQdO,59cOOQ[,59c,59cO@SQdO,59iOOQ[,59i,59iO@jQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)VQdO,59pOAQQhO'#EYOOQW'#EY'#EYOAlQ`O1G0^O4^QhO1G0^OOQ[,59r,59rO)zQhO'#D[OOQ[,59t,59tOAqQ#tO,5:ZOA|QhO'#FROBZQ`O,5<]OOQS1G0d1G0dOOQS1G0f1G0fOOQS1G0h1G0hOBfQ`O1G0hOBkQdO'#EhOOQS1G0k1G0kOOQS1G0q1G0qOBvQaO,5:UO7QQ`O1G0sOOQS1G0s1G0sO0aQ`O1G0sOOQS-E9S-E9SOOQS1G0v1G0vOB}Q!fO1G0ZOCeQ`O'#EVOOQO1G0Z1G0ZOOQO,5;k,5;kOCjQdO,5;kOOQO-E8}-E8}OCwQ`O1G1tPOOO-E8s-E8sPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%h7+%hO)VQdO7+%hOOQS1G0Y1G0YODSQaO'#FmOD^Q`O,5:_ODcQ!fO'#EwOEaQdO'#FfOEkQ`O,59aOOQO1G0O1G0OOEpQ!bO7+%hO)VQdO1G/eOE{QhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOF^QhO,5;qOOQW-E9T-E9TOOQS7+&e7+&eOGRQhO'#D^OGaQhO'#FlOGlQ`O'#FlOGqQ`O,5:WOOQS-E8v-E8vOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OGvQdO,5:tOOQS7+%x7+%xOG{Q`O7+%xOHQQhO'#D]OHYQ`O,59vO)zQhO,59vOOQ[1G/u1G/uOHbQ`O1G/uOHgQhO,5;mOOQO-E9P-E9POOQS7+&S7+&SOHuQbO'#DSOOQO'#Ej'#EjOITQ`O'#EiOOQO'#Ei'#EiOI`Q`O'#FSOIhQdO,5;SOOQS,5;S,5;SOOQ[1G/p1G/pOOQS7+&_7+&_O7QQ`O7+&_OIsQ!fO'#FOO)VQdO'#FOOJzQdO7+%uOOQO7+%u7+%uOOQO,5:q,5:qOOQO1G1V1G1VOK_Q!bO<nAN>nO! bQ`OAN>nO! gQaO,5;hOOQO-E8z-E8zO! qQdO,5;gOOQO-E8y-E8yOOQW<ZO)VQdO1G1QO!#nQ`O7+'^OOQO,5;l,5;lOOQO-E9O-E9OOOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!e`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$Q~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$Q~!e`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$dYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!e`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!e`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!e`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!e`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!e`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!e`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!e`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!e`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!oS!e`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW!uQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!e`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!e`$]YOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!e`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!e`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!e`$]YOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!e`$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!aYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!e`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!e`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!oSOy%jz;'S%j;'S;=`%{<%lO%jj@uV!rQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!rQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!e`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!e`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!pWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!pWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!e`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!e`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!e`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!e`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!e`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!e`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!e`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$cQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$XUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU!uQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[nl,ol,il,rl,1,2,3,4,new $e.LocalTokenGroup("m~RRYZ[z{a~~g~aO$T~~dP!P!Qg~lO$U~~",28,142)],topRules:{StyleSheet:[0,6],Styles:[1,116]},dynamicPrecedences:{84:1},specialized:[{term:137,get:t=>Ol[t]||-1},{term:138,get:t=>cl[t]||-1},{term:4,get:t=>dl[t]||-1},{term:28,get:t=>pl[t]||-1},{term:136,get:t=>ul[t]||-1}],tokenPrec:2256});var F=require("@codemirror/language"),Xt=require("@lezer/common"),Da=null;function za(){if(!Da&&typeof document=="object"&&document.body){let{style:t}=document.body,e=[],a=new Set;for(let s in t)s!="cssText"&&s!="cssFloat"&&typeof t[s]=="string"&&(/[A-Z]/.test(s)&&(s=s.replace(/[A-Z]/g,i=>"-"+i.toLowerCase())),a.has(s)||(e.push(s),a.add(s)));Da=e.sort().map(s=>({type:"property",label:s,apply:s+": "}))}return Da||[]}var Vi=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),qi=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),hl=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),ml=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),be=/^(\w[\w-]*|-\w[\w-]*|)$/,fl=/^-(-[\w-]*)?$/;function gl(t,e){var a;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let s=(a=t.parent)===null||a===void 0?void 0:a.firstChild;return s?.name!="Callee"?!1:e.sliceString(s.from,s.to)=="var"}var Wi=new Xt.NodeWeakMap,Ql=["Declaration"];function Sl(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function Ii(t,e,a){if(e.to-e.from>4096){let s=Wi.get(e);if(s)return s;let i=[],r=new Set,n=e.cursor(Xt.IterMode.IncludeAnonymous);if(n.firstChild())do for(let o of Ii(t,n.node,a))r.has(o.label)||(r.add(o.label),i.push(o));while(n.nextSibling());return Wi.set(e,i),i}else{let s=[],i=new Set;return e.cursor().iterate(r=>{var n;if(a(r)&&r.matchContext(Ql)&&((n=r.node.nextSibling)===null||n===void 0?void 0:n.name)==":"){let o=t.sliceString(r.from,r.to);i.has(o)||(i.add(o),s.push({label:o,type:"variable"}))}}),s}}var vl=t=>e=>{let{state:a,pos:s}=e,i=(0,F.syntaxTree)(a).resolveInner(s,-1),r=i.type.isError&&i.from==i.to-1&&a.doc.sliceString(i.from,i.to)=="-";if(i.name=="PropertyName"||(r||i.name=="TagName")&&/^(Block|Styles)$/.test(i.resolve(i.to).name))return{from:i.from,options:za(),validFor:be};if(i.name=="ValueName")return{from:i.from,options:qi,validFor:be};if(i.name=="PseudoClassName")return{from:i.from,options:Vi,validFor:be};if(t(i)||(e.explicit||r)&&gl(i,a.doc))return{from:t(i)||r?i.from:s,options:Ii(a.doc,Sl(i),t),validFor:fl};if(i.name=="TagName"){for(let{parent:l}=i;l;l=l.parent)if(l.name=="Block")return{from:i.from,options:za(),validFor:be};return{from:i.from,options:hl,validFor:be}}if(i.name=="AtKeyword")return{from:i.from,options:ml,validFor:be};if(!e.explicit)return null;let n=i.resolve(s),o=n.childBefore(s);return o&&o.name==":"&&n.name=="PseudoClassSelector"?{from:s,options:Vi,validFor:be}:o&&o.name==":"&&n.name=="Declaration"||n.name=="ArgList"?{from:s,options:qi,validFor:be}:n.name=="Block"||n.name=="Styles"?{from:s,options:za(),validFor:be}:null},$l=vl(t=>t.name=="VariableName"),rt=F.LRLanguage.define({name:"css",parser:Mi.configure({props:[F.indentNodeProp.add({Declaration:(0,F.continuedIndent)()}),F.foldNodeProp.add({"Block KeyframeList":F.foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function Gi(){return new F.LanguageSupport(rt,rt.data.of({autocomplete:$l}))}var te=require("@lezer/lr"),m=require("@lezer/highlight"),bl=316,kl=317,Ui=1,Pl=2,yl=3,wl=4,xl=318,Zl=320,Tl=321,Xl=5,Cl=6,_l=0,Ma=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Ni=125,jl=59,Va=47,El=42,Rl=43,Ll=45,Yl=60,Dl=44,zl=63,Al=46,Ml=91,Vl=new te.ContextTracker({start:!1,shift(t,e){return e==Xl||e==Cl||e==Zl?t:e==Tl},strict:!1}),ql=new te.ExternalTokenizer((t,e)=>{let{next:a}=t;(a==Ni||a==-1||e.context)&&t.acceptToken(xl)},{contextual:!0,fallback:!0}),Wl=new te.ExternalTokenizer((t,e)=>{let{next:a}=t,s;Ma.indexOf(a)>-1||a==Va&&((s=t.peek(1))==Va||s==El)||a!=Ni&&a!=jl&&a!=-1&&!e.context&&t.acceptToken(bl)},{contextual:!0}),Il=new te.ExternalTokenizer((t,e)=>{t.next==Ml&&!e.context&&t.acceptToken(kl)},{contextual:!0}),Gl=new te.ExternalTokenizer((t,e)=>{let{next:a}=t;if(a==Rl||a==Ll){if(t.advance(),a==t.next){t.advance();let s=!e.context&&e.canShift(Ui);t.acceptToken(s?Ui:Pl)}}else a==zl&&t.peek(1)==Al&&(t.advance(),t.advance(),(t.next<48||t.next>57)&&t.acceptToken(yl))},{contextual:!0});function Aa(t,e){return t>=65&&t<=90||t>=97&&t<=122||t==95||t>=192||!e&&t>=48&&t<=57}var Ul=new te.ExternalTokenizer((t,e)=>{if(t.next!=Yl||!e.dialectEnabled(_l)||(t.advance(),t.next==Va))return;let a=0;for(;Ma.indexOf(t.next)>-1;)t.advance(),a++;if(Aa(t.next,!0)){for(t.advance(),a++;Aa(t.next,!1);)t.advance(),a++;for(;Ma.indexOf(t.next)>-1;)t.advance(),a++;if(t.next==Dl)return;for(let s=0;;s++){if(s==7){if(!Aa(t.next,!0))return;break}if(t.next!="extends".charCodeAt(s))break;t.advance(),a++}}t.acceptToken(wl,-a)}),Nl=(0,m.styleTags)({"get set async static":m.tags.modifier,"for while do if else switch try catch finally return throw break continue default case defer":m.tags.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":m.tags.operatorKeyword,"let var const using function class extends":m.tags.definitionKeyword,"import export from":m.tags.moduleKeyword,"with debugger new":m.tags.keyword,TemplateString:m.tags.special(m.tags.string),super:m.tags.atom,BooleanLiteral:m.tags.bool,this:m.tags.self,null:m.tags.null,Star:m.tags.modifier,VariableName:m.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":m.tags.function(m.tags.variableName),VariableDefinition:m.tags.definition(m.tags.variableName),Label:m.tags.labelName,PropertyName:m.tags.propertyName,PrivatePropertyName:m.tags.special(m.tags.propertyName),"CallExpression/MemberExpression/PropertyName":m.tags.function(m.tags.propertyName),"FunctionDeclaration/VariableDefinition":m.tags.function(m.tags.definition(m.tags.variableName)),"ClassDeclaration/VariableDefinition":m.tags.definition(m.tags.className),"NewExpression/VariableName":m.tags.className,PropertyDefinition:m.tags.definition(m.tags.propertyName),PrivatePropertyDefinition:m.tags.definition(m.tags.special(m.tags.propertyName)),UpdateOp:m.tags.updateOperator,"LineComment Hashbang":m.tags.lineComment,BlockComment:m.tags.blockComment,Number:m.tags.number,String:m.tags.string,Escape:m.tags.escape,ArithOp:m.tags.arithmeticOperator,LogicOp:m.tags.logicOperator,BitOp:m.tags.bitwiseOperator,CompareOp:m.tags.compareOperator,RegExp:m.tags.regexp,Equals:m.tags.definitionOperator,Arrow:m.tags.function(m.tags.punctuation),": Spread":m.tags.punctuation,"( )":m.tags.paren,"[ ]":m.tags.squareBracket,"{ }":m.tags.brace,"InterpolationStart InterpolationEnd":m.tags.special(m.tags.brace),".":m.tags.derefOperator,", ;":m.tags.separator,"@":m.tags.meta,TypeName:m.tags.typeName,TypeDefinition:m.tags.definition(m.tags.typeName),"type enum interface implements namespace module declare":m.tags.definitionKeyword,"abstract global Privacy readonly override":m.tags.modifier,"is keyof unique infer asserts":m.tags.operatorKeyword,JSXAttributeValue:m.tags.attributeValue,JSXText:m.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":m.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":m.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":m.tags.attributeName,"JSXBuiltin/JSXIdentifier":m.tags.standard(m.tags.tagName)}),Bl={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},Hl={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},Fl={__proto__:null,"<":193},Bi=te.LRParser.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:Vl,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[Nl],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[Wl,Il,Gl,Ul,2,3,4,5,6,7,8,9,10,11,12,13,14,ql,new te.LocalTokenGroup("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new te.LocalTokenGroup("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:t=>Bl[t]||-1},{term:343,get:t=>Hl[t]||-1},{term:95,get:t=>Fl[t]||-1}],tokenPrec:15201});var R=require("@codemirror/language"),Ki=require("@codemirror/state"),er=require("@codemirror/view"),A=require("@codemirror/autocomplete"),Ct=require("@lezer/common"),tr=[(0,A.snippetCompletion)("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,A.snippetCompletion)("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)(`try { +`);s=i<0?a:a.slice(0,i)}return e+s.length>this.to?s.slice(0,this.to-e):s}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,a,s=0){this.block=kt.create(e,s,this.lineStart+a,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,a,s=0){this.startContext(this.parser.getNodeType(e),a,s)}addNode(e,a,s){typeof e=="number"&&(e=new E.Tree(this.parser.nodeSet.types[e],Ae,Ae,(s??this.prevLineEnd())-a)),this.block.addChild(e,a-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,a){this.addNode(this.buffer.writeElements(ka(a.children,e.marks),-a.from).finish(a.type,a.to-a.from),a.from)}finishContext(){let e=this.stack.pop(),a=this.stack[this.stack.length-1];a.addChild(e.toTree(this.parser.nodeSet),e.from-a.from),this.block=a}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?ti(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let s of e.parsers)if(s.finish(this,e))return;let a=ka(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(a,-e.start).finish(h.Paragraph,e.content.length),e.start)}elt(e,a,s,i){return typeof e=="string"?y(this.parser.getNodeType(e),a,s,i):new yt(e,a)}get buffer(){return new Pt(this.parser.nodeSet)}};function ti(t,e,a,s,i){let r=t[e].to,n=[],o=[],l=a.from+s;function O(c,d){for(;d?c>=r:c>r;){let p=t[e+1].from-r;s+=p,c+=p,e++,r=t[e].to}}for(let c=a.firstChild;c;c=c.nextSibling){O(c.from+s,!0);let d=c.from+s,p,u=i.get(c.tree);u?p=u:c.to+s>r?(p=ti(t,e,c,s,i),O(c.to+s,!1)):p=c.toTree(),n.push(p),o.push(d-l)}return O(a.to+s,!1),new E.Tree(a.type,n,o,a.to+s-l,a.tree?a.tree.propValues:void 0)}var tt=class t extends E.Parser{constructor(e,a,s,i,r,n,o,l,O){super(),this.nodeSet=e,this.blockParsers=a,this.leafBlockParsers=s,this.blockNames=i,this.endLeafBlock=r,this.skipContextMarkup=n,this.inlineParsers=o,this.inlineNames=l,this.wrappers=O,this.nodeTypes=Object.create(null);for(let c of e.types)this.nodeTypes[c.name]=c.id}createParse(e,a,s){let i=new $a(this,e,a,s);for(let r of this.wrappers)i=r(i,e,a,s);return i}configure(e){let a=ba(e);if(!a)return this;let{nodeSet:s,skipContextMarkup:i}=this,r=this.blockParsers.slice(),n=this.leafBlockParsers.slice(),o=this.blockNames.slice(),l=this.inlineParsers.slice(),O=this.inlineNames.slice(),c=this.endLeafBlock.slice(),d=this.wrappers;if(Je(a.defineNodes)){i=Object.assign({},i);let p=s.types.slice(),u;for(let g of a.defineNodes){let{name:f,block:w,composite:P,style:Z}=typeof g=="string"?{name:g}:g;if(p.some(Xe=>Xe.name==f))continue;P&&(i[p.length]=(Xe,He,Ln)=>P(He,Ln,Xe.value));let Y=p.length,Qe=P?["Block","BlockContext"]:w?Y>=h.ATXHeading1&&Y<=h.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;p.push(E.NodeType.define({id:Y,name:f,props:Qe&&[[E.NodeProp.group,Qe]]})),Z&&(u||(u={}),Array.isArray(Z)||Z instanceof b.Tag?u[f]=Z:Object.assign(u,Z))}s=new E.NodeSet(p),u&&(s=s.extend((0,b.styleTags)(u)))}if(Je(a.props)&&(s=s.extend(...a.props)),Je(a.remove))for(let p of a.remove){let u=this.blockNames.indexOf(p),g=this.inlineNames.indexOf(p);u>-1&&(r[u]=n[u]=void 0),g>-1&&(l[g]=void 0)}if(Je(a.parseBlock))for(let p of a.parseBlock){let u=o.indexOf(p.name);if(u>-1)r[u]=p.parse,n[u]=p.leaf;else{let g=p.before?bt(o,p.before):p.after?bt(o,p.after)+1:o.length-1;r.splice(g,0,p.parse),n.splice(g,0,p.leaf),o.splice(g,0,p.name)}p.endLeaf&&c.push(p.endLeaf)}if(Je(a.parseInline))for(let p of a.parseInline){let u=O.indexOf(p.name);if(u>-1)l[u]=p.parse;else{let g=p.before?bt(O,p.before):p.after?bt(O,p.after)+1:O.length-1;l.splice(g,0,p.parse),O.splice(g,0,p.name)}}return a.wrap&&(d=d.concat(a.wrap)),new t(s,r,n,o,c,i,l,O,d)}getNodeType(e){let a=this.nodeTypes[e];if(a==null)throw new RangeError(`Unknown node type '${e}'`);return a}parseInline(e,a){let s=new st(this,e,a);e:for(let i=a;i=0){i=o;continue e}}i++}return s.resolveMarkers(0)}};function Je(t){return t!=null&&t.length>0}function ba(t){if(!Array.isArray(t))return t;if(t.length==0)return null;let e=ba(t[0]);if(t.length==1)return e;let a=ba(t.slice(1));if(!a||!e)return e||a;let s=(n,o)=>(n||Ae).concat(o||Ae),i=e.wrap,r=a.wrap;return{props:s(e.props,a.props),defineNodes:s(e.defineNodes,a.defineNodes),parseBlock:s(e.parseBlock,a.parseBlock),parseInline:s(e.parseInline,a.parseInline),remove:s(e.remove,a.remove),wrap:i?r?(n,o,l,O)=>i(r(n,o,l,O),o,l,O):i:r}}function bt(t,e){let a=t.indexOf(e);if(a<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return a}var ai=[E.NodeType.none];for(let t=1,e;e=h[t];t++)ai[t]=E.NodeType.define({id:t,name:e,props:t>=h.Escape?[]:[[E.NodeProp.group,t in Is?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});var Ae=[],Pt=class{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,a,s,i=0){return this.content.push(e,a,s,4+i*4),this}writeElements(e,a=0){for(let s of e)s.writeTo(this,a);return this}finish(e,a){return E.Tree.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:a})}},Re=class{constructor(e,a,s,i=Ae){this.type=e,this.from=a,this.to=s,this.children=i}writeTo(e,a){let s=e.content.length;e.writeElements(this.children,a),e.content.push(this.type,this.from+a,this.to+a,e.content.length+4-s)}toTree(e){return new Pt(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}},yt=class{constructor(e,a){this.tree=e,this.from=a}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return Ae}writeTo(e,a){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+a,this.to+a,-1)}toTree(){return this.tree}};function y(t,e,a,s){return new Re(t,e,a,s)}var si={resolve:"Emphasis",mark:"EmphasisMark"},ii={resolve:"Emphasis",mark:"EmphasisMark"},Ee={},wt={},N=class{constructor(e,a,s,i){this.type=e,this.from=a,this.to=s,this.side=i}},Ys="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",at=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{at=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}var ha={Escape(t,e,a){if(e!=92||a==t.end-1)return-1;let s=t.char(a+1);for(let i=0;i]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(s);if(i)return t.append(y(h.Autolink,a,a+1+i[0].length,[y(h.LinkMark,a,a+1),y(h.URL,a+1,a+i[0].length),y(h.LinkMark,a+i[0].length,a+1+i[0].length)]));let r=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(s);if(r)return t.append(y(h.Comment,a,a+1+r[0].length));let n=/^\?[^]*?\?>/.exec(s);if(n)return t.append(y(h.ProcessingInstruction,a,a+1+n[0].length));let o=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(s);return o?t.append(y(h.HTMLTag,a,a+1+o[0].length)):-1},Emphasis(t,e,a){if(e!=95&&e!=42)return-1;let s=a+1;for(;t.char(s)==e;)s++;let i=t.slice(a-1,a),r=t.slice(s,s+1),n=at.test(i),o=at.test(r),l=/\s|^$/.test(i),O=/\s|^$/.test(r),c=!O&&(!o||l||n),d=!l&&(!n||O||o),p=c&&(e==42||!d||n),u=d&&(e==42||!c||o);return t.append(new N(e==95?si:ii,a,s,(p?1:0)|(u?2:0)))},HardBreak(t,e,a){if(e==92&&t.char(a+1)==10)return t.append(y(h.HardBreak,a,a+2));if(e==32){let s=a+1;for(;t.char(s)==32;)s++;if(t.char(s)==10&&s>=a+2)return t.append(y(h.HardBreak,a,s+1))}return-1},Link(t,e,a){return e==91?t.append(new N(Ee,a,a+1,1)):-1},Image(t,e,a){return e==33&&t.char(a+1)==91?t.append(new N(wt,a,a+2,1)):-1},LinkEnd(t,e,a){if(e!=93)return-1;for(let s=t.parts.length-1;s>=0;s--){let i=t.parts[s];if(i instanceof N&&(i.type==Ee||i.type==wt)){if(!i.side||t.skipSpace(i.to)==a&&!/[(\[]/.test(t.slice(a+1,a+2)))return t.parts[s]=null,-1;let r=t.takeContent(s),n=t.parts[s]=Bn(t,r,i.type==Ee?h.Link:h.Image,i.from,a+1);if(i.type==Ee)for(let o=0;oe?y(h.URL,e+a,r+a):r==t.length?null:!1}}function ni(t,e,a){let s=t.charCodeAt(e);if(s!=39&&s!=34&&s!=40)return!1;let i=s==40?41:s;for(let r=e+1,n=!1;r=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,a){return this.text.slice(e-this.offset,a-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,a,s,i,r){return this.append(new N(e,a,s,(i?1:0)|(r?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let a=this.parts[e];if(a instanceof N&&(a.type==Ee||a.type==wt))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let s=e;s=e;l--){let f=this.parts[l];if(f instanceof N&&f.side&1&&f.type==i.type&&!(r&&(i.side&1||f.side&2)&&(f.to-f.from+n)%3==0&&((f.to-f.from)%3||n%3))){o=f;break}}if(!o)continue;let O=i.type.resolve,c=[],d=o.from,p=i.to;if(r){let f=Math.min(2,o.to-o.from,n);d=o.to-f,p=i.from+f,O=f==1?"Emphasis":"StrongEmphasis"}o.type.mark&&c.push(this.elt(o.type.mark,d,o.to));for(let f=l+1;f=0;a--){let s=this.parts[a];if(s instanceof N&&s.type==e&&s.side&1)return a}return null}takeContent(e){let a=this.resolveMarkers(e);return this.parts.length=e,a}getDelimiterAt(e){let a=this.parts[e];return a instanceof N?a:null}skipSpace(e){return Ke(this.text,e-this.offset)+this.offset}elt(e,a,s,i){return typeof e=="string"?y(this.parser.getNodeType(e),a,s,i):new yt(e,a)}};st.linkStart=Ee;st.imageStart=wt;function ka(t,e){if(!e.length)return t;if(!t.length)return e;let a=t.slice(),s=0;for(let i of e){for(;s(e?e-1:0))return!1;if(this.fragmentEnd<0){let r=this.fragment.to;for(;r>0&&this.input.read(r-1,r)!=` +`;)r--;this.fragmentEnd=r?r-1:0}let s=this.cursor;s||(s=this.cursor=this.fragment.tree.cursor(),s.firstChild());let i=e+this.fragment.offset;for(;s.to<=i;)if(!s.parent())return!1;for(;;){if(s.from>=i)return this.fragment.from<=a;if(!s.childAfter(i))return!1}}matches(e){let a=this.cursor.tree;return a&&a.prop(E.NodeProp.contextHash)==e}takeNodes(e){let a=this.cursor,s=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),r=e.absoluteLineStart,n=r,o=e.block.children.length,l=n,O=o;for(;;){if(a.to-s>i){if(a.type.isAnonymous&&a.firstChild())continue;break}let c=li(a.from-s,e.ranges);if(a.to-s<=e.ranges[e.rangeI].to)e.addNode(a.tree,c);else{let d=new E.Tree(e.parser.nodeSet.types[h.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(d,a.tree),e.addNode(d,c)}if(a.type.is("Block")&&(Hn.indexOf(a.type.id)<0?(n=a.to-s,o=e.block.children.length):(n=l,o=O),l=a.to-s,O=e.block.children.length),!a.nextSibling())break}for(;e.block.children.length>o;)e.block.children.pop(),e.block.positions.pop();return n-r}};function li(t,e){let a=t;for(let s=1;s$t[t]),Object.keys($t).map(t=>ei[t]),Object.keys($t),Un,Is,Object.keys(ha).map(t=>ha[t]),Object.keys(ha),[]);function Jn(t,e,a){let s=[];for(let i=t.firstChild,r=e;;i=i.nextSibling){let n=i?i.from:a;if(n>r&&s.push({from:r,to:n}),!i)break;r=i.to}return s}function ci(t){let{codeParser:e,htmlParser:a}=t;return{wrap:(0,E.parseMixed)((i,r)=>{let n=i.type.id;if(e&&(n==h.CodeBlock||n==h.FencedCode)){let o="";if(n==h.FencedCode){let O=i.node.getChild(h.CodeInfo);O&&(o=r.read(O.from,O.to))}let l=e(o);if(l)return{parser:l,overlay:O=>O.type.id==h.CodeText,bracketed:n==h.FencedCode}}else if(a&&(n==h.HTMLBlock||n==h.HTMLTag||n==h.CommentBlock))return{parser:a,overlay:Jn(i.node,i.from,i.to)};return null})}}var Kn={resolve:"Strikethrough",mark:"StrikethroughMark"},eo={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":b.tags.strikethrough}},{name:"StrikethroughMark",style:b.tags.processingInstruction}],parseInline:[{name:"Strikethrough",parse(t,e,a){if(e!=126||t.char(a+1)!=126||t.char(a+2)==126)return-1;let s=t.slice(a-1,a),i=t.slice(a+2,a+3),r=/\s|^$/.test(s),n=/\s|^$/.test(i),o=at.test(s),l=at.test(i);return t.addDelimiter(Kn,a,a+2,!n&&(!l||r||o),!r&&(!o||n||l))},after:"Emphasis"}]};function et(t,e,a=0,s,i=0){let r=0,n=!0,o=-1,l=-1,O=!1,c=()=>{s.push(t.elt("TableCell",i+o,i+l,t.parser.parseInline(e.slice(o,l),i+o)))};for(let d=a;d-1)&&r++,n=!1,s&&(o>-1&&c(),s.push(t.elt("TableDelimiter",d+i,d+i+1))),o=l=-1):(O||p!=32&&p!=9)&&(o<0&&(o=d),l=d+1),O=!O&&p==92}return o>-1&&(r++,s&&c()),r}function Ds(t,e){for(let a=e;ai instanceof xt)||!Ds(e.text,e.basePos))return!1;let s=t.peekLine();return di.test(s)&&et(t,e.text,e.basePos)==et(t,s,e.basePos)},before:"SetextHeading"}]},ya=class{nextLine(){return!1}finish(e,a){return e.addLeafElement(a,e.elt("Task",a.start,a.start+a.content.length,[e.elt("TaskMarker",a.start,a.start+3),...e.parser.parseInline(a.content.slice(3),a.start+3)])),!0}},ao={defineNodes:[{name:"Task",block:!0,style:b.tags.list},{name:"TaskMarker",style:b.tags.atom}],parseBlock:[{name:"TaskList",leaf(t,e){return/^\[[ xX]\][ \t]/.test(e.content)&&t.parentType().name=="ListItem"?new ya:null},after:"SetextHeading"}]},zs=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,As=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,so=/[\w-]+\.[\w-]+($|\/)/,Ms=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,Vs=/\/[a-zA-Z\d@.]+/gy;function qs(t,e,a,s){let i=0;for(let r=e;r-1)return-1;let s=e+a[0].length;for(;;){let i=t[s-1],r;if(/[?!.,:*_~]/.test(i)||i==")"&&qs(t,e,s,")")>qs(t,e,s,"("))s--;else if(i==";"&&(r=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(t.slice(e,s))))s=e+r.index;else break}return s}function Ws(t,e){Ms.lastIndex=e;let a=Ms.exec(t);if(!a)return-1;let s=a[0][a[0].length-1];return s=="_"||s=="-"?-1:e+a[0].length-(s=="."?1:0)}var ro={parseInline:[{name:"Autolink",parse(t,e,a){let s=a-t.offset;if(s&&/\w/.test(t.text[s-1]))return-1;zs.lastIndex=s;let i=zs.exec(t.text),r=-1;if(!i)return-1;if(i[1]||i[2]){if(r=io(t.text,s+i[0].length),r>-1&&t.hasOpenLink){let n=/([^\[\]]|\[[^\]]*\])*/.exec(t.text.slice(s,r));r=s+n[0].length}}else i[3]?r=Ws(t.text,s):(r=Ws(t.text,s+i[0].length),r>-1&&i[0]=="xmpp:"&&(Vs.lastIndex=r,i=Vs.exec(t.text),i&&(r=i.index+i[0].length)));return r<0?-1:(t.addElement(t.elt("URL",a,r+t.offset)),r+t.offset)}}]},pi=[to,ao,eo,ro];function ui(t,e,a){return(s,i,r)=>{if(i!=t||s.char(r+1)==t)return-1;let n=[s.elt(a,r,r+1)];for(let o=r+1;o=65&&t<=90||t==95||t>=97&&t<=122||t>=161}var vi=null,$i=null,bi=0;function _a(t,e){let a=t.pos+e;if(bi==a&&$i==t)return vi;let s=t.peek(e),i="";for(;Xo(s);)i+=String.fromCharCode(s),s=t.peek(++e);return $i=t,bi=a,vi=i?i.toLowerCase():s==Co||s==_o?void 0:null}var ji=60,Zt=62,Ea=47,Co=63,_o=33,jo=45;function ki(t,e){this.name=t,this.parent=e}var Eo=[ja,Ti,wi,xi,Zi],Ro=new ve.ContextTracker({start:null,shift(t,e,a,s){return Eo.indexOf(e)>-1?new ki(_a(s,1)||"",t):t},reduce(t,e){return e==Xi&&t?t.parent:t},reuse(t,e,a,s){let i=e.type.id;return i==ja||i==Po?new ki(_a(s,1)||"",t):t},strict:!1}),Lo=new ve.ExternalTokenizer((t,e)=>{if(t.next!=ji){t.next<0&&e.context&&t.acceptToken(Ta);return}t.advance();let a=t.next==Ea;a&&t.advance();let s=_a(t,0);if(s===void 0)return;if(!s)return t.acceptToken(a?Qo:go);let i=e.context?e.context.name:null;if(a){if(s==i)return t.acceptToken(ho);if(i&&To[i])return t.acceptToken(Ta,-2);if(e.dialectEnabled(wo))return t.acceptToken(mo);for(let r=e.context;r;r=r.parent)if(r.name==s)return;t.acceptToken(fo)}else{if(s=="script")return t.acceptToken(wi);if(s=="style")return t.acceptToken(xi);if(s=="textarea")return t.acceptToken(Zi);if(Zo.hasOwnProperty(s))return t.acceptToken(Ti);i&&Si[i]&&Si[i][s]?t.acceptToken(Ta,-1):t.acceptToken(ja)}},{contextual:!0}),Yo=new ve.ExternalTokenizer(t=>{for(let e=0,a=0;;a++){if(t.next<0){a&&t.acceptToken(Qi);break}if(t.next==jo)e++;else if(t.next==Zt&&e>=2){a>=3&&t.acceptToken(Qi,-2);break}else e=0;t.advance()}});function Do(t){for(;t;t=t.parent)if(t.name=="svg"||t.name=="math")return!0;return!1}var zo=new ve.ExternalTokenizer((t,e)=>{if(t.next==Ea&&t.peek(1)==Zt){let a=e.dialectEnabled(xo)||Do(e.context);t.acceptToken(a?uo:gi,2)}else t.next==Zt&&t.acceptToken(gi,1)});function Ra(t,e,a){let s=2+t.length;return new ve.ExternalTokenizer(i=>{for(let r=0,n=0,o=0;;o++){if(i.next<0){o&&i.acceptToken(e);break}if(r==0&&i.next==ji||r==1&&i.next==Ea||r>=2&&rn?i.acceptToken(e,-n):i.acceptToken(a,-(n-2));break}else if((i.next==10||i.next==13)&&o){i.acceptToken(e,1);break}else r=n=0;i.advance()}})}var Ao=Ra("script",no,oo),Mo=Ra("style",lo,Oo),Vo=Ra("textarea",co,po),qo=(0,B.styleTags)({"Text RawText IncompleteTag IncompleteCloseTag":B.tags.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":B.tags.angleBracket,TagName:B.tags.tagName,"MismatchedCloseTag/TagName":[B.tags.tagName,B.tags.invalid],AttributeName:B.tags.attributeName,"AttributeValue UnquotedAttributeValue":B.tags.attributeValue,Is:B.tags.definitionOperator,"EntityReference CharacterReference":B.tags.character,Comment:B.tags.blockComment,ProcessingInst:B.tags.processingInstruction,DoctypeDecl:B.tags.documentMeta}),Ei=ve.LRParser.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:Ro,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[qo],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let O=o.type.id;if(O==$o)return Xa(o,l,a);if(O==bo)return Xa(o,l,s);if(O==ko)return Xa(o,l,i);if(O==Xi&&r.length){let c=o.node,d=c.firstChild,p=d&&Pi(d,l),u;if(p){for(let g of r)if(g.tag==p&&(!g.attrs||g.attrs(u||(u=Ri(d,l))))){let f=c.lastChild,w=f.type.id==yo?f.from:c.to;if(w>d.to)return{parser:g.parser,overlay:[{from:d.to,to:w}]}}}}if(n&&O==Ci){let c=o.node,d;if(d=c.firstChild){let p=n[l.read(d.from,d.to)];if(p)for(let u of p){if(u.tagName&&u.tagName!=Pi(c.parent,l))continue;let g=c.lastChild;if(g.type.id==Ca){let f=g.from+1,w=g.lastChild,P=g.to-(w&&w.isError?0:1);if(P>f)return{parser:u.parser,overlay:[{from:f,to:P}],bracketed:!0}}else if(g.type.id==_i)return{parser:u.parser,overlay:[{from:g.from,to:g.to}]}}}}return null})}var $e=require("@lezer/lr"),k=require("@lezer/highlight"),Wo=135,Li=1,Io=136,Go=137,Di=2,Uo=138,No=3,Bo=4,zi=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Ho=58,Fo=40,Ai=95,Jo=91,Tt=45,Ko=46,el=35,tl=37,al=38,sl=92,il=10,rl=42;function it(t){return t>=65&&t<=90||t>=97&&t<=122||t>=161}function Ya(t){return t>=48&&t<=57}function Yi(t){return Ya(t)||t>=97&&t<=102||t>=65&&t<=70}var Mi=(t,e,a)=>(s,i)=>{for(let r=!1,n=0,o=0;;o++){let{next:l}=s;if(it(l)||l==Tt||l==Ai||r&&Ya(l))!r&&(l!=Tt||o>0)&&(r=!0),n===o&&l==Tt&&n++,s.advance();else if(l==sl&&s.peek(1)!=il){if(s.advance(),Yi(s.next)){do s.advance();while(Yi(s.next));s.next==32&&s.advance()}else s.next>-1&&s.advance();r=!0}else{r&&s.acceptToken(n==2&&i.canShift(Di)?e:l==Fo?a:t);break}}},nl=new $e.ExternalTokenizer(Mi(Io,Di,Go),{contextual:!0}),ol=new $e.ExternalTokenizer(Mi(Uo,No,Bo),{contextual:!0}),ll=new $e.ExternalTokenizer(t=>{if(zi.includes(t.peek(-1))){let{next:e}=t;(it(e)||e==Ai||e==el||e==Ko||e==rl||e==Jo||e==Ho&&it(t.peek(1))||e==Tt||e==al)&&t.acceptToken(Wo)}}),Ol=new $e.ExternalTokenizer(t=>{if(!zi.includes(t.peek(-1))){let{next:e}=t;if(e==tl&&(t.advance(),t.acceptToken(Li)),it(e)){do t.advance();while(it(t.next)||Ya(t.next));t.acceptToken(Li)}}}),cl=(0,k.styleTags)({"AtKeyword import charset namespace keyframes media supports font-feature-values":k.tags.definitionKeyword,"from to selector scope MatchFlag":k.tags.keyword,NamespaceName:k.tags.namespace,KeyframeName:k.tags.labelName,KeyframeRangeName:k.tags.operatorKeyword,TagName:k.tags.tagName,ClassName:k.tags.className,PseudoClassName:k.tags.constant(k.tags.className),IdName:k.tags.labelName,"FeatureName PropertyName":k.tags.propertyName,AttributeName:k.tags.attributeName,NumberLiteral:k.tags.number,KeywordQuery:k.tags.keyword,UnaryQueryOp:k.tags.operatorKeyword,"CallTag ValueName FontName":k.tags.atom,VariableName:k.tags.variableName,Callee:k.tags.operatorKeyword,Unit:k.tags.unit,"UniversalSelector NestingSelector":k.tags.definitionOperator,"MatchOp CompareOp":k.tags.compareOperator,"ChildOp SiblingOp, LogicOp":k.tags.logicOperator,BinOp:k.tags.arithmeticOperator,Important:k.tags.modifier,Comment:k.tags.blockComment,ColorLiteral:k.tags.color,"ParenthesizedContent StringLiteral":k.tags.string,":":k.tags.punctuation,"PseudoOp #":k.tags.derefOperator,"; , |":k.tags.separator,"( )":k.tags.paren,"[ ]":k.tags.squareBracket,"{ }":k.tags.brace}),dl={__proto__:null,lang:44,"nth-child":44,"nth-last-child":44,"nth-of-type":44,"nth-last-of-type":44,dir:44,"host-context":44,if:90,url:132,"url-prefix":132,domain:132,regexp:132},pl={__proto__:null,or:104,and:104,not:112,only:112,layer:186},ul={__proto__:null,selector:118,layer:182},hl={__proto__:null,"@import":178,"@media":190,"@charset":194,"@namespace":198,"@keyframes":204,"@supports":216,"@scope":220,"@font-feature-values":226},ml={__proto__:null,to:223},Vi=$e.LRParser.deserialize({version:14,states:"IpQYQdOOO#}QdOOP$UO`OOO%OQaO'#CfOOQP'#Ce'#CeO%VQdO'#CgO%[Q`O'#CgO%aQaO'#FdO&XQdO'#CkO&xQaO'#CcO'SQdO'#CnO'_QdO'#DtO'dQdO'#DvO'oQdO'#D}O'oQdO'#EQOOQP'#Fd'#FdO)OQhO'#EsOOQS'#Fc'#FcOOQS'#Ev'#EvQYQdOOO)VQdO'#EWO*cQhO'#E^O)VQdO'#E`O*jQdO'#EbO*uQdO'#EeO)zQhO'#EkO*}QdO'#EmO+YQdO'#EpO+_QaO'#CfO+fQ`O'#ETO+kQ`O'#FnO+vQdO'#FnQOQ`OOP,QO&jO'#CaPOOO)CAR)CAROOQP'#Ci'#CiOOQP,59R,59RO%VQdO,59ROOQP'#Cm'#CmOOQP,59V,59VO&XQdO,59VO,]QdO,59YO'_QdO,5:`O'dQdO,5:bO'oQdO,5:iO'oQdO,5:kO'oQdO,5:lO'oQdO'#E}O,hQ`O,58}O,pQdO'#ESOOQS,58},58}OOQP'#Cq'#CqOOQO'#Dr'#DrOOQP,59Y,59YO,wQ`O,59YO,|Q`O,59YOOQP'#Du'#DuOOQP,5:`,5:`O-RQpO'#DwO-^QdO'#DxO-cQ`O'#DxO-hQpO,5:bO.RQaO,5:iO.iQaO,5:lOOQW'#D^'#D^O/eQhO'#DgO/xQhO,5;_O)zQhO'#DeO0VQ`O'#DkO0[QhO'#DnOOQW'#Fj'#FjOOQS,5;_,5;_O0aQ`O'#DhOOQS-E8t-E8tOOQ['#Cv'#CvO0fQdO'#CwO0|QdO'#C}O1dQdO'#DQO1zQ!pO'#DSO4TQ!jO,5:rOOQO'#DX'#DXO,|Q`O'#DWO4eQ!nO'#FgO6hQ`O'#DYO6mQ`O'#DoOOQ['#Fg'#FgO6rQhO'#FqO7QQ`O,5:xO7VQ!bO,5:zOOQS'#Ed'#EdO7_Q`O,5:|O7dQdO,5:|OOQO'#Eg'#EgO7lQ`O,5;PO7qQhO,5;VO'oQdO'#DjOOQS,5;X,5;XO0aQ`O,5;XO7yQdO,5;XOOQS'#FU'#FUO8RQdO'#ErO7QQ`O,5;[O8ZQdO,5:oO8kQdO'#FPO8xQ`O,5QQhO'#DlOOQW,5:V,5:VOOQW,5:Y,5:YOOQW,5:S,5:SO>[Q!fO'#FhOOQS'#Fh'#FhOOQS'#Ex'#ExO?lQdO,59cOOQ[,59c,59cO@SQdO,59iOOQ[,59i,59iO@jQdO,59lOOQ[,59l,59lOOQ[,59n,59nO)VQdO,59pOAQQhO'#EYOOQW'#EY'#EYOAlQ`O1G0^O4^QhO1G0^OOQ[,59r,59rO)zQhO'#D[OOQ[,59t,59tOAqQ#tO,5:ZOA|QhO'#FROBZQ`O,5<]OOQS1G0d1G0dOOQS1G0f1G0fOOQS1G0h1G0hOBfQ`O1G0hOBkQdO'#EhOOQS1G0k1G0kOOQS1G0q1G0qOBvQaO,5:UO7QQ`O1G0sOOQS1G0s1G0sO0aQ`O1G0sOOQS-E9S-E9SOOQS1G0v1G0vOB}Q!fO1G0ZOCeQ`O'#EVOOQO1G0Z1G0ZOOQO,5;k,5;kOCjQdO,5;kOOQO-E8}-E8}OCwQ`O1G1tPOOO-E8s-E8sPOOO1G.g1G.gOOQP7+$`7+$`OOQP7+%h7+%hO)VQdO7+%hOOQS1G0Y1G0YODSQaO'#FmOD^Q`O,5:_ODcQ!fO'#EwOEaQdO'#FfOEkQ`O,59aOOQO1G0O1G0OOEpQ!bO7+%hO)VQdO1G/eOE{QhO1G/iOOQW1G/m1G/mOOQW1G/g1G/gOF^QhO,5;qOOQW-E9T-E9TOOQS7+&e7+&eOGRQhO'#D^OGaQhO'#FlOGlQ`O'#FlOGqQ`O,5:WOOQS-E8v-E8vOOQ[1G.}1G.}OOQ[1G/T1G/TOOQ[1G/W1G/WOOQ[1G/[1G/[OGvQdO,5:tOOQS7+%x7+%xOG{Q`O7+%xOHQQhO'#D]OHYQ`O,59vO)zQhO,59vOOQ[1G/u1G/uOHbQ`O1G/uOHgQhO,5;mOOQO-E9P-E9POOQS7+&S7+&SOHuQbO'#DSOOQO'#Ej'#EjOITQ`O'#EiOOQO'#Ei'#EiOI`Q`O'#FSOIhQdO,5;SOOQS,5;S,5;SOOQ[1G/p1G/pOOQS7+&_7+&_O7QQ`O7+&_OIsQ!fO'#FOO)VQdO'#FOOJzQdO7+%uOOQO7+%u7+%uOOQO,5:q,5:qOOQO1G1V1G1VOK_Q!bO<nAN>nO! bQ`OAN>nO! gQaO,5;hOOQO-E8z-E8zO! qQdO,5;gOOQO-E8y-E8yOOQW<ZO)VQdO1G1QO!#nQ`O7+'^OOQO,5;l,5;lOOQO-E9O-E9OOOQW<Q!]!^>|!^!_?_!_!`@Z!`!a@n!a!b%Z!b!cAo!c!k%Z!k!lC|!l!u%Z!u!vC|!v!}%Z!}#OD_#O#P%Z#P#QDp#Q#R2X#R#]%Z#]#^ER#^#g%Z#g#hC|#h#o%Z#o#pIf#p#qIw#q#rJ`#r#sJq#s#y%Z#y#z&R#z$f%Z$f$g&R$g#BY%Z#BY#BZ&R#BZ$IS%Z$IS$I_&R$I_$I|%Z$I|$JO&R$JO$JT%Z$JT$JU&R$JU$KV%Z$KV$KW&R$KW&FU%Z&FU&FV&R&FV;'S%Z;'S;=`KY<%lO%Z`%^SOy%jz;'S%j;'S;=`%{<%lO%j`%oS!e`Oy%jz;'S%j;'S;=`%{<%lO%j`&OP;=`<%l%j~&Wh$Q~OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%j~'yh$Q~!e`OX%jX^'r^p%jpq'rqy%jz#y%j#y#z'r#z$f%j$f$g'r$g#BY%j#BY#BZ'r#BZ$IS%j$IS$I_'r$I_$I|%j$I|$JO'r$JO$JT%j$JT$JU'r$JU$KV%j$KV$KW'r$KW&FU%j&FU&FV'r&FV;'S%j;'S;=`%{<%lO%jj)jS$dYOy%jz;'S%j;'S;=`%{<%lO%j~)yWOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d<%lO)v~*hOw~~*kRO;'S)v;'S;=`*t;=`O)v~*wXOY)vZr)vrs*cs#O)v#O#P*h#P;'S)v;'S;=`+d;=`<%l)v<%lO)v~+gP;=`<%l)vj+oYmYOy%jz!Q%j!Q![,_![!c%j!c!i,_!i#T%j#T#Z,_#Z;'S%j;'S;=`%{<%lO%jj,dY!e`Oy%jz!Q%j!Q![-S![!c%j!c!i-S!i#T%j#T#Z-S#Z;'S%j;'S;=`%{<%lO%jj-XY!e`Oy%jz!Q%j!Q![-w![!c%j!c!i-w!i#T%j#T#Z-w#Z;'S%j;'S;=`%{<%lO%jj.OYuY!e`Oy%jz!Q%j!Q![.n![!c%j!c!i.n!i#T%j#T#Z.n#Z;'S%j;'S;=`%{<%lO%jj.uYuY!e`Oy%jz!Q%j!Q![/e![!c%j!c!i/e!i#T%j#T#Z/e#Z;'S%j;'S;=`%{<%lO%jj/jY!e`Oy%jz!Q%j!Q![0Y![!c%j!c!i0Y!i#T%j#T#Z0Y#Z;'S%j;'S;=`%{<%lO%jj0aYuY!e`Oy%jz!Q%j!Q![1P![!c%j!c!i1P!i#T%j#T#Z1P#Z;'S%j;'S;=`%{<%lO%jj1UY!e`Oy%jz!Q%j!Q![1t![!c%j!c!i1t!i#T%j#T#Z1t#Z;'S%j;'S;=`%{<%lO%jj1{SuY!e`Oy%jz;'S%j;'S;=`%{<%lO%jd2[UOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jd2uS!oS!e`Oy%jz;'S%j;'S;=`%{<%lO%jb3WS^QOy%jz;'S%j;'S;=`%{<%lO%j~3gWOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{<%lO3d~4SRO;'S3d;'S;=`4];=`O3d~4`XOY3dZw3dwx*cx#O3d#O#P4P#P;'S3d;'S;=`4{;=`<%l3d<%lO3d~5OP;=`<%l3dj5WShYOy%jz;'S%j;'S;=`%{<%lO%j~5iOg~n5pUWQyWOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jj6ZWyW!uQOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj6xU!e`Oy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%jj7cY!e`$]YOy%jz!Q%j!Q![7[![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj8WY!e`Oy%jz{%j{|8v|}%j}!O8v!O!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj8{U!e`Oy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj9fU!e`$]YOy%jz!Q%j!Q![9_![;'S%j;'S;=`%{<%lO%jj:P[!e`$]YOy%jz!O%j!O!P7[!P!Q%j!Q![9x![!g%j!g!h8R!h#X%j#X#Y8R#Y;'S%j;'S;=`%{<%lO%jj:zS!aYOy%jz;'S%j;'S;=`%{<%lO%jj;]WyWOy%jz!O%j!O!P6s!P!Q%j!Q![9x![;'S%j;'S;=`%{<%lO%jj;zU`YOy%jz!Q%j!Q![7[![;'S%j;'S;=`%{<%lO%j~VUcYOy%jz![%j![!]>i!];'S%j;'S;=`%{<%lO%jj>pSdY!e`Oy%jz;'S%j;'S;=`%{<%lO%jj?RSnYOy%jz;'S%j;'S;=`%{<%lO%jh?dU!WWOy%jz!_%j!_!`?v!`;'S%j;'S;=`%{<%lO%jh?}S!WW!e`Oy%jz;'S%j;'S;=`%{<%lO%jl@bS!WW!oSOy%jz;'S%j;'S;=`%{<%lO%jj@uV!rQ!WWOy%jz!_%j!_!`?v!`!aA[!a;'S%j;'S;=`%{<%lO%jbAcS!rQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjArYOy%jz}%j}!OBb!O!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjBgW!e`Oy%jz!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jjCW[lY!e`Oy%jz}%j}!OCP!O!Q%j!Q![CP![!c%j!c!}CP!}#T%j#T#oCP#o;'S%j;'S;=`%{<%lO%jhDRS!pWOy%jz;'S%j;'S;=`%{<%lO%jjDdSpYOy%jz;'S%j;'S;=`%{<%lO%jnDuSo^Oy%jz;'S%j;'S;=`%{<%lO%jjEWU!pWOy%jz#a%j#a#bEj#b;'S%j;'S;=`%{<%lO%jbEoU!e`Oy%jz#d%j#d#eFR#e;'S%j;'S;=`%{<%lO%jbFWU!e`Oy%jz#c%j#c#dFj#d;'S%j;'S;=`%{<%lO%jbFoU!e`Oy%jz#f%j#f#gGR#g;'S%j;'S;=`%{<%lO%jbGWU!e`Oy%jz#h%j#h#iGj#i;'S%j;'S;=`%{<%lO%jbGoU!e`Oy%jz#T%j#T#UHR#U;'S%j;'S;=`%{<%lO%jbHWU!e`Oy%jz#b%j#b#cHj#c;'S%j;'S;=`%{<%lO%jbHoU!e`Oy%jz#h%j#h#iIR#i;'S%j;'S;=`%{<%lO%jbIYS$cQ!e`Oy%jz;'S%j;'S;=`%{<%lO%jjIkSsYOy%jz;'S%j;'S;=`%{<%lO%jfI|U$XUOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%jjJeSrYOy%jz;'S%j;'S;=`%{<%lO%jfJvU!uQOy%jz!_%j!_!`2n!`;'S%j;'S;=`%{<%lO%j`K]P;=`<%l%Z",tokenizers:[ll,Ol,nl,ol,1,2,3,4,new $e.LocalTokenGroup("m~RRYZ[z{a~~g~aO$T~~dP!P!Qg~lO$U~~",28,142)],topRules:{StyleSheet:[0,6],Styles:[1,116]},dynamicPrecedences:{84:1},specialized:[{term:137,get:t=>dl[t]||-1},{term:138,get:t=>pl[t]||-1},{term:4,get:t=>ul[t]||-1},{term:28,get:t=>hl[t]||-1},{term:136,get:t=>ml[t]||-1}],tokenPrec:2256});var F=require("@codemirror/language"),Xt=require("@lezer/common"),Da=null;function za(){if(!Da&&typeof document=="object"&&document.body){let{style:t}=document.body,e=[],a=new Set;for(let s in t)s!="cssText"&&s!="cssFloat"&&typeof t[s]=="string"&&(/[A-Z]/.test(s)&&(s=s.replace(/[A-Z]/g,i=>"-"+i.toLowerCase())),a.has(s)||(e.push(s),a.add(s)));Da=e.sort().map(s=>({type:"property",label:s,apply:s+": "}))}return Da||[]}var qi=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(t=>({type:"class",label:t})),Wi=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(t=>({type:"keyword",label:t})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(t=>({type:"constant",label:t}))),fl=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(t=>({type:"type",label:t})),gl=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(t=>({type:"keyword",label:t})),be=/^(\w[\w-]*|-\w[\w-]*|)$/,Ql=/^-(-[\w-]*)?$/;function Sl(t,e){var a;if((t.name=="("||t.type.isError)&&(t=t.parent||t),t.name!="ArgList")return!1;let s=(a=t.parent)===null||a===void 0?void 0:a.firstChild;return s?.name!="Callee"?!1:e.sliceString(s.from,s.to)=="var"}var Ii=new Xt.NodeWeakMap,vl=["Declaration"];function $l(t){for(let e=t;;){if(e.type.isTop)return e;if(!(e=e.parent))return t}}function Gi(t,e,a){if(e.to-e.from>4096){let s=Ii.get(e);if(s)return s;let i=[],r=new Set,n=e.cursor(Xt.IterMode.IncludeAnonymous);if(n.firstChild())do for(let o of Gi(t,n.node,a))r.has(o.label)||(r.add(o.label),i.push(o));while(n.nextSibling());return Ii.set(e,i),i}else{let s=[],i=new Set;return e.cursor().iterate(r=>{var n;if(a(r)&&r.matchContext(vl)&&((n=r.node.nextSibling)===null||n===void 0?void 0:n.name)==":"){let o=t.sliceString(r.from,r.to);i.has(o)||(i.add(o),s.push({label:o,type:"variable"}))}}),s}}var bl=t=>e=>{let{state:a,pos:s}=e,i=(0,F.syntaxTree)(a).resolveInner(s,-1),r=i.type.isError&&i.from==i.to-1&&a.doc.sliceString(i.from,i.to)=="-";if(i.name=="PropertyName"||(r||i.name=="TagName")&&/^(Block|Styles)$/.test(i.resolve(i.to).name))return{from:i.from,options:za(),validFor:be};if(i.name=="ValueName")return{from:i.from,options:Wi,validFor:be};if(i.name=="PseudoClassName")return{from:i.from,options:qi,validFor:be};if(t(i)||(e.explicit||r)&&Sl(i,a.doc))return{from:t(i)||r?i.from:s,options:Gi(a.doc,$l(i),t),validFor:Ql};if(i.name=="TagName"){for(let{parent:l}=i;l;l=l.parent)if(l.name=="Block")return{from:i.from,options:za(),validFor:be};return{from:i.from,options:fl,validFor:be}}if(i.name=="AtKeyword")return{from:i.from,options:gl,validFor:be};if(!e.explicit)return null;let n=i.resolve(s),o=n.childBefore(s);return o&&o.name==":"&&n.name=="PseudoClassSelector"?{from:s,options:qi,validFor:be}:o&&o.name==":"&&n.name=="Declaration"||n.name=="ArgList"?{from:s,options:Wi,validFor:be}:n.name=="Block"||n.name=="Styles"?{from:s,options:za(),validFor:be}:null},kl=bl(t=>t.name=="VariableName"),rt=F.LRLanguage.define({name:"css",parser:Vi.configure({props:[F.indentNodeProp.add({Declaration:(0,F.continuedIndent)()}),F.foldNodeProp.add({"Block KeyframeList":F.foldInside})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function Ui(){return new F.LanguageSupport(rt,rt.data.of({autocomplete:kl}))}var te=require("@lezer/lr"),m=require("@lezer/highlight"),Pl=316,yl=317,Ni=1,wl=2,xl=3,Zl=4,Tl=318,Xl=320,Cl=321,_l=5,jl=6,El=0,Ma=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Bi=125,Rl=59,Va=47,Ll=42,Yl=43,Dl=45,zl=60,Al=44,Ml=63,Vl=46,ql=91,Wl=new te.ContextTracker({start:!1,shift(t,e){return e==_l||e==jl||e==Xl?t:e==Cl},strict:!1}),Il=new te.ExternalTokenizer((t,e)=>{let{next:a}=t;(a==Bi||a==-1||e.context)&&t.acceptToken(Tl)},{contextual:!0,fallback:!0}),Gl=new te.ExternalTokenizer((t,e)=>{let{next:a}=t,s;Ma.indexOf(a)>-1||a==Va&&((s=t.peek(1))==Va||s==Ll)||a!=Bi&&a!=Rl&&a!=-1&&!e.context&&t.acceptToken(Pl)},{contextual:!0}),Ul=new te.ExternalTokenizer((t,e)=>{t.next==ql&&!e.context&&t.acceptToken(yl)},{contextual:!0}),Nl=new te.ExternalTokenizer((t,e)=>{let{next:a}=t;if(a==Yl||a==Dl){if(t.advance(),a==t.next){t.advance();let s=!e.context&&e.canShift(Ni);t.acceptToken(s?Ni:wl)}}else a==Ml&&t.peek(1)==Vl&&(t.advance(),t.advance(),(t.next<48||t.next>57)&&t.acceptToken(xl))},{contextual:!0});function Aa(t,e){return t>=65&&t<=90||t>=97&&t<=122||t==95||t>=192||!e&&t>=48&&t<=57}var Bl=new te.ExternalTokenizer((t,e)=>{if(t.next!=zl||!e.dialectEnabled(El)||(t.advance(),t.next==Va))return;let a=0;for(;Ma.indexOf(t.next)>-1;)t.advance(),a++;if(Aa(t.next,!0)){for(t.advance(),a++;Aa(t.next,!1);)t.advance(),a++;for(;Ma.indexOf(t.next)>-1;)t.advance(),a++;if(t.next==Al)return;for(let s=0;;s++){if(s==7){if(!Aa(t.next,!0))return;break}if(t.next!="extends".charCodeAt(s))break;t.advance(),a++}}t.acceptToken(Zl,-a)}),Hl=(0,m.styleTags)({"get set async static":m.tags.modifier,"for while do if else switch try catch finally return throw break continue default case defer":m.tags.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":m.tags.operatorKeyword,"let var const using function class extends":m.tags.definitionKeyword,"import export from":m.tags.moduleKeyword,"with debugger new":m.tags.keyword,TemplateString:m.tags.special(m.tags.string),super:m.tags.atom,BooleanLiteral:m.tags.bool,this:m.tags.self,null:m.tags.null,Star:m.tags.modifier,VariableName:m.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":m.tags.function(m.tags.variableName),VariableDefinition:m.tags.definition(m.tags.variableName),Label:m.tags.labelName,PropertyName:m.tags.propertyName,PrivatePropertyName:m.tags.special(m.tags.propertyName),"CallExpression/MemberExpression/PropertyName":m.tags.function(m.tags.propertyName),"FunctionDeclaration/VariableDefinition":m.tags.function(m.tags.definition(m.tags.variableName)),"ClassDeclaration/VariableDefinition":m.tags.definition(m.tags.className),"NewExpression/VariableName":m.tags.className,PropertyDefinition:m.tags.definition(m.tags.propertyName),PrivatePropertyDefinition:m.tags.definition(m.tags.special(m.tags.propertyName)),UpdateOp:m.tags.updateOperator,"LineComment Hashbang":m.tags.lineComment,BlockComment:m.tags.blockComment,Number:m.tags.number,String:m.tags.string,Escape:m.tags.escape,ArithOp:m.tags.arithmeticOperator,LogicOp:m.tags.logicOperator,BitOp:m.tags.bitwiseOperator,CompareOp:m.tags.compareOperator,RegExp:m.tags.regexp,Equals:m.tags.definitionOperator,Arrow:m.tags.function(m.tags.punctuation),": Spread":m.tags.punctuation,"( )":m.tags.paren,"[ ]":m.tags.squareBracket,"{ }":m.tags.brace,"InterpolationStart InterpolationEnd":m.tags.special(m.tags.brace),".":m.tags.derefOperator,", ;":m.tags.separator,"@":m.tags.meta,TypeName:m.tags.typeName,TypeDefinition:m.tags.definition(m.tags.typeName),"type enum interface implements namespace module declare":m.tags.definitionKeyword,"abstract global Privacy readonly override":m.tags.modifier,"is keyof unique infer asserts":m.tags.operatorKeyword,JSXAttributeValue:m.tags.attributeValue,JSXText:m.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":m.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":m.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":m.tags.attributeName,"JSXBuiltin/JSXIdentifier":m.tags.standard(m.tags.tagName)}),Fl={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},Jl={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},Kl={__proto__:null,"<":193},Hi=te.LRParser.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-EtOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-EPO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-ERQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<VO!l$xO#jROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!OVO!l$xO#jVO!l$xO#jROe!iOpkOrPO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]VO!l$xO#j^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOrROe!iOpkOrPO(T)]O(VTO(YUO(aVO(o[O~O!]WO!l$xO#jgPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{SU+P%]S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mR>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o>UPS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;kP>X>Y>]>^T)z$u){V+P%]S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`SS#q]SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uSSR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:mSR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:mSQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:oS)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mSS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:mST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:mS#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^Q+T%aQ/c*Oo4OP>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^n=rTQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k]>^o4OP>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f]>^nZ>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f]>^nZ>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.lPQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.nSR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:Wl,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[Hl],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[Gl,Ul,Nl,Bl,2,3,4,5,6,7,8,9,10,11,12,13,14,Il,new te.LocalTokenGroup("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new te.LocalTokenGroup("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:t=>Fl[t]||-1},{term:343,get:t=>Jl[t]||-1},{term:95,get:t=>Kl[t]||-1}],tokenPrec:15201});var R=require("@codemirror/language"),er=require("@codemirror/state"),tr=require("@codemirror/view"),A=require("@codemirror/autocomplete"),Ct=require("@lezer/common"),ar=[(0,A.snippetCompletion)("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,A.snippetCompletion)("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,A.snippetCompletion)(`try { \${} } catch (\${error}) { \${} @@ -15,16 +15,18 @@ var ra=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var Ln=Objec constructor(\${params}) { \${} } -}`,{label:"class",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,A.snippetCompletion)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],Jl=tr.concat([(0,A.snippetCompletion)("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Hi=new Ct.NodeWeakMap,ar=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function nt(t){return(e,a)=>{let s=e.node.getChild("VariableDefinition");return s&&a(s,t),!0}}var Kl=["FunctionDeclaration"],eO={FunctionDeclaration:nt("function"),ClassDeclaration:nt("class"),ClassExpression:()=>!0,EnumDeclaration:nt("constant"),TypeAliasDeclaration:nt("type"),NamespaceDeclaration:nt("namespace"),VariableDefinition(t,e){t.matchContext(Kl)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function sr(t,e){let a=Hi.get(e);if(a)return a;let s=[],i=!0;function r(n,o){let l=t.sliceString(n.from,n.to);s.push({label:l,type:o})}return e.cursor(Ct.IterMode.IncludeAnonymous).iterate(n=>{if(i)i=!1;else if(n.name){let o=eO[n.name];if(o&&o(n,r)||ar.has(n.name))return!1}else if(n.to-n.from>8192){for(let o of sr(t,n.node))s.push(o);return!1}}),Hi.set(e,s),s}var Fi=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,ir=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function tO(t){let e=(0,R.syntaxTree)(t.state).resolveInner(t.pos,-1);if(ir.indexOf(e.name)>-1)return null;let a=e.name=="VariableName"||e.to-e.from<20&&Fi.test(t.state.sliceDoc(e.from,e.to));if(!a&&!t.explicit)return null;let s=[];for(let i=e;i;i=i.parent)ar.has(i.name)&&(s=s.concat(sr(t.state.doc,i)));return{options:s,from:a?e.from:t.pos,validFor:Fi}}var Oe=R.LRLanguage.define({name:"javascript",parser:Bi.configure({props:[R.indentNodeProp.add({IfStatement:(0,R.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,R.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:R.flatIndent,SwitchBody:t=>{let e=t.textAfter,a=/^\s*\}/.test(e),s=/^\s*(case|default)\b/.test(e);return t.baseIndent+(a?0:s?1:2)*t.unit},Block:(0,R.delimitedIndent)({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,R.continuedIndent)({except:/^\s*{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),R.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":R.foldInside,BlockComment(t){return{from:t.from+2,to:t.to-2}},JSXElement(t){let e=t.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let a=t.lastChild;return{from:e.to,to:a.type.isError?t.to:a.from}},"JSXSelfClosingTag JSXOpenTag"(t){var e;let a=(e=t.firstChild)===null||e===void 0?void 0:e.nextSibling,s=t.lastChild;return!a||a.type.isError?null:{from:a.to,to:s.type.isError?t.to:s.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),rr={test:t=>/^JSX/.test(t.name),facet:(0,R.defineLanguageFacet)({commentTokens:{block:{open:"{/*",close:"*/}"}}})},qa=Oe.configure({dialect:"ts"},"typescript"),Wa=Oe.configure({dialect:"jsx",props:[R.sublanguageProp.add(t=>t.isTop?[rr]:void 0)]}),Ia=Oe.configure({dialect:"jsx ts",props:[R.sublanguageProp.add(t=>t.isTop?[rr]:void 0)]},"typescript"),nr=t=>({label:t,type:"keyword"}),or="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(nr),aO=or.concat(["declare","implements","private","protected","public"].map(nr));function lr(t={}){let e=t.jsx?t.typescript?Ia:Wa:t.typescript?qa:Oe,a=t.typescript?Jl.concat(aO):tr.concat(or);return new R.LanguageSupport(e,[Oe.data.of({autocomplete:(0,A.ifNotIn)(ir,(0,A.completeFromList)(a))}),Oe.data.of({autocomplete:tO}),t.jsx?rO:[]])}function sO(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function Ji(t,e,a=t.length){for(let s=e?.firstChild;s;s=s.nextSibling)if(s.name=="JSXIdentifier"||s.name=="JSXBuiltin"||s.name=="JSXNamespacedName"||s.name=="JSXMemberExpression")return t.sliceString(s.from,Math.min(s.to,a));return""}var iO=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),rO=er.EditorView.inputHandler.of((t,e,a,s,i)=>{if((iO?t.composing:t.compositionStarted)||t.state.readOnly||e!=a||s!=">"&&s!="/"||!Oe.isActiveAt(t.state,e,-1))return!1;let r=i(),{state:n}=r,o=n.changeByRange(l=>{var O;let{head:c}=l,d=(0,R.syntaxTree)(n).resolveInner(c-1,-1),p;if(d.name=="JSXStartTag"&&(d=d.parent),!(n.doc.sliceString(c-1,c)!=s||d.name=="JSXAttributeValue"&&d.to>c)){if(s==">"&&d.name=="JSXFragmentTag")return{range:l,changes:{from:c,insert:""}};if(s=="/"&&d.name=="JSXStartCloseTag"){let u=d.parent,g=u.parent;if(g&&u.from==c-2&&((p=Ji(n.doc,g.firstChild,c))||((O=g.firstChild)===null||O===void 0?void 0:O.name)=="JSXFragmentTag")){let f=`${p}>`;return{range:Ki.EditorSelection.cursor(c+f.length,-1),changes:{from:c,insert:f}}}}else if(s==">"){let u=sO(d);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(n.doc.sliceString(c,c+2))&&(p=Ji(n.doc,u,c)))return{range:l,changes:{from:c,insert:``}}}}return{range:l}});return o.changes.empty?!1:(t.dispatch([r,n.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var pr=require("@codemirror/view"),ur=require("@codemirror/state"),se=require("@codemirror/language"),ot=["_blank","_self","_top","_parent"],Ga=["ascii","utf-8","utf-16","latin1","latin1"],Ua=["get","post","put","delete"],Na=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ae=["true","false"],S={},nO={a:{attrs:{href:null,ping:null,type:null,media:null,target:ot,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:ot}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Na,formmethod:Ua,formnovalidate:["novalidate"],formtarget:ot,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Ga,autocomplete:["on","off"],enctype:Na,method:Ua,novalidate:["novalidate"],target:ot}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Na,formmethod:Ua,formnovalidate:["novalidate"],formtarget:ot,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Ga,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Ga}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},hr={accesskey:null,class:null,contenteditable:ae,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ae,autocorrect:ae,autocapitalize:ae,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ae,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ae,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ae,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ae,"aria-hidden":ae,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ae,"aria-multiselectable":ae,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ae,"aria-relevant":null,"aria-required":ae,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},mr="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of mr)hr[t]=null;var Le=class{constructor(e,a){this.tags={...nO,...e},this.globalAttrs={...hr,...a},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};Le.default=new Le;function Me(t,e,a=t.length){if(!e)return"";let s=e.firstChild,i=s&&s.getChild("TagName");return i?t.sliceString(i.from,Math.min(i.to,a)):""}function Ve(t,e=!1){for(;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function fr(t,e,a){let s=a.tags[Me(t,Ve(e))];return s?.children||a.allTags}function Ba(t,e){let a=[];for(let s=Ve(e);s&&!s.type.isTop;s=Ve(s.parent)){let i=Me(t,s);if(i&&s.lastChild.name=="CloseTag")break;i&&a.indexOf(i)<0&&(e.name=="EndTag"||e.from>=s.firstChild.to)&&a.push(i)}return a}var gr=/^[:\-\.\w\u00b7-\uffff]*$/;function Or(t,e,a,s,i){let r=/\s*>/.test(t.sliceDoc(i,i+5))?"":">",n=Ve(a,a.name=="StartTag"||a.name=="TagName");return{from:s,to:i,options:fr(t.doc,n,e).map(o=>({label:o,type:"type"})).concat(Ba(t.doc,a).map((o,l)=>({label:"/"+o,apply:"/"+o+r,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function cr(t,e,a,s){let i=/\s*>/.test(t.sliceDoc(s,s+5))?"":">";return{from:a,to:s,options:Ba(t.doc,e).map((r,n)=>({label:r,apply:r+i,type:"type",boost:99-n})),validFor:gr}}function oO(t,e,a,s){let i=[],r=0;for(let n of fr(t.doc,a,e))i.push({label:"<"+n,type:"type"});for(let n of Ba(t.doc,a))i.push({label:"",type:"type",boost:99-r++});return{from:s,to:s,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function lO(t,e,a,s,i){let r=Ve(a),n=r?e.tags[Me(t.doc,r)]:null,o=n&&n.attrs?Object.keys(n.attrs):[],l=n&&n.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:s,to:i,options:l.map(O=>({label:O,type:"property"})),validFor:gr}}function OO(t,e,a,s,i){var r;let n=(r=a.parent)===null||r===void 0?void 0:r.getChild("AttributeName"),o=[],l;if(n){let O=t.sliceDoc(n.from,n.to),c=e.globalAttrs[O];if(!c){let d=Ve(a),p=d?e.tags[Me(t.doc,d)]:null;c=p?.attrs&&p.attrs[O]}if(c){let d=t.sliceDoc(s,i).toLowerCase(),p='"',u='"';/^['"]/.test(d)?(l=d[0]=='"'?/^[^"]*$/:/^[^']*$/,p="",u=t.sliceDoc(i,i+1)==d[0]?"":d[0],d=d.slice(1),s++):l=/^[^\s<>='"]*$/;for(let g of c)o.push({label:g,apply:p+g+u,type:"constant"})}}return{from:s,to:i,options:o,validFor:l}}function Qr(t,e){let{state:a,pos:s}=e,i=(0,se.syntaxTree)(a).resolveInner(s,-1),r=i.resolve(s);for(let n=s,o;r==i&&(o=i.childBefore(n));){let l=o.lastChild;if(!l||!l.type.isError||l.fromQr(s,i)}var dO=Oe.parser.configure({top:"SingleExpression"}),vr=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:qa.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:Wa.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:Ia.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:dO},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:Oe.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:rt.parser}],$r=[{name:"style",parser:rt.parser.configure({top:"Styles"})}].concat(mr.map(t=>({name:t,parser:Oe.parser}))),br=se.LRLanguage.define({name:"html",parser:ji.configure({props:[se.indentNodeProp.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].lengtht.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),_t=br.configure({wrap:La(vr,$r)});function kr(t={}){let e="",a;t.matchClosingTags===!1&&(e="noMatch"),t.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(a=La((t.nestedLanguages||[]).concat(vr),(t.nestedAttributes||[]).concat($r)));let s=a?br.configure({wrap:a,dialect:e}):e?_t.configure({dialect:e}):_t;return new se.LanguageSupport(s,[_t.data.of({autocomplete:cO(t)}),t.autoCloseTags!==!1?pO:[],lr().support,Gi().support])}var dr=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),pO=pr.EditorView.inputHandler.of((t,e,a,s,i)=>{if(t.composing||t.state.readOnly||e!=a||s!=">"&&s!="/"||!_t.isActiveAt(t.state,e,-1))return!1;let r=i(),{state:n}=r,o=n.changeByRange(l=>{var O,c,d;let p=n.doc.sliceString(l.from-1,l.to)==s,{head:u}=l,g=(0,se.syntaxTree)(n).resolveInner(u,-1),f;if(p&&s==">"&&g.name=="EndTag"){let w=g.parent;if(((c=(O=w.parent)===null||O===void 0?void 0:O.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(f=Me(n.doc,w.parent,u))&&!dr.has(f)){let P=u+(n.doc.sliceString(u,u+1)===">"?1:0),Z=``;return{range:l,changes:{from:u,to:P,insert:Z}}}}else if(p&&s=="/"&&g.name=="IncompleteCloseTag"){let w=g.parent;if(g.from==u-2&&((d=w.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(f=Me(n.doc,w,u))&&!dr.has(f)){let P=u+(n.doc.sliceString(u,u+1)===">"?1:0),Z=`${f}>`;return{range:ur.EditorSelection.cursor(u+Z.length,-1),changes:{from:u,to:P,insert:Z}}}}return{range:l}});return o.changes.empty?!1:(t.dispatch([r,n.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var xr=require("@lezer/common"),Zr=(0,_.defineLanguageFacet)({commentTokens:{block:{open:""}}}),Tr=new xr.NodeProp,Xr=li.configure({props:[_.foldNodeProp.add(t=>!t.is("Block")||t.is("Document")||Ja(t)!=null||uO(t)?void 0:(e,a)=>({from:a.doc.lineAt(e.from).to,to:e.to})),Tr.add(Ja),_.indentNodeProp.add({Document:()=>null}),_.languageDataProp.add({Document:Zr})]});function Ja(t){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(t.name);return e?+e[1]:void 0}function uO(t){return t.name=="OrderedList"||t.name=="BulletList"}function hO(t,e){let a=t;for(;;){let s=a.nextSibling,i;if(!s||(i=Ja(s.type))!=null&&i<=e)break;a=s}return a.to}var mO=_.foldService.of((t,e,a)=>{for(let s=(0,_.syntaxTree)(t).resolveInner(a,-1);s&&!(s.froma)return{from:a,to:r}}return null});function Ka(t){return new _.Language(Zr,t,[],"markdown")}var fO=Ka(Xr),gO=Xr.configure([di,hi,ui,mi,{props:[_.foldNodeProp.add({Table:(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}]),jt=Ka(gO);function QO(t,e){return a=>{if(a&&t){let s=null;if(a=/\S*/.exec(a)[0],typeof t=="function"?s=t(a):s=_.LanguageDescription.matchLanguageName(t,a,!0),s instanceof _.LanguageDescription)return s.support?s.support.language.parser:_.ParseContext.getSkippingParser(s.load());if(s)return s.parser}return e?e.parser:null}}var lt=class{constructor(e,a,s,i,r,n,o){this.node=e,this.from=a,this.to=s,this.spaceBefore=i,this.spaceAfter=r,this.type=n,this.item=o}blank(e,a=!0){let s=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;s.length0;i--)s+=" ";return s+(a?this.spaceAfter:"")}}marker(e,a){let s=this.node.name=="OrderedList"?String(+_r(this.item,e)[2]+a):"";return this.spaceBefore+s+this.type+this.spaceAfter}};function Cr(t,e){let a=[],s=[];for(let i=t;i;i=i.parent){if(i.name=="FencedCode")return s;(i.name=="ListItem"||i.name=="Blockquote")&&a.push(i)}for(let i=a.length-1;i>=0;i--){let r=a[i],n,o=e.lineAt(r.from),l=r.from-o.from;if(r.name=="Blockquote"&&(n=/^ *>( ?)/.exec(o.text.slice(l))))s.push(new lt(r,l,l+n[0].length,"",n[1],">",null));else if(r.name=="ListItem"&&r.parent.name=="OrderedList"&&(n=/^( *)\d+([.)])( *)/.exec(o.text.slice(l)))){let O=n[3],c=n[0].length;O.length>=4&&(O=O.slice(0,O.length-4),c-=4),s.push(new lt(r.parent,l,l+c,n[1],O,n[2],r))}else if(r.name=="ListItem"&&r.parent.name=="BulletList"&&(n=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(o.text.slice(l)))){let O=n[4],c=n[0].length;O.length>4&&(O=O.slice(0,O.length-4),c-=4);let d=n[2];n[3]&&(d+=n[3].replace(/[xX]/," ")),s.push(new lt(r.parent,l,l+c,n[1],O,d,r))}}return s}function _r(t,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(t.from,t.from+10))}function Ha(t,e,a,s=0){for(let i=-1,r=t;;){if(r.name=="ListItem"){let o=_r(r,e),l=+o[2];if(i>=0){if(l!=i+1)return;a.push({from:r.from+o[1].length,to:r.from+o[0].length,insert:String(i+2+s)})}i=l}let n=r.nextSibling;if(!n)break;r=n}}function es(t,e){let a=/^[ \t]*/.exec(t)[0].length;if(!a||e.facet(_.indentUnit)!=" ")return t;let s=(0,I.countColumn)(t,4,a),i="";for(let r=s;r>0;)r>=4?(i+=" ",r-=4):(i+=" ",r--);return i+t.slice(a)}var SO=(t={})=>({state:e,dispatch:a})=>{let s=(0,_.syntaxTree)(e),{doc:i}=e,r=null,n=e.changeByRange(o=>{if(!o.empty||!jt.isActiveAt(e,o.from,-1)&&!jt.isActiveAt(e,o.from,1))return r={range:o};let l=o.from,O=i.lineAt(l),c=Cr(s.resolveInner(l,-1),i);for(;c.length&&c[c.length-1].from>l-O.from;)c.pop();if(!c.length)return r={range:o};let d=c[c.length-1];if(d.to-d.spaceAfter.length>l-O.from)return r={range:o};let p=l>=d.to-d.spaceAfter.length&&!/\S/.test(O.text.slice(d.to));if(d.item&&p){let P=d.node.firstChild,Z=d.node.getChild("ListItem","ListItem");if(P.to>=l||Z&&Z.to0&&!/[^\s>]/.test(i.lineAt(O.from-1).text)||t.nonTightLists===!1){let Y=c.length>1?c[c.length-2]:null,Qe,Xe="";Y&&Y.item?(Qe=O.from+Y.from,Xe=Y.marker(i,1)):Qe=O.from+(Y?Y.to:0);let He=[{from:Qe,to:l,insert:Xe}];return d.node.name=="OrderedList"&&Ha(d.item,i,He,-2),Y&&Y.node.name=="OrderedList"&&Ha(Y.item,i,He),{range:I.EditorSelection.cursor(Qe+Xe.length),changes:He}}else{let Y=yr(c,e,O);return{range:I.EditorSelection.cursor(l+Y.length+1),changes:{from:O.from,insert:Y+e.lineBreak}}}}if(d.node.name=="Blockquote"&&p&&O.from){let P=i.lineAt(O.from-1),Z=/>\s*$/.exec(P.text);if(Z&&Z.index==d.from){let Y=e.changes([{from:P.from+Z.index,to:P.to},{from:O.from+d.from,to:O.to}]);return{range:o.map(Y),changes:Y}}}let u=[];d.node.name=="OrderedList"&&Ha(d.item,i,u);let g=d.item&&d.item.from]*/.exec(O.text)[0].length>=d.to)for(let P=0,Z=c.length-1;P<=Z;P++)f+=P==Z&&!g?c[P].marker(i,1):c[P].blank(PO.from&&/\s/.test(O.text.charAt(w-O.from-1));)w--;return f=es(f,e),$O(d.node,e.doc)&&(f=yr(c,e,O)+e.lineBreak+f),u.push({from:w,to:l,insert:e.lineBreak+f}),{range:I.EditorSelection.cursor(w+f.length+1),changes:u}});return r?!1:(a(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0)},vO=SO();function Pr(t){return t.name=="QuoteMark"||t.name=="ListMark"}function $O(t,e){if(t.name!="OrderedList"&&t.name!="BulletList")return!1;let a=t.firstChild,s=t.getChild("ListItem","ListItem");if(!s)return!1;let i=e.lineAt(a.to),r=e.lineAt(s.from),n=/^[\s>]*$/.test(i.text);return i.number+(n?0:1){let a=(0,_.syntaxTree)(t),s=null,i=t.changeByRange(r=>{let n=r.from,{doc:o}=t;if(r.empty&&jt.isActiveAt(t,r.from)){let l=o.lineAt(n),O=Cr(bO(a,n),o);if(O.length){let c=O[O.length-1],d=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(n-l.from>d&&!/\S/.test(l.text.slice(d,n-l.from)))return{range:I.EditorSelection.cursor(l.from+d),changes:{from:l.from+d,to:n}};if(n-l.from==d&&(!c.item||l.from<=c.item.from||!/\S/.test(l.text.slice(0,c.to)))){let p=l.from+c.from;if(c.item&&c.node.from{var a;let{main:s}=e.state.selection;if(s.empty)return!1;let i=(a=t.clipboardData)===null||a===void 0?void 0:a.getData("text/plain");if(!i||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(i)||(/^www\./.test(i)&&(i="https://"+i),!jt.isActiveAt(e.state,s.from,1)))return!1;let r=(0,_.syntaxTree)(e.state),n=!1;return r.iterate({from:s.from,to:s.to,enter:o=>{(o.from>s.from||xO.test(o.name))&&(n=!0)},leave:o=>{o.to{let e=[],a=t.state.doc.toString();if(!a.startsWith("---"))return e;let s=a.indexOf(` +}`,{label:"class",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,A.snippetCompletion)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],eO=ar.concat([(0,A.snippetCompletion)("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,A.snippetCompletion)("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),Fi=new Ct.NodeWeakMap,sr=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function nt(t){return(e,a)=>{let s=e.node.getChild("VariableDefinition");return s&&a(s,t),!0}}var tO=["FunctionDeclaration"],aO={FunctionDeclaration:nt("function"),ClassDeclaration:nt("class"),ClassExpression:()=>!0,EnumDeclaration:nt("constant"),TypeAliasDeclaration:nt("type"),NamespaceDeclaration:nt("namespace"),VariableDefinition(t,e){t.matchContext(tO)||e(t,"variable")},TypeDefinition(t,e){e(t,"type")},__proto__:null};function ir(t,e){let a=Fi.get(e);if(a)return a;let s=[],i=!0;function r(n,o){let l=t.sliceString(n.from,n.to);s.push({label:l,type:o})}return e.cursor(Ct.IterMode.IncludeAnonymous).iterate(n=>{if(i)i=!1;else if(n.name){let o=aO[n.name];if(o&&o(n,r)||sr.has(n.name))return!1}else if(n.to-n.from>8192){for(let o of ir(t,n.node))s.push(o);return!1}}),Fi.set(e,s),s}var Ji=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,rr=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function sO(t){let e=(0,R.syntaxTree)(t.state).resolveInner(t.pos,-1);if(rr.indexOf(e.name)>-1)return null;let a=e.name=="VariableName"||e.to-e.from<20&&Ji.test(t.state.sliceDoc(e.from,e.to));if(!a&&!t.explicit)return null;let s=[];for(let i=e;i;i=i.parent)sr.has(i.name)&&(s=s.concat(ir(t.state.doc,i)));return{options:s,from:a?e.from:t.pos,validFor:Ji}}var Oe=R.LRLanguage.define({name:"javascript",parser:Hi.configure({props:[R.indentNodeProp.add({IfStatement:(0,R.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,R.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:R.flatIndent,SwitchBody:t=>{let e=t.textAfter,a=/^\s*\}/.test(e),s=/^\s*(case|default)\b/.test(e);return t.baseIndent+(a?0:s?1:2)*t.unit},Block:(0,R.delimitedIndent)({closing:"}"}),ArrowFunction:t=>t.baseIndent+t.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,R.continuedIndent)({except:/^\s*{/}),JSXElement(t){let e=/^\s*<\//.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},JSXEscape(t){let e=/\s*\}/.test(t.textAfter);return t.lineIndent(t.node.from)+(e?0:t.unit)},"JSXOpenTag JSXSelfClosingTag"(t){return t.column(t.node.from)+t.unit}}),R.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":R.foldInside,BlockComment(t){return{from:t.from+2,to:t.to-2}},JSXElement(t){let e=t.firstChild;if(!e||e.name=="JSXSelfClosingTag")return null;let a=t.lastChild;return{from:e.to,to:a.type.isError?t.to:a.from}},"JSXSelfClosingTag JSXOpenTag"(t){var e;let a=(e=t.firstChild)===null||e===void 0?void 0:e.nextSibling,s=t.lastChild;return!a||a.type.isError?null:{from:a.to,to:s.type.isError?t.to:s.from}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),nr={test:t=>/^JSX/.test(t.name),facet:(0,R.defineLanguageFacet)({commentTokens:{block:{open:"{/*",close:"*/}"}}})},qa=Oe.configure({dialect:"ts"},"typescript"),Wa=Oe.configure({dialect:"jsx",props:[R.sublanguageProp.add(t=>t.isTop?[nr]:void 0)]}),Ia=Oe.configure({dialect:"jsx ts",props:[R.sublanguageProp.add(t=>t.isTop?[nr]:void 0)]},"typescript"),or=t=>({label:t,type:"keyword"}),lr="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(or),iO=lr.concat(["declare","implements","private","protected","public"].map(or));function Or(t={}){let e=t.jsx?t.typescript?Ia:Wa:t.typescript?qa:Oe,a=t.typescript?eO.concat(iO):ar.concat(lr);return new R.LanguageSupport(e,[Oe.data.of({autocomplete:(0,A.ifNotIn)(rr,(0,A.completeFromList)(a))}),Oe.data.of({autocomplete:sO}),t.jsx?oO:[]])}function rO(t){for(;;){if(t.name=="JSXOpenTag"||t.name=="JSXSelfClosingTag"||t.name=="JSXFragmentTag")return t;if(t.name=="JSXEscape"||!t.parent)return null;t=t.parent}}function Ki(t,e,a=t.length){for(let s=e?.firstChild;s;s=s.nextSibling)if(s.name=="JSXIdentifier"||s.name=="JSXBuiltin"||s.name=="JSXNamespacedName"||s.name=="JSXMemberExpression")return t.sliceString(s.from,Math.min(s.to,a));return""}var nO=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),oO=tr.EditorView.inputHandler.of((t,e,a,s,i)=>{if((nO?t.composing:t.compositionStarted)||t.state.readOnly||e!=a||s!=">"&&s!="/"||!Oe.isActiveAt(t.state,e,-1))return!1;let r=i(),{state:n}=r,o=n.changeByRange(l=>{var O;let{head:c}=l,d=(0,R.syntaxTree)(n).resolveInner(c-1,-1),p;if(d.name=="JSXStartTag"&&(d=d.parent),!(n.doc.sliceString(c-1,c)!=s||d.name=="JSXAttributeValue"&&d.to>c)){if(s==">"&&d.name=="JSXFragmentTag")return{range:l,changes:{from:c,insert:""}};if(s=="/"&&d.name=="JSXStartCloseTag"){let u=d.parent,g=u.parent;if(g&&u.from==c-2&&((p=Ki(n.doc,g.firstChild,c))||((O=g.firstChild)===null||O===void 0?void 0:O.name)=="JSXFragmentTag")){let f=`${p}>`;return{range:er.EditorSelection.cursor(c+f.length,-1),changes:{from:c,insert:f}}}}else if(s==">"){let u=rO(d);if(u&&u.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(n.doc.sliceString(c,c+2))&&(p=Ki(n.doc,u,c)))return{range:l,changes:{from:c,insert:``}}}}return{range:l}});return o.changes.empty?!1:(t.dispatch([r,n.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var ur=require("@codemirror/view"),hr=require("@codemirror/state"),se=require("@codemirror/language"),ot=["_blank","_self","_top","_parent"],Ga=["ascii","utf-8","utf-16","latin1","latin1"],Ua=["get","post","put","delete"],Na=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ae=["true","false"],S={},lO={a:{attrs:{href:null,ping:null,type:null,media:null,target:ot,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:ot}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Na,formmethod:Ua,formnovalidate:["novalidate"],formtarget:ot,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Ga,autocomplete:["on","off"],enctype:Na,method:Ua,novalidate:["novalidate"],target:ot}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Na,formmethod:Ua,formnovalidate:["novalidate"],formtarget:ot,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Ga,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Ga}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},mr={accesskey:null,class:null,contenteditable:ae,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ae,autocorrect:ae,autocapitalize:ae,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ae,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ae,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ae,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ae,"aria-hidden":ae,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ae,"aria-multiselectable":ae,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ae,"aria-relevant":null,"aria-required":ae,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},fr="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(t=>"on"+t);for(let t of fr)mr[t]=null;var Le=class{constructor(e,a){this.tags={...lO,...e},this.globalAttrs={...mr,...a},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};Le.default=new Le;function Me(t,e,a=t.length){if(!e)return"";let s=e.firstChild,i=s&&s.getChild("TagName");return i?t.sliceString(i.from,Math.min(i.to,a)):""}function Ve(t,e=!1){for(;t;t=t.parent)if(t.name=="Element")if(e)e=!1;else return t;return null}function gr(t,e,a){let s=a.tags[Me(t,Ve(e))];return s?.children||a.allTags}function Ba(t,e){let a=[];for(let s=Ve(e);s&&!s.type.isTop;s=Ve(s.parent)){let i=Me(t,s);if(i&&s.lastChild.name=="CloseTag")break;i&&a.indexOf(i)<0&&(e.name=="EndTag"||e.from>=s.firstChild.to)&&a.push(i)}return a}var Qr=/^[:\-\.\w\u00b7-\uffff]*$/;function cr(t,e,a,s,i){let r=/\s*>/.test(t.sliceDoc(i,i+5))?"":">",n=Ve(a,a.name=="StartTag"||a.name=="TagName");return{from:s,to:i,options:gr(t.doc,n,e).map(o=>({label:o,type:"type"})).concat(Ba(t.doc,a).map((o,l)=>({label:"/"+o,apply:"/"+o+r,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function dr(t,e,a,s){let i=/\s*>/.test(t.sliceDoc(s,s+5))?"":">";return{from:a,to:s,options:Ba(t.doc,e).map((r,n)=>({label:r,apply:r+i,type:"type",boost:99-n})),validFor:Qr}}function OO(t,e,a,s){let i=[],r=0;for(let n of gr(t.doc,a,e))i.push({label:"<"+n,type:"type"});for(let n of Ba(t.doc,a))i.push({label:"",type:"type",boost:99-r++});return{from:s,to:s,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function cO(t,e,a,s,i){let r=Ve(a),n=r?e.tags[Me(t.doc,r)]:null,o=n&&n.attrs?Object.keys(n.attrs):[],l=n&&n.globalAttrs===!1?o:o.length?o.concat(e.globalAttrNames):e.globalAttrNames;return{from:s,to:i,options:l.map(O=>({label:O,type:"property"})),validFor:Qr}}function dO(t,e,a,s,i){var r;let n=(r=a.parent)===null||r===void 0?void 0:r.getChild("AttributeName"),o=[],l;if(n){let O=t.sliceDoc(n.from,n.to),c=e.globalAttrs[O];if(!c){let d=Ve(a),p=d?e.tags[Me(t.doc,d)]:null;c=p?.attrs&&p.attrs[O]}if(c){let d=t.sliceDoc(s,i).toLowerCase(),p='"',u='"';/^['"]/.test(d)?(l=d[0]=='"'?/^[^"]*$/:/^[^']*$/,p="",u=t.sliceDoc(i,i+1)==d[0]?"":d[0],d=d.slice(1),s++):l=/^[^\s<>='"]*$/;for(let g of c)o.push({label:g,apply:p+g+u,type:"constant"})}}return{from:s,to:i,options:o,validFor:l}}function Sr(t,e){let{state:a,pos:s}=e,i=(0,se.syntaxTree)(a).resolveInner(s,-1),r=i.resolve(s);for(let n=s,o;r==i&&(o=i.childBefore(n));){let l=o.lastChild;if(!l||!l.type.isError||l.fromSr(s,i)}var uO=Oe.parser.configure({top:"SingleExpression"}),$r=[{tag:"script",attrs:t=>t.type=="text/typescript"||t.lang=="ts",parser:qa.parser},{tag:"script",attrs:t=>t.type=="text/babel"||t.type=="text/jsx",parser:Wa.parser},{tag:"script",attrs:t=>t.type=="text/typescript-jsx",parser:Ia.parser},{tag:"script",attrs(t){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(t.type)},parser:uO},{tag:"script",attrs(t){return!t.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(t.type)},parser:Oe.parser},{tag:"style",attrs(t){return(!t.lang||t.lang=="css")&&(!t.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(t.type))},parser:rt.parser}],br=[{name:"style",parser:rt.parser.configure({top:"Styles"})}].concat(fr.map(t=>({name:t,parser:Oe.parser}))),kr=se.LRLanguage.define({name:"html",parser:Ei.configure({props:[se.indentNodeProp.add({Element(t){let e=/^(\s*)(<\/)?/.exec(t.textAfter);return t.node.to<=t.pos+e[0].length?t.continue():t.lineIndent(t.node.from)+(e[2]?0:t.unit)},"OpenTag CloseTag SelfClosingTag"(t){return t.column(t.node.from)+t.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].lengtht.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),_t=kr.configure({wrap:La($r,br)});function Pr(t={}){let e="",a;t.matchClosingTags===!1&&(e="noMatch"),t.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(a=La((t.nestedLanguages||[]).concat($r),(t.nestedAttributes||[]).concat(br)));let s=a?kr.configure({wrap:a,dialect:e}):e?_t.configure({dialect:e}):_t;return new se.LanguageSupport(s,[_t.data.of({autocomplete:pO(t)}),t.autoCloseTags!==!1?hO:[],Or().support,Ui().support])}var pr=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),hO=ur.EditorView.inputHandler.of((t,e,a,s,i)=>{if(t.composing||t.state.readOnly||e!=a||s!=">"&&s!="/"||!_t.isActiveAt(t.state,e,-1))return!1;let r=i(),{state:n}=r,o=n.changeByRange(l=>{var O,c,d;let p=n.doc.sliceString(l.from-1,l.to)==s,{head:u}=l,g=(0,se.syntaxTree)(n).resolveInner(u,-1),f;if(p&&s==">"&&g.name=="EndTag"){let w=g.parent;if(((c=(O=w.parent)===null||O===void 0?void 0:O.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(f=Me(n.doc,w.parent,u))&&!pr.has(f)){let P=u+(n.doc.sliceString(u,u+1)===">"?1:0),Z=``;return{range:l,changes:{from:u,to:P,insert:Z}}}}else if(p&&s=="/"&&g.name=="IncompleteCloseTag"){let w=g.parent;if(g.from==u-2&&((d=w.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(f=Me(n.doc,w,u))&&!pr.has(f)){let P=u+(n.doc.sliceString(u,u+1)===">"?1:0),Z=`${f}>`;return{range:hr.EditorSelection.cursor(u+Z.length,-1),changes:{from:u,to:P,insert:Z}}}}return{range:l}});return o.changes.empty?!1:(t.dispatch([r,n.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});var Zr=require("@lezer/common"),Tr=(0,_.defineLanguageFacet)({commentTokens:{block:{open:""}}}),Xr=new Zr.NodeProp,Cr=Oi.configure({props:[_.foldNodeProp.add(t=>!t.is("Block")||t.is("Document")||Ja(t)!=null||mO(t)?void 0:(e,a)=>({from:a.doc.lineAt(e.from).to,to:e.to})),Xr.add(Ja),_.indentNodeProp.add({Document:()=>null}),_.languageDataProp.add({Document:Tr})]});function Ja(t){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(t.name);return e?+e[1]:void 0}function mO(t){return t.name=="OrderedList"||t.name=="BulletList"}function fO(t,e){let a=t;for(;;){let s=a.nextSibling,i;if(!s||(i=Ja(s.type))!=null&&i<=e)break;a=s}return a.to}var gO=_.foldService.of((t,e,a)=>{for(let s=(0,_.syntaxTree)(t).resolveInner(a,-1);s&&!(s.froma)return{from:a,to:r}}return null});function Ka(t){return new _.Language(Tr,t,[],"markdown")}var QO=Ka(Cr),SO=Cr.configure([pi,mi,hi,fi,{props:[_.foldNodeProp.add({Table:(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}]),jt=Ka(SO);function vO(t,e){return a=>{if(a&&t){let s=null;if(a=/\S*/.exec(a)[0],typeof t=="function"?s=t(a):s=_.LanguageDescription.matchLanguageName(t,a,!0),s instanceof _.LanguageDescription)return s.support?s.support.language.parser:_.ParseContext.getSkippingParser(s.load());if(s)return s.parser}return e?e.parser:null}}var lt=class{constructor(e,a,s,i,r,n,o){this.node=e,this.from=a,this.to=s,this.spaceBefore=i,this.spaceAfter=r,this.type=n,this.item=o}blank(e,a=!0){let s=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;s.length0;i--)s+=" ";return s+(a?this.spaceAfter:"")}}marker(e,a){let s=this.node.name=="OrderedList"?String(+jr(this.item,e)[2]+a):"";return this.spaceBefore+s+this.type+this.spaceAfter}};function _r(t,e){let a=[],s=[];for(let i=t;i;i=i.parent){if(i.name=="FencedCode")return s;(i.name=="ListItem"||i.name=="Blockquote")&&a.push(i)}for(let i=a.length-1;i>=0;i--){let r=a[i],n,o=e.lineAt(r.from),l=r.from-o.from;if(r.name=="Blockquote"&&(n=/^ *>( ?)/.exec(o.text.slice(l))))s.push(new lt(r,l,l+n[0].length,"",n[1],">",null));else if(r.name=="ListItem"&&r.parent.name=="OrderedList"&&(n=/^( *)\d+([.)])( *)/.exec(o.text.slice(l)))){let O=n[3],c=n[0].length;O.length>=4&&(O=O.slice(0,O.length-4),c-=4),s.push(new lt(r.parent,l,l+c,n[1],O,n[2],r))}else if(r.name=="ListItem"&&r.parent.name=="BulletList"&&(n=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(o.text.slice(l)))){let O=n[4],c=n[0].length;O.length>4&&(O=O.slice(0,O.length-4),c-=4);let d=n[2];n[3]&&(d+=n[3].replace(/[xX]/," ")),s.push(new lt(r.parent,l,l+c,n[1],O,d,r))}}return s}function jr(t,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(t.from,t.from+10))}function Ha(t,e,a,s=0){for(let i=-1,r=t;;){if(r.name=="ListItem"){let o=jr(r,e),l=+o[2];if(i>=0){if(l!=i+1)return;a.push({from:r.from+o[1].length,to:r.from+o[0].length,insert:String(i+2+s)})}i=l}let n=r.nextSibling;if(!n)break;r=n}}function es(t,e){let a=/^[ \t]*/.exec(t)[0].length;if(!a||e.facet(_.indentUnit)!=" ")return t;let s=(0,I.countColumn)(t,4,a),i="";for(let r=s;r>0;)r>=4?(i+=" ",r-=4):(i+=" ",r--);return i+t.slice(a)}var $O=(t={})=>({state:e,dispatch:a})=>{let s=(0,_.syntaxTree)(e),{doc:i}=e,r=null,n=e.changeByRange(o=>{if(!o.empty||!jt.isActiveAt(e,o.from,-1)&&!jt.isActiveAt(e,o.from,1))return r={range:o};let l=o.from,O=i.lineAt(l),c=_r(s.resolveInner(l,-1),i);for(;c.length&&c[c.length-1].from>l-O.from;)c.pop();if(!c.length)return r={range:o};let d=c[c.length-1];if(d.to-d.spaceAfter.length>l-O.from)return r={range:o};let p=l>=d.to-d.spaceAfter.length&&!/\S/.test(O.text.slice(d.to));if(d.item&&p){let P=d.node.firstChild,Z=d.node.getChild("ListItem","ListItem");if(P.to>=l||Z&&Z.to0&&!/[^\s>]/.test(i.lineAt(O.from-1).text)||t.nonTightLists===!1){let Y=c.length>1?c[c.length-2]:null,Qe,Xe="";Y&&Y.item?(Qe=O.from+Y.from,Xe=Y.marker(i,1)):Qe=O.from+(Y?Y.to:0);let He=[{from:Qe,to:l,insert:Xe}];return d.node.name=="OrderedList"&&Ha(d.item,i,He,-2),Y&&Y.node.name=="OrderedList"&&Ha(Y.item,i,He),{range:I.EditorSelection.cursor(Qe+Xe.length),changes:He}}else{let Y=wr(c,e,O);return{range:I.EditorSelection.cursor(l+Y.length+1),changes:{from:O.from,insert:Y+e.lineBreak}}}}if(d.node.name=="Blockquote"&&p&&O.from){let P=i.lineAt(O.from-1),Z=/>\s*$/.exec(P.text);if(Z&&Z.index==d.from){let Y=e.changes([{from:P.from+Z.index,to:P.to},{from:O.from+d.from,to:O.to}]);return{range:o.map(Y),changes:Y}}}let u=[];d.node.name=="OrderedList"&&Ha(d.item,i,u);let g=d.item&&d.item.from]*/.exec(O.text)[0].length>=d.to)for(let P=0,Z=c.length-1;P<=Z;P++)f+=P==Z&&!g?c[P].marker(i,1):c[P].blank(PO.from&&/\s/.test(O.text.charAt(w-O.from-1));)w--;return f=es(f,e),kO(d.node,e.doc)&&(f=wr(c,e,O)+e.lineBreak+f),u.push({from:w,to:l,insert:e.lineBreak+f}),{range:I.EditorSelection.cursor(w+f.length+1),changes:u}});return r?!1:(a(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0)},bO=$O();function yr(t){return t.name=="QuoteMark"||t.name=="ListMark"}function kO(t,e){if(t.name!="OrderedList"&&t.name!="BulletList")return!1;let a=t.firstChild,s=t.getChild("ListItem","ListItem");if(!s)return!1;let i=e.lineAt(a.to),r=e.lineAt(s.from),n=/^[\s>]*$/.test(i.text);return i.number+(n?0:1){let a=(0,_.syntaxTree)(t),s=null,i=t.changeByRange(r=>{let n=r.from,{doc:o}=t;if(r.empty&&jt.isActiveAt(t,r.from)){let l=o.lineAt(n),O=_r(PO(a,n),o);if(O.length){let c=O[O.length-1],d=c.to-c.spaceAfter.length+(c.spaceAfter?1:0);if(n-l.from>d&&!/\S/.test(l.text.slice(d,n-l.from)))return{range:I.EditorSelection.cursor(l.from+d),changes:{from:l.from+d,to:n}};if(n-l.from==d&&(!c.item||l.from<=c.item.from||!/\S/.test(l.text.slice(0,c.to)))){let p=l.from+c.from;if(c.item&&c.node.from{var a;let{main:s}=e.state.selection;if(s.empty)return!1;let i=(a=t.clipboardData)===null||a===void 0?void 0:a.getData("text/plain");if(!i||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(i)||(/^www\./.test(i)&&(i="https://"+i),!jt.isActiveAt(e.state,s.from,1)))return!1;let r=(0,_.syntaxTree)(e.state),n=!1;return r.iterate({from:s.from,to:s.to,enter:o=>{(o.from>s.from||TO.test(o.name))&&(n=!0)},leave:o=>{o.to{let e=[],a=t.state.doc.toString();if(!a.startsWith("---"))return e;let s=a.indexOf(` ---`,3);if(s===-1)return e.push({from:0,to:3,severity:"error",message:"Unclosed frontmatter block, missing closing ---"}),e;let r=a.slice(4,s).split(` -`),n=4,o=[];for(let l of r){let O=l.match(/^(\w[\w-]*)\s*:(.*)/);if(O){let c=O[1],d=O[2].trim();o.includes(c)&&e.push({from:n,to:n+c.length,severity:"warning",message:`Duplicate key: "${c}"`}),o.push(c),c==="name"&&(d?d.length>64?e.push({from:n,to:n+l.length,severity:"warning",message:`name exceeds 64 chars (${d.length})`}):TO.test(d)||e.push({from:n+c.length+2,to:n+l.length,severity:"warning",message:"name must be lowercase alphanumeric with single hyphens, no leading/trailing hyphens"}):e.push({from:n,to:n+l.length,severity:"error",message:"name is required"})),c==="description"&&(d?d.length>1024&&e.push({from:n,to:n+l.length,severity:"warning",message:`description exceeds 1024 chars (${d.length})`}):e.push({from:n,to:n+l.length,severity:"warning",message:"description is empty"})),c==="compatibility"&&d.length>500&&e.push({from:n,to:n+l.length,severity:"warning",message:`compatibility exceeds 500 chars (${d.length})`})}n+=l.length+1}return e});var Mr=require("@codemirror/language"),Vr=Mr.foldService.of((t,e,a)=>{let s=t.doc.lineAt(e);if(s.number!==1||s.text.trim()!=="---")return null;for(let i=s.number+1;i<=t.doc.lines;i++){let r=t.doc.line(i);if(r.text.trim()==="---")return{from:s.to,to:r.to}}return null});function Ir(t){let{doc:e,parent:a,onSave:s}=t,i=[Dr,(0,G.lineNumbers)(),(0,G.highlightActiveLineGutter)(),(0,G.highlightActiveLine)(),(0,G.highlightSpecialChars)(),(0,xe.history)(),(0,ue.foldGutter)(),(0,G.drawSelection)(),(0,ue.indentOnInput)(),(0,ue.bracketMatching)(),(0,Rt.closeBrackets)(),(0,ue.syntaxHighlighting)(Yr),G.EditorView.darkTheme.of(activeDocument.body.classList.contains("theme-dark")),Ar,Vr,(0,Lt.lintGutter)(),G.EditorView.lineWrapping,G.keymap.of([{key:"Mod-s",run:r=>(s(r.state.doc.toString()),!0)},xe.indentWithTab,...Rt.closeBracketsKeymap,...xe.defaultKeymap,...xe.historyKeymap,...ue.foldKeymap,...Wr.searchKeymap,...Lt.lintKeymap])];return i.push(Er()),new G.EditorView({state:qr.EditorState.create({doc:e,extensions:i}),parent:a})}function XO(t){return Math.ceil(t.length/4)}function CO(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Gr(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function _O(t){return new Date(t).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var jO=new V.Component,Yt=class{containerEl;store;settings;saveSettings;currentItem=null;isEditing=!1;app;editorView=null;constructor(e,a,s,i,r){this.containerEl=e,this.store=a,this.settings=s,this.saveSettings=i,this.app=r.app}show(e){this.destroyEditor(),this.currentItem=e,this.isEditing=!1,this.render()}clear(){this.destroyEditor(),this.currentItem=null,this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.containerEl.createDiv("as-detail-empty");(0,V.setIcon)(e.createDiv("as-detail-empty-icon"),"file-text"),e.createDiv({text:"Select a skill to view"})}render(){this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.currentItem;if(!e)return this.clear();this.renderToolbar(e),this.isEditing?this.renderEditor(e):this.renderPreview(e)}renderToolbar(e){let a=this.containerEl.createDiv("as-detail-toolbar"),s=a.createDiv("as-toolbar-top"),i=s.createDiv("as-toolbar-left");i.createSpan({cls:"as-detail-title",text:e.name});for(let p of e.tools){let u=U.find(f=>f.id===p);if(!u)continue;let g=i.createSpan("as-tool-name-badge");g.setCssProps({"--tool-color":u.color}),W[p]&&oe(g,p,12),g.createSpan({text:u.name})}let r=s.createDiv("as-toolbar-right"),n=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Toggle favorite"}});(0,V.setIcon)(n,e.isFavorite?"star":"star-off"),n.addEventListener("click",()=>{this.store.toggleFavorite(e.id,this.settings),this.saveSettings(),this.render()});let o=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":this.isEditing?"Preview":"Edit"}});(0,V.setIcon)(o,this.isEditing?"eye":"pencil"),o.addEventListener("click",()=>{this.isEditing=!this.isEditing,this.render()});let l=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Show in system explorer"}});if((0,V.setIcon)(l,"folder-open"),l.addEventListener("click",()=>{ht(e.filePath)}),ee()){let p=r.createEl("button",{cls:"as-toolbar-btn as-toolbar-btn-danger",attr:{"aria-label":"Remove skill"}});(0,V.setIcon)(p,"trash-2"),p.addEventListener("click",()=>{je(this.app,"Remove skill",`Remove "${e.name}"? This will delete the skill files.`,()=>{let u=ze(`prune --skill ${e.name} --yes`);u.success?(new V.Notice(`Removed ${e.name}`,5e3),this.store.refresh(this.settings),this.clear()):new V.Notice(`Failed to remove: ${u.output}`,5e3)})})}let O=a.createDiv("as-detail-meta-bar"),c=XO(e.content),d=e.content.length;if(O.createSpan({cls:"as-meta-item",text:CO(e.fileSize)}),O.createSpan({cls:"as-meta-item",text:`${Gr(d)} chars`}),O.createSpan({cls:"as-meta-item",text:`~${Gr(c)} tokens`}),O.createSpan({cls:"as-meta-item",text:_O(e.lastModified)}),O.createSpan({cls:"as-meta-item as-meta-type",text:e.type}),e.usage&&e.usage.uses>0){let p=a.createDiv("as-detail-usage-bar");p.createSpan({cls:"as-usage-stat",text:`${e.usage.uses} uses`}),p.createSpan({cls:"as-usage-stat",text:`last: ${da(e.usage.lastUsed)}`}),e.usage.isStale&&p.createSpan({cls:"as-badge-stale",text:"stale"}),e.usage.isHeavy&&p.createSpan({cls:"as-badge-heavy",text:"heavy"})}}renderFrontmatter(e,a){let s=Object.keys(a.frontmatter),i=e.createDiv("as-frontmatter");if(a.filePath){let r=i.createDiv("as-fm-prop");r.createSpan({cls:"as-fm-key",text:"path"}),r.createSpan({cls:"as-fm-value",text:a.filePath})}if(!(s.length===0&&!a.filePath))for(let r of s){let n=a.frontmatter[r];if(n==null)continue;let o=i.createDiv("as-fm-prop");o.createSpan({cls:"as-fm-key",text:r});let l=typeof n=="object"?JSON.stringify(n):typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):JSON.stringify(n);l.length>200?o.createDiv({cls:"as-fm-value-long",text:l}):o.createSpan({cls:"as-fm-value",text:l})}}renderPreview(e){let a=this.containerEl.createDiv("as-detail-body");this.renderFrontmatter(a,e),this.renderWarnings(a,e),this.renderUsageSection(a,e),this.renderConflicts(a,e),this.renderTraces(a,e);let s=a.createDiv("as-detail-preview markdown-rendered");V.MarkdownRenderer.render(this.app,e.content,s,e.filePath,jO)}renderWarnings(e,a){let s=[];if(a.warnings?.oversized&&s.push(`${a.warnings.lineCount} lines (recommended: <500)`),a.warnings?.longDesc&&s.push(`Description is ${a.warnings.descChars} chars (recommended: <1024)`),a.conflicts&&a.conflicts.length>0){let o=a.conflicts.map(l=>l.skillName).join(", ");s.push(`Conflicts with: ${o}`)}if(s.length===0)return;let i=e.createDiv("as-warnings"),r=i.createDiv("as-warnings-icon");(0,V.setIcon)(r,"alert-triangle");let n=i.createDiv("as-warnings-list");for(let o of s)n.createDiv({cls:"as-warnings-item",text:o})}renderUsageSection(e,a){if(!a.usage||a.usage.uses===0)return;let s=e.createDiv("as-usage-section"),i=s.createDiv("as-usage-left");if(i.createSpan({cls:"as-usage-count",text:String(a.usage.uses)}),i.createSpan({cls:"as-usage-label",text:"uses"}),i.createSpan({cls:"as-usage-last",text:da(a.usage.lastUsed)}),a.usage.daily&&a.usage.daily.length>1){let r=s.createDiv("as-usage-spark");Cs(r,a.usage.daily.map(n=>n.count),80,20)}}renderConflicts(e,a){if(!a.conflicts||a.conflicts.length===0)return;let s=e.createDiv("as-conflicts-section");s.createDiv({cls:"as-section-title",text:`Conflicts (${a.conflicts.length})`});for(let i of a.conflicts){let r=s.createDiv("as-conflict-row");r.createSpan({cls:"as-conflict-name",text:i.skillName}),r.createDiv("as-conflict-bar-wrap").createDiv("as-conflict-bar").setCssProps({"--bar-w":`${(i.similarity*100).toFixed(0)}%`}),r.createSpan({cls:"as-conflict-score",text:`${(i.similarity*100).toFixed(0)}%`})}}renderTraces(e,a){if(!ee())return;let s=xs(a.name);if(s.length===0)return;let i=e.createDiv("as-traces-section");i.createDiv({cls:"as-section-title",text:`Recent traces (${s.length})`});let r=i.createDiv("as-traces-table");for(let n of s){let o=r.createDiv("as-trace-row"),l=new Date(n.timestamp);o.createSpan({cls:"as-trace-date",text:l.toLocaleDateString(void 0,{month:"short",day:"numeric"})}),o.createSpan({cls:"as-trace-model",text:n.model.replace("claude-","").replace("-4-6","")}),o.createSpan({cls:"as-trace-tokens",text:`${(n.tokens/1e3).toFixed(1)}k`}),o.createSpan({cls:"as-trace-cost",text:n.cost>0?`$${n.cost.toFixed(2)}`:""}),o.createSpan({cls:"as-trace-duration",text:`${(n.duration/1e3).toFixed(1)}s`})}i.createDiv({cls:"as-traces-hint",text:"skillkit trace --list --skill "+a.name})}renderPruneAction(e,a){let s=e.createDiv("as-prune-section"),i=s.createEl("button",{cls:"as-prune-btn",text:"Remove this skill"});s.createSpan({cls:"as-prune-hint",text:"This skill hasn't been used in 30+ days"}),i.addEventListener("click",()=>{je(this.app,"Remove skill",`Remove "${a.name}"? This will delete the skill files.`,()=>{let r=ze(`prune --skill ${a.name} --yes`);r.success?(new V.Notice(`Removed ${a.name}`,5e3),this.store.refresh(this.settings)):new V.Notice(`Failed to remove: ${r.output}`,5e3)})})}renderEditor(e){this.destroyEditor();let a=this.containerEl.createDiv("as-detail-body as-detail-body-editor"),s=a.createDiv("as-editor-cm");this.editorView=Ir({doc:e.content,parent:s,onSave:n=>this.saveFile(e,n)});let i=a.createDiv("as-save-bar");i.createEl("button",{cls:"as-save-btn",text:"Save"}).addEventListener("click",()=>{this.editorView&&this.saveFile(e,this.editorView.state.doc.toString())}),i.createSpan({cls:"as-save-hint",text:"Cmd+S to save"})}destroyEditor(){this.editorView&&(this.editorView.destroy(),this.editorView=null)}saveFile(e,a){try{(0,Ur.writeFileSync)(e.filePath,a,"utf-8"),e.content=a,new V.Notice(`Saved ${e.name}`,5e3)}catch(s){new V.Notice(`Failed to save: ${s instanceof Error?s.message:String(s)}`,5e3)}}};var he=require("obsidian");var ts=require("child_process"),J=require("fs"),C=require("path"),Dt=require("os"),Ot=require("obsidian"),D=(0,Dt.homedir)(),qe=(0,Dt.platform)()==="win32",Nr=(0,C.join)(D,".agents",".skill-lock.json"),EO="https://skills.sh/api";async function as(t){if(t.length<2)return[];try{let a=(await(0,Ot.requestUrl)({url:`${EO}/search?q=${encodeURIComponent(t)}&limit=30`})).json;if(!a.skills)return[];let s=en();return a.skills.map(i=>({...i,installed:s.has(i.name)}))}catch{return[]}}var Br=new Map;async function RO(t){let e=Br.get(t);if(e)return e;let i=(await(0,Ot.requestUrl)({url:`https://api.github.com/repos/${t}`})).json.default_branch||"main",o=((await(0,Ot.requestUrl)({url:`https://api.github.com/repos/${t}/git/trees/${i}?recursive=1`})).json.tree??[]).filter(O=>O.path.endsWith("/SKILL.md")).map(O=>O.path),l={branch:i,files:o};return Br.set(t,l),l}function LO(t,e,a){let s=e.split("/"),i=s[s.length-1]||t,r=new Set([i,t]);for(let n of a.split("/")){t.startsWith(n+"-")&&r.add(t.slice(n.length+1));for(let o of n.split("-"))t.startsWith(o+"-")&&r.add(t.slice(o.length+1))}return r}async function Fr(t,e,a){try{let{branch:s,files:i}=await RO(t),r=LO(e,a,t),n=i.find(O=>{let c=O.replace("/SKILL.md","").split("/").pop()||"";return r.has(c)});n||(n=i.find(O=>{let c=O.replace("/SKILL.md","").split("/").pop()||"";return e.includes(c)||c.includes(e)}));let o=n||`skills/${e}/SKILL.md`;return(await(0,Ot.requestUrl)({url:`https://raw.githubusercontent.com/${t}/${s}/${o}`})).text}catch{return null}}async function Jr(){let t=["react","next","clerk","stripe","ai"],e=new Set,a=[];for(let s of t){let i=await as(s);for(let r of i)e.has(r.id)||(e.add(r.id),a.push(r))}return a.sort((s,i)=>i.installs-s.installs).slice(0,20)}function YO(){let t=[];if(qe){let a=process.env.APPDATA||(0,C.join)(D,"AppData","Roaming");t.push((0,C.join)(a,"npm"),(0,C.join)(D,".bun","bin"),(0,C.join)(D,"AppData","Local","npm"))}else t.push("/usr/local/bin","/opt/homebrew/bin",(0,C.join)(D,".local","bin"),(0,C.join)(D,".bun","bin"));let e=qe?(0,C.join)(D,"AppData","Roaming","nvm"):(0,C.join)(D,".nvm","versions","node");try{for(let a of(0,J.readdirSync)(e))t.push(qe?(0,C.join)(e,a):(0,C.join)(e,a,"bin"))}catch{}return[...t,process.env.PATH||""].join(C.delimiter)}function Hr(){let t=qe?["bunx.cmd","bunx.exe","bunx"]:["bunx"],e=[];if(qe){let a=process.env.APPDATA||(0,C.join)(D,"AppData","Roaming");e.push((0,C.join)(D,".bun","bin"),(0,C.join)(a,"npm"))}else e.push((0,C.join)(D,".bun","bin"),"/usr/local/bin","/opt/homebrew/bin");for(let a of e)for(let s of t)if((0,J.existsSync)((0,C.join)(a,s)))return(0,C.join)(a,s);return"npx"}function ss(t="auto"){return t==="npx"?"npx":Hr()}var Kr=[{id:"claude-code",label:"Claude Code"},{id:"cursor",label:"Cursor"},{id:"codex",label:"Codex"},{id:"github-copilot",label:"GitHub Copilot"},{id:"windsurf",label:"Windsurf"},{id:"amp",label:"Amp"},{id:"opencode",label:"OpenCode"},{id:"cline",label:"Cline"},{id:"gemini-cli",label:"Gemini CLI"},{id:"goose",label:"Goose"},{id:"kiro-cli",label:"Kiro"},{id:"kilo",label:"Kilo Code"},{id:"roo",label:"Roo Code"},{id:"continue",label:"Continue"},{id:"openhands",label:"OpenHands"},{id:"antigravity",label:"Antigravity"},{id:"warp",label:"Warp"},{id:"pi",label:"Pi"},{id:"replit",label:"Replit"}],zt={"claude-code":"claude-code",cursor:"cursor",codex:"codex",copilot:"github-copilot",windsurf:"windsurf",amp:"amp",opencode:"opencode",antigravity:"antigravity","claude-desktop":"claude-code",pi:"pi","global-agents":"claude-code",aider:"claude-code",cline:"cline","roo-code":"roo",kilocode:"kilo",continue:"continue",openhands:"openhands",goose:"goose"};function en(){let t=new Set;if(!(0,J.existsSync)(Nr))return t;try{let e=JSON.parse((0,J.readFileSync)(Nr,"utf-8"));if(e.skills)for(let a of Object.keys(e.skills))t.add(a)}catch{}return t}var DO=[(0,C.join)(D,".claude","skills"),(0,C.join)(D,".cursor","skills"),(0,C.join)(D,".codex","skills"),(0,C.join)(D,".codeium","windsurf","skills"),(0,C.join)(D,".config","amp","skills"),(0,C.join)(D,".config","opencode","skills"),(0,C.join)(D,".copilot","skills"),(0,C.join)(D,".agents","skills")];function zO(t){for(let e of DO){let a=(0,C.join)(e,t);if((0,J.existsSync)(a))try{(0,J.rmSync)(a,{recursive:!0,force:!0})}catch{}}AO(t)}function AO(t){let e=(0,C.join)(D,".agents",".skill-lock.json");if((0,J.existsSync)(e))try{let a=JSON.parse((0,J.readFileSync)(e,"utf-8"));a.skills&&a.skills[t]&&(delete a.skills[t],(0,J.writeFileSync)(e,JSON.stringify(a,null,2)+` -`,"utf-8"))}catch{}}function At(t){let e=en();for(let a of t)a.installed=e.has(a.name);return t}function is(t,e=12e4){return new Promise(a=>{(0,ts.exec)(t,{encoding:"utf-8",timeout:e,env:{...process.env,PATH:YO(),NO_COLOR:"1"},shell:qe?"cmd.exe":void 0},(s,i)=>{let r=String(i??"");!s||r.includes("Done")||r.includes("Installed")||r.includes("Removed")||r.includes("Updated")?a({success:!0,output:r}):a({success:!1,output:s?.message??"Command failed"})})})}async function tn(t,e,a={}){let s=e.length>0?`-a ${e.join(" ")}`:"-a '*'",i=a.globalInstall?"-g":"",r=a.skillName?`-s ${a.skillName}`:"",o=`${ss(a.runner||"auto")} skills add ${t} ${s} ${i} ${r} -y`.replace(/\s+/g," ").trim();return is(o)}async function an(t,e="auto"){let s=`${ss(e)} skills remove ${t} -y`,i=await is(s,3e4);return zO(t),{success:!0,output:i.output||`Cleaned ${t}`}}async function sn(t="auto"){let a=`${ss(t)} skills update`,s=await is(a),i=s.output.match(/Updated (\d+) skill/);return{...s,count:i?parseInt(i[1]):0}}function rs(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}var We=require("fs"),nn=require("path"),on=require("os"),MO=new Set(["Read","Write","Edit","MultiEdit","Bash","Glob","Grep","WebSearch","WebFetch","TodoRead","TodoWrite","Task","Agent","Skill","LSP","NotebookEdit","AskFollowupQuestion","AttemptCompletion","SearchReplace","InsertCodeBlock","ReadImages","ExecuteCommand","ListFiles","SearchFiles","ReadFile","WriteFile","ReplaceInFile","ListCodeDefinitionNames","BrowserAction","UseMcp","shell","shell_command","update_plan","create_plan","read_file","write_file","execute_command","spawn_agent","write_stdin","multi_tool_use.parallel"]);function rn(t){return!(MO.has(t)||t.startsWith("mcp__")||t.startsWith("mcp_"))}function VO(t){let e=t.top_skills.filter(s=>rn(s.name)),a=t.top_skills.filter(s=>!rn(s.name)).reduce((s,i)=>s+i.total,0);return{...t,top_skills:e,total_invocations:Math.max(0,t.total_invocations-a),unique_skills:e.length}}function qO(){let t=De("stats"),e=De("health"),a=De("burn"),s=De("context");return{stats:t,health:e,burn:a&&a.length>0?a[0]:null,context:s}}var ns=(0,nn.join)((0,on.homedir)(),".skillkit","dashboard-cache.json"),me=null,Ze=null;function WO(){if(!me&&(0,We.existsSync)(ns))try{let t=JSON.parse((0,We.readFileSync)(ns,"utf-8"));me=t.data,Ze=t.cachedAt}catch{}}function IO(){if(me)try{(0,We.writeFileSync)(ns,JSON.stringify({data:me,cachedAt:Ze},null,2),"utf-8")}catch{}}WO();var Mt=class{containerEl;app;constructor(e,a){this.containerEl=e,this.app=a}render(){if(this.containerEl.empty(),this.containerEl.addClass("as-dashboard"),!ee()){this.renderNoSkillkit();return}if(me)this.renderDashboard(me);else{let e=this.containerEl.createDiv("as-dash-loading");e.createDiv("as-dash-spinner"),e.createDiv({cls:"as-dash-loading-text",text:"Loading analytics..."}),window.setTimeout(()=>{let a=qO();me=a,Ze=Date.now(),IO(),e.remove(),this.renderDashboard(a)},10)}}renderDashboard(e){this.renderActionBar(e);let a=e.stats?VO(e.stats):null;if(a&&this.renderOverview(a,e.health),a&&this.renderTopSkills(a),e.health||e.context){let s=this.containerEl.createDiv("as-dash-row");e.health&&this.renderHealth(e.health,s),e.context&&this.renderContext(e.context,s)}e.burn&&this.renderBurn(e.burn),e.health&&this.renderStale(e.health)}renderActionBar(e){let a=this.containerEl.createDiv("as-dash-action-bar");if(Ze){let n=Math.round((Date.now()-Ze)/1e3),o=n<5?"just now":n<60?`${n}s ago`:`${Math.round(n/60)}m ago`;a.createSpan({cls:"as-dash-updated",text:`Updated ${o}`})}let s=a.createDiv("as-dash-action-buttons"),i=s.createEl("button",{cls:"as-action-btn",text:"Update skills"});i.addEventListener("click",()=>{i.setText("Updating..."),i.disabled=!0,sn().then(n=>{if(n.success){let o=n.count>0?`Updated ${n.count} skill(s)`:"All skills up to date";new he.Notice(o,5e3),me=null,Ze=null,this.render()}else new he.Notice(`Update failed: ${n.output}`,5e3);i.setText("Update skills"),i.disabled=!1})});let r=s.createEl("button",{cls:"as-action-btn",text:"Scan sessions"});if(r.addEventListener("click",()=>{r.setText("Scanning..."),r.disabled=!0,window.setTimeout(()=>{let n=ze("scan");n.success?(new he.Notice("Scan complete",5e3),me=null,Ze=null,this.render()):new he.Notice(`Scan failed: ${n.output}`,5e3),r.setText("Scan sessions"),r.disabled=!1},10)}),e.health&&e.health.usage.unused_30d>0){let n=s.createEl("button",{cls:"as-action-btn as-action-btn-danger",text:`Prune ${e.health.usage.unused_30d} stale`});n.addEventListener("click",()=>{je(this.app,"Prune stale skills",`Remove ${e.health.usage.unused_30d} unused skills? This cannot be undone.`,()=>{n.setText("Pruning..."),n.disabled=!0,window.setTimeout(()=>{let o=ze("prune --yes");o.success?(new he.Notice("Pruned stale skills",5e3),me=null,Ze=null,this.render()):new he.Notice(`Prune failed: ${o.output}`,5e3),n.setText(`Prune ${e.health.usage.unused_30d} stale`),n.disabled=!1},10)})})}}renderNoSkillkit(){let e=this.containerEl.createDiv("as-dash-empty"),a=e.createDiv("as-dash-empty-icon");(0,he.setIcon)(a,"bar-chart-2"),e.createEl("h3",{text:"Dashboard requires skillkit"}),e.createEl("p",{text:"Install skillkit to unlock usage analytics, burn rate, context tax, and more."}),e.createDiv("as-dash-install-cmd").createEl("code",{text:"npm i -g @crafter/skillkit && skillkit scan"}),e.createEl("a",{cls:"as-skillkit-link",text:"Learn more",href:"https://www.npmjs.com/package/@crafter/skillkit"}).addEventListener("click",r=>{r.preventDefault(),ut("https://www.npmjs.com/package/@crafter/skillkit")})}renderOverview(e,a){let s=this.containerEl.createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Overview"});let i=s.createDiv("as-dash-stats");if(this.statCard(i,String(e.total_invocations),"invocations","activity"),this.statCard(i,String(e.unique_skills),"active skills","sparkles"),this.statCard(i,String(a?.installed??0),"installed","package"),this.statCard(i,String(a?.usage.unused_30d??0),"stale","alert-triangle"),e.streak&&e.streak.current>0){let r=s.createDiv("as-dash-streak-row");r.createSpan({cls:"as-streak-value",text:`${e.streak.current} day streak`}),e.streak.current>=7&&r.createSpan({cls:"as-streak-fire",text:"on fire"}),r.createSpan({cls:"as-streak-longest",text:`longest: ${e.streak.longest}d`})}if(e.velocity&&e.velocity.this_week>0){let r=s.createDiv("as-dash-velocity-row");r.createSpan({text:`This week: $${e.velocity.this_week.toFixed(0)}`}),r.createSpan({cls:"as-velocity-vs",text:`vs $${e.velocity.last_week.toFixed(0)} last week`});let n=e.velocity.change_pct,o=n>0?"as-velocity-up":n<0?"as-velocity-down":"",l=n>0?"+":"";r.createSpan({cls:`as-velocity-change ${o}`,text:`${l}${n.toFixed(0)}%`})}}statCard(e,a,s,i){let r=e.createDiv("as-stat-card"),n=r.createDiv("as-stat-icon");(0,he.setIcon)(n,i),r.createDiv({cls:"as-stat-value",text:a}),r.createDiv({cls:"as-stat-label",text:s})}renderTopSkills(e){if(e.top_skills.length===0)return;let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Top Skills (${e.period.days}d)`});let s=e.top_skills[0]?.total||1,i=a.createDiv("as-dash-bars");for(let r of e.top_skills.slice(0,10)){let n=i.createDiv("as-bar-row");n.createSpan({cls:"as-bar-name",text:r.name}),n.createDiv("as-bar-wrap").createDiv("as-bar-fill").setCssProps({"--bar-w":`${r.total/s*100}%`}),n.createSpan({cls:"as-bar-count",text:String(r.total)})}}renderHealth(e,a){let s=(a||this.containerEl).createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Health"});let i=e.usage.used_30d+e.usage.unused_30d,r=i>0?Math.round(e.usage.used_30d/i*100):0,n=s.createDiv("as-dash-health-row"),o=n.createDiv("as-donut");o.setCssProps({"--pct":`${r}`}),o.createDiv({cls:"as-donut-label",text:`${r}%`}),o.createDiv({cls:"as-donut-sub",text:"active"});let l=n.createDiv("as-health-details");l.createDiv({cls:"as-health-line",text:`${e.usage.used_30d} used in 30d`}),l.createDiv({cls:"as-health-line as-health-warn",text:`${e.usage.unused_30d} never triggered`});let c=l.createDiv("as-budget-bar").createDiv("as-budget-fill");c.setCssProps({"--bar-w":`${e.metadata.pct}%`}),e.metadata.pct>80&&c.addClass("as-budget-over"),l.createDiv({cls:"as-health-line",text:`Metadata budget: ${e.metadata.pct}%`})}renderBurn(e){let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Burn Rate \u2014 ${e.agent} (${e.period.days}d)`});let s=a.createDiv("as-dash-stats as-dash-stats-sm");if(this.statCard(s,`$${Math.round(e.cost.total).toLocaleString()}`,"total cost","flame"),this.statCard(s,`$${Math.round(e.cost.total/(e.period.days||1)).toLocaleString()}`,"daily avg","trending-up"),this.statCard(s,`${(e.period.sessions||0).toLocaleString()}`,"sessions","terminal"),this.statCard(s,`${((e.period.api_calls||0)/1e3).toFixed(0)}k`,"API calls","zap"),e.by_model&&e.by_model.length>0){let o=a.createDiv("as-model-breakdown");for(let l of e.by_model.slice(0,4)){let O=o.createDiv("as-model-row");O.createSpan({cls:"as-model-name",text:l.model}),O.createSpan({cls:"as-model-calls",text:`${l.apiCalls.toLocaleString()} calls`}),l.costUsd>0&&O.createSpan({cls:"as-model-cost",text:`$${Math.round(l.costUsd).toLocaleString()}`})}}let i=e.by_day.slice(-14);if(i.length===0)return;let r=Math.max(...i.map(o=>o.costUsd),1),n=a.createDiv("as-burn-chart");for(let o of i){let l=n.createDiv("as-burn-col"),O=l.createDiv("as-burn-bar"),c=Math.max(2,o.costUsd/r*100);O.setCssProps({"--bar-h":`${c}%`}),O.title=`${o.date}: $${o.costUsd.toFixed(0)}`,l.createDiv({cls:"as-burn-date",text:o.date.slice(8)})}}renderContext(e,a){let s=(a||this.containerEl).createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Context Tax"});let i=e.always_loaded.total_tokens,r=[{label:"CLAUDE.md",tokens:e.always_loaded.claude_md_tokens,cls:"as-ctx-claude"},{label:"Skills metadata",tokens:e.always_loaded.skill_metadata_tokens,cls:"as-ctx-skills"},{label:"Memory",tokens:e.always_loaded.memory_tokens,cls:"as-ctx-memory"}],n=s.createDiv("as-ctx-bar");for(let O of r){let c=n.createDiv(`as-ctx-part ${O.cls}`);c.setCssProps({"--bar-w":`${O.tokens/i*100}%`}),c.title=`${O.label}: ${(O.tokens/1e3).toFixed(1)}k tokens`}let o=s.createDiv("as-ctx-legend");for(let O of r){let c=o.createDiv("as-ctx-legend-item");c.createSpan({cls:`as-ctx-dot ${O.cls}`}),c.createSpan({text:`${O.label}: ${(O.tokens/1e3).toFixed(1)}k`})}let l=s.createDiv("as-ctx-costs");l.createDiv({text:`Per session (cached): $${e.session_estimate.with_cache.toFixed(2)}`}),l.createDiv({text:`Without cache: $${e.session_estimate.without_cache.toFixed(2)}`}),l.createDiv({cls:"as-ctx-savings",text:`Cache saves ${e.session_estimate.savings_pct.toFixed(0)}%`})}renderStale(e){if(e.usage.never_used.length===0)return;let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Stale skills (${e.usage.unused_30d})`});let s=a.createDiv("as-stale-list");for(let i of e.usage.never_used.slice(0,20))s.createDiv("as-stale-item").createSpan({text:i});e.usage.never_used.length>20&&s.createDiv({cls:"as-stale-more",text:`+${e.usage.never_used.length-20} more`})}};var pe=require("obsidian"),Ge=require("fs"),gn=require("path"),Qn=require("os");var ce=require("obsidian"),Ie=require("fs"),mn=require("path"),fn=require("os");var j=require("fs"),L=require("path"),Vt=require("os"),On=require("obsidian"),cn=require("crypto");var ln=new Set(["readme.md","license","license.md","changelog.md",".ds_store","thumbs.db"]);function GO(t){return(0,cn.createHash)("sha256").update(t).digest("hex").slice(0,12)}function UO(t){let e=t.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!e)return{frontmatter:{},content:t};try{let a=(0,On.parseYaml)(e[1]);return{frontmatter:typeof a=="object"&&a?a:{},content:e[2]}}catch{return{frontmatter:{},content:t}}}function NO(t,e,a,s="auto",i="skill"){if(i==="command")return typeof t.name=="string"&&t.name?t.name:(0,L.basename)(a,(0,L.extname)(a));if(s==="auto"){if(typeof t.name=="string"&&t.name)return t.name;let n=e.match(/^#\s+(.+)$/m);if(n)return n[1].trim()}let r=(0,L.basename)(a,(0,L.extname)(a));return r==="SKILL"?(0,L.basename)((0,L.join)(a,"..")):r}function dn(t,e,a,s="auto",i=0){if(!(0,j.existsSync)(t)||i>3)return[];let r=[];for(let n of(0,j.readdirSync)(t,{withFileTypes:!0})){let o=(0,L.join)(t,n.name);if(!(n.isDirectory()||n.isSymbolicLink()&&(0,j.statSync)(o,{throwIfNoEntry:!1})?.isDirectory()))continue;let O=(0,L.join)(o,"SKILL.md");if((0,j.existsSync)(O)){let c=ct(O,e,a,"directory-with-skillmd",s);c&&r.push(c)}else r.push(...dn(o,e,a,s,i+1))}return r}function BO(t,e,a,s="auto"){if(!(0,j.existsSync)(t))return[];let i=[];for(let r of(0,j.readdirSync)(t,{withFileTypes:!0})){let n=(0,L.join)(t,r.name);if(r.isDirectory()||r.isSymbolicLink()&&(0,j.statSync)(n,{throwIfNoEntry:!1})?.isDirectory()){let c=(0,L.join)(n,"SKILL.md");if((0,j.existsSync)(c)){let u=ct(c,e,a,"flat-md",s);u&&i.push(u);continue}let d=(0,j.readdirSync)(n).filter(u=>u.endsWith(".md")&&!ln.has(u.toLowerCase())),p=d.find(u=>u.toLowerCase()===`${r.name.toLowerCase()}.md`)||d[0];if(p){let u=ct((0,L.join)(n,p),e,a,"flat-md",s);u&&i.push(u)}continue}let l=r.name.toLowerCase();if(!l.endsWith(".md")||ln.has(l))continue;let O=ct(n,e,a,"flat-md",s);O&&i.push(O)}return i}function HO(t,e,a,s="auto"){if(!(0,j.existsSync)(t))return[];let i=[];for(let r of(0,j.readdirSync)(t,{withFileTypes:!0})){if(!r.name.endsWith(".mdc")&&!r.name.endsWith(".md")||r.isDirectory())continue;let n=ct((0,L.join)(t,r.name),e,a,"mdc",s);n&&i.push(n)}return i}function ct(t,e,a,s="directory-with-skillmd",i="auto"){try{let r=(0,j.readFileSync)(t,"utf-8"),n=(0,j.statSync)(t),{frontmatter:o,content:l}=UO(r),O=NO(o,l,t,i,e),c=typeof o.description=="string"?o.description:"",d;try{d=(0,j.realpathSync)(t)}catch{d=t}return{id:GO(d),name:O,description:c,type:e,tools:[a],filePath:t,realPath:d,dirPath:(0,L.join)(t,".."),content:r,frontmatter:o,lastModified:n.mtimeMs,fileSize:n.size,isFavorite:!1,collections:[]}}catch{return null}}function os(t,e,a="auto"){switch(t.pattern){case"directory-with-skillmd":return dn(t.baseDir,t.type,e,a);case"flat-md":return BO(t.baseDir,t.type,e,a);case"mdc":return HO(t.baseDir,t.type,e,a)}}function FO(t,e){let a=[],s=[{sub:".claude/skills",type:"skill",pattern:"directory-with-skillmd"},{sub:".claude/commands",type:"command",pattern:"flat-md"},{sub:".claude/agents",type:"agent",pattern:"flat-md"},{sub:".cursor/skills",type:"skill",pattern:"directory-with-skillmd"},{sub:".codex/skills",type:"skill",pattern:"directory-with-skillmd"}];for(let i of s){let r=(0,L.join)(t,i.sub);if(!(0,j.existsSync)(r))continue;let n={baseDir:r,type:i.type,pattern:i.pattern};a.push(...os(n,e))}return a}function pn(t){return t.projectsHomeDir||(0,Vt.homedir)()}function JO(t,e){let a=(0,Vt.homedir)(),s=[];for(let i of[...e.paths,...e.agentPaths]){let r=(0,L.relative)(a,i.baseDir);if(r.startsWith("..")||r.startsWith("/"))continue;let n=(0,L.join)(t,r);if((0,j.existsSync)(n))try{s.push(...os({...i,baseDir:n},e.id))}catch{}}return s}function KO(t){let e=pn(t);if(!(0,j.existsSync)(e))return[];let a=[];try{let s=new Set(["node_modules",".Trash","Library","Applications","Music","Movies","Pictures","Public"]);for(let i of(0,j.readdirSync)(e,{withFileTypes:!0})){if(!i.isDirectory()&&!i.isSymbolicLink()||s.has(i.name))continue;let r=(0,L.join)(e,i.name);for(let n of U){if(!n.isInstalled())continue;let o=t.tools[n.id];if(o&&!o.enabled)continue;let l=JO(r,n);l.length>0&&a.push({items:l,toolId:n.id})}}}catch{}return a}function ls(t,e){let a=e||(0,Vt.homedir)();if(!t.startsWith(a+L.sep))return"global";let i=t.slice(a.length+1).split(L.sep);return i.length>1&&!i[0].startsWith(".")?i[0]:"global"}function un(t){Ps();let e=t.namingMode||"auto",a=new Map,s=new Map;function i(r,n){let o=a.get(r.id);if(o){o.tools.includes(n)||o.tools.push(n);return}let l=s.get(r.name);if(l){let O=a.get(l);O&&!O.tools.includes(n)&&O.tools.push(n);return}r.isFavorite=t.favorites.includes(r.id);for(let[O,c]of Object.entries(t.collections))c.includes(r.id)&&r.collections.push(O);a.set(r.id,r),s.set(r.name,r.id)}for(let r of U){if(!r.isInstalled())continue;let n=t.tools[r.id];if(n&&!n.enabled)continue;let o=[...r.paths,...r.agentPaths];for(let l of o)for(let O of os(l,r.id,e))i(O,r.id)}for(let r of t.customScanPaths)if((0,j.existsSync)(r))for(let n of FO(r,"claude-code"))i(n,"claude-code");if(t.projectScanEnabled)for(let{items:r,toolId:n}of KO(t))for(let o of r)i(o,n);return a}function Os(){return U.filter(t=>t.isInstalled()).map(t=>t.id)}function hn(t){let e=[];for(let a of U)if(a.isInstalled())for(let s of[...a.paths,...a.agentPaths])(0,j.existsSync)(s.baseDir)&&e.push(s.baseDir);if(t?.projectScanEnabled){let a=pn(t),s=new Set(["node_modules",".Trash","Library","Applications","Music","Movies","Pictures","Public"]);try{for(let i of(0,j.readdirSync)(a,{withFileTypes:!0})){if(!i.isDirectory()&&!i.isSymbolicLink()||s.has(i.name))continue;let r=(0,L.join)(a,i.name);for(let n of[".claude/skills",".claude/commands",".claude/agents",".cursor/skills",".codex/skills"]){let o=(0,L.join)(r,n);(0,j.existsSync)(o)&&e.push(o)}}}catch{}}return e}var cs={};for(let[t,e]of Object.entries(zt))cs[e]||(cs[e]=t);var ds=(0,mn.join)((0,fn.homedir)(),".skillkit","install-prefs.json"),Ye=null,qt=!0;function ec(){if(!Ye&&(0,Ie.existsSync)(ds))try{let t=JSON.parse((0,Ie.readFileSync)(ds,"utf-8"));Ye=new Set(t.agents||[]),qt=t.globalInstall??!0}catch{}}function tc(){try{(0,Ie.writeFileSync)(ds,JSON.stringify({agents:Ye?[...Ye]:[],globalInstall:qt}),"utf-8")}catch{}}ec();var Wt=class extends ce.Modal{skill;settings;onInstalled;selectedAgents;isGlobal;constructor(e,a,s,i){if(super(e),this.skill=a,this.settings=s,this.onInstalled=i,Ye)this.selectedAgents=new Set(Ye);else{this.selectedAgents=new Set;let r=Os();for(let n of r){let o=zt[n];o&&this.selectedAgents.add(o)}}this.isGlobal=qt}onOpen(){let{contentEl:e}=this;e.addClass("as-install-modal"),e.createEl("h3",{text:`Install ${this.skill.name}`}),e.createEl("p",{cls:"as-install-source",text:this.skill.source}),new ce.Setting(e).setName("Install globally").setDesc("Shared across all projects (~/.agents/skills/)").addToggle(l=>l.setValue(this.isGlobal).onChange(O=>{this.isGlobal=O})),new ce.Setting(e).setName("Agents").setHeading();let a=e.createDiv("as-install-scroll"),s=Os(),i=new Set(s.map(l=>zt[l]).filter(Boolean));for(let l of Kr){let O=i.has(l.id),c=cs[l.id],p=new ce.Setting(a).addToggle(f=>f.setValue(this.selectedAgents.has(l.id)).onChange(w=>{w?this.selectedAgents.add(l.id):this.selectedAgents.delete(l.id)})).nameEl,u=c&&W[c]?c:W[l.id]?l.id:W[l.id+"-code"]?l.id+"-code":W[l.id+"-cli"]?l.id+"-cli":null,g=p.createSpan("as-install-agent-icon");u?oe(g,u,14):g.addClass("as-install-agent-placeholder"),p.createSpan({text:l.label}),O&&p.createSpan({cls:"as-install-detected",text:"detected"})}let r=e.createDiv("as-install-footer");r.createEl("button",{text:"Cancel"}).addEventListener("click",()=>this.close()),r.createEl("button",{cls:"mod-cta",text:"Install"}).addEventListener("click",()=>this.doInstall())}doInstall(){let e=[...this.selectedAgents];if(e.length===0){new ce.Notice("Select at least one agent",5e3);return}Ye=new Set(this.selectedAgents),qt=this.isGlobal,tc(),this.close(),new ce.Notice(`Installing ${this.skill.name}...`,3e3),tn(this.skill.source,e,{runner:this.settings.packageRunner,globalInstall:this.isGlobal,skillName:this.skill.name}).then(a=>{a.success?(new ce.Notice(`Installed ${this.skill.name}`,5e3),this.skill.installed=!0,this.onInstalled()):new ce.Notice(`Failed to install ${this.skill.name}`,5e3)})}onClose(){this.contentEl.empty()}};var ps=(0,gn.join)((0,Qn.homedir)(),".skillkit","marketplace-popular.json"),de=null,It="",Te=null,ac=new pe.Component;function sc(){if(!de&&(0,Ge.existsSync)(ps))try{let t=JSON.parse((0,Ge.readFileSync)(ps,"utf-8"));de=At(t)}catch{}}function ic(){if(de)try{(0,Ge.writeFileSync)(ps,JSON.stringify(de),"utf-8")}catch{}}sc();var Gt=class{containerEl;inputEl=null;listEl=null;previewEl=null;searchTimer=null;selectedSkill=null;app;settings;onRefresh;constructor(e,a,s,i){this.containerEl=e,this.app=a.app,this.settings=s,this.onRefresh=i}render(){if(!this.inputEl){this.containerEl.empty(),this.containerEl.addClass("as-marketplace");let e=this.containerEl.createDiv("as-mp-search");this.inputEl=e.createEl("input",{type:"text",placeholder:"Search skills on skills.sh...",cls:"as-mp-search-input"}),this.inputEl.addEventListener("input",()=>{this.searchTimer&&window.clearTimeout(this.searchTimer),this.searchTimer=window.setTimeout(()=>{this.doSearch(this.inputEl.value)},300)});let a=this.containerEl.createDiv("as-mp-body");this.listEl=a.createDiv("as-mp-list"),this.previewEl=a.createDiv("as-mp-preview"),this.previewEl.createDiv({cls:"as-mp-hint",text:"Select a skill to preview."})}this.inputEl.value=It,It.length>=2&&Te?this.showResults(Te):de?this.showPopular():this.loadPopular()}async loadPopular(){if(!this.listEl)return;this.listEl.empty(),this.listEl.createDiv({cls:"as-mp-loading",text:"Loading popular skills..."}),de=await Jr(),ic(),this.showPopular()}refreshList(){de&&At(de),Te&&At(Te),It.length>=2&&Te?this.showResults(Te):this.showPopular()}showPopular(){if(this.listEl){if(this.listEl.empty(),!de||de.length===0){this.listEl.createDiv({cls:"as-mp-hint",text:"Search for skills to browse and install."});return}this.listEl.createDiv({cls:"as-mp-section-title",text:"Popular"});for(let e of de)this.renderSkillCard(e)}}showResults(e){if(this.listEl){if(this.listEl.empty(),e.length===0){this.listEl.createDiv({cls:"as-mp-hint",text:"No skills found."});return}for(let a of e)this.renderSkillCard(a)}}async doSearch(e){if(!this.listEl)return;if(It=e,e.length<2){Te=null,this.showPopular();return}this.listEl.empty(),this.listEl.createDiv({cls:"as-mp-loading",text:"Searching..."});let a=await as(e);Te=a,this.showResults(a)}renderSkillCard(e){if(!this.listEl)return;let a=this.listEl.createDiv("as-mp-card");this.selectedSkill?.id===e.id&&a.addClass("is-selected");let s=a.createDiv("as-mp-card-header");s.createSpan({cls:"as-mp-card-name",text:e.name}),e.installed&&s.createSpan({cls:"as-mp-installed-badge",text:"Installed"}),a.createDiv({cls:"as-mp-card-source",text:e.source});let i=a.createDiv("as-mp-card-meta"),r=i.createSpan("as-mp-dl-icon");(0,pe.setIcon)(r,"download"),i.createSpan({cls:"as-mp-card-installs",text:rs(e.installs)}),a.addEventListener("click",()=>{this.selectedSkill=e,this.listEl&&this.listEl.querySelectorAll(".as-mp-card").forEach(n=>n.removeClass("is-selected")),a.addClass("is-selected"),this.showPreview(e)})}async showPreview(e){if(!this.previewEl)return;this.previewEl.empty();let s=this.previewEl.createDiv("as-mp-preview-header").createDiv("as-mp-preview-top"),i=s.createDiv("as-mp-preview-left");i.createDiv({cls:"as-mp-preview-name",text:e.name});let r=i.createDiv("as-mp-preview-meta");r.createSpan({cls:"as-mp-preview-source",text:e.source});let n=r.createSpan("as-mp-dl-icon");(0,pe.setIcon)(n,"download"),r.createSpan({cls:"as-mp-preview-installs",text:rs(e.installs)});let o=s.createDiv("as-mp-preview-right");if(!e.installed)this.renderInstallButton(o,e);else{o.createSpan({cls:"as-mp-installed-label",text:"Installed"});let c=o.createEl("button",{cls:"as-mp-uninstall-btn",text:"Uninstall"});c.addEventListener("click",()=>{je(this.app,"Uninstall skill",`Remove "${e.name}" from all agents?`,()=>{c.setText("Removing..."),c.disabled=!0,new pe.Notice(`Removing ${e.name}...`,3e3),an(e.name,this.settings.packageRunner).then(d=>{d.success?(new pe.Notice(`Removed ${e.name}`,5e3),e.installed=!1,this.refreshList(),this.showPreview(e)):(new pe.Notice(`Failed to remove ${e.name}`,5e3),c.setText("Uninstall"),c.disabled=!1)})})})}let l=this.previewEl.createDiv("as-mp-preview-content");l.createDiv({cls:"as-mp-loading",text:"Loading skill content..."});let O=await Fr(e.source,e.name,e.id);if(l.empty(),O){e.content=O;let c=l.createDiv("as-mp-rendered markdown-rendered");pe.MarkdownRenderer.render(this.app,O,c,"",ac)}else l.createDiv({cls:"as-mp-hint",text:"Could not load skill content."})}renderInstallButton(e,a){e.createEl("button",{cls:"as-mp-install-btn",text:"Install"}).addEventListener("click",()=>{new Wt(this.app,a,this.settings,()=>{this.refreshList(),this.showPreview(a)}).open()})}};var fe=require("obsidian"),ge=require("fs"),Ut=require("path");function rc(){let t=[];for(let e of U){if(!e.isInstalled())continue;let a=[];for(let s of[...e.paths,...e.agentPaths])s.type==="rule"||s.type==="memory"||a.push({sp:s,label:s.type});a.length>0&&t.push({tool:e,paths:a})}return t}var nc={skill:"sparkles",command:"terminal",agent:"bot"},Nt=class extends fe.Modal{onCreated;toolOptions;selectedTool=null;selectedPath=null;name="";step="tool";constructor(e,a){super(e),this.onCreated=a,this.toolOptions=rc()}onOpen(){this.modalEl.addClass("as-create-modal"),this.render()}render(){let{contentEl:e}=this;e.empty(),this.step==="tool"?this.renderToolStep(e):this.step==="type"?this.renderTypeStep(e):this.renderNameStep(e)}renderToolStep(e){this.renderHeader(e,"Choose tool",null);let a=e.createDiv("as-create-grid");for(let s of this.toolOptions){let i=a.createDiv("as-create-card");i.style.setProperty("--tool-color",s.tool.color);let r=i.createDiv("as-create-card-icon");W[s.tool.id]&&oe(r,s.tool.id,24),i.createDiv({cls:"as-create-card-name",text:s.tool.name}),i.addEventListener("click",()=>{this.selectedTool=s,s.paths.length===1?(this.selectedPath=s.paths[0],this.step="name"):this.step="type",this.render()})}}renderTypeStep(e){if(!this.selectedTool)return;this.renderHeader(e,`${this.selectedTool.tool.name}`,()=>{this.step="tool",this.render()}),e.createDiv("as-create-subtitle").setText("What do you want to create?");let s=e.createDiv("as-create-type-grid");for(let i of this.selectedTool.paths){let r=s.createDiv("as-create-type-card");r.style.setProperty("--tool-color",this.selectedTool.tool.color);let n=nc[i.label]||"file",o=r.createDiv("as-create-type-icon");(0,fe.setIcon)(o,n),r.createDiv({cls:"as-create-type-label",text:i.label}),r.addEventListener("click",()=>{this.selectedPath=i,this.step="name",this.render()})}}renderNameStep(e){if(!this.selectedTool||!this.selectedPath)return;let a=this.selectedTool.paths.length>1?"type":"tool";this.renderHeader(e,`New ${this.selectedPath.label}`,()=>{this.step=a,this.render()});let s=e.createDiv("as-create-badge");s.style.setProperty("--tool-color",this.selectedTool.tool.color);let i=s.createSpan("as-create-badge-icon");W[this.selectedTool.tool.id]&&oe(i,this.selectedTool.tool.id,14),s.createSpan({text:this.selectedTool.tool.name});let n=e.createDiv("as-create-input-wrap").createEl("input",{type:"text",placeholder:`my-${this.selectedPath.label}-name`,cls:"as-create-input"});n.value=this.name,n.addEventListener("input",()=>{this.name=n.value.trim()}),n.addEventListener("keydown",O=>{O.key==="Enter"&&this.name&&this.create()}),window.setTimeout(()=>n.focus(),10);let l=e.createDiv("as-create-actions").createEl("button",{text:`Create ${this.selectedPath.label}`,cls:"as-create-submit"});l.style.setProperty("--tool-color",this.selectedTool.tool.color),l.addEventListener("click",()=>this.create())}renderHeader(e,a,s){let i=e.createDiv("as-create-header");if(s){let r=i.createDiv("as-create-back");(0,fe.setIcon)(r,"chevron-left"),r.addEventListener("click",s)}i.createDiv({cls:"as-create-title",text:a})}create(){if(!this.name||!this.selectedPath)return;let e=this.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");if(!e){new fe.Notice("Invalid name");return}let a=this.selectedPath.sp,s;if(a.pattern==="directory-with-skillmd"){let i=(0,Ut.join)(a.baseDir,e);if((0,ge.existsSync)(i)){new fe.Notice(`Already exists: ${e}`);return}(0,ge.mkdirSync)(i,{recursive:!0}),s=(0,Ut.join)(i,"SKILL.md"),(0,ge.writeFileSync)(s,["---",`name: ${this.name}`,'description: ""',"---","",`# ${this.name}`,"","## Instructions","",""].join(` -`),"utf-8")}else{if((0,ge.existsSync)(a.baseDir)||(0,ge.mkdirSync)(a.baseDir,{recursive:!0}),s=(0,Ut.join)(a.baseDir,`${e}.md`),(0,ge.existsSync)(s)){new fe.Notice(`Already exists: ${e}.md`);return}(0,ge.writeFileSync)(s,["---",'description: ""',"---","",""].join(` -`),"utf-8")}new fe.Notice(`Created ${this.name}`),this.close(),this.onCreated(s)}onClose(){this.contentEl.empty()}};var Pn=require("obsidian"),Ue=require("fs"),yn=require("path"),wn=require("os");var us={customTags:{},favorites:[]},hs={tools:{},watchEnabled:!0,watchDebounceMs:500,deepSearchDefault:!1,deepSearchScope:"both",favorites:[],collections:{},customScanPaths:[],namingMode:"auto",projectScanEnabled:!0,projectsHomeDir:"",packageRunner:"auto"};var ne=require("fs"),ke=require("path"),gs=require("os"),Sn=require("readline"),oc=(0,ke.join)((0,gs.homedir)(),".claude"),ms=(0,ke.join)(oc,"projects"),lc=5*1024*1024,fs=500;function Oc(t){let e=(0,gs.homedir)().split(ke.sep).filter(Boolean),a=e.join("-"),s=t;if(s.startsWith(a+"-"))s=s.slice(a.length+1);else if(s.startsWith("-")){s=s.slice(1);let r=e.join("-")+"-";s.startsWith(r)&&(s=s.slice(r.length))}let i=s.split("-").filter(Boolean);return i.length<=2?i.join("-")||"root":i.slice(-2).join("-")}function Bt(t){if(typeof t=="string")return t;if(Array.isArray(t)){let e=[];for(let a of t)if(typeof a=="object"&&a!==null){let s=a;s.type==="text"&&typeof s.text=="string"&&e.push(s.text)}return e.join(` -`)}return""}function vn(t){if(!Array.isArray(t))return[];let e=[];for(let a of t)if(typeof a=="object"&&a!==null){let s=a;s.type==="tool_use"&&typeof s.name=="string"&&e.push(s.name)}return e}function cc(t){let e=[],a="",s="";for(let i of t)try{let r=JSON.parse(i),n=typeof r.timestamp=="string"?r.timestamp:void 0;if(n&&(a||(a=n),s=n),r.type==="user"){let o=r.message;if(!o)continue;let l=Bt(o.content);l&&e.push({role:"human",text:l,timestamp:n||""})}if(r.type==="assistant"){let o=r.message;if(!o)continue;let l=Bt(o.content),O=vn(o.content);l&&e.push({role:"assistant",text:l,timestamp:n||"",toolCalls:O.length>0?O:void 0})}}catch{}return{messages:e,firstTimestamp:a,lastTimestamp:s}}function dc(){let t=[];if(!(0,ne.existsSync)(ms))return t;let e;try{e=(0,ne.readdirSync)(ms)}catch{return t}for(let a of e){let s=(0,ke.join)(ms,a);try{if(!(0,ne.statSync)(s).isDirectory())continue}catch{continue}let i=Oc(a),r;try{r=(0,ne.readdirSync)(s).filter(n=>n.endsWith(".jsonl"))}catch{continue}for(let n of r){let o=(0,ke.join)(s,n);try{let l=(0,ne.statSync)(o);t.push({uuid:(0,ke.basename)(n,".jsonl"),project:i,projectPath:s,filePath:o,fileSize:l.size})}catch{continue}}}return t}function pc(t){try{let a=(0,ne.readFileSync)(t.filePath,"utf-8").split(` -`).filter(O=>O.trim());if(a.length===0)return null;let s=a.length>fs?a.slice(0,fs):a,{messages:i,firstTimestamp:r,lastTimestamp:n}=cc(s);if(i.length===0)return null;let o=i.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";return{id:t.uuid,uuid:t.uuid,project:t.project,projectPath:t.projectPath,title:l,messages:i,messageCount:i.length,firstTimestamp:r,lastTimestamp:n,tags:[],customTags:[],isFavorite:!1,filePath:t.filePath}}catch{return null}}async function uc(t){return new Promise(e=>{let a=[],s="",i="",r=0,n=(0,Sn.createInterface)({input:(0,ne.createReadStream)(t.filePath,{encoding:"utf-8"}),crlfDelay:Number.POSITIVE_INFINITY});n.on("line",o=>{if(o.trim()){if(r++,r>fs){n.close();return}try{let l=JSON.parse(o),O=typeof l.timestamp=="string"?l.timestamp:void 0;if(O&&(s||(s=O),i=O),l.type==="user"){let c=l.message;if(!c)return;let d=Bt(c.content);d&&a.push({role:"human",text:d,timestamp:O||""})}if(l.type==="assistant"){let c=l.message;if(!c)return;let d=Bt(c.content),p=vn(c.content);d&&a.push({role:"assistant",text:d,timestamp:O||"",toolCalls:p.length>0?p:void 0})}}catch{}}}),n.on("close",()=>{if(a.length===0){e(null);return}let o=a.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";e({id:t.uuid,uuid:t.uuid,project:t.project,projectPath:t.projectPath,title:l,messages:a,messageCount:a.length,firstTimestamp:s,lastTimestamp:i,tags:[],customTags:[],isFavorite:!1,filePath:t.filePath})}),n.on("error",()=>e(null))})}async function $n(){let t=dc(),e=[],a=20;t.sort((s,i)=>i.fileSize-s.fileSize);for(let s=0;sn.fileSize>lc?uc(n):Promise.resolve(pc(n))));for(let n of r)n&&e.push(n)}return e.sort((s,i)=>(i.lastTimestamp||"").localeCompare(s.lastTimestamp||"")),e}var hc=[{tag:"react",patterns:[/\breact\b/i,/\.tsx\b/,/\.jsx\b/,/usestate|useeffect|useref/i]},{tag:"react-native",patterns:[/react.native/i,/\bexpo\b/i,/react-navigation/i]},{tag:"nextjs",patterns:[/next\.js/i,/\bnextjs\b/i,/next\.config/i]},{tag:"vue",patterns:[/\bvue\b/i,/\.vue\b/,/vuex|pinia/i]},{tag:"angular",patterns:[/\bangular\b/i,/\.component\.ts/i]},{tag:"svelte",patterns:[/\bsvelte\b/i,/\.svelte\b/]},{tag:"typescript",patterns:[/typescript/i,/tsconfig/i,/\.tsx\b/]},{tag:"javascript",patterns:[/javascript/i,/\.js\b/,/\.mjs\b/]},{tag:"python",patterns:[/\bpython\b/i,/\.py\b/,/\bpip\b/i,/django|flask|fastapi/i]},{tag:"rust",patterns:[/\brust\b/i,/\.rs\b/,/cargo\.toml/i]},{tag:"go",patterns:[/\bgolang\b/i,/\.go\b/,/go\.mod/i]},{tag:"java",patterns:[/\bjava\b/i,/\.java\b/,/gradle|maven/i]},{tag:"csharp",patterns:[/\bc#\b/i,/\.cs\b/,/unity|dotnet/i]},{tag:"swift",patterns:[/\bswift\b/i,/\.swift\b/,/swiftui/i]},{tag:"nestjs",patterns:[/nestjs/i,/\bnest\b/i,/@nestjs\//]},{tag:"tailwind",patterns:[/tailwind/i,/tailwindcss/i]},{tag:"css",patterns:[/\.css\b/,/\.scss\b/,/\.sass\b/,/styled-components/i]},{tag:"node",patterns:[/node\.js/i,/\bnodejs\b/i,/package\.json/i,/\bnpm\b/i]},{tag:"docker",patterns:[/\bdocker\b/i,/dockerfile/i,/docker-compose/i]},{tag:"sql",patterns:[/\bsql\b/i,/postgres|mysql|sqlite/i,/prisma|typeorm|sequelize/i]},{tag:"mongodb",patterns:[/\bmongo\b/i,/mongodb/i,/mongoose/i]},{tag:"graphql",patterns:[/graphql/i,/\.graphql\b/,/apollo/i]},{tag:"git",patterns:[/\bgit\s+(commit|push|pull|merge|rebase|checkout|branch)/i]},{tag:"unity",patterns:[/\bunity\b/i,/gameobject|monobehaviour/i,/\.unity\b/]},{tag:"blender",patterns:[/\bblender\b/i,/\.blend\b/,/bpy\./i]},{tag:"threejs",patterns:[/three\.js/i,/threejs/i,/\br3f\b/i,/react-three/i]},{tag:"aws",patterns:[/\baws\b/i,/lambda|s3|ec2|dynamodb/i]},{tag:"firebase",patterns:[/firebase/i,/firestore/i]},{tag:"testing",patterns:[/\bjest\b/i,/\bvitest\b/i,/\.test\.|\.spec\./i,/testing/i]}],mc=[{tag:"bug-fix",patterns:[/\bfix\b/i,/\bbug\b/i,/\berror\b/i,/broken/i,/not working/i,/no funciona/i,/arregl/i]},{tag:"feature",patterns:[/\badd\b/i,/\bcreate\b/i,/\bimplement\b/i,/\bnew\b/i,/agreg/i,/crea /i]},{tag:"refactor",patterns:[/refactor/i,/restructur/i,/reorganiz/i,/clean.?up/i]},{tag:"styling",patterns:[/\bcss\b/i,/\bstyle\b/i,/\bdesign\b/i,/layout/i,/responsive/i,/color/i,/estilo/i]},{tag:"config",patterns:[/config/i,/setup/i,/install/i,/\.env\b/i,/configur/i]},{tag:"api",patterns:[/\bapi\b/i,/endpoint/i,/fetch|axios/i,/request/i,/rest\b/i]},{tag:"auth",patterns:[/auth/i,/login/i,/password/i,/token/i,/session/i,/jwt/i]},{tag:"database",patterns:[/database/i,/migration/i,/schema/i,/seed/i,/query/i]},{tag:"deployment",patterns:[/deploy/i,/ci.?cd/i,/pipeline/i,/production/i,/vercel|netlify|heroku/i]},{tag:"documentation",patterns:[/\bdocs?\b/i,/readme/i,/documentation/i,/comment/i]},{tag:"performance",patterns:[/performance/i,/optimi[zs]/i,/slow/i,/fast/i,/cache/i,/lazy/i]},{tag:"ui-ux",patterns:[/\bui\b/i,/\bux\b/i,/component/i,/button|modal|dialog|form/i,/animation/i]}];function fc(t,e){let a=new RegExp(e.source,e.flags.includes("g")?e.flags:e.flags+"g"),s=t.match(a);return s?s.length:0}function bn(t,e,a=1){let s=[];for(let i of e){let r=0;for(let n of i.patterns)r+=fc(t,n);r>=a&&s.push(i.tag)}return s}function gc(t){let e=new Set;t.project&&t.project!=="root"&&e.add(t.project);let s=t.messages.filter(n=>n.role==="human").slice(0,5).map(n=>n.text.replace(/[\s\S]*?<\/system-reminder>/g,"")).join(" "),r=t.messages.filter(n=>n.role==="assistant").flatMap(n=>n.toolCalls||[]);for(let n of bn(s,hc,3))e.add(n);for(let n of bn(s,mc,2))e.add(n);return r.some(n=>n.includes("mcp__blender"))&&e.add("blender"),r.some(n=>n.includes("mcp-unity")||n.includes("mcp__mcp-unity"))&&e.add("unity"),Array.from(e).sort()}function kn(t){for(let e of t)e.tags=gc(e)}var Qs=(0,yn.join)((0,wn.homedir)(),".claude","agentfiles-conversations.json"),Ht=class extends Pn.Events{items=[];_filter={kind:"all-conversations"};_sort="date";_dateRange="today";_activeTags=[];_searchQuery="";_loading=!1;tagData={...us};get filter(){return this._filter}get sort(){return this._sort}get dateRange(){return this._dateRange}get activeTags(){return this._activeTags}get searchQuery(){return this._searchQuery}get loading(){return this._loading}get allItems(){return this.items}get filteredItems(){let e=this.items;switch(this._filter.kind){case"conversation-project":{let a=this._filter.project;e=e.filter(s=>s.project===a);break}case"conversation-tag":{let a=this._filter.tag;e=e.filter(s=>s.tags.includes(a)||s.customTags.includes(a));break}case"conversation-favorites":e=e.filter(a=>a.isFavorite);break}if(this._dateRange!=="all"){let a=Date.now(),s={today:1,"7d":7,"30d":30,"90d":90,"180d":180}[this._dateRange],i=a-s*864e5;e=e.filter(r=>new Date(r.lastTimestamp).getTime()>=i)}if(this._activeTags.length>0&&(e=e.filter(a=>{let s=[...a.tags,...a.customTags];return this._activeTags.every(i=>s.includes(i))})),this._searchQuery){let a=this._searchQuery.toLowerCase();e=e.filter(s=>s.title.toLowerCase().includes(a)||s.project.toLowerCase().includes(a)||s.tags.some(i=>i.includes(a))||s.customTags.some(i=>i.includes(a))||s.messages.some(i=>i.text.toLowerCase().includes(a)))}return this._sort==="messages"&&(e=[...e].sort((a,s)=>s.messageCount-a.messageCount)),e}getProjectCounts(){let e=new Map;for(let a of this.items)e.set(a.project,(e.get(a.project)||0)+1);return e}getAllTags(){let e=new Map;for(let a of this.items)for(let s of[...a.tags,...a.customTags])e.set(s,(e.get(s)||0)+1);return e}refresh(){this._loading=!0,this.trigger("conversations-updated"),this.refreshAsync()}async refreshAsync(){this.loadTagData(),this.items=await $n(),kn(this.items),this.applyTagData(),this._loading=!1,this.trigger("conversations-updated")}loadTagData(){try{(0,Ue.existsSync)(Qs)&&(this.tagData=JSON.parse((0,Ue.readFileSync)(Qs,"utf-8")))}catch{this.tagData={...us}}}saveTagData(){try{(0,Ue.writeFileSync)(Qs,JSON.stringify(this.tagData,null,2),"utf-8")}catch{}}applyTagData(){for(let e of this.items)e.customTags=this.tagData.customTags[e.uuid]||[],e.isFavorite=this.tagData.favorites.includes(e.uuid)}setFilter(e){this._filter=e,this.trigger("conversations-updated")}setSort(e){this._sort=e,this.trigger("conversations-updated")}setDateRange(e){this._dateRange=e,this.trigger("conversations-updated")}toggleTag(e){let a=this._activeTags.indexOf(e);a>=0?this._activeTags.splice(a,1):this._activeTags.push(e),this.trigger("conversations-updated")}clearTags(){this._activeTags=[],this.trigger("conversations-updated")}setSearch(e){this._searchQuery=e,this.trigger("conversations-updated")}toggleFavorite(e){let a=this.tagData.favorites.indexOf(e);a>=0?this.tagData.favorites.splice(a,1):this.tagData.favorites.push(e),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.isFavorite=!s.isFavorite),this.trigger("conversations-updated")}addCustomTag(e,a){this.tagData.customTags[e]||(this.tagData.customTags[e]=[]);let s=this.tagData.customTags[e];s.includes(a)||s.push(a),this.saveTagData();let i=this.items.find(r=>r.uuid===e);i&&!i.customTags.includes(a)&&i.customTags.push(a),this.trigger("conversations-updated")}removeCustomTag(e,a){this.tagData.customTags[e]&&(this.tagData.customTags[e]=this.tagData.customTags[e].filter(i=>i!==a)),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.customTags=s.customTags.filter(i=>i!==a)),this.trigger("conversations-updated")}getItem(e){return this.items.find(a=>a.uuid===e)}};var Pe=require("obsidian");function Qc(t){return t.replace(/<[^>]+>/g,"").replace(/\[Image #?\d*\]/gi,"").replace(/\s+/g," ").trim()||"(untitled)"}function Sc(t){if(!t)return"";let e=Date.now()-new Date(t).getTime(),a=Math.floor(e/6e4);if(a<60)return`${a}m ago`;let s=Math.floor(a/60);if(s<24)return`${s}h ago`;let i=Math.floor(s/24);return i<30?`${i}d ago`:`${Math.floor(i/30)}mo ago`}function vc(t){return t?new Date(t).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):""}var Ft=class{containerEl;store;onSelect;selectedUuid=null;inputEl=null;toolbarEl=null;listEl=null;constructor(e,a,s){this.containerEl=e,this.store=a,this.onSelect=s}setSelected(e){this.selectedUuid=e}render(){this.inputEl||(this.containerEl.empty(),this.containerEl.addClass("as-list"),this.searchRowEl=this.containerEl.createDiv("as-search"),this.inputEl=this.searchRowEl.createEl("input",{type:"text",placeholder:"Search conversations...",cls:"as-search-input"}),this.inputEl.addEventListener("input",()=>{this.store.setSearch(this.inputEl.value)}),this.toolbarEl=this.containerEl.createDiv("as-conv-toolbar"),this.listEl=this.containerEl.createDiv("as-list-items as-conv-list")),this.inputEl.value=this.store.searchQuery,this.renderSearchActions(),this.renderTagStrip(),this.renderList()}searchRowEl=null;searchActionsEl=null;outsideClickCleanup=null;dateDropdownEl=null;tagDropdownEl=null;openDropdown=null;closeAllDropdowns(){this.openDropdown=null,this.dateDropdownEl?.removeClass("is-open"),this.tagDropdownEl?.removeClass("is-open"),this.outsideClickCleanup&&(this.outsideClickCleanup(),this.outsideClickCleanup=null)}toggleDropdown(e,a){if(this.openDropdown===e){this.closeAllDropdowns();return}this.closeAllDropdowns(),this.openDropdown=e,(e==="date"?this.dateDropdownEl:this.tagDropdownEl)?.addClass("is-open");let i=r=>{a.contains(r.target)||this.closeAllDropdowns()};window.setTimeout(()=>activeDocument.addEventListener("click",i),0),this.outsideClickCleanup=()=>activeDocument.removeEventListener("click",i)}renderSearchActions(){if(!this.searchRowEl)return;this.searchActionsEl&&this.searchActionsEl.remove(),this.searchActionsEl=this.searchRowEl.createDiv("as-conv-search-actions");let e=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),a=e.createEl("button",{cls:"as-conv-icon-btn"}),s=a.createSpan("as-conv-icon-btn-icon");(0,Pe.setIcon)(s,"calendar"),this.dateDropdownEl=e.createDiv("as-conv-dropdown"),this.openDropdown==="date"&&this.dateDropdownEl.addClass("is-open");let i=[{label:"Today",value:"today"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 90 days",value:"90d"},{label:"Last 6 months",value:"180d"},{label:"All time",value:"all"}];for(let g of i){let f=this.store.dateRange===g.value,w=this.dateDropdownEl.createDiv(`as-conv-dropdown-item ${f?"is-active":""}`),P=w.createSpan("as-conv-dropdown-check");f&&(0,Pe.setIcon)(P,"check"),w.createSpan({cls:"as-conv-dropdown-item-label",text:g.label}),w.addEventListener("click",Z=>{Z.stopPropagation(),this.store.setDateRange(g.value),this.closeAllDropdowns()})}a.addEventListener("click",g=>{g.stopPropagation(),this.toggleDropdown("date",e)});let r=this.store.getAllTags(),n=this.store.activeTags,o=r.size>0,l=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),O=l.createEl("button",{cls:"as-conv-icon-btn"});o||O.addClass("is-disabled"),n.length>0&&O.addClass("has-active");let c=O.createSpan("as-conv-icon-btn-icon");if((0,Pe.setIcon)(c,"tag"),this.tagDropdownEl=l.createDiv("as-conv-dropdown"),this.openDropdown==="tag"&&this.tagDropdownEl.addClass("is-open"),o){if(n.length>0){let f=this.tagDropdownEl.createDiv("as-conv-dropdown-item as-conv-dropdown-clear"),w=f.createSpan("as-conv-dropdown-item-icon");(0,Pe.setIcon)(w,"x"),f.createSpan({text:"Clear filters"}),f.addEventListener("click",P=>{P.stopPropagation(),this.store.clearTags()})}let g=Array.from(r.entries()).sort((f,w)=>w[1]-f[1]).slice(0,25);for(let[f,w]of g){let P=n.includes(f),Z=this.tagDropdownEl.createDiv(`as-conv-dropdown-item ${P?"is-active":""}`),Y=Z.createSpan("as-conv-dropdown-check");P&&(0,Pe.setIcon)(Y,"check"),Z.createSpan({cls:"as-conv-dropdown-item-label",text:f}),Z.createSpan({cls:"as-conv-dropdown-item-count",text:String(w)}),Z.addEventListener("click",Qe=>{Qe.stopPropagation(),this.store.toggleTag(f)})}}O.addEventListener("click",g=>{g.stopPropagation(),o&&this.toggleDropdown("tag",l)});let d=this.store.sort==="date"?"messages":"date",p=this.searchActionsEl.createEl("button",{cls:"as-conv-icon-btn"}),u=p.createSpan("as-conv-icon-btn-icon");(0,Pe.setIcon)(u,this.store.sort==="date"?"clock":"hash"),p.setAttribute("aria-label",`Sort by ${d}`),p.addEventListener("click",()=>this.store.setSort(d))}renderTagStrip(){if(!this.toolbarEl)return;this.toolbarEl.empty();let e=this.store.activeTags,a=this.store.filteredItems.length;if(e.length===0&&a===this.store.allItems.length)return;let s=this.toolbarEl.createDiv("as-conv-tag-strip");s.createSpan({cls:"as-conv-result-count",text:`${a} results`});for(let i of e){let r=s.createEl("button",{cls:"as-conv-tag-pill is-active"});r.createSpan({text:i});let n=r.createSpan("as-conv-tag-pill-x");(0,Pe.setIcon)(n,"x"),r.addEventListener("click",()=>this.store.toggleTag(i))}if(e.length>0){let i=s.createEl("button",{cls:"as-conv-tag-pill as-conv-tag-clear"});i.createSpan({text:"Clear all"}),i.addEventListener("click",()=>this.store.clearTags())}}renderList(){if(!this.listEl)return;if(this.listEl.empty(),this.store.loading){this.listEl.createDiv({cls:"as-list-empty",text:"Loading conversations..."});return}let e=this.store.filteredItems;if(e.length===0){this.listEl.createDiv({cls:"as-list-empty",text:"No conversations found"});return}let a="";for(let s of e){let i=vc(s.lastTimestamp);i!==a&&(a=i,this.listEl.createDiv({cls:"as-conv-date-header",text:i})),this.renderCard(this.listEl,s)}}renderCard(e,a){let s=e.createDiv("as-skill-card");a.uuid===this.selectedUuid&&s.addClass("is-selected");let i=s.createDiv("as-skill-header"),r=Qc(a.title),n=r.length>60?r.slice(0,60)+"...":r;if(i.createSpan({cls:"as-skill-name",text:n}),a.isFavorite){let O=i.createSpan("as-skill-star");(0,Pe.setIcon)(O,"star")}let o=[a.project,Sc(a.lastTimestamp),`${a.messageCount} msgs`].filter(Boolean).join(" \xB7 ");s.createDiv({cls:"as-skill-desc",text:o});let l=[...a.tags,...a.customTags].filter(O=>O!==a.project);if(l.length>0){let O=s.createDiv("as-skill-meta"),c=3;for(let d of l.slice(0,c)){let p=a.customTags.includes(d);O.createSpan({cls:`as-conv-tag ${p?"as-conv-tag-custom":""}`,text:d})}l.length>c&&O.createSpan({cls:"as-conv-tag as-conv-tag-more",text:`+${l.length-c}`})}s.addEventListener("click",()=>{this.selectedUuid=a.uuid,this.onSelect(a)})}};var z=require("obsidian"),Ne=require("fs"),dt=require("path");function Ss(t){return t?new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function $c(t){return t.replace(/[<>:"/\\|?*]/g,"").replace(/\.{2,}/g,"").replace(/\s+/g,"-").slice(0,80)}function xn(t,e){let a=t.firstTimestamp?new Date(t.firstTimestamp).toISOString().slice(0,10):"unknown-date",s=$c(t.title.slice(0,60));return`${e}/Claude Sessions/${a}-${s}.md`}function Zn(t){let{selectedMessages:e,conversation:a}=t,s=[...a.tags,...a.customTags],i=s.map(n=>`"${n}"`).join(", "),r=[];if(r.push("---"),r.push(`tags: [claude-session, ${i}]`),r.push(`session: ${a.uuid}`),r.push(`project: ${a.project}`),r.push(`date: ${a.firstTimestamp?new Date(a.firstTimestamp).toISOString().slice(0,10):"unknown"}`),r.push(`messages: ${a.messageCount}`),r.push("---"),r.push(""),r.push(`# ${a.title.slice(0,100)}`),r.push(""),r.push("## Context"),r.push(`- **Project:** ${a.project}`),r.push(`- **Started:** ${Ss(a.firstTimestamp)}`),r.push(`- **Last activity:** ${Ss(a.lastTimestamp)}`),r.push(`- **Messages:** ${a.messageCount}`),s.length>0&&r.push(`- **Tags:** ${s.map(n=>`\`${n}\``).join(" ")}`),r.push(""),e.length>0){r.push("## Key Snippets"),r.push("");for(let n of e){let o=n.role==="human"?"You":"Claude",l=Ss(n.timestamp);r.push(`### ${o} ${l?`(${l})`:""}`),r.push(""),n.role==="human"?r.push(`> ${n.text.replace(/\n/g,` +`),n=4,o=[];for(let l of r){let O=l.match(/^(\w[\w-]*)\s*:(.*)/);if(O){let c=O[1],d=O[2].trim();o.includes(c)&&e.push({from:n,to:n+c.length,severity:"warning",message:`Duplicate key: "${c}"`}),o.push(c),c==="name"&&(d?d.length>64?e.push({from:n,to:n+l.length,severity:"warning",message:`name exceeds 64 chars (${d.length})`}):CO.test(d)||e.push({from:n+c.length+2,to:n+l.length,severity:"warning",message:"name must be lowercase alphanumeric with single hyphens, no leading/trailing hyphens"}):e.push({from:n,to:n+l.length,severity:"error",message:"name is required"})),c==="description"&&(d?d.length>1024&&e.push({from:n,to:n+l.length,severity:"warning",message:`description exceeds 1024 chars (${d.length})`}):e.push({from:n,to:n+l.length,severity:"warning",message:"description is empty"})),c==="compatibility"&&d.length>500&&e.push({from:n,to:n+l.length,severity:"warning",message:`compatibility exceeds 500 chars (${d.length})`})}n+=l.length+1}return e});var Vr=require("@codemirror/language"),qr=Vr.foldService.of((t,e,a)=>{let s=t.doc.lineAt(e);if(s.number!==1||s.text.trim()!=="---")return null;for(let i=s.number+1;i<=t.doc.lines;i++){let r=t.doc.line(i);if(r.text.trim()==="---")return{from:s.to,to:r.to}}return null});function Gr(t){let{doc:e,parent:a,onSave:s}=t,i=[zr,(0,G.lineNumbers)(),(0,G.highlightActiveLineGutter)(),(0,G.highlightActiveLine)(),(0,G.highlightSpecialChars)(),(0,xe.history)(),(0,ue.foldGutter)(),(0,G.drawSelection)(),(0,ue.indentOnInput)(),(0,ue.bracketMatching)(),(0,Rt.closeBrackets)(),(0,ue.syntaxHighlighting)(Dr),G.EditorView.darkTheme.of(activeDocument.body.classList.contains("theme-dark")),Mr,qr,(0,Lt.lintGutter)(),G.EditorView.lineWrapping,G.keymap.of([{key:"Mod-s",run:r=>(s(r.state.doc.toString()),!0)},xe.indentWithTab,...Rt.closeBracketsKeymap,...xe.defaultKeymap,...xe.historyKeymap,...ue.foldKeymap,...Ir.searchKeymap,...Lt.lintKeymap])];return i.push(Rr()),new G.EditorView({state:Wr.EditorState.create({doc:e,extensions:i}),parent:a})}function _O(t){return Math.ceil(t.length/4)}function jO(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function Ur(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function EO(t){return new Date(t).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}var RO=new V.Component,Yt=class{containerEl;store;settings;saveSettings;currentItem=null;isEditing=!1;app;editorView=null;constructor(e,a,s,i,r){this.containerEl=e,this.store=a,this.settings=s,this.saveSettings=i,this.app=r.app}show(e){this.destroyEditor(),this.currentItem=e,this.isEditing=!1,this.render()}clear(){this.destroyEditor(),this.currentItem=null,this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.containerEl.createDiv("as-detail-empty");(0,V.setIcon)(e.createDiv("as-detail-empty-icon"),"file-text"),e.createDiv({text:"Select a skill to view"})}render(){this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.currentItem;if(!e)return this.clear();this.renderToolbar(e),this.isEditing?this.renderEditor(e):this.renderPreview(e)}renderToolbar(e){let a=this.containerEl.createDiv("as-detail-toolbar"),s=a.createDiv("as-toolbar-top"),i=s.createDiv("as-toolbar-left");i.createSpan({cls:"as-detail-title",text:e.name});for(let p of e.tools){let u=U.find(f=>f.id===p);if(!u)continue;let g=i.createSpan("as-tool-name-badge");g.setCssProps({"--tool-color":u.color}),W[p]&&oe(g,p,12),g.createSpan({text:u.name})}let r=s.createDiv("as-toolbar-right"),n=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Toggle favorite"}});(0,V.setIcon)(n,e.isFavorite?"star":"star-off"),n.addEventListener("click",()=>{this.store.toggleFavorite(e.id,this.settings),this.saveSettings(),this.render()});let o=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":this.isEditing?"Preview":"Edit"}});(0,V.setIcon)(o,this.isEditing?"eye":"pencil"),o.addEventListener("click",()=>{this.isEditing=!this.isEditing,this.render()});let l=r.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Show in system explorer"}});if((0,V.setIcon)(l,"folder-open"),l.addEventListener("click",()=>{ht(e.filePath)}),ee()){let p=r.createEl("button",{cls:"as-toolbar-btn as-toolbar-btn-danger",attr:{"aria-label":"Remove skill"}});(0,V.setIcon)(p,"trash-2"),p.addEventListener("click",()=>{je(this.app,"Remove skill",`Remove "${e.name}"? This will delete the skill files.`,()=>{let u=ze(`prune --skill ${e.name} --yes`);u.success?(new V.Notice(`Removed ${e.name}`,5e3),this.store.refresh(this.settings),this.clear()):new V.Notice(`Failed to remove: ${u.output}`,5e3)})})}let O=a.createDiv("as-detail-meta-bar"),c=_O(e.content),d=e.content.length;if(O.createSpan({cls:"as-meta-item",text:jO(e.fileSize)}),O.createSpan({cls:"as-meta-item",text:`${Ur(d)} chars`}),O.createSpan({cls:"as-meta-item",text:`~${Ur(c)} tokens`}),O.createSpan({cls:"as-meta-item",text:EO(e.lastModified)}),O.createSpan({cls:"as-meta-item as-meta-type",text:e.type}),e.usage&&e.usage.uses>0){let p=a.createDiv("as-detail-usage-bar");p.createSpan({cls:"as-usage-stat",text:`${e.usage.uses} uses`}),p.createSpan({cls:"as-usage-stat",text:`last: ${da(e.usage.lastUsed)}`}),e.usage.isStale&&p.createSpan({cls:"as-badge-stale",text:"stale"}),e.usage.isHeavy&&p.createSpan({cls:"as-badge-heavy",text:"heavy"})}}renderFrontmatter(e,a){let s=Object.keys(a.frontmatter),i=e.createDiv("as-frontmatter");if(a.filePath){let r=i.createDiv("as-fm-prop");r.createSpan({cls:"as-fm-key",text:"path"}),r.createSpan({cls:"as-fm-value",text:a.filePath})}if(!(s.length===0&&!a.filePath))for(let r of s){let n=a.frontmatter[r];if(n==null)continue;let o=i.createDiv("as-fm-prop");o.createSpan({cls:"as-fm-key",text:r});let l=typeof n=="object"?JSON.stringify(n):typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):JSON.stringify(n);l.length>200?o.createDiv({cls:"as-fm-value-long",text:l}):o.createSpan({cls:"as-fm-value",text:l})}}renderPreview(e){let a=this.containerEl.createDiv("as-detail-body");this.renderFrontmatter(a,e),this.renderWarnings(a,e),this.renderUsageSection(a,e),this.renderConflicts(a,e),this.renderTraces(a,e);let s=a.createDiv("as-detail-preview markdown-rendered");V.MarkdownRenderer.render(this.app,e.content,s,e.filePath,RO)}renderWarnings(e,a){let s=[];if(a.warnings?.oversized&&s.push(`${a.warnings.lineCount} lines (recommended: <500)`),a.warnings?.longDesc&&s.push(`Description is ${a.warnings.descChars} chars (recommended: <1024)`),a.conflicts&&a.conflicts.length>0){let o=a.conflicts.map(l=>l.skillName).join(", ");s.push(`Conflicts with: ${o}`)}if(s.length===0)return;let i=e.createDiv("as-warnings"),r=i.createDiv("as-warnings-icon");(0,V.setIcon)(r,"alert-triangle");let n=i.createDiv("as-warnings-list");for(let o of s)n.createDiv({cls:"as-warnings-item",text:o})}renderUsageSection(e,a){if(!a.usage||a.usage.uses===0)return;let s=e.createDiv("as-usage-section"),i=s.createDiv("as-usage-left");if(i.createSpan({cls:"as-usage-count",text:String(a.usage.uses)}),i.createSpan({cls:"as-usage-label",text:"uses"}),i.createSpan({cls:"as-usage-last",text:da(a.usage.lastUsed)}),a.usage.daily&&a.usage.daily.length>1){let r=s.createDiv("as-usage-spark");_s(r,a.usage.daily.map(n=>n.count),80,20)}}renderConflicts(e,a){if(!a.conflicts||a.conflicts.length===0)return;let s=e.createDiv("as-conflicts-section");s.createDiv({cls:"as-section-title",text:`Conflicts (${a.conflicts.length})`});for(let i of a.conflicts){let r=s.createDiv("as-conflict-row");r.createSpan({cls:"as-conflict-name",text:i.skillName}),r.createDiv("as-conflict-bar-wrap").createDiv("as-conflict-bar").setCssProps({"--bar-w":`${(i.similarity*100).toFixed(0)}%`}),r.createSpan({cls:"as-conflict-score",text:`${(i.similarity*100).toFixed(0)}%`})}}renderTraces(e,a){if(!ee())return;let s=Zs(a.name);if(s.length===0)return;let i=e.createDiv("as-traces-section");i.createDiv({cls:"as-section-title",text:`Recent traces (${s.length})`});let r=i.createDiv("as-traces-table");for(let n of s){let o=r.createDiv("as-trace-row"),l=new Date(n.timestamp);o.createSpan({cls:"as-trace-date",text:l.toLocaleDateString(void 0,{month:"short",day:"numeric"})}),o.createSpan({cls:"as-trace-model",text:n.model.replace("claude-","").replace("-4-6","")}),o.createSpan({cls:"as-trace-tokens",text:`${(n.tokens/1e3).toFixed(1)}k`}),o.createSpan({cls:"as-trace-cost",text:n.cost>0?`$${n.cost.toFixed(2)}`:""}),o.createSpan({cls:"as-trace-duration",text:`${(n.duration/1e3).toFixed(1)}s`})}i.createDiv({cls:"as-traces-hint",text:"skillkit trace --list --skill "+a.name})}renderPruneAction(e,a){let s=e.createDiv("as-prune-section"),i=s.createEl("button",{cls:"as-prune-btn",text:"Remove this skill"});s.createSpan({cls:"as-prune-hint",text:"This skill hasn't been used in 30+ days"}),i.addEventListener("click",()=>{je(this.app,"Remove skill",`Remove "${a.name}"? This will delete the skill files.`,()=>{let r=ze(`prune --skill ${a.name} --yes`);r.success?(new V.Notice(`Removed ${a.name}`,5e3),this.store.refresh(this.settings)):new V.Notice(`Failed to remove: ${r.output}`,5e3)})})}renderEditor(e){this.destroyEditor();let a=this.containerEl.createDiv("as-detail-body as-detail-body-editor"),s=a.createDiv("as-editor-cm");this.editorView=Gr({doc:e.content,parent:s,onSave:n=>this.saveFile(e,n)});let i=a.createDiv("as-save-bar");i.createEl("button",{cls:"as-save-btn",text:"Save"}).addEventListener("click",()=>{this.editorView&&this.saveFile(e,this.editorView.state.doc.toString())}),i.createSpan({cls:"as-save-hint",text:"Cmd+S to save"})}destroyEditor(){this.editorView&&(this.editorView.destroy(),this.editorView=null)}saveFile(e,a){try{(0,Nr.writeFileSync)(e.filePath,a,"utf-8"),e.content=a,new V.Notice(`Saved ${e.name}`,5e3)}catch(s){new V.Notice(`Failed to save: ${s instanceof Error?s.message:String(s)}`,5e3)}}};var he=require("obsidian");var ts=require("child_process"),J=require("fs"),C=require("path"),Dt=require("os"),Ot=require("obsidian"),D=(0,Dt.homedir)(),qe=(0,Dt.platform)()==="win32",Br=(0,C.join)(D,".agents",".skill-lock.json"),LO="https://skills.sh/api";async function as(t){if(t.length<2)return[];try{let a=(await(0,Ot.requestUrl)({url:`${LO}/search?q=${encodeURIComponent(t)}&limit=30`})).json;if(!a.skills)return[];let s=tn();return a.skills.map(i=>({...i,installed:s.has(i.name)}))}catch{return[]}}var Hr=new Map;async function YO(t){let e=Hr.get(t);if(e)return e;let i=(await(0,Ot.requestUrl)({url:`https://api.github.com/repos/${t}`})).json.default_branch||"main",o=((await(0,Ot.requestUrl)({url:`https://api.github.com/repos/${t}/git/trees/${i}?recursive=1`})).json.tree??[]).filter(O=>O.path.endsWith("/SKILL.md")).map(O=>O.path),l={branch:i,files:o};return Hr.set(t,l),l}function DO(t,e,a){let s=e.split("/"),i=s[s.length-1]||t,r=new Set([i,t]);for(let n of a.split("/")){t.startsWith(n+"-")&&r.add(t.slice(n.length+1));for(let o of n.split("-"))t.startsWith(o+"-")&&r.add(t.slice(o.length+1))}return r}async function Jr(t,e,a){try{let{branch:s,files:i}=await YO(t),r=DO(e,a,t),n=i.find(O=>{let c=O.replace("/SKILL.md","").split("/").pop()||"";return r.has(c)});n||(n=i.find(O=>{let c=O.replace("/SKILL.md","").split("/").pop()||"";return e.includes(c)||c.includes(e)}));let o=n||`skills/${e}/SKILL.md`;return(await(0,Ot.requestUrl)({url:`https://raw.githubusercontent.com/${t}/${s}/${o}`})).text}catch{return null}}async function Kr(){let t=["react","next","clerk","stripe","ai"],e=new Set,a=[];for(let s of t){let i=await as(s);for(let r of i)e.has(r.id)||(e.add(r.id),a.push(r))}return a.sort((s,i)=>i.installs-s.installs).slice(0,20)}function zO(){let t=[];if(qe){let a=process.env.APPDATA||(0,C.join)(D,"AppData","Roaming");t.push((0,C.join)(a,"npm"),(0,C.join)(D,".bun","bin"),(0,C.join)(D,"AppData","Local","npm"))}else t.push("/usr/local/bin","/opt/homebrew/bin",(0,C.join)(D,".local","bin"),(0,C.join)(D,".bun","bin"));let e=qe?(0,C.join)(D,"AppData","Roaming","nvm"):(0,C.join)(D,".nvm","versions","node");try{for(let a of(0,J.readdirSync)(e))t.push(qe?(0,C.join)(e,a):(0,C.join)(e,a,"bin"))}catch{}return[...t,process.env.PATH||""].join(C.delimiter)}function Fr(){let t=qe?["bunx.cmd","bunx.exe","bunx"]:["bunx"],e=[];if(qe){let a=process.env.APPDATA||(0,C.join)(D,"AppData","Roaming");e.push((0,C.join)(D,".bun","bin"),(0,C.join)(a,"npm"))}else e.push((0,C.join)(D,".bun","bin"),"/usr/local/bin","/opt/homebrew/bin");for(let a of e)for(let s of t)if((0,J.existsSync)((0,C.join)(a,s)))return(0,C.join)(a,s);return"npx"}function ss(t="auto"){return t==="npx"?"npx":Fr()}var en=[{id:"claude-code",label:"Claude Code"},{id:"cursor",label:"Cursor"},{id:"codex",label:"Codex"},{id:"github-copilot",label:"GitHub Copilot"},{id:"windsurf",label:"Windsurf"},{id:"amp",label:"Amp"},{id:"opencode",label:"OpenCode"},{id:"cline",label:"Cline"},{id:"gemini-cli",label:"Gemini CLI"},{id:"goose",label:"Goose"},{id:"kiro-cli",label:"Kiro"},{id:"kilo",label:"Kilo Code"},{id:"roo",label:"Roo Code"},{id:"continue",label:"Continue"},{id:"openhands",label:"OpenHands"},{id:"antigravity",label:"Antigravity"},{id:"warp",label:"Warp"},{id:"pi",label:"Pi"},{id:"replit",label:"Replit"}],zt={"claude-code":"claude-code",cursor:"cursor",codex:"codex",copilot:"github-copilot",windsurf:"windsurf",amp:"amp",opencode:"opencode",antigravity:"antigravity","claude-desktop":"claude-code",pi:"pi","global-agents":"claude-code",aider:"claude-code",cline:"cline","roo-code":"roo",kilocode:"kilo",continue:"continue",openhands:"openhands",goose:"goose"};function tn(){let t=new Set;if(!(0,J.existsSync)(Br))return t;try{let e=JSON.parse((0,J.readFileSync)(Br,"utf-8"));if(e.skills)for(let a of Object.keys(e.skills))t.add(a)}catch{}return t}var AO=[(0,C.join)(D,".claude","skills"),(0,C.join)(D,".cursor","skills"),(0,C.join)(D,".codex","skills"),(0,C.join)(D,".codeium","windsurf","skills"),(0,C.join)(D,".config","amp","skills"),(0,C.join)(D,".config","opencode","skills"),(0,C.join)(D,".copilot","skills"),(0,C.join)(D,".agents","skills")];function MO(t){for(let e of AO){let a=(0,C.join)(e,t);if((0,J.existsSync)(a))try{(0,J.rmSync)(a,{recursive:!0,force:!0})}catch{}}VO(t)}function VO(t){let e=(0,C.join)(D,".agents",".skill-lock.json");if((0,J.existsSync)(e))try{let a=JSON.parse((0,J.readFileSync)(e,"utf-8"));a.skills&&a.skills[t]&&(delete a.skills[t],(0,J.writeFileSync)(e,JSON.stringify(a,null,2)+` +`,"utf-8"))}catch{}}function At(t){let e=tn();for(let a of t)a.installed=e.has(a.name);return t}function is(t,e=12e4){return new Promise(a=>{(0,ts.exec)(t,{encoding:"utf-8",timeout:e,env:{...process.env,PATH:zO(),NO_COLOR:"1"},shell:qe?"cmd.exe":void 0},(s,i)=>{let r=String(i??"");!s||r.includes("Done")||r.includes("Installed")||r.includes("Removed")||r.includes("Updated")?a({success:!0,output:r}):a({success:!1,output:s?.message??"Command failed"})})})}async function an(t,e,a={}){let s=e.length>0?`-a ${e.join(" ")}`:"-a '*'",i=a.globalInstall?"-g":"",r=a.skillName?`-s ${a.skillName}`:"",o=`${ss(a.runner||"auto")} skills add ${t} ${s} ${i} ${r} -y`.replace(/\s+/g," ").trim();return is(o)}async function sn(t,e="auto"){let s=`${ss(e)} skills remove ${t} -y`,i=await is(s,3e4);return MO(t),{success:!0,output:i.output||`Cleaned ${t}`}}async function rn(t="auto"){let a=`${ss(t)} skills update`,s=await is(a),i=s.output.match(/Updated (\d+) skill/);return{...s,count:i?parseInt(i[1]):0}}function rs(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}var We=require("fs"),on=require("path"),ln=require("os"),qO=new Set(["Read","Write","Edit","MultiEdit","Bash","Glob","Grep","WebSearch","WebFetch","TodoRead","TodoWrite","Task","Agent","Skill","LSP","NotebookEdit","AskFollowupQuestion","AttemptCompletion","SearchReplace","InsertCodeBlock","ReadImages","ExecuteCommand","ListFiles","SearchFiles","ReadFile","WriteFile","ReplaceInFile","ListCodeDefinitionNames","BrowserAction","UseMcp","shell","shell_command","update_plan","create_plan","read_file","write_file","execute_command","spawn_agent","write_stdin","multi_tool_use.parallel"]);function nn(t){return!(qO.has(t)||t.startsWith("mcp__")||t.startsWith("mcp_"))}function WO(t){let e=t.top_skills.filter(s=>nn(s.name)),a=t.top_skills.filter(s=>!nn(s.name)).reduce((s,i)=>s+i.total,0);return{...t,top_skills:e,total_invocations:Math.max(0,t.total_invocations-a),unique_skills:e.length}}function IO(){let t=De("stats"),e=De("health"),a=De("burn"),s=De("context");return{stats:t,health:e,burn:a&&a.length>0?a[0]:null,context:s}}var ns=(0,on.join)((0,ln.homedir)(),".skillkit","dashboard-cache.json"),me=null,Ze=null;function GO(){if(!me&&(0,We.existsSync)(ns))try{let t=JSON.parse((0,We.readFileSync)(ns,"utf-8"));me=t.data,Ze=t.cachedAt}catch{}}function UO(){if(me)try{(0,We.writeFileSync)(ns,JSON.stringify({data:me,cachedAt:Ze},null,2),"utf-8")}catch{}}GO();var Mt=class{containerEl;app;constructor(e,a){this.containerEl=e,this.app=a}render(){if(this.containerEl.empty(),this.containerEl.addClass("as-dashboard"),!ee()){this.renderNoSkillkit();return}if(me)this.renderDashboard(me);else{let e=this.containerEl.createDiv("as-dash-loading");e.createDiv("as-dash-spinner"),e.createDiv({cls:"as-dash-loading-text",text:"Loading analytics..."}),window.setTimeout(()=>{let a=IO();me=a,Ze=Date.now(),UO(),e.remove(),this.renderDashboard(a)},10)}}renderDashboard(e){this.renderActionBar(e);let a=e.stats?WO(e.stats):null;if(a&&this.renderOverview(a,e.health),a&&this.renderTopSkills(a),e.health||e.context){let s=this.containerEl.createDiv("as-dash-row");e.health&&this.renderHealth(e.health,s),e.context&&this.renderContext(e.context,s)}e.burn&&this.renderBurn(e.burn),e.health&&this.renderStale(e.health)}renderActionBar(e){let a=this.containerEl.createDiv("as-dash-action-bar");if(Ze){let n=Math.round((Date.now()-Ze)/1e3),o=n<5?"just now":n<60?`${n}s ago`:`${Math.round(n/60)}m ago`;a.createSpan({cls:"as-dash-updated",text:`Updated ${o}`})}let s=a.createDiv("as-dash-action-buttons"),i=s.createEl("button",{cls:"as-action-btn",text:"Update skills"});i.addEventListener("click",()=>{i.setText("Updating..."),i.disabled=!0,rn().then(n=>{if(n.success){let o=n.count>0?`Updated ${n.count} skill(s)`:"All skills up to date";new he.Notice(o,5e3),me=null,Ze=null,this.render()}else new he.Notice(`Update failed: ${n.output}`,5e3);i.setText("Update skills"),i.disabled=!1})});let r=s.createEl("button",{cls:"as-action-btn",text:"Scan sessions"});if(r.addEventListener("click",()=>{r.setText("Scanning..."),r.disabled=!0,window.setTimeout(()=>{let n=ze("scan");n.success?(new he.Notice("Scan complete",5e3),me=null,Ze=null,this.render()):new he.Notice(`Scan failed: ${n.output}`,5e3),r.setText("Scan sessions"),r.disabled=!1},10)}),e.health&&e.health.usage.unused_30d>0){let n=s.createEl("button",{cls:"as-action-btn as-action-btn-danger",text:`Prune ${e.health.usage.unused_30d} stale`});n.addEventListener("click",()=>{je(this.app,"Prune stale skills",`Remove ${e.health.usage.unused_30d} unused skills? This cannot be undone.`,()=>{n.setText("Pruning..."),n.disabled=!0,window.setTimeout(()=>{let o=ze("prune --yes");o.success?(new he.Notice("Pruned stale skills",5e3),me=null,Ze=null,this.render()):new he.Notice(`Prune failed: ${o.output}`,5e3),n.setText(`Prune ${e.health.usage.unused_30d} stale`),n.disabled=!1},10)})})}}renderNoSkillkit(){let e=this.containerEl.createDiv("as-dash-empty"),a=e.createDiv("as-dash-empty-icon");(0,he.setIcon)(a,"bar-chart-2"),e.createEl("h3",{text:"Dashboard requires skillkit"}),e.createEl("p",{text:"Install skillkit to unlock usage analytics, burn rate, context tax, and more."}),e.createDiv("as-dash-install-cmd").createEl("code",{text:"npm i -g @crafter/skillkit && skillkit scan"}),e.createEl("a",{cls:"as-skillkit-link",text:"Learn more",href:"https://www.npmjs.com/package/@crafter/skillkit"}).addEventListener("click",r=>{r.preventDefault(),ut("https://www.npmjs.com/package/@crafter/skillkit")})}renderOverview(e,a){let s=this.containerEl.createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Overview"});let i=s.createDiv("as-dash-stats");if(this.statCard(i,String(e.total_invocations),"invocations","activity"),this.statCard(i,String(e.unique_skills),"active skills","sparkles"),this.statCard(i,String(a?.installed??0),"installed","package"),this.statCard(i,String(a?.usage.unused_30d??0),"stale","alert-triangle"),e.streak&&e.streak.current>0){let r=s.createDiv("as-dash-streak-row");r.createSpan({cls:"as-streak-value",text:`${e.streak.current} day streak`}),e.streak.current>=7&&r.createSpan({cls:"as-streak-fire",text:"on fire"}),r.createSpan({cls:"as-streak-longest",text:`longest: ${e.streak.longest}d`})}if(e.velocity&&e.velocity.this_week>0){let r=s.createDiv("as-dash-velocity-row");r.createSpan({text:`This week: $${e.velocity.this_week.toFixed(0)}`}),r.createSpan({cls:"as-velocity-vs",text:`vs $${e.velocity.last_week.toFixed(0)} last week`});let n=e.velocity.change_pct,o=n>0?"as-velocity-up":n<0?"as-velocity-down":"",l=n>0?"+":"";r.createSpan({cls:`as-velocity-change ${o}`,text:`${l}${n.toFixed(0)}%`})}}statCard(e,a,s,i){let r=e.createDiv("as-stat-card"),n=r.createDiv("as-stat-icon");(0,he.setIcon)(n,i),r.createDiv({cls:"as-stat-value",text:a}),r.createDiv({cls:"as-stat-label",text:s})}renderTopSkills(e){if(e.top_skills.length===0)return;let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Top Skills (${e.period.days}d)`});let s=e.top_skills[0]?.total||1,i=a.createDiv("as-dash-bars");for(let r of e.top_skills.slice(0,10)){let n=i.createDiv("as-bar-row");n.createSpan({cls:"as-bar-name",text:r.name}),n.createDiv("as-bar-wrap").createDiv("as-bar-fill").setCssProps({"--bar-w":`${r.total/s*100}%`}),n.createSpan({cls:"as-bar-count",text:String(r.total)})}}renderHealth(e,a){let s=(a||this.containerEl).createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Health"});let i=e.usage.used_30d+e.usage.unused_30d,r=i>0?Math.round(e.usage.used_30d/i*100):0,n=s.createDiv("as-dash-health-row"),o=n.createDiv("as-donut");o.setCssProps({"--pct":`${r}`}),o.createDiv({cls:"as-donut-label",text:`${r}%`}),o.createDiv({cls:"as-donut-sub",text:"active"});let l=n.createDiv("as-health-details");l.createDiv({cls:"as-health-line",text:`${e.usage.used_30d} used in 30d`}),l.createDiv({cls:"as-health-line as-health-warn",text:`${e.usage.unused_30d} never triggered`});let c=l.createDiv("as-budget-bar").createDiv("as-budget-fill");c.setCssProps({"--bar-w":`${e.metadata.pct}%`}),e.metadata.pct>80&&c.addClass("as-budget-over"),l.createDiv({cls:"as-health-line",text:`Metadata budget: ${e.metadata.pct}%`})}renderBurn(e){let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Burn Rate \u2014 ${e.agent} (${e.period.days}d)`});let s=a.createDiv("as-dash-stats as-dash-stats-sm");if(this.statCard(s,`$${Math.round(e.cost.total).toLocaleString()}`,"total cost","flame"),this.statCard(s,`$${Math.round(e.cost.total/(e.period.days||1)).toLocaleString()}`,"daily avg","trending-up"),this.statCard(s,`${(e.period.sessions||0).toLocaleString()}`,"sessions","terminal"),this.statCard(s,`${((e.period.api_calls||0)/1e3).toFixed(0)}k`,"API calls","zap"),e.by_model&&e.by_model.length>0){let o=a.createDiv("as-model-breakdown");for(let l of e.by_model.slice(0,4)){let O=o.createDiv("as-model-row");O.createSpan({cls:"as-model-name",text:l.model}),O.createSpan({cls:"as-model-calls",text:`${l.apiCalls.toLocaleString()} calls`}),l.costUsd>0&&O.createSpan({cls:"as-model-cost",text:`$${Math.round(l.costUsd).toLocaleString()}`})}}let i=e.by_day.slice(-14);if(i.length===0)return;let r=Math.max(...i.map(o=>o.costUsd),1),n=a.createDiv("as-burn-chart");for(let o of i){let l=n.createDiv("as-burn-col"),O=l.createDiv("as-burn-bar"),c=Math.max(2,o.costUsd/r*100);O.setCssProps({"--bar-h":`${c}%`}),O.title=`${o.date}: $${o.costUsd.toFixed(0)}`,l.createDiv({cls:"as-burn-date",text:o.date.slice(8)})}}renderContext(e,a){let s=(a||this.containerEl).createDiv("as-dash-section");s.createDiv({cls:"as-dash-title",text:"Context Tax"});let i=e.always_loaded.total_tokens,r=[{label:"CLAUDE.md",tokens:e.always_loaded.claude_md_tokens,cls:"as-ctx-claude"},{label:"Skills metadata",tokens:e.always_loaded.skill_metadata_tokens,cls:"as-ctx-skills"},{label:"Memory",tokens:e.always_loaded.memory_tokens,cls:"as-ctx-memory"}],n=s.createDiv("as-ctx-bar");for(let O of r){let c=n.createDiv(`as-ctx-part ${O.cls}`);c.setCssProps({"--bar-w":`${O.tokens/i*100}%`}),c.title=`${O.label}: ${(O.tokens/1e3).toFixed(1)}k tokens`}let o=s.createDiv("as-ctx-legend");for(let O of r){let c=o.createDiv("as-ctx-legend-item");c.createSpan({cls:`as-ctx-dot ${O.cls}`}),c.createSpan({text:`${O.label}: ${(O.tokens/1e3).toFixed(1)}k`})}let l=s.createDiv("as-ctx-costs");l.createDiv({text:`Per session (cached): $${e.session_estimate.with_cache.toFixed(2)}`}),l.createDiv({text:`Without cache: $${e.session_estimate.without_cache.toFixed(2)}`}),l.createDiv({cls:"as-ctx-savings",text:`Cache saves ${e.session_estimate.savings_pct.toFixed(0)}%`})}renderStale(e){if(e.usage.never_used.length===0)return;let a=this.containerEl.createDiv("as-dash-section");a.createDiv({cls:"as-dash-title",text:`Stale skills (${e.usage.unused_30d})`});let s=a.createDiv("as-stale-list");for(let i of e.usage.never_used.slice(0,20))s.createDiv("as-stale-item").createSpan({text:i});e.usage.never_used.length>20&&s.createDiv({cls:"as-stale-more",text:`+${e.usage.never_used.length-20} more`})}};var pe=require("obsidian"),Ge=require("fs"),Qn=require("path"),Sn=require("os");var ce=require("obsidian"),Ie=require("fs"),fn=require("path"),gn=require("os");var j=require("fs"),L=require("path"),Vt=require("os"),cn=require("obsidian"),dn=require("crypto");var On=new Set(["readme.md","license","license.md","changelog.md",".ds_store","thumbs.db"]);function NO(t){return(0,dn.createHash)("sha256").update(t).digest("hex").slice(0,12)}function BO(t){let e=t.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!e)return{frontmatter:{},content:t};try{let a=(0,cn.parseYaml)(e[1]);return{frontmatter:typeof a=="object"&&a?a:{},content:e[2]}}catch{return{frontmatter:{},content:t}}}function HO(t,e,a,s="auto",i="skill"){if(i==="command")return typeof t.name=="string"&&t.name?t.name:(0,L.basename)(a,(0,L.extname)(a));if(s==="auto"){if(typeof t.name=="string"&&t.name)return t.name;let n=e.match(/^#\s+(.+)$/m);if(n)return n[1].trim()}let r=(0,L.basename)(a,(0,L.extname)(a));return r==="SKILL"?(0,L.basename)((0,L.join)(a,"..")):r}function pn(t,e,a,s="auto",i=0){if(!(0,j.existsSync)(t)||i>3)return[];let r=[];for(let n of(0,j.readdirSync)(t,{withFileTypes:!0})){let o=(0,L.join)(t,n.name);if(!(n.isDirectory()||n.isSymbolicLink()&&(0,j.statSync)(o,{throwIfNoEntry:!1})?.isDirectory()))continue;let O=(0,L.join)(o,"SKILL.md");if((0,j.existsSync)(O)){let c=ct(O,e,a,"directory-with-skillmd",s);c&&r.push(c)}else r.push(...pn(o,e,a,s,i+1))}return r}function FO(t,e,a,s="auto"){if(!(0,j.existsSync)(t))return[];let i=[];for(let r of(0,j.readdirSync)(t,{withFileTypes:!0})){let n=(0,L.join)(t,r.name);if(r.isDirectory()||r.isSymbolicLink()&&(0,j.statSync)(n,{throwIfNoEntry:!1})?.isDirectory()){let c=(0,L.join)(n,"SKILL.md");if((0,j.existsSync)(c)){let u=ct(c,e,a,"flat-md",s);u&&i.push(u);continue}let d=(0,j.readdirSync)(n).filter(u=>u.endsWith(".md")&&!On.has(u.toLowerCase())),p=d.find(u=>u.toLowerCase()===`${r.name.toLowerCase()}.md`)||d[0];if(p){let u=ct((0,L.join)(n,p),e,a,"flat-md",s);u&&i.push(u)}continue}let l=r.name.toLowerCase();if(!l.endsWith(".md")||On.has(l))continue;let O=ct(n,e,a,"flat-md",s);O&&i.push(O)}return i}function JO(t,e,a,s="auto"){if(!(0,j.existsSync)(t))return[];let i=[];for(let r of(0,j.readdirSync)(t,{withFileTypes:!0})){if(!r.name.endsWith(".mdc")&&!r.name.endsWith(".md")||r.isDirectory())continue;let n=ct((0,L.join)(t,r.name),e,a,"mdc",s);n&&i.push(n)}return i}function ct(t,e,a,s="directory-with-skillmd",i="auto"){try{let r=(0,j.readFileSync)(t,"utf-8"),n=(0,j.statSync)(t),{frontmatter:o,content:l}=BO(r),O=HO(o,l,t,i,e),c=typeof o.description=="string"?o.description:"",d=typeof o.globs=="string"?o.globs:Array.isArray(o.globs)?o.globs.join(","):void 0,p=typeof o.alwaysApply=="boolean"?o.alwaysApply:void 0,u;try{u=(0,j.realpathSync)(t)}catch{u=t}return{id:NO(u),name:O,description:c,type:e,tools:[a],filePath:t,realPath:u,dirPath:(0,L.join)(t,".."),content:r,frontmatter:o,globs:d,alwaysApply:p,lastModified:n.mtimeMs,fileSize:n.size,isFavorite:!1,collections:[]}}catch{return null}}function os(t,e,a="auto"){switch(t.pattern){case"directory-with-skillmd":return pn(t.baseDir,t.type,e,a);case"flat-md":return FO(t.baseDir,t.type,e,a);case"mdc":return JO(t.baseDir,t.type,e,a)}}function KO(t,e){let a=[],s=[{sub:".claude/skills",type:"skill",pattern:"directory-with-skillmd"},{sub:".claude/commands",type:"command",pattern:"flat-md"},{sub:".claude/agents",type:"agent",pattern:"flat-md"},{sub:".cursor/skills",type:"skill",pattern:"directory-with-skillmd"},{sub:".codex/skills",type:"skill",pattern:"directory-with-skillmd"}];for(let i of s){let r=(0,L.join)(t,i.sub);if(!(0,j.existsSync)(r))continue;let n={baseDir:r,type:i.type,pattern:i.pattern};a.push(...os(n,e))}return a}function un(t){return t.projectsHomeDir||(0,Vt.homedir)()}function ec(t,e){let a=(0,Vt.homedir)(),s=[];for(let i of[...e.paths,...e.agentPaths]){let r=(0,L.relative)(a,i.baseDir);if(r.startsWith("..")||r.startsWith("/"))continue;let n=(0,L.join)(t,r);if((0,j.existsSync)(n))try{s.push(...os({...i,baseDir:n},e.id))}catch{}}return s}function tc(t){let e=un(t);if(!(0,j.existsSync)(e))return[];let a=[];try{let s=new Set(["node_modules",".Trash","Library","Applications","Music","Movies","Pictures","Public"]);for(let i of(0,j.readdirSync)(e,{withFileTypes:!0})){if(!i.isDirectory()&&!i.isSymbolicLink()||s.has(i.name))continue;let r=(0,L.join)(e,i.name);for(let n of U){if(!n.isInstalled())continue;let o=t.tools[n.id];if(o&&!o.enabled)continue;let l=ec(r,n);l.length>0&&a.push({items:l,toolId:n.id})}}}catch{}return a}function ls(t,e){let a=e||(0,Vt.homedir)();if(!t.startsWith(a+L.sep))return"global";let i=t.slice(a.length+1).split(L.sep);return i.length>1&&!i[0].startsWith(".")?i[0]:"global"}function hn(t){ys();let e=t.namingMode||"auto",a=new Map,s=new Map;function i(r,n){let o=a.get(r.id);if(o){o.tools.includes(n)||o.tools.push(n);return}let l=s.get(r.name);if(l){let O=a.get(l);O&&!O.tools.includes(n)&&O.tools.push(n);return}r.isFavorite=t.favorites.includes(r.id);for(let[O,c]of Object.entries(t.collections))c.includes(r.id)&&r.collections.push(O);a.set(r.id,r),s.set(r.name,r.id)}for(let r of U){if(!r.isInstalled())continue;let n=t.tools[r.id];if(n&&!n.enabled)continue;let o=[...r.paths,...r.agentPaths];for(let l of o)for(let O of os(l,r.id,e))i(O,r.id)}for(let r of t.customScanPaths)if((0,j.existsSync)(r))for(let n of KO(r,"claude-code"))i(n,"claude-code");if(t.projectScanEnabled)for(let{items:r,toolId:n}of tc(t))for(let o of r)i(o,n);return a}function Os(){return U.filter(t=>t.isInstalled()).map(t=>t.id)}function mn(t){let e=[];for(let a of U)if(a.isInstalled())for(let s of[...a.paths,...a.agentPaths])(0,j.existsSync)(s.baseDir)&&e.push(s.baseDir);if(t?.projectScanEnabled){let a=un(t),s=new Set(["node_modules",".Trash","Library","Applications","Music","Movies","Pictures","Public"]);try{for(let i of(0,j.readdirSync)(a,{withFileTypes:!0})){if(!i.isDirectory()&&!i.isSymbolicLink()||s.has(i.name))continue;let r=(0,L.join)(a,i.name);for(let n of[".claude/skills",".claude/commands",".claude/agents",".cursor/skills",".codex/skills"]){let o=(0,L.join)(r,n);(0,j.existsSync)(o)&&e.push(o)}}}catch{}}return e}var cs={};for(let[t,e]of Object.entries(zt))cs[e]||(cs[e]=t);var ds=(0,fn.join)((0,gn.homedir)(),".skillkit","install-prefs.json"),Ye=null,qt=!0;function ac(){if(!Ye&&(0,Ie.existsSync)(ds))try{let t=JSON.parse((0,Ie.readFileSync)(ds,"utf-8"));Ye=new Set(t.agents||[]),qt=t.globalInstall??!0}catch{}}function sc(){try{(0,Ie.writeFileSync)(ds,JSON.stringify({agents:Ye?[...Ye]:[],globalInstall:qt}),"utf-8")}catch{}}ac();var Wt=class extends ce.Modal{skill;settings;onInstalled;selectedAgents;isGlobal;constructor(e,a,s,i){if(super(e),this.skill=a,this.settings=s,this.onInstalled=i,Ye)this.selectedAgents=new Set(Ye);else{this.selectedAgents=new Set;let r=Os();for(let n of r){let o=zt[n];o&&this.selectedAgents.add(o)}}this.isGlobal=qt}onOpen(){let{contentEl:e}=this;e.addClass("as-install-modal"),e.createEl("h3",{text:`Install ${this.skill.name}`}),e.createEl("p",{cls:"as-install-source",text:this.skill.source}),new ce.Setting(e).setName("Install globally").setDesc("Shared across all projects (~/.agents/skills/)").addToggle(l=>l.setValue(this.isGlobal).onChange(O=>{this.isGlobal=O})),new ce.Setting(e).setName("Agents").setHeading();let a=e.createDiv("as-install-scroll"),s=Os(),i=new Set(s.map(l=>zt[l]).filter(Boolean));for(let l of en){let O=i.has(l.id),c=cs[l.id],p=new ce.Setting(a).addToggle(f=>f.setValue(this.selectedAgents.has(l.id)).onChange(w=>{w?this.selectedAgents.add(l.id):this.selectedAgents.delete(l.id)})).nameEl,u=c&&W[c]?c:W[l.id]?l.id:W[l.id+"-code"]?l.id+"-code":W[l.id+"-cli"]?l.id+"-cli":null,g=p.createSpan("as-install-agent-icon");u?oe(g,u,14):g.addClass("as-install-agent-placeholder"),p.createSpan({text:l.label}),O&&p.createSpan({cls:"as-install-detected",text:"detected"})}let r=e.createDiv("as-install-footer");r.createEl("button",{text:"Cancel"}).addEventListener("click",()=>this.close()),r.createEl("button",{cls:"mod-cta",text:"Install"}).addEventListener("click",()=>this.doInstall())}doInstall(){let e=[...this.selectedAgents];if(e.length===0){new ce.Notice("Select at least one agent",5e3);return}Ye=new Set(this.selectedAgents),qt=this.isGlobal,sc(),this.close(),new ce.Notice(`Installing ${this.skill.name}...`,3e3),an(this.skill.source,e,{runner:this.settings.packageRunner,globalInstall:this.isGlobal,skillName:this.skill.name}).then(a=>{a.success?(new ce.Notice(`Installed ${this.skill.name}`,5e3),this.skill.installed=!0,this.onInstalled()):new ce.Notice(`Failed to install ${this.skill.name}`,5e3)})}onClose(){this.contentEl.empty()}};var ps=(0,Qn.join)((0,Sn.homedir)(),".skillkit","marketplace-popular.json"),de=null,It="",Te=null,ic=new pe.Component;function rc(){if(!de&&(0,Ge.existsSync)(ps))try{let t=JSON.parse((0,Ge.readFileSync)(ps,"utf-8"));de=At(t)}catch{}}function nc(){if(de)try{(0,Ge.writeFileSync)(ps,JSON.stringify(de),"utf-8")}catch{}}rc();var Gt=class{containerEl;inputEl=null;listEl=null;previewEl=null;searchTimer=null;selectedSkill=null;app;settings;onRefresh;constructor(e,a,s,i){this.containerEl=e,this.app=a.app,this.settings=s,this.onRefresh=i}render(){if(!this.inputEl){this.containerEl.empty(),this.containerEl.addClass("as-marketplace");let e=this.containerEl.createDiv("as-mp-search");this.inputEl=e.createEl("input",{type:"text",placeholder:"Search skills on skills.sh...",cls:"as-mp-search-input"}),this.inputEl.addEventListener("input",()=>{this.searchTimer&&window.clearTimeout(this.searchTimer),this.searchTimer=window.setTimeout(()=>{this.doSearch(this.inputEl.value)},300)});let a=this.containerEl.createDiv("as-mp-body");this.listEl=a.createDiv("as-mp-list"),this.previewEl=a.createDiv("as-mp-preview"),this.previewEl.createDiv({cls:"as-mp-hint",text:"Select a skill to preview."})}this.inputEl.value=It,It.length>=2&&Te?this.showResults(Te):de?this.showPopular():this.loadPopular()}async loadPopular(){if(!this.listEl)return;this.listEl.empty(),this.listEl.createDiv({cls:"as-mp-loading",text:"Loading popular skills..."}),de=await Kr(),nc(),this.showPopular()}refreshList(){de&&At(de),Te&&At(Te),It.length>=2&&Te?this.showResults(Te):this.showPopular()}showPopular(){if(this.listEl){if(this.listEl.empty(),!de||de.length===0){this.listEl.createDiv({cls:"as-mp-hint",text:"Search for skills to browse and install."});return}this.listEl.createDiv({cls:"as-mp-section-title",text:"Popular"});for(let e of de)this.renderSkillCard(e)}}showResults(e){if(this.listEl){if(this.listEl.empty(),e.length===0){this.listEl.createDiv({cls:"as-mp-hint",text:"No skills found."});return}for(let a of e)this.renderSkillCard(a)}}async doSearch(e){if(!this.listEl)return;if(It=e,e.length<2){Te=null,this.showPopular();return}this.listEl.empty(),this.listEl.createDiv({cls:"as-mp-loading",text:"Searching..."});let a=await as(e);Te=a,this.showResults(a)}renderSkillCard(e){if(!this.listEl)return;let a=this.listEl.createDiv("as-mp-card");this.selectedSkill?.id===e.id&&a.addClass("is-selected");let s=a.createDiv("as-mp-card-header");s.createSpan({cls:"as-mp-card-name",text:e.name}),e.installed&&s.createSpan({cls:"as-mp-installed-badge",text:"Installed"}),a.createDiv({cls:"as-mp-card-source",text:e.source});let i=a.createDiv("as-mp-card-meta"),r=i.createSpan("as-mp-dl-icon");(0,pe.setIcon)(r,"download"),i.createSpan({cls:"as-mp-card-installs",text:rs(e.installs)}),a.addEventListener("click",()=>{this.selectedSkill=e,this.listEl&&this.listEl.querySelectorAll(".as-mp-card").forEach(n=>n.removeClass("is-selected")),a.addClass("is-selected"),this.showPreview(e)})}async showPreview(e){if(!this.previewEl)return;this.previewEl.empty();let s=this.previewEl.createDiv("as-mp-preview-header").createDiv("as-mp-preview-top"),i=s.createDiv("as-mp-preview-left");i.createDiv({cls:"as-mp-preview-name",text:e.name});let r=i.createDiv("as-mp-preview-meta");r.createSpan({cls:"as-mp-preview-source",text:e.source});let n=r.createSpan("as-mp-dl-icon");(0,pe.setIcon)(n,"download"),r.createSpan({cls:"as-mp-preview-installs",text:rs(e.installs)});let o=s.createDiv("as-mp-preview-right");if(!e.installed)this.renderInstallButton(o,e);else{o.createSpan({cls:"as-mp-installed-label",text:"Installed"});let c=o.createEl("button",{cls:"as-mp-uninstall-btn",text:"Uninstall"});c.addEventListener("click",()=>{je(this.app,"Uninstall skill",`Remove "${e.name}" from all agents?`,()=>{c.setText("Removing..."),c.disabled=!0,new pe.Notice(`Removing ${e.name}...`,3e3),sn(e.name,this.settings.packageRunner).then(d=>{d.success?(new pe.Notice(`Removed ${e.name}`,5e3),e.installed=!1,this.refreshList(),this.showPreview(e)):(new pe.Notice(`Failed to remove ${e.name}`,5e3),c.setText("Uninstall"),c.disabled=!1)})})})}let l=this.previewEl.createDiv("as-mp-preview-content");l.createDiv({cls:"as-mp-loading",text:"Loading skill content..."});let O=await Jr(e.source,e.name,e.id);if(l.empty(),O){e.content=O;let c=l.createDiv("as-mp-rendered markdown-rendered");pe.MarkdownRenderer.render(this.app,O,c,"",ic)}else l.createDiv({cls:"as-mp-hint",text:"Could not load skill content."})}renderInstallButton(e,a){e.createEl("button",{cls:"as-mp-install-btn",text:"Install"}).addEventListener("click",()=>{new Wt(this.app,a,this.settings,()=>{this.refreshList(),this.showPreview(a)}).open()})}};var fe=require("obsidian"),ge=require("fs"),Ut=require("path");function oc(t){return["---",`name: ${t}`,'description: ""',"---","",`# ${t}`,"","## Instructions","",""].join(` +`)}function lc(t){return["---",`description: ${t}`,'globs: ""',"alwaysApply: false","---","",`# ${t}`,""].join(` +`)}function Oc(t){return[`# ${t}`,"",""].join(` +`)}function cc(t){return["---",'description: ""',"---","",`# ${t}`,""].join(` +`)}function vn(t,e){return t==="rule"&&e?".mdc":".md"}function us(t){if(t.directory)return oc(t.name);switch(t.type){case"rule":return lc(t.name);case"memory":return Oc(t.name);default:return cc(t.name)}}function dc(){let t=[];for(let e of U){if(!e.isInstalled())continue;let a=[];for(let s of[...e.paths,...e.agentPaths])a.push({sp:s,label:s.type});a.length>0&&t.push({tool:e,paths:a})}return t}var pc={skill:"sparkles",command:"terminal",agent:"bot",rule:"scroll",memory:"database"},Nt=class extends fe.Modal{onCreated;toolOptions;selectedTool=null;selectedPath=null;name="";step="tool";constructor(e,a){super(e),this.onCreated=a,this.toolOptions=dc()}onOpen(){this.modalEl.addClass("as-create-modal"),this.render()}render(){let{contentEl:e}=this;e.empty(),this.step==="tool"?this.renderToolStep(e):this.step==="type"?this.renderTypeStep(e):this.renderNameStep(e)}renderToolStep(e){this.renderHeader(e,"Choose tool",null);let a=e.createDiv("as-create-grid");for(let s of this.toolOptions){let i=a.createDiv("as-create-card");i.style.setProperty("--tool-color",s.tool.color);let r=i.createDiv("as-create-card-icon");W[s.tool.id]&&oe(r,s.tool.id,24),i.createDiv({cls:"as-create-card-name",text:s.tool.name}),i.addEventListener("click",()=>{this.selectedTool=s,s.paths.length===1?(this.selectedPath=s.paths[0],this.step="name"):this.step="type",this.render()})}}renderTypeStep(e){if(!this.selectedTool)return;this.renderHeader(e,`${this.selectedTool.tool.name}`,()=>{this.step="tool",this.render()}),e.createDiv("as-create-subtitle").setText("What do you want to create?");let s=e.createDiv("as-create-type-grid");for(let i of this.selectedTool.paths){let r=s.createDiv("as-create-type-card");r.style.setProperty("--tool-color",this.selectedTool.tool.color);let n=pc[i.label]||"file",o=r.createDiv("as-create-type-icon");(0,fe.setIcon)(o,n),r.createDiv({cls:"as-create-type-label",text:i.label}),r.addEventListener("click",()=>{this.selectedPath=i,this.step="name",this.render()})}}renderNameStep(e){if(!this.selectedTool||!this.selectedPath)return;let a=this.selectedTool.paths.length>1?"type":"tool";this.renderHeader(e,`New ${this.selectedPath.label}`,()=>{this.step=a,this.render()});let s=e.createDiv("as-create-badge");s.style.setProperty("--tool-color",this.selectedTool.tool.color);let i=s.createSpan("as-create-badge-icon");W[this.selectedTool.tool.id]&&oe(i,this.selectedTool.tool.id,14),s.createSpan({text:this.selectedTool.tool.name});let n=e.createDiv("as-create-input-wrap").createEl("input",{type:"text",placeholder:`my-${this.selectedPath.label}-name`,cls:"as-create-input"});n.value=this.name,n.addEventListener("input",()=>{this.name=n.value.trim()}),n.addEventListener("keydown",O=>{O.key==="Enter"&&this.name&&this.create()}),window.setTimeout(()=>n.focus(),10);let l=e.createDiv("as-create-actions").createEl("button",{text:`Create ${this.selectedPath.label}`,cls:"as-create-submit"});l.style.setProperty("--tool-color",this.selectedTool.tool.color),l.addEventListener("click",()=>this.create())}renderHeader(e,a,s){let i=e.createDiv("as-create-header");if(s){let r=i.createDiv("as-create-back");(0,fe.setIcon)(r,"chevron-left"),r.addEventListener("click",s)}i.createDiv({cls:"as-create-title",text:a})}create(){if(!this.name||!this.selectedPath)return;let e=this.name.toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9-]/g,"");if(!e){new fe.Notice("Invalid name");return}let a=this.selectedPath.sp,s;if(a.pattern==="directory-with-skillmd"){let i=(0,Ut.join)(a.baseDir,e);if((0,ge.existsSync)(i)){new fe.Notice(`Already exists: ${e}`);return}(0,ge.mkdirSync)(i,{recursive:!0}),s=(0,Ut.join)(i,"SKILL.md"),(0,ge.writeFileSync)(s,us({name:this.name,type:a.type,directory:!0}),"utf-8")}else{(0,ge.existsSync)(a.baseDir)||(0,ge.mkdirSync)(a.baseDir,{recursive:!0});let i=vn(a.type,a.pattern==="mdc");if(s=(0,Ut.join)(a.baseDir,`${e}${i}`),(0,ge.existsSync)(s)){new fe.Notice(`Already exists: ${e}${i}`);return}(0,ge.writeFileSync)(s,us({name:this.name,type:a.type,directory:!1}),"utf-8")}new fe.Notice(`Created ${this.name}`),this.close(),this.onCreated(s)}onClose(){this.contentEl.empty()}};var wn=require("obsidian"),Ue=require("fs"),xn=require("path"),Zn=require("os");var hs={customTags:{},favorites:[]},ms={tools:{},watchEnabled:!0,watchDebounceMs:500,deepSearchDefault:!1,deepSearchScope:"both",favorites:[],collections:{},customScanPaths:[],namingMode:"auto",projectScanEnabled:!0,projectsHomeDir:"",packageRunner:"auto"};var ne=require("fs"),ke=require("path"),Qs=require("os"),$n=require("readline"),uc=(0,ke.join)((0,Qs.homedir)(),".claude"),fs=(0,ke.join)(uc,"projects"),hc=5*1024*1024,gs=500;function mc(t){let e=(0,Qs.homedir)().split(ke.sep).filter(Boolean),a=e.join("-"),s=t;if(s.startsWith(a+"-"))s=s.slice(a.length+1);else if(s.startsWith("-")){s=s.slice(1);let r=e.join("-")+"-";s.startsWith(r)&&(s=s.slice(r.length))}let i=s.split("-").filter(Boolean);return i.length<=2?i.join("-")||"root":i.slice(-2).join("-")}function Bt(t){if(typeof t=="string")return t;if(Array.isArray(t)){let e=[];for(let a of t)if(typeof a=="object"&&a!==null){let s=a;s.type==="text"&&typeof s.text=="string"&&e.push(s.text)}return e.join(` +`)}return""}function bn(t){if(!Array.isArray(t))return[];let e=[];for(let a of t)if(typeof a=="object"&&a!==null){let s=a;s.type==="tool_use"&&typeof s.name=="string"&&e.push(s.name)}return e}function fc(t){let e=[],a="",s="";for(let i of t)try{let r=JSON.parse(i),n=typeof r.timestamp=="string"?r.timestamp:void 0;if(n&&(a||(a=n),s=n),r.type==="user"){let o=r.message;if(!o)continue;let l=Bt(o.content);l&&e.push({role:"human",text:l,timestamp:n||""})}if(r.type==="assistant"){let o=r.message;if(!o)continue;let l=Bt(o.content),O=bn(o.content);l&&e.push({role:"assistant",text:l,timestamp:n||"",toolCalls:O.length>0?O:void 0})}}catch{}return{messages:e,firstTimestamp:a,lastTimestamp:s}}function gc(){let t=[];if(!(0,ne.existsSync)(fs))return t;let e;try{e=(0,ne.readdirSync)(fs)}catch{return t}for(let a of e){let s=(0,ke.join)(fs,a);try{if(!(0,ne.statSync)(s).isDirectory())continue}catch{continue}let i=mc(a),r;try{r=(0,ne.readdirSync)(s).filter(n=>n.endsWith(".jsonl"))}catch{continue}for(let n of r){let o=(0,ke.join)(s,n);try{let l=(0,ne.statSync)(o);t.push({uuid:(0,ke.basename)(n,".jsonl"),project:i,projectPath:s,filePath:o,fileSize:l.size})}catch{continue}}}return t}function Qc(t){try{let a=(0,ne.readFileSync)(t.filePath,"utf-8").split(` +`).filter(O=>O.trim());if(a.length===0)return null;let s=a.length>gs?a.slice(0,gs):a,{messages:i,firstTimestamp:r,lastTimestamp:n}=fc(s);if(i.length===0)return null;let o=i.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";return{id:t.uuid,uuid:t.uuid,project:t.project,projectPath:t.projectPath,title:l,messages:i,messageCount:i.length,firstTimestamp:r,lastTimestamp:n,tags:[],customTags:[],isFavorite:!1,filePath:t.filePath}}catch{return null}}async function Sc(t){return new Promise(e=>{let a=[],s="",i="",r=0,n=(0,$n.createInterface)({input:(0,ne.createReadStream)(t.filePath,{encoding:"utf-8"}),crlfDelay:Number.POSITIVE_INFINITY});n.on("line",o=>{if(o.trim()){if(r++,r>gs){n.close();return}try{let l=JSON.parse(o),O=typeof l.timestamp=="string"?l.timestamp:void 0;if(O&&(s||(s=O),i=O),l.type==="user"){let c=l.message;if(!c)return;let d=Bt(c.content);d&&a.push({role:"human",text:d,timestamp:O||""})}if(l.type==="assistant"){let c=l.message;if(!c)return;let d=Bt(c.content),p=bn(c.content);d&&a.push({role:"assistant",text:d,timestamp:O||"",toolCalls:p.length>0?p:void 0})}}catch{}}}),n.on("close",()=>{if(a.length===0){e(null);return}let o=a.find(O=>O.role==="human"),l=o?o.text.slice(0,120).replace(/\n/g," "):"(empty conversation)";e({id:t.uuid,uuid:t.uuid,project:t.project,projectPath:t.projectPath,title:l,messages:a,messageCount:a.length,firstTimestamp:s,lastTimestamp:i,tags:[],customTags:[],isFavorite:!1,filePath:t.filePath})}),n.on("error",()=>e(null))})}async function kn(){let t=gc(),e=[],a=20;t.sort((s,i)=>i.fileSize-s.fileSize);for(let s=0;sn.fileSize>hc?Sc(n):Promise.resolve(Qc(n))));for(let n of r)n&&e.push(n)}return e.sort((s,i)=>(i.lastTimestamp||"").localeCompare(s.lastTimestamp||"")),e}var vc=[{tag:"react",patterns:[/\breact\b/i,/\.tsx\b/,/\.jsx\b/,/usestate|useeffect|useref/i]},{tag:"react-native",patterns:[/react.native/i,/\bexpo\b/i,/react-navigation/i]},{tag:"nextjs",patterns:[/next\.js/i,/\bnextjs\b/i,/next\.config/i]},{tag:"vue",patterns:[/\bvue\b/i,/\.vue\b/,/vuex|pinia/i]},{tag:"angular",patterns:[/\bangular\b/i,/\.component\.ts/i]},{tag:"svelte",patterns:[/\bsvelte\b/i,/\.svelte\b/]},{tag:"typescript",patterns:[/typescript/i,/tsconfig/i,/\.tsx\b/]},{tag:"javascript",patterns:[/javascript/i,/\.js\b/,/\.mjs\b/]},{tag:"python",patterns:[/\bpython\b/i,/\.py\b/,/\bpip\b/i,/django|flask|fastapi/i]},{tag:"rust",patterns:[/\brust\b/i,/\.rs\b/,/cargo\.toml/i]},{tag:"go",patterns:[/\bgolang\b/i,/\.go\b/,/go\.mod/i]},{tag:"java",patterns:[/\bjava\b/i,/\.java\b/,/gradle|maven/i]},{tag:"csharp",patterns:[/\bc#\b/i,/\.cs\b/,/unity|dotnet/i]},{tag:"swift",patterns:[/\bswift\b/i,/\.swift\b/,/swiftui/i]},{tag:"nestjs",patterns:[/nestjs/i,/\bnest\b/i,/@nestjs\//]},{tag:"tailwind",patterns:[/tailwind/i,/tailwindcss/i]},{tag:"css",patterns:[/\.css\b/,/\.scss\b/,/\.sass\b/,/styled-components/i]},{tag:"node",patterns:[/node\.js/i,/\bnodejs\b/i,/package\.json/i,/\bnpm\b/i]},{tag:"docker",patterns:[/\bdocker\b/i,/dockerfile/i,/docker-compose/i]},{tag:"sql",patterns:[/\bsql\b/i,/postgres|mysql|sqlite/i,/prisma|typeorm|sequelize/i]},{tag:"mongodb",patterns:[/\bmongo\b/i,/mongodb/i,/mongoose/i]},{tag:"graphql",patterns:[/graphql/i,/\.graphql\b/,/apollo/i]},{tag:"git",patterns:[/\bgit\s+(commit|push|pull|merge|rebase|checkout|branch)/i]},{tag:"unity",patterns:[/\bunity\b/i,/gameobject|monobehaviour/i,/\.unity\b/]},{tag:"blender",patterns:[/\bblender\b/i,/\.blend\b/,/bpy\./i]},{tag:"threejs",patterns:[/three\.js/i,/threejs/i,/\br3f\b/i,/react-three/i]},{tag:"aws",patterns:[/\baws\b/i,/lambda|s3|ec2|dynamodb/i]},{tag:"firebase",patterns:[/firebase/i,/firestore/i]},{tag:"testing",patterns:[/\bjest\b/i,/\bvitest\b/i,/\.test\.|\.spec\./i,/testing/i]}],$c=[{tag:"bug-fix",patterns:[/\bfix\b/i,/\bbug\b/i,/\berror\b/i,/broken/i,/not working/i,/no funciona/i,/arregl/i]},{tag:"feature",patterns:[/\badd\b/i,/\bcreate\b/i,/\bimplement\b/i,/\bnew\b/i,/agreg/i,/crea /i]},{tag:"refactor",patterns:[/refactor/i,/restructur/i,/reorganiz/i,/clean.?up/i]},{tag:"styling",patterns:[/\bcss\b/i,/\bstyle\b/i,/\bdesign\b/i,/layout/i,/responsive/i,/color/i,/estilo/i]},{tag:"config",patterns:[/config/i,/setup/i,/install/i,/\.env\b/i,/configur/i]},{tag:"api",patterns:[/\bapi\b/i,/endpoint/i,/fetch|axios/i,/request/i,/rest\b/i]},{tag:"auth",patterns:[/auth/i,/login/i,/password/i,/token/i,/session/i,/jwt/i]},{tag:"database",patterns:[/database/i,/migration/i,/schema/i,/seed/i,/query/i]},{tag:"deployment",patterns:[/deploy/i,/ci.?cd/i,/pipeline/i,/production/i,/vercel|netlify|heroku/i]},{tag:"documentation",patterns:[/\bdocs?\b/i,/readme/i,/documentation/i,/comment/i]},{tag:"performance",patterns:[/performance/i,/optimi[zs]/i,/slow/i,/fast/i,/cache/i,/lazy/i]},{tag:"ui-ux",patterns:[/\bui\b/i,/\bux\b/i,/component/i,/button|modal|dialog|form/i,/animation/i]}];function bc(t,e){let a=new RegExp(e.source,e.flags.includes("g")?e.flags:e.flags+"g"),s=t.match(a);return s?s.length:0}function Pn(t,e,a=1){let s=[];for(let i of e){let r=0;for(let n of i.patterns)r+=bc(t,n);r>=a&&s.push(i.tag)}return s}function kc(t){let e=new Set;t.project&&t.project!=="root"&&e.add(t.project);let s=t.messages.filter(n=>n.role==="human").slice(0,5).map(n=>n.text.replace(/[\s\S]*?<\/system-reminder>/g,"")).join(" "),r=t.messages.filter(n=>n.role==="assistant").flatMap(n=>n.toolCalls||[]);for(let n of Pn(s,vc,3))e.add(n);for(let n of Pn(s,$c,2))e.add(n);return r.some(n=>n.includes("mcp__blender"))&&e.add("blender"),r.some(n=>n.includes("mcp-unity")||n.includes("mcp__mcp-unity"))&&e.add("unity"),Array.from(e).sort()}function yn(t){for(let e of t)e.tags=kc(e)}var Ss=(0,xn.join)((0,Zn.homedir)(),".claude","agentfiles-conversations.json"),Ht=class extends wn.Events{items=[];_filter={kind:"all-conversations"};_sort="date";_dateRange="today";_activeTags=[];_searchQuery="";_loading=!1;tagData={...hs};get filter(){return this._filter}get sort(){return this._sort}get dateRange(){return this._dateRange}get activeTags(){return this._activeTags}get searchQuery(){return this._searchQuery}get loading(){return this._loading}get allItems(){return this.items}get filteredItems(){let e=this.items;switch(this._filter.kind){case"conversation-project":{let a=this._filter.project;e=e.filter(s=>s.project===a);break}case"conversation-tag":{let a=this._filter.tag;e=e.filter(s=>s.tags.includes(a)||s.customTags.includes(a));break}case"conversation-favorites":e=e.filter(a=>a.isFavorite);break}if(this._dateRange!=="all"){let a=Date.now(),s={today:1,"7d":7,"30d":30,"90d":90,"180d":180}[this._dateRange],i=a-s*864e5;e=e.filter(r=>new Date(r.lastTimestamp).getTime()>=i)}if(this._activeTags.length>0&&(e=e.filter(a=>{let s=[...a.tags,...a.customTags];return this._activeTags.every(i=>s.includes(i))})),this._searchQuery){let a=this._searchQuery.toLowerCase();e=e.filter(s=>s.title.toLowerCase().includes(a)||s.project.toLowerCase().includes(a)||s.tags.some(i=>i.includes(a))||s.customTags.some(i=>i.includes(a))||s.messages.some(i=>i.text.toLowerCase().includes(a)))}return this._sort==="messages"&&(e=[...e].sort((a,s)=>s.messageCount-a.messageCount)),e}getProjectCounts(){let e=new Map;for(let a of this.items)e.set(a.project,(e.get(a.project)||0)+1);return e}getAllTags(){let e=new Map;for(let a of this.items)for(let s of[...a.tags,...a.customTags])e.set(s,(e.get(s)||0)+1);return e}refresh(){this._loading=!0,this.trigger("conversations-updated"),this.refreshAsync()}async refreshAsync(){this.loadTagData(),this.items=await kn(),yn(this.items),this.applyTagData(),this._loading=!1,this.trigger("conversations-updated")}loadTagData(){try{(0,Ue.existsSync)(Ss)&&(this.tagData=JSON.parse((0,Ue.readFileSync)(Ss,"utf-8")))}catch{this.tagData={...hs}}}saveTagData(){try{(0,Ue.writeFileSync)(Ss,JSON.stringify(this.tagData,null,2),"utf-8")}catch{}}applyTagData(){for(let e of this.items)e.customTags=this.tagData.customTags[e.uuid]||[],e.isFavorite=this.tagData.favorites.includes(e.uuid)}setFilter(e){this._filter=e,this.trigger("conversations-updated")}setSort(e){this._sort=e,this.trigger("conversations-updated")}setDateRange(e){this._dateRange=e,this.trigger("conversations-updated")}toggleTag(e){let a=this._activeTags.indexOf(e);a>=0?this._activeTags.splice(a,1):this._activeTags.push(e),this.trigger("conversations-updated")}clearTags(){this._activeTags=[],this.trigger("conversations-updated")}setSearch(e){this._searchQuery=e,this.trigger("conversations-updated")}toggleFavorite(e){let a=this.tagData.favorites.indexOf(e);a>=0?this.tagData.favorites.splice(a,1):this.tagData.favorites.push(e),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.isFavorite=!s.isFavorite),this.trigger("conversations-updated")}addCustomTag(e,a){this.tagData.customTags[e]||(this.tagData.customTags[e]=[]);let s=this.tagData.customTags[e];s.includes(a)||s.push(a),this.saveTagData();let i=this.items.find(r=>r.uuid===e);i&&!i.customTags.includes(a)&&i.customTags.push(a),this.trigger("conversations-updated")}removeCustomTag(e,a){this.tagData.customTags[e]&&(this.tagData.customTags[e]=this.tagData.customTags[e].filter(i=>i!==a)),this.saveTagData();let s=this.items.find(i=>i.uuid===e);s&&(s.customTags=s.customTags.filter(i=>i!==a)),this.trigger("conversations-updated")}getItem(e){return this.items.find(a=>a.uuid===e)}};var Pe=require("obsidian");function Pc(t){return t.replace(/<[^>]+>/g,"").replace(/\[Image #?\d*\]/gi,"").replace(/\s+/g," ").trim()||"(untitled)"}function yc(t){if(!t)return"";let e=Date.now()-new Date(t).getTime(),a=Math.floor(e/6e4);if(a<60)return`${a}m ago`;let s=Math.floor(a/60);if(s<24)return`${s}h ago`;let i=Math.floor(s/24);return i<30?`${i}d ago`:`${Math.floor(i/30)}mo ago`}function wc(t){return t?new Date(t).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}):""}var Ft=class{containerEl;store;onSelect;selectedUuid=null;inputEl=null;toolbarEl=null;listEl=null;constructor(e,a,s){this.containerEl=e,this.store=a,this.onSelect=s}setSelected(e){this.selectedUuid=e}render(){this.inputEl||(this.containerEl.empty(),this.containerEl.addClass("as-list"),this.searchRowEl=this.containerEl.createDiv("as-search"),this.inputEl=this.searchRowEl.createEl("input",{type:"text",placeholder:"Search conversations...",cls:"as-search-input"}),this.inputEl.addEventListener("input",()=>{this.store.setSearch(this.inputEl.value)}),this.toolbarEl=this.containerEl.createDiv("as-conv-toolbar"),this.listEl=this.containerEl.createDiv("as-list-items as-conv-list")),this.inputEl.value=this.store.searchQuery,this.renderSearchActions(),this.renderTagStrip(),this.renderList()}searchRowEl=null;searchActionsEl=null;outsideClickCleanup=null;dateDropdownEl=null;tagDropdownEl=null;openDropdown=null;closeAllDropdowns(){this.openDropdown=null,this.dateDropdownEl?.removeClass("is-open"),this.tagDropdownEl?.removeClass("is-open"),this.outsideClickCleanup&&(this.outsideClickCleanup(),this.outsideClickCleanup=null)}toggleDropdown(e,a){if(this.openDropdown===e){this.closeAllDropdowns();return}this.closeAllDropdowns(),this.openDropdown=e,(e==="date"?this.dateDropdownEl:this.tagDropdownEl)?.addClass("is-open");let i=r=>{a.contains(r.target)||this.closeAllDropdowns()};window.setTimeout(()=>activeDocument.addEventListener("click",i),0),this.outsideClickCleanup=()=>activeDocument.removeEventListener("click",i)}renderSearchActions(){if(!this.searchRowEl)return;this.searchActionsEl&&this.searchActionsEl.remove(),this.searchActionsEl=this.searchRowEl.createDiv("as-conv-search-actions");let e=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),a=e.createEl("button",{cls:"as-conv-icon-btn"}),s=a.createSpan("as-conv-icon-btn-icon");(0,Pe.setIcon)(s,"calendar"),this.dateDropdownEl=e.createDiv("as-conv-dropdown"),this.openDropdown==="date"&&this.dateDropdownEl.addClass("is-open");let i=[{label:"Today",value:"today"},{label:"Last 7 days",value:"7d"},{label:"Last 30 days",value:"30d"},{label:"Last 90 days",value:"90d"},{label:"Last 6 months",value:"180d"},{label:"All time",value:"all"}];for(let g of i){let f=this.store.dateRange===g.value,w=this.dateDropdownEl.createDiv(`as-conv-dropdown-item ${f?"is-active":""}`),P=w.createSpan("as-conv-dropdown-check");f&&(0,Pe.setIcon)(P,"check"),w.createSpan({cls:"as-conv-dropdown-item-label",text:g.label}),w.addEventListener("click",Z=>{Z.stopPropagation(),this.store.setDateRange(g.value),this.closeAllDropdowns()})}a.addEventListener("click",g=>{g.stopPropagation(),this.toggleDropdown("date",e)});let r=this.store.getAllTags(),n=this.store.activeTags,o=r.size>0,l=this.searchActionsEl.createDiv("as-conv-dropdown-wrap"),O=l.createEl("button",{cls:"as-conv-icon-btn"});o||O.addClass("is-disabled"),n.length>0&&O.addClass("has-active");let c=O.createSpan("as-conv-icon-btn-icon");if((0,Pe.setIcon)(c,"tag"),this.tagDropdownEl=l.createDiv("as-conv-dropdown"),this.openDropdown==="tag"&&this.tagDropdownEl.addClass("is-open"),o){if(n.length>0){let f=this.tagDropdownEl.createDiv("as-conv-dropdown-item as-conv-dropdown-clear"),w=f.createSpan("as-conv-dropdown-item-icon");(0,Pe.setIcon)(w,"x"),f.createSpan({text:"Clear filters"}),f.addEventListener("click",P=>{P.stopPropagation(),this.store.clearTags()})}let g=Array.from(r.entries()).sort((f,w)=>w[1]-f[1]).slice(0,25);for(let[f,w]of g){let P=n.includes(f),Z=this.tagDropdownEl.createDiv(`as-conv-dropdown-item ${P?"is-active":""}`),Y=Z.createSpan("as-conv-dropdown-check");P&&(0,Pe.setIcon)(Y,"check"),Z.createSpan({cls:"as-conv-dropdown-item-label",text:f}),Z.createSpan({cls:"as-conv-dropdown-item-count",text:String(w)}),Z.addEventListener("click",Qe=>{Qe.stopPropagation(),this.store.toggleTag(f)})}}O.addEventListener("click",g=>{g.stopPropagation(),o&&this.toggleDropdown("tag",l)});let d=this.store.sort==="date"?"messages":"date",p=this.searchActionsEl.createEl("button",{cls:"as-conv-icon-btn"}),u=p.createSpan("as-conv-icon-btn-icon");(0,Pe.setIcon)(u,this.store.sort==="date"?"clock":"hash"),p.setAttribute("aria-label",`Sort by ${d}`),p.addEventListener("click",()=>this.store.setSort(d))}renderTagStrip(){if(!this.toolbarEl)return;this.toolbarEl.empty();let e=this.store.activeTags,a=this.store.filteredItems.length;if(e.length===0&&a===this.store.allItems.length)return;let s=this.toolbarEl.createDiv("as-conv-tag-strip");s.createSpan({cls:"as-conv-result-count",text:`${a} results`});for(let i of e){let r=s.createEl("button",{cls:"as-conv-tag-pill is-active"});r.createSpan({text:i});let n=r.createSpan("as-conv-tag-pill-x");(0,Pe.setIcon)(n,"x"),r.addEventListener("click",()=>this.store.toggleTag(i))}if(e.length>0){let i=s.createEl("button",{cls:"as-conv-tag-pill as-conv-tag-clear"});i.createSpan({text:"Clear all"}),i.addEventListener("click",()=>this.store.clearTags())}}renderList(){if(!this.listEl)return;if(this.listEl.empty(),this.store.loading){this.listEl.createDiv({cls:"as-list-empty",text:"Loading conversations..."});return}let e=this.store.filteredItems;if(e.length===0){this.listEl.createDiv({cls:"as-list-empty",text:"No conversations found"});return}let a="";for(let s of e){let i=wc(s.lastTimestamp);i!==a&&(a=i,this.listEl.createDiv({cls:"as-conv-date-header",text:i})),this.renderCard(this.listEl,s)}}renderCard(e,a){let s=e.createDiv("as-skill-card");a.uuid===this.selectedUuid&&s.addClass("is-selected");let i=s.createDiv("as-skill-header"),r=Pc(a.title),n=r.length>60?r.slice(0,60)+"...":r;if(i.createSpan({cls:"as-skill-name",text:n}),a.isFavorite){let O=i.createSpan("as-skill-star");(0,Pe.setIcon)(O,"star")}let o=[a.project,yc(a.lastTimestamp),`${a.messageCount} msgs`].filter(Boolean).join(" \xB7 ");s.createDiv({cls:"as-skill-desc",text:o});let l=[...a.tags,...a.customTags].filter(O=>O!==a.project);if(l.length>0){let O=s.createDiv("as-skill-meta"),c=3;for(let d of l.slice(0,c)){let p=a.customTags.includes(d);O.createSpan({cls:`as-conv-tag ${p?"as-conv-tag-custom":""}`,text:d})}l.length>c&&O.createSpan({cls:"as-conv-tag as-conv-tag-more",text:`+${l.length-c}`})}s.addEventListener("click",()=>{this.selectedUuid=a.uuid,this.onSelect(a)})}};var z=require("obsidian"),Ne=require("fs"),dt=require("path");function vs(t){return t?new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}function xc(t){return t.replace(/[<>:"/\\|?*]/g,"").replace(/\.{2,}/g,"").replace(/\s+/g,"-").slice(0,80)}function Tn(t,e){let a=t.firstTimestamp?new Date(t.firstTimestamp).toISOString().slice(0,10):"unknown-date",s=xc(t.title.slice(0,60));return`${e}/Claude Sessions/${a}-${s}.md`}function Xn(t){let{selectedMessages:e,conversation:a}=t,s=[...a.tags,...a.customTags],i=s.map(n=>`"${n}"`).join(", "),r=[];if(r.push("---"),r.push(`tags: [claude-session, ${i}]`),r.push(`session: ${a.uuid}`),r.push(`project: ${a.project}`),r.push(`date: ${a.firstTimestamp?new Date(a.firstTimestamp).toISOString().slice(0,10):"unknown"}`),r.push(`messages: ${a.messageCount}`),r.push("---"),r.push(""),r.push(`# ${a.title.slice(0,100)}`),r.push(""),r.push("## Context"),r.push(`- **Project:** ${a.project}`),r.push(`- **Started:** ${vs(a.firstTimestamp)}`),r.push(`- **Last activity:** ${vs(a.lastTimestamp)}`),r.push(`- **Messages:** ${a.messageCount}`),s.length>0&&r.push(`- **Tags:** ${s.map(n=>`\`${n}\``).join(" ")}`),r.push(""),e.length>0){r.push("## Key Snippets"),r.push("");for(let n of e){let o=n.role==="human"?"You":"Claude",l=vs(n.timestamp);r.push(`### ${o} ${l?`(${l})`:""}`),r.push(""),n.role==="human"?r.push(`> ${n.text.replace(/\n/g,` > `)}`):r.push(n.text),r.push("")}}return r.push("## Resume"),r.push(""),r.push("```bash"),r.push(`claude --resume ${a.uuid}`),r.push("```"),r.join(` -`)}function bc(t){return t?new Date(t).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}var Jt=class{containerEl;store;app;vaultPath;currentItem=null;selectedMessages=new Set;visibleCount=20;renderComponent=new z.Component;constructor(e,a,s,i){this.containerEl=e,this.store=a,this.app=s,this.vaultPath=i}show(e){this.currentItem=e,this.selectedMessages.clear(),this.visibleCount=20,this.render()}clear(){this.currentItem=null,this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.containerEl.createDiv("as-detail-empty");(0,z.setIcon)(e.createDiv("as-detail-empty-icon"),"message-circle"),e.createDiv({text:"Select a conversation to view"})}render(){this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.currentItem;if(!e)return this.clear();this.renderToolbar(e),this.renderBody(e)}renderToolbar(e){let a=this.containerEl.createDiv("as-detail-toolbar"),s=a.createDiv("as-toolbar-top"),i=s.createDiv("as-toolbar-left"),r=e.title.length>100?e.title.slice(0,100)+"...":e.title;i.createSpan({cls:"as-detail-title",text:r});let n=s.createDiv("as-toolbar-right"),o=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Toggle favorite"}});(0,z.setIcon)(o,e.isFavorite?"star":"star-off"),o.addEventListener("click",()=>{this.store.toggleFavorite(e.uuid),this.render()});let l=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Copy resume command"}});(0,z.setIcon)(l,"terminal"),l.addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Resume command copied!",3e3)});let O=n.createEl("button",{cls:"as-toolbar-btn as-toolbar-btn-primary",attr:{"aria-label":"Save to vault"}});(0,z.setIcon)(O,"download"),O.addEventListener("click",()=>this.saveToVault(e));let c=a.createDiv("as-detail-meta-bar");c.createSpan({cls:"as-meta-item",text:e.project}),c.createSpan({cls:"as-meta-item",text:`${e.messageCount} messages`}),e.firstTimestamp&&c.createSpan({cls:"as-meta-item",text:new Date(e.firstTimestamp).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})});let d=[...e.tags,...e.customTags];if(d.length>0){let p=a.createDiv("as-conv-detail-tags");for(let g of d){let f=e.customTags.includes(g),w=p.createSpan({cls:`as-conv-tag ${f?"as-conv-tag-custom":""}`,text:g});if(f){let P=w.createSpan("as-conv-tag-remove");(0,z.setIcon)(P,"x"),P.addEventListener("click",Z=>{Z.stopPropagation(),this.store.removeCustomTag(e.uuid,g),this.render()})}}let u=p.createSpan("as-conv-tag as-conv-tag-add");(0,z.setIcon)(u,"plus"),u.addEventListener("click",()=>this.promptAddTag(e))}}renderBody(e){let a=this.containerEl.createDiv("as-detail-body");if(this.selectedMessages.size>0){let l=a.createDiv("as-conv-selection-bar");l.createSpan({text:`${this.selectedMessages.size} message${this.selectedMessages.size>1?"s":""} selected`}),l.createEl("button",{cls:"as-conv-save-selected-btn",text:"Save selected to vault"}).addEventListener("click",()=>this.saveToVault(e))}let s=20,i=e.messages.length,r=e.messages.slice(0,this.visibleCount);for(let l=0;l{this.visibleCount+=s,this.render()}),c.createEl("button",{text:`Show all ${i} messages`,cls:"as-conv-show-all-btn"}).addEventListener("click",()=>{this.visibleCount=i,this.render()})}let n=a.createDiv("as-conv-resume-section");n.createDiv({cls:"as-section-title",text:"Resume this conversation"}),n.createEl("code",{cls:"as-conv-resume-cmd",text:`claude --resume ${e.uuid}`}).addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Copied!",2e3)})}renderMessage(e,a,s){let i=a.role==="human",r=e.createDiv(`as-conv-msg ${i?"as-conv-msg-human":"as-conv-msg-assistant"}`);this.selectedMessages.has(s)&&r.addClass("as-conv-msg-selected");let n=r.createDiv("as-conv-msg-header"),o=n.createSpan("as-conv-msg-role-icon");(0,z.setIcon)(o,i?"user":"bot"),n.createSpan({cls:"as-conv-msg-role",text:i?"You":"Claude"}),a.timestamp&&n.createSpan({cls:"as-conv-msg-time",text:bc(a.timestamp)});let l=n.createSpan("as-conv-msg-select");(0,z.setIcon)(l,this.selectedMessages.has(s)?"check-square":"square"),l.setAttribute("aria-label","Select message for export"),l.addEventListener("click",d=>{d.stopPropagation(),this.selectedMessages.has(s)?this.selectedMessages.delete(s):this.selectedMessages.add(s),this.render()});let O=r.createDiv("as-conv-msg-content"),c=a.text.length>2e3&&!i?a.text.slice(0,2e3)+` +`)}function Zc(t){return t?new Date(t).toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):""}var Jt=class{containerEl;store;app;vaultPath;currentItem=null;selectedMessages=new Set;visibleCount=20;renderComponent=new z.Component;constructor(e,a,s,i){this.containerEl=e,this.store=a,this.app=s,this.vaultPath=i}show(e){this.currentItem=e,this.selectedMessages.clear(),this.visibleCount=20,this.render()}clear(){this.currentItem=null,this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.containerEl.createDiv("as-detail-empty");(0,z.setIcon)(e.createDiv("as-detail-empty-icon"),"message-circle"),e.createDiv({text:"Select a conversation to view"})}render(){this.containerEl.empty(),this.containerEl.addClass("as-detail");let e=this.currentItem;if(!e)return this.clear();this.renderToolbar(e),this.renderBody(e)}renderToolbar(e){let a=this.containerEl.createDiv("as-detail-toolbar"),s=a.createDiv("as-toolbar-top"),i=s.createDiv("as-toolbar-left"),r=e.title.length>100?e.title.slice(0,100)+"...":e.title;i.createSpan({cls:"as-detail-title",text:r});let n=s.createDiv("as-toolbar-right"),o=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Toggle favorite"}});(0,z.setIcon)(o,e.isFavorite?"star":"star-off"),o.addEventListener("click",()=>{this.store.toggleFavorite(e.uuid),this.render()});let l=n.createEl("button",{cls:"as-toolbar-btn",attr:{"aria-label":"Copy resume command"}});(0,z.setIcon)(l,"terminal"),l.addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Resume command copied!",3e3)});let O=n.createEl("button",{cls:"as-toolbar-btn as-toolbar-btn-primary",attr:{"aria-label":"Save to vault"}});(0,z.setIcon)(O,"download"),O.addEventListener("click",()=>this.saveToVault(e));let c=a.createDiv("as-detail-meta-bar");c.createSpan({cls:"as-meta-item",text:e.project}),c.createSpan({cls:"as-meta-item",text:`${e.messageCount} messages`}),e.firstTimestamp&&c.createSpan({cls:"as-meta-item",text:new Date(e.firstTimestamp).toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})});let d=[...e.tags,...e.customTags];if(d.length>0){let p=a.createDiv("as-conv-detail-tags");for(let g of d){let f=e.customTags.includes(g),w=p.createSpan({cls:`as-conv-tag ${f?"as-conv-tag-custom":""}`,text:g});if(f){let P=w.createSpan("as-conv-tag-remove");(0,z.setIcon)(P,"x"),P.addEventListener("click",Z=>{Z.stopPropagation(),this.store.removeCustomTag(e.uuid,g),this.render()})}}let u=p.createSpan("as-conv-tag as-conv-tag-add");(0,z.setIcon)(u,"plus"),u.addEventListener("click",()=>this.promptAddTag(e))}}renderBody(e){let a=this.containerEl.createDiv("as-detail-body");if(this.selectedMessages.size>0){let l=a.createDiv("as-conv-selection-bar");l.createSpan({text:`${this.selectedMessages.size} message${this.selectedMessages.size>1?"s":""} selected`}),l.createEl("button",{cls:"as-conv-save-selected-btn",text:"Save selected to vault"}).addEventListener("click",()=>this.saveToVault(e))}let s=20,i=e.messages.length,r=e.messages.slice(0,this.visibleCount);for(let l=0;l{this.visibleCount+=s,this.render()}),c.createEl("button",{text:`Show all ${i} messages`,cls:"as-conv-show-all-btn"}).addEventListener("click",()=>{this.visibleCount=i,this.render()})}let n=a.createDiv("as-conv-resume-section");n.createDiv({cls:"as-section-title",text:"Resume this conversation"}),n.createEl("code",{cls:"as-conv-resume-cmd",text:`claude --resume ${e.uuid}`}).addEventListener("click",()=>{navigator.clipboard.writeText(`claude --resume ${e.uuid}`),new z.Notice("Copied!",2e3)})}renderMessage(e,a,s){let i=a.role==="human",r=e.createDiv(`as-conv-msg ${i?"as-conv-msg-human":"as-conv-msg-assistant"}`);this.selectedMessages.has(s)&&r.addClass("as-conv-msg-selected");let n=r.createDiv("as-conv-msg-header"),o=n.createSpan("as-conv-msg-role-icon");(0,z.setIcon)(o,i?"user":"bot"),n.createSpan({cls:"as-conv-msg-role",text:i?"You":"Claude"}),a.timestamp&&n.createSpan({cls:"as-conv-msg-time",text:Zc(a.timestamp)});let l=n.createSpan("as-conv-msg-select");(0,z.setIcon)(l,this.selectedMessages.has(s)?"check-square":"square"),l.setAttribute("aria-label","Select message for export"),l.addEventListener("click",d=>{d.stopPropagation(),this.selectedMessages.has(s)?this.selectedMessages.delete(s):this.selectedMessages.add(s),this.render()});let O=r.createDiv("as-conv-msg-content"),c=a.text.length>2e3&&!i?a.text.slice(0,2e3)+` -*... (truncated)*`:a.text;if(z.MarkdownRenderer.render(this.app,c,O,"",this.renderComponent),a.toolCalls&&a.toolCalls.length>0){let d=r.createDiv("as-conv-msg-tools"),p=[...new Set(a.toolCalls)];for(let u of p.slice(0,5))d.createSpan({cls:"as-conv-tool-badge",text:u});p.length>5&&d.createSpan({cls:"as-conv-tool-badge",text:`+${p.length-5}`})}}promptAddTag(e){let a=this.containerEl.querySelector(".as-conv-detail-tags");if(!a)return;let s=a.querySelector(".as-conv-tag-add");if(!s)return;let i=createEl("input",{type:"text",placeholder:"Enter tag...",cls:"as-conv-tag-input"});s.replaceWith(i),i.focus();let r=!1,n=()=>{if(r)return;r=!0;let o=i.value.trim().toLowerCase().replace(/\s+/g,"-");o&&this.store.addCustomTag(e.uuid,o),this.render()};i.addEventListener("keydown",o=>{o.key==="Enter"&&n(),o.key==="Escape"&&this.render()}),i.addEventListener("blur",n)}saveToVault(e){if(this.selectedMessages.size===0){new z.Notice("Select messages to export first",3e3);return}let a=Array.from(this.selectedMessages).sort((n,o)=>n-o).map(n=>e.messages[n]).filter(Boolean),s=Zn({selectedMessages:a,conversation:e,vaultPath:this.vaultPath}),i=(0,dt.resolve)(xn(e,this.vaultPath));if(!i.startsWith((0,dt.resolve)(this.vaultPath))){new z.Notice("Invalid path \u2014 cannot save outside vault",5e3);return}let r=(0,dt.dirname)(i);try{(0,Ne.existsSync)(r)||(0,Ne.mkdirSync)(r,{recursive:!0}),(0,Ne.writeFileSync)(i,s,"utf-8"),new z.Notice(`Saved to ${i.split("/").slice(-2).join("/")}`,5e3)}catch(n){new z.Notice(`Failed to save: ${n instanceof Error?n.message:String(n)}`,5e3)}}};var pt="agentfiles-view",Kt=class extends Tn.ItemView{store;settings;saveSettings;sidebarPanel;listPanel;detailPanel;dashboardPanel;marketplacePanel;conversationStore=new Ht;convListPanel;convDetailPanel;sidebarEl;listEl;detailEl;dashboardEl;marketplaceEl;convListWrapperEl;convDetailWrapperEl;skillListWrapperEl;skillDetailWrapperEl;resizeHandle1;resizeHandle2;isDashboard=!1;isMarketplace=!1;isConversations=!1;updateRef=null;convUpdateRef=null;dragCleanup=null;constructor(e,a,s,i){super(e),this.store=a,this.settings=s,this.saveSettings=i}getViewType(){return pt}getDisplayText(){return"Agentfiles"}getIcon(){return"cpu"}async onOpen(){let e=this.contentEl;e.empty(),e.addClass("as-container"),this.sidebarEl=e.createDiv("as-panel as-panel-sidebar"),this.resizeHandle1=this.createResizeHandle(e,this.sidebarEl,"--as-sidebar-width",120,400),this.listEl=e.createDiv("as-panel as-panel-list"),this.resizeHandle2=this.createResizeHandle(e,this.listEl,"--as-list-width",180,600),this.detailEl=e.createDiv("as-panel as-panel-detail"),this.dashboardEl=e.createDiv("as-panel as-panel-dashboard as-hidden"),this.marketplaceEl=e.createDiv("as-panel as-panel-marketplace as-hidden"),this.skillListWrapperEl=this.listEl.createDiv("as-wrapper"),this.convListWrapperEl=this.listEl.createDiv("as-wrapper as-hidden"),this.skillDetailWrapperEl=this.detailEl.createDiv("as-wrapper"),this.convDetailWrapperEl=this.detailEl.createDiv("as-wrapper as-hidden");let a=this.app.vault.adapter.getBasePath?.()||"";this.sidebarPanel=new ft(this.sidebarEl,this.store,()=>this.toggleDashboard(),()=>this.toggleMarketplace(),()=>this.openCreateModal(),()=>this.toggleConversations(),this.conversationStore),this.listPanel=new gt(this.skillListWrapperEl,this.store,s=>this.onSelectItem(s)),this.detailPanel=new Yt(this.skillDetailWrapperEl,this.store,this.settings,this.saveSettings,this),this.dashboardPanel=new Mt(this.dashboardEl,this.app),this.marketplacePanel=new Gt(this.marketplaceEl,this,this.settings,()=>{this.store.refresh(this.settings)}),this.convListPanel=new Ft(this.convListWrapperEl,this.conversationStore,s=>this.onSelectConversation(s)),this.convDetailPanel=new Jt(this.convDetailWrapperEl,this.conversationStore,this.app,a),this.updateRef=this.store.on("updated",()=>this.renderAll()),this.convUpdateRef=this.conversationStore.on("conversations-updated",()=>{this.isConversations&&(this.convListPanel.render(),this.sidebarPanel.render())}),this.renderAll(),this.store.revalidate()}hideAllSpecialPanels(){this.listEl.addClass("as-hidden"),this.detailEl.addClass("as-hidden"),this.resizeHandle1.addClass("as-hidden"),this.resizeHandle2.addClass("as-hidden"),this.dashboardEl.addClass("as-hidden"),this.marketplaceEl.addClass("as-hidden")}showDefaultPanels(){this.listEl.removeClass("as-hidden"),this.detailEl.removeClass("as-hidden"),this.resizeHandle1.removeClass("as-hidden"),this.resizeHandle2.removeClass("as-hidden")}showSkillPanels(){this.skillListWrapperEl.removeClass("as-hidden"),this.skillDetailWrapperEl.removeClass("as-hidden"),this.convListWrapperEl.addClass("as-hidden"),this.convDetailWrapperEl.addClass("as-hidden")}showConversationPanels(){this.skillListWrapperEl.addClass("as-hidden"),this.skillDetailWrapperEl.addClass("as-hidden"),this.convListWrapperEl.removeClass("as-hidden"),this.convDetailWrapperEl.removeClass("as-hidden")}toggleDashboard(){this.dragCleanup?.(),this.dragCleanup=null,this.isDashboard=!this.isDashboard,this.isMarketplace=!1,this.isConversations=!1,this.hideAllSpecialPanels(),this.isDashboard?(this.dashboardEl.removeClass("as-hidden"),this.dashboardPanel.render()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setDashboardActive(this.isDashboard),this.sidebarPanel.setMarketplaceActive(!1),this.sidebarPanel.setConversationsActive(!1),this.sidebarPanel.render()}toggleMarketplace(){this.dragCleanup?.(),this.dragCleanup=null,this.isMarketplace=!this.isMarketplace,this.isDashboard=!1,this.isConversations=!1,this.hideAllSpecialPanels(),this.isMarketplace?(this.marketplaceEl.removeClass("as-hidden"),this.marketplacePanel.render()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setMarketplaceActive(this.isMarketplace),this.sidebarPanel.setDashboardActive(!1),this.sidebarPanel.setConversationsActive(!1),this.sidebarPanel.render()}toggleConversations(){this.dragCleanup?.(),this.dragCleanup=null,this.isConversations=!this.isConversations,this.isDashboard=!1,this.isMarketplace=!1,this.hideAllSpecialPanels(),this.isConversations?(this.showDefaultPanels(),this.showConversationPanels(),this.conversationStore.refresh(),this.convListPanel.render(),this.convDetailPanel.clear()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setConversationsActive(this.isConversations),this.sidebarPanel.setDashboardActive(!1),this.sidebarPanel.setMarketplaceActive(!1),this.sidebarPanel.render()}renderAll(){this.sidebarPanel.render(),!this.isDashboard&&!this.isMarketplace&&!this.isConversations&&(this.listPanel.render(),this.store.filteredItems.length||this.detailPanel.clear())}openCreateModal(){new Nt(this.app,e=>{this.store.refresh(this.settings),window.setTimeout(()=>{let a=this.store.allItems.find(s=>s.filePath===e||s.realPath===e);a&&this.onSelectItem(a)},100)}).open()}onSelectItem(e){this.isDashboard&&this.toggleDashboard(),this.isMarketplace&&this.toggleMarketplace(),this.isConversations&&this.toggleConversations(),this.listPanel.setSelected(e.id),this.listPanel.render(),this.detailPanel.show(e)}onSelectConversation(e){this.convListPanel.setSelected(e.uuid),this.convListPanel.render(),this.convDetailPanel.show(e)}createResizeHandle(e,a,s,i,r){let n=e.createDiv("as-resize-handle"),o=0,l=0,O=d=>{let p=Math.min(r,Math.max(i,l+(d.clientX-o)));e.style.setProperty(s,`${p}px`)},c=()=>{n.removeClass("is-dragging"),activeDocument.removeEventListener("mousemove",O),activeDocument.removeEventListener("mouseup",c),this.dragCleanup=null};return n.addEventListener("mousedown",d=>{d.preventDefault(),o=d.clientX,l=parseInt(e.style.getPropertyValue(s))||a.offsetWidth,n.addClass("is-dragging"),activeDocument.addEventListener("mousemove",O),activeDocument.addEventListener("mouseup",c),this.dragCleanup=c}),n}async onClose(){this.dragCleanup?.(),this.updateRef&&this.store.offref(this.updateRef),this.convUpdateRef&&this.conversationStore.offref(this.convUpdateRef)}};var Xn=require("obsidian"),ta=require("path"),Be=require("fs"),Cn=require("os");var vs=(0,ta.join)((0,Cn.homedir)(),".skillkit","enrichment-cache.json");function kc(){if(!(0,Be.existsSync)(vs))return null;try{return JSON.parse((0,Be.readFileSync)(vs,"utf-8"))}catch{return null}}function Pc(t){try{(0,Be.writeFileSync)(vs,JSON.stringify(t),"utf-8")}catch{}}var ea=class extends Xn.Events{items=new Map;_filter={kind:"all"};_searchQuery="";_deepSearch=!1;_deepSearchScope="both";_projectsHomeDir="";get filter(){return this._filter}get searchQuery(){return this._searchQuery}get deepSearch(){return this._deepSearch}get allItems(){return Array.from(this.items.values())}get filteredItems(){let e=this.allItems;switch(this._filter.kind){case"favorites":e=e.filter(a=>a.isFavorite);break;case"tool":{let a=this._filter.toolId;e=e.filter(s=>s.tools.includes(a));break}case"type":{let a=this._filter.type;e=e.filter(s=>s.type===a);break}case"collection":{let a=this._filter.name;e=e.filter(s=>s.collections.includes(a));break}case"project":{let a=this._filter.project;e=e.filter(s=>ls(s.filePath,this._projectsHomeDir)===a);break}}if(this._searchQuery){let a=this._searchQuery.toLowerCase(),s=this._deepSearch&&(this._deepSearchScope==="description"||this._deepSearchScope==="both"),i=this._deepSearch&&(this._deepSearchScope==="content"||this._deepSearchScope==="both");e=e.filter(r=>r.name.toLowerCase().includes(a)||s&&r.description.toLowerCase().includes(a)||i&&r.content.toLowerCase().includes(a))}return e.sort((a,s)=>a.name.localeCompare(s.name))}getItem(e){return this.items.get(e)}get hasSkillkit(){return ee()}_enrichGeneration=0;refresh(e){this._projectsHomeDir=e.projectsHomeDir,this.items=un(e),ee()&&this.applyEnrichmentFromCache(),this.trigger("updated")}revalidate(){ee()&&this.revalidateAsync()}applyEnrichmentFromCache(){let e=kc();if(!e)return;let a=new Map(Object.entries(e.stats)),s=new Map(Object.entries(e.conflicts));this.applyEnrichment(a,s,e.warnings)}async revalidateAsync(){let e=++this._enrichGeneration,[a,s,i]=await Promise.all([Zs(),Ts(),Xs()]);e===this._enrichGeneration&&(this.applyEnrichment(a,s,i),this.trigger("updated"),Pc({stats:Object.fromEntries(a),conflicts:Object.fromEntries(s),warnings:i}))}applyEnrichment(e,a,s){let i=new Set(s.oversized.map(l=>l.name)),r=new Set(s.longDesc.map(l=>l.name)),n=new Map(s.oversized.map(l=>[l.name,l.lines])),o=new Map(s.longDesc.map(l=>[l.name,l.chars]));for(let l of this.items.values()){let O=l.filePath.split(ta.sep).slice(-2,-1)[0],c=l.name.toLowerCase().replace(/\s+/g,"-"),d=e.get(l.name)||e.get(O)||e.get(c);d?(d.isHeavy=l.content.length>5e3,l.usage=d):l.usage={uses:0,lastUsed:null,daysSinceUsed:null,isStale:!0,isHeavy:l.content.length>5e3};let p=l.content.split(` -`).length,u=l.description.length;l.warnings={oversized:i.has(l.name)||p>500,longDesc:r.has(l.name)||u>1024,lineCount:n.get(l.name)??p,descChars:o.get(l.name)??u},l.conflicts=a.get(l.name)||a.get(O)||[]}}setFilter(e){this._filter=e,this.trigger("updated")}setSearch(e){this._searchQuery=e,this.trigger("updated")}setDeepSearch(e){this._deepSearch!==e&&(this._deepSearch=e,this.trigger("updated"))}setDeepSearchScope(e){this._deepSearchScope!==e&&(this._deepSearchScope=e,this.trigger("updated"))}toggleFavorite(e,a){let s=this.items.get(e);s&&(s.isFavorite=!s.isFavorite,s.isFavorite?a.favorites.includes(e)||a.favorites.push(e):a.favorites=a.favorites.filter(i=>i!==e),this.trigger("updated"))}getToolCounts(){let e=new Map;for(let a of this.items.values())for(let s of a.tools)e.set(s,(e.get(s)||0)+1);return e}getTypeCounts(){let e=new Map;for(let a of this.items.values())e.set(a.type,(e.get(a.type)||0)+1);return e}getProjectCounts(){let e=new Map;for(let a of this.items.values()){let s=ls(a.filePath,this._projectsHomeDir);e.set(s,(e.get(s)||0)+1)}return e}};var _n=require("fs"),aa=class{watchers=[];debounceTimer=null;debounceMs;onChange;constructor(e,a){this.debounceMs=e,this.onChange=a}watchPaths(e){this.close();for(let a of e)try{let s=(0,_n.watch)(a,{recursive:!0},()=>this.scheduleUpdate());this.watchers.push(s)}catch{}}scheduleUpdate(){this.debounceTimer&&window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.debounceTimer=null,this.onChange()},this.debounceMs)}close(){this.debounceTimer&&(window.clearTimeout(this.debounceTimer),this.debounceTimer=null);for(let e of this.watchers)try{e.close()}catch{}this.watchers=[]}};var $s=require("os"),q=require("obsidian");function yc(t){return t==="~"?(0,$s.homedir)():t.startsWith("~/")?(0,$s.homedir)()+t.slice(1):t}var sa=class extends q.PluginSettingTab{plugin;constructor(e,a){super(e,a),this.plugin=a}display(){let{containerEl:e}=this;e.empty(),new q.Setting(e).setName("File watching").setDesc("Automatically detect changes to skill files").addToggle(s=>s.setValue(this.plugin.settings.watchEnabled).onChange(async i=>{this.plugin.settings.watchEnabled=i,await this.plugin.saveSettings(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Watch debounce (ms)").setDesc("Delay before re-scanning after file changes").addText(s=>s.setValue(String(this.plugin.settings.watchDebounceMs)).onChange(async i=>{let r=parseInt(i);!isNaN(r)&&r>=100&&(this.plugin.settings.watchDebounceMs=r,await this.plugin.saveSettings())})),new q.Setting(e).setName("Display names").setDesc("How skill and command names are displayed in the list").addDropdown(s=>s.addOptions({auto:"Auto (frontmatter / heading / filename)",filename:"Filename only"}).setValue(this.plugin.settings.namingMode||"auto").onChange(async i=>{this.plugin.settings.namingMode=i,await this.plugin.saveSettings(),this.plugin.refreshStore()})),new q.Setting(e).setName("Deep search by default").setDesc("Enable deep search when the view opens (can always be toggled in the search bar)").addToggle(s=>s.setValue(this.plugin.settings.deepSearchDefault??!1).onChange(async i=>{this.plugin.settings.deepSearchDefault=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Deep search scope").setDesc("What to include when deep search is enabled").addDropdown(s=>s.addOptions({both:"Description and file content",description:"Description only",content:"File content only"}).setValue(this.plugin.settings.deepSearchScope??"both").onChange(async i=>{this.plugin.settings.deepSearchScope=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Marketplace").setHeading(),new q.Setting(e).setName("Package runner").setDesc("Command used to install skills from the marketplace").addDropdown(s=>s.addOptions({auto:"Auto-detect",npx:"npx",bunx:"bunx"}).setValue(this.plugin.settings.packageRunner).onChange(async i=>{this.plugin.settings.packageRunner=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Project scanning").setHeading(),new q.Setting(e).setName("Scan projects").setDesc("Scan all directories under the projects home folder for project-level skills").addToggle(s=>s.setValue(this.plugin.settings.projectScanEnabled).onChange(async i=>{this.plugin.settings.projectScanEnabled=i,await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Projects home directory").setDesc("Root directory to scan for project-level skills. Leave empty for home directory (~).").addText(s=>s.setPlaceholder("~").setValue(this.plugin.settings.projectsHomeDir).onChange(async i=>{this.plugin.settings.projectsHomeDir=i,await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Custom paths").setHeading();for(let s of this.plugin.settings.customScanPaths)new q.Setting(e).setName(s).addExtraButton(i=>i.setIcon("trash").setTooltip("Remove").onClick(async()=>{this.plugin.settings.customScanPaths=this.plugin.settings.customScanPaths.filter(r=>r!==s),await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher(),this.display()}));let a="";new q.Setting(e).setName("Add custom path").setDesc("Additional directories to scan for project-level skills (looks for .claude/skills, .claude/commands, .claude/agents, .cursor/skills, .codex/skills inside each path)").addText(s=>s.setPlaceholder("~/projects/some-project").onChange(i=>{a=i})).addButton(s=>s.setButtonText("Add").onClick(async()=>{let i=a.trim();if(!i)return;let r=yc(i);this.plugin.settings.customScanPaths.includes(r)||(this.plugin.settings.customScanPaths.push(r),await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher(),this.display())})),new q.Setting(e).setName("Tools").setHeading();for(let s of U){let i=s.isInstalled(),r=this.plugin.settings.tools[s.id]||{enabled:!0,customPaths:[]};new q.Setting(e).setName(s.name).setDesc(i?"Installed":"Not detected").addToggle(n=>n.setValue(i&&r.enabled).setDisabled(!i).onChange(async o=>{this.plugin.settings.tools[s.id]={...r,enabled:o},await this.plugin.saveSettings(),this.plugin.refreshStore()}))}}};var ia=class extends jn.Plugin{settings=hs;store=new ea;watcher=null;async onload(){await this.loadSettings(),this.addVaultPath(),this.registerView(pt,e=>new Kt(e,this.store,this.settings,()=>this.saveSettings())),this.addRibbonIcon("cpu","Agentfiles",()=>this.activateView()),this.addCommand({id:"open",name:"Open",callback:()=>this.activateView()}),this.addSettingTab(new sa(this.app,this)),this.store.setDeepSearch(this.settings.deepSearchDefault??!1),this.store.setDeepSearchScope(this.settings.deepSearchScope??"both"),this.app.workspace.onLayoutReady(()=>{this.refreshStore(),this.startWatcher()})}addVaultPath(){let e=this.app.vault.adapter;if(!e.getBasePath)return;let a=e.getBasePath();this.settings.customScanPaths.includes(a)||this.settings.customScanPaths.push(a)}onunload(){this.stopWatcher()}refreshStore(){this.store.refresh(this.settings)}startWatcher(){this.settings.watchEnabled&&(this.watcher=new aa(this.settings.watchDebounceMs,()=>this.refreshStore()),this.watcher.watchPaths(hn(this.settings)))}stopWatcher(){this.watcher&&(this.watcher.close(),this.watcher=null)}restartWatcher(){this.stopWatcher(),this.startWatcher()}async activateView(){let e=this.app.workspace.getLeavesOfType(pt);if(e.length>0){await this.app.workspace.revealLeaf(e[0]);return}let a=this.app.workspace.getLeaf("tab");await a.setViewState({type:pt,active:!0}),await this.app.workspace.revealLeaf(a)}async loadSettings(){let e=await this.loadData();this.settings=Object.assign({},hs,e)}async saveSettings(){await this.saveData(this.settings)}}; +*... (truncated)*`:a.text;if(z.MarkdownRenderer.render(this.app,c,O,"",this.renderComponent),a.toolCalls&&a.toolCalls.length>0){let d=r.createDiv("as-conv-msg-tools"),p=[...new Set(a.toolCalls)];for(let u of p.slice(0,5))d.createSpan({cls:"as-conv-tool-badge",text:u});p.length>5&&d.createSpan({cls:"as-conv-tool-badge",text:`+${p.length-5}`})}}promptAddTag(e){let a=this.containerEl.querySelector(".as-conv-detail-tags");if(!a)return;let s=a.querySelector(".as-conv-tag-add");if(!s)return;let i=createEl("input",{type:"text",placeholder:"Enter tag...",cls:"as-conv-tag-input"});s.replaceWith(i),i.focus();let r=!1,n=()=>{if(r)return;r=!0;let o=i.value.trim().toLowerCase().replace(/\s+/g,"-");o&&this.store.addCustomTag(e.uuid,o),this.render()};i.addEventListener("keydown",o=>{o.key==="Enter"&&n(),o.key==="Escape"&&this.render()}),i.addEventListener("blur",n)}saveToVault(e){if(this.selectedMessages.size===0){new z.Notice("Select messages to export first",3e3);return}let a=Array.from(this.selectedMessages).sort((n,o)=>n-o).map(n=>e.messages[n]).filter(Boolean),s=Xn({selectedMessages:a,conversation:e,vaultPath:this.vaultPath}),i=(0,dt.resolve)(Tn(e,this.vaultPath));if(!i.startsWith((0,dt.resolve)(this.vaultPath))){new z.Notice("Invalid path \u2014 cannot save outside vault",5e3);return}let r=(0,dt.dirname)(i);try{(0,Ne.existsSync)(r)||(0,Ne.mkdirSync)(r,{recursive:!0}),(0,Ne.writeFileSync)(i,s,"utf-8"),new z.Notice(`Saved to ${i.split("/").slice(-2).join("/")}`,5e3)}catch(n){new z.Notice(`Failed to save: ${n instanceof Error?n.message:String(n)}`,5e3)}}};var pt="agentfiles-view",Kt=class extends Cn.ItemView{store;settings;saveSettings;sidebarPanel;listPanel;detailPanel;dashboardPanel;marketplacePanel;conversationStore=new Ht;convListPanel;convDetailPanel;sidebarEl;listEl;detailEl;dashboardEl;marketplaceEl;convListWrapperEl;convDetailWrapperEl;skillListWrapperEl;skillDetailWrapperEl;resizeHandle1;resizeHandle2;isDashboard=!1;isMarketplace=!1;isConversations=!1;updateRef=null;convUpdateRef=null;dragCleanup=null;constructor(e,a,s,i){super(e),this.store=a,this.settings=s,this.saveSettings=i}getViewType(){return pt}getDisplayText(){return"Agentfiles"}getIcon(){return"cpu"}async onOpen(){let e=this.contentEl;e.empty(),e.addClass("as-container"),this.sidebarEl=e.createDiv("as-panel as-panel-sidebar"),this.resizeHandle1=this.createResizeHandle(e,this.sidebarEl,"--as-sidebar-width",120,400),this.listEl=e.createDiv("as-panel as-panel-list"),this.resizeHandle2=this.createResizeHandle(e,this.listEl,"--as-list-width",180,600),this.detailEl=e.createDiv("as-panel as-panel-detail"),this.dashboardEl=e.createDiv("as-panel as-panel-dashboard as-hidden"),this.marketplaceEl=e.createDiv("as-panel as-panel-marketplace as-hidden"),this.skillListWrapperEl=this.listEl.createDiv("as-wrapper"),this.convListWrapperEl=this.listEl.createDiv("as-wrapper as-hidden"),this.skillDetailWrapperEl=this.detailEl.createDiv("as-wrapper"),this.convDetailWrapperEl=this.detailEl.createDiv("as-wrapper as-hidden");let a=this.app.vault.adapter.getBasePath?.()||"";this.sidebarPanel=new ft(this.sidebarEl,this.store,()=>this.toggleDashboard(),()=>this.toggleMarketplace(),()=>this.openCreateModal(),()=>this.toggleConversations(),this.conversationStore),this.listPanel=new gt(this.skillListWrapperEl,this.store,s=>this.onSelectItem(s)),this.detailPanel=new Yt(this.skillDetailWrapperEl,this.store,this.settings,this.saveSettings,this),this.dashboardPanel=new Mt(this.dashboardEl,this.app),this.marketplacePanel=new Gt(this.marketplaceEl,this,this.settings,()=>{this.store.refresh(this.settings)}),this.convListPanel=new Ft(this.convListWrapperEl,this.conversationStore,s=>this.onSelectConversation(s)),this.convDetailPanel=new Jt(this.convDetailWrapperEl,this.conversationStore,this.app,a),this.updateRef=this.store.on("updated",()=>this.renderAll()),this.convUpdateRef=this.conversationStore.on("conversations-updated",()=>{this.isConversations&&(this.convListPanel.render(),this.sidebarPanel.render())}),this.renderAll(),this.store.revalidate()}hideAllSpecialPanels(){this.listEl.addClass("as-hidden"),this.detailEl.addClass("as-hidden"),this.resizeHandle1.addClass("as-hidden"),this.resizeHandle2.addClass("as-hidden"),this.dashboardEl.addClass("as-hidden"),this.marketplaceEl.addClass("as-hidden")}showDefaultPanels(){this.listEl.removeClass("as-hidden"),this.detailEl.removeClass("as-hidden"),this.resizeHandle1.removeClass("as-hidden"),this.resizeHandle2.removeClass("as-hidden")}showSkillPanels(){this.skillListWrapperEl.removeClass("as-hidden"),this.skillDetailWrapperEl.removeClass("as-hidden"),this.convListWrapperEl.addClass("as-hidden"),this.convDetailWrapperEl.addClass("as-hidden")}showConversationPanels(){this.skillListWrapperEl.addClass("as-hidden"),this.skillDetailWrapperEl.addClass("as-hidden"),this.convListWrapperEl.removeClass("as-hidden"),this.convDetailWrapperEl.removeClass("as-hidden")}toggleDashboard(){this.dragCleanup?.(),this.dragCleanup=null,this.isDashboard=!this.isDashboard,this.isMarketplace=!1,this.isConversations=!1,this.hideAllSpecialPanels(),this.isDashboard?(this.dashboardEl.removeClass("as-hidden"),this.dashboardPanel.render()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setDashboardActive(this.isDashboard),this.sidebarPanel.setMarketplaceActive(!1),this.sidebarPanel.setConversationsActive(!1),this.sidebarPanel.render()}toggleMarketplace(){this.dragCleanup?.(),this.dragCleanup=null,this.isMarketplace=!this.isMarketplace,this.isDashboard=!1,this.isConversations=!1,this.hideAllSpecialPanels(),this.isMarketplace?(this.marketplaceEl.removeClass("as-hidden"),this.marketplacePanel.render()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setMarketplaceActive(this.isMarketplace),this.sidebarPanel.setDashboardActive(!1),this.sidebarPanel.setConversationsActive(!1),this.sidebarPanel.render()}toggleConversations(){this.dragCleanup?.(),this.dragCleanup=null,this.isConversations=!this.isConversations,this.isDashboard=!1,this.isMarketplace=!1,this.hideAllSpecialPanels(),this.isConversations?(this.showDefaultPanels(),this.showConversationPanels(),this.conversationStore.refresh(),this.convListPanel.render(),this.convDetailPanel.clear()):(this.showDefaultPanels(),this.showSkillPanels()),this.sidebarPanel.setConversationsActive(this.isConversations),this.sidebarPanel.setDashboardActive(!1),this.sidebarPanel.setMarketplaceActive(!1),this.sidebarPanel.render()}renderAll(){this.sidebarPanel.render(),!this.isDashboard&&!this.isMarketplace&&!this.isConversations&&(this.listPanel.render(),this.store.filteredItems.length||this.detailPanel.clear())}openCreateModal(){new Nt(this.app,e=>{this.store.refresh(this.settings),window.setTimeout(()=>{let a=this.store.allItems.find(s=>s.filePath===e||s.realPath===e);a&&this.onSelectItem(a)},100)}).open()}onSelectItem(e){this.isDashboard&&this.toggleDashboard(),this.isMarketplace&&this.toggleMarketplace(),this.isConversations&&this.toggleConversations(),this.listPanel.setSelected(e.id),this.listPanel.render(),this.detailPanel.show(e)}onSelectConversation(e){this.convListPanel.setSelected(e.uuid),this.convListPanel.render(),this.convDetailPanel.show(e)}createResizeHandle(e,a,s,i,r){let n=e.createDiv("as-resize-handle"),o=0,l=0,O=d=>{let p=Math.min(r,Math.max(i,l+(d.clientX-o)));e.style.setProperty(s,`${p}px`)},c=()=>{n.removeClass("is-dragging"),activeDocument.removeEventListener("mousemove",O),activeDocument.removeEventListener("mouseup",c),this.dragCleanup=null};return n.addEventListener("mousedown",d=>{d.preventDefault(),o=d.clientX,l=parseInt(e.style.getPropertyValue(s))||a.offsetWidth,n.addClass("is-dragging"),activeDocument.addEventListener("mousemove",O),activeDocument.addEventListener("mouseup",c),this.dragCleanup=c}),n}async onClose(){this.dragCleanup?.(),this.updateRef&&this.store.offref(this.updateRef),this.convUpdateRef&&this.conversationStore.offref(this.convUpdateRef)}};var _n=require("obsidian"),ta=require("path"),Be=require("fs"),jn=require("os");var $s=(0,ta.join)((0,jn.homedir)(),".skillkit","enrichment-cache.json");function Tc(){if(!(0,Be.existsSync)($s))return null;try{return JSON.parse((0,Be.readFileSync)($s,"utf-8"))}catch{return null}}function Xc(t){try{(0,Be.writeFileSync)($s,JSON.stringify(t),"utf-8")}catch{}}var ea=class extends _n.Events{items=new Map;_filter={kind:"all"};_searchQuery="";_deepSearch=!1;_deepSearchScope="both";_projectsHomeDir="";get filter(){return this._filter}get searchQuery(){return this._searchQuery}get deepSearch(){return this._deepSearch}get allItems(){return Array.from(this.items.values())}get filteredItems(){let e=this.allItems;switch(this._filter.kind){case"favorites":e=e.filter(a=>a.isFavorite);break;case"tool":{let a=this._filter.toolId;e=e.filter(s=>s.tools.includes(a));break}case"type":{let a=this._filter.type;e=e.filter(s=>s.type===a);break}case"collection":{let a=this._filter.name;e=e.filter(s=>s.collections.includes(a));break}case"project":{let a=this._filter.project;e=e.filter(s=>ls(s.filePath,this._projectsHomeDir)===a);break}}if(this._searchQuery){let a=this._searchQuery.toLowerCase(),s=this._deepSearch&&(this._deepSearchScope==="description"||this._deepSearchScope==="both"),i=this._deepSearch&&(this._deepSearchScope==="content"||this._deepSearchScope==="both");e=e.filter(r=>r.name.toLowerCase().includes(a)||s&&r.description.toLowerCase().includes(a)||i&&r.content.toLowerCase().includes(a))}return e.sort((a,s)=>a.name.localeCompare(s.name))}getItem(e){return this.items.get(e)}get hasSkillkit(){return ee()}_enrichGeneration=0;refresh(e){this._projectsHomeDir=e.projectsHomeDir,this.items=hn(e),ee()&&this.applyEnrichmentFromCache(),this.trigger("updated")}revalidate(){ee()&&this.revalidateAsync()}applyEnrichmentFromCache(){let e=Tc();if(!e)return;let a=new Map(Object.entries(e.stats)),s=new Map(Object.entries(e.conflicts));this.applyEnrichment(a,s,e.warnings)}async revalidateAsync(){let e=++this._enrichGeneration,[a,s,i]=await Promise.all([Ts(),Xs(),Cs()]);e===this._enrichGeneration&&(this.applyEnrichment(a,s,i),this.trigger("updated"),Xc({stats:Object.fromEntries(a),conflicts:Object.fromEntries(s),warnings:i}))}applyEnrichment(e,a,s){let i=new Set(s.oversized.map(l=>l.name)),r=new Set(s.longDesc.map(l=>l.name)),n=new Map(s.oversized.map(l=>[l.name,l.lines])),o=new Map(s.longDesc.map(l=>[l.name,l.chars]));for(let l of this.items.values()){let O=l.filePath.split(ta.sep).slice(-2,-1)[0],c=l.name.toLowerCase().replace(/\s+/g,"-"),d=e.get(l.name)||e.get(O)||e.get(c);d?(d.isHeavy=l.content.length>5e3,l.usage=d):l.usage={uses:0,lastUsed:null,daysSinceUsed:null,isStale:!0,isHeavy:l.content.length>5e3};let p=l.content.split(` +`).length,u=l.description.length;l.warnings={oversized:i.has(l.name)||p>500,longDesc:r.has(l.name)||u>1024,lineCount:n.get(l.name)??p,descChars:o.get(l.name)??u},l.conflicts=a.get(l.name)||a.get(O)||[]}}setFilter(e){this._filter=e,this.trigger("updated")}setSearch(e){this._searchQuery=e,this.trigger("updated")}setDeepSearch(e){this._deepSearch!==e&&(this._deepSearch=e,this.trigger("updated"))}setDeepSearchScope(e){this._deepSearchScope!==e&&(this._deepSearchScope=e,this.trigger("updated"))}toggleFavorite(e,a){let s=this.items.get(e);s&&(s.isFavorite=!s.isFavorite,s.isFavorite?a.favorites.includes(e)||a.favorites.push(e):a.favorites=a.favorites.filter(i=>i!==e),this.trigger("updated"))}getToolCounts(){let e=new Map;for(let a of this.items.values())for(let s of a.tools)e.set(s,(e.get(s)||0)+1);return e}getTypeCounts(){let e=new Map;for(let a of this.items.values())e.set(a.type,(e.get(a.type)||0)+1);return e}getProjectCounts(){let e=new Map;for(let a of this.items.values()){let s=ls(a.filePath,this._projectsHomeDir);e.set(s,(e.get(s)||0)+1)}return e}};var En=require("fs"),aa=class{watchers=[];debounceTimer=null;debounceMs;onChange;constructor(e,a){this.debounceMs=e,this.onChange=a}watchPaths(e){this.close();for(let a of e)try{let s=(0,En.watch)(a,{recursive:!0},()=>this.scheduleUpdate());this.watchers.push(s)}catch{}}scheduleUpdate(){this.debounceTimer&&window.clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.debounceTimer=null,this.onChange()},this.debounceMs)}close(){this.debounceTimer&&(window.clearTimeout(this.debounceTimer),this.debounceTimer=null);for(let e of this.watchers)try{e.close()}catch{}this.watchers=[]}};var bs=require("os"),q=require("obsidian");function Cc(t){return t==="~"?(0,bs.homedir)():t.startsWith("~/")?(0,bs.homedir)()+t.slice(1):t}var sa=class extends q.PluginSettingTab{plugin;constructor(e,a){super(e,a),this.plugin=a}display(){let{containerEl:e}=this;e.empty(),new q.Setting(e).setName("File watching").setDesc("Automatically detect changes to skill files").addToggle(s=>s.setValue(this.plugin.settings.watchEnabled).onChange(async i=>{this.plugin.settings.watchEnabled=i,await this.plugin.saveSettings(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Watch debounce (ms)").setDesc("Delay before re-scanning after file changes").addText(s=>s.setValue(String(this.plugin.settings.watchDebounceMs)).onChange(async i=>{let r=parseInt(i);!isNaN(r)&&r>=100&&(this.plugin.settings.watchDebounceMs=r,await this.plugin.saveSettings())})),new q.Setting(e).setName("Display names").setDesc("How skill and command names are displayed in the list").addDropdown(s=>s.addOptions({auto:"Auto (frontmatter / heading / filename)",filename:"Filename only"}).setValue(this.plugin.settings.namingMode||"auto").onChange(async i=>{this.plugin.settings.namingMode=i,await this.plugin.saveSettings(),this.plugin.refreshStore()})),new q.Setting(e).setName("Deep search by default").setDesc("Enable deep search when the view opens (can always be toggled in the search bar)").addToggle(s=>s.setValue(this.plugin.settings.deepSearchDefault??!1).onChange(async i=>{this.plugin.settings.deepSearchDefault=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Deep search scope").setDesc("What to include when deep search is enabled").addDropdown(s=>s.addOptions({both:"Description and file content",description:"Description only",content:"File content only"}).setValue(this.plugin.settings.deepSearchScope??"both").onChange(async i=>{this.plugin.settings.deepSearchScope=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Marketplace").setHeading(),new q.Setting(e).setName("Package runner").setDesc("Command used to install skills from the marketplace").addDropdown(s=>s.addOptions({auto:"Auto-detect",npx:"npx",bunx:"bunx"}).setValue(this.plugin.settings.packageRunner).onChange(async i=>{this.plugin.settings.packageRunner=i,await this.plugin.saveSettings()})),new q.Setting(e).setName("Project scanning").setHeading(),new q.Setting(e).setName("Scan projects").setDesc("Scan all directories under the projects home folder for project-level skills").addToggle(s=>s.setValue(this.plugin.settings.projectScanEnabled).onChange(async i=>{this.plugin.settings.projectScanEnabled=i,await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Projects home directory").setDesc("Root directory to scan for project-level skills. Leave empty for home directory (~).").addText(s=>s.setPlaceholder("~").setValue(this.plugin.settings.projectsHomeDir).onChange(async i=>{this.plugin.settings.projectsHomeDir=i,await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher()})),new q.Setting(e).setName("Custom paths").setHeading();for(let s of this.plugin.settings.customScanPaths)new q.Setting(e).setName(s).addExtraButton(i=>i.setIcon("trash").setTooltip("Remove").onClick(async()=>{this.plugin.settings.customScanPaths=this.plugin.settings.customScanPaths.filter(r=>r!==s),await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher(),this.display()}));let a="";new q.Setting(e).setName("Add custom path").setDesc("Additional directories to scan for project-level skills (looks for .claude/skills, .claude/commands, .claude/agents, .cursor/skills, .codex/skills inside each path)").addText(s=>s.setPlaceholder("~/projects/some-project").onChange(i=>{a=i})).addButton(s=>s.setButtonText("Add").onClick(async()=>{let i=a.trim();if(!i)return;let r=Cc(i);this.plugin.settings.customScanPaths.includes(r)||(this.plugin.settings.customScanPaths.push(r),await this.plugin.saveSettings(),this.plugin.refreshStore(),this.plugin.restartWatcher(),this.display())})),new q.Setting(e).setName("Tools").setHeading();for(let s of U){let i=s.isInstalled(),r=this.plugin.settings.tools[s.id]||{enabled:!0,customPaths:[]};new q.Setting(e).setName(s.name).setDesc(i?"Installed":"Not detected").addToggle(n=>n.setValue(i&&r.enabled).setDisabled(!i).onChange(async o=>{this.plugin.settings.tools[s.id]={...r,enabled:o},await this.plugin.saveSettings(),this.plugin.refreshStore()}))}}};var ia=class extends Rn.Plugin{settings=ms;store=new ea;watcher=null;async onload(){await this.loadSettings(),this.addVaultPath(),this.registerView(pt,e=>new Kt(e,this.store,this.settings,()=>this.saveSettings())),this.addRibbonIcon("cpu","Agentfiles",()=>this.activateView()),this.addCommand({id:"open",name:"Open",callback:()=>this.activateView()}),this.addSettingTab(new sa(this.app,this)),this.store.setDeepSearch(this.settings.deepSearchDefault??!1),this.store.setDeepSearchScope(this.settings.deepSearchScope??"both"),this.app.workspace.onLayoutReady(()=>{this.refreshStore(),this.startWatcher()})}addVaultPath(){let e=this.app.vault.adapter;if(!e.getBasePath)return;let a=e.getBasePath();this.settings.customScanPaths.includes(a)||this.settings.customScanPaths.push(a)}onunload(){this.stopWatcher()}refreshStore(){this.store.refresh(this.settings)}startWatcher(){this.settings.watchEnabled&&(this.watcher=new aa(this.settings.watchDebounceMs,()=>this.refreshStore()),this.watcher.watchPaths(mn(this.settings)))}stopWatcher(){this.watcher&&(this.watcher.close(),this.watcher=null)}restartWatcher(){this.stopWatcher(),this.startWatcher()}async activateView(){let e=this.app.workspace.getLeavesOfType(pt);if(e.length>0){await this.app.workspace.revealLeaf(e[0]);return}let a=this.app.workspace.getLeaf("tab");await a.setViewState({type:pt,active:!0}),await this.app.workspace.revealLeaf(a)}async loadSettings(){let e=await this.loadData();this.settings=Object.assign({},ms,e)}async saveSettings(){await this.saveData(this.settings)}}; diff --git a/src/scaffolds.ts b/src/scaffolds.ts new file mode 100644 index 0000000..9c8e3ad --- /dev/null +++ b/src/scaffolds.ts @@ -0,0 +1,59 @@ +import type { SkillType } from "./types"; + +// Shared scaffold templates for the create-file flows in both the Obsidian plugin +// and the VS Code extension. Keeping them here prevents the two frontends from +// drifting (they used to hand-roll near-identical strings). The rule scaffold emits +// the .mdc frontmatter Cursor and Continue expect (description, globs, alwaysApply); +// AGENTS.md-style agents read a flat body, so memory/rules on those tools still get a +// usable file. + +export interface ScaffoldInput { + name: string; + type: SkillType; + // directory-with-skillmd tools get a SKILL.md body; flat tools get a single file. + directory: boolean; +} + +function skillBody(name: string): string { + return ["---", `name: ${name}`, 'description: ""', "---", "", `# ${name}`, "", "## Instructions", "", ""].join("\n"); +} + +function ruleBody(name: string): string { + return [ + "---", + `description: ${name}`, + 'globs: ""', + "alwaysApply: false", + "---", + "", + `# ${name}`, + "", + ].join("\n"); +} + +function memoryBody(name: string): string { + return [`# ${name}`, "", ""].join("\n"); +} + +function flatBody(name: string): string { + return ["---", 'description: ""', "---", "", `# ${name}`, ""].join("\n"); +} + +// The file extension a rule/memory/command file should use for a given tool path. +// Cursor rules are .mdc; everything else is .md. +export function scaffoldExtension(type: SkillType, mdc: boolean): string { + if (type === "rule" && mdc) return ".mdc"; + return ".md"; +} + +export function scaffoldContent(input: ScaffoldInput): string { + if (input.directory) return skillBody(input.name); + switch (input.type) { + case "rule": + return ruleBody(input.name); + case "memory": + return memoryBody(input.name); + default: + return flatBody(input.name); + } +} diff --git a/src/scanner.ts b/src/scanner.ts index b9fe9de..fddfbef 100644 --- a/src/scanner.ts +++ b/src/scanner.ts @@ -177,6 +177,16 @@ function parseSkillFile( typeof frontmatter.description === "string" ? frontmatter.description : ""; + const globs = + typeof frontmatter.globs === "string" + ? frontmatter.globs + : Array.isArray(frontmatter.globs) + ? frontmatter.globs.join(",") + : undefined; + const alwaysApply = + typeof frontmatter.alwaysApply === "boolean" + ? frontmatter.alwaysApply + : undefined; let realPath: string; try { @@ -196,6 +206,8 @@ function parseSkillFile( dirPath: join(filePath, ".."), content: raw, frontmatter, + globs, + alwaysApply, lastModified: stat.mtimeMs, fileSize: stat.size, isFavorite: false, diff --git a/src/types.ts b/src/types.ts index 3599112..c1371f4 100644 --- a/src/types.ts +++ b/src/types.ts @@ -29,6 +29,8 @@ export interface SkillItem { dirPath: string; content: string; frontmatter: Record; + globs?: string; + alwaysApply?: boolean; lastModified: number; fileSize: number; isFavorite: boolean; diff --git a/src/views/create-skill-modal.ts b/src/views/create-skill-modal.ts index af36406..6c29f72 100644 --- a/src/views/create-skill-modal.ts +++ b/src/views/create-skill-modal.ts @@ -3,6 +3,7 @@ import { existsSync, mkdirSync, writeFileSync } from "fs"; import { join } from "path"; import { TOOL_CONFIGS } from "../tool-configs"; import { TOOL_SVGS, renderToolIcon } from "../tool-icons"; +import { scaffoldContent, scaffoldExtension } from "../scaffolds"; import type { ToolConfig, SkillPath } from "../types"; interface ToolOption { @@ -16,7 +17,6 @@ function getToolOptions(): ToolOption[] { if (!tool.isInstalled()) continue; const paths: { sp: SkillPath; label: string }[] = []; for (const sp of [...tool.paths, ...tool.agentPaths]) { - if (sp.type === "rule" || sp.type === "memory") continue; paths.push({ sp, label: sp.type }); } if (paths.length > 0) options.push({ tool, paths }); @@ -28,6 +28,8 @@ const TYPE_ICONS: Record = { skill: "sparkles", command: "terminal", agent: "bot", + rule: "scroll", + memory: "database", }; export class CreateSkillModal extends Modal { @@ -187,34 +189,26 @@ export class CreateSkillModal extends Modal { } mkdirSync(dir, { recursive: true }); filePath = join(dir, "SKILL.md"); - writeFileSync(filePath, [ - "---", - `name: ${this.name}`, - 'description: ""', - "---", - "", - `# ${this.name}`, - "", - "## Instructions", - "", - "", - ].join("\n"), "utf-8"); + writeFileSync(filePath, scaffoldContent({ + name: this.name, + type: sp.type, + directory: true, + }), "utf-8"); } else { if (!existsSync(sp.baseDir)) { mkdirSync(sp.baseDir, { recursive: true }); } - filePath = join(sp.baseDir, `${slug}.md`); + const extension = scaffoldExtension(sp.type, sp.pattern === "mdc"); + filePath = join(sp.baseDir, `${slug}${extension}`); if (existsSync(filePath)) { - new Notice(`Already exists: ${slug}.md`); + new Notice(`Already exists: ${slug}${extension}`); return; } - writeFileSync(filePath, [ - "---", - 'description: ""', - "---", - "", - "", - ].join("\n"), "utf-8"); + writeFileSync(filePath, scaffoldContent({ + name: this.name, + type: sp.type, + directory: false, + }), "utf-8"); } new Notice(`Created ${this.name}`); diff --git a/src/views/sidebar.ts b/src/views/sidebar.ts index 60266b6..5db96d1 100644 --- a/src/views/sidebar.ts +++ b/src/views/sidebar.ts @@ -105,6 +105,7 @@ export class SidebarPanel { { label: "Commands", icon: "terminal", type: "command" }, { label: "Agents", icon: "bot", type: "agent" }, { label: "Rules", icon: "scroll", type: "rule" }, + { label: "Memories", icon: "database", type: "memory" }, ]; const items = types diff --git a/vscode/src/parity.ts b/vscode/src/parity.ts index 0361f60..f64679f 100644 --- a/vscode/src/parity.ts +++ b/vscode/src/parity.ts @@ -13,6 +13,7 @@ import { VALID_AGENTS, } from "../../src/marketplace"; import { formatLastUsed, getSkillTraces, getSkillkitStats, isSkillkitAvailable } from "../../src/skillkit"; +import { scaffoldContent, scaffoldExtension } from "../../src/scaffolds"; import { TOOL_CONFIGS } from "../../src/tool-configs"; import type { SkillItem } from "../../src/types"; @@ -198,15 +199,24 @@ export async function createSkillFlow(onCreated: () => Promise): Promise