@waniwani/sdk 0.12.6 → 0.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/embed.js +2 -2
- package/dist/chat/embed.js.map +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/styles.css +1 -1
- package/dist/legacy/index.js +1 -1
- package/dist/legacy/index.js.map +1 -1
- package/package.json +1 -1
package/dist/legacy/index.js
CHANGED
|
@@ -65,7 +65,7 @@ import{a as yr,b as br,c as kr,d as pt,e as mt,f as ua,g as Tr,h as Pr,i as vr,j
|
|
|
65
65
|
}
|
|
66
66
|
`})]});f();f();f();var Mu={debug:0,warn:1,error:2,none:3};function Fu(){let e=process.env.WANIWANI_LOG_LEVEL;return e&&e in Mu?e:process.env.WANIWANI_DEBUG?"debug":"none"}function Be(e,t){return t??Fu()==="debug"?(...o)=>console.log(`[waniwani:${e}]`,...o):()=>{}}f();function cs(e){if(e===!0)return{};if(!(e===!1||e===void 0))return e}f();function fs(){return function(t){return t.headers.set("Access-Control-Allow-Origin","*"),t.headers.set("Access-Control-Allow-Methods","GET, POST, PATCH, OPTIONS"),t.headers.set("Access-Control-Allow-Headers","Content-Type, Authorization, X-Session-Id, X-Client-User-Agent"),t.headers.set("Access-Control-Expose-Headers","X-Session-Id"),t}}function ps(e){return function(a,o){return e(new Response(JSON.stringify(a),{headers:{"Content-Type":"application/json"},status:o}))}}f();f();var Ie=class extends Error{constructor(a,o){super(a);this.status=o;this.name="WaniWaniError"}};f();function ms(e){let t=e.headers,a=t.get("x-vercel-ip-city")??t.get("cf-ipcity")??void 0,o=a?Du(a):void 0,r=t.get("x-vercel-ip-country")??t.get("cf-ipcountry")??void 0,s=t.get("x-vercel-ip-country-region")??void 0,n=t.get("x-vercel-ip-latitude")??t.get("cf-iplatitude")??void 0,l=t.get("x-vercel-ip-longitude")??t.get("cf-iplongitude")??void 0,i=t.get("x-vercel-ip-timezone")??t.get("cf-iptimezone")??void 0,u=t.get("x-real-ip")??t.get("x-forwarded-for")?.split(",")[0]?.trim()??t.get("cf-connecting-ip")??void 0;return{city:o,country:r,countryRegion:s,latitude:n,longitude:l,timezone:i,ip:u}}function Du(e){try{return decodeURIComponent(e)}catch{return e}}f();function hs(e,t){if(!ft(t))return e;let a=Sr(t);return a?[e,a].filter(Boolean).join(`
|
|
67
67
|
|
|
68
|
-
`):e}function gs(e){let{apiKey:t,apiUrl:a,source:o,systemPrompt:r,maxSteps:s,beforeRequest:n,mcpServerUrl:l,resolveConfig:i,debug:u,webSearch:c}=e,d=Be("chat",u);return async function(m){d("\u2192 POST",m.url);try{let h=await m.json(),I=h.messages??[],L=h.sessionId,S=h.modelContext,C=r,g=typeof h.extra=="object"&&h.extra!==null&&!Array.isArray(h.extra)?h.extra:void 0,b=h.visitorContext??null,T=ms(m),P={geo:T,client:b};if(d("body parsed \u2014 messages:",I.length,"sessionId:",L??"(none)","geo:",JSON.stringify(T)),n){d("running beforeRequest hook");try{let M=await n({messages:I,sessionId:L,modelContext:S,request:m,visitor:P});M&&(M.messages&&(I=M.messages),M.systemPrompt!==void 0&&(C=M.systemPrompt),M.sessionId!==void 0&&(L=M.sessionId),M.modelContext!==void 0&&(S=M.modelContext)),d("beforeRequest hook done \u2014 messages:",I.length,"sessionId:",L??"(none)")}catch(M){console.error("[waniwani:chat] beforeRequest hook error:",M);let O=M instanceof Ie?M.status:400,F=M instanceof Error?M.message:"Request rejected";return d("\u2190 returning",O,"from hook error"),Response.json({error:F},{status:O})}}let R=l??(await i()).mcpServerUrl;d("mcpServerUrl:",R),C=hs(C,S);let v=`${a}/api/mcp/chat`;d("forwarding to",v);let _=m.headers.get("user-agent"),A=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json","X-WaniWani-Stream-Protocol":"2",...t?{Authorization:`Bearer ${t}`}:{},..._?{"X-Client-User-Agent":_}:{}},body:JSON.stringify({messages:I,mcpServerUrl:R,sessionId:L,source:o,systemPrompt:C,maxSteps:s,visitor:P,webSearch:c,...g&&{extra:g}}),signal:m.signal});if(d("upstream response status:",A.status),!A.ok){let M=await A.text().catch(()=>"");return d("\u2190 returning",A.status,"upstream error:",M),new Response(M,{status:A.status,headers:{"Content-Type":A.headers.get("Content-Type")??"application/json"}})}let E=new Headers({"Content-Type":A.headers.get("Content-Type")??"text/event-stream"}),y=A.headers.get("x-session-id");return y&&E.set("x-session-id",y),d("\u2190 streaming response",A.status,"body null?",A.body===null),new Response(A.body,{status:A.status,headers:E})}catch(h){console.error("[waniwani:chat] handler error:",h);let I=h instanceof Error?h.message:"Unknown error occurred",L=h instanceof Ie?h.status:500;return d("\u2190 returning",L,"from caught error"),Response.json({error:I},{status:L})}}}f();function ws(e){let{mcpServerUrl:t,resolveConfig:a,debug:o}=e,r=Be("resource",o);return async function(n){r("\u2192 GET",n.toString());try{let l=n.searchParams.get("uri");if(r("uri:",l??"(missing)"),!l)return r("\u2190 400 missing uri"),Response.json({error:"Missing uri query parameter"},{status:400});let i=t??(await a()).mcpServerUrl;r("mcpServerUrl:",i);let u,c;try{[{createMCPClient:u},{StreamableHTTPClientTransport:c}]=await Promise.all([import("@ai-sdk/mcp"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),r("MCP deps loaded")}catch(p){return console.error("[waniwani:resource] MCP deps import failed:",p),Response.json({error:"MCP resource handler requires @ai-sdk/mcp and @modelcontextprotocol/sdk. Install them to enable resource serving."},{status:501})}r("creating MCP client for",i);let d=await u({transport:new c(new URL(i))});try{r("reading resource:",l);let p=await d.readResource({uri:l});r("resource contents count:",p.contents.length);let m=p.contents[0];if(!m)return r("\u2190 404 resource not found"),Response.json({error:"Resource not found"},{status:404});let h;return"text"in m&&typeof m.text=="string"?h=m.text:"blob"in m&&typeof m.blob=="string"&&(h=atob(m.blob)),h?(r("\u2190 200 HTML length:",h.length),new Response(h,{headers:{"Content-Type":"text/html","Cache-Control":"private, max-age=300"}})):(r("\u2190 404 resource has no content, keys:",Object.keys(m)),Response.json({error:"Resource has no content"},{status:404}))}finally{await d.close(),r("MCP client closed")}}catch(l){console.error("[waniwani:resource] handler error:",l);let i=l instanceof Error?l.message:"Unknown error occurred",u=l instanceof Ie?l.status:500;return r("\u2190 returning",u,"from caught error"),Response.json({error:i},{status:u})}}}f();function xs(e){let{mcpServerUrl:t,resolveConfig:a,debug:o,source:r}=e,s=Be("tool",o);return async function(l){s("\u2192 POST",l.url);try{let i=await l.json(),{name:u,arguments:c}=i,d=l.headers.get("x-session-id")?.trim();if(!u||typeof u!="string")return s("\u2190 400 missing tool name"),Response.json({error:"Missing tool name"},{status:400});s("tool:",u,"args:",JSON.stringify(c),"sessionId:",d||"(none)");let p=t??(await a()).mcpServerUrl;s("mcpServerUrl:",p);let m,h;try{[{Client:m},{StreamableHTTPClientTransport:h}]=await Promise.all([import("@modelcontextprotocol/sdk/client/index.js"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),s("MCP deps loaded")}catch(S){return console.error("[waniwani:tool] MCP deps import failed:",S),Response.json({error:"MCP tool handler requires @modelcontextprotocol/sdk. Install it to enable tool calls."},{status:501})}s("creating MCP client for",p);let I=new h(new URL(p)),L=new m({name:"waniwani-tool-caller",version:"1.0.0"});await L.connect(I);try{s("calling tool:",u);let S={};d&&(S["waniwani/sessionId"]=d),r&&(S["waniwani/source"]=r);let C=await L.callTool({name:u,arguments:c??{},...Object.keys(S).length>0?{_meta:S}:{}});return s("tool result received"),Response.json({content:C.content,structuredContent:C.structuredContent,_meta:C._meta,isError:C.isError})}finally{await L.close(),s("MCP client closed")}}catch(i){console.error("[waniwani:tool] handler error:",i);let u=i instanceof Error?i.message:"Unknown error occurred",c=i instanceof Ie?i.status:500;return s("\u2190 returning",c,"from caught error"),Response.json({error:u},{status:c})}}}f();function Ls(e){let{mcpServerUrl:t,resolveConfig:a,debug:o}=e,r=Be("tools-list",o);return async function(){r("\u2192 GET tools/list");try{let n=t??(await a()).mcpServerUrl;r("mcpServerUrl:",n);let l,i;try{[{createMCPClient:l},{StreamableHTTPClientTransport:i}]=await Promise.all([import("@ai-sdk/mcp"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),r("MCP deps loaded")}catch(c){return console.error("[waniwani:tools-list] MCP deps import failed:",c),Response.json({error:"MCP tools list handler requires @ai-sdk/mcp and @modelcontextprotocol/sdk. Install them to enable tool discovery."},{status:501})}r("creating MCP client for",n);let u=await l({transport:new i(new URL(n))});try{r("listing tools");let c=await u.listTools();r("tools count:",c.tools.length);let d={tools:c.tools.map(p=>({name:p.name,...p.title!==void 0&&{title:p.title},...p.description!==void 0&&{description:p.description},...p.inputSchema!==void 0&&{inputSchema:p.inputSchema},...p.outputSchema!==void 0&&{outputSchema:p.outputSchema},...p.annotations!==void 0&&{annotations:p.annotations},...p._meta!==void 0&&{_meta:p._meta}})),...c.nextCursor!==void 0&&{nextCursor:c.nextCursor}};return r("\u2190 200"),Response.json(d,{headers:{"Cache-Control":"private, max-age=60"}})}finally{await u.close(),r("MCP client closed")}}catch(n){console.error("[waniwani:tools-list] handler error:",n);let l=n instanceof Error?n.message:"Unknown error occurred",i=n instanceof Ie?n.status:500;return r("\u2190 returning",i,"from caught error"),Response.json({error:l},{status:i})}}}f();var Bu=300*1e3;function Cs(e,t){let a=null,o=null;return async function(){if(a&&Date.now()<a.expiresAt)return a.config;if(o)return o;o=(async()=>{if(!t)throw new Ie("WANIWANI_API_KEY is required for createChatHandler",401);let s=await fetch(`${e}/api/mcp/environments/config`,{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!s.ok){let l=await s.text().catch(()=>"");throw new Ie(`Failed to resolve MCP environment config: ${s.status} ${l}`,s.status)}let n=await s.json();return a={config:n,expiresAt:Date.now()+Bu},n})();try{return await o}finally{o=null}}}var Eu="https://app.waniwani.ai";function Is(e={}){let{apiKey:t=process.env.WANIWANI_API_KEY,apiUrl:a=Eu,source:o,systemPrompt:r,maxSteps:s=5,beforeRequest:n,mcpServerUrl:l,debug:i=!1,webSearch:u}=e,c=Be("router",i),d=fs(),p=ps(d),m=Cs(a,t),h=gs({apiKey:t,apiUrl:a,source:o,systemPrompt:r,maxSteps:s,beforeRequest:n,mcpServerUrl:l,resolveConfig:m,debug:i,webSearch:cs(u)}),I=ws({mcpServerUrl:l,resolveConfig:m,debug:i}),L=Ls({mcpServerUrl:l,resolveConfig:m,debug:i}),S=xs({mcpServerUrl:l,resolveConfig:m,debug:i,source:o}),C=process.env.WANIWANI_EVAL==="1";async function g(R){c("\u2192 GET",R.url);try{let v=new URL(R.url),A=v.pathname.replace(/\/$/,"").split("/").filter(Boolean).at(-1);if(c("pathname:",v.pathname,"subRoute:",A),C&&A==="scenarios"){c("dispatching to scenarios handler (proxy to app API)");try{let y=await(await fetch(`${a}/api/mcp/scenarios`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}})).json();return p(y.data??y,200)}catch{return p([],200)}}if(A==="resource"){c("dispatching to resource handler");let E=await I(v);return c("\u2190 resource handler returned",E.status),d(E)}if(A==="config")return c("dispatching to config handler"),p({debug:i,eval:C},200);if(A==="tools"){c("dispatching to tools-list handler");let E=await L();return c("\u2190 tools-list handler returned",E.status),d(E)}return c("\u2190 404 no matching sub-route for",A),p({error:"Not found"},404)}catch(v){console.error("[waniwani:router] GET handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}async function b(R){c("\u2192 POST",R.url);try{let v=new URL(R.url),A=v.pathname.replace(/\/$/,"").split("/").filter(Boolean).at(-1);if(c("pathname:",v.pathname,"subRoute:",A),C&&A==="scenarios"){c("dispatching to save-scenario handler (proxy to app API)");try{let y=await R.json(),M=await fetch(`${a}/api/mcp/scenarios`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(y)}),O=await M.json();return M.ok?p({ok:!0,scenario:O.data},200):p({error:O.message??"Failed to save scenario"},M.status)}catch(y){let M=y instanceof Error?y.message:"Failed to save scenario";return p({error:M},400)}}if(A==="tool"){c("dispatching to tool handler");let y=await S(R);return c("\u2190 tool handler returned",y.status),d(y)}c("dispatching to chat handler");let E=await h(R);return d(E)}catch(v){console.error("[waniwani:router] POST handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}async function T(R){c("\u2192 PATCH",R.url);try{let v=new URL(R.url),_=v.pathname.replace(/\/$/,"").split("/").filter(Boolean),A=_.at(-1),E=_.at(-2);if(c("pathname:",v.pathname,"subRoute:",E,"id:",A),C&&E==="scenarios"&&A){c("dispatching to update-scenario handler (proxy to app API)");try{let y=await R.json(),M=await fetch(`${a}/api/mcp/scenarios/${A}`,{method:"PATCH",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(y)}),O=await M.json();return M.ok?p({ok:!0,scenario:O.data},200):p({error:O.message??"Failed to update scenario"},M.status)}catch(y){let M=y instanceof Error?y.message:"Failed to update scenario";return p({error:M},400)}}return c("\u2190 404 no matching sub-route for PATCH",E),p({error:"Not found"},404)}catch(v){console.error("[waniwani:router] PATCH handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}function P(){return d(new Response(null,{status:204}))}return{handleChat:h,handleResource:I,handleTool:S,routeGet:g,routePost:b,routePatch:T,handleOptions:P}}var Ss=!1;function mx(e,t){!Ss&&process.env.NODE_ENV!=="test"&&(console.warn("[waniwani-sdk] toNextJsHandler is deprecated; switch to toExpressJsHandler from @waniwani/sdk/express-js. It will be removed in a follow-up release."),Ss=!0);let{apiKey:a,apiUrl:o}=e._config,r=t?.debug??process.env.WANIWANI_DEBUG==="1",s=Is({...t?.chat,apiKey:a,apiUrl:o,source:t?.source,debug:r});return{POST:s.routePost,GET:s.routeGet,PATCH:s.routePatch,OPTIONS:()=>s.handleOptions()}}f();import{forwardRef as Ym,useCallback as wr,useEffect as eh,useImperativeHandle as th,useRef as Fl,useState as Dl}from"react";f();f();f();import{forwardRef as Nu,createElement as Uu}from"react";f();var ga=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();f();var ys=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();f();f();var bs=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,o)=>o?o.toUpperCase():a.toLowerCase());var xo=e=>{let t=bs(e);return t.charAt(0).toUpperCase()+t.slice(1)};f();import{forwardRef as _u,createElement as Ps}from"react";f();var ks={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};f();var Ts=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var vs=_u(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:n,...l},i)=>Ps("svg",{ref:i,...ks,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:ga("lucide",r),...!s&&!Ts(l)&&{"aria-hidden":"true"},...l},[...n.map(([u,c])=>Ps(u,c)),...Array.isArray(s)?s:[s]]));var J=(e,t)=>{let a=Nu(({className:o,...r},s)=>Uu(vs,{ref:s,iconNode:t,className:ga(`lucide-${ys(xo(e))}`,`lucide-${e}`,o),...r}));return a.displayName=xo(e),a};f();var Ou=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ft=J("arrow-down",Ou);f();var Hu=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Dt=J("arrow-up",Hu);f();var qu=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],$e=J("braces",qu);f();var Wu=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Bt=J("check",Wu);f();var Gu=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Et=J("chevron-down",Gu);f();var ju=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],_t=J("chevron-right",ju);f();var zu=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Nt=J("clipboard-copy",zu);f();var Vu=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Ut=J("file",Vu);f();var $u=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],Ot=J("loader",$u);f();var Xu=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Ht=J("paperclip",Xu);f();var Ku=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],qt=J("square",Ku);f();var Qu=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],tt=J("x",Qu);import{useCallback as pd}from"react";f();import{useCallback as Xe,useMemo as Ju,useRef as Zu,useState as Lo}from"react";var Yu={damping:.7,stiffness:.05,mass:1.25},ed=70,td=1e3/60,ad=350,wa=!1;globalThis.document?.addEventListener("mousedown",()=>{wa=!0});globalThis.document?.addEventListener("mouseup",()=>{wa=!1});globalThis.document?.addEventListener("click",()=>{wa=!1});var Rs=(e={})=>{let[t,a]=Lo(!1),[o,r]=Lo(e.initial!==!1),[s,n]=Lo(!1),l=Zu(null);l.current=e;let i=Xe(()=>{if(!wa)return!1;let C=window.getSelection();if(!C||!C.rangeCount)return!1;let g=C.getRangeAt(0);return g.commonAncestorContainer.contains(L.current)||L.current?.contains(g.commonAncestorContainer)},[]),u=Xe(C=>{d.isAtBottom=C,r(C)},[]),c=Xe(C=>{d.escapedFromLock=C,a(C)},[]),d=Ju(()=>{let C;return{escapedFromLock:t,isAtBottom:o,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return L.current?.scrollTop??0},set scrollTop(g){L.current&&(L.current.scrollTop=g,d.ignoreScrollToTop=L.current.scrollTop)},get targetScrollTop(){return!L.current||!S.current?0:L.current.scrollHeight-1-L.current.clientHeight},get calculatedTargetScrollTop(){if(!L.current||!S.current)return 0;let{targetScrollTop:g}=this;if(!e.targetScrollTop)return g;if(C?.targetScrollTop===g)return C.calculatedScrollTop;let b=Math.max(Math.min(e.targetScrollTop(g,{scrollElement:L.current,contentElement:S.current}),g),0);return C={targetScrollTop:g,calculatedScrollTop:b},requestAnimationFrame(()=>{C=void 0}),b},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=ed}}},[]),p=Xe((C={})=>{typeof C=="string"&&(C={animation:C}),C.preserveScrollPosition||u(!0);let g=Date.now()+(Number(C.wait)||0),b=Io(l.current,C.animation),{ignoreEscapes:T=!1}=C,P,R=d.calculatedTargetScrollTop;C.duration instanceof Promise?C.duration.finally(()=>{P=Date.now()}):P=g+(C.duration??0);let v=async()=>{let _=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:A}=d,E=performance.now(),y=(E-(d.lastTick??E))/td;if(d.animation||(d.animation={behavior:b,promise:_,ignoreEscapes:T}),d.animation.behavior===b&&(d.lastTick=E),i()||g>Date.now())return v();if(A<Math.min(R,d.calculatedTargetScrollTop)){if(d.animation?.behavior===b){if(b==="instant")return d.scrollTop=d.calculatedTargetScrollTop,v();d.velocity=(b.damping*d.velocity+b.stiffness*d.scrollDifference)/b.mass,d.accumulated+=d.velocity*y,d.scrollTop+=d.accumulated,d.scrollTop!==A&&(d.accumulated=0)}return v()}return P>Date.now()?(R=d.calculatedTargetScrollTop,v()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?p({animation:Io(l.current,l.current.resize),ignoreEscapes:T,duration:Math.max(0,P-Date.now())||void 0}):d.isAtBottom)});return _.then(A=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),A))};return C.wait!==!0&&(d.animation=void 0),d.animation?.behavior===b?d.animation.promise:v()},[u,i,d]),m=Xe(()=>{c(!0),u(!1)},[c,u]),h=Xe(({target:C})=>{if(C!==L.current)return;let{scrollTop:g,ignoreScrollToTop:b}=d,{lastScrollTop:T=g}=d;d.lastScrollTop=g,d.ignoreScrollToTop=void 0,b&&b>g&&(T=b),n(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||g===b)return;if(i()){c(!0),u(!1);return}let P=g>T,R=g<T;if(d.animation?.ignoreEscapes){d.scrollTop=T;return}R&&(c(!0),u(!1)),P&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,i,d]),I=Xe(({target:C,deltaY:g})=>{let b=C;for(;!["scroll","auto"].includes(getComputedStyle(b).overflow);){if(!b.parentElement)return;b=b.parentElement}b===L.current&&g<0&&L.current.scrollHeight>L.current.clientHeight&&!d.animation?.ignoreEscapes&&(c(!0),u(!1))},[c,u,d]),L=As(C=>{L.current?.removeEventListener("scroll",h),L.current?.removeEventListener("wheel",I),C?.addEventListener("scroll",h,{passive:!0}),C?.addEventListener("wheel",I,{passive:!0})},[]),S=As(C=>{if(d.resizeObserver?.disconnect(),!C)return;let g;d.resizeObserver=new ResizeObserver(([b])=>{let{height:T}=b.contentRect,P=T-(g??T);if(d.resizeDifference=P,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),n(d.isNearBottom),P>=0){let R=Io(l.current,g?l.current.resize:l.current.initial);p({animation:R,wait:!0,preserveScrollPosition:!0,duration:R==="instant"?void 0:ad})}else d.isNearBottom&&(c(!1),u(!0));g=T,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===P&&(d.resizeDifference=0)},1)})}),d.resizeObserver?.observe(C)},[]);return{contentRef:S,scrollRef:L,scrollToBottom:p,stopScroll:m,isAtBottom:o||s,isNearBottom:s,escapedFromLock:t,state:d}};function As(e,t){let a=Xe(o=>(a.current=o,e(o)),t);return a}var Co=new Map;function Io(...e){let t={...Yu},a=!1;for(let r of e){if(r==="instant"){a=!0;continue}typeof r=="object"&&(a=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let o=JSON.stringify(t);return Co.has(o)||Co.set(o,Object.freeze(t)),a?"instant":Co.get(o)}f();import*as at from"react";import{createContext as od,useContext as rd,useEffect as sd,useImperativeHandle as nd,useLayoutEffect as id,useMemo as ld,useRef as ud}from"react";var Ms=od(null),dd=typeof window<"u"?id:sd;function Wt({instance:e,children:t,resize:a,initial:o,mass:r,damping:s,stiffness:n,targetScrollTop:l,contextRef:i,...u}){let c=ud(null),d=at.useCallback((T,P)=>(b?.targetScrollTop??l)?.(T,P)??T,[l]),p=Rs({mass:r,damping:s,stiffness:n,resize:a,initial:o,targetScrollTop:d}),{scrollRef:m,contentRef:h,scrollToBottom:I,stopScroll:L,isAtBottom:S,escapedFromLock:C,state:g}=e??p,b=ld(()=>({scrollToBottom:I,stopScroll:L,scrollRef:m,isAtBottom:S,escapedFromLock:C,contentRef:h,state:g,get targetScrollTop(){return c.current},set targetScrollTop(T){c.current=T}}),[I,S,h,m,L,C,g]);return nd(i,()=>b,[b]),dd(()=>{m.current&&getComputedStyle(m.current).overflow==="visible"&&(m.current.style.overflow="auto")},[]),at.createElement(Ms.Provider,{value:b},at.createElement("div",{...u},typeof t=="function"?t(b):t))}(function(e){function t({children:a,scrollClassName:o,...r}){let s=So();return at.createElement("div",{ref:s.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:o},at.createElement("div",{...r,ref:s.contentRef},typeof a=="function"?a(s):a))}e.Content=t})(Wt||(Wt={}));function So(){let e=rd(Ms);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}f();var cd=br({prefix:"ww"});function B(...e){return cd(yr(e))}f();import{jsx as fd}from"react/jsx-runtime";var Ee=({className:e,variant:t="default",size:a="default",type:o="button",...r})=>fd("button",{type:o,className:B("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:!rounded-full",a==="icon-sm"&&"ww:size-7 ww:!rounded-full",e),...r});import{jsx as xa}from"react/jsx-runtime";var Fs=({className:e,...t})=>xa(Wt,{className:B("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),Ds=({className:e,...t})=>xa(Wt.Content,{className:B("ww:flex ww:flex-col ww:gap-6 ww:px-4 ww:py-6 ww:mx-auto ww:w-full ww:max-w-3xl",e),...t}),Bs=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:o}=So(),r=pd(()=>{o()},[o]);return!a&&xa(Ee,{className:B("ww:absolute ww:bottom-4 ww:left-[50%] ww:translate-x-[-50%] ww:rounded-full",e),onClick:r,size:"icon",variant:"outline",...t,children:xa(Ft,{className:"ww:size-4"})})};f();f();import _s from"crypto";f();var Es="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var md=128,ot,wt,hd=e=>{!ot||ot.length<e?(ot=Buffer.allocUnsafe(e*md),_s.randomFillSync(ot),wt=0):wt+e>ot.length&&(_s.randomFillSync(ot),wt=0),wt+=e};var Gt=(e=21)=>{hd(e|=0);let t="";for(let a=wt-e;a<wt;a++)t+=Es[ot[a]&63];return t};import{createContext as gd,useCallback as qe,useContext as wd,useEffect as yo,useMemo as xd,useRef as bo,useState as Ns}from"react";import{jsx as Me,jsxs as js}from"react/jsx-runtime";var Ld=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(o=>{let r=new FileReader;r.onloadend=()=>o(r.result),r.onerror=()=>o(null),r.readAsDataURL(a)})}catch{return null}},Us=gd(null),Os=()=>{let e=wd(Us);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Hs=({className:e,accept:t,multiple:a,globalDrop:o,maxFiles:r,maxFileSize:s,onSubmit:n,children:l,...i})=>{let u=bo(null),c=bo(null),[d,p]=Ns([]),m=bo(d);yo(()=>{m.current=d},[d]);let h=qe(()=>{u.current?.click()},[]),I=qe(T=>{let P=[...T];if(P.length===0)return;let R=_=>s?_.size<=s:!0,v=P.filter(R);p(_=>{let A=typeof r=="number"?Math.max(0,r-_.length):void 0,E=typeof A=="number"?v.slice(0,A):v;return[..._,...E.map(y=>({filename:y.name,id:Gt(),mediaType:y.type,type:"file",url:URL.createObjectURL(y)}))]})},[r,s]),L=qe(T=>{p(P=>{let R=P.find(v=>v.id===T);return R?.url&&URL.revokeObjectURL(R.url),P.filter(v=>v.id!==T)})},[]),S=qe(()=>{p(T=>{for(let P of T)P.url&&URL.revokeObjectURL(P.url);return[]})},[]);yo(()=>()=>{for(let T of m.current)T.url&&URL.revokeObjectURL(T.url)},[]);let C=qe(T=>{T.currentTarget.files&&I(T.currentTarget.files),T.currentTarget.value=""},[I]);yo(()=>{if(!o)return;let T=R=>{R.dataTransfer?.types?.includes("Files")&&R.preventDefault()},P=R=>{R.dataTransfer?.types?.includes("Files")&&R.preventDefault(),R.dataTransfer?.files&&R.dataTransfer.files.length>0&&I(R.dataTransfer.files)};return document.addEventListener("dragover",T),document.addEventListener("drop",P),()=>{document.removeEventListener("dragover",T),document.removeEventListener("drop",P)}},[I,o]);let g=qe(async T=>{T.preventDefault();let P=T.currentTarget,v=new FormData(P).get("message")||"";P.reset();let _=await Promise.all(d.map(async({id:A,...E})=>{if(E.url?.startsWith("blob:")){let y=await Ld(E.url);return{...E,url:y??E.url}}return E}));try{let A=n({files:_,text:v},T);A instanceof Promise&&await A,S()}catch{}},[d,n,S]),b=xd(()=>({add:I,clear:S,files:d,openFileDialog:h,remove:L}),[d,I,L,S,h]);return js(Us.Provider,{value:b,children:[Me("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:C,ref:u,title:"Upload files",type:"file"}),Me("form",{className:B("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:g,ref:c,...i,children:l})]})};var qs=({onChange:e,onKeyDown:t,className:a,placeholder:o="What would you like to know?",...r})=>{let s=Os(),[n,l]=Ns(!1),i=qe(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(n||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&s.files.length>0){c.preventDefault();let d=s.files.at(-1);d&&s.remove(d.id)}}},[t,n,s]),u=qe(c=>{let d=c.clipboardData?.items;if(!d)return;let p=[];for(let m of d)if(m.kind==="file"){let h=m.getAsFile();h&&p.push(h)}p.length>0&&(c.preventDefault(),s.add(p))},[s]);return Me("textarea",{className:B("ww:field-sizing-content ww:max-h-48 ww:min-h-0 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-2 ww:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>l(!1),onCompositionStart:()=>l(!0),onKeyDown:i,onPaste:u,placeholder:o,onChange:e,...r})},Ws=({className:e,status:t,onStop:a,onClick:o,children:r,...s})=>{let n=t==="submitted"||t==="streaming",l=Me(Dt,{className:"ww:size-4"});t==="submitted"?l=Me(Ot,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(l=Me(qt,{className:"ww:size-4"}));let i=qe(u=>{if(n&&a){u.preventDefault(),a();return}o?.(u)},[n,a,o]);return Me(Ee,{"aria-label":n?"Stop":"Submit",className:B("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:i,size:"icon-sm",type:n&&a?"button":"submit",variant:"ghost",...s,children:r??l})},Gs=({className:e,children:t,...a})=>{let o=Os();return o.files.length>0?js(Ee,{className:B("ww:group ww:relative",e),onClick:()=>o.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[Me("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:o.files.length}),Me(tt,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):Me(Ee,{className:B(e),onClick:()=>o.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??Me(Ht,{className:"ww:size-4"})})};f();import{memo as Cd,useCallback as Id}from"react";f();import{jsx as xt}from"react/jsx-runtime";var zs=({className:e,...t})=>xt("div",{className:B("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),Vs=({className:e,...t})=>xt("li",{className:B("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),$s=({className:e,...t})=>xt("span",{className:B("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),Xs=({className:e,...t})=>xt("span",{className:B("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),Ks=({className:e,...t})=>xt("div",{className:B("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),Qs=({className:e,...t})=>xt(Ee,{className:B("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});import{jsx as rt,jsxs as ko}from"react/jsx-runtime";var Js=Cd(({message:e,onRemove:t})=>{let a=Id(()=>t(e.id),[t,e.id]);return ko(Vs,{children:[rt($s,{}),rt(Xs,{children:e.text||"(attachment)"}),rt(Ks,{children:rt(Qs,{"aria-label":"Remove from queue",onClick:a,children:rt(tt,{className:"ww:size-3"})})})]})});Js.displayName="ChatQueueItem";function Zs({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:ko(zs,{className:B("ww:border-t ww:border-border",a),children:[ko("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),rt("ul",{children:e.map(o=>rt(Js,{message:o,onRemove:t},o.id))})]})}f();import{useState as Ys}from"react";import{jsx as Sd}from"react/jsx-runtime";function en({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[o,r]=Ys(!1),[s,n]=Ys(null),l=async()=>{let u={name:`session-${new Date().toISOString().slice(0,19)}`,type:"functional",messages:e,mode:"manual"};r(!0),n(null);try{let c=await fetch(`${a}/scenarios`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});if(!c.ok)throw new Error(`${c.status}`);n("saved")}catch{n("error")}finally{r(!1),setTimeout(()=>n(null),2e3)}};return!t||e.length===0?null:Sd("button",{type:"button",onClick:l,disabled:o,title:"Save scenario to WaniWani",className:"ww:ml-auto ww:text-[10px] ww:font-mono ww:uppercase ww:tracking-wider ww:text-muted-foreground hover:ww:text-foreground ww:cursor-pointer ww:transition-colors ww:disabled:opacity-40",children:o?"saving...":s==="saved"?"saved":s==="error"?"error":"export"})}f();f();import{jsx as jt,jsxs as bd}from"react/jsx-runtime";var tn=({files:e,className:t,...a})=>e.length===0?null:jt("div",{className:B("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((o,r)=>jt(yd,{file:o},r))});function yd({file:e}){return e.mediaType?.startsWith("image/")&&e.url?jt("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):bd("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[jt(Ut,{className:"ww:size-3 ww:shrink-0"}),jt("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}f();import{jsx as an}from"react/jsx-runtime";var To=({className:e,size:t=5,...a})=>an("div",{className:B("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(o=>an("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${o*.2}s`}},o))});f();f();f();f();f();f();var de={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};f();var _e={attentionSideAfter:2,attentionSideBefore:1,atxHeadingOpeningFenceSizeMax:6,autolinkDomainSizeMax:63,autolinkSchemeSizeMax:32,cdataOpeningString:"CDATA[",characterGroupPunctuation:2,characterGroupWhitespace:1,characterReferenceDecimalSizeMax:7,characterReferenceHexadecimalSizeMax:6,characterReferenceNamedSizeMax:31,codeFencedSequenceSizeMin:3,contentTypeContent:"content",contentTypeDocument:"document",contentTypeFlow:"flow",contentTypeString:"string",contentTypeText:"text",hardBreakPrefixSizeMin:2,htmlBasic:6,htmlCdata:5,htmlComment:2,htmlComplete:7,htmlDeclaration:4,htmlInstruction:3,htmlRawSizeMax:8,htmlRaw:1,linkResourceDestinationBalanceMax:32,linkReferenceSizeMax:999,listItemValueSizeMax:10,numericBaseDecimal:10,numericBaseHexadecimal:16,tabSize:4,thematicBreakMarkerCountMin:3,v8MaxSafeChunkSize:1e4};f();var ye={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};f();f();f();function on(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function rn(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function sn(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e>=94192&&e<=94198||e>=94208&&e<=101589||e>=101631&&e<=101662||e>=101760&&e<=101874||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128728||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129674||e>=129678&&e<=129734||e===129736||e>=129741&&e<=129756||e>=129759&&e<=129770||e>=129775&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function nn(e){return on(e)?"ambiguous":rn(e)?"fullwidth":e===8361||e>=65377&&e<=65470||e>=65474&&e<=65479||e>=65482&&e<=65487||e>=65490&&e<=65495||e>=65498&&e<=65500||e>=65512&&e<=65518?"halfwidth":e>=32&&e<=126||e===162||e===163||e===165||e===166||e===172||e===175||e>=10214&&e<=10221||e===10629||e===10630?"narrow":sn(e)?"wide":"neutral"}function kd(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function ln(e){return kd(e),nn(e)}var Td=Object.defineProperty,Pd=(e,t,a)=>t in e?Td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,vd=(e,t,a)=>Pd(e,typeof t!="symbol"?t+"":t,a);function Ad(e){return new RegExp("^\\p{Emoji_Presentation}","u").test(String.fromCodePoint(e))}function Rd(e){if(!e||e<4352)return!1;switch(ln(e)){case"fullwidth":case"halfwidth":return!0;case"wide":return!Ad(e);case"narrow":return!1;case"ambiguous":return 917760<=e&&e<=917999?null:!1;case"neutral":return new RegExp("^\\p{sc=Hangul}","u").test(String.fromCodePoint(e))}}function Md(e,t){return t!==65025||!e||e<8216?!1:e===8216||e===8217||e===8220||e===8221}function Fd(e){return e!==null&&e>=65024&&e<=65038}var Dd=un(new RegExp("\\p{P}|\\p{S}","u")),Bd=un(/\s/);function un(e){return t;function t(a){return a!==null&&a>-1&&e.test(String.fromCodePoint(a))}}var be;(e=>{e.spaceOrPunctuation=3,e.cjk=4096,e.cjkPunctuation=4098,e.ivs=8192,e.cjkOrIvs=12288,e.nonEmojiGeneralUseVS=16384,e.variationSelector=24576,e.ivsToCjkRightShift=1})(be||(be={}));function Ke(e){if(e===de.eof||kr(e)||Bd(e))return _e.characterGroupWhitespace;let t=0;if(e>=4352){if(Fd(e))return be.nonEmojiGeneralUseVS;switch(Rd(e)){case null:return be.ivs;case!0:t|=be.cjk;break}}return Dd(e)&&(t|=_e.characterGroupPunctuation),t}function La(e,t,a){if(!_d(e))return e;let o=t(),r=Ke(o);return!o||st(r)?e:Md(o,a)?be.cjkPunctuation:Ed(r)}function Ed(e){return e&~be.ivs}function st(e){return!!(e&_e.characterGroupWhitespace)}function Lt(e){return(e&be.cjkPunctuation)===_e.characterGroupPunctuation}function zt(e){return!!(e&be.cjk)}function dn(e){return e===be.ivs}function cn(e){return!!(e&be.cjkOrIvs)}function _d(e){return e===be.nonEmojiGeneralUseVS}function Po(e){return!!(e&be.spaceOrPunctuation)}function Ca(e){return!!(e&&e>=55296&&e<=56319)}function Ia(e){return!!(e&&e>=56320&&e<=57343)}function Sa(e,t,a){if(t._bufferIndex<2)return e;let r=a({start:{...t,_bufferIndex:t._bufferIndex-2},end:t}).codePointAt(0);return r&&r>=65536?r:e}function Nd(e,t,a){let o=e>=65536?2:1;if(t._bufferIndex<1+o)return null;let r=t._bufferIndex-o-2,s=a({start:{...t,_bufferIndex:r>=0?r:0},end:{...t,_bufferIndex:t._bufferIndex-o}}),n=s.charCodeAt(s.length-1);if(Number.isNaN(n))return null;if(s.length<2||n<56320||57343<n)return n;let l=s.codePointAt(0);return l&&l>=65536?l:n}var ya=class{constructor(e,t,a){this.previousCode=e,this.nowPoint=t,this.sliceSerialize=a,vd(this,"cachedValue")}value(){return this.cachedValue===void 0&&(this.cachedValue=Nd(this.previousCode,this.nowPoint,this.sliceSerialize)),this.cachedValue}};function ba(e,t,a){let o=a({start:t,end:{...t,_bufferIndex:t._bufferIndex+2}}).codePointAt(0);return o&&o>=65536?o:e}var vo={name:"attention",resolveAll:Ud,tokenize:Od};function Ud(e,t){let a=-1,o,r,s,n,l,i,u,c;for(;++a<e.length;)if(e[a][0]==="enter"&&e[a][1].type==="attentionSequence"&&e[a][1]._close){for(o=a;o--;)if(e[o][0]==="exit"&&e[o][1].type==="attentionSequence"&&e[o][1]._open&&t.sliceSerialize(e[o][1]).charCodeAt(0)===t.sliceSerialize(e[a][1]).charCodeAt(0)){if((e[o][1]._close||e[a][1]._open)&&(e[a][1].end.offset-e[a][1].start.offset)%3&&!((e[o][1].end.offset-e[o][1].start.offset+e[a][1].end.offset-e[a][1].start.offset)%3))continue;i=e[o][1].end.offset-e[o][1].start.offset>1&&e[a][1].end.offset-e[a][1].start.offset>1?2:1;let d={...e[o][1].end},p={...e[a][1].start};fn(d,-i),fn(p,i),n={type:i>1?ye.strongSequence:ye.emphasisSequence,start:d,end:{...e[o][1].end}},l={type:i>1?ye.strongSequence:ye.emphasisSequence,start:{...e[a][1].start},end:p},s={type:i>1?ye.strongText:ye.emphasisText,start:{...e[o][1].end},end:{...e[a][1].start}},r={type:i>1?ye.strong:ye.emphasis,start:{...n.start},end:{...l.end}},e[o][1].end={...n.start},e[a][1].start={...l.end},u=[],e[o][1].end.offset-e[o][1].start.offset&&(u=mt(u,[["enter",e[o][1],t],["exit",e[o][1],t]])),u=mt(u,[["enter",r,t],["enter",n,t],["exit",n,t],["enter",s,t]]),t.parser.constructs.insideSpan.null,u=mt(u,ua(t.parser.constructs.insideSpan.null,e.slice(o+1,a),t)),u=mt(u,[["exit",s,t],["enter",l,t],["exit",l,t],["exit",r,t]]),e[a][1].end.offset-e[a][1].start.offset?(c=2,u=mt(u,[["enter",e[a][1],t],["exit",e[a][1],t]])):c=0,pt(e,o-1,a-o+3,u),a=o+u.length-c-2;break}}for(a=-1;++a<e.length;)e[a][1].type==="attentionSequence"&&(e[a][1].type="data");return e}function Od(e,t){let a=this.parser.constructs.attentionMarkers.null,{now:o,sliceSerialize:r,previous:s}=this,n=Ia(s)?Sa(s,o(),r):s,l=Ke(n),i=new ya(n,o(),r),u=La(l,i.value.bind(i),n),c;return d;function d(m){return m===de.asterisk||de.underscore,c=m,e.enter("attentionSequence"),p(m)}function p(m){if(m===c)return e.consume(m),p;let h=e.exit("attentionSequence"),I=Ca(m)?ba(m,o(),r):m,L=Ke(I);let S=Lt(u),C=S||st(u),g=Lt(L),b=g||st(L),T=cn(u),P=!b||g&&(C||T)||a.includes(m),R=!C||S&&(b||zt(L))||a.includes(n);return h._open=!!(c===de.asterisk?P:P&&(Po(u)||!R)),h._close=!!(c===de.asterisk?R:R&&(Po(L)||!P)),t(m)}}function fn(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}function pn(){return{text:{[de.asterisk]:vo,[de.underscore]:vo},insideSpan:{null:[vo]}}}function mn(){let e=this.data();(e.micromarkExtensions||(e.micromarkExtensions=[])).push(pn())}f();f();function hn(e){let a=(e||{}).singleTilde,o={name:"strikethrough",tokenize:s,resolveAll:r};return a==null&&(a=!0),{text:{[de.tilde]:o},insideSpan:{null:[o]},attentionMarkers:{null:[de.tilde]}};function r(n,l){let i=-1;for(;++i<n.length;)if(n[i][0]==="enter"&&n[i][1].type==="strikethroughSequenceTemporary"&&n[i][1]._close){let u=i;for(;u--;)if(n[u][0]==="exit"&&n[u][1].type==="strikethroughSequenceTemporary"&&n[u][1]._open&&n[i][1].end.offset-n[i][1].start.offset===n[u][1].end.offset-n[u][1].start.offset){n[i][1].type="strikethroughSequence",n[u][1].type="strikethroughSequence";let c={type:"strikethrough",start:Object.assign({},n[u][1].start),end:Object.assign({},n[i][1].end)},d={type:"strikethroughText",start:Object.assign({},n[u][1].end),end:Object.assign({},n[i][1].start)},p=[["enter",c,l],["enter",n[u][1],l],["exit",n[u][1],l],["enter",d,l]],m=l.parser.constructs.insideSpan.null;m&&pt(p,p.length,0,ua(m,n.slice(u+1,i),l)),pt(p,p.length,0,[["exit",d,l],["enter",n[i][1],l],["exit",n[i][1],l],["exit",c,l]]),pt(n,u-1,i-u+3,p),i=u+p.length-2;break}}for(i=-1;++i<n.length;)n[i][1].type==="strikethroughSequenceTemporary"&&(n[i][1].type=ye.data);return n}function s(n,l,i){let{now:u,sliceSerialize:c,previous:d}=this,p=Ia(d)?Sa(d,u(),c):d,m=Ke(p),h=new ya(p,u(),c),I=La(m,h.value.bind(h),p),L=this.events,S=0;return C;function C(b){return de.tilde,p===de.tilde&&L[L.length-1][1].type!==ye.characterEscape?i(b):(n.enter("strikethroughSequenceTemporary"),g(b))}function g(b){let T=Ke(p);if(b===de.tilde)return S>1?i(b):(n.consume(b),S++,g);if(S<2&&!a)return i(b);let P=n.exit("strikethroughSequenceTemporary"),R=Ca(b)?ba(b,u(),c):b,v=Ke(R),A=Lt(I)||st(I),y=Lt(v)||st(v),M=zt(I)||dn(T);return P._open=!y||v===_e.attentionSideAfter&&(A||M),P._close=!A||T===_e.attentionSideAfter&&(y||zt(v)),l(b)}}}function gn(e){let t=this.data();(t.micromarkExtensions||(t.micromarkExtensions=[])).push(hn(e))}var Hd=new Set(["\u3002","\uFF0E","\uFF0C","\u3001","\uFF1F","\uFF01","\uFF1A","\uFF1B","\uFF08","\uFF09","\u3010","\u3011","\u300C","\u300D","\u300E","\u300F","\u3008","\u3009","\u300A","\u300B"]),qd=/^(https?:\/\/|mailto:|www\.)/i,Wd=e=>{if(e.children.length!==1)return!1;let t=e.children[0];return t.type==="text"&&t.value===e.url},Gd=e=>{let t=0;for(let a of e){if(Hd.has(a))return t;t+=a.length}return null},jd=(e,t)=>({...t,url:e,children:[{type:"text",value:e}]}),zd=e=>({type:"text",value:e}),Vd=()=>e=>{Tr(e,"link",(t,a,o)=>{if(!o||typeof a!="number"||!Wd(t)||!qd.test(t.url))return;let r=Gd(t.url);if(r===null||r===0)return;let s=t.url.slice(0,r),n=t.url.slice(r),l=jd(s,t),i=zd(n);return o.children.splice(a,1,l,i),a+1})};function $d(){let e=[mn],t=[Vd,gn],a=[...e,...t];return{name:"cjk",type:"cjk",remarkPluginsBefore:e,remarkPluginsAfter:t,remarkPlugins:a}}var wn=$d();f();f();f();f();f();var Z=class extends Error{constructor(t){super(t),this.name="ShikiError"}};f();function Xd(e){return Uo(e)}function Uo(e){return Array.isArray(e)?Kd(e):e instanceof RegExp?e:typeof e=="object"?Qd(e):e}function Kd(e){let t=[];for(let a=0,o=e.length;a<o;a++)t[a]=Uo(e[a]);return t}function Qd(e){let t={};for(let a in e)t[a]=Uo(e[a]);return t}function Tn(e,...t){return t.forEach(a=>{for(let o in a)e[o]=a[o]}),e}function Pn(e){let t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?Pn(e.substring(0,e.length-1)):e.substr(~t+1)}var Ao=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,ka=class{static hasCaptures(e){return e===null?!1:(Ao.lastIndex=0,Ao.test(e))}static replaceCaptures(e,t,a){return e.replace(Ao,(o,r,s,n)=>{let l=a[parseInt(r||s,10)];if(l){let i=t.substring(l.start,l.end);for(;i[0]===".";)i=i.substring(1);switch(n){case"downcase":return i.toLowerCase();case"upcase":return i.toUpperCase();default:return i}}else return o})}};function vn(e,t){return e<t?-1:e>t?1:0}function An(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let a=e.length,o=t.length;if(a===o){for(let r=0;r<a;r++){let s=vn(e[r],t[r]);if(s!==0)return s}return 0}return a-o}function xn(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function Rn(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var Mn=class{constructor(e){this.fn=e}cache=new Map;get(e){if(this.cache.has(e))return this.cache.get(e);let t=this.fn(e);return this.cache.set(e,t),t}},Xt=class{constructor(e,t,a){this._colorMap=e,this._defaults=t,this._root=a}static createFromRawTheme(e,t){return this.createFromParsedTheme(Yd(e),t)}static createFromParsedTheme(e,t){return tc(e,t)}_cachedMatchRoot=new Mn(e=>this._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;let t=e.scopeName,o=this._cachedMatchRoot.get(t).find(r=>Jd(e.parent,r.parentScopes));return o?new Fn(o.fontStyle,o.foreground,o.background):null}},Ro=class Ta{constructor(t,a){this.parent=t,this.scopeName=a}static push(t,a){for(let o of a)t=new Ta(t,o);return t}static from(...t){let a=null;for(let o=0;o<t.length;o++)a=new Ta(a,t[o]);return a}push(t){return new Ta(this,t)}getSegments(){let t=this,a=[];for(;t;)a.push(t.scopeName),t=t.parent;return a.reverse(),a}toString(){return this.getSegments().join(" ")}extends(t){return this===t?!0:this.parent===null?!1:this.parent.extends(t)}getExtensionIfDefined(t){let a=[],o=this;for(;o&&o!==t;)a.push(o.scopeName),o=o.parent;return o===t?a.reverse():void 0}};function Jd(e,t){if(t.length===0)return!0;for(let a=0;a<t.length;a++){let o=t[a],r=!1;if(o===">"){if(a===t.length-1)return!1;o=t[++a],r=!0}for(;e&&!Zd(e.scopeName,o);){if(r)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Zd(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var Fn=class{constructor(e,t,a){this.fontStyle=e,this.foregroundId=t,this.backgroundId=a}};function Yd(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,a=[],o=0;for(let r=0,s=t.length;r<s;r++){let n=t[r];if(!n.settings)continue;let l;if(typeof n.scope=="string"){let d=n.scope;d=d.replace(/^[,]+/,""),d=d.replace(/[,]+$/,""),l=d.split(",")}else Array.isArray(n.scope)?l=n.scope:l=[""];let i=-1;if(typeof n.settings.fontStyle=="string"){i=0;let d=n.settings.fontStyle.split(" ");for(let p=0,m=d.length;p<m;p++)switch(d[p]){case"italic":i=i|1;break;case"bold":i=i|2;break;case"underline":i=i|4;break;case"strikethrough":i=i|8;break}}let u=null;typeof n.settings.foreground=="string"&&xn(n.settings.foreground)&&(u=n.settings.foreground);let c=null;typeof n.settings.background=="string"&&xn(n.settings.background)&&(c=n.settings.background);for(let d=0,p=l.length;d<p;d++){let h=l[d].trim().split(" "),I=h[h.length-1],L=null;h.length>1&&(L=h.slice(0,h.length-1),L.reverse()),a[o++]=new ec(I,L,r,i,u,c)}}return a}var ec=class{constructor(e,t,a,o,r,s){this.scope=e,this.parentScopes=t,this.index=a,this.fontStyle=o,this.foreground=r,this.background=s}},ce=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(ce||{});function tc(e,t){e.sort((i,u)=>{let c=vn(i.scope,u.scope);return c!==0||(c=An(i.parentScopes,u.parentScopes),c!==0)?c:i.index-u.index});let a=0,o="#000000",r="#ffffff";for(;e.length>=1&&e[0].scope==="";){let i=e.shift();i.fontStyle!==-1&&(a=i.fontStyle),i.foreground!==null&&(o=i.foreground),i.background!==null&&(r=i.background)}let s=new ac(t),n=new Fn(a,s.getId(o),s.getId(r)),l=new rc(new Fo(0,null,-1,0,0),[]);for(let i=0,u=e.length;i<u;i++){let c=e[i];l.insert(0,c.scope,c.parentScopes,c.fontStyle,s.getId(c.foreground),s.getId(c.background))}return new Xt(s,n,l)}var ac=class{_isFrozen;_lastColorId;_id2color;_color2id;constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,a=e.length;t<a;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},oc=Object.freeze([]),Fo=class Dn{scopeDepth;parentScopes;fontStyle;foreground;background;constructor(t,a,o,r,s){this.scopeDepth=t,this.parentScopes=a||oc,this.fontStyle=o,this.foreground=r,this.background=s}clone(){return new Dn(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(t){let a=[];for(let o=0,r=t.length;o<r;o++)a[o]=t[o].clone();return a}acceptOverwrite(t,a,o,r){this.scopeDepth>t?console.log("how did this happen?"):this.scopeDepth=t,a!==-1&&(this.fontStyle=a),o!==0&&(this.foreground=o),r!==0&&(this.background=r)}},rc=class Do{constructor(t,a=[],o={}){this._mainRule=t,this._children=o,this._rulesWithParentScopes=a}_rulesWithParentScopes;static _cmpBySpecificity(t,a){if(t.scopeDepth!==a.scopeDepth)return a.scopeDepth-t.scopeDepth;let o=0,r=0;for(;t.parentScopes[o]===">"&&o++,a.parentScopes[r]===">"&&r++,!(o>=t.parentScopes.length||r>=a.parentScopes.length);){let s=a.parentScopes[r].length-t.parentScopes[o].length;if(s!==0)return s;o++,r++}return a.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let o=t.indexOf("."),r,s;if(o===-1?(r=t,s=""):(r=t.substring(0,o),s=t.substring(o+1)),this._children.hasOwnProperty(r))return this._children[r].match(s)}let a=this._rulesWithParentScopes.concat(this._mainRule);return a.sort(Do._cmpBySpecificity),a}insert(t,a,o,r,s,n){if(a===""){this._doInsertHere(t,o,r,s,n);return}let l=a.indexOf("."),i,u;l===-1?(i=a,u=""):(i=a.substring(0,l),u=a.substring(l+1));let c;this._children.hasOwnProperty(i)?c=this._children[i]:(c=new Do(this._mainRule.clone(),Fo.cloneArr(this._rulesWithParentScopes)),this._children[i]=c),c.insert(t+1,u,o,r,s,n)}_doInsertHere(t,a,o,r,s){if(a===null){this._mainRule.acceptOverwrite(t,o,r,s);return}for(let n=0,l=this._rulesWithParentScopes.length;n<l;n++){let i=this._rulesWithParentScopes[n];if(An(i.parentScopes,a)===0){i.acceptOverwrite(t,o,r,s);return}}o===-1&&(o=this._mainRule.fontStyle),r===0&&(r=this._mainRule.foreground),s===0&&(s=this._mainRule.background),this._rulesWithParentScopes.push(new Fo(t,a,o,r,s))}},it=class Ae{static toBinaryStr(t){return t.toString(2).padStart(32,"0")}static print(t){let a=Ae.getLanguageId(t),o=Ae.getTokenType(t),r=Ae.getFontStyle(t),s=Ae.getForeground(t),n=Ae.getBackground(t);console.log({languageId:a,tokenType:o,fontStyle:r,foreground:s,background:n})}static getLanguageId(t){return(t&255)>>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,a,o,r,s,n,l){let i=Ae.getLanguageId(t),u=Ae.getTokenType(t),c=Ae.containsBalancedBrackets(t)?1:0,d=Ae.getFontStyle(t),p=Ae.getForeground(t),m=Ae.getBackground(t);return a!==0&&(i=a),o!==8&&(u=o),r!==null&&(c=r?1:0),s!==-1&&(d=s),n!==0&&(p=n),l!==0&&(m=l),(i<<0|u<<8|c<<10|d<<11|p<<15|m<<24)>>>0}};function va(e,t){let a=[],o=sc(e),r=o.next();for(;r!==null;){let i=0;if(r.length===2&&r.charAt(1)===":"){switch(r.charAt(0)){case"R":i=1;break;case"L":i=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=o.next()}let u=n();if(a.push({matcher:u,priority:i}),r!==",")break;r=o.next()}return a;function s(){if(r==="-"){r=o.next();let i=s();return u=>!!i&&!i(u)}if(r==="("){r=o.next();let i=l();return r===")"&&(r=o.next()),i}if(Ln(r)){let i=[];do i.push(r),r=o.next();while(Ln(r));return u=>t(i,u)}return null}function n(){let i=[],u=s();for(;u;)i.push(u),u=s();return c=>i.every(d=>d(c))}function l(){let i=[],u=n();for(;u&&(i.push(u),r==="|"||r===",");){do r=o.next();while(r==="|"||r===",");u=n()}return c=>i.some(d=>d(c))}}function Ln(e){return!!e&&!!e.match(/[\w\.:]+/)}function sc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,a=t.exec(e);return{next:()=>{if(!a)return null;let o=a[0];return a=t.exec(e),o}}}function Bn(e){typeof e.dispose=="function"&&e.dispose()}var Kt=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},nc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},ic=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){let t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},lc=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Kt(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){let e=this.Q;this.Q=[];let t=new ic;for(let a of e)uc(a,this.initialScopeName,this.repo,t);for(let a of t.references)if(a instanceof Kt){if(this.seenFullScopeRequests.has(a.scopeName))continue;this.seenFullScopeRequests.add(a.scopeName),this.Q.push(a)}else{if(this.seenFullScopeRequests.has(a.scopeName)||this.seenPartialScopeRequests.has(a.toKey()))continue;this.seenPartialScopeRequests.add(a.toKey()),this.Q.push(a)}}};function uc(e,t,a,o){let r=a.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}let s=a.lookup(t);e instanceof Kt?Pa({baseGrammar:s,selfGrammar:r},o):Bo(e.ruleName,{baseGrammar:s,selfGrammar:r,repository:r.repository},o);let n=a.injections(e.scopeName);if(n)for(let l of n)o.add(new Kt(l))}function Bo(e,t,a){if(t.repository&&t.repository[e]){let o=t.repository[e];Aa([o],t,a)}}function Pa(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Aa(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Aa(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Aa(e,t,a){for(let o of e){if(a.visitedRule.has(o))continue;a.visitedRule.add(o);let r=o.repository?Tn({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&Aa(o.patterns,{...t,repository:r},a);let s=o.include;if(!s)continue;let n=En(s);switch(n.kind){case 0:Pa({...t,selfGrammar:t.baseGrammar},a);break;case 1:Pa(t,a);break;case 2:Bo(n.ruleName,{...t,repository:r},a);break;case 3:case 4:let l=n.scopeName===t.selfGrammar.scopeName?t.selfGrammar:n.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(l){let i={baseGrammar:t.baseGrammar,selfGrammar:l,repository:r};n.kind===4?Bo(n.ruleName,i,a):Pa(i,a)}else n.kind===4?a.add(new nc(n.scopeName,n.ruleName)):a.add(new Kt(n.scopeName));break}}}var dc=class{kind=0},cc=class{kind=1},fc=class{constructor(e){this.ruleName=e}kind=2},pc=class{constructor(e){this.scopeName=e}kind=3},mc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function En(e){if(e==="$base")return new dc;if(e==="$self")return new cc;let t=e.indexOf("#");if(t===-1)return new pc(e);if(t===0)return new fc(e.substring(1));{let a=e.substring(0,t),o=e.substring(t+1);return new mc(a,o)}}var hc=/\\(\d+)/,Cn=/\\(\d+)/g;var gc=-1,_n=-2;var Zt=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,a,o){this.$location=e,this.id=t,this._name=a||null,this._nameIsCapturing=ka.hasCaptures(this._name),this._contentName=o||null,this._contentNameIsCapturing=ka.hasCaptures(this._contentName)}get debugName(){let e=this.$location?`${Pn(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:ka.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ka.replaceCaptures(this._contentName,e,t)}},wc=class extends Zt{retokenizeCapturedWithRuleId;constructor(e,t,a,o,r){super(e,t,a,o),this.retokenizeCapturedWithRuleId=r}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,a,o){throw new Error("Not supported!")}},xc=class extends Zt{_match;captures;_cachedCompiledPatterns;constructor(e,t,a,o,r){super(e,t,a,null),this._match=new Qt(o,this.id),this.captures=r,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Jt,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},In=class extends Zt{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,a,o,r){super(e,t,a,o),this.patterns=r.patterns,this.hasMissingPatterns=r.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(let a of this.patterns)e.getRule(a).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Jt,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Eo=class extends Zt{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,a,o,r,s,n,l,i,u){super(e,t,a,o),this._begin=new Qt(r,this.id),this.beginCaptures=s,this._end=new Qt(n||"\uFFFF",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=i||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e,t).compileAG(e,a,o)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Jt;for(let a of this.patterns)e.getRule(a).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},Ra=class extends Zt{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,a,o,r,s,n,l,i){super(e,t,a,o),this._begin=new Qt(r,this.id),this.beginCaptures=s,this.whileCaptures=l,this._while=new Qt(n,_n),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Jt;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,a,o){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,a,o)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Jt,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"\uFFFF"),this._cachedCompiledWhilePatterns}},Nn=class he{static createCaptureRule(t,a,o,r,s){return t.registerRule(n=>new wc(a,n,o,r,s))}static getCompiledRuleId(t,a,o){return t.id||a.registerRule(r=>{if(t.id=r,t.match)return new xc(t.$vscodeTextmateLocation,t.id,t.name,t.match,he._compileCaptures(t.captures,a,o));if(typeof t.begin>"u"){t.repository&&(o=Tn({},o,t.repository));let s=t.patterns;return typeof s>"u"&&t.include&&(s=[{include:t.include}]),new In(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,he._compilePatterns(s,a,o))}return t.while?new Ra(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,he._compileCaptures(t.beginCaptures||t.captures,a,o),t.while,he._compileCaptures(t.whileCaptures||t.captures,a,o),he._compilePatterns(t.patterns,a,o)):new Eo(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,he._compileCaptures(t.beginCaptures||t.captures,a,o),t.end,he._compileCaptures(t.endCaptures||t.captures,a,o),t.applyEndPatternLast,he._compilePatterns(t.patterns,a,o))}),t.id}static _compileCaptures(t,a,o){let r=[];if(t){let s=0;for(let n in t){if(n==="$vscodeTextmateLocation")continue;let l=parseInt(n,10);l>s&&(s=l)}for(let n=0;n<=s;n++)r[n]=null;for(let n in t){if(n==="$vscodeTextmateLocation")continue;let l=parseInt(n,10),i=0;t[n].patterns&&(i=he.getCompiledRuleId(t[n],a,o)),r[l]=he.createCaptureRule(a,t[n].$vscodeTextmateLocation,t[n].name,t[n].contentName,i)}}return r}static _compilePatterns(t,a,o){let r=[];if(t)for(let s=0,n=t.length;s<n;s++){let l=t[s],i=-1;if(l.include){let u=En(l.include);switch(u.kind){case 0:case 1:i=he.getCompiledRuleId(o[l.include],a,o);break;case 2:let c=o[u.ruleName];c&&(i=he.getCompiledRuleId(c,a,o));break;case 3:case 4:let d=u.scopeName,p=u.kind===4?u.ruleName:null,m=a.getExternalGrammar(d,o);if(m)if(p){let h=m.repository[p];h&&(i=he.getCompiledRuleId(h,a,m.repository))}else i=he.getCompiledRuleId(m.repository.$self,a,m.repository);break}}else i=he.getCompiledRuleId(l,a,o);if(i!==-1){let u=a.getRule(i),c=!1;if((u instanceof In||u instanceof Eo||u instanceof Ra)&&u.hasMissingPatterns&&u.patterns.length===0&&(c=!0),c)continue;r.push(i)}}return{patterns:r,hasMissingPatterns:(t?t.length:0)!==r.length}}},Qt=class Un{source;ruleId;hasAnchor;hasBackReferences;_anchorCache;constructor(t,a){if(t&&typeof t=="string"){let o=t.length,r=0,s=[],n=!1;for(let l=0;l<o;l++)if(t.charAt(l)==="\\"&&l+1<o){let u=t.charAt(l+1);u==="z"?(s.push(t.substring(r,l)),s.push("$(?!\\n)(?<!\\n)"),r=l+2):(u==="A"||u==="G")&&(n=!0),l++}this.hasAnchor=n,r===0?this.source=t:(s.push(t.substring(r,o)),this.source=s.join(""))}else this.hasAnchor=!1,this.source=t;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=a,typeof this.source=="string"?this.hasBackReferences=hc.test(this.source):this.hasBackReferences=!1}clone(){return new Un(this.source,this.ruleId)}setSource(t){this.source!==t&&(this.source=t,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(t,a){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let o=a.map(r=>t.substring(r.start,r.end));return Cn.lastIndex=0,this.source.replace(Cn,(r,s)=>Rn(o[parseInt(s,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],a=[],o=[],r=[],s,n,l,i;for(s=0,n=this.source.length;s<n;s++)l=this.source.charAt(s),t[s]=l,a[s]=l,o[s]=l,r[s]=l,l==="\\"&&s+1<n&&(i=this.source.charAt(s+1),i==="A"?(t[s+1]="\uFFFF",a[s+1]="\uFFFF",o[s+1]="A",r[s+1]="A"):i==="G"?(t[s+1]="\uFFFF",a[s+1]="G",o[s+1]="\uFFFF",r[s+1]="G"):(t[s+1]=i,a[s+1]=i,o[s+1]=i,r[s+1]=i),s++);return{A0_G0:t.join(""),A0_G1:a.join(""),A1_G0:o.join(""),A1_G1:r.join("")}}resolveAnchors(t,a){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:t?a?this._anchorCache.A1_G1:this._anchorCache.A1_G0:a?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Jt=class{_items;_hasAnchors;_cached;_anchorCache;constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(a=>a.source);this._cached=new Sn(e,t,this._items.map(a=>a.ruleId))}return this._cached}compileAG(e,t,a){return this._hasAnchors?t?a?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,a)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,a)),this._anchorCache.A1_G0):a?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,a)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,a)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,a){let o=this._items.map(r=>r.resolveAnchors(t,a));return new Sn(e,o,this._items.map(r=>r.ruleId))}},Sn=class{constructor(e,t,a){this.regExps=t,this.rules=a,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){let e=[];for(let t=0,a=this.rules.length;t<a;t++)e.push(" - "+this.rules[t]+": "+this.regExps[t]);return e.join(`
|
|
68
|
+
`):e}function gs(e){let{apiKey:t,apiUrl:a,source:o,systemPrompt:r,maxSteps:s,beforeRequest:n,mcpServerUrl:l,resolveConfig:i,debug:u,webSearch:c}=e,d=Be("chat",u);return async function(m){d("\u2192 POST",m.url);try{let h=await m.json(),I=h.messages??[],L=h.sessionId,S=h.modelContext,C=r,g=typeof h.extra=="object"&&h.extra!==null&&!Array.isArray(h.extra)?h.extra:void 0,b=h.visitorContext??null,T=ms(m),P={geo:T,client:b};if(d("body parsed \u2014 messages:",I.length,"sessionId:",L??"(none)","geo:",JSON.stringify(T)),n){d("running beforeRequest hook");try{let M=await n({messages:I,sessionId:L,modelContext:S,request:m,visitor:P});M&&(M.messages&&(I=M.messages),M.systemPrompt!==void 0&&(C=M.systemPrompt),M.sessionId!==void 0&&(L=M.sessionId),M.modelContext!==void 0&&(S=M.modelContext)),d("beforeRequest hook done \u2014 messages:",I.length,"sessionId:",L??"(none)")}catch(M){console.error("[waniwani:chat] beforeRequest hook error:",M);let O=M instanceof Ie?M.status:400,F=M instanceof Error?M.message:"Request rejected";return d("\u2190 returning",O,"from hook error"),Response.json({error:F},{status:O})}}let R=l??(await i()).mcpServerUrl;d("mcpServerUrl:",R),C=hs(C,S);let v=`${a}/api/mcp/chat`;d("forwarding to",v);let _=m.headers.get("user-agent"),A=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json","X-WaniWani-Stream-Protocol":"2",...t?{Authorization:`Bearer ${t}`}:{},..._?{"X-Client-User-Agent":_}:{}},body:JSON.stringify({messages:I,mcpServerUrl:R,sessionId:L,source:o,systemPrompt:C,maxSteps:s,visitor:P,webSearch:c,...g&&{extra:g}}),signal:m.signal});if(d("upstream response status:",A.status),!A.ok){let M=await A.text().catch(()=>"");return d("\u2190 returning",A.status,"upstream error:",M),new Response(M,{status:A.status,headers:{"Content-Type":A.headers.get("Content-Type")??"application/json"}})}let E=new Headers({"Content-Type":A.headers.get("Content-Type")??"text/event-stream"}),y=A.headers.get("x-session-id");return y&&E.set("x-session-id",y),d("\u2190 streaming response",A.status,"body null?",A.body===null),new Response(A.body,{status:A.status,headers:E})}catch(h){console.error("[waniwani:chat] handler error:",h);let I=h instanceof Error?h.message:"Unknown error occurred",L=h instanceof Ie?h.status:500;return d("\u2190 returning",L,"from caught error"),Response.json({error:I},{status:L})}}}f();function ws(e){let{mcpServerUrl:t,resolveConfig:a,debug:o}=e,r=Be("resource",o);return async function(n){r("\u2192 GET",n.toString());try{let l=n.searchParams.get("uri");if(r("uri:",l??"(missing)"),!l)return r("\u2190 400 missing uri"),Response.json({error:"Missing uri query parameter"},{status:400});let i=t??(await a()).mcpServerUrl;r("mcpServerUrl:",i);let u,c;try{[{createMCPClient:u},{StreamableHTTPClientTransport:c}]=await Promise.all([import("@ai-sdk/mcp"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),r("MCP deps loaded")}catch(p){return console.error("[waniwani:resource] MCP deps import failed:",p),Response.json({error:"MCP resource handler requires @ai-sdk/mcp and @modelcontextprotocol/sdk. Install them to enable resource serving."},{status:501})}r("creating MCP client for",i);let d=await u({transport:new c(new URL(i))});try{r("reading resource:",l);let p=await d.readResource({uri:l});r("resource contents count:",p.contents.length);let m=p.contents[0];if(!m)return r("\u2190 404 resource not found"),Response.json({error:"Resource not found"},{status:404});let h;return"text"in m&&typeof m.text=="string"?h=m.text:"blob"in m&&typeof m.blob=="string"&&(h=atob(m.blob)),h?(r("\u2190 200 HTML length:",h.length),new Response(h,{headers:{"Content-Type":"text/html","Cache-Control":"private, max-age=300"}})):(r("\u2190 404 resource has no content, keys:",Object.keys(m)),Response.json({error:"Resource has no content"},{status:404}))}finally{await d.close(),r("MCP client closed")}}catch(l){console.error("[waniwani:resource] handler error:",l);let i=l instanceof Error?l.message:"Unknown error occurred",u=l instanceof Ie?l.status:500;return r("\u2190 returning",u,"from caught error"),Response.json({error:i},{status:u})}}}f();function xs(e){let{mcpServerUrl:t,resolveConfig:a,debug:o,source:r}=e,s=Be("tool",o);return async function(l){s("\u2192 POST",l.url);try{let i=await l.json(),{name:u,arguments:c}=i,d=l.headers.get("x-session-id")?.trim();if(!u||typeof u!="string")return s("\u2190 400 missing tool name"),Response.json({error:"Missing tool name"},{status:400});s("tool:",u,"args:",JSON.stringify(c),"sessionId:",d||"(none)");let p=t??(await a()).mcpServerUrl;s("mcpServerUrl:",p);let m,h;try{[{Client:m},{StreamableHTTPClientTransport:h}]=await Promise.all([import("@modelcontextprotocol/sdk/client/index.js"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),s("MCP deps loaded")}catch(S){return console.error("[waniwani:tool] MCP deps import failed:",S),Response.json({error:"MCP tool handler requires @modelcontextprotocol/sdk. Install it to enable tool calls."},{status:501})}s("creating MCP client for",p);let I=new h(new URL(p)),L=new m({name:"waniwani-tool-caller",version:"1.0.0"});await L.connect(I);try{s("calling tool:",u);let S={};d&&(S["waniwani/sessionId"]=d),r&&(S["waniwani/source"]=r);let C=await L.callTool({name:u,arguments:c??{},...Object.keys(S).length>0?{_meta:S}:{}});return s("tool result received"),Response.json({content:C.content,structuredContent:C.structuredContent,_meta:C._meta,isError:C.isError})}finally{await L.close(),s("MCP client closed")}}catch(i){console.error("[waniwani:tool] handler error:",i);let u=i instanceof Error?i.message:"Unknown error occurred",c=i instanceof Ie?i.status:500;return s("\u2190 returning",c,"from caught error"),Response.json({error:u},{status:c})}}}f();function Ls(e){let{mcpServerUrl:t,resolveConfig:a,debug:o}=e,r=Be("tools-list",o);return async function(){r("\u2192 GET tools/list");try{let n=t??(await a()).mcpServerUrl;r("mcpServerUrl:",n);let l,i;try{[{createMCPClient:l},{StreamableHTTPClientTransport:i}]=await Promise.all([import("@ai-sdk/mcp"),import("@modelcontextprotocol/sdk/client/streamableHttp.js")]),r("MCP deps loaded")}catch(c){return console.error("[waniwani:tools-list] MCP deps import failed:",c),Response.json({error:"MCP tools list handler requires @ai-sdk/mcp and @modelcontextprotocol/sdk. Install them to enable tool discovery."},{status:501})}r("creating MCP client for",n);let u=await l({transport:new i(new URL(n))});try{r("listing tools");let c=await u.listTools();r("tools count:",c.tools.length);let d={tools:c.tools.map(p=>({name:p.name,...p.title!==void 0&&{title:p.title},...p.description!==void 0&&{description:p.description},...p.inputSchema!==void 0&&{inputSchema:p.inputSchema},...p.outputSchema!==void 0&&{outputSchema:p.outputSchema},...p.annotations!==void 0&&{annotations:p.annotations},...p._meta!==void 0&&{_meta:p._meta}})),...c.nextCursor!==void 0&&{nextCursor:c.nextCursor}};return r("\u2190 200"),Response.json(d,{headers:{"Cache-Control":"private, max-age=60"}})}finally{await u.close(),r("MCP client closed")}}catch(n){console.error("[waniwani:tools-list] handler error:",n);let l=n instanceof Error?n.message:"Unknown error occurred",i=n instanceof Ie?n.status:500;return r("\u2190 returning",i,"from caught error"),Response.json({error:l},{status:i})}}}f();var Bu=300*1e3;function Cs(e,t){let a=null,o=null;return async function(){if(a&&Date.now()<a.expiresAt)return a.config;if(o)return o;o=(async()=>{if(!t)throw new Ie("WANIWANI_API_KEY is required for createChatHandler",401);let s=await fetch(`${e}/api/mcp/environments/config`,{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!s.ok){let l=await s.text().catch(()=>"");throw new Ie(`Failed to resolve MCP environment config: ${s.status} ${l}`,s.status)}let n=await s.json();return a={config:n,expiresAt:Date.now()+Bu},n})();try{return await o}finally{o=null}}}var Eu="https://app.waniwani.ai";function Is(e={}){let{apiKey:t=process.env.WANIWANI_API_KEY,apiUrl:a=Eu,source:o,systemPrompt:r,maxSteps:s=5,beforeRequest:n,mcpServerUrl:l,debug:i=!1,webSearch:u}=e,c=Be("router",i),d=fs(),p=ps(d),m=Cs(a,t),h=gs({apiKey:t,apiUrl:a,source:o,systemPrompt:r,maxSteps:s,beforeRequest:n,mcpServerUrl:l,resolveConfig:m,debug:i,webSearch:cs(u)}),I=ws({mcpServerUrl:l,resolveConfig:m,debug:i}),L=Ls({mcpServerUrl:l,resolveConfig:m,debug:i}),S=xs({mcpServerUrl:l,resolveConfig:m,debug:i,source:o}),C=process.env.WANIWANI_EVAL==="1";async function g(R){c("\u2192 GET",R.url);try{let v=new URL(R.url),A=v.pathname.replace(/\/$/,"").split("/").filter(Boolean).at(-1);if(c("pathname:",v.pathname,"subRoute:",A),C&&A==="scenarios"){c("dispatching to scenarios handler (proxy to app API)");try{let y=await(await fetch(`${a}/api/mcp/scenarios`,{headers:{...t?{Authorization:`Bearer ${t}`}:{}}})).json();return p(y.data??y,200)}catch{return p([],200)}}if(A==="resource"){c("dispatching to resource handler");let E=await I(v);return c("\u2190 resource handler returned",E.status),d(E)}if(A==="config")return c("dispatching to config handler"),p({debug:i,eval:C},200);if(A==="tools"){c("dispatching to tools-list handler");let E=await L();return c("\u2190 tools-list handler returned",E.status),d(E)}return c("\u2190 404 no matching sub-route for",A),p({error:"Not found"},404)}catch(v){console.error("[waniwani:router] GET handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}async function b(R){c("\u2192 POST",R.url);try{let v=new URL(R.url),A=v.pathname.replace(/\/$/,"").split("/").filter(Boolean).at(-1);if(c("pathname:",v.pathname,"subRoute:",A),C&&A==="scenarios"){c("dispatching to save-scenario handler (proxy to app API)");try{let y=await R.json(),M=await fetch(`${a}/api/mcp/scenarios`,{method:"POST",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(y)}),O=await M.json();return M.ok?p({ok:!0,scenario:O.data},200):p({error:O.message??"Failed to save scenario"},M.status)}catch(y){let M=y instanceof Error?y.message:"Failed to save scenario";return p({error:M},400)}}if(A==="tool"){c("dispatching to tool handler");let y=await S(R);return c("\u2190 tool handler returned",y.status),d(y)}c("dispatching to chat handler");let E=await h(R);return d(E)}catch(v){console.error("[waniwani:router] POST handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}async function T(R){c("\u2192 PATCH",R.url);try{let v=new URL(R.url),_=v.pathname.replace(/\/$/,"").split("/").filter(Boolean),A=_.at(-1),E=_.at(-2);if(c("pathname:",v.pathname,"subRoute:",E,"id:",A),C&&E==="scenarios"&&A){c("dispatching to update-scenario handler (proxy to app API)");try{let y=await R.json(),M=await fetch(`${a}/api/mcp/scenarios/${A}`,{method:"PATCH",headers:{"Content-Type":"application/json",...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify(y)}),O=await M.json();return M.ok?p({ok:!0,scenario:O.data},200):p({error:O.message??"Failed to update scenario"},M.status)}catch(y){let M=y instanceof Error?y.message:"Failed to update scenario";return p({error:M},400)}}return c("\u2190 404 no matching sub-route for PATCH",E),p({error:"Not found"},404)}catch(v){console.error("[waniwani:router] PATCH handler error:",v);let _=v instanceof Error?v.message:"Unknown error occurred";return c("\u2190 500 from caught error"),p({error:_},500)}}function P(){return d(new Response(null,{status:204}))}return{handleChat:h,handleResource:I,handleTool:S,routeGet:g,routePost:b,routePatch:T,handleOptions:P}}var Ss=!1;function mx(e,t){!Ss&&process.env.NODE_ENV!=="test"&&(console.warn("[waniwani-sdk] toNextJsHandler is deprecated; switch to toExpressJsHandler from @waniwani/sdk/express-js. It will be removed in a follow-up release."),Ss=!0);let{apiKey:a,apiUrl:o}=e._config,r=t?.debug??process.env.WANIWANI_DEBUG==="1",s=Is({...t?.chat,apiKey:a,apiUrl:o,source:t?.source,debug:r});return{POST:s.routePost,GET:s.routeGet,PATCH:s.routePatch,OPTIONS:()=>s.handleOptions()}}f();import{forwardRef as Ym,useCallback as wr,useEffect as eh,useImperativeHandle as th,useRef as Fl,useState as Dl}from"react";f();f();f();import{forwardRef as Nu,createElement as Uu}from"react";f();var ga=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();f();var ys=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();f();f();var bs=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,o)=>o?o.toUpperCase():a.toLowerCase());var xo=e=>{let t=bs(e);return t.charAt(0).toUpperCase()+t.slice(1)};f();import{forwardRef as _u,createElement as Ps}from"react";f();var ks={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};f();var Ts=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var vs=_u(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:n,...l},i)=>Ps("svg",{ref:i,...ks,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:ga("lucide",r),...!s&&!Ts(l)&&{"aria-hidden":"true"},...l},[...n.map(([u,c])=>Ps(u,c)),...Array.isArray(s)?s:[s]]));var J=(e,t)=>{let a=Nu(({className:o,...r},s)=>Uu(vs,{ref:s,iconNode:t,className:ga(`lucide-${ys(xo(e))}`,`lucide-${e}`,o),...r}));return a.displayName=xo(e),a};f();var Ou=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Ft=J("arrow-down",Ou);f();var Hu=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Dt=J("arrow-up",Hu);f();var qu=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],$e=J("braces",qu);f();var Wu=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Bt=J("check",Wu);f();var Gu=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Et=J("chevron-down",Gu);f();var ju=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],_t=J("chevron-right",ju);f();var zu=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],Nt=J("clipboard-copy",zu);f();var Vu=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Ut=J("file",Vu);f();var $u=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],Ot=J("loader",$u);f();var Xu=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Ht=J("paperclip",Xu);f();var Ku=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],qt=J("square",Ku);f();var Qu=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],tt=J("x",Qu);import{useCallback as pd}from"react";f();import{useCallback as Xe,useMemo as Ju,useRef as Zu,useState as Lo}from"react";var Yu={damping:.7,stiffness:.05,mass:1.25},ed=70,td=1e3/60,ad=350,wa=!1;globalThis.document?.addEventListener("mousedown",()=>{wa=!0});globalThis.document?.addEventListener("mouseup",()=>{wa=!1});globalThis.document?.addEventListener("click",()=>{wa=!1});var Rs=(e={})=>{let[t,a]=Lo(!1),[o,r]=Lo(e.initial!==!1),[s,n]=Lo(!1),l=Zu(null);l.current=e;let i=Xe(()=>{if(!wa)return!1;let C=window.getSelection();if(!C||!C.rangeCount)return!1;let g=C.getRangeAt(0);return g.commonAncestorContainer.contains(L.current)||L.current?.contains(g.commonAncestorContainer)},[]),u=Xe(C=>{d.isAtBottom=C,r(C)},[]),c=Xe(C=>{d.escapedFromLock=C,a(C)},[]),d=Ju(()=>{let C;return{escapedFromLock:t,isAtBottom:o,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return L.current?.scrollTop??0},set scrollTop(g){L.current&&(L.current.scrollTop=g,d.ignoreScrollToTop=L.current.scrollTop)},get targetScrollTop(){return!L.current||!S.current?0:L.current.scrollHeight-1-L.current.clientHeight},get calculatedTargetScrollTop(){if(!L.current||!S.current)return 0;let{targetScrollTop:g}=this;if(!e.targetScrollTop)return g;if(C?.targetScrollTop===g)return C.calculatedScrollTop;let b=Math.max(Math.min(e.targetScrollTop(g,{scrollElement:L.current,contentElement:S.current}),g),0);return C={targetScrollTop:g,calculatedScrollTop:b},requestAnimationFrame(()=>{C=void 0}),b},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=ed}}},[]),p=Xe((C={})=>{typeof C=="string"&&(C={animation:C}),C.preserveScrollPosition||u(!0);let g=Date.now()+(Number(C.wait)||0),b=Io(l.current,C.animation),{ignoreEscapes:T=!1}=C,P,R=d.calculatedTargetScrollTop;C.duration instanceof Promise?C.duration.finally(()=>{P=Date.now()}):P=g+(C.duration??0);let v=async()=>{let _=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:A}=d,E=performance.now(),y=(E-(d.lastTick??E))/td;if(d.animation||(d.animation={behavior:b,promise:_,ignoreEscapes:T}),d.animation.behavior===b&&(d.lastTick=E),i()||g>Date.now())return v();if(A<Math.min(R,d.calculatedTargetScrollTop)){if(d.animation?.behavior===b){if(b==="instant")return d.scrollTop=d.calculatedTargetScrollTop,v();d.velocity=(b.damping*d.velocity+b.stiffness*d.scrollDifference)/b.mass,d.accumulated+=d.velocity*y,d.scrollTop+=d.accumulated,d.scrollTop!==A&&(d.accumulated=0)}return v()}return P>Date.now()?(R=d.calculatedTargetScrollTop,v()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?p({animation:Io(l.current,l.current.resize),ignoreEscapes:T,duration:Math.max(0,P-Date.now())||void 0}):d.isAtBottom)});return _.then(A=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),A))};return C.wait!==!0&&(d.animation=void 0),d.animation?.behavior===b?d.animation.promise:v()},[u,i,d]),m=Xe(()=>{c(!0),u(!1)},[c,u]),h=Xe(({target:C})=>{if(C!==L.current)return;let{scrollTop:g,ignoreScrollToTop:b}=d,{lastScrollTop:T=g}=d;d.lastScrollTop=g,d.ignoreScrollToTop=void 0,b&&b>g&&(T=b),n(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||g===b)return;if(i()){c(!0),u(!1);return}let P=g>T,R=g<T;if(d.animation?.ignoreEscapes){d.scrollTop=T;return}R&&(c(!0),u(!1)),P&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,i,d]),I=Xe(({target:C,deltaY:g})=>{let b=C;for(;!["scroll","auto"].includes(getComputedStyle(b).overflow);){if(!b.parentElement)return;b=b.parentElement}b===L.current&&g<0&&L.current.scrollHeight>L.current.clientHeight&&!d.animation?.ignoreEscapes&&(c(!0),u(!1))},[c,u,d]),L=As(C=>{L.current?.removeEventListener("scroll",h),L.current?.removeEventListener("wheel",I),C?.addEventListener("scroll",h,{passive:!0}),C?.addEventListener("wheel",I,{passive:!0})},[]),S=As(C=>{if(d.resizeObserver?.disconnect(),!C)return;let g;d.resizeObserver=new ResizeObserver(([b])=>{let{height:T}=b.contentRect,P=T-(g??T);if(d.resizeDifference=P,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),n(d.isNearBottom),P>=0){let R=Io(l.current,g?l.current.resize:l.current.initial);p({animation:R,wait:!0,preserveScrollPosition:!0,duration:R==="instant"?void 0:ad})}else d.isNearBottom&&(c(!1),u(!0));g=T,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===P&&(d.resizeDifference=0)},1)})}),d.resizeObserver?.observe(C)},[]);return{contentRef:S,scrollRef:L,scrollToBottom:p,stopScroll:m,isAtBottom:o||s,isNearBottom:s,escapedFromLock:t,state:d}};function As(e,t){let a=Xe(o=>(a.current=o,e(o)),t);return a}var Co=new Map;function Io(...e){let t={...Yu},a=!1;for(let r of e){if(r==="instant"){a=!0;continue}typeof r=="object"&&(a=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let o=JSON.stringify(t);return Co.has(o)||Co.set(o,Object.freeze(t)),a?"instant":Co.get(o)}f();import*as at from"react";import{createContext as od,useContext as rd,useEffect as sd,useImperativeHandle as nd,useLayoutEffect as id,useMemo as ld,useRef as ud}from"react";var Ms=od(null),dd=typeof window<"u"?id:sd;function Wt({instance:e,children:t,resize:a,initial:o,mass:r,damping:s,stiffness:n,targetScrollTop:l,contextRef:i,...u}){let c=ud(null),d=at.useCallback((T,P)=>(b?.targetScrollTop??l)?.(T,P)??T,[l]),p=Rs({mass:r,damping:s,stiffness:n,resize:a,initial:o,targetScrollTop:d}),{scrollRef:m,contentRef:h,scrollToBottom:I,stopScroll:L,isAtBottom:S,escapedFromLock:C,state:g}=e??p,b=ld(()=>({scrollToBottom:I,stopScroll:L,scrollRef:m,isAtBottom:S,escapedFromLock:C,contentRef:h,state:g,get targetScrollTop(){return c.current},set targetScrollTop(T){c.current=T}}),[I,S,h,m,L,C,g]);return nd(i,()=>b,[b]),dd(()=>{m.current&&getComputedStyle(m.current).overflow==="visible"&&(m.current.style.overflow="auto")},[]),at.createElement(Ms.Provider,{value:b},at.createElement("div",{...u},typeof t=="function"?t(b):t))}(function(e){function t({children:a,scrollClassName:o,...r}){let s=So();return at.createElement("div",{ref:s.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:o},at.createElement("div",{...r,ref:s.contentRef},typeof a=="function"?a(s):a))}e.Content=t})(Wt||(Wt={}));function So(){let e=rd(Ms);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}f();var cd=br({prefix:"ww"});function B(...e){return cd(yr(e))}f();import{jsx as fd}from"react/jsx-runtime";var Ee=({className:e,variant:t="default",size:a="default",type:o="button",...r})=>fd("button",{type:o,className:B("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:!rounded-full",a==="icon-sm"&&"ww:size-7 ww:!rounded-full",e),...r});import{jsx as xa}from"react/jsx-runtime";var Fs=({className:e,...t})=>xa(Wt,{className:B("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),Ds=({className:e,...t})=>xa(Wt.Content,{className:B("ww:flex ww:flex-col ww:gap-6 ww:px-4 ww:py-6 ww:mx-auto ww:w-full ww:max-w-3xl",e),...t}),Bs=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:o}=So(),r=pd(()=>{o()},[o]);return!a&&xa(Ee,{className:B("ww:absolute ww:bottom-4 ww:left-[50%] ww:translate-x-[-50%] ww:rounded-full",e),onClick:r,size:"icon",variant:"outline",...t,children:xa(Ft,{className:"ww:size-4"})})};f();f();import _s from"crypto";f();var Es="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var md=128,ot,wt,hd=e=>{!ot||ot.length<e?(ot=Buffer.allocUnsafe(e*md),_s.randomFillSync(ot),wt=0):wt+e>ot.length&&(_s.randomFillSync(ot),wt=0),wt+=e};var Gt=(e=21)=>{hd(e|=0);let t="";for(let a=wt-e;a<wt;a++)t+=Es[ot[a]&63];return t};import{createContext as gd,useCallback as qe,useContext as wd,useEffect as yo,useMemo as xd,useRef as bo,useState as Ns}from"react";import{jsx as Me,jsxs as js}from"react/jsx-runtime";var Ld=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(o=>{let r=new FileReader;r.onloadend=()=>o(r.result),r.onerror=()=>o(null),r.readAsDataURL(a)})}catch{return null}},Us=gd(null),Os=()=>{let e=wd(Us);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Hs=({className:e,accept:t,multiple:a,globalDrop:o,maxFiles:r,maxFileSize:s,onSubmit:n,children:l,...i})=>{let u=bo(null),c=bo(null),[d,p]=Ns([]),m=bo(d);yo(()=>{m.current=d},[d]);let h=qe(()=>{u.current?.click()},[]),I=qe(T=>{let P=[...T];if(P.length===0)return;let R=_=>s?_.size<=s:!0,v=P.filter(R);p(_=>{let A=typeof r=="number"?Math.max(0,r-_.length):void 0,E=typeof A=="number"?v.slice(0,A):v;return[..._,...E.map(y=>({filename:y.name,id:Gt(),mediaType:y.type,type:"file",url:URL.createObjectURL(y)}))]})},[r,s]),L=qe(T=>{p(P=>{let R=P.find(v=>v.id===T);return R?.url&&URL.revokeObjectURL(R.url),P.filter(v=>v.id!==T)})},[]),S=qe(()=>{p(T=>{for(let P of T)P.url&&URL.revokeObjectURL(P.url);return[]})},[]);yo(()=>()=>{for(let T of m.current)T.url&&URL.revokeObjectURL(T.url)},[]);let C=qe(T=>{T.currentTarget.files&&I(T.currentTarget.files),T.currentTarget.value=""},[I]);yo(()=>{if(!o)return;let T=R=>{R.dataTransfer?.types?.includes("Files")&&R.preventDefault()},P=R=>{R.dataTransfer?.types?.includes("Files")&&R.preventDefault(),R.dataTransfer?.files&&R.dataTransfer.files.length>0&&I(R.dataTransfer.files)};return document.addEventListener("dragover",T),document.addEventListener("drop",P),()=>{document.removeEventListener("dragover",T),document.removeEventListener("drop",P)}},[I,o]);let g=qe(async T=>{T.preventDefault();let P=T.currentTarget,v=new FormData(P).get("message")||"";P.reset();let _=await Promise.all(d.map(async({id:A,...E})=>{if(E.url?.startsWith("blob:")){let y=await Ld(E.url);return{...E,url:y??E.url}}return E}));try{let A=n({files:_,text:v},T);A instanceof Promise&&await A,S()}catch{}},[d,n,S]),b=xd(()=>({add:I,clear:S,files:d,openFileDialog:h,remove:L}),[d,I,L,S,h]);return js(Us.Provider,{value:b,children:[Me("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:C,ref:u,title:"Upload files",type:"file"}),Me("form",{className:B("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:g,ref:c,...i,children:l})]})};var qs=({onChange:e,onKeyDown:t,className:a,placeholder:o="What would you like to know?",...r})=>{let s=Os(),[n,l]=Ns(!1),i=qe(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(n||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&s.files.length>0){c.preventDefault();let d=s.files.at(-1);d&&s.remove(d.id)}}},[t,n,s]),u=qe(c=>{let d=c.clipboardData?.items;if(!d)return;let p=[];for(let m of d)if(m.kind==="file"){let h=m.getAsFile();h&&p.push(h)}p.length>0&&(c.preventDefault(),s.add(p))},[s]);return Me("textarea",{className:B("ww:field-sizing-content ww:max-h-48 ww:min-h-0 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-2 ww:text-base ww:sm:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>l(!1),onCompositionStart:()=>l(!0),onKeyDown:i,onPaste:u,placeholder:o,onChange:e,...r})},Ws=({className:e,status:t,onStop:a,onClick:o,children:r,...s})=>{let n=t==="submitted"||t==="streaming",l=Me(Dt,{className:"ww:size-4"});t==="submitted"?l=Me(Ot,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(l=Me(qt,{className:"ww:size-4"}));let i=qe(u=>{if(n&&a){u.preventDefault(),a();return}o?.(u)},[n,a,o]);return Me(Ee,{"aria-label":n?"Stop":"Submit",className:B("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:i,size:"icon-sm",type:n&&a?"button":"submit",variant:"ghost",...s,children:r??l})},Gs=({className:e,children:t,...a})=>{let o=Os();return o.files.length>0?js(Ee,{className:B("ww:group ww:relative",e),onClick:()=>o.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[Me("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:o.files.length}),Me(tt,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):Me(Ee,{className:B(e),onClick:()=>o.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??Me(Ht,{className:"ww:size-4"})})};f();import{memo as Cd,useCallback as Id}from"react";f();import{jsx as xt}from"react/jsx-runtime";var zs=({className:e,...t})=>xt("div",{className:B("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),Vs=({className:e,...t})=>xt("li",{className:B("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),$s=({className:e,...t})=>xt("span",{className:B("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),Xs=({className:e,...t})=>xt("span",{className:B("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),Ks=({className:e,...t})=>xt("div",{className:B("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),Qs=({className:e,...t})=>xt(Ee,{className:B("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});import{jsx as rt,jsxs as ko}from"react/jsx-runtime";var Js=Cd(({message:e,onRemove:t})=>{let a=Id(()=>t(e.id),[t,e.id]);return ko(Vs,{children:[rt($s,{}),rt(Xs,{children:e.text||"(attachment)"}),rt(Ks,{children:rt(Qs,{"aria-label":"Remove from queue",onClick:a,children:rt(tt,{className:"ww:size-3"})})})]})});Js.displayName="ChatQueueItem";function Zs({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:ko(zs,{className:B("ww:border-t ww:border-border",a),children:[ko("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),rt("ul",{children:e.map(o=>rt(Js,{message:o,onRemove:t},o.id))})]})}f();import{useState as Ys}from"react";import{jsx as Sd}from"react/jsx-runtime";function en({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[o,r]=Ys(!1),[s,n]=Ys(null),l=async()=>{let u={name:`session-${new Date().toISOString().slice(0,19)}`,type:"functional",messages:e,mode:"manual"};r(!0),n(null);try{let c=await fetch(`${a}/scenarios`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});if(!c.ok)throw new Error(`${c.status}`);n("saved")}catch{n("error")}finally{r(!1),setTimeout(()=>n(null),2e3)}};return!t||e.length===0?null:Sd("button",{type:"button",onClick:l,disabled:o,title:"Save scenario to WaniWani",className:"ww:ml-auto ww:text-[10px] ww:font-mono ww:uppercase ww:tracking-wider ww:text-muted-foreground hover:ww:text-foreground ww:cursor-pointer ww:transition-colors ww:disabled:opacity-40",children:o?"saving...":s==="saved"?"saved":s==="error"?"error":"export"})}f();f();import{jsx as jt,jsxs as bd}from"react/jsx-runtime";var tn=({files:e,className:t,...a})=>e.length===0?null:jt("div",{className:B("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((o,r)=>jt(yd,{file:o},r))});function yd({file:e}){return e.mediaType?.startsWith("image/")&&e.url?jt("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):bd("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[jt(Ut,{className:"ww:size-3 ww:shrink-0"}),jt("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}f();import{jsx as an}from"react/jsx-runtime";var To=({className:e,size:t=5,...a})=>an("div",{className:B("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(o=>an("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${o*.2}s`}},o))});f();f();f();f();f();f();var de={carriageReturn:-5,lineFeed:-4,carriageReturnLineFeed:-3,horizontalTab:-2,virtualSpace:-1,eof:null,nul:0,soh:1,stx:2,etx:3,eot:4,enq:5,ack:6,bel:7,bs:8,ht:9,lf:10,vt:11,ff:12,cr:13,so:14,si:15,dle:16,dc1:17,dc2:18,dc3:19,dc4:20,nak:21,syn:22,etb:23,can:24,em:25,sub:26,esc:27,fs:28,gs:29,rs:30,us:31,space:32,exclamationMark:33,quotationMark:34,numberSign:35,dollarSign:36,percentSign:37,ampersand:38,apostrophe:39,leftParenthesis:40,rightParenthesis:41,asterisk:42,plusSign:43,comma:44,dash:45,dot:46,slash:47,digit0:48,digit1:49,digit2:50,digit3:51,digit4:52,digit5:53,digit6:54,digit7:55,digit8:56,digit9:57,colon:58,semicolon:59,lessThan:60,equalsTo:61,greaterThan:62,questionMark:63,atSign:64,uppercaseA:65,uppercaseB:66,uppercaseC:67,uppercaseD:68,uppercaseE:69,uppercaseF:70,uppercaseG:71,uppercaseH:72,uppercaseI:73,uppercaseJ:74,uppercaseK:75,uppercaseL:76,uppercaseM:77,uppercaseN:78,uppercaseO:79,uppercaseP:80,uppercaseQ:81,uppercaseR:82,uppercaseS:83,uppercaseT:84,uppercaseU:85,uppercaseV:86,uppercaseW:87,uppercaseX:88,uppercaseY:89,uppercaseZ:90,leftSquareBracket:91,backslash:92,rightSquareBracket:93,caret:94,underscore:95,graveAccent:96,lowercaseA:97,lowercaseB:98,lowercaseC:99,lowercaseD:100,lowercaseE:101,lowercaseF:102,lowercaseG:103,lowercaseH:104,lowercaseI:105,lowercaseJ:106,lowercaseK:107,lowercaseL:108,lowercaseM:109,lowercaseN:110,lowercaseO:111,lowercaseP:112,lowercaseQ:113,lowercaseR:114,lowercaseS:115,lowercaseT:116,lowercaseU:117,lowercaseV:118,lowercaseW:119,lowercaseX:120,lowercaseY:121,lowercaseZ:122,leftCurlyBrace:123,verticalBar:124,rightCurlyBrace:125,tilde:126,del:127,byteOrderMarker:65279,replacementCharacter:65533};f();var _e={attentionSideAfter:2,attentionSideBefore:1,atxHeadingOpeningFenceSizeMax:6,autolinkDomainSizeMax:63,autolinkSchemeSizeMax:32,cdataOpeningString:"CDATA[",characterGroupPunctuation:2,characterGroupWhitespace:1,characterReferenceDecimalSizeMax:7,characterReferenceHexadecimalSizeMax:6,characterReferenceNamedSizeMax:31,codeFencedSequenceSizeMin:3,contentTypeContent:"content",contentTypeDocument:"document",contentTypeFlow:"flow",contentTypeString:"string",contentTypeText:"text",hardBreakPrefixSizeMin:2,htmlBasic:6,htmlCdata:5,htmlComment:2,htmlComplete:7,htmlDeclaration:4,htmlInstruction:3,htmlRawSizeMax:8,htmlRaw:1,linkResourceDestinationBalanceMax:32,linkReferenceSizeMax:999,listItemValueSizeMax:10,numericBaseDecimal:10,numericBaseHexadecimal:16,tabSize:4,thematicBreakMarkerCountMin:3,v8MaxSafeChunkSize:1e4};f();var ye={data:"data",whitespace:"whitespace",lineEnding:"lineEnding",lineEndingBlank:"lineEndingBlank",linePrefix:"linePrefix",lineSuffix:"lineSuffix",atxHeading:"atxHeading",atxHeadingSequence:"atxHeadingSequence",atxHeadingText:"atxHeadingText",autolink:"autolink",autolinkEmail:"autolinkEmail",autolinkMarker:"autolinkMarker",autolinkProtocol:"autolinkProtocol",characterEscape:"characterEscape",characterEscapeValue:"characterEscapeValue",characterReference:"characterReference",characterReferenceMarker:"characterReferenceMarker",characterReferenceMarkerNumeric:"characterReferenceMarkerNumeric",characterReferenceMarkerHexadecimal:"characterReferenceMarkerHexadecimal",characterReferenceValue:"characterReferenceValue",codeFenced:"codeFenced",codeFencedFence:"codeFencedFence",codeFencedFenceSequence:"codeFencedFenceSequence",codeFencedFenceInfo:"codeFencedFenceInfo",codeFencedFenceMeta:"codeFencedFenceMeta",codeFlowValue:"codeFlowValue",codeIndented:"codeIndented",codeText:"codeText",codeTextData:"codeTextData",codeTextPadding:"codeTextPadding",codeTextSequence:"codeTextSequence",content:"content",definition:"definition",definitionDestination:"definitionDestination",definitionDestinationLiteral:"definitionDestinationLiteral",definitionDestinationLiteralMarker:"definitionDestinationLiteralMarker",definitionDestinationRaw:"definitionDestinationRaw",definitionDestinationString:"definitionDestinationString",definitionLabel:"definitionLabel",definitionLabelMarker:"definitionLabelMarker",definitionLabelString:"definitionLabelString",definitionMarker:"definitionMarker",definitionTitle:"definitionTitle",definitionTitleMarker:"definitionTitleMarker",definitionTitleString:"definitionTitleString",emphasis:"emphasis",emphasisSequence:"emphasisSequence",emphasisText:"emphasisText",escapeMarker:"escapeMarker",hardBreakEscape:"hardBreakEscape",hardBreakTrailing:"hardBreakTrailing",htmlFlow:"htmlFlow",htmlFlowData:"htmlFlowData",htmlText:"htmlText",htmlTextData:"htmlTextData",image:"image",label:"label",labelText:"labelText",labelLink:"labelLink",labelImage:"labelImage",labelMarker:"labelMarker",labelImageMarker:"labelImageMarker",labelEnd:"labelEnd",link:"link",paragraph:"paragraph",reference:"reference",referenceMarker:"referenceMarker",referenceString:"referenceString",resource:"resource",resourceDestination:"resourceDestination",resourceDestinationLiteral:"resourceDestinationLiteral",resourceDestinationLiteralMarker:"resourceDestinationLiteralMarker",resourceDestinationRaw:"resourceDestinationRaw",resourceDestinationString:"resourceDestinationString",resourceMarker:"resourceMarker",resourceTitle:"resourceTitle",resourceTitleMarker:"resourceTitleMarker",resourceTitleString:"resourceTitleString",setextHeading:"setextHeading",setextHeadingText:"setextHeadingText",setextHeadingLine:"setextHeadingLine",setextHeadingLineSequence:"setextHeadingLineSequence",strong:"strong",strongSequence:"strongSequence",strongText:"strongText",thematicBreak:"thematicBreak",thematicBreakSequence:"thematicBreakSequence",blockQuote:"blockQuote",blockQuotePrefix:"blockQuotePrefix",blockQuoteMarker:"blockQuoteMarker",blockQuotePrefixWhitespace:"blockQuotePrefixWhitespace",listOrdered:"listOrdered",listUnordered:"listUnordered",listItemIndent:"listItemIndent",listItemMarker:"listItemMarker",listItemPrefix:"listItemPrefix",listItemPrefixWhitespace:"listItemPrefixWhitespace",listItemValue:"listItemValue",chunkDocument:"chunkDocument",chunkContent:"chunkContent",chunkFlow:"chunkFlow",chunkText:"chunkText",chunkString:"chunkString"};f();f();f();function on(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function rn(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function sn(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e>=94192&&e<=94198||e>=94208&&e<=101589||e>=101631&&e<=101662||e>=101760&&e<=101874||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128728||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129674||e>=129678&&e<=129734||e===129736||e>=129741&&e<=129756||e>=129759&&e<=129770||e>=129775&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function nn(e){return on(e)?"ambiguous":rn(e)?"fullwidth":e===8361||e>=65377&&e<=65470||e>=65474&&e<=65479||e>=65482&&e<=65487||e>=65490&&e<=65495||e>=65498&&e<=65500||e>=65512&&e<=65518?"halfwidth":e>=32&&e<=126||e===162||e===163||e===165||e===166||e===172||e===175||e>=10214&&e<=10221||e===10629||e===10630?"narrow":sn(e)?"wide":"neutral"}function kd(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function ln(e){return kd(e),nn(e)}var Td=Object.defineProperty,Pd=(e,t,a)=>t in e?Td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,vd=(e,t,a)=>Pd(e,typeof t!="symbol"?t+"":t,a);function Ad(e){return new RegExp("^\\p{Emoji_Presentation}","u").test(String.fromCodePoint(e))}function Rd(e){if(!e||e<4352)return!1;switch(ln(e)){case"fullwidth":case"halfwidth":return!0;case"wide":return!Ad(e);case"narrow":return!1;case"ambiguous":return 917760<=e&&e<=917999?null:!1;case"neutral":return new RegExp("^\\p{sc=Hangul}","u").test(String.fromCodePoint(e))}}function Md(e,t){return t!==65025||!e||e<8216?!1:e===8216||e===8217||e===8220||e===8221}function Fd(e){return e!==null&&e>=65024&&e<=65038}var Dd=un(new RegExp("\\p{P}|\\p{S}","u")),Bd=un(/\s/);function un(e){return t;function t(a){return a!==null&&a>-1&&e.test(String.fromCodePoint(a))}}var be;(e=>{e.spaceOrPunctuation=3,e.cjk=4096,e.cjkPunctuation=4098,e.ivs=8192,e.cjkOrIvs=12288,e.nonEmojiGeneralUseVS=16384,e.variationSelector=24576,e.ivsToCjkRightShift=1})(be||(be={}));function Ke(e){if(e===de.eof||kr(e)||Bd(e))return _e.characterGroupWhitespace;let t=0;if(e>=4352){if(Fd(e))return be.nonEmojiGeneralUseVS;switch(Rd(e)){case null:return be.ivs;case!0:t|=be.cjk;break}}return Dd(e)&&(t|=_e.characterGroupPunctuation),t}function La(e,t,a){if(!_d(e))return e;let o=t(),r=Ke(o);return!o||st(r)?e:Md(o,a)?be.cjkPunctuation:Ed(r)}function Ed(e){return e&~be.ivs}function st(e){return!!(e&_e.characterGroupWhitespace)}function Lt(e){return(e&be.cjkPunctuation)===_e.characterGroupPunctuation}function zt(e){return!!(e&be.cjk)}function dn(e){return e===be.ivs}function cn(e){return!!(e&be.cjkOrIvs)}function _d(e){return e===be.nonEmojiGeneralUseVS}function Po(e){return!!(e&be.spaceOrPunctuation)}function Ca(e){return!!(e&&e>=55296&&e<=56319)}function Ia(e){return!!(e&&e>=56320&&e<=57343)}function Sa(e,t,a){if(t._bufferIndex<2)return e;let r=a({start:{...t,_bufferIndex:t._bufferIndex-2},end:t}).codePointAt(0);return r&&r>=65536?r:e}function Nd(e,t,a){let o=e>=65536?2:1;if(t._bufferIndex<1+o)return null;let r=t._bufferIndex-o-2,s=a({start:{...t,_bufferIndex:r>=0?r:0},end:{...t,_bufferIndex:t._bufferIndex-o}}),n=s.charCodeAt(s.length-1);if(Number.isNaN(n))return null;if(s.length<2||n<56320||57343<n)return n;let l=s.codePointAt(0);return l&&l>=65536?l:n}var ya=class{constructor(e,t,a){this.previousCode=e,this.nowPoint=t,this.sliceSerialize=a,vd(this,"cachedValue")}value(){return this.cachedValue===void 0&&(this.cachedValue=Nd(this.previousCode,this.nowPoint,this.sliceSerialize)),this.cachedValue}};function ba(e,t,a){let o=a({start:t,end:{...t,_bufferIndex:t._bufferIndex+2}}).codePointAt(0);return o&&o>=65536?o:e}var vo={name:"attention",resolveAll:Ud,tokenize:Od};function Ud(e,t){let a=-1,o,r,s,n,l,i,u,c;for(;++a<e.length;)if(e[a][0]==="enter"&&e[a][1].type==="attentionSequence"&&e[a][1]._close){for(o=a;o--;)if(e[o][0]==="exit"&&e[o][1].type==="attentionSequence"&&e[o][1]._open&&t.sliceSerialize(e[o][1]).charCodeAt(0)===t.sliceSerialize(e[a][1]).charCodeAt(0)){if((e[o][1]._close||e[a][1]._open)&&(e[a][1].end.offset-e[a][1].start.offset)%3&&!((e[o][1].end.offset-e[o][1].start.offset+e[a][1].end.offset-e[a][1].start.offset)%3))continue;i=e[o][1].end.offset-e[o][1].start.offset>1&&e[a][1].end.offset-e[a][1].start.offset>1?2:1;let d={...e[o][1].end},p={...e[a][1].start};fn(d,-i),fn(p,i),n={type:i>1?ye.strongSequence:ye.emphasisSequence,start:d,end:{...e[o][1].end}},l={type:i>1?ye.strongSequence:ye.emphasisSequence,start:{...e[a][1].start},end:p},s={type:i>1?ye.strongText:ye.emphasisText,start:{...e[o][1].end},end:{...e[a][1].start}},r={type:i>1?ye.strong:ye.emphasis,start:{...n.start},end:{...l.end}},e[o][1].end={...n.start},e[a][1].start={...l.end},u=[],e[o][1].end.offset-e[o][1].start.offset&&(u=mt(u,[["enter",e[o][1],t],["exit",e[o][1],t]])),u=mt(u,[["enter",r,t],["enter",n,t],["exit",n,t],["enter",s,t]]),t.parser.constructs.insideSpan.null,u=mt(u,ua(t.parser.constructs.insideSpan.null,e.slice(o+1,a),t)),u=mt(u,[["exit",s,t],["enter",l,t],["exit",l,t],["exit",r,t]]),e[a][1].end.offset-e[a][1].start.offset?(c=2,u=mt(u,[["enter",e[a][1],t],["exit",e[a][1],t]])):c=0,pt(e,o-1,a-o+3,u),a=o+u.length-c-2;break}}for(a=-1;++a<e.length;)e[a][1].type==="attentionSequence"&&(e[a][1].type="data");return e}function Od(e,t){let a=this.parser.constructs.attentionMarkers.null,{now:o,sliceSerialize:r,previous:s}=this,n=Ia(s)?Sa(s,o(),r):s,l=Ke(n),i=new ya(n,o(),r),u=La(l,i.value.bind(i),n),c;return d;function d(m){return m===de.asterisk||de.underscore,c=m,e.enter("attentionSequence"),p(m)}function p(m){if(m===c)return e.consume(m),p;let h=e.exit("attentionSequence"),I=Ca(m)?ba(m,o(),r):m,L=Ke(I);let S=Lt(u),C=S||st(u),g=Lt(L),b=g||st(L),T=cn(u),P=!b||g&&(C||T)||a.includes(m),R=!C||S&&(b||zt(L))||a.includes(n);return h._open=!!(c===de.asterisk?P:P&&(Po(u)||!R)),h._close=!!(c===de.asterisk?R:R&&(Po(L)||!P)),t(m)}}function fn(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}function pn(){return{text:{[de.asterisk]:vo,[de.underscore]:vo},insideSpan:{null:[vo]}}}function mn(){let e=this.data();(e.micromarkExtensions||(e.micromarkExtensions=[])).push(pn())}f();f();function hn(e){let a=(e||{}).singleTilde,o={name:"strikethrough",tokenize:s,resolveAll:r};return a==null&&(a=!0),{text:{[de.tilde]:o},insideSpan:{null:[o]},attentionMarkers:{null:[de.tilde]}};function r(n,l){let i=-1;for(;++i<n.length;)if(n[i][0]==="enter"&&n[i][1].type==="strikethroughSequenceTemporary"&&n[i][1]._close){let u=i;for(;u--;)if(n[u][0]==="exit"&&n[u][1].type==="strikethroughSequenceTemporary"&&n[u][1]._open&&n[i][1].end.offset-n[i][1].start.offset===n[u][1].end.offset-n[u][1].start.offset){n[i][1].type="strikethroughSequence",n[u][1].type="strikethroughSequence";let c={type:"strikethrough",start:Object.assign({},n[u][1].start),end:Object.assign({},n[i][1].end)},d={type:"strikethroughText",start:Object.assign({},n[u][1].end),end:Object.assign({},n[i][1].start)},p=[["enter",c,l],["enter",n[u][1],l],["exit",n[u][1],l],["enter",d,l]],m=l.parser.constructs.insideSpan.null;m&&pt(p,p.length,0,ua(m,n.slice(u+1,i),l)),pt(p,p.length,0,[["exit",d,l],["enter",n[i][1],l],["exit",n[i][1],l],["exit",c,l]]),pt(n,u-1,i-u+3,p),i=u+p.length-2;break}}for(i=-1;++i<n.length;)n[i][1].type==="strikethroughSequenceTemporary"&&(n[i][1].type=ye.data);return n}function s(n,l,i){let{now:u,sliceSerialize:c,previous:d}=this,p=Ia(d)?Sa(d,u(),c):d,m=Ke(p),h=new ya(p,u(),c),I=La(m,h.value.bind(h),p),L=this.events,S=0;return C;function C(b){return de.tilde,p===de.tilde&&L[L.length-1][1].type!==ye.characterEscape?i(b):(n.enter("strikethroughSequenceTemporary"),g(b))}function g(b){let T=Ke(p);if(b===de.tilde)return S>1?i(b):(n.consume(b),S++,g);if(S<2&&!a)return i(b);let P=n.exit("strikethroughSequenceTemporary"),R=Ca(b)?ba(b,u(),c):b,v=Ke(R),A=Lt(I)||st(I),y=Lt(v)||st(v),M=zt(I)||dn(T);return P._open=!y||v===_e.attentionSideAfter&&(A||M),P._close=!A||T===_e.attentionSideAfter&&(y||zt(v)),l(b)}}}function gn(e){let t=this.data();(t.micromarkExtensions||(t.micromarkExtensions=[])).push(hn(e))}var Hd=new Set(["\u3002","\uFF0E","\uFF0C","\u3001","\uFF1F","\uFF01","\uFF1A","\uFF1B","\uFF08","\uFF09","\u3010","\u3011","\u300C","\u300D","\u300E","\u300F","\u3008","\u3009","\u300A","\u300B"]),qd=/^(https?:\/\/|mailto:|www\.)/i,Wd=e=>{if(e.children.length!==1)return!1;let t=e.children[0];return t.type==="text"&&t.value===e.url},Gd=e=>{let t=0;for(let a of e){if(Hd.has(a))return t;t+=a.length}return null},jd=(e,t)=>({...t,url:e,children:[{type:"text",value:e}]}),zd=e=>({type:"text",value:e}),Vd=()=>e=>{Tr(e,"link",(t,a,o)=>{if(!o||typeof a!="number"||!Wd(t)||!qd.test(t.url))return;let r=Gd(t.url);if(r===null||r===0)return;let s=t.url.slice(0,r),n=t.url.slice(r),l=jd(s,t),i=zd(n);return o.children.splice(a,1,l,i),a+1})};function $d(){let e=[mn],t=[Vd,gn],a=[...e,...t];return{name:"cjk",type:"cjk",remarkPluginsBefore:e,remarkPluginsAfter:t,remarkPlugins:a}}var wn=$d();f();f();f();f();f();var Z=class extends Error{constructor(t){super(t),this.name="ShikiError"}};f();function Xd(e){return Uo(e)}function Uo(e){return Array.isArray(e)?Kd(e):e instanceof RegExp?e:typeof e=="object"?Qd(e):e}function Kd(e){let t=[];for(let a=0,o=e.length;a<o;a++)t[a]=Uo(e[a]);return t}function Qd(e){let t={};for(let a in e)t[a]=Uo(e[a]);return t}function Tn(e,...t){return t.forEach(a=>{for(let o in a)e[o]=a[o]}),e}function Pn(e){let t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?Pn(e.substring(0,e.length-1)):e.substr(~t+1)}var Ao=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,ka=class{static hasCaptures(e){return e===null?!1:(Ao.lastIndex=0,Ao.test(e))}static replaceCaptures(e,t,a){return e.replace(Ao,(o,r,s,n)=>{let l=a[parseInt(r||s,10)];if(l){let i=t.substring(l.start,l.end);for(;i[0]===".";)i=i.substring(1);switch(n){case"downcase":return i.toLowerCase();case"upcase":return i.toUpperCase();default:return i}}else return o})}};function vn(e,t){return e<t?-1:e>t?1:0}function An(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let a=e.length,o=t.length;if(a===o){for(let r=0;r<a;r++){let s=vn(e[r],t[r]);if(s!==0)return s}return 0}return a-o}function xn(e){return!!(/^#[0-9a-f]{6}$/i.test(e)||/^#[0-9a-f]{8}$/i.test(e)||/^#[0-9a-f]{3}$/i.test(e)||/^#[0-9a-f]{4}$/i.test(e))}function Rn(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&")}var Mn=class{constructor(e){this.fn=e}cache=new Map;get(e){if(this.cache.has(e))return this.cache.get(e);let t=this.fn(e);return this.cache.set(e,t),t}},Xt=class{constructor(e,t,a){this._colorMap=e,this._defaults=t,this._root=a}static createFromRawTheme(e,t){return this.createFromParsedTheme(Yd(e),t)}static createFromParsedTheme(e,t){return tc(e,t)}_cachedMatchRoot=new Mn(e=>this._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;let t=e.scopeName,o=this._cachedMatchRoot.get(t).find(r=>Jd(e.parent,r.parentScopes));return o?new Fn(o.fontStyle,o.foreground,o.background):null}},Ro=class Ta{constructor(t,a){this.parent=t,this.scopeName=a}static push(t,a){for(let o of a)t=new Ta(t,o);return t}static from(...t){let a=null;for(let o=0;o<t.length;o++)a=new Ta(a,t[o]);return a}push(t){return new Ta(this,t)}getSegments(){let t=this,a=[];for(;t;)a.push(t.scopeName),t=t.parent;return a.reverse(),a}toString(){return this.getSegments().join(" ")}extends(t){return this===t?!0:this.parent===null?!1:this.parent.extends(t)}getExtensionIfDefined(t){let a=[],o=this;for(;o&&o!==t;)a.push(o.scopeName),o=o.parent;return o===t?a.reverse():void 0}};function Jd(e,t){if(t.length===0)return!0;for(let a=0;a<t.length;a++){let o=t[a],r=!1;if(o===">"){if(a===t.length-1)return!1;o=t[++a],r=!0}for(;e&&!Zd(e.scopeName,o);){if(r)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function Zd(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var Fn=class{constructor(e,t,a){this.fontStyle=e,this.foregroundId=t,this.backgroundId=a}};function Yd(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,a=[],o=0;for(let r=0,s=t.length;r<s;r++){let n=t[r];if(!n.settings)continue;let l;if(typeof n.scope=="string"){let d=n.scope;d=d.replace(/^[,]+/,""),d=d.replace(/[,]+$/,""),l=d.split(",")}else Array.isArray(n.scope)?l=n.scope:l=[""];let i=-1;if(typeof n.settings.fontStyle=="string"){i=0;let d=n.settings.fontStyle.split(" ");for(let p=0,m=d.length;p<m;p++)switch(d[p]){case"italic":i=i|1;break;case"bold":i=i|2;break;case"underline":i=i|4;break;case"strikethrough":i=i|8;break}}let u=null;typeof n.settings.foreground=="string"&&xn(n.settings.foreground)&&(u=n.settings.foreground);let c=null;typeof n.settings.background=="string"&&xn(n.settings.background)&&(c=n.settings.background);for(let d=0,p=l.length;d<p;d++){let h=l[d].trim().split(" "),I=h[h.length-1],L=null;h.length>1&&(L=h.slice(0,h.length-1),L.reverse()),a[o++]=new ec(I,L,r,i,u,c)}}return a}var ec=class{constructor(e,t,a,o,r,s){this.scope=e,this.parentScopes=t,this.index=a,this.fontStyle=o,this.foreground=r,this.background=s}},ce=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e[e.Strikethrough=8]="Strikethrough",e))(ce||{});function tc(e,t){e.sort((i,u)=>{let c=vn(i.scope,u.scope);return c!==0||(c=An(i.parentScopes,u.parentScopes),c!==0)?c:i.index-u.index});let a=0,o="#000000",r="#ffffff";for(;e.length>=1&&e[0].scope==="";){let i=e.shift();i.fontStyle!==-1&&(a=i.fontStyle),i.foreground!==null&&(o=i.foreground),i.background!==null&&(r=i.background)}let s=new ac(t),n=new Fn(a,s.getId(o),s.getId(r)),l=new rc(new Fo(0,null,-1,0,0),[]);for(let i=0,u=e.length;i<u;i++){let c=e[i];l.insert(0,c.scope,c.parentScopes,c.fontStyle,s.getId(c.foreground),s.getId(c.background))}return new Xt(s,n,l)}var ac=class{_isFrozen;_lastColorId;_id2color;_color2id;constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,a=e.length;t<a;t++)this._color2id[e[t]]=t,this._id2color[t]=e[t]}else this._isFrozen=!1}getId(e){if(e===null)return 0;e=e.toUpperCase();let t=this._color2id[e];if(t)return t;if(this._isFrozen)throw new Error(`Missing color in color map - ${e}`);return t=++this._lastColorId,this._color2id[e]=t,this._id2color[t]=e,t}getColorMap(){return this._id2color.slice(0)}},oc=Object.freeze([]),Fo=class Dn{scopeDepth;parentScopes;fontStyle;foreground;background;constructor(t,a,o,r,s){this.scopeDepth=t,this.parentScopes=a||oc,this.fontStyle=o,this.foreground=r,this.background=s}clone(){return new Dn(this.scopeDepth,this.parentScopes,this.fontStyle,this.foreground,this.background)}static cloneArr(t){let a=[];for(let o=0,r=t.length;o<r;o++)a[o]=t[o].clone();return a}acceptOverwrite(t,a,o,r){this.scopeDepth>t?console.log("how did this happen?"):this.scopeDepth=t,a!==-1&&(this.fontStyle=a),o!==0&&(this.foreground=o),r!==0&&(this.background=r)}},rc=class Do{constructor(t,a=[],o={}){this._mainRule=t,this._children=o,this._rulesWithParentScopes=a}_rulesWithParentScopes;static _cmpBySpecificity(t,a){if(t.scopeDepth!==a.scopeDepth)return a.scopeDepth-t.scopeDepth;let o=0,r=0;for(;t.parentScopes[o]===">"&&o++,a.parentScopes[r]===">"&&r++,!(o>=t.parentScopes.length||r>=a.parentScopes.length);){let s=a.parentScopes[r].length-t.parentScopes[o].length;if(s!==0)return s;o++,r++}return a.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let o=t.indexOf("."),r,s;if(o===-1?(r=t,s=""):(r=t.substring(0,o),s=t.substring(o+1)),this._children.hasOwnProperty(r))return this._children[r].match(s)}let a=this._rulesWithParentScopes.concat(this._mainRule);return a.sort(Do._cmpBySpecificity),a}insert(t,a,o,r,s,n){if(a===""){this._doInsertHere(t,o,r,s,n);return}let l=a.indexOf("."),i,u;l===-1?(i=a,u=""):(i=a.substring(0,l),u=a.substring(l+1));let c;this._children.hasOwnProperty(i)?c=this._children[i]:(c=new Do(this._mainRule.clone(),Fo.cloneArr(this._rulesWithParentScopes)),this._children[i]=c),c.insert(t+1,u,o,r,s,n)}_doInsertHere(t,a,o,r,s){if(a===null){this._mainRule.acceptOverwrite(t,o,r,s);return}for(let n=0,l=this._rulesWithParentScopes.length;n<l;n++){let i=this._rulesWithParentScopes[n];if(An(i.parentScopes,a)===0){i.acceptOverwrite(t,o,r,s);return}}o===-1&&(o=this._mainRule.fontStyle),r===0&&(r=this._mainRule.foreground),s===0&&(s=this._mainRule.background),this._rulesWithParentScopes.push(new Fo(t,a,o,r,s))}},it=class Ae{static toBinaryStr(t){return t.toString(2).padStart(32,"0")}static print(t){let a=Ae.getLanguageId(t),o=Ae.getTokenType(t),r=Ae.getFontStyle(t),s=Ae.getForeground(t),n=Ae.getBackground(t);console.log({languageId:a,tokenType:o,fontStyle:r,foreground:s,background:n})}static getLanguageId(t){return(t&255)>>>0}static getTokenType(t){return(t&768)>>>8}static containsBalancedBrackets(t){return(t&1024)!==0}static getFontStyle(t){return(t&30720)>>>11}static getForeground(t){return(t&16744448)>>>15}static getBackground(t){return(t&4278190080)>>>24}static set(t,a,o,r,s,n,l){let i=Ae.getLanguageId(t),u=Ae.getTokenType(t),c=Ae.containsBalancedBrackets(t)?1:0,d=Ae.getFontStyle(t),p=Ae.getForeground(t),m=Ae.getBackground(t);return a!==0&&(i=a),o!==8&&(u=o),r!==null&&(c=r?1:0),s!==-1&&(d=s),n!==0&&(p=n),l!==0&&(m=l),(i<<0|u<<8|c<<10|d<<11|p<<15|m<<24)>>>0}};function va(e,t){let a=[],o=sc(e),r=o.next();for(;r!==null;){let i=0;if(r.length===2&&r.charAt(1)===":"){switch(r.charAt(0)){case"R":i=1;break;case"L":i=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=o.next()}let u=n();if(a.push({matcher:u,priority:i}),r!==",")break;r=o.next()}return a;function s(){if(r==="-"){r=o.next();let i=s();return u=>!!i&&!i(u)}if(r==="("){r=o.next();let i=l();return r===")"&&(r=o.next()),i}if(Ln(r)){let i=[];do i.push(r),r=o.next();while(Ln(r));return u=>t(i,u)}return null}function n(){let i=[],u=s();for(;u;)i.push(u),u=s();return c=>i.every(d=>d(c))}function l(){let i=[],u=n();for(;u&&(i.push(u),r==="|"||r===",");){do r=o.next();while(r==="|"||r===",");u=n()}return c=>i.some(d=>d(c))}}function Ln(e){return!!e&&!!e.match(/[\w\.:]+/)}function sc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,a=t.exec(e);return{next:()=>{if(!a)return null;let o=a[0];return a=t.exec(e),o}}}function Bn(e){typeof e.dispose=="function"&&e.dispose()}var Kt=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},nc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},ic=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){let t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},lc=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Kt(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){let e=this.Q;this.Q=[];let t=new ic;for(let a of e)uc(a,this.initialScopeName,this.repo,t);for(let a of t.references)if(a instanceof Kt){if(this.seenFullScopeRequests.has(a.scopeName))continue;this.seenFullScopeRequests.add(a.scopeName),this.Q.push(a)}else{if(this.seenFullScopeRequests.has(a.scopeName)||this.seenPartialScopeRequests.has(a.toKey()))continue;this.seenPartialScopeRequests.add(a.toKey()),this.Q.push(a)}}};function uc(e,t,a,o){let r=a.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}let s=a.lookup(t);e instanceof Kt?Pa({baseGrammar:s,selfGrammar:r},o):Bo(e.ruleName,{baseGrammar:s,selfGrammar:r,repository:r.repository},o);let n=a.injections(e.scopeName);if(n)for(let l of n)o.add(new Kt(l))}function Bo(e,t,a){if(t.repository&&t.repository[e]){let o=t.repository[e];Aa([o],t,a)}}function Pa(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&Aa(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&Aa(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function Aa(e,t,a){for(let o of e){if(a.visitedRule.has(o))continue;a.visitedRule.add(o);let r=o.repository?Tn({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&Aa(o.patterns,{...t,repository:r},a);let s=o.include;if(!s)continue;let n=En(s);switch(n.kind){case 0:Pa({...t,selfGrammar:t.baseGrammar},a);break;case 1:Pa(t,a);break;case 2:Bo(n.ruleName,{...t,repository:r},a);break;case 3:case 4:let l=n.scopeName===t.selfGrammar.scopeName?t.selfGrammar:n.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(l){let i={baseGrammar:t.baseGrammar,selfGrammar:l,repository:r};n.kind===4?Bo(n.ruleName,i,a):Pa(i,a)}else n.kind===4?a.add(new nc(n.scopeName,n.ruleName)):a.add(new Kt(n.scopeName));break}}}var dc=class{kind=0},cc=class{kind=1},fc=class{constructor(e){this.ruleName=e}kind=2},pc=class{constructor(e){this.scopeName=e}kind=3},mc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function En(e){if(e==="$base")return new dc;if(e==="$self")return new cc;let t=e.indexOf("#");if(t===-1)return new pc(e);if(t===0)return new fc(e.substring(1));{let a=e.substring(0,t),o=e.substring(t+1);return new mc(a,o)}}var hc=/\\(\d+)/,Cn=/\\(\d+)/g;var gc=-1,_n=-2;var Zt=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,a,o){this.$location=e,this.id=t,this._name=a||null,this._nameIsCapturing=ka.hasCaptures(this._name),this._contentName=o||null,this._contentNameIsCapturing=ka.hasCaptures(this._contentName)}get debugName(){let e=this.$location?`${Pn(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return!this._nameIsCapturing||this._name===null||e===null||t===null?this._name:ka.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:ka.replaceCaptures(this._contentName,e,t)}},wc=class extends Zt{retokenizeCapturedWithRuleId;constructor(e,t,a,o,r){super(e,t,a,o),this.retokenizeCapturedWithRuleId=r}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,a,o){throw new Error("Not supported!")}},xc=class extends Zt{_match;captures;_cachedCompiledPatterns;constructor(e,t,a,o,r){super(e,t,a,null),this._match=new Qt(o,this.id),this.captures=r,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Jt,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},In=class extends Zt{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,a,o,r){super(e,t,a,o),this.patterns=r.patterns,this.hasMissingPatterns=r.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(let a of this.patterns)e.getRule(a).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Jt,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},Eo=class extends Zt{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,a,o,r,s,n,l,i,u){super(e,t,a,o),this._begin=new Qt(r,this.id),this.beginCaptures=s,this._end=new Qt(n||"\uFFFF",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=l,this.applyEndPatternLast=i||!1,this.patterns=u.patterns,this.hasMissingPatterns=u.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e,t).compileAG(e,a,o)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Jt;for(let a of this.patterns)e.getRule(a).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},Ra=class extends Zt{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,a,o,r,s,n,l,i){super(e,t,a,o),this._begin=new Qt(r,this.id),this.beginCaptures=s,this.whileCaptures=l,this._while=new Qt(n,_n),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=i.patterns,this.hasMissingPatterns=i.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,a,o){return this._getCachedCompiledPatterns(e).compileAG(e,a,o)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Jt;for(let t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,a,o){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,a,o)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Jt,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"\uFFFF"),this._cachedCompiledWhilePatterns}},Nn=class he{static createCaptureRule(t,a,o,r,s){return t.registerRule(n=>new wc(a,n,o,r,s))}static getCompiledRuleId(t,a,o){return t.id||a.registerRule(r=>{if(t.id=r,t.match)return new xc(t.$vscodeTextmateLocation,t.id,t.name,t.match,he._compileCaptures(t.captures,a,o));if(typeof t.begin>"u"){t.repository&&(o=Tn({},o,t.repository));let s=t.patterns;return typeof s>"u"&&t.include&&(s=[{include:t.include}]),new In(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,he._compilePatterns(s,a,o))}return t.while?new Ra(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,he._compileCaptures(t.beginCaptures||t.captures,a,o),t.while,he._compileCaptures(t.whileCaptures||t.captures,a,o),he._compilePatterns(t.patterns,a,o)):new Eo(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,he._compileCaptures(t.beginCaptures||t.captures,a,o),t.end,he._compileCaptures(t.endCaptures||t.captures,a,o),t.applyEndPatternLast,he._compilePatterns(t.patterns,a,o))}),t.id}static _compileCaptures(t,a,o){let r=[];if(t){let s=0;for(let n in t){if(n==="$vscodeTextmateLocation")continue;let l=parseInt(n,10);l>s&&(s=l)}for(let n=0;n<=s;n++)r[n]=null;for(let n in t){if(n==="$vscodeTextmateLocation")continue;let l=parseInt(n,10),i=0;t[n].patterns&&(i=he.getCompiledRuleId(t[n],a,o)),r[l]=he.createCaptureRule(a,t[n].$vscodeTextmateLocation,t[n].name,t[n].contentName,i)}}return r}static _compilePatterns(t,a,o){let r=[];if(t)for(let s=0,n=t.length;s<n;s++){let l=t[s],i=-1;if(l.include){let u=En(l.include);switch(u.kind){case 0:case 1:i=he.getCompiledRuleId(o[l.include],a,o);break;case 2:let c=o[u.ruleName];c&&(i=he.getCompiledRuleId(c,a,o));break;case 3:case 4:let d=u.scopeName,p=u.kind===4?u.ruleName:null,m=a.getExternalGrammar(d,o);if(m)if(p){let h=m.repository[p];h&&(i=he.getCompiledRuleId(h,a,m.repository))}else i=he.getCompiledRuleId(m.repository.$self,a,m.repository);break}}else i=he.getCompiledRuleId(l,a,o);if(i!==-1){let u=a.getRule(i),c=!1;if((u instanceof In||u instanceof Eo||u instanceof Ra)&&u.hasMissingPatterns&&u.patterns.length===0&&(c=!0),c)continue;r.push(i)}}return{patterns:r,hasMissingPatterns:(t?t.length:0)!==r.length}}},Qt=class Un{source;ruleId;hasAnchor;hasBackReferences;_anchorCache;constructor(t,a){if(t&&typeof t=="string"){let o=t.length,r=0,s=[],n=!1;for(let l=0;l<o;l++)if(t.charAt(l)==="\\"&&l+1<o){let u=t.charAt(l+1);u==="z"?(s.push(t.substring(r,l)),s.push("$(?!\\n)(?<!\\n)"),r=l+2):(u==="A"||u==="G")&&(n=!0),l++}this.hasAnchor=n,r===0?this.source=t:(s.push(t.substring(r,o)),this.source=s.join(""))}else this.hasAnchor=!1,this.source=t;this.hasAnchor?this._anchorCache=this._buildAnchorCache():this._anchorCache=null,this.ruleId=a,typeof this.source=="string"?this.hasBackReferences=hc.test(this.source):this.hasBackReferences=!1}clone(){return new Un(this.source,this.ruleId)}setSource(t){this.source!==t&&(this.source=t,this.hasAnchor&&(this._anchorCache=this._buildAnchorCache()))}resolveBackReferences(t,a){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let o=a.map(r=>t.substring(r.start,r.end));return Cn.lastIndex=0,this.source.replace(Cn,(r,s)=>Rn(o[parseInt(s,10)]||""))}_buildAnchorCache(){if(typeof this.source!="string")throw new Error("This method should only be called if the source is a string");let t=[],a=[],o=[],r=[],s,n,l,i;for(s=0,n=this.source.length;s<n;s++)l=this.source.charAt(s),t[s]=l,a[s]=l,o[s]=l,r[s]=l,l==="\\"&&s+1<n&&(i=this.source.charAt(s+1),i==="A"?(t[s+1]="\uFFFF",a[s+1]="\uFFFF",o[s+1]="A",r[s+1]="A"):i==="G"?(t[s+1]="\uFFFF",a[s+1]="G",o[s+1]="\uFFFF",r[s+1]="G"):(t[s+1]=i,a[s+1]=i,o[s+1]=i,r[s+1]=i),s++);return{A0_G0:t.join(""),A0_G1:a.join(""),A1_G0:o.join(""),A1_G1:r.join("")}}resolveAnchors(t,a){return!this.hasAnchor||!this._anchorCache||typeof this.source!="string"?this.source:t?a?this._anchorCache.A1_G1:this._anchorCache.A1_G0:a?this._anchorCache.A0_G1:this._anchorCache.A0_G0}},Jt=class{_items;_hasAnchors;_cached;_anchorCache;constructor(){this._items=[],this._hasAnchors=!1,this._cached=null,this._anchorCache={A0_G0:null,A0_G1:null,A1_G0:null,A1_G1:null}}dispose(){this._disposeCaches()}_disposeCaches(){this._cached&&(this._cached.dispose(),this._cached=null),this._anchorCache.A0_G0&&(this._anchorCache.A0_G0.dispose(),this._anchorCache.A0_G0=null),this._anchorCache.A0_G1&&(this._anchorCache.A0_G1.dispose(),this._anchorCache.A0_G1=null),this._anchorCache.A1_G0&&(this._anchorCache.A1_G0.dispose(),this._anchorCache.A1_G0=null),this._anchorCache.A1_G1&&(this._anchorCache.A1_G1.dispose(),this._anchorCache.A1_G1=null)}push(e){this._items.push(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}unshift(e){this._items.unshift(e),this._hasAnchors=this._hasAnchors||e.hasAnchor}length(){return this._items.length}setSource(e,t){this._items[e].source!==t&&(this._disposeCaches(),this._items[e].setSource(t))}compile(e){if(!this._cached){let t=this._items.map(a=>a.source);this._cached=new Sn(e,t,this._items.map(a=>a.ruleId))}return this._cached}compileAG(e,t,a){return this._hasAnchors?t?a?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,a)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,a)),this._anchorCache.A1_G0):a?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,a)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,a)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,a){let o=this._items.map(r=>r.resolveAnchors(t,a));return new Sn(e,o,this._items.map(r=>r.ruleId))}},Sn=class{constructor(e,t,a){this.regExps=t,this.rules=a,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){let e=[];for(let t=0,a=this.rules.length;t<a;t++)e.push(" - "+this.rules[t]+": "+this.regExps[t]);return e.join(`
|
|
69
69
|
`)}findNextMatchSync(e,t,a){let o=this.scanner.findNextMatchSync(e,t,a);return o?{ruleId:this.rules[o.index],captureIndices:o.captureIndices}:null}},Mo=class{constructor(e,t){this.languageId=e,this.tokenType=t}},Lc=class _o{_defaultAttributes;_embeddedLanguagesMatcher;constructor(t,a){this._defaultAttributes=new Mo(t,8),this._embeddedLanguagesMatcher=new Cc(Object.entries(a||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(t){return t===null?_o._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(t)}static _NULL_SCOPE_METADATA=new Mo(0,0);_getBasicScopeAttributes=new Mn(t=>{let a=this._scopeToLanguage(t),o=this._toStandardTokenType(t);return new Mo(a,o)});_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){let a=t.match(_o.STANDARD_TOKEN_TYPE_REGEXP);if(!a)return 8;switch(a[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Cc=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);let t=e.map(([a,o])=>Rn(a));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;let t=e.match(this.scopesRegExp);if(t)return this.values.get(t[1])}},WI={InDebugMode:typeof process<"u"&&!!process.env.VSCODE_TEXTMATE_DEBUG},On=!1,yn=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Hn(e,t,a,o,r,s,n,l){let i=t.content.length,u=!1,c=-1;if(n){let m=Ic(e,t,a,o,r,s);r=m.stack,o=m.linePos,a=m.isFirstLine,c=m.anchorPosition}let d=Date.now();for(;!u;){if(l!==0&&Date.now()-d>l)return new yn(r,!0);p()}return new yn(r,!1);function p(){let m=Sc(e,t,a,o,r,c);if(!m){s.produce(r,i),u=!0;return}let h=m.captureIndices,I=m.matchedRuleId,L=h&&h.length>0?h[0].end>o:!1;if(I===gc){let S=r.getRule(e);s.produce(r,h[0].start),r=r.withContentNameScopesList(r.nameScopesList),Vt(e,t,a,r,s,S.endCaptures,h),s.produce(r,h[0].end);let C=r;if(r=r.parent,c=C.getAnchorPos(),!L&&C.getEnterPos()===o){r=C,s.produce(r,i),u=!0;return}}else{let S=e.getRule(I);s.produce(r,h[0].start);let C=r,g=S.getName(t.content,h),b=r.contentNameScopesList.pushAttributed(g,e);if(r=r.push(I,o,c,h[0].end===i,null,b,b),S instanceof Eo){let T=S;Vt(e,t,a,r,s,T.beginCaptures,h),s.produce(r,h[0].end),c=h[0].end;let P=T.getContentName(t.content,h),R=b.pushAttributed(P,e);if(r=r.withContentNameScopesList(R),T.endHasBackReferences&&(r=r.withEndRule(T.getEndWithResolvedBackReferences(t.content,h))),!L&&C.hasSameRuleAs(r)){r=r.pop(),s.produce(r,i),u=!0;return}}else if(S instanceof Ra){let T=S;Vt(e,t,a,r,s,T.beginCaptures,h),s.produce(r,h[0].end),c=h[0].end;let P=T.getContentName(t.content,h),R=b.pushAttributed(P,e);if(r=r.withContentNameScopesList(R),T.whileHasBackReferences&&(r=r.withEndRule(T.getWhileWithResolvedBackReferences(t.content,h))),!L&&C.hasSameRuleAs(r)){r=r.pop(),s.produce(r,i),u=!0;return}}else if(Vt(e,t,a,r,s,S.captures,h),s.produce(r,h[0].end),r=r.pop(),!L){r=r.safePop(),s.produce(r,i),u=!0;return}}h[0].end>o&&(o=h[0].end,a=!1)}}function Ic(e,t,a,o,r,s){let n=r.beginRuleCapturedEOL?0:-1,l=[];for(let i=r;i;i=i.pop()){let u=i.getRule(e);u instanceof Ra&&l.push({rule:u,stack:i})}for(let i=l.pop();i;i=l.pop()){let{ruleScanner:u,findOptions:c}=kc(i.rule,e,i.stack.endRule,a,o===n),d=u.findNextMatchSync(t,o,c);if(d){if(d.ruleId!==_n){r=i.stack.pop();break}d.captureIndices&&d.captureIndices.length&&(s.produce(i.stack,d.captureIndices[0].start),Vt(e,t,a,i.stack,s,i.rule.whileCaptures,d.captureIndices),s.produce(i.stack,d.captureIndices[0].end),n=d.captureIndices[0].end,d.captureIndices[0].end>o&&(o=d.captureIndices[0].end,a=!1))}else{r=i.stack.pop();break}}return{stack:r,linePos:o,anchorPosition:n,isFirstLine:a}}function Sc(e,t,a,o,r,s){let n=yc(e,t,a,o,r,s),l=e.getInjections();if(l.length===0)return n;let i=bc(l,e,t,a,o,r,s);if(!i)return n;if(!n)return i;let u=n.captureIndices[0].start,c=i.captureIndices[0].start;return c<u||i.priorityMatch&&c===u?i:n}function yc(e,t,a,o,r,s){let n=r.getRule(e),{ruleScanner:l,findOptions:i}=qn(n,e,r.endRule,a,o===s),u=l.findNextMatchSync(t,o,i);return u?{captureIndices:u.captureIndices,matchedRuleId:u.ruleId}:null}function bc(e,t,a,o,r,s,n){let l=Number.MAX_VALUE,i=null,u,c=0,d=s.contentNameScopesList.getScopeNames();for(let p=0,m=e.length;p<m;p++){let h=e[p];if(!h.matcher(d))continue;let I=t.getRule(h.ruleId),{ruleScanner:L,findOptions:S}=qn(I,t,null,o,r===n),C=L.findNextMatchSync(a,r,S);if(!C)continue;let g=C.captureIndices[0].start;if(!(g>=l)&&(l=g,i=C.captureIndices,u=C.ruleId,c=h.priority,l===r))break}return i?{priorityMatch:c===-1,captureIndices:i,matchedRuleId:u}:null}function qn(e,t,a,o,r){if(On){let n=e.compile(t,a),l=Wn(o,r);return{ruleScanner:n,findOptions:l}}return{ruleScanner:e.compileAG(t,a,o,r),findOptions:0}}function kc(e,t,a,o,r){if(On){let n=e.compileWhile(t,a),l=Wn(o,r);return{ruleScanner:n,findOptions:l}}return{ruleScanner:e.compileWhileAG(t,a,o,r),findOptions:0}}function Wn(e,t){let a=0;return e||(a|=1),t||(a|=4),a}function Vt(e,t,a,o,r,s,n){if(s.length===0)return;let l=t.content,i=Math.min(s.length,n.length),u=[],c=n[0].end;for(let d=0;d<i;d++){let p=s[d];if(p===null)continue;let m=n[d];if(m.length===0)continue;if(m.start>c)break;for(;u.length>0&&u[u.length-1].endPos<=m.start;)r.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop();if(u.length>0?r.produceFromScopes(u[u.length-1].scopes,m.start):r.produce(o,m.start),p.retokenizeCapturedWithRuleId){let I=p.getName(l,n),L=o.contentNameScopesList.pushAttributed(I,e),S=p.getContentName(l,n),C=L.pushAttributed(S,e),g=o.push(p.retokenizeCapturedWithRuleId,m.start,-1,!1,null,L,C),b=e.createOnigString(l.substring(0,m.end));Hn(e,b,a&&m.start===0,m.start,g,r,!1,0),Bn(b);continue}let h=p.getName(l,n);if(h!==null){let L=(u.length>0?u[u.length-1].scopes:o.contentNameScopesList).pushAttributed(h,e);u.push(new Tc(L,m.end))}}for(;u.length>0;)r.produceFromScopes(u[u.length-1].scopes,u[u.length-1].endPos),u.pop()}var Tc=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function Pc(e,t,a,o,r,s,n,l){return new Ac(e,t,a,o,r,s,n,l)}function bn(e,t,a,o,r){let s=va(t,Ma),n=Nn.getCompiledRuleId(a,o,r.repository);for(let l of s)e.push({debugSelector:t,matcher:l.matcher,ruleId:n,grammar:r,priority:l.priority})}function Ma(e,t){if(t.length<e.length)return!1;let a=0;return e.every(o=>{for(let r=a;r<t.length;r++)if(vc(t[r],o))return a=r+1,!0;return!1})}function vc(e,t){if(!e)return!1;if(e===t)return!0;let a=t.length;return e.length>a&&e.substr(0,a)===t&&e[a]==="."}var Ac=class{constructor(e,t,a,o,r,s,n,l){if(this._rootScopeName=e,this.balancedBracketSelectors=s,this._onigLib=l,this._basicScopeAttributesProvider=new Lc(a,o),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=n,this._grammar=kn(t,null),this._injections=null,this._tokenTypeMatchers=[],r)for(let i of Object.keys(r)){let u=va(i,Ma);for(let c of u)this._tokenTypeMatchers.push({matcher:c.matcher,type:r[i]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;get themeProvider(){return this._grammarRepository}dispose(){for(let e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){let e={lookup:r=>r===this._rootScopeName?this._grammar:this.getExternalGrammar(r),injections:r=>this._grammarRepository.injections(r)},t=[],a=this._rootScopeName,o=e.lookup(a);if(o){let r=o.injections;if(r)for(let n in r)bn(t,n,r[n],this,o);let s=this._grammarRepository.injections(a);s&&s.forEach(n=>{let l=this.getExternalGrammar(n);if(l){let i=l.injectionSelector;i&&bn(t,i,l,this,l)}})}return t.sort((r,s)=>r.priority-s.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){let t=++this._lastRuleId,a=e(t);return this._ruleId2desc[t]=a,a}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){let a=this._grammarRepository.lookup(e);if(a)return this._includedGrammars[e]=kn(a,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,a=0){let o=this._tokenize(e,t,!1,a);return{tokens:o.lineTokens.getResult(o.ruleStack,o.lineLength),ruleStack:o.ruleStack,stoppedEarly:o.stoppedEarly}}tokenizeLine2(e,t,a=0){let o=this._tokenize(e,t,!0,a);return{tokens:o.lineTokens.getBinaryResult(o.ruleStack,o.lineLength),ruleStack:o.ruleStack,stoppedEarly:o.stoppedEarly}}_tokenize(e,t,a,o){this._rootId===-1&&(this._rootId=Nn.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let r;if(!t||t===No.NULL){r=!0;let u=this._basicScopeAttributesProvider.getDefaultAttributes(),c=this.themeProvider.getDefaults(),d=it.set(0,u.languageId,u.tokenType,null,c.fontStyle,c.foregroundId,c.backgroundId),p=this.getRule(this._rootId).getName(null,null),m;p?m=$t.createRootAndLookUpScopeName(p,d,this):m=$t.createRoot("unknown",d),t=new No(null,this._rootId,-1,-1,!1,null,m,m)}else r=!1,t.reset();e=e+`
|
|
70
70
|
`;let s=this.createOnigString(e),n=s.content.length,l=new Mc(a,e,this._tokenTypeMatchers,this.balancedBracketSelectors),i=Hn(this,s,r,0,t,l,!0,o);return Bn(s),{lineLength:n,lineTokens:l,ruleStack:i.stack,stoppedEarly:i.stoppedEarly}}};function kn(e,t){return e=Xd(e),e.repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}var $t=class Ne{constructor(t,a,o){this.parent=t,this.scopePath=a,this.tokenAttributes=o}static fromExtension(t,a){let o=t,r=t?.scopePath??null;for(let s of a)r=Ro.push(r,s.scopeNames),o=new Ne(o,r,s.encodedTokenAttributes);return o}static createRoot(t,a){return new Ne(null,new Ro(null,t),a)}static createRootAndLookUpScopeName(t,a,o){let r=o.getMetadataForScope(t),s=new Ro(null,t),n=o.themeProvider.themeMatch(s),l=Ne.mergeAttributes(a,r,n);return new Ne(null,s,l)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return Ne.equals(this,t)}static equals(t,a){do{if(t===a||!t&&!a)return!0;if(!t||!a||t.scopeName!==a.scopeName||t.tokenAttributes!==a.tokenAttributes)return!1;t=t.parent,a=a.parent}while(!0)}static mergeAttributes(t,a,o){let r=-1,s=0,n=0;return o!==null&&(r=o.fontStyle,s=o.foregroundId,n=o.backgroundId),it.set(t,a.languageId,a.tokenType,null,r,s,n)}pushAttributed(t,a){if(t===null)return this;if(t.indexOf(" ")===-1)return Ne._pushAttributed(this,t,a);let o=t.split(/ /g),r=this;for(let s of o)r=Ne._pushAttributed(r,s,a);return r}static _pushAttributed(t,a,o){let r=o.getMetadataForScope(a),s=t.scopePath.push(a),n=o.themeProvider.themeMatch(s),l=Ne.mergeAttributes(t.tokenAttributes,r,n);return new Ne(t,s,l)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){let a=[],o=this;for(;o&&o!==t;)a.push({encodedTokenAttributes:o.tokenAttributes,scopeNames:o.scopePath.getExtensionIfDefined(o.parent?.scopePath??null)}),o=o.parent;return o===t?a.reverse():void 0}},No=class nt{constructor(t,a,o,r,s,n,l,i){this.parent=t,this.ruleId=a,this.beginRuleCapturedEOL=s,this.endRule=n,this.nameScopesList=l,this.contentNameScopesList=i,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=o,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new nt(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t===null?!1:nt._equals(this,t)}static _equals(t,a){return t===a?!0:this._structuralEquals(t,a)?$t.equals(t.contentNameScopesList,a.contentNameScopesList):!1}static _structuralEquals(t,a){do{if(t===a||!t&&!a)return!0;if(!t||!a||t.depth!==a.depth||t.ruleId!==a.ruleId||t.endRule!==a.endRule)return!1;t=t.parent,a=a.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){nt._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,a,o,r,s,n,l){return new nt(this,t,a,o,r,s,n,l)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(t){return t.getRule(this.ruleId)}toString(){let t=[];return this._writeString(t,0),"["+t.join(",")+"]"}_writeString(t,a){return this.parent&&(a=this.parent._writeString(t,a)),t[a++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,a}withContentNameScopesList(t){return this.contentNameScopesList===t?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,t)}withEndRule(t){return this.endRule===t?this:new nt(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let a=this;for(;a&&a._enterPos===t._enterPos;){if(a.ruleId===t.ruleId)return!0;a=a.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,a){let o=$t.fromExtension(t?.nameScopesList??null,a.nameScopesList);return new nt(t,a.ruleId,a.enterPos??-1,a.anchorPos??-1,a.beginRuleCapturedEOL,a.endRule,o,$t.fromExtension(o,a.contentNameScopesList))}},Rc=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(a=>a==="*"?(this.allowAny=!0,[]):va(a,Ma).map(o=>o.matcher)),this.unbalancedBracketScopes=t.flatMap(a=>va(a,Ma).map(o=>o.matcher))}get matchesAlways(){return this.allowAny&&this.unbalancedBracketScopes.length===0}get matchesNever(){return this.balancedBracketScopes.length===0&&!this.allowAny}match(e){for(let t of this.unbalancedBracketScopes)if(t(e))return!1;for(let t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}},Mc=class{constructor(e,t,a,o){this.balancedBracketSelectors=o,this._emitBinaryTokens=e,this._tokenTypeOverrides=a,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let o=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){let s=e?.getScopeNames()??[];for(let n of this._tokenTypeOverrides)n.matcher(s)&&(o=it.set(o,0,n.type,null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(s))}if(r&&(o=it.set(o,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===o){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(o),this._lastTokenEndIndex=t;return}let a=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:a}),this._lastTokenEndIndex=t}getResult(e,t){return this._tokens.length>0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),this._tokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),this._binaryTokens.length===0&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);let a=new Uint32Array(this._binaryTokens.length);for(let o=0,r=this._binaryTokens.length;o<r;o++)a[o]=this._binaryTokens[o];return a}},Fc=class{constructor(e,t){this._onigLib=t,this._theme=e}_grammars=new Map;_rawGrammars=new Map;_injectionGrammars=new Map;_theme;dispose(){for(let e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}grammarForScopeName(e,t,a,o,r){if(!this._grammars.has(e)){let s=this._rawGrammars.get(e);if(!s)return null;this._grammars.set(e,Pc(e,s,t,a,o,r,this,this._onigLib))}return this._grammars.get(e)}},Gn=class{_options;_syncRegistry;_ensureGrammarCache;constructor(e){this._options=e,this._syncRegistry=new Fc(Xt.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(Xt.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,a){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:a})}loadGrammarWithConfiguration(e,t,a){return this._loadGrammar(e,t,a.embeddedLanguages,a.tokenTypes,new Rc(a.balancedBracketSelectors||[],a.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}_loadGrammar(e,t,a,o,r){let s=new lc(this._syncRegistry,e);for(;s.Q.length>0;)s.Q.map(n=>this._loadSingleGrammar(n.scopeName)),s.processQueue();return this._grammarForScopeName(e,t,a,o,r)}_loadSingleGrammar(e){this._ensureGrammarCache.has(e)||(this._doLoadSingleGrammar(e),this._ensureGrammarCache.set(e,!0))}_doLoadSingleGrammar(e){let t=this._options.loadGrammar(e);if(t){let a=typeof this._options.getInjections=="function"?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,a)}}addGrammar(e,t=[],a=0,o=null){return this._syncRegistry.addGrammar(e,t),this._grammarForScopeName(e.scopeName,a,o)}_grammarForScopeName(e,t=0,a=null,o=null,r=null){return this._syncRegistry.grammarForScopeName(e,t,a,o,r)}},Fa=No.NULL;f();f();f();f();f();f();var Dc=/["&'<>`]/g,Bc=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Ec=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,_c=/[|\\{}()[\]^$+*?.]/g,jn=new WeakMap;function zn(e,t){if(e=e.replace(t.subset?Nc(t.subset):Dc,o),t.subset||t.escapeOnly)return e;return e.replace(Bc,a).replace(Ec,o);function a(r,s,n){return t.format((r.charCodeAt(0)-55296)*1024+r.charCodeAt(1)-56320+65536,n.charCodeAt(s+2),t)}function o(r,s,n){return t.format(r.charCodeAt(0),n.charCodeAt(s+1),t)}}function Nc(e){let t=jn.get(e);return t||(t=Uc(e),jn.set(e,t)),t}function Uc(e){let t=[],a=-1;for(;++a<e.length;)t.push(e[a].replace(_c,"\\$&"));return new RegExp("(?:"+t.join("|")+")","g")}f();f();var Oc=/[\dA-Fa-f]/;function Vn(e,t,a){let o="&#x"+e.toString(16).toUpperCase();return a&&t&&!Oc.test(String.fromCharCode(t))?o:o+";"}f();var Hc=/\d/;function $n(e,t,a){let o="&#"+String(e);return a&&t&&!Hc.test(String.fromCharCode(t))?o:o+";"}f();f();var Xn=["AElig","AMP","Aacute","Acirc","Agrave","Aring","Atilde","Auml","COPY","Ccedil","ETH","Eacute","Ecirc","Egrave","Euml","GT","Iacute","Icirc","Igrave","Iuml","LT","Ntilde","Oacute","Ocirc","Ograve","Oslash","Otilde","Ouml","QUOT","REG","THORN","Uacute","Ucirc","Ugrave","Uuml","Yacute","aacute","acirc","acute","aelig","agrave","amp","aring","atilde","auml","brvbar","ccedil","cedil","cent","copy","curren","deg","divide","eacute","ecirc","egrave","eth","euml","frac12","frac14","frac34","gt","iacute","icirc","iexcl","igrave","iquest","iuml","laquo","lt","macr","micro","middot","nbsp","not","ntilde","oacute","ocirc","ograve","ordf","ordm","oslash","otilde","ouml","para","plusmn","pound","quot","raquo","reg","sect","shy","sup1","sup2","sup3","szlig","thorn","times","uacute","ucirc","ugrave","uml","uuml","yacute","yen","yuml"];f();var Da={nbsp:"\xA0",iexcl:"\xA1",cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",brvbar:"\xA6",sect:"\xA7",uml:"\xA8",copy:"\xA9",ordf:"\xAA",laquo:"\xAB",not:"\xAC",shy:"\xAD",reg:"\xAE",macr:"\xAF",deg:"\xB0",plusmn:"\xB1",sup2:"\xB2",sup3:"\xB3",acute:"\xB4",micro:"\xB5",para:"\xB6",middot:"\xB7",cedil:"\xB8",sup1:"\xB9",ordm:"\xBA",raquo:"\xBB",frac14:"\xBC",frac12:"\xBD",frac34:"\xBE",iquest:"\xBF",Agrave:"\xC0",Aacute:"\xC1",Acirc:"\xC2",Atilde:"\xC3",Auml:"\xC4",Aring:"\xC5",AElig:"\xC6",Ccedil:"\xC7",Egrave:"\xC8",Eacute:"\xC9",Ecirc:"\xCA",Euml:"\xCB",Igrave:"\xCC",Iacute:"\xCD",Icirc:"\xCE",Iuml:"\xCF",ETH:"\xD0",Ntilde:"\xD1",Ograve:"\xD2",Oacute:"\xD3",Ocirc:"\xD4",Otilde:"\xD5",Ouml:"\xD6",times:"\xD7",Oslash:"\xD8",Ugrave:"\xD9",Uacute:"\xDA",Ucirc:"\xDB",Uuml:"\xDC",Yacute:"\xDD",THORN:"\xDE",szlig:"\xDF",agrave:"\xE0",aacute:"\xE1",acirc:"\xE2",atilde:"\xE3",auml:"\xE4",aring:"\xE5",aelig:"\xE6",ccedil:"\xE7",egrave:"\xE8",eacute:"\xE9",ecirc:"\xEA",euml:"\xEB",igrave:"\xEC",iacute:"\xED",icirc:"\xEE",iuml:"\xEF",eth:"\xF0",ntilde:"\xF1",ograve:"\xF2",oacute:"\xF3",ocirc:"\xF4",otilde:"\xF5",ouml:"\xF6",divide:"\xF7",oslash:"\xF8",ugrave:"\xF9",uacute:"\xFA",ucirc:"\xFB",uuml:"\xFC",yacute:"\xFD",thorn:"\xFE",yuml:"\xFF",fnof:"\u0192",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039A",Lambda:"\u039B",Mu:"\u039C",Nu:"\u039D",Xi:"\u039E",Omicron:"\u039F",Pi:"\u03A0",Rho:"\u03A1",Sigma:"\u03A3",Tau:"\u03A4",Upsilon:"\u03A5",Phi:"\u03A6",Chi:"\u03A7",Psi:"\u03A8",Omega:"\u03A9",alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",iota:"\u03B9",kappa:"\u03BA",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",omicron:"\u03BF",pi:"\u03C0",rho:"\u03C1",sigmaf:"\u03C2",sigma:"\u03C3",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",thetasym:"\u03D1",upsih:"\u03D2",piv:"\u03D6",bull:"\u2022",hellip:"\u2026",prime:"\u2032",Prime:"\u2033",oline:"\u203E",frasl:"\u2044",weierp:"\u2118",image:"\u2111",real:"\u211C",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21B5",lArr:"\u21D0",uArr:"\u21D1",rArr:"\u21D2",dArr:"\u21D3",hArr:"\u21D4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220B",prod:"\u220F",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221A",prop:"\u221D",infin:"\u221E",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222A",int:"\u222B",there4:"\u2234",sim:"\u223C",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22A5",sdot:"\u22C5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230A",rfloor:"\u230B",lang:"\u2329",rang:"\u232A",loz:"\u25CA",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666",quot:'"',amp:"&",lt:"<",gt:">",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",circ:"\u02C6",tilde:"\u02DC",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200C",zwj:"\u200D",lrm:"\u200E",rlm:"\u200F",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201A",ldquo:"\u201C",rdquo:"\u201D",bdquo:"\u201E",dagger:"\u2020",Dagger:"\u2021",permil:"\u2030",lsaquo:"\u2039",rsaquo:"\u203A",euro:"\u20AC"};f();var Kn=["cent","copy","divide","gt","lt","not","para","times"];var Qn={}.hasOwnProperty,Oo={},Ba;for(Ba in Da)Qn.call(Da,Ba)&&(Oo[Da[Ba]]=Ba);var qc=/[^\dA-Za-z]/;function Jn(e,t,a,o){let r=String.fromCharCode(e);if(Qn.call(Oo,r)){let s=Oo[r],n="&"+s;return a&&Xn.includes(s)&&!Kn.includes(s)&&(!o||t&&t!==61&&qc.test(String.fromCharCode(t)))?n:n+";"}return""}function Zn(e,t,a){let o=Vn(e,t,a.omitOptionalSemicolons),r;if((a.useNamedReferences||a.useShortestReferences)&&(r=Jn(e,t,a.omitOptionalSemicolons,a.attribute)),(a.useShortestReferences||!r)&&a.useShortestReferences){let s=$n(e,t,a.omitOptionalSemicolons);s.length<o.length&&(o=s)}return r&&(!a.useShortestReferences||r.length<o.length)?r:o}function We(e,t){return zn(e,Object.assign({format:Zn},t))}var Wc=/^>|^->|<!--|-->|--!>|<!-$/g,Gc=[">"],jc=["<",">"];function Yn(e,t,a,o){return o.settings.bogusComments?"<?"+We(e.value,Object.assign({},o.settings.characterReferences,{subset:Gc}))+">":"<!--"+e.value.replace(Wc,r)+"-->";function r(s){return We(s,Object.assign({},o.settings.characterReferences,{subset:jc}))}}f();function ei(e,t,a,o){return"<!"+(o.settings.upperDoctype?"DOCTYPE":"doctype")+(o.settings.tightDoctype?"":" ")+"html>"}f();f();f();var ae=ti(1),Ho=ti(-1),zc=[];function ti(e){return t;function t(a,o,r){let s=a?a.children:zc,n=(o||0)+e,l=s[n];if(!r)for(;l&&ht(l);)n+=e,l=s[n];return l}}f();var Vc={}.hasOwnProperty;function Ea(e){return t;function t(a,o,r){return Vc.call(e,a.tagName)&&e[a.tagName](a,o,r)}}var Yt=Ea({body:Xc,caption:qo,colgroup:qo,dd:Zc,dt:Jc,head:qo,html:$c,li:Qc,optgroup:Yc,option:ef,p:Kc,rp:ai,rt:ai,tbody:af,td:oi,tfoot:of,th:oi,thead:tf,tr:rf});function qo(e,t,a){let o=ae(a,t,!0);return!o||o.type!=="comment"&&!(o.type==="text"&&ht(o.value.charAt(0)))}function $c(e,t,a){let o=ae(a,t);return!o||o.type!=="comment"}function Xc(e,t,a){let o=ae(a,t);return!o||o.type!=="comment"}function Kc(e,t,a){let o=ae(a,t);return o?o.type==="element"&&(o.tagName==="address"||o.tagName==="article"||o.tagName==="aside"||o.tagName==="blockquote"||o.tagName==="details"||o.tagName==="div"||o.tagName==="dl"||o.tagName==="fieldset"||o.tagName==="figcaption"||o.tagName==="figure"||o.tagName==="footer"||o.tagName==="form"||o.tagName==="h1"||o.tagName==="h2"||o.tagName==="h3"||o.tagName==="h4"||o.tagName==="h5"||o.tagName==="h6"||o.tagName==="header"||o.tagName==="hgroup"||o.tagName==="hr"||o.tagName==="main"||o.tagName==="menu"||o.tagName==="nav"||o.tagName==="ol"||o.tagName==="p"||o.tagName==="pre"||o.tagName==="section"||o.tagName==="table"||o.tagName==="ul"):!a||!(a.type==="element"&&(a.tagName==="a"||a.tagName==="audio"||a.tagName==="del"||a.tagName==="ins"||a.tagName==="map"||a.tagName==="noscript"||a.tagName==="video"))}function Qc(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&o.tagName==="li"}function Jc(e,t,a){let o=ae(a,t);return!!(o&&o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd"))}function Zc(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&(o.tagName==="dt"||o.tagName==="dd")}function ai(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&(o.tagName==="rp"||o.tagName==="rt")}function Yc(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&o.tagName==="optgroup"}function ef(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&(o.tagName==="option"||o.tagName==="optgroup")}function tf(e,t,a){let o=ae(a,t);return!!(o&&o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot"))}function af(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&(o.tagName==="tbody"||o.tagName==="tfoot")}function of(e,t,a){return!ae(a,t)}function rf(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&o.tagName==="tr"}function oi(e,t,a){let o=ae(a,t);return!o||o.type==="element"&&(o.tagName==="td"||o.tagName==="th")}f();var ri=Ea({body:lf,colgroup:uf,head:nf,html:sf,tbody:df});function sf(e){let t=ae(e,-1);return!t||t.type!=="comment"}function nf(e){let t=new Set;for(let o of e.children)if(o.type==="element"&&(o.tagName==="base"||o.tagName==="title")){if(t.has(o.tagName))return!1;t.add(o.tagName)}let a=e.children[0];return!a||a.type==="element"}function lf(e){let t=ae(e,-1,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&ht(t.value.charAt(0)))&&!(t.type==="element"&&(t.tagName==="meta"||t.tagName==="link"||t.tagName==="script"||t.tagName==="style"||t.tagName==="template"))}function uf(e,t,a){let o=Ho(a,t),r=ae(e,-1,!0);return a&&o&&o.type==="element"&&o.tagName==="colgroup"&&Yt(o,a.children.indexOf(o),a)?!1:!!(r&&r.type==="element"&&r.tagName==="col")}function df(e,t,a){let o=Ho(a,t),r=ae(e,-1);return a&&o&&o.type==="element"&&(o.tagName==="thead"||o.tagName==="tbody")&&Yt(o,a.children.indexOf(o),a)?!1:!!(r&&r.type==="element"&&r.tagName==="tr")}var _a={name:[[`
|
|
71
71
|
\f\r &/=>`.split(""),`
|