@tea-agent/loop-agent 0.39.0-next.30 → 0.39.0-next.31
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/CHANGELOG.md +3 -0
- package/dist/build-stamp.json +2 -2
- package/dist/executors/pi-playwright-cli-tool.js +43 -11
- package/dist/shared/playwright-cli-command-policy.js +15 -0
- package/dist/task/source-prepare/parse-intent.js +24 -4
- package/dist/worker/console/dag-execution-receipt.js +33 -0
- package/dist/worker/console/operator-user-error.js +1 -1
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-CiGOV5eG.js → abnfDiagram-N423BO3Z-gauhD9kD.js} +1 -1
- package/dist/worker/console/static/assets/{arc-Ds9Gyfd8.js → arc-pm3c2Rsl.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-C6V6uC98.js → architectureDiagram-T3A2C74G-D_JAg3wH.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-DezF7Ol9.js → blockDiagram-VBNYF7ZC-Dk7-ex52.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-BCWk3gCT.js → c4Diagram-5PPSVZJV-Uval9oRI.js} +1 -1
- package/dist/worker/console/static/assets/channel-CVrnUdZl.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-DbYr-Cxy.js → chunk-2GRJ4B5K-BSYjHs-v.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-XSlusW4G.js → chunk-2Q5K7J3B-KGUuBXI8.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-BtcKAj9i.js → chunk-5RXB4S5H-JqAtxD9N.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BF57lhXj.js → chunk-5VM5RSS4-D6EJOVQK.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-DJIlR25o.js → chunk-6Q2QTUOP-B1JriSjm.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-DklNc7dm.js → chunk-GF5L2VYU-D62b96Jd.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-fZNtEdQZ.js → chunk-JWPE2WC7-BsNKEC_r.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-BBgLqV4h.js → chunk-KBJHAD2P-B56v6-ZP.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-Dl9e5n_J.js → chunk-RYQCIY6F-D2KPnd8K.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-B0JK51NT.js → chunk-XXDRQBXY-kzKSCaaL.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-aX91WTya.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-aX91WTya.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-Ch-ajv4O.js → cose-bilkent-JH36ORCC-C6N6KNJd.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-xn_NxcfB.js → cynefin-VYW2F7L2-DiyymT2D.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-DRD0fyga.js → cynefinDiagram-MW4NZA55-BeKAXvf3.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-COtnKp4B.js → dagre-VZM6K2ZE-TkIdXfPF.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-BQp_CAqG.js → diagram-7IWD3JNH-BFmSG3ks.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-x0y-vNgq.js → diagram-B4RE2ZJO-DqpJT2Fs.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-N2ezwL31.js → diagram-LBJQPF4R-r5ATN43t.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-CSaxRH6Q.js → diagram-Q27KOJAE-DEcSCMuR.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-6Ro7Kpbd.js → diagram-UB23O5K3-VOvYRLVc.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-CrIIQEAI.js → ebnfDiagram-BXEA7PRR-D7f4Cb1u.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-DivKcq8g.js → erDiagram-JOGREHBK-ziUf3U0G.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-BXrfDo8y.js → flowDiagram-UKHOOZJN-BoRdQ-1y.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-LTTQmMRJ.js → ganttDiagram-PKOTCBZU-B1-GncNm.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-DP3o_5qd.js → gitGraphDiagram-DS77QQ5N-CTW-ph8W.js} +1 -1
- package/dist/worker/console/static/assets/{index-C2jmYBfu.js → index-DEbyrEfW.js} +2 -2
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-wVfSY1WH.js → infoDiagram-6WML65LV-BFA337tZ.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-BRKfFL0I.js → ishikawaDiagram-WSZJBQD7-BtEujgRR.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-DEml3jLb.js → journeyDiagram-NVQOT4AX-C8ZwD2Jp.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-DTzBmOqN.js → kanban-definition-27J2QSJJ-Ck-z8B11.js} +1 -1
- package/dist/worker/console/static/assets/{linear-Cpy1d873.js → linear-CAyXjQjN.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-C1cSavOy.js → mermaid.core-CcWKn6tS.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-BEBSKvYM.js → mindmap-definition-FAOFIHXS-C2NuDO7E.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-BrLs4Oac.js → pegDiagram-VL7TDLO6-BFub3PDz.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-B47AZcLa.js → pieDiagram-7S7Q4E2Y-BJx5THZ5.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-s0dVeYR2.js → quadrantDiagram-CIZ2JOQS-DhalkDWV.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-lW8aJ7Q6.js → railroadDiagram-AXF67PYL-CVcBM36o.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-BcHJPf6Q.js → requirementDiagram-LRYGKXZP-D_vy4n0w.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-DdegpUUf.js → sankeyDiagram-W5VNT64P-DGYdJL1D.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-BxFWqNv8.js → sequenceDiagram-SI44F4Z6-C1xJFg3k.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-cOdUDPbR.js → sizeCapture-X5ZJPWSS-D_Fc43df.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-DpxlYl8P.js → stateDiagram-OKZ733FA-BhGbIjbu.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-DUt1lyFL.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-DQOfurE0.js → swimlanes-SLNWSIFB-DVkNcO-V.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BM6SGr7j.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-CIp3tC6V.js → timeline-definition-Z64GVDOM-BQU9ufV0.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-C-adIPKn.js → vennDiagram-T6HMQDX7-BCQhRmYB.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-CiYrar9M.js → wardleyDiagram-T6FBY63Y-DWerOyHO.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-WHrdTV0-.js → xychartDiagram-ELKLHX3M-DxLeebQU.js} +1 -1
- package/dist/worker/console/static/index.html +1 -1
- package/dist/worker/loop-agent/loop-agent-client.js +7 -3
- package/dist/worker/observe/static/views/failures.js +5 -2
- package/dist/workflows/dag/frontend-repair.js +14 -0
- package/dist/workflows/dag/frontend-risk.js +15 -2
- package/dist/workflows/dag/frontend-test-case-checklist.js +26 -2
- package/dist/workflows/dag/frontend-test-case-manifest.js +5 -0
- package/dist/workflows/dag/frontend-test-result-contract.js +151 -11
- package/dist/workflows/dag/frontend-verification-trace.js +29 -4
- package/dist/workflows/dag/init-hybrid.js +90 -14
- package/harness.json +2 -2
- package/package.json +1 -1
- package/skills/fe-test-ui-scout/SKILL.md +65 -0
- package/skills/fe-test-ui-scout/references/ledger-schema.md +62 -0
- package/skills/fe-test-ui-scout/references/recon-protocol.md +54 -0
- package/skills/playwright-cli/SKILL.md +22 -0
- package/skills/playwright-cli-case-generator/SKILL.md +20 -1
- package/dist/worker/console/static/assets/channel-DMvu1nmi.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-DVzM-02m.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-DVzM-02m.js +0 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BwecGAkM.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-D5WW_LbN.js +0 -8
|
@@ -302,7 +302,7 @@ l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
|
|
|
302
302
|
https://github.com/highlightjs/highlight.js/issues/2277`),kn=Re,Gt=Xe),kt===void 0&&(kt=!0);const Qn={code:Gt,language:kn};Oi("before:highlight",Qn);const kr=Qn.result?Qn.result:bn(Qn.language,Qn.code,kt);return kr.code=Qn.code,Oi("after:highlight",kr),kr}function bn(Re,Xe,kt,Gt){const kn=Object.create(null);function Qn(Le,Ge){return Le.keywords[Ge]}function kr(){if(!it.keywords){An.addText(Kt);return}let Le=0;it.keywordPatternRe.lastIndex=0;let Ge=it.keywordPatternRe.exec(Kt),ht="";for(;Ge;){ht+=Kt.substring(Le,Ge.index);const It=$n.case_insensitive?Ge[0].toLowerCase():Ge[0],hn=Qn(it,It);if(hn){const[qr,yl]=hn;if(An.addText(ht),ht="",kn[It]=(kn[It]||0)+1,kn[It]<=xt&&(Xa+=yl),qr.startsWith("_"))ht+=Ge[0];else{const Po=$n.classNameAliases[qr]||qr;Er(Ge[0],Po)}}else ht+=Ge[0];Le=it.keywordPatternRe.lastIndex,Ge=it.keywordPatternRe.exec(Kt)}ht+=Kt.substring(Le),An.addText(ht)}function fr(){if(Kt==="")return;let Le=null;if(typeof it.subLanguage=="string"){if(!xe[it.subLanguage]){An.addText(Kt);return}Le=bn(it.subLanguage,Kt,!0,Fo[it.subLanguage]),Fo[it.subLanguage]=Le._top}else Le=dr(Kt,it.subLanguage.length?it.subLanguage:null);it.relevance>0&&(Xa+=Le.relevance),An.__addSublanguage(Le._emitter,Le.language)}function ln(){it.subLanguage!=null?fr():kr(),Kt=""}function Er(Le,Ge){Le!==""&&(An.startScope(Ge),An.addText(Le),An.endScope())}function Uo(Le,Ge){let ht=1;const It=Ge.length-1;for(;ht<=It;){if(!Le._emit[ht]){ht++;continue}const hn=$n.classNameAliases[Le[ht]]||Le[ht],qr=Ge[ht];hn?Er(qr,hn):(Kt=qr,kr(),Kt=""),ht++}}function ms(Le,Ge){return Le.scope&&typeof Le.scope=="string"&&An.openNode($n.classNameAliases[Le.scope]||Le.scope),Le.beginScope&&(Le.beginScope._wrap?(Er(Kt,$n.classNameAliases[Le.beginScope._wrap]||Le.beginScope._wrap),Kt=""):Le.beginScope._multi&&(Uo(Le.beginScope,Ge),Kt="")),it=Object.create(Le,{parent:{value:it}}),it}function gl(Le,Ge,ht){let It=O(Le.endRe,ht);if(It){if(Le["on:end"]){const hn=new t(Le);Le["on:end"](Ge,hn),hn.isMatchIgnored&&(It=!1)}if(It){for(;Le.endsParent&&Le.parent;)Le=Le.parent;return Le}}if(Le.endsWithParent)return gl(Le.parent,Ge,ht)}function hs(Le){return it.matcher.regexIndex===0?(Kt+=Le[0],1):(Za=!0,0)}function d0(Le){const Ge=Le[0],ht=Le.rule,It=new t(ht),hn=[ht.__beforeBegin,ht["on:begin"]];for(const qr of hn)if(qr&&(qr(Le,It),It.isMatchIgnored))return hs(Ge);return ht.skip?Kt+=Ge:(ht.excludeBegin&&(Kt+=Ge),ln(),!ht.returnBegin&&!ht.excludeBegin&&(Kt=Ge)),ms(ht,Le),ht.returnBegin?0:Ge.length}function mr(Le){const Ge=Le[0],ht=Xe.substring(Le.index),It=gl(it,Le,ht);if(!It)return Ve;const hn=it;it.endScope&&it.endScope._wrap?(ln(),Er(Ge,it.endScope._wrap)):it.endScope&&it.endScope._multi?(ln(),Uo(it.endScope,Le)):hn.skip?Kt+=Ge:(hn.returnEnd||hn.excludeEnd||(Kt+=Ge),ln(),hn.excludeEnd&&(Kt=Ge));do it.scope&&An.closeNode(),!it.skip&&!it.subLanguage&&(Xa+=it.relevance),it=it.parent;while(it!==It.parent);return It.starts&&ms(It.starts,Le),hn.returnEnd?0:Ge.length}function bl(){const Le=[];for(let Ge=it;Ge!==$n;Ge=Ge.parent)Ge.scope&&Le.unshift(Ge.scope);Le.forEach(Ge=>An.openNode(Ge))}let Di={};function ps(Le,Ge){const ht=Ge&&Ge[0];if(Kt+=Le,ht==null)return ln(),0;if(Di.type==="begin"&&Ge.type==="end"&&Di.index===Ge.index&&ht===""){if(Kt+=Xe.slice(Ge.index,Ge.index+1),!gt){const It=new Error(`0 width match regex (${Re})`);throw It.languageName=Re,It.badRule=Di.rule,It}return 1}if(Di=Ge,Ge.type==="begin")return d0(Ge);if(Ge.type==="illegal"&&!kt){const It=new Error('Illegal lexeme "'+ht+'" for mode "'+(it.scope||"<unnamed>")+'"');throw It.mode=it,It}else if(Ge.type==="end"){const It=mr(Ge);if(It!==Ve)return It}if(Ge.type==="illegal"&&ht==="")return Ge.index===Xe.length||(Kt+=`
|
|
303
303
|
`),1;if(vl>1e5&&vl>Ge.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Kt+=ht,ht.length}const $n=ar(Re);if(!$n)throw Fe(ue.replace("{}",Re)),new Error('Unknown language: "'+Re+'"');const Ho=Pt($n);let gs="",it=Gt||Ho;const Fo={},An=new Oe.__emitter(Oe);bl();let Kt="",Xa=0,va=0,vl=0,Za=!1;try{if($n.__emitTokens)$n.__emitTokens(Xe,An);else{for(it.matcher.considerAll();;){vl++,Za?Za=!1:it.matcher.considerAll(),it.matcher.lastIndex=va;const Le=it.matcher.exec(Xe);if(!Le)break;const Ge=Xe.substring(va,Le.index),ht=ps(Ge,Le);va=Le.index+ht}ps(Xe.substring(va))}return An.finalize(),gs=An.toHTML(),{language:Re,value:gs,relevance:Xa,illegal:!1,_emitter:An,_top:it}}catch(Le){if(Le.message&&Le.message.includes("Illegal"))return{language:Re,value:Sn(Xe),illegal:!0,relevance:0,_illegalBy:{message:Le.message,index:va,context:Xe.slice(va-100,va+100),mode:Le.mode,resultSoFar:gs},_emitter:An};if(gt)return{language:Re,value:Sn(Xe),illegal:!1,relevance:0,errorRaised:Le,_emitter:An,_top:it};throw Le}}function Zn(Re){const Xe={value:Sn(Re),illegal:!1,relevance:0,_top:Ee,_emitter:new Oe.__emitter(Oe)};return Xe._emitter.addText(Re),Xe}function dr(Re,Xe){Xe=Xe||Oe.languages||Object.keys(xe);const kt=Zn(Re),Gt=Xe.filter(ar).filter(Va).map(ln=>bn(ln,Re,!1));Gt.unshift(kt);const kn=Gt.sort((ln,Er)=>{if(ln.relevance!==Er.relevance)return Er.relevance-ln.relevance;if(ln.language&&Er.language){if(ar(ln.language).supersetOf===Er.language)return 1;if(ar(Er.language).supersetOf===ln.language)return-1}return 0}),[Qn,kr]=kn,fr=Qn;return fr.secondBest=kr,fr}function Cn(Re,Xe,kt){const Gt=Xe&&je[Xe]||kt;Re.classList.add("hljs"),Re.classList.add(`language-${Gt}`)}function sn(Re){let Xe=null;const kt=jt(Re);if(Ue(kt))return;if(Oi("before:highlightElement",{el:Re,language:kt}),Re.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Re);return}if(Re.children.length>0&&(Oe.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(Re)),Oe.throwUnescapedHTML))throw new Xn("One of your code blocks includes unescaped HTML.",Re.innerHTML);Xe=Re;const Gt=Xe.textContent,kn=kt?_t(Gt,{language:kt,ignoreIllegals:!0}):dr(Gt);Re.innerHTML=kn.value,Re.dataset.highlighted="yes",Cn(Re,kt,kn.language),Re.result={language:kn.language,re:kn.relevance,relevance:kn.relevance},kn.secondBest&&(Re.secondBest={language:kn.secondBest.language,relevance:kn.secondBest.relevance}),Oi("after:highlightElement",{el:Re,result:kn,text:Gt})}function Wn(Re){Oe=st(Oe,Re)}const Ka=()=>{fs(),he("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function hl(){fs(),he("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let zo=!1;function fs(){function Re(){fs()}if(document.readyState==="loading"){zo||window.addEventListener("DOMContentLoaded",Re,!1),zo=!0;return}document.querySelectorAll(Oe.cssSelector).forEach(sn)}function Bo(Re,Xe){let kt=null;try{kt=Xe(Z)}catch(Gt){if(Fe("Language definition for '{}' could not be registered.".replace("{}",Re)),gt)Fe(Gt);else throw Gt;kt=Ee}kt.name||(kt.name=Re),xe[Re]=kt,kt.rawDefinition=Xe.bind(null,Z),kt.aliases&&ga(kt.aliases,{languageName:Re})}function Mi(Re){delete xe[Re];for(const Xe of Object.keys(je))je[Xe]===Re&&delete je[Xe]}function pl(){return Object.keys(xe)}function ar(Re){return Re=(Re||"").toLowerCase(),xe[Re]||xe[je[Re]]}function ga(Re,{languageName:Xe}){typeof Re=="string"&&(Re=[Re]),Re.forEach(kt=>{je[kt.toLowerCase()]=Xe})}function Va(Re){const Xe=ar(Re);return Xe&&!Xe.disableAutodetect}function Ya(Re){Re["before:highlightBlock"]&&!Re["before:highlightElement"]&&(Re["before:highlightElement"]=Xe=>{Re["before:highlightBlock"](Object.assign({block:Xe.el},Xe))}),Re["after:highlightBlock"]&&!Re["after:highlightElement"]&&(Re["after:highlightElement"]=Xe=>{Re["after:highlightBlock"](Object.assign({block:Xe.el},Xe))})}function Rn(Re){Ya(Re),et.push(Re)}function qo(Re){const Xe=et.indexOf(Re);Xe!==-1&&et.splice(Xe,1)}function Oi(Re,Xe){const kt=Re;et.forEach(function(Gt){Gt[kt]&&Gt[kt](Xe)})}function ba(Re){return he("10.7.0","highlightBlock will be removed entirely in v12.0"),he("10.7.0","Please use highlightElement now."),sn(Re)}Object.assign(Z,{highlight:_t,highlightAuto:dr,highlightAll:fs,highlightElement:sn,highlightBlock:ba,configure:Wn,initHighlighting:Ka,initHighlightingOnLoad:hl,registerLanguage:Bo,unregisterLanguage:Mi,listLanguages:pl,getLanguage:ar,registerAliases:ga,autoDetection:Va,inherit:st,addPlugin:Rn,removePlugin:qo}),Z.debugMode=function(){gt=!1},Z.safeMode=function(){gt=!0},Z.versionString=yt,Z.regex={concat:N,lookahead:x,either:C,optional:E,anyNumberOfTimes:y};for(const Re in ze)typeof ze[Re]=="object"&&e(ze[Re]);return Object.assign(Z,ze),Z},Wt=Dt({});return Wt.newInstance=()=>Dt({}),nm=Wt,Wt.HighlightJS=Wt,Wt.default=Wt,nm}var rm,py;function BA(){if(py)return rm;py=1;function e(t){const n=t.regex,a=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,l={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},d=t.inherit(c,{begin:/\(/,end:/\)/}),m=t.inherit(t.APOS_STRING_MODE,{className:"string"}),h=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),p={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[l]},{begin:/'/,end:/'/,contains:[l]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[c,h,m,d,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[c,d,h,m]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},l,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[h]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[p],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[p],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(a,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:p}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}return rm=e,rm}var am,gy;function qA(){if(gy)return am;gy=1;function e(t){const n=t.regex,a={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[a]}]};Object.assign(a,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});const l={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),d={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},m={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,a,l]};l.contains.push(m);const h={match:/\\"/},p={className:"string",begin:/'/,end:/'/},b={match:/\\'/},x={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,a]},y=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],E=t.SHEBANG({binary:`(${y.join("|")})`,relevance:10}),N={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},A=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],C=["true","false"],I={match:/(\/[a-z._-]+)+/},O=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],G=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],j=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],R=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:A,literal:C,built_in:[...O,...G,"set","shopt",...j,...R]},contains:[E,t.SHEBANG(),N,x,c,d,I,m,h,p,b,a]}}return am=e,am}var im,by;function UA(){if(by)return im;by=1;function e(t){const n=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",l="[a-zA-Z_]\\w*::",d="("+s+"|"+n.optional(l)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",m={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},p={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},b={className:"number",variants:[{match:/\b(0b[01']+)/},{match:/(-?)\b([\d']+(\.[\d']*)?|\.[\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)/},{match:/(-?)\b(0[xX][a-fA-F0-9]+(?:'[a-fA-F0-9]+)*(?:\.[a-fA-F0-9]*(?:'[a-fA-F0-9]*)*)?(?:[pP][-+]?[0-9]+)?(l|L)?(u|U)?)/},{match:/(-?)\b\d+(?:'\d+)*(?:\.\d*(?:'\d*)*)?(?:[eE][-+]?\d+)?/}],relevance:0},x={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef elifdef elifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(p,{className:"string"}),{className:"string",begin:/<.*?>/},a,t.C_BLOCK_COMMENT_MODE]},y={className:"title",begin:n.optional(l)+t.IDENT_RE,relevance:0},E=n.optional(l)+t.IDENT_RE+"\\s*\\(",C={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","typeof","typeof_unqual","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_BitInt","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal96","_Decimal128","_Decimal64x","_Decimal128x","_Float16","_Float32","_Float64","_Float128","_Float32x","_Float64x","_Float128x","const","static","constexpr","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},I=[x,m,a,t.C_BLOCK_COMMENT_MODE,b,p],O={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:C,contains:I.concat([{begin:/\(/,end:/\)/,keywords:C,contains:I.concat(["self"]),relevance:0}]),relevance:0},G={begin:"("+d+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:C,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:C,relevance:0},{begin:E,returnBegin:!0,contains:[t.inherit(y,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,p,b,m,{begin:/\(/,end:/\)/,keywords:C,relevance:0,contains:["self",a,t.C_BLOCK_COMMENT_MODE,p,b,m]}]},m,a,t.C_BLOCK_COMMENT_MODE,x]};return{name:"C",aliases:["h"],keywords:C,disableAutodetect:!0,illegal:"</",contains:[].concat(O,G,I,[x,{begin:t.IDENT_RE+"::",keywords:C},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:x,strings:p,keywords:C}}}return im=e,im}var sm,vy;function HA(){if(vy)return sm;vy=1;function e(t){const n=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",l="[a-zA-Z_]\\w*::",d="(?!struct)("+s+"|"+n.optional(l)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",m={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},p={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)"+"|.)",end:"'",illegal:"."},t.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},b={className:"number",variants:[{begin:"[+-]?(?:(?:[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?|\\.[0-9](?:'?[0-9])*)(?:[Ee][+-]?[0-9](?:'?[0-9])*)?|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*|0[Xx](?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)[Pp][+-]?[0-9](?:'?[0-9])*)(?:[Ff](?:16|32|64|128)?|(BF|bf)16|[Ll]|)"},{begin:"[+-]?\\b(?:0[Bb][01](?:'?[01])*|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*|0(?:'?[0-7])*|[1-9](?:'?[0-9])*)(?:[Uu](?:LL?|ll?)|[Uu][Zz]?|(?:LL?|ll?)[Uu]?|[Zz][Uu]|)"}],relevance:0},x={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(p,{className:"string"}),{className:"string",begin:/<.*?>/},a,t.C_BLOCK_COMMENT_MODE]},y={className:"title",begin:n.optional(l)+t.IDENT_RE,relevance:0},E=n.optional(l)+t.IDENT_RE+"\\s*\\(",N=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],A=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],C=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","flat_map","flat_set","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],I=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],j={type:A,keyword:N,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:C},R={className:"function.dispatch",relevance:0,keywords:{_hint:I},begin:n.concat(/\b/,`(?!${N.join("|")})`,t.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},U=[R,x,m,a,t.C_BLOCK_COMMENT_MODE,b,p],W={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:j,contains:U.concat([{begin:/\(/,end:/\)/,keywords:j,contains:U.concat(["self"]),relevance:0}]),relevance:0},Q={className:"function",begin:"("+d+"[\\*&\\s]+)+"+E,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:j,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:j,relevance:0},{begin:E,returnBegin:!0,contains:[y],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[p,b]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:j,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,p,b,m,{begin:/\(/,end:/\)/,keywords:j,relevance:0,contains:["self",a,t.C_BLOCK_COMMENT_MODE,p,b,m]}]},m,a,t.C_BLOCK_COMMENT_MODE,x]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:j,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat(W,Q,R,U,[x,{begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)",end:">",keywords:j,contains:["self",m]},{begin:t.IDENT_RE+"::",keywords:j},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}return sm=e,sm}var lm,yy;function FA(){if(yy)return lm;yy=1;function e(t){const n=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],a=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],s=["default","false","null","true"],l=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],c=["add","alias","and","ascending","args","async","await","by","descending","dynamic","equals","file","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","record","remove","required","scoped","select","set","unmanaged","value|0","var","when","where","with","yield"],d={keyword:l.concat(c),built_in:n,literal:s},m=t.inherit(t.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),h={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9'_]+|(\\b[\\d'_]+(\\.[\\d'_]*)?|\\.[\\d'_]+)([eE][-+]?[\\d'_]+)?)"}],relevance:0},p={className:"string",begin:/"""("*)(?!")(.|\n)*?"""\1/,relevance:1},b={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},x=t.inherit(b,{illegal:/\n/}),y={className:"subst",begin:/\{/,end:/\}/,keywords:d},E=t.inherit(y,{illegal:/\n/}),N={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,E]},A={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},y]},C=t.inherit(A,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},E]});y.contains=[A,N,b,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.C_BLOCK_COMMENT_MODE],E.contains=[C,N,x,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const I={variants:[p,A,N,b,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},O={begin:"<",end:">",contains:[{beginKeywords:"in out"},m]},G=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",j={begin:"@"+t.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:d,illegal:/::/,contains:[t.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:"<!--|-->"},{begin:"</?",end:">"}]}]}),t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},I,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},m,O,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[m,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[m,O,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+G+"\\s+)+"+t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:d,contains:[{beginKeywords:a.join(" "),relevance:0},{begin:t.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[t.TITLE_MODE,O],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,relevance:0,contains:[I,h,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},j]}}return lm=e,lm}var om,xy;function PA(){if(xy)return om;xy=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],a=[...t,...n],s=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),l=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function m(h){const p=h.regex,b=e(h),x={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},y="and or not only",E=/@-?\w[\w]*(-\w+)*/,N="[a-zA-Z-][a-zA-Z0-9_-]*",A=[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[b.BLOCK_COMMENT,x,b.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+N,relevance:0},b.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+l.join("|")+")"},{begin:":(:)?("+c.join("|")+")"}]},b.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[b.BLOCK_COMMENT,b.HEXCOLOR,b.IMPORTANT,b.CSS_NUMBER_MODE,b.UNICODE_RANGE,...A,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...A,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},b.FUNCTION_DISPATCH]},{begin:p.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:E},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:y,attribute:s.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...A,b.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b"}]}}return om=m,om}var cm,wy;function $A(){if(wy)return cm;wy=1;function e(t){const n=t.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={begin:"^[-\\*]{3,}",end:"$"},l={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},d={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},m=/[A-Za-z][A-Za-z0-9+.-]*/,h={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:n.concat(/\[.+?\]\(/,m,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},p={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},b={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},x=t.inherit(p,{contains:[]}),y=t.inherit(b,{contains:[]});p.contains.push(y),b.contains.push(x);let E=[a,h];return[p,b,x,y].forEach(I=>{I.contains=I.contains.concat(E)}),E=E.concat(p,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:E},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:E}]}]},a,c,p,b,{className:"quote",begin:"^>\\s+",contains:E,end:"$"},l,s,h,d,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}return cm=e,cm}var um,Sy;function GA(){if(Sy)return um;Sy=1;function e(t){const n=t.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}return um=e,um}var dm,ky;function KA(){if(ky)return dm;ky=1;function e(t){const n=t.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),l=n.concat(s,/(::\w+)*/),d={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},m={className:"doctag",begin:"@[A-Za-z]+"},h={begin:"#<",end:">"},p=[t.COMMENT("#","$",{contains:[m]}),t.COMMENT("^=begin","^=end",{contains:[m],relevance:10}),t.COMMENT("^__END__",t.MATCH_NOTHING_RE)],b={className:"subst",begin:/#\{/,end:/\}/,keywords:d},x={className:"string",contains:[t.BACKSLASH_ESCAPE,b],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[t.BACKSLASH_ESCAPE,b]})]}]},y="[1-9](_?[0-9])*|0",E="[0-9](_?[0-9])*",N={className:"number",relevance:0,variants:[{begin:`\\b(${y})(\\.(${E}))?([eE][+-]?(${E})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},A={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},U=[x,{variants:[{match:[/class\s+/,l,/\s+<\s+/,l]},{match:[/\b(class|module)\s+/,l]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,l],scope:{2:"title.class"},keywords:d},{relevance:0,match:[l,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[A]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[x,{begin:a}],relevance:0},N,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:d},{begin:"("+t.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[t.BACKSLASH_ESCAPE,b],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(h,p),relevance:0}].concat(h,p);b.contains=U,A.contains=U;const H=[{begin:/^\s*=>/,starts:{end:"$",contains:U}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:d,contains:U}}];return p.unshift(h),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat(H).concat(p).concat(U)}}return dm=e,dm}var fm,Ey;function VA(){if(Ey)return fm;Ey=1;function e(t){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",variants:[t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:c,illegal:/["']/}]}]}}return fm=e,fm}var mm,Ty;function YA(){if(Ty)return mm;Ty=1;function e(t){const n=t.regex,a=/[_A-Za-z][_0-9A-Za-z]*/;return{name:"GraphQL",aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],literal:["true","false","null"]},contains:[t.HASH_COMMENT_MODE,t.QUOTE_STRING_MODE,t.NUMBER_MODE,{scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{scope:"symbol",begin:n.concat(a,n.lookahead(/\s*:/)),relevance:0}],illegal:[/[;<']/,/BEGIN/]}}return mm=e,mm}var hm,Ny;function XA(){if(Ny)return hm;Ny=1;function e(t){const n=t.regex,a={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:t.NUMBER_RE}]},s=t.COMMENT();s.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const l={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},c={className:"literal",begin:/\bon|off|true|false|yes|no\b/},d={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},m={begin:/\[/,end:/\]/,contains:[s,c,l,d,a,"self"],relevance:0},h=/[A-Za-z0-9_-]+/,p=/"(\\"|[^"])*"/,b=/'[^']*'/,x=n.either(h,p,b),y=n.concat(x,"(\\s*\\.\\s*",x,")*",n.lookahead(/\s*=\s*[^#\s]/));return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[s,{className:"section",begin:/\[+/,end:/\]+/},{begin:y,className:"attr",starts:{end:/$/,contains:[s,m,c,l,d,a]}}]}}return hm=e,hm}var pm,Cy;function ZA(){if(Cy)return pm;Cy=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function s(c,d,m){return m===-1?"":c.replace(d,h=>s(c,d,m-1))}function l(c){const d=c.regex,m="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",h=m+s("(?:<"+m+"~~~(?:\\s*,\\s*"+m+"~~~)*>)?",/~~~/g,2),E={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},N={className:"meta",begin:"@"+m,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},A={className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[c.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:E,illegal:/<\/|#/,contains:[c.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[c.BACKSLASH_ESCAPE]},c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,m],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[d.concat(/(?!else)/,m),/\s+/,m,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,m],className:{1:"keyword",3:"title.class"},contains:[A,c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+h+"\\s+)",c.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:E,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:E,relevance:0,contains:[N,c.APOS_STRING_MODE,c.QUOTE_STRING_MODE,a,c.C_BLOCK_COMMENT_MODE]},c.C_LINE_COMMENT_MODE,c.C_BLOCK_COMMENT_MODE]},a,N]}}return pm=l,pm}var gm,Ry;function WA(){if(Ry)return gm;Ry=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],n=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],l=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(l,a,s);function m(h){const p=h.regex,b=(ae,{after:we})=>{const ge="</"+ae[0].slice(1);return ae.input.indexOf(ge,we)!==-1},x=e,y={begin:"<>",end:"</>"},E=/<[A-Za-z0-9\\._:-]+\s*\/>/,N={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(ae,we)=>{const ge=ae[0].length+ae.index,ze=ae.input[ge];if(ze==="<"||ze===","){we.ignoreMatch();return}ze===">"&&(b(ae,{after:ge})||we.ignoreMatch());let Me;const Se=ae.input.substring(ge);if(Me=Se.match(/^\s*=/)){we.ignoreMatch();return}if((Me=Se.match(/^\s+extends\s+/))&&Me.index===0){we.ignoreMatch();return}}},A={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},C="[0-9](_?[0-9])*",I=`\\.(${C})`,O="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",G={className:"number",variants:[{begin:`(\\b(${O})((${I})|\\.)?|(${I}))[eE][+-]?(${C})\\b`},{begin:`\\b(${O})\\b((${I})\\b|\\.)?|(${I})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},j={className:"subst",begin:"\\$\\{",end:"\\}",keywords:A,contains:[]},R={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,j],subLanguage:"xml"}},U={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,j],subLanguage:"css"}},W={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,j],subLanguage:"graphql"}},Q={className:"string",begin:"`",end:"`",contains:[h.BACKSLASH_ESCAPE,j]},H={className:"comment",variants:[h.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:x+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),h.C_BLOCK_COMMENT_MODE,h.C_LINE_COMMENT_MODE]},F=[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,R,U,W,Q,{match:/\$\d+/},G];j.contains=F.concat({begin:/\{/,end:/\}/,keywords:A,contains:["self"].concat(F)});const te=[].concat(H,j.contains),K=te.concat([{begin:/(\s*)\(/,end:/\)/,keywords:A,contains:["self"].concat(te)}]),V={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:A,contains:K},$={variants:[{match:[/class/,/\s+/,x,/\s+/,/extends/,/\s+/,p.concat(x,"(",p.concat(/\./,x),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,x],scope:{1:"keyword",3:"title.class"}}]},ee={relevance:0,match:p.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...s]}},oe={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},ce={variants:[{match:[/function/,/\s+/,x,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[V],illegal:/%/},L={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function D(ae){return p.concat("(?!",ae.join("|"),")")}const P={match:p.concat(/\b/,D([...l,"super","import","await"].map(ae=>`${ae}\\s*\\(`)),x,p.lookahead(/\s*\(/)),className:"title.function",relevance:0},_={begin:p.concat(/\./,p.lookahead(p.concat(x,/(?![0-9A-Za-z$_(])/))),end:x,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},ne={match:[/get|set/,/\s+/,x,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},V]},de="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+h.UNDERSCORE_IDENT_RE+")\\s*=>",se={match:[/const|var|let/,/\s+/,x,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(de)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[V]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:A,exports:{PARAMS_CONTAINS:K,CLASS_REFERENCE:ee},illegal:/#(?![$_A-Za-z])/,contains:[h.SHEBANG({label:"shebang",binary:"node",relevance:5}),oe,h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,R,U,W,Q,H,{match:/\$\d+/},G,ee,{scope:"attr",match:x+p.lookahead(":"),relevance:0},se,{begin:"("+h.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[H,h.REGEXP_MODE,{className:"function",begin:de,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:h.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:A,contains:K}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:y.begin,end:y.end},{match:E},{begin:N.begin,"on:begin":N.isTrulyOpeningTag,end:N.end}],subLanguage:"xml",contains:[{begin:N.begin,end:N.end,skip:!0,contains:["self"]}]}]},ce,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+h.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[V,h.inherit(h.TITLE_MODE,{begin:x,className:"title.function"})]},{match:/\.\.\./,relevance:0},_,{match:"\\$"+x,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[V]},P,L,$,ne,{match:/\$[(.]/}]}}return gm=m,gm}var bm,Ay;function QA(){if(Ay)return bm;Ay=1;const t={scope:"number",match:"([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",relevance:0};function n(a){const s={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},l={match:/[{}[\],:]/,className:"punctuation",relevance:0},c=["true","false","null"],d={scope:"literal",beginKeywords:c.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:c},contains:[s,l,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,d,t,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}return bm=n,bm}var vm,_y;function JA(){if(_y)return vm;_y=1;var e="[0-9](_*[0-9])*",t=`\\.(${e})`,n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={className:"number",variants:[{begin:`(\\b(${e})((${t})|\\.)?|(${t}))[eE][+-]?(${e})[fFdD]?\\b`},{begin:`\\b(${e})((${t})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${t})[fFdD]?\\b`},{begin:`\\b(${e})[fFdD]\\b`},{begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?(${e})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function s(l){const c={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},d={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},m={className:"symbol",begin:l.UNDERSCORE_IDENT_RE+"@"},h={className:"subst",begin:/\$\{/,end:/\}/,contains:[l.C_NUMBER_MODE]},p={className:"variable",begin:"\\$"+l.UNDERSCORE_IDENT_RE},b={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[p,h]},{begin:"'",end:"'",illegal:/\n/,contains:[l.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[l.BACKSLASH_ESCAPE,p,h]}]};h.contains.push(b);const x={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+l.UNDERSCORE_IDENT_RE+")?"},y={className:"meta",begin:"@"+l.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[l.inherit(b,{className:"string"}),"self"]}]},E=a,N=l.COMMENT("/\\*","\\*/",{contains:[l.C_BLOCK_COMMENT_MODE]}),A={variants:[{className:"type",begin:l.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},C=A;return C.variants[1].contains=[A],A.variants[1].contains=[C],{name:"Kotlin",aliases:["kt","kts"],keywords:c,contains:[l.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),l.C_LINE_COMMENT_MODE,N,d,m,x,y,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:c,relevance:5,contains:[{begin:l.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[l.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:c,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[A,l.C_LINE_COMMENT_MODE,N],relevance:0},l.C_LINE_COMMENT_MODE,N,x,y,b,l.C_NUMBER_MODE]},N]},{begin:[/class|interface|trait/,/\s+/,l.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},l.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},x,y]},b,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:`
|
|
304
304
|
`},E]}}return vm=s,vm}var ym,Iy;function e_(){if(Iy)return ym;Iy=1;const e=p=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:p.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[p.APOS_STRING_MODE,p.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:p.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],a=[...t,...n],s=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),l=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse(),m=l.concat(c).sort().reverse();function h(p){const b=e(p),x=m,y="and or not only",E="[\\w-]+",N="("+E+"|@\\{"+E+"\\})",A=[],C=[],I=function(te){return{className:"string",begin:"~?"+te+".*?"+te}},O=function(te,K,V){return{className:te,begin:K,relevance:V}},G={$pattern:/[a-z-]+/,keyword:y,attribute:s.join(" ")},j={begin:"\\(",end:"\\)",contains:C,keywords:G,relevance:0};C.push(p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,I("'"),I('"'),b.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},b.UNICODE_RANGE,b.HEXCOLOR,j,O("variable","@@?"+E,10),O("variable","@\\{"+E+"\\}"),O("built_in","~?`[^`]*?`"),{className:"attribute",begin:E+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},b.IMPORTANT,{beginKeywords:"and not"},b.FUNCTION_DISPATCH);const R=C.concat({begin:/\{/,end:/\}/,contains:A}),U={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(C)},W={begin:N+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},b.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:C}}]},Q={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:G,returnEnd:!0,contains:C,relevance:0}},B={className:"variable",variants:[{begin:"@"+E+"\\s*:",relevance:15},{begin:"@"+E}],starts:{end:"[;}]",returnEnd:!0,contains:R}},H={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:N,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,U,O("keyword","all\\b"),O("variable","@\\{"+E+"\\}"),{begin:"\\b("+a.join("|")+")\\b",className:"selector-tag"},b.CSS_NUMBER_MODE,O("selector-tag",N,0),O("selector-id","#"+N),O("selector-class","\\."+N,0),O("selector-tag","&",0),b.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+l.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+c.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:R},{begin:"!important"},b.FUNCTION_DISPATCH]},F={begin:E+`:(:)?(${x.join("|")})`,returnBegin:!0,contains:[H]};return A.push(p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,Q,B,F,W,H,U,b.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:A}}return ym=h,ym}var xm,My;function t_(){if(My)return xm;My=1;function e(t){const n="\\[=*\\[",a="\\]=*\\]",s={begin:n,end:a,contains:["self"]},l=[t.COMMENT("--(?!"+n+")","$"),t.COMMENT("--"+n,a,{contains:[s],relevance:10})];return{name:"Lua",aliases:["pluto"],keywords:{$pattern:t.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:l.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[t.inherit(t.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:l}].concat(l)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:n,end:a,contains:[s],relevance:5}])}}return xm=e,xm}var wm,Oy;function n_(){if(Oy)return wm;Oy=1;function e(t){const n={className:"variable",variants:[{begin:"\\$\\("+t.UNDERSCORE_IDENT_RE+"\\)",contains:[t.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,n]},s={className:"variable",begin:/\$\([\w-]+\s/,end:/\)/,keywords:{built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"},contains:[n,a]},l={begin:"^"+t.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},c={className:"meta",begin:/^\.PHONY:/,end:/$/,keywords:{$pattern:/[\.\w]+/,keyword:".PHONY"}},d={className:"section",begin:/^[^\s]+:/,end:/$/,contains:[n]};return{name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"},contains:[t.HASH_COMMENT_MODE,n,a,s,l,c,d]}}return wm=e,wm}var Sm,Dy;function r_(){if(Dy)return Sm;Dy=1;function e(t){const n=t.regex,a=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","class","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","field","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","method","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],s=/[dualxmsipngr]{0,12}/,l={$pattern:/[\w.]+/,keyword:a.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:l},d={begin:/->\{/,end:/\}/},m={scope:"attr",match:/\s+:\s*\w+(\s*\(.*?\))?/},h={scope:"variable",variants:[{begin:/\$\d/},{begin:n.concat(/[$%@](?!")(\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@](?!")[^\s\w{=]|\$=/,relevance:0}],contains:[m]},p={className:"number",variants:[{match:/0?\.[0-9][0-9_]+\b/},{match:/\bv?(0|[1-9][0-9_]*(\.[0-9_]+)?|[1-9][0-9_]*)\b/},{match:/\b0[0-7][0-7_]*\b/},{match:/\b0x[0-9a-fA-F][0-9a-fA-F_]*\b/},{match:/\b0b[0-1][0-1_]*\b/}],relevance:0},b=[t.BACKSLASH_ESCAPE,c,h],x=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],y=(A,C,I="\\1")=>{const O=I==="\\1"?I:n.concat(I,C);return n.concat(n.concat("(?:",A,")"),C,/(?:\\.|[^\\\/])*?/,O,/(?:\\.|[^\\\/])*?/,I,s)},E=(A,C,I)=>n.concat(n.concat("(?:",A,")"),C,/(?:\\.|[^\\\/])*?/,I,s),N=[h,t.HASH_COMMENT_MODE,t.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),d,{className:"string",contains:b,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[t.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},p,{begin:"(\\/\\/|"+t.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[t.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:y("s|tr|y",n.either(...x,{capture:!0}))},{begin:y("s|tr|y","\\(","\\)")},{begin:y("s|tr|y","\\[","\\]")},{begin:y("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:E("(?:m|qr)?",/\//,/\//)},{begin:E("m|qr",n.either(...x,{capture:!0}),/\1/)},{begin:E("m|qr",/\(/,/\)/)},{begin:E("m|qr",/\[/,/\]/)},{begin:E("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub method",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,m]},{className:"class",beginKeywords:"class",end:"[;{]",excludeEnd:!0,relevance:5,contains:[t.TITLE_MODE,m,p]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return c.contains=N,d.contains=N,{name:"Perl",aliases:["pl","pm"],keywords:l,contains:N}}return Sm=e,Sm}var km,jy;function a_(){if(jy)return km;jy=1;function e(t){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},a=/[a-zA-Z@][a-zA-Z0-9_]*/,m={"variable.language":["this","super"],$pattern:a,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},h={$pattern:a,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:m,illegal:"</",contains:[n,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,t.C_NUMBER_MODE,t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[t.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),{className:"string",begin:/<.*?>/,end:/$/,illegal:"\\n"},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+h.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:h,contains:[t.UNDERSCORE_TITLE_MODE]},{begin:"\\."+t.UNDERSCORE_IDENT_RE,relevance:0}]}}return km=e,km}var Em,Ly;function i_(){if(Ly)return Em;Ly=1;function e(t){const n=t.regex,a=/(?![A-Za-z0-9])(?![$])/,s=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,a),l=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,a),c=n.concat(/[A-Z]+/,a),d={scope:"variable",match:"\\$+"+s},m={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},h={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},p=t.inherit(t.APOS_STRING_MODE,{illegal:null}),b=t.inherit(t.QUOTE_STRING_MODE,{illegal:null,contains:t.QUOTE_STRING_MODE.contains.concat(h)}),x={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:t.QUOTE_STRING_MODE.contains.concat(h),"on:begin":(V,$)=>{$.data._beginMatch=V[1]||V[2]},"on:end":(V,$)=>{$.data._beginMatch!==V[1]&&$.ignoreMatch()}},y=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),E=`[
|
|
305
|
-
]`,N={scope:"string",variants:[b,p,x,y]},A={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},C=["false","null","true"],I=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],O=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],j={keyword:I,literal:(V=>{const $=[];return V.forEach(ee=>{$.push(ee),ee.toLowerCase()===ee?$.push(ee.toUpperCase()):$.push(ee.toLowerCase())}),$})(C),built_in:O},R=V=>V.map($=>$.replace(/\|\d+$/,"")),U={variants:[{match:[/new/,n.concat(E,"+"),n.concat("(?!",R(O).join("\\b|"),"\\b)"),l],scope:{1:"keyword",4:"title.class"}}]},W=n.concat(s,"\\b(?!\\()"),Q={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),W],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[l,n.concat(/::/,n.lookahead(/(?!class\b)/)),W],scope:{1:"title.class",3:"variable.constant"}},{match:[l,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[l,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},B={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},H={relevance:0,begin:/\(/,end:/\)/,keywords:j,contains:[B,d,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A,U]},F={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",R(I).join("\\b|"),"|",R(O).join("\\b|"),"\\b)"),s,n.concat(E,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[H]};H.contains.push(F);const te=[B,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A,U],K={begin:n.concat(/#\[\s*\\?/,n.either(l,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:C,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:C,keyword:["new","array"]},contains:["self",...te]},...te,{scope:"meta",variants:[{match:l},{match:c}]}]};return{case_insensitive:!1,keywords:j,contains:[K,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},m,{scope:"variable.language",match:/\$this\b/},d,F,Q,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},U,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:j,contains:["self",K,d,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},N,A]}}return Em=e,Em}var Tm,zy;function s_(){if(zy)return Tm;zy=1;function e(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}return Tm=e,Tm}var Nm,By;function l_(){if(By)return Nm;By=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return Nm=e,Nm}var Cm,qy;function o_(){if(qy)return Cm;qy=1;function e(t){const n=t.regex,a=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],m={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},h={className:"meta",begin:/^(>>>|\.\.\.) /},p={className:"subst",begin:/\{/,end:/\}/,keywords:m,illegal:/#/},b={begin:/\{\{/,relevance:0},x={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h,b,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h,b,p]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,b,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,b,p]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},y="[0-9](_?[0-9])*",E=`(\\b(${y}))?\\.(${y})|\\b(${y})\\.`,N=`\\b|${s.join("|")}`,A={className:"number",relevance:0,variants:[{begin:`(\\b(${y})|(${E}))[eE][+-]?(${y})[jJ]?(?=${N})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${y})[jJ](?=${N})`}]},C={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:m,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},I={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:["self",h,A,x,t.HASH_COMMENT_MODE]}]};return p.contains=[x,A,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:m,illegal:/(<\/|\?)|=>/,contains:[h,A,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},x,C,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[I]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[A,I,x]}]}}return Cm=e,Cm}var Rm,Uy;function c_(){if(Uy)return Rm;Uy=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return Rm=e,Rm}var Am,Hy;function u_(){if(Hy)return Am;Hy=1;function e(t){const n=t.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,s=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),l=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[l,s]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,s]},{scope:{1:"punctuation",2:"number"},match:[c,s]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,s]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:l},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return Am=e,Am}var _m,Fy;function d_(){if(Fy)return _m;Fy=1;function e(t){const n=t.regex,a=/(r#)?/,s=n.concat(a,t.UNDERSCORE_IDENT_RE),l=n.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,l,n.lookahead(/\s*\(/))},d="([ui](8|16|32|64|128|size)|f(32|64))?",m=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],h=["true","false","Some","None","Ok","Err"],p=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],b=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:b,keyword:m,literal:h,built_in:p},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+d},{begin:"\\b0o([0-7_]+)"+d},{begin:"\\b0x([A-Fa-f0-9_]+)"+d},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+d}],relevance:0},{begin:[/fn/,/\s+/,s],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:p,type:b}},{className:"punctuation",begin:"->"},c]}}return _m=e,_m}var Im,Py;function f_(){if(Py)return Im;Py=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],a=[...t,...n],s=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),l=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function m(h){const p=e(h),b=c,x=l,y="@[a-z-]+",E="and or not only",A={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[h.C_LINE_COMMENT_MODE,h.C_BLOCK_COMMENT_MODE,p.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},p.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+x.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+b.join("|")+")"},A,{begin:/\(/,end:/\)/,contains:[p.CSS_NUMBER_MODE]},p.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[p.BLOCK_COMMENT,A,p.HEXCOLOR,p.CSS_NUMBER_MODE,p.UNICODE_RANGE,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.IMPORTANT,p.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:y,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:E,attribute:s.join(" ")},contains:[{begin:y,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},A,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.HEXCOLOR,p.CSS_NUMBER_MODE]},p.FUNCTION_DISPATCH]}}return Im=m,Im}var Mm,$y;function m_(){if($y)return Mm;$y=1;function e(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}return Mm=e,Mm}var Om,Gy;function h_(){if(Gy)return Om;Gy=1;function e(t){const n=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},l={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],d=["double precision","large object","with timezone","without timezone"],m=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],h=["add","asc","collation","desc","final","first","last","view"],p=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],b=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],x=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],y=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=b,N=[...p,...h].filter(R=>!b.includes(R)),A={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},C={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},I={match:n.concat(/\b/,n.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function O(R){return n.concat(/\b/,n.either(...R.map(U=>U.replace(/\s+/,"\\s+"))),/\b/)}const G={scope:"keyword",match:O(y),relevance:0};function j(R,{exceptions:U,when:W}={}){const Q=W;return U=U||[],R.map(B=>B.match(/\|\d+$/)||U.includes(B)?B:Q(B)?`${B}|0`:B)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:j(N,{when:R=>R.length<3}),literal:c,type:m,built_in:x},contains:[{scope:"type",match:O(d)},G,I,A,s,l,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,C]}}return Om=e,Om}var Dm,Ky;function p_(){if(Ky)return Dm;Ky=1;function e(W){return W?typeof W=="string"?W:W.source:null}function t(W){return n("(?=",W,")")}function n(...W){return W.map(B=>e(B)).join("")}function a(W){const Q=W[W.length-1];return typeof Q=="object"&&Q.constructor===Object?(W.splice(W.length-1,1),Q):{}}function s(...W){return"("+(a(W).capture?"":"?:")+W.map(H=>e(H)).join("|")+")"}const l=W=>n(/\b/,W,/\w$/.test(W)?/\b/:/\B/),c=["Protocol","Type"].map(l),d=["init","self"].map(l),m=["Any","Self"],h=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],p=["false","nil","true"],b=["assignment","associativity","higherThan","left","lowerThan","none","right"],x=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],y=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],E=s(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),N=s(E,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),A=n(E,N,"*"),C=s(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),I=s(C,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),O=n(C,I,"*"),G=n(/[A-Z]/,I,"*"),j=["attached","autoclosure",n(/convention\(/,s("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",n(/objc\(/,O,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],R=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function U(W){const Q={match:/\s+/,relevance:0},B=W.COMMENT("/\\*","\\*/",{contains:["self"]}),H=[W.C_LINE_COMMENT_MODE,B],F={match:[/\./,s(...c,...d)],className:{2:"keyword"}},te={match:n(/\./,s(...h)),relevance:0},K=h.filter(Ve=>typeof Ve=="string").concat(["_|0"]),V=h.filter(Ve=>typeof Ve!="string").concat(m).map(l),$={variants:[{className:"keyword",match:s(...V,...d)}]},ee={$pattern:s(/\b\w+/,/#\w+/),keyword:K.concat(x),literal:p},oe=[F,te,$],ce={match:n(/\./,s(...y)),relevance:0},L={className:"built_in",match:n(/\b/,s(...y),/(?=\()/)},D=[ce,L],P={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:A},{match:`\\.(\\.|${N})+`}]},ne=[P,_],de="([0-9]_*)+",se="([0-9a-fA-F]_*)+",ae={className:"number",relevance:0,variants:[{match:`\\b(${de})(\\.(${de}))?([eE][+-]?(${de}))?\\b`},{match:`\\b0x(${se})(\\.(${se}))?([pP][+-]?(${de}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},we=(Ve="")=>({className:"subst",variants:[{match:n(/\\/,Ve,/[0\\tnr"']/)},{match:n(/\\/,Ve,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ge=(Ve="")=>({className:"subst",match:n(/\\/,Ve,/[\t ]*(?:[\r\n]|\r\n)/)}),ze=(Ve="")=>({className:"subst",label:"interpol",begin:n(/\\/,Ve,/\(/),end:/\)/}),Me=(Ve="")=>({begin:n(Ve,/"""/),end:n(/"""/,Ve),contains:[we(Ve),ge(Ve),ze(Ve)]}),Se=(Ve="")=>({begin:n(Ve,/"/),end:n(/"/,Ve),contains:[we(Ve),ze(Ve)]}),$e={className:"string",variants:[Me(),Me("#"),Me("##"),Me("###"),Se(),Se("#"),Se("##"),Se("###")]},ct=[W.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[W.BACKSLASH_ESCAPE]}],mt={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:ct},Ze=Ve=>{const xt=n(Ve,/\//),Dt=n(/\//,Ve);return{begin:xt,end:Dt,contains:[...ct,{scope:"comment",begin:`#(?!.*${Dt})`,end:/$/}]}},lt={scope:"regexp",variants:[Ze("###"),Ze("##"),Ze("#"),mt]},Tt={match:n(/`/,O,/`/)},St={className:"variable",match:/\$\d+/},wt={className:"variable",match:`\\$${I}+`},Je=[Tt,St,wt],Nt={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:R,contains:[...ne,ae,$e]}]}},qt={scope:"keyword",match:n(/@/,s(...j),t(s(/\(/,/\s+/)))},Fe={scope:"meta",match:n(/@/,O)},Xt=[Nt,qt,Fe],he={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:n(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,I,"+")},{className:"type",match:G,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:n(/\s+&\s+/,t(G)),relevance:0}]},ve={begin:/</,end:/>/,keywords:ee,contains:[...H,...oe,...Xt,P,he]};he.contains.push(ve);const qe={match:n(O,/\s*:/),keywords:"_|0",relevance:0},We={begin:/\(/,end:/\)/,relevance:0,keywords:ee,contains:["self",qe,...H,lt,...oe,...D,...ne,ae,$e,...Je,...Xt,he]},nt={begin:/</,end:/>/,keywords:"repeat each",contains:[...H,he]},$t={begin:s(t(n(O,/\s*:/)),t(n(O,/\s+/,O,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:O}]},Zt={begin:/\(/,end:/\)/,keywords:ee,contains:[$t,...H,...oe,...ne,ae,$e,...Xt,he,We],endsParent:!0,illegal:/["']/},Pt={match:[/(func|macro)/,/\s+/,s(Tt.match,O,A)],className:{1:"keyword",3:"title.function"},contains:[nt,Zt,Q],illegal:[/\[/,/%/]},rt={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[nt,Zt,Q],illegal:/\[|%/},on={match:[/operator/,/\s+/,A],className:{1:"keyword",3:"title"}},yt={begin:[/precedencegroup/,/\s+/,G],className:{1:"keyword",3:"title"},contains:[he],keywords:[...b,...p],end:/}/},Xn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Sn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},st={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,O,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:ee,contains:[nt,...oe,{begin:/:/,end:/\{/,keywords:ee,contains:[{scope:"title.class.inherited",match:G},...oe],relevance:0}]};for(const Ve of $e.variants){const xt=Ve.contains.find(Wt=>Wt.label==="interpol");xt.keywords=ee;const Dt=[...oe,...D,...ne,ae,$e,...Je];xt.contains=[...Dt,{begin:/\(/,end:/\)/,contains:["self",...Dt]}]}return{name:"Swift",keywords:ee,contains:[...H,Pt,rt,Xn,Sn,st,on,yt,{beginKeywords:"import",end:/$/,contains:[...H],relevance:0},lt,...oe,...D,...ne,ae,$e,...Je,...Xt,he,We]}}return Dm=U,Dm}var jm,Vy;function g_(){if(Vy)return jm;Vy=1;function e(t){const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},l={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},d={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,l]},m=t.inherit(d,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),y={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},N={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},A={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},C=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},y,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},N,A,c,d],I=[...C];return I.pop(),I.push(m),E.contains=I,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:C}}return jm=e,jm}var Lm,Yy;function b_(){if(Yy)return Lm;Yy=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],n=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],l=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(l,a,s);function m(p){const b=p.regex,x=(we,{after:ge})=>{const ze="</"+we[0].slice(1);return we.input.indexOf(ze,ge)!==-1},y=e,E={begin:"<>",end:"</>"},N=/<[A-Za-z0-9\\._:-]+\s*\/>/,A={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(we,ge)=>{const ze=we[0].length+we.index,Me=we.input[ze];if(Me==="<"||Me===","){ge.ignoreMatch();return}Me===">"&&(x(we,{after:ze})||ge.ignoreMatch());let Se;const $e=we.input.substring(ze);if(Se=$e.match(/^\s*=/)){ge.ignoreMatch();return}if((Se=$e.match(/^\s+extends\s+/))&&Se.index===0){ge.ignoreMatch();return}}},C={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},I="[0-9](_?[0-9])*",O=`\\.(${I})`,G="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",j={className:"number",variants:[{begin:`(\\b(${G})((${O})|\\.)?|(${O}))[eE][+-]?(${I})\\b`},{begin:`\\b(${G})\\b((${O})\\b|\\.)?|(${O})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:C,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},W={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"css"}},Q={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},B={className:"string",begin:"`",end:"`",contains:[p.BACKSLASH_ESCAPE,R]},F={className:"comment",variants:[p.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:y+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),p.C_BLOCK_COMMENT_MODE,p.C_LINE_COMMENT_MODE]},te=[p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,U,W,Q,B,{match:/\$\d+/},j];R.contains=te.concat({begin:/\{/,end:/\}/,keywords:C,contains:["self"].concat(te)});const K=[].concat(F,R.contains),V=K.concat([{begin:/(\s*)\(/,end:/\)/,keywords:C,contains:["self"].concat(K)}]),$={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:C,contains:V},ee={variants:[{match:[/class/,/\s+/,y,/\s+/,/extends/,/\s+/,b.concat(y,"(",b.concat(/\./,y),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,y],scope:{1:"keyword",3:"title.class"}}]},oe={relevance:0,match:b.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...s]}},ce={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},L={variants:[{match:[/function/,/\s+/,y,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[$],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function P(we){return b.concat("(?!",we.join("|"),")")}const _={match:b.concat(/\b/,P([...l,"super","import","await"].map(we=>`${we}\\s*\\(`)),y,b.lookahead(/\s*\(/)),className:"title.function",relevance:0},ne={begin:b.concat(/\./,b.lookahead(b.concat(y,/(?![0-9A-Za-z$_(])/))),end:y,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},de={match:[/get|set/,/\s+/,y,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},$]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+p.UNDERSCORE_IDENT_RE+")\\s*=>",ae={match:[/const|var|let/,/\s+/,y,/\s*/,/=\s*/,/(async\s*)?/,b.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[$]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:C,exports:{PARAMS_CONTAINS:V,CLASS_REFERENCE:oe},illegal:/#(?![$_A-Za-z])/,contains:[p.SHEBANG({label:"shebang",binary:"node",relevance:5}),ce,p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,U,W,Q,B,F,{match:/\$\d+/},j,oe,{scope:"attr",match:y+b.lookahead(":"),relevance:0},ae,{begin:"("+p.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,p.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:p.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:C,contains:V}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:E.begin,end:E.end},{match:N},{begin:A.begin,"on:begin":A.isTrulyOpeningTag,end:A.end}],subLanguage:"xml",contains:[{begin:A.begin,end:A.end,skip:!0,contains:["self"]}]}]},L,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+p.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[$,p.inherit(p.TITLE_MODE,{begin:y,className:"title.function"})]},{match:/\.\.\./,relevance:0},ne,{match:"\\$"+y,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[$]},_,D,ee,de,{match:/\$[(.]/}]}}function h(p){const b=p.regex,x=m(p),y=e,E=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],N={begin:[/namespace/,/\s+/,p.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},A={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:E},contains:[x.exports.CLASS_REFERENCE]},C={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},I=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],O={$pattern:e,keyword:t.concat(I),literal:n,built_in:d.concat(E),"variable.language":c},G={className:"meta",begin:"@"+y},j=(Q,B,H)=>{const F=Q.contains.findIndex(te=>te.label===B);if(F===-1)throw new Error("can not find mode to replace");Q.contains.splice(F,1,H)};Object.assign(x.keywords,O),x.exports.PARAMS_CONTAINS.push(G);const R=x.contains.find(Q=>Q.scope==="attr"),U=Object.assign({},R,{match:b.concat(y,b.lookahead(/\s*\?:/))});x.exports.PARAMS_CONTAINS.push([x.exports.CLASS_REFERENCE,R,U]),x.contains=x.contains.concat([G,N,A,U]),j(x,"shebang",p.SHEBANG()),j(x,"use_strict",C);const W=x.contains.find(Q=>Q.label==="func.def");return W.relevance=0,Object.assign(x,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),x}return Lm=h,Lm}var zm,Xy;function v_(){if(Xy)return zm;Xy=1;function e(t){const n=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},l=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,d=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,m=/\d{1,2}(:\d{1,2}){1,2}/,h={className:"literal",variants:[{begin:n.concat(/# */,n.either(c,l),/ *#/)},{begin:n.concat(/# */,m,/ *#/)},{begin:n.concat(/# */,d,/ *#/)},{begin:n.concat(/# */,n.either(c,l),/ +/,n.either(d,m),/ *#/)}]},p={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},b={className:"label",begin:/^\w+:/},x=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),y=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,s,h,p,b,x,y,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[y]}]}}return zm=e,zm}var Bm,Zy;function y_(){if(Zy)return Bm;Zy=1;function e(t){t.regex;const n=t.COMMENT(/\(;/,/;\)/);n.contains.push("self");const a=t.COMMENT(/;;/,/$/),s=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],l={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},d={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},m={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},h={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},p={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:s},contains:[a,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,d,l,t.QUOTE_STRING_MODE,h,p,m]}}return Bm=e,Bm}var qm,Wy;function x_(){if(Wy)return qm;Wy=1;var e=zA();return e.registerLanguage("xml",BA()),e.registerLanguage("bash",qA()),e.registerLanguage("c",UA()),e.registerLanguage("cpp",HA()),e.registerLanguage("csharp",FA()),e.registerLanguage("css",PA()),e.registerLanguage("markdown",$A()),e.registerLanguage("diff",GA()),e.registerLanguage("ruby",KA()),e.registerLanguage("go",VA()),e.registerLanguage("graphql",YA()),e.registerLanguage("ini",XA()),e.registerLanguage("java",ZA()),e.registerLanguage("javascript",WA()),e.registerLanguage("json",QA()),e.registerLanguage("kotlin",JA()),e.registerLanguage("less",e_()),e.registerLanguage("lua",t_()),e.registerLanguage("makefile",n_()),e.registerLanguage("perl",r_()),e.registerLanguage("objectivec",a_()),e.registerLanguage("php",i_()),e.registerLanguage("php-template",s_()),e.registerLanguage("plaintext",l_()),e.registerLanguage("python",o_()),e.registerLanguage("python-repl",c_()),e.registerLanguage("r",u_()),e.registerLanguage("rust",d_()),e.registerLanguage("scss",f_()),e.registerLanguage("shell",m_()),e.registerLanguage("sql",h_()),e.registerLanguage("swift",p_()),e.registerLanguage("yaml",g_()),e.registerLanguage("typescript",b_()),e.registerLanguage("vbnet",v_()),e.registerLanguage("wasm",y_()),e.HighlightJS=e,e.default=e,qm=e,qm}var w_=x_();const Qy=qu(w_),h6=/^(javascript|vbscript|data):/i;function S_(e){if(!e)return!1;const t=e.trim();return!(!t||h6.test(t))}function k_(e){if(!e)return!1;const t=e.trim();return!t||h6.test(t)||t.startsWith("blob:")||t.startsWith("data:image/")||/^https?:\/\//i.test(t)?!1:!!(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}const E_=[[nC,{singleTilde:!1}],[aA,{singleDollarTextMath:!0}]],T_=[LA];let Um=null,Jy=null;async function N_(){return Um||(Jy??=Lw(()=>import("./mermaid.core-C1cSavOy.js").then(e=>e.bp),[]).then(e=>{e.default.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"});const t=async(n,a)=>{const{svg:s}=await e.default.render(`oc-mermaid-${Math.random().toString(36).slice(2,10)}`,a);n.innerHTML=s};return Um=t,t}).catch(()=>null),Jy)}function C_({code:e}){const t=S.useRef(null),[n,a]=S.useState(!1);return S.useEffect(()=>{let s=!1;return N_().then(l=>{if(s||!l||!t.current){l||a(!0);return}l(t.current,e).catch(()=>{s||a(!0)})}),()=>{s=!0}},[e]),n?f.jsx(Rh,{lang:"mermaid",text:e}):f.jsx("div",{className:"oc-mermaid",ref:t,role:"img","aria-label":"Mermaid 图表"})}function Rh({lang:e,text:t,children:n}){const[a,s]=S.useState(!1),l=S.useMemo(()=>{const d=Qy.getLanguage(e)?e:"";return d?Qy.highlight(t,{language:d,ignoreIllegals:!0}).value:void 0},[e,t]),c=()=>{navigator.clipboard?.writeText(t).then(()=>{s(!0),window.setTimeout(()=>s(!1),1600)},()=>{})};return f.jsxs("div",{className:"oc-codeblock",children:[f.jsxs("div",{className:"oc-codeblock-head",children:[f.jsx("span",{className:"oc-codeblock-lang",children:e||"text"}),f.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:c,children:a?"已复制":"复制"})]}),f.jsx("pre",{children:l!==void 0?f.jsx("code",{className:`hljs language-${e}`,dangerouslySetInnerHTML:{__html:l}}):f.jsx("code",{className:e?`hljs language-${e}`:"hljs",children:n??t})})]})}function Ah(e){if(e==null||typeof e=="boolean")return"";if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(Ah).join("");if(typeof e=="object"&&"props"in e){const t=e.props;return Ah(t?.children)}return""}const R_={pre({children:e}){return f.jsx(f.Fragment,{children:e})},code({className:e,children:t,...n}){const a=Ah(t).replace(/\n$/,""),s=/language-([\w-]+)/.exec(e??"");return s?.[1]==="mermaid"?f.jsx(C_,{code:a}):s||e&&a.includes(`
|
|
305
|
+
]`,N={scope:"string",variants:[b,p,x,y]},A={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},C=["false","null","true"],I=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],O=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],j={keyword:I,literal:(V=>{const $=[];return V.forEach(ee=>{$.push(ee),ee.toLowerCase()===ee?$.push(ee.toUpperCase()):$.push(ee.toLowerCase())}),$})(C),built_in:O},R=V=>V.map($=>$.replace(/\|\d+$/,"")),U={variants:[{match:[/new/,n.concat(E,"+"),n.concat("(?!",R(O).join("\\b|"),"\\b)"),l],scope:{1:"keyword",4:"title.class"}}]},W=n.concat(s,"\\b(?!\\()"),Q={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),W],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[l,n.concat(/::/,n.lookahead(/(?!class\b)/)),W],scope:{1:"title.class",3:"variable.constant"}},{match:[l,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[l,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},B={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},H={relevance:0,begin:/\(/,end:/\)/,keywords:j,contains:[B,d,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A,U]},F={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",R(I).join("\\b|"),"|",R(O).join("\\b|"),"\\b)"),s,n.concat(E,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[H]};H.contains.push(F);const te=[B,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A,U],K={begin:n.concat(/#\[\s*\\?/,n.either(l,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:C,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:C,keyword:["new","array"]},contains:["self",...te]},...te,{scope:"meta",variants:[{match:l},{match:c}]}]};return{case_insensitive:!1,keywords:j,contains:[K,t.HASH_COMMENT_MODE,t.COMMENT("//","$"),t.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:t.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},m,{scope:"variable.language",match:/\$this\b/},d,F,Q,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},U,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},t.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:j,contains:["self",K,d,Q,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,N,A]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},t.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[t.inherit(t.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},t.UNDERSCORE_TITLE_MODE]},N,A]}}return Em=e,Em}var Tm,zy;function s_(){if(zy)return Tm;zy=1;function e(t){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},t.inherit(t.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),t.inherit(t.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}return Tm=e,Tm}var Nm,By;function l_(){if(By)return Nm;By=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return Nm=e,Nm}var Cm,qy;function o_(){if(qy)return Cm;qy=1;function e(t){const n=t.regex,a=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],m={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},h={className:"meta",begin:/^(>>>|\.\.\.) /},p={className:"subst",begin:/\{/,end:/\}/,keywords:m,illegal:/#/},b={begin:/\{\{/,relevance:0},x={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,h,b,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,h,b,p]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,b,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,b,p]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},y="[0-9](_?[0-9])*",E=`(\\b(${y}))?\\.(${y})|\\b(${y})\\.`,N=`\\b|${s.join("|")}`,A={className:"number",relevance:0,variants:[{begin:`(\\b(${y})|(${E}))[eE][+-]?(${y})[jJ]?(?=${N})`},{begin:`(${E})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${N})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${N})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${N})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${N})`},{begin:`\\b(${y})[jJ](?=${N})`}]},C={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:m,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},I={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:["self",h,A,x,t.HASH_COMMENT_MODE]}]};return p.contains=[x,A,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:m,illegal:/(<\/|\?)|=>/,contains:[h,A,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},x,C,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[I]},{variants:[{match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[A,I,x]}]}}return Cm=e,Cm}var Rm,Uy;function c_(){if(Uy)return Rm;Uy=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return Rm=e,Rm}var Am,Hy;function u_(){if(Hy)return Am;Hy=1;function e(t){const n=t.regex,a=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,s=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),l=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,c=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:a,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[t.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:a},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),t.HASH_COMMENT_MODE,{scope:"string",contains:[t.BACKSLASH_ESCAPE],variants:[t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),t.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[l,s]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,s]},{scope:{1:"punctuation",2:"number"},match:[c,s]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,s]}]},{scope:{3:"operator"},match:[a,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:l},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return Am=e,Am}var _m,Fy;function d_(){if(Fy)return _m;Fy=1;function e(t){const n=t.regex,a=/(r#)?/,s=n.concat(a,t.UNDERSCORE_IDENT_RE),l=n.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,l,n.lookahead(/\s*\(/))},d="([ui](8|16|32|64|128|size)|f(32|64))?",m=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],h=["true","false","Some","None","Ok","Err"],p=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],b=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:b,keyword:m,literal:h,built_in:p},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+d},{begin:"\\b0o([0-7_]+)"+d},{begin:"\\b0x([A-Fa-f0-9_]+)"+d},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+d}],relevance:0},{begin:[/fn/,/\s+/,s],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:p,type:b}},{className:"punctuation",begin:"->"},c]}}return _m=e,_m}var Im,Py;function f_(){if(Py)return Im;Py=1;const e=h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:"number",begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,4}(-[0-9A-Fa-f][0-9A-Fa-f]{0,4})?/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),t=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],n=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],a=[...t,...n],s=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),l=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),c=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),d=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","unicode-range","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function m(h){const p=e(h),b=c,x=l,y="@[a-z-]+",E="and or not only",A={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[h.C_LINE_COMMENT_MODE,h.C_BLOCK_COMMENT_MODE,p.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},p.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+x.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+b.join("|")+")"},A,{begin:/\(/,end:/\)/,contains:[p.CSS_NUMBER_MODE]},p.CSS_VARIABLE,{className:"attribute",begin:"\\b("+d.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[p.BLOCK_COMMENT,A,p.HEXCOLOR,p.CSS_NUMBER_MODE,p.UNICODE_RANGE,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.IMPORTANT,p.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:y,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:E,attribute:s.join(" ")},contains:[{begin:y,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},A,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.HEXCOLOR,p.CSS_NUMBER_MODE]},p.FUNCTION_DISPATCH]}}return Im=m,Im}var Mm,$y;function m_(){if($y)return Mm;$y=1;function e(t){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}return Mm=e,Mm}var Om,Gy;function h_(){if(Gy)return Om;Gy=1;function e(t){const n=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},l={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],d=["double precision","large object","with timezone","without timezone"],m=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],h=["add","asc","collation","desc","final","first","last","view"],p=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],b=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],x=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],y=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],E=b,N=[...p,...h].filter(R=>!b.includes(R)),A={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},C={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},I={match:n.concat(/\b/,n.either(...E),/\s*\(/),relevance:0,keywords:{built_in:E}};function O(R){return n.concat(/\b/,n.either(...R.map(U=>U.replace(/\s+/,"\\s+"))),/\b/)}const G={scope:"keyword",match:O(y),relevance:0};function j(R,{exceptions:U,when:W}={}){const Q=W;return U=U||[],R.map(B=>B.match(/\|\d+$/)||U.includes(B)?B:Q(B)?`${B}|0`:B)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:j(N,{when:R=>R.length<3}),literal:c,type:m,built_in:x},contains:[{scope:"type",match:O(d)},G,I,A,s,l,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,C]}}return Om=e,Om}var Dm,Ky;function p_(){if(Ky)return Dm;Ky=1;function e(W){return W?typeof W=="string"?W:W.source:null}function t(W){return n("(?=",W,")")}function n(...W){return W.map(B=>e(B)).join("")}function a(W){const Q=W[W.length-1];return typeof Q=="object"&&Q.constructor===Object?(W.splice(W.length-1,1),Q):{}}function s(...W){return"("+(a(W).capture?"":"?:")+W.map(H=>e(H)).join("|")+")"}const l=W=>n(/\b/,W,/\w$/.test(W)?/\b/:/\B/),c=["Protocol","Type"].map(l),d=["init","self"].map(l),m=["Any","Self"],h=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","package","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],p=["false","nil","true"],b=["assignment","associativity","higherThan","left","lowerThan","none","right"],x=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],y=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],E=s(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),N=s(E,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),A=n(E,N,"*"),C=s(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),I=s(C,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),O=n(C,I,"*"),G=n(/[A-Z]/,I,"*"),j=["attached","autoclosure",n(/convention\(/,s("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",n(/objc\(/,O,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],R=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function U(W){const Q={match:/\s+/,relevance:0},B=W.COMMENT("/\\*","\\*/",{contains:["self"]}),H=[W.C_LINE_COMMENT_MODE,B],F={match:[/\./,s(...c,...d)],className:{2:"keyword"}},te={match:n(/\./,s(...h)),relevance:0},K=h.filter(Ve=>typeof Ve=="string").concat(["_|0"]),V=h.filter(Ve=>typeof Ve!="string").concat(m).map(l),$={variants:[{className:"keyword",match:s(...V,...d)}]},ee={$pattern:s(/\b\w+/,/#\w+/),keyword:K.concat(x),literal:p},oe=[F,te,$],ce={match:n(/\./,s(...y)),relevance:0},L={className:"built_in",match:n(/\b/,s(...y),/(?=\()/)},D=[ce,L],P={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:A},{match:`\\.(\\.|${N})+`}]},ne=[P,_],de="([0-9]_*)+",se="([0-9a-fA-F]_*)+",ae={className:"number",relevance:0,variants:[{match:`\\b(${de})(\\.(${de}))?([eE][+-]?(${de}))?\\b`},{match:`\\b0x(${se})(\\.(${se}))?([pP][+-]?(${de}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},we=(Ve="")=>({className:"subst",variants:[{match:n(/\\/,Ve,/[0\\tnr"']/)},{match:n(/\\/,Ve,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ge=(Ve="")=>({className:"subst",match:n(/\\/,Ve,/[\t ]*(?:[\r\n]|\r\n)/)}),ze=(Ve="")=>({className:"subst",label:"interpol",begin:n(/\\/,Ve,/\(/),end:/\)/}),Me=(Ve="")=>({begin:n(Ve,/"""/),end:n(/"""/,Ve),contains:[we(Ve),ge(Ve),ze(Ve)]}),Se=(Ve="")=>({begin:n(Ve,/"/),end:n(/"/,Ve),contains:[we(Ve),ze(Ve)]}),$e={className:"string",variants:[Me(),Me("#"),Me("##"),Me("###"),Se(),Se("#"),Se("##"),Se("###")]},ct=[W.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[W.BACKSLASH_ESCAPE]}],mt={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:ct},Ze=Ve=>{const xt=n(Ve,/\//),Dt=n(/\//,Ve);return{begin:xt,end:Dt,contains:[...ct,{scope:"comment",begin:`#(?!.*${Dt})`,end:/$/}]}},lt={scope:"regexp",variants:[Ze("###"),Ze("##"),Ze("#"),mt]},Tt={match:n(/`/,O,/`/)},St={className:"variable",match:/\$\d+/},wt={className:"variable",match:`\\$${I}+`},Je=[Tt,St,wt],Nt={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:R,contains:[...ne,ae,$e]}]}},qt={scope:"keyword",match:n(/@/,s(...j),t(s(/\(/,/\s+/)))},Fe={scope:"meta",match:n(/@/,O)},Xt=[Nt,qt,Fe],he={match:t(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:n(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,I,"+")},{className:"type",match:G,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:n(/\s+&\s+/,t(G)),relevance:0}]},ve={begin:/</,end:/>/,keywords:ee,contains:[...H,...oe,...Xt,P,he]};he.contains.push(ve);const qe={match:n(O,/\s*:/),keywords:"_|0",relevance:0},We={begin:/\(/,end:/\)/,relevance:0,keywords:ee,contains:["self",qe,...H,lt,...oe,...D,...ne,ae,$e,...Je,...Xt,he]},nt={begin:/</,end:/>/,keywords:"repeat each",contains:[...H,he]},$t={begin:s(t(n(O,/\s*:/)),t(n(O,/\s+/,O,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:O}]},Zt={begin:/\(/,end:/\)/,keywords:ee,contains:[$t,...H,...oe,...ne,ae,$e,...Xt,he,We],endsParent:!0,illegal:/["']/},Pt={match:[/(func|macro)/,/\s+/,s(Tt.match,O,A)],className:{1:"keyword",3:"title.function"},contains:[nt,Zt,Q],illegal:[/\[/,/%/]},rt={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[nt,Zt,Q],illegal:/\[|%/},on={match:[/operator/,/\s+/,A],className:{1:"keyword",3:"title"}},yt={begin:[/precedencegroup/,/\s+/,G],className:{1:"keyword",3:"title"},contains:[he],keywords:[...b,...p],end:/}/},Xn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},Sn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},st={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,O,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:ee,contains:[nt,...oe,{begin:/:/,end:/\{/,keywords:ee,contains:[{scope:"title.class.inherited",match:G},...oe],relevance:0}]};for(const Ve of $e.variants){const xt=Ve.contains.find(Wt=>Wt.label==="interpol");xt.keywords=ee;const Dt=[...oe,...D,...ne,ae,$e,...Je];xt.contains=[...Dt,{begin:/\(/,end:/\)/,contains:["self",...Dt]}]}return{name:"Swift",keywords:ee,contains:[...H,Pt,rt,Xn,Sn,st,on,yt,{beginKeywords:"import",end:/$/,contains:[...H],relevance:0},lt,...oe,...D,...ne,ae,$e,...Je,...Xt,he,We]}}return Dm=U,Dm}var jm,Vy;function g_(){if(Vy)return jm;Vy=1;function e(t){const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},l={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},d={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,l]},m=t.inherit(d,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),y={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},E={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},N={begin:/\{/,end:/\}/,contains:[E],illegal:"\\n",relevance:0},A={begin:"\\[",end:"\\]",contains:[E],illegal:"\\n",relevance:0},C=[s,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},y,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},N,A,c,d],I=[...C];return I.pop(),I.push(m),E.contains=I,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:C}}return jm=e,jm}var Lm,Yy;function b_(){if(Yy)return Lm;Yy=1;const e="[A-Za-z$_][0-9A-Za-z$_]*",t=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],n=["true","false","null","undefined","NaN","Infinity"],a=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],l=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],d=[].concat(l,a,s);function m(p){const b=p.regex,x=(we,{after:ge})=>{const ze="</"+we[0].slice(1);return we.input.indexOf(ze,ge)!==-1},y=e,E={begin:"<>",end:"</>"},N=/<[A-Za-z0-9\\._:-]+\s*\/>/,A={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(we,ge)=>{const ze=we[0].length+we.index,Me=we.input[ze];if(Me==="<"||Me===","){ge.ignoreMatch();return}Me===">"&&(x(we,{after:ze})||ge.ignoreMatch());let Se;const $e=we.input.substring(ze);if(Se=$e.match(/^\s*=/)){ge.ignoreMatch();return}if((Se=$e.match(/^\s+extends\s+/))&&Se.index===0){ge.ignoreMatch();return}}},C={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},I="[0-9](_?[0-9])*",O=`\\.(${I})`,G="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",j={className:"number",variants:[{begin:`(\\b(${G})((${O})|\\.)?|(${O}))[eE][+-]?(${I})\\b`},{begin:`\\b(${G})\\b((${O})\\b|\\.)?|(${O})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},R={className:"subst",begin:"\\$\\{",end:"\\}",keywords:C,contains:[]},U={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"xml"}},W={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"css"}},Q={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,R],subLanguage:"graphql"}},B={className:"string",begin:"`",end:"`",contains:[p.BACKSLASH_ESCAPE,R]},F={className:"comment",variants:[p.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:y+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),p.C_BLOCK_COMMENT_MODE,p.C_LINE_COMMENT_MODE]},te=[p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,U,W,Q,B,{match:/\$\d+/},j];R.contains=te.concat({begin:/\{/,end:/\}/,keywords:C,contains:["self"].concat(te)});const K=[].concat(F,R.contains),V=K.concat([{begin:/(\s*)\(/,end:/\)/,keywords:C,contains:["self"].concat(K)}]),$={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:C,contains:V},ee={variants:[{match:[/class/,/\s+/,y,/\s+/,/extends/,/\s+/,b.concat(y,"(",b.concat(/\./,y),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,y],scope:{1:"keyword",3:"title.class"}}]},oe={relevance:0,match:b.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...a,...s]}},ce={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},L={variants:[{match:[/function/,/\s+/,y,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[$],illegal:/%/},D={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function P(we){return b.concat("(?!",we.join("|"),")")}const _={match:b.concat(/\b/,P([...l,"super","import","await"].map(we=>`${we}\\s*\\(`)),y,b.lookahead(/\s*\(/)),className:"title.function",relevance:0},ne={begin:b.concat(/\./,b.lookahead(b.concat(y,/(?![0-9A-Za-z$_(])/))),end:y,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},de={match:[/get|set/,/\s+/,y,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},$]},se="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+p.UNDERSCORE_IDENT_RE+")\\s*=>",ae={match:[/const|var|let/,/\s+/,y,/\s*/,/=\s*/,/(async\s*)?/,b.lookahead(se)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[$]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:C,exports:{PARAMS_CONTAINS:V,CLASS_REFERENCE:oe},illegal:/#(?![$_A-Za-z])/,contains:[p.SHEBANG({label:"shebang",binary:"node",relevance:5}),ce,p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,U,W,Q,B,F,{match:/\$\d+/},j,oe,{scope:"attr",match:y+b.lookahead(":"),relevance:0},ae,{begin:"("+p.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,p.REGEXP_MODE,{className:"function",begin:se,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:p.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:C,contains:V}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:E.begin,end:E.end},{match:N},{begin:A.begin,"on:begin":A.isTrulyOpeningTag,end:A.end}],subLanguage:"xml",contains:[{begin:A.begin,end:A.end,skip:!0,contains:["self"]}]}]},L,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+p.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[$,p.inherit(p.TITLE_MODE,{begin:y,className:"title.function"})]},{match:/\.\.\./,relevance:0},ne,{match:"\\$"+y,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[$]},_,D,ee,de,{match:/\$[(.]/}]}}function h(p){const b=p.regex,x=m(p),y=e,E=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],N={begin:[/namespace/,/\s+/,p.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},A={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:E},contains:[x.exports.CLASS_REFERENCE]},C={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},I=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],O={$pattern:e,keyword:t.concat(I),literal:n,built_in:d.concat(E),"variable.language":c},G={className:"meta",begin:"@"+y},j=(Q,B,H)=>{const F=Q.contains.findIndex(te=>te.label===B);if(F===-1)throw new Error("can not find mode to replace");Q.contains.splice(F,1,H)};Object.assign(x.keywords,O),x.exports.PARAMS_CONTAINS.push(G);const R=x.contains.find(Q=>Q.scope==="attr"),U=Object.assign({},R,{match:b.concat(y,b.lookahead(/\s*\?:/))});x.exports.PARAMS_CONTAINS.push([x.exports.CLASS_REFERENCE,R,U]),x.contains=x.contains.concat([G,N,A,U]),j(x,"shebang",p.SHEBANG()),j(x,"use_strict",C);const W=x.contains.find(Q=>Q.label==="func.def");return W.relevance=0,Object.assign(x,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),x}return Lm=h,Lm}var zm,Xy;function v_(){if(Xy)return zm;Xy=1;function e(t){const n=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},l=/\d{1,2}\/\d{1,2}\/\d{4}/,c=/\d{4}-\d{1,2}-\d{1,2}/,d=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,m=/\d{1,2}(:\d{1,2}){1,2}/,h={className:"literal",variants:[{begin:n.concat(/# */,n.either(c,l),/ *#/)},{begin:n.concat(/# */,m,/ *#/)},{begin:n.concat(/# */,d,/ *#/)},{begin:n.concat(/# */,n.either(c,l),/ +/,n.either(d,m),/ *#/)}]},p={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},b={className:"label",begin:/^\w+:/},x=t.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),y=t.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[a,s,h,p,b,x,y,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[y]}]}}return zm=e,zm}var Bm,Zy;function y_(){if(Zy)return Bm;Zy=1;function e(t){t.regex;const n=t.COMMENT(/\(;/,/;\)/);n.contains.push("self");const a=t.COMMENT(/;;/,/$/),s=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],l={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},c={className:"variable",begin:/\$[\w_]+/},d={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},m={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},h={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},p={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:s},contains:[a,n,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},c,d,l,t.QUOTE_STRING_MODE,h,p,m]}}return Bm=e,Bm}var qm,Wy;function x_(){if(Wy)return qm;Wy=1;var e=zA();return e.registerLanguage("xml",BA()),e.registerLanguage("bash",qA()),e.registerLanguage("c",UA()),e.registerLanguage("cpp",HA()),e.registerLanguage("csharp",FA()),e.registerLanguage("css",PA()),e.registerLanguage("markdown",$A()),e.registerLanguage("diff",GA()),e.registerLanguage("ruby",KA()),e.registerLanguage("go",VA()),e.registerLanguage("graphql",YA()),e.registerLanguage("ini",XA()),e.registerLanguage("java",ZA()),e.registerLanguage("javascript",WA()),e.registerLanguage("json",QA()),e.registerLanguage("kotlin",JA()),e.registerLanguage("less",e_()),e.registerLanguage("lua",t_()),e.registerLanguage("makefile",n_()),e.registerLanguage("perl",r_()),e.registerLanguage("objectivec",a_()),e.registerLanguage("php",i_()),e.registerLanguage("php-template",s_()),e.registerLanguage("plaintext",l_()),e.registerLanguage("python",o_()),e.registerLanguage("python-repl",c_()),e.registerLanguage("r",u_()),e.registerLanguage("rust",d_()),e.registerLanguage("scss",f_()),e.registerLanguage("shell",m_()),e.registerLanguage("sql",h_()),e.registerLanguage("swift",p_()),e.registerLanguage("yaml",g_()),e.registerLanguage("typescript",b_()),e.registerLanguage("vbnet",v_()),e.registerLanguage("wasm",y_()),e.HighlightJS=e,e.default=e,qm=e,qm}var w_=x_();const Qy=qu(w_),h6=/^(javascript|vbscript|data):/i;function S_(e){if(!e)return!1;const t=e.trim();return!(!t||h6.test(t))}function k_(e){if(!e)return!1;const t=e.trim();return!t||h6.test(t)||t.startsWith("blob:")||t.startsWith("data:image/")||/^https?:\/\//i.test(t)?!1:!!(t.startsWith("/")||t.startsWith("./")||t.startsWith("../")||!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(t))}const E_=[[nC,{singleTilde:!1}],[aA,{singleDollarTextMath:!0}]],T_=[LA];let Um=null,Jy=null;async function N_(){return Um||(Jy??=Lw(()=>import("./mermaid.core-CcWKn6tS.js").then(e=>e.bp),[]).then(e=>{e.default.initialize({startOnLoad:!1,securityLevel:"strict",theme:"neutral"});const t=async(n,a)=>{const{svg:s}=await e.default.render(`oc-mermaid-${Math.random().toString(36).slice(2,10)}`,a);n.innerHTML=s};return Um=t,t}).catch(()=>null),Jy)}function C_({code:e}){const t=S.useRef(null),[n,a]=S.useState(!1);return S.useEffect(()=>{let s=!1;return N_().then(l=>{if(s||!l||!t.current){l||a(!0);return}l(t.current,e).catch(()=>{s||a(!0)})}),()=>{s=!0}},[e]),n?f.jsx(Rh,{lang:"mermaid",text:e}):f.jsx("div",{className:"oc-mermaid",ref:t,role:"img","aria-label":"Mermaid 图表"})}function Rh({lang:e,text:t,children:n}){const[a,s]=S.useState(!1),l=S.useMemo(()=>{const d=Qy.getLanguage(e)?e:"";return d?Qy.highlight(t,{language:d,ignoreIllegals:!0}).value:void 0},[e,t]),c=()=>{navigator.clipboard?.writeText(t).then(()=>{s(!0),window.setTimeout(()=>s(!1),1600)},()=>{})};return f.jsxs("div",{className:"oc-codeblock",children:[f.jsxs("div",{className:"oc-codeblock-head",children:[f.jsx("span",{className:"oc-codeblock-lang",children:e||"text"}),f.jsx("button",{type:"button",className:"oc-codeblock-copy",onClick:c,children:a?"已复制":"复制"})]}),f.jsx("pre",{children:l!==void 0?f.jsx("code",{className:`hljs language-${e}`,dangerouslySetInnerHTML:{__html:l}}):f.jsx("code",{className:e?`hljs language-${e}`:"hljs",children:n??t})})]})}function Ah(e){if(e==null||typeof e=="boolean")return"";if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(Ah).join("");if(typeof e=="object"&&"props"in e){const t=e.props;return Ah(t?.children)}return""}const R_={pre({children:e}){return f.jsx(f.Fragment,{children:e})},code({className:e,children:t,...n}){const a=Ah(t).replace(/\n$/,""),s=/language-([\w-]+)/.exec(e??"");return s?.[1]==="mermaid"?f.jsx(C_,{code:a}):s||e&&a.includes(`
|
|
306
306
|
`)?f.jsx(Rh,{lang:s?.[1]??"",text:a}):a.includes(`
|
|
307
307
|
`)?f.jsx(Rh,{lang:"",text:a}):f.jsx("code",{className:e,...n,children:t})},a({href:e,children:t,...n}){if(!S_(e))return f.jsx("span",{...n,children:t});const a=/^https?:\/\//i.test(e??"");return f.jsx("a",{href:e,...a?{target:"_blank",rel:"noopener noreferrer"}:{},...n,children:t})},img({src:e,alt:t}){return k_(e)?f.jsxs(f.Fragment,{children:[f.jsx("img",{src:e,alt:t??"",loading:"lazy",onError:n=>{const a=n.currentTarget;a.hidden=!0,a.nextElementSibling?.removeAttribute("hidden")}}),f.jsx("span",{className:"oc-md-img-fallback",hidden:!0,title:e??void 0,children:t?`[图片加载失败: ${t}]`:"[图片加载失败]"})]}):f.jsx("span",{className:"oc-md-img-fallback",title:e??void 0,children:t?`[图片: ${t}]`:"[图片已屏蔽]"})},table({children:e}){return f.jsx("div",{className:"oc-md-table-wrap",children:f.jsx("table",{children:e})})},input(e){return e.type==="checkbox"?f.jsx("input",{type:"checkbox",checked:!!e.checked,disabled:!0,readOnly:!0}):f.jsx("input",{...e,disabled:!0,readOnly:!0})}};class A_ extends S.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t,n){}componentDidUpdate(t){t.text!==this.props.text&&this.state.hasError&&this.setState({hasError:!1})}render(){return this.state.hasError?f.jsx("div",{className:"oc-md",children:f.jsx("pre",{className:"oc-md-fallback",children:this.props.text})}):this.props.children}}function _h({text:e}){try{return f.jsx(A_,{text:e,children:f.jsx("div",{className:"oc-md",children:f.jsx($E,{remarkPlugins:E_,rehypePlugins:T_,components:R_,children:e})})})}catch{return f.jsx("div",{className:"oc-md",children:f.jsx("pre",{className:"oc-md-fallback",children:e})})}}const e2="无法在浏览器中打开:弹窗被拦截",__="内容已截断,以下为已加载片段。";function I_(e){const t=e?.availWidth??1440,n=e?.availHeight??900,a=Math.min(1280,Math.max(880,Math.floor(t*.82))),s=Math.min(960,Math.max(640,Math.floor(n*.88)));return["popup=yes",`width=${a}`,`height=${s}`,"left=72","top=36","menubar=yes","toolbar=yes","location=yes","status=yes","resizable=yes","scrollbars=yes"].join(",")}function Js(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function c0(e){return e.trim().toLowerCase()}function M_(e){const t=c0(e);return t==="html"||t==="htm"}function O_(e){const t=c0(e);return t==="md"||t==="markdown"}function D_(e){if(c0(e.language)!=="json")return e.content;try{return JSON.stringify(JSON.parse(e.content),null,2)}catch{return e.content}}function j_(e){return/^https?:\/\//i.test(e.trim())}function po(e){const t=[];return e.replace(/`([^`]+)`/g,(l,c)=>(t.push(`<code>${c}</code>`),`\0${t.length-1}\0`)).replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(l,c,d)=>j_(d)?`<a href="${d}" rel="noopener noreferrer" target="_blank">${c}</a>`:c).replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>").replace(/__([^_]+)__/g,"<strong>$1</strong>").replace(/\*([^*]+)\*/g,"<em>$1</em>").replace(/\u0000(\d+)\u0000/g,(l,c)=>t[Number(c)]??"")}function L_(e){return e.length?`<p>${po(e.join(" "))}</p>`:""}function t2(e){const t=e.replaceAll(`\r
|
|
308
308
|
`,`
|
|
@@ -391,7 +391,7 @@ ${H_()}
|
|
|
391
391
|
`).find(I=>I.startsWith("id: "))?.slice(4);if(A&&(a=A),!A||s.has(A)||!N.includes("event: session_title"))continue;const C=N.split(`
|
|
392
392
|
`).find(I=>I.startsWith("data: "))?.slice(6);if(C)try{const I=JSON.parse(C),O=I.data?.title?.trim();if(!O)continue;if(s.add(A),!this.options.hasSession(t)||(this.options.onTitle(t,{title:O,automatic:!!I.data?.automatic}),I.data?.automatic))return}catch{}}}}catch{if(n.signal.aborted)return}n.signal.aborted||await BM(this.backoffMs,n.signal)}}finally{window.clearTimeout(c),this.controllers.get(t)===n&&this.controllers.delete(t),(l||!this.options.hasSession(t))&&this.options.refresh()}}}function BM(e,t){return new Promise(n=>{const a=window.setTimeout(l,e),s=()=>l();function l(){window.clearTimeout(a),t.removeEventListener("abort",s),n()}t.addEventListener("abort",s,{once:!0})})}async function qM(e){if(e.creatingRef?.current)throw new Error("CREATE_SESSION_IN_FLIGHT");e.creatingRef&&(e.creatingRef.current=!0),e.setCreatingSession?.(!0);try{const t=await(e.fetchFn??fetch)(`${e.origin}/api/operator/v1/chat/sessions`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify(e.options??{})});if(!t.ok){const c=await t.json().catch(()=>({}));throw new Error(c.error?.message??`HTTP ${t.status}`)}const n=await t.json();if(!n.session)throw new Error("创建会话响应缺少 durable session");const a=n.session,s={sessionId:a.sessionId,...Mh(a)},l=[a,...e.sessionListRef.current.filter(c=>c.sessionId!==a.sessionId)].slice(0,wu);return e.sessionListRef.current=l,e.setSessionList(l),e.titleWatcher?.markEligible(a.sessionId),e.refreshSessionList(),s}finally{e.creatingRef&&(e.creatingRef.current=!1),e.setCreatingSession?.(!1)}}function UM(e){const{origin:t,refs:n,setSession:a,thread:s,composer:l,browser:c,setError:d,setNotice:m,onCompactionChange:h,setProcessOpen:p,setAutoScroll:b}=e,{applyActivatedSession:x,resetForNewSession:y,setMessages:E}=s,{setInput:N,setPendingImages:A}=l,{setPreviews:C,setActivePreviewPath:I}=c,[O,G]=S.useState([]),j=S.useRef([]);j.current=O;const R=S.useRef(null),[U,W]=S.useState(!1),Q=S.useRef(!1),B=S.useRef(!1),H=S.useRef(0),F=S.useCallback(()=>{n.sessionGenerationRef.current+=1,n.abortRef.current?.abort(),n.reconnectAbortRef.current?.abort();for(const D of n.sessionAbortControllersRef.current.values())D.abort();n.sessionAbortControllersRef.current.clear(),n.reconnectAbortRef.current=null,n.eventsStreamStateRef.current=null,n.streamingRef.current=!1,n.abortRef.current=null,n.assistantIdRef.current=null,n.lastEventIdRef.current=null,n.seenEventIdsRef.current=new Set,n.turnAssistantIdsRef.current=new Map,n.sealedAssistantIdsRef.current=new Set,n.settledTurnIdsRef.current=new Set,n.activeTurnIdRef.current=null,y(),N(""),A([]),C([]),I(null),p(!1),b(!0)},[n,y,N,A,C,I,p,b]),te=S.useCallback(async()=>{try{const D=await fetch(`${t}/api/operator/v1/chat/sessions`,{credentials:"include"});if(!D.ok)return;const P=(await D.json()).sessions??[],_=P.slice(0,wu),ne=P.slice(wu);if(G(_),ne.length===0)return;await Promise.all(ne.map(se=>fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(se.sessionId)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":er()}}).catch(()=>{})));const de=n.sessionRef.current?.sessionId;de&&ne.some(se=>se.sessionId===de)&&(H.current+=1,n.sessionRef.current=null,F(),a(null),window.localStorage.removeItem(Yr))}catch{}},[t,n,F,a]),K=S.useCallback(async D=>{try{return(await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(D)}`,{method:"DELETE",credentials:"include",headers:{"x-loop-console-confirmation":er()}})).ok?(R.current?.cancel(D),n.sessionRef.current?.sessionId===D&&(H.current+=1,n.sessionRef.current=null,F(),a(null),window.localStorage.removeItem(Yr)),await te(),!0):(d("删除会话失败"),!1)}catch(P){return d(P instanceof Error?P.message:String(P)),!1}},[t,n,a,F,te,d]),V=S.useCallback(async D=>{const P=++H.current;try{const _=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(D)}`,{credentials:"include"}),ne=await _.json();if(!_.ok||!ne.session)throw new Error(ne.error?.message??"会话不可用");if(P!==H.current)return;const de={sessionId:ne.session.sessionId,...Mh(ne.session)};F(),n.sessionRef.current=de,n.streamingRef.current=!!ne.session.activeTurnId,n.activeTurnIdRef.current=ne.session.activeTurnId??null,n.seenEventIdsRef.current=new Set,n.turnAssistantIdsRef.current=new Map,n.sealedAssistantIdsRef.current=new Set,n.settledTurnIdsRef.current=new Set,n.lastEventIdRef.current=null,a(de),n.assistantIdRef.current=null,n.abortRef.current=n.sessionAbortControllersRef.current.get(D)??null,A([]),C([]),N(ne.session.composerDraft??"");const se=D6(ne.session.messages??[]);x({messages:se.messages,toolCalls:se.toolCalls,streaming:!!ne.session.activeTurnId,turnPhase:ne.session.turnPhase??(ne.session.activeTurnId?"running":"idle"),deferredTurn:ne.session.deferredTurn??null}),window.localStorage.setItem(Yr,D),I(null)}catch(_){if(P!==H.current)return;d(_ instanceof Error?_.message:String(_))}},[t,n,a,A,C,N,x,F,I,d]);S.useEffect(()=>{te()},[te]),R.current||(R.current=new zM({origin:t,hasSession:D=>j.current.some(P=>P.sessionId===D),onTitle:(D,P)=>{G(_=>_.map(ne=>ne.sessionId!==D||P.automatic&&ne.title?ne:P.automatic?{...ne,title:P.title}:{...ne,displayTitle:P.title}))},refresh:te}));const $=S.useCallback(D=>R.current?.startIfEligible(D),[]);S.useEffect(()=>{R.current?.reconcile(O.filter(D=>D.state!=="archived"&&!D.title).map(D=>D.sessionId))},[O]),S.useEffect(()=>()=>R.current?.dispose(),[]),S.useEffect(()=>{let D=!1;const P=window.localStorage.getItem(Yr);if(!P)return;const _=++H.current;return(async()=>{try{const ne=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(P)}`,{credentials:"include"});if(!ne.ok){window.localStorage.removeItem(Yr);return}const de=await ne.json();if(D||_!==H.current||!de.session)return;const se={sessionId:de.session.sessionId,...Mh(de.session)};n.sessionGenerationRef.current+=1,n.sessionRef.current=se,n.activeTurnIdRef.current=de.session.activeTurnId??null,n.seenEventIdsRef.current=new Set,n.turnAssistantIdsRef.current=new Map,n.sealedAssistantIdsRef.current=new Set,n.settledTurnIdsRef.current=new Set,n.lastEventIdRef.current=null,a(se),N(de.session.composerDraft??""),E((de.session.messages??[]).filter(ae=>ae.role==="user"||ae.role==="assistant").map(ae=>{const we=Ep(ae.content);return{id:ae.id,role:ae.role,text:ae.text,createdAt:Date.parse(ae.at)||Date.now(),...we&&we.length>0?{content:we}:{}}}))}catch{}})(),()=>{D=!0}},[t,n,a,N,E]);const ee=S.useCallback(D=>qM({origin:t,sessionListRef:j,setSessionList:G,titleWatcher:R.current,refreshSessionList:te,options:D,setCreatingSession:W,creatingRef:Q}),[t,te]),oe=S.useCallback(async D=>{if(Q.current)return null;const P=++H.current;d(null);try{const _=await ee(D);return P!==H.current?null:(F(),n.sessionRef.current=_,window.localStorage.setItem(Yr,_.sessionId),a(_),_)}catch(_){if(P!==H.current)return null;const ne=_ instanceof Error?_.message:String(_);return ne!=="CREATE_SESSION_IN_FLIGHT"&&d(ne),null}},[n,a,d,F,ee]),ce=S.useCallback(async D=>{const P=n.sessionRef.current;if(!P||n.streamingRef.current)return;const _=typeof D=="string"?D.trim():"";h?.(!0);try{const ne={"x-loop-console-confirmation":er()};_&&(ne["content-type"]="application/json");const de=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(P.sessionId)}/compact`,{method:"POST",credentials:"include",headers:ne,..._?{body:JSON.stringify({instructions:_})}:{}}),se=await de.json().catch(()=>({}));if(!de.ok){const ze=se.error?.code;if(jM(ze)){d(LM(ze)),B6(ze)&&!B.current&&(B.current=!0,window.setTimeout(()=>window.location.reload(),1200));return}d(se.error?.message??"上下文压缩失败");return}d(null);const ae=se.snapshot?.summary?.trim(),we=se.snapshot?.tokensBefore,ge=ae||"历史上下文已精简,关键决策与当前任务已保留。";await V(P.sessionId),E(ze=>[...ze,{id:`compaction-${Date.now()}`,role:"assistant",kind:"compaction",text:ge,createdAt:Date.now(),...we?{compaction:{tokensBefore:we}}:{}}]),m({id:Date.now(),message:`已压缩上下文:${ge.slice(0,72)}${ge.length>72?"…":""}`})}catch(ne){d(ne instanceof Error?ne.message:"上下文压缩失败")}finally{h?.(!1)}},[t,n,d,m,E,h,V]);return{sessionList:O,creatingSession:U,activateSession:V,refreshSessionList:te,deleteSession:K,createSession:oe,updateSession:async(D,P)=>{if(!(await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(D)}`,{method:"PATCH",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":er()},body:JSON.stringify(P)})).ok){d("会话更新失败");return}await te(),P.state==="archived"&&R.current?.cancel(D),P.state==="archived"&&n.sessionRef.current?.sessionId===D&&(H.current+=1,n.sessionRef.current=null,F(),a(null),window.localStorage.removeItem(Yr))},watchSessionTitle:$,compactSession:ce}}const So={"worker-managed-rerun-unsupported":"这次运行由 Console/Worker 启动,不能只从某个节点续跑","workspace-drift":"工作区在上次运行后又改过文件,旧结果不能接着用","controller-drift":"控制器版本已变化,不能接到上次运行上继续","binding-drift":"任务契约或源文件已变化,不能只续跑旧计划","restart-subgraph-contains-unsafe-shell":"下游包含会执行命令的验证步骤,不能只重跑这一段","restart-subgraph-contains-writer":"下游包含会改代码的写入步骤,不能只重跑这一段","restart-subgraph-contains-decision-gate":"下游包含需要人工决策的门禁,不能只重跑这一段","dynamic-rerun-unsupported":"这次运行含动态展开节点,不支持从节点续跑","parent-lifecycle-ineligible":"当前运行状态不允许从节点续跑","convergence-rerun-unsupported":"收敛型运行不支持从节点续跑","evaluation-rerun-unsupported":"带评估的运行不支持从节点续跑","budget-rerun-unsupported":"硬预算运行不支持从节点续跑","workspace-checkpoint-missing":"缺少工作区快照,无法安全地只续跑一段","skill-snapshot-invalid":"技能快照缺失或损坏,不能接到上次运行上继续","unresolved-errors-outside-reset-closure":"选中节点之外还有未解决的失败,只重跑这一段不够","selected-node-missing":"找不到要续跑的起始节点","ambiguous-skipped-rewrite":"跳过的节点有多个上游失败,无法自动选定起点","skipped-without-upstream-error":"该节点被跳过且没有明确的上游失败","parent-facts-invalid":"上次运行的证据不完整或已损坏,不能只续跑一段",RUN_NOT_ACTIVE:"这次运行不在活动状态,不能协作中止",RUN_NOT_CONSOLE_OWNED:"此运行不由当前 Console 持有,暂不支持协作中止",RUNNER_IDENTITY_MISMATCH:"运行身份已变化,不能中止这份过期请求",INTERRUPT_ALREADY_PENDING:"已有一条中止请求等待结算",RUN_ALREADY_TERMINAL:"运行已经结束,没有可中止的活 runner",INTERRUPT_NEEDS_RECONCILE:"中止请求已登记但无法确认 runner 已处理,需要对账"};function HM(){return Object.keys(So)}function vu(e){const t=e.trim().replace(/[.…]+$/,"");if(!t)return null;if(So[t])return{code:t};const n=t.lastIndexOf(":");if(n>0){const a=t.slice(n+1),s=t.slice(0,n);if(So[a])return{code:a,nodeId:s};const l=HM().find(c=>a.length>=3&&c.startsWith(a));if(l)return{code:l,nodeId:s}}return So[t]?{code:t}:null}function FM(e){const t=[];for(const n of e.blockedReasons??[]){const a=vu(String(n));a&&t.push(a)}for(const n of e.blockingNodes??[]){const a=n.reasonCode?.trim();if(!a)continue;const s=vu(n.nodeId?`${n.nodeId}:${a}`:a);s&&t.push(s)}if(t.length===0&&e.fallbackMessage?.trim()){const n=e.fallbackMessage.trim().replace(/^从节点重跑不具备安全资格[::]?\s*/,"").replace(/[。..]+$/,"");for(const a of n.split(/[;;]/)){const s=vu(a);s&&t.push(s)}}return t}function PM(e){const t=new Map;for(const a of e){const s=t.get(a.code)??[];a.nodeId&&!s.includes(a.nodeId)&&s.push(a.nodeId),t.set(a.code,s)}const n=[];for(const[a,s]of t){const l=So[a];l&&(s.length>0&&a.startsWith("restart-subgraph-contains-")?n.push(`${l}(${s.join("、")})`):n.push(l))}return n}function $M(e){return e.join("; ").includes("worker-managed-rerun-unsupported")||e.some(n=>vu(n)?.code==="worker-managed-rerun-unsupported")?"下一步:请点下方「重新排队 Worker Task」,从头完整执行。":"下一步:请改用「带反馈重新执行任务」,重新生成完整 DAG。"}function q6(e){const t=e.fallbackMessage?.trim();if(t?.startsWith("无法从该节点续跑"))return t;const n=FM(e),a=PM(n),s=n.map(c=>c.code),l=$M(s.length>0?s:[t??""]);return a.length===0?["无法从该节点续跑。这次续跑不够安全(工作区、控制器或下游步骤不允许只重跑一段)。",l].join(`
|
|
393
393
|
`):["无法从该节点续跑,因为:",...a.map(c=>`• ${c}`),"",l].join(`
|
|
394
|
-
`)}function GM(e){const t=e.trim();if(!t)return null;if(t.startsWith("无法从该节点续跑"))return t;if(/从节点重跑不具备安全资格|worker-managed-rerun-unsupported|restart-subgraph-contains-|workspace-drift|controller-drift|binding-drift/.test(t))return q6({fallbackMessage:t});if(/action must be a mutation-gate target/i.test(t))return"这个操作不能再走确认门。Worker 启动的任务请直接点「重新排队 Worker Task」;独立运行请点「带反馈重新执行任务」。";if(/cannot read dagReport run facts/i.test(t))return"读不到这次运行的失败报告,不能完整重跑。请先点「查看报告」或「Doctor 诊断」。";if(/dagRerunPlan run facts unavailable/i.test(t))return"读不到节点恢复资格,不能直接改走完整重跑。请先点「从失败节点恢复」查看资格,或先「查看报告」。";if(/node rerun plan is eligible/i.test(t))return"节点恢复是安全的,请改用「从失败节点恢复」,不必重新执行完整任务。";if(/does not support autonomous standaloneTaskRerun/i.test(t))return"当前失败不适合自动完整重跑。请先点「查看报告」,按建议操作。";if(/primaryRecovery requires a human decision/i.test(t))return"这次失败需要人工决策,不能自动重跑。请先点「查看报告」。";if(/is not bound to run/i.test(t))return"填写的任务 ID 与这次运行不匹配。请使用该运行绑定的原任务 ID。";if(/cannot read pool doctor/i.test(t))return"读不到任务队列状态,暂时不能重新排队。请稍后重试,或先跑 Doctor 诊断。";if(/not found in the pool doctor inventory/i.test(t))return"任务队列里找不到这个任务,不能重新排队。请确认 Task ID 来自 Worker 队列,而不是只填了 DAG 运行 ID。";if(/only Failed tasks are retry-eligible/i.test(t)){const n=t.match(/is ([A-Za-z_]+); only Failed/)?.[1];return n?`该任务当前是「${n}」,只有失败(Failed)的任务才能重新排队。`:"只有失败(Failed)的任务才能重新排队。请先确认任务已失败。"}return/featureId .+ does not match the pool task/i.test(t)?"Feature ID 与队列中的任务不一致。请改用队列里记录的 Feature ID,或留空后重试。":/RUN_NOT_CONSOLE_OWNED|不由当前 Console 持有/.test(t)?"此运行不由当前 Console 持有,暂不支持协作中止。请用 Doctor / 报告查看。":/RUNNER_IDENTITY_MISMATCH|运行身份已变化/.test(t)?"运行身份已变化,不能中止这份过期请求。请刷新后再试。":/INTERRUPT_ALREADY_PENDING|已有一条中止请求/.test(t)?"已有一条中止请求等待当前节点安全收敛。请稍候刷新,不要重复提交。":/RUN_ALREADY_TERMINAL|运行已经结束/.test(t)?"运行已经结束,没有可中止的活 runner。请改用报告或对账。":/INTERRUPT_NEEDS_RECONCILE|无法确认 runner 已处理/.test(t)?"中止请求已登记,但无法确认 runner 已处理。请用 Doctor 对账,不要当成已经中止。":/RUN_NOT_ACTIVE/.test(t)?"这次运行不在本机活动目录,或已经不是 running,不能协作中止。":null}const KM=[{pattern:/invalid (boot capability|confirmation header) token/i,copy:"页面凭证已失效(控制台可能已重启),请刷新页面(F5)后重试。"},{pattern:/mutation requires boot capability cookie|mutation requires confirmation header token/i,copy:"页面状态异常,请刷新页面(F5)后重试。"},{pattern:/Host header is required for non-loopback/i,copy:"请求主机校验失败:非回环绑定时要求 Host 头,请刷新页面或检查访问地址。"}];function qa(e){const t=(e??"").trim();if(!t)return"操作失败";const n=GM(t);if(n)return n;if(/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(t))return"控制器版本已变更(Console 启动后代码被重新编译)。请重启 Console 后再试,一次会话中途不要升级/重建控制器。";if(/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(t))return"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。";if(/reopened Pi sessionId mismatch/i.test(t))return"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。";if(/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(t))return"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。";if(/force-required|requires --force/i.test(t))return"该终态需要强制 Discard。请确认后勾选强制再试。";for(const a of KM)if(a.pattern.test(t))return a.copy;return t}function VM(e){return e.turnPhase==="stopping"?e.blockedByTurnId?{action:"queue-deferred",blockedByTurnId:e.blockedByTurnId}:{action:"hold"}:e.turnPhase==="idle"?{action:"send-now"}:{action:"hold"}}function v2(e){const{clientRequestId:t,blockedByTurnId:n,state:a}=e;if(!a)return{action:"hold"};if(a.deferredTurn?.clientRequestId===t)return{action:"deferred",deferredTurn:a.deferredTurn};if(a.activeTurn?.clientRequestId===t)return{action:"accepted",turn:a.activeTurn};if(a.latestTurn?.clientRequestId===t)return{action:"accepted",turn:a.latestTurn};const s=a.activeTurn?.turnId??a.activeTurnId??null;return a.turnPhase==="stopping"&&s===n?{action:"retry-deferred"}:_o(a)?{action:"hold"}:{action:"send-now"}}function YM(e){let t;const n=new Promise(a=>{t=a});return{...e,outcomePromise:n,resolveOutcome:t}}function y2(e="network error while creating turn"){return{kind:"ambiguous",message:e}}function XM(e="无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)"){return{kind:"ambiguous",message:e}}function x2(e){const{body:t,clientRequestId:n}=e,a=t.error?.code,s=t.error?.message??(e.httpOk?"turn was not accepted":`HTTP ${e.status}`);if(a==="TURN_ACTIVE"&&t.activeTurn?.turnId)return{kind:"adopt-active",activeTurn:t.activeTurn,message:"上一轮仍在运行,已重新连接;当前消息已保留。"};if(t.accepted===!0||e.httpOk&&t.turnId){const l=t.turn?.turnId??t.turnId;return l?{kind:"accepted",turnId:l,idempotent:t.idempotent===!0,turn:t.turn??{turnId:l,clientRequestId:n,state:t.state}}:{kind:"ambiguous",message:s}}return t.accepted===!1||a?{kind:"rejected",code:a,message:s}:{kind:"ambiguous",message:s}}function ZM(e){const t=e.clientRequestId,n=e.state?.activeTurn,a=e.state?.latestTurn;return n?.clientRequestId===t&&n.turnId?{kind:"accepted",turnId:n.turnId,idempotent:!0,turn:n}:a?.clientRequestId===t&&a.turnId?{kind:"accepted",turnId:a.turnId,idempotent:!0,turn:a}:n?.turnId?{kind:"adopt-active",activeTurn:n,message:"上一轮仍在运行,已重新连接;当前消息已保留。"}:null}function WM(e){const t=e.clientRequestId,n=e.state?.activeTurn,a=e.state?.latestTurn,s=n?.state??e.state?.activeTurnState??void 0,l=a?.state??e.state?.latestTurnState??void 0;if(n?.clientRequestId===t&&n.turnId)return is(s)?{action:"release-terminal",turnId:n.turnId,state:String(s)}:{action:"bind-active",turnId:n.turnId};if(a?.clientRequestId===t&&a.turnId){if(is(l))return{action:"release-terminal",turnId:a.turnId,state:String(l)};if(!n?.turnId||n.clientRequestId===t)return{action:"bind-active",turnId:a.turnId}}return!_o(e.state)&&!(!!n?.turnId&&n?.clientRequestId!==t)?{action:"release-not-accepted"}:{action:"hold"}}function _o(e){if(e?.activeTurnId||e?.activeTurn?.turnId)return!0;const t=e?.runtime;return t?t.isStreaming===!0||t.isPromptRunning===!0||t.isCompacting===!0||t.isBashRunning===!0:!1}function is(e){return e==="settled"||e==="aborted"||e==="failed"}function Ou(e){return e.pending.sessionId===e.sessionId&&e.pending.sessionGeneration===e.sessionGeneration&&e.pending.submitGeneration===e.submitGeneration}function QM(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/turns`}function w2(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/state`}function JM(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/events`}function eO(e,t,n){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/turns/${encodeURIComponent(n)}/abort`}function Ys(e){return e.stoppingTurnId||e.stopRequested?"stopping":e.activeTurnId||e.streaming||e.submitInFlight||e.pendingSubmission?"running":"idle"}function ml(e,t){const n=e.pendingSubmission;t&&n&&n.clientRequestId!==t||(e.submitInFlight=!1,(!t||n?.clientRequestId===t)&&(n?.clientRequestId?e.releasedClientRequestIds.add(n.clientRequestId):t&&e.releasedClientRequestIds.add(t),e.pendingSubmission=null),e.pendingSubmission||(e.stopRequested=!1))}function U6(e){e.stopRequested=!0}function Du(e){e.stopRequested=!1}function tO(e,t){return!(!t||e.abortPostedTurnIds.has(t))}function nO(e,t){t&&e.abortPostedTurnIds.add(t)}function ju(e,t){return!e.stopRequested||!tO(e,t)?null:(nO(e,t),e.stoppingTurnId=t,e.activeTurnId=t,t)}function S2(e,t){const n=e.pendingSubmission;return n&&n.clientRequestId!==t.clientRequestId?!1:(t.turnId&&e.settledTurnIds.add(t.turnId),ml(e,t.clientRequestId),Du(e),t.markIdle!==!1&&(e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null),!0)}function rO(e,t){return Ou({pending:t.pending,sessionId:e.sessionId,sessionGeneration:e.sessionGeneration,submitGeneration:e.submitGeneration})?(t.pending.acceptedTurnId=t.turnId,e.activeTurnId=t.turnId,e.turnAssistantIds.set(t.turnId,t.assistantId),e.streaming=!0,e.submitInFlight=!1,t.pending.resolveOutcome({kind:"accepted",turnId:t.turnId}),t.ui?.setStreaming(!0),t.ui?.setStreamingAssistantId(t.assistantId),t.ui?.setPendingImages([]),t.ui?.watchSessionTitle?.(t.sessionId),!0):(t.pending.resolveOutcome({kind:"stale"}),!1)}function aO(e,t){t.pending.resolveOutcome({kind:"adopt-active",activeTurn:{turnId:t.activeTurnId},message:t.message}),ml(e,t.pending.clientRequestId),t.current&&(t.ui?.clearEmptyAssistant(t.assistantId),t.ui?.setInput(t.text),t.ui?.setPendingImages(t.images),e.activeTurnId=t.activeTurnId,e.assistantId=null,e.streaming=!0,t.ui?.setStreaming(!0),t.ui?.setStreamingAssistantId(null),t.notice.setError(null),t.notice.showNotice(t.message))}function iO(e,t){if(t.pending.resolveOutcome({kind:"rejected",message:t.message}),ml(e,t.pending.clientRequestId),!t.current)return;const n=t.ui?.formatError?t.ui.formatError(t.message):t.message;t.ui?.setError(n),e.streaming=!1,e.assistantId=null,t.ui?.setStreaming(!1),t.ui?.setStreamingAssistantId(null),t.ui?.clearEmptyAssistant(t.assistantId),t.ui?.setInput(t.text),t.ui?.setPendingImages(t.images)}function sO(e,t,n){const a=Ou({pending:n.pending,sessionId:e.sessionId,sessionGeneration:e.sessionGeneration,submitGeneration:e.submitGeneration});if(t.kind==="accepted"){if(rO(e,{turnId:t.turnId,assistantId:n.assistantId,pending:n.pending,sessionId:n.sessionId,ui:n.acceptedUi})){const l=ju(e,t.turnId);l&&n.onAutoAbort?.(l)}return}if(t.kind==="adopt-active"){const s=a?ju(e,t.activeTurn.turnId):null;aO(e,{activeTurnId:t.activeTurn.turnId,message:t.message,assistantId:n.assistantId,text:n.text,images:n.images,pending:n.pending,current:a,notice:n.notice,ui:n.adoptUi}),s&&n.onAutoAbort?.(s);return}if(t.kind==="rejected"){iO(e,{message:t.message,assistantId:n.assistantId,text:n.text,images:n.images,pending:n.pending,current:a,ui:n.rejectedUi}),Du(e);return}if(t.kind==="stale"){n.pending.resolveOutcome(t),ml(e,n.pending.clientRequestId),Du(e);return}n.pending.resolveOutcome(t)}function lO(e,t,n,a){const s=e.pendingSubmission;if(!s)return"held";if(t.action==="bind-active"){const c=!!s.acceptedTurnId;c||(s.acceptedTurnId=t.turnId,e.activeTurnId=t.turnId,e.turnAssistantIds.set(t.turnId,s.assistantId),e.streaming=!0,e.submitInFlight=!1);const d=ju(e,t.turnId);return d&&a?.onAutoAbort?.(d),c?"held":"bound"}if(t.action==="release-terminal"||t.action==="release-not-accepted")return t.action==="release-terminal"&&e.settledTurnIds.add(t.turnId),ml(e,s.clientRequestId),Du(e),_o(n)||(e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.()),"released";const l=n?.activeTurn?.turnId??n?.activeTurnId??null;return l&&(e.activeTurnId=l),"held"}const oO="正在停止…",cO="正在停止…",uO="停止请求未完成,正在与服务端对账…",dO="停止请求失败,正在与服务端对账…";function k2(e){e.showNotice(oO)}function E2(e){if(e.networkError)return{action:"keep-busy-notice",message:dO};const t=e.body.turn?.state;return e.body.accepted===!0&&is(t)?{action:"terminal-idle",turnId:e.turnId}:e.body.error?.code==="TURN_ABORT_PENDING"?{action:"abort-pending-notice"}:e.body.error?.code==="CHAT_TURN_OWNER_LOST"||e.body.error?.code==="OWNER_LOST"?{action:"owner-lost-reconcile"}:e.httpOk?{action:"noop"}:{action:"keep-busy-notice",message:uO}}function Vm(e,t,n,a){const s=a?.sessionStillCurrent!==!1;if(t.action==="terminal-idle"){if(!s)return;e.settledTurnIds.add(t.turnId),e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.();return}if(t.action==="abort-pending-notice"){n.showNotice(cO);return}if(t.action==="owner-lost-reconcile"){if(!s)return;a?.runtimeBusy||(e.stoppingTurnId&&e.settledTurnIds.add(e.stoppingTurnId),e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.());return}if(t.action==="keep-busy-notice"){n.showNotice(t.message);return}}function T2(e,t){U6(e);const n=e.activeTurnId??e.pendingSubmission?.acceptedTurnId??null;if(n){const a=ju(e,n);return a?(t.notice&&k2(t.notice),t.postAbort(a),{abortedTurnId:a,stopRequested:!0}):{abortedTurnId:null,stopRequested:!0}}return t.notice&&k2(t.notice),{abortedTurnId:null,stopRequested:!0}}function la(e){return{submitInFlight:e.submitInFlightRef.current,pendingSubmission:e.pendingSubmissionRef.current,activeTurnId:e.activeTurnIdRef.current,streaming:e.streamingRef.current,assistantId:e.assistantIdRef.current,stoppingTurnId:e.stoppingTurnIdRef.current,settledTurnIds:e.settledTurnIdsRef.current,turnAssistantIds:e.turnAssistantIdsRef.current,sessionId:e.sessionRef.current?.sessionId??null,sessionGeneration:e.sessionGenerationRef.current,submitGeneration:e.submitGenerationRef.current,stopInFlight:e.stopInFlightRef.current,stopRequested:e.stopRequestedRef.current,abortPostedTurnIds:e.abortPostedTurnIdsRef.current,releasedClientRequestIds:e.releasedClientRequestIdsRef.current}}function oa(e,t){e.submitInFlightRef.current=t.submitInFlight,e.pendingSubmissionRef.current=t.pendingSubmission,e.activeTurnIdRef.current=t.activeTurnId,e.streamingRef.current=t.streaming,e.assistantIdRef.current=t.assistantId,e.stoppingTurnIdRef.current=t.stoppingTurnId,e.submitGenerationRef.current=t.submitGeneration,e.stopInFlightRef.current=t.stopInFlight,e.stopRequestedRef.current=t.stopRequested}function fO(e){return e.split(`
|
|
394
|
+
`)}function GM(e){const t=e.trim();if(!t)return null;if(t.startsWith("无法从该节点续跑"))return t;if(/从节点重跑不具备安全资格|worker-managed-rerun-unsupported|restart-subgraph-contains-|workspace-drift|controller-drift|binding-drift/.test(t))return q6({fallbackMessage:t});if(/action must be a mutation-gate target/i.test(t))return"这个操作不能再走确认门。Worker 启动的任务请直接点「重新排队 Worker Task」;独立运行请点「带反馈重新执行任务」。";if(/cannot read dagReport run facts/i.test(t))return"读不到这次运行的失败报告,不能完整重跑。请先点「查看报告」或「Doctor 诊断」。";if(/dagRerunPlan run facts unavailable/i.test(t))return"读不到节点恢复资格,不能直接改走完整重跑。请先点「从失败节点恢复」查看资格,或先「查看报告」。";if(/node rerun plan is eligible/i.test(t))return"节点恢复是安全的,请改用「从失败节点恢复」,不必重新执行完整任务。";if(/does not support autonomous standaloneTaskRerun/i.test(t))return"当前失败不适合自动完整重跑。请先点「查看报告」,按建议操作。";if(/primaryRecovery requires a human decision/i.test(t))return"这次失败需要人工决策,不能自动重跑。请先点「查看报告」。";if(/is not bound to run/i.test(t))return"填写的任务 ID 与这次运行不匹配。请使用该运行绑定的原任务 ID。";if(/cannot read pool doctor/i.test(t))return"读不到任务队列状态,暂时不能重新排队。请稍后重试,或先跑 Doctor 诊断。";if(/not found in the pool doctor inventory/i.test(t))return"任务队列里找不到这个任务,不能重新排队。请确认 Task ID 来自 Worker 队列,而不是只填了 DAG 运行 ID。";if(/only Failed tasks are retry-eligible/i.test(t)){const n=t.match(/is ([A-Za-z_]+); only Failed/)?.[1];return n?`该任务当前是「${n}」,只有失败(Failed)的任务才能重新排队。`:"只有失败(Failed)的任务才能重新排队。请先确认任务已失败。"}return/featureId .+ does not match the pool task/i.test(t)?"Feature ID 与队列中的任务不一致。请改用队列里记录的 Feature ID,或留空后重试。":/RUN_NOT_CONSOLE_OWNED|不由当前 Console 持有/.test(t)?"此运行不由当前 Console 持有,暂不支持协作中止。请用 Doctor / 报告查看。":/RUNNER_IDENTITY_MISMATCH|运行身份已变化/.test(t)?"运行身份已变化,不能中止这份过期请求。请刷新后再试。":/INTERRUPT_ALREADY_PENDING|已有一条中止请求/.test(t)?"已有一条中止请求等待当前节点安全收敛。请稍候刷新,不要重复提交。":/RUN_ALREADY_TERMINAL|运行已经结束/.test(t)?"运行已经结束,没有可中止的活 runner。请改用报告或对账。":/INTERRUPT_NEEDS_RECONCILE|无法确认 runner 已处理/.test(t)?"中止请求已登记,但无法确认 runner 已处理。请用 Doctor 对账,不要当成已经中止。":/RUN_NOT_ACTIVE/.test(t)?"这次运行不在本机活动目录,或已经不是 running,不能协作中止。":null}const KM=[{pattern:/invalid (boot capability|confirmation header) token/i,copy:"页面凭证已失效(控制台可能已重启),请刷新页面(F5)后重试。"},{pattern:/mutation requires boot capability cookie|mutation requires confirmation header token/i,copy:"页面状态异常,请刷新页面(F5)后重试。"},{pattern:/Host header is required for non-loopback/i,copy:"请求主机校验失败:非回环绑定时要求 Host 头,请刷新页面或检查访问地址。"}];function qa(e){const t=(e??"").trim();if(!t)return"操作失败";const n=GM(t);if(n)return n;if(/controller identity changed|package fingerprint changed|entry binary sha256 changed/i.test(t))return"控制器版本已变更(Console 启动后代码被重新编译,或提交了 package.json / bin / dist / skills 等指纹范围文件)。请重启 Console 进程使其重新加载当前构建后再重试本操作;一次会话中途不要重建控制器。";if(/Pi session file missing or not openable|cannot reopen chat session .* no persisted Pi session file/i.test(t))return"该对话的 Pi 会话文件已丢失,无法恢复上下文。请新建对话继续(历史记录无法重开)。";if(/reopened Pi sessionId mismatch/i.test(t))return"重开对话失败:Pi 会话身份与记录不一致(常见于会话文件丢失后被误建)。请新建对话继续。";if(/base HEAD .+ != frozen baseCommit|exact-base|not a descendant of frozen baseCommit/i.test(t))return"主分支已相对夜间冻结的 baseCommit 前进,无法安全 fast-forward harvest。请人工核对后使用 Discard(必要时勾选强制),或改走日间合并流程。";if(/force-required|requires --force/i.test(t))return"该终态需要强制 Discard。请确认后勾选强制再试。";for(const a of KM)if(a.pattern.test(t))return a.copy;return t}function VM(e){return e.turnPhase==="stopping"?e.blockedByTurnId?{action:"queue-deferred",blockedByTurnId:e.blockedByTurnId}:{action:"hold"}:e.turnPhase==="idle"?{action:"send-now"}:{action:"hold"}}function v2(e){const{clientRequestId:t,blockedByTurnId:n,state:a}=e;if(!a)return{action:"hold"};if(a.deferredTurn?.clientRequestId===t)return{action:"deferred",deferredTurn:a.deferredTurn};if(a.activeTurn?.clientRequestId===t)return{action:"accepted",turn:a.activeTurn};if(a.latestTurn?.clientRequestId===t)return{action:"accepted",turn:a.latestTurn};const s=a.activeTurn?.turnId??a.activeTurnId??null;return a.turnPhase==="stopping"&&s===n?{action:"retry-deferred"}:_o(a)?{action:"hold"}:{action:"send-now"}}function YM(e){let t;const n=new Promise(a=>{t=a});return{...e,outcomePromise:n,resolveOutcome:t}}function y2(e="network error while creating turn"){return{kind:"ambiguous",message:e}}function XM(e="无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)"){return{kind:"ambiguous",message:e}}function x2(e){const{body:t,clientRequestId:n}=e,a=t.error?.code,s=t.error?.message??(e.httpOk?"turn was not accepted":`HTTP ${e.status}`);if(a==="TURN_ACTIVE"&&t.activeTurn?.turnId)return{kind:"adopt-active",activeTurn:t.activeTurn,message:"上一轮仍在运行,已重新连接;当前消息已保留。"};if(t.accepted===!0||e.httpOk&&t.turnId){const l=t.turn?.turnId??t.turnId;return l?{kind:"accepted",turnId:l,idempotent:t.idempotent===!0,turn:t.turn??{turnId:l,clientRequestId:n,state:t.state}}:{kind:"ambiguous",message:s}}return t.accepted===!1||a?{kind:"rejected",code:a,message:s}:{kind:"ambiguous",message:s}}function ZM(e){const t=e.clientRequestId,n=e.state?.activeTurn,a=e.state?.latestTurn;return n?.clientRequestId===t&&n.turnId?{kind:"accepted",turnId:n.turnId,idempotent:!0,turn:n}:a?.clientRequestId===t&&a.turnId?{kind:"accepted",turnId:a.turnId,idempotent:!0,turn:a}:n?.turnId?{kind:"adopt-active",activeTurn:n,message:"上一轮仍在运行,已重新连接;当前消息已保留。"}:null}function WM(e){const t=e.clientRequestId,n=e.state?.activeTurn,a=e.state?.latestTurn,s=n?.state??e.state?.activeTurnState??void 0,l=a?.state??e.state?.latestTurnState??void 0;if(n?.clientRequestId===t&&n.turnId)return is(s)?{action:"release-terminal",turnId:n.turnId,state:String(s)}:{action:"bind-active",turnId:n.turnId};if(a?.clientRequestId===t&&a.turnId){if(is(l))return{action:"release-terminal",turnId:a.turnId,state:String(l)};if(!n?.turnId||n.clientRequestId===t)return{action:"bind-active",turnId:a.turnId}}return!_o(e.state)&&!(!!n?.turnId&&n?.clientRequestId!==t)?{action:"release-not-accepted"}:{action:"hold"}}function _o(e){if(e?.activeTurnId||e?.activeTurn?.turnId)return!0;const t=e?.runtime;return t?t.isStreaming===!0||t.isPromptRunning===!0||t.isCompacting===!0||t.isBashRunning===!0:!1}function is(e){return e==="settled"||e==="aborted"||e==="failed"}function Ou(e){return e.pending.sessionId===e.sessionId&&e.pending.sessionGeneration===e.sessionGeneration&&e.pending.submitGeneration===e.submitGeneration}function QM(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/turns`}function w2(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/state`}function JM(e,t){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/events`}function eO(e,t,n){return`${e}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/turns/${encodeURIComponent(n)}/abort`}function Ys(e){return e.stoppingTurnId||e.stopRequested?"stopping":e.activeTurnId||e.streaming||e.submitInFlight||e.pendingSubmission?"running":"idle"}function ml(e,t){const n=e.pendingSubmission;t&&n&&n.clientRequestId!==t||(e.submitInFlight=!1,(!t||n?.clientRequestId===t)&&(n?.clientRequestId?e.releasedClientRequestIds.add(n.clientRequestId):t&&e.releasedClientRequestIds.add(t),e.pendingSubmission=null),e.pendingSubmission||(e.stopRequested=!1))}function U6(e){e.stopRequested=!0}function Du(e){e.stopRequested=!1}function tO(e,t){return!(!t||e.abortPostedTurnIds.has(t))}function nO(e,t){t&&e.abortPostedTurnIds.add(t)}function ju(e,t){return!e.stopRequested||!tO(e,t)?null:(nO(e,t),e.stoppingTurnId=t,e.activeTurnId=t,t)}function S2(e,t){const n=e.pendingSubmission;return n&&n.clientRequestId!==t.clientRequestId?!1:(t.turnId&&e.settledTurnIds.add(t.turnId),ml(e,t.clientRequestId),Du(e),t.markIdle!==!1&&(e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null),!0)}function rO(e,t){return Ou({pending:t.pending,sessionId:e.sessionId,sessionGeneration:e.sessionGeneration,submitGeneration:e.submitGeneration})?(t.pending.acceptedTurnId=t.turnId,e.activeTurnId=t.turnId,e.turnAssistantIds.set(t.turnId,t.assistantId),e.streaming=!0,e.submitInFlight=!1,t.pending.resolveOutcome({kind:"accepted",turnId:t.turnId}),t.ui?.setStreaming(!0),t.ui?.setStreamingAssistantId(t.assistantId),t.ui?.setPendingImages([]),t.ui?.watchSessionTitle?.(t.sessionId),!0):(t.pending.resolveOutcome({kind:"stale"}),!1)}function aO(e,t){t.pending.resolveOutcome({kind:"adopt-active",activeTurn:{turnId:t.activeTurnId},message:t.message}),ml(e,t.pending.clientRequestId),t.current&&(t.ui?.clearEmptyAssistant(t.assistantId),t.ui?.setInput(t.text),t.ui?.setPendingImages(t.images),e.activeTurnId=t.activeTurnId,e.assistantId=null,e.streaming=!0,t.ui?.setStreaming(!0),t.ui?.setStreamingAssistantId(null),t.notice.setError(null),t.notice.showNotice(t.message))}function iO(e,t){if(t.pending.resolveOutcome({kind:"rejected",message:t.message}),ml(e,t.pending.clientRequestId),!t.current)return;const n=t.ui?.formatError?t.ui.formatError(t.message):t.message;t.ui?.setError(n),e.streaming=!1,e.assistantId=null,t.ui?.setStreaming(!1),t.ui?.setStreamingAssistantId(null),t.ui?.clearEmptyAssistant(t.assistantId),t.ui?.setInput(t.text),t.ui?.setPendingImages(t.images)}function sO(e,t,n){const a=Ou({pending:n.pending,sessionId:e.sessionId,sessionGeneration:e.sessionGeneration,submitGeneration:e.submitGeneration});if(t.kind==="accepted"){if(rO(e,{turnId:t.turnId,assistantId:n.assistantId,pending:n.pending,sessionId:n.sessionId,ui:n.acceptedUi})){const l=ju(e,t.turnId);l&&n.onAutoAbort?.(l)}return}if(t.kind==="adopt-active"){const s=a?ju(e,t.activeTurn.turnId):null;aO(e,{activeTurnId:t.activeTurn.turnId,message:t.message,assistantId:n.assistantId,text:n.text,images:n.images,pending:n.pending,current:a,notice:n.notice,ui:n.adoptUi}),s&&n.onAutoAbort?.(s);return}if(t.kind==="rejected"){iO(e,{message:t.message,assistantId:n.assistantId,text:n.text,images:n.images,pending:n.pending,current:a,ui:n.rejectedUi}),Du(e);return}if(t.kind==="stale"){n.pending.resolveOutcome(t),ml(e,n.pending.clientRequestId),Du(e);return}n.pending.resolveOutcome(t)}function lO(e,t,n,a){const s=e.pendingSubmission;if(!s)return"held";if(t.action==="bind-active"){const c=!!s.acceptedTurnId;c||(s.acceptedTurnId=t.turnId,e.activeTurnId=t.turnId,e.turnAssistantIds.set(t.turnId,s.assistantId),e.streaming=!0,e.submitInFlight=!1);const d=ju(e,t.turnId);return d&&a?.onAutoAbort?.(d),c?"held":"bound"}if(t.action==="release-terminal"||t.action==="release-not-accepted")return t.action==="release-terminal"&&e.settledTurnIds.add(t.turnId),ml(e,s.clientRequestId),Du(e),_o(n)||(e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.()),"released";const l=n?.activeTurn?.turnId??n?.activeTurnId??null;return l&&(e.activeTurnId=l),"held"}const oO="正在停止…",cO="正在停止…",uO="停止请求未完成,正在与服务端对账…",dO="停止请求失败,正在与服务端对账…";function k2(e){e.showNotice(oO)}function E2(e){if(e.networkError)return{action:"keep-busy-notice",message:dO};const t=e.body.turn?.state;return e.body.accepted===!0&&is(t)?{action:"terminal-idle",turnId:e.turnId}:e.body.error?.code==="TURN_ABORT_PENDING"?{action:"abort-pending-notice"}:e.body.error?.code==="CHAT_TURN_OWNER_LOST"||e.body.error?.code==="OWNER_LOST"?{action:"owner-lost-reconcile"}:e.httpOk?{action:"noop"}:{action:"keep-busy-notice",message:uO}}function Vm(e,t,n,a){const s=a?.sessionStillCurrent!==!1;if(t.action==="terminal-idle"){if(!s)return;e.settledTurnIds.add(t.turnId),e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.();return}if(t.action==="abort-pending-notice"){n.showNotice(cO);return}if(t.action==="owner-lost-reconcile"){if(!s)return;a?.runtimeBusy||(e.stoppingTurnId&&e.settledTurnIds.add(e.stoppingTurnId),e.streaming=!1,e.activeTurnId=null,e.assistantId=null,e.stoppingTurnId=null,a?.markIdle?.());return}if(t.action==="keep-busy-notice"){n.showNotice(t.message);return}}function T2(e,t){U6(e);const n=e.activeTurnId??e.pendingSubmission?.acceptedTurnId??null;if(n){const a=ju(e,n);return a?(t.notice&&k2(t.notice),t.postAbort(a),{abortedTurnId:a,stopRequested:!0}):{abortedTurnId:null,stopRequested:!0}}return t.notice&&k2(t.notice),{abortedTurnId:null,stopRequested:!0}}function la(e){return{submitInFlight:e.submitInFlightRef.current,pendingSubmission:e.pendingSubmissionRef.current,activeTurnId:e.activeTurnIdRef.current,streaming:e.streamingRef.current,assistantId:e.assistantIdRef.current,stoppingTurnId:e.stoppingTurnIdRef.current,settledTurnIds:e.settledTurnIdsRef.current,turnAssistantIds:e.turnAssistantIdsRef.current,sessionId:e.sessionRef.current?.sessionId??null,sessionGeneration:e.sessionGenerationRef.current,submitGeneration:e.submitGenerationRef.current,stopInFlight:e.stopInFlightRef.current,stopRequested:e.stopRequestedRef.current,abortPostedTurnIds:e.abortPostedTurnIdsRef.current,releasedClientRequestIds:e.releasedClientRequestIdsRef.current}}function oa(e,t){e.submitInFlightRef.current=t.submitInFlight,e.pendingSubmissionRef.current=t.pendingSubmission,e.activeTurnIdRef.current=t.activeTurnId,e.streamingRef.current=t.streaming,e.assistantIdRef.current=t.assistantId,e.stoppingTurnIdRef.current=t.stoppingTurnId,e.submitGenerationRef.current=t.submitGeneration,e.stopInFlightRef.current=t.stopInFlight,e.stopRequestedRef.current=t.stopRequested}function fO(e){return e.split(`
|
|
395
395
|
`).find(t=>t.startsWith("event: "))?.slice(7).trim()??"message"}function mO(){return new Promise(e=>window.setTimeout(e,25))}function Ym(e,t){t&&e(n=>n.filter(a=>!(a.id===t&&a.role==="assistant"&&!a.text.trim())))}function hO(e){const{origin:t,refs:n,session:a,thread:s,composer:l,setError:c,setAutoScroll:d,setNotice:m,recoveryVersion:h=0,watchSessionTitle:p}=e,{applySseBlock:b,setMessages:x,setStreaming:y,setStreamingAssistantId:E,streaming:N,setTurnPhase:A,setDeferredTurn:C}=s,{setInput:I,setPendingImages:O}=l,G=S.useCallback(ce=>{m&&m({id:Date.now(),message:ce})},[m]),j=S.useCallback(ce=>{const L=la(n);ml(L,ce),oa(n,L)},[n]),R=S.useCallback((ce,L,D)=>{n.sessionRef.current?.sessionId!==ce||n.sessionGenerationRef.current!==L||(n.streamingRef.current=!1,n.activeTurnIdRef.current=null,n.assistantIdRef.current=null,n.stoppingTurnIdRef.current=null,y(!1),A("idle"),E(null),Ym(x,D))},[n,y,A,E,x]),U=S.useCallback(async(ce,L,D)=>{for(;!D.aborted;){const P=n.eventsStreamStateRef.current;if(!P||P.sessionId!==ce||P.generation!==L)return;P.ready=!1;try{const _={Accept:"text/event-stream"},ne=n.lastEventIdRef.current;ne&&(_["Last-Event-ID"]=ne);const de=await fetch(JM(t,ce),{headers:_,credentials:"include",signal:D});if(!de.ok||!de.body){if(de.status===404)return;await xf(2e3,D);continue}const se=de.body.getReader(),ae=new TextDecoder;let we="",ge=!0;const ze=rs("a");for(;;){const{done:Se,value:$e}=await se.read();if(Se)break;we+=ae.decode($e,{stream:!0});const ct=we.split(`
|
|
396
396
|
|
|
397
397
|
`);we=ct.pop()??"";for(const mt of ct){if(fO(mt)==="stream_ready"){const Tt=n.eventsStreamStateRef.current;Tt?.sessionId===ce&&Tt.generation===L&&(Tt.ready=!0),ge=!1;continue}const Ze=n.assistantIdRef.current??ze,lt=b(mt,Ze,{replay:ge,targetSessionId:ce,generation:L});lt&&(n.lastEventIdRef.current=lt)}}const Me=n.eventsStreamStateRef.current;Me?.sessionId===ce&&Me.generation===L&&(Me.ready=!1),await xf(1e3,D)}catch{if(D.aborted)return;await xf(2e3,D)}}},[t,n,b]),W=S.useCallback((ce,L)=>{const D=n.eventsStreamStateRef.current;if(D?.sessionId===ce&&D.generation===L&&n.reconnectAbortRef.current)return;n.reconnectAbortRef.current?.abort();const P=new AbortController;n.reconnectAbortRef.current=P,n.eventsStreamStateRef.current={sessionId:ce,generation:L,ready:!1},U(ce,L,P.signal)},[n,U]),Q=S.useCallback(async(ce,L)=>{W(ce,L);const D=Date.now()+5e3;for(;Date.now()<D;){const P=n.eventsStreamStateRef.current;if(P?.sessionId===ce&&P.generation===L&&P.ready)return;if(n.sessionRef.current?.sessionId!==ce||n.sessionGenerationRef.current!==L)throw new Error("会话已切换");await mO()}throw new Error("事件连接未就绪,请检查 Console 连接后重试")},[n,W]),B=S.useCallback(async ce=>{try{const L=await fetch(w2(t,ce),{credentials:"include"}),D=await L.json().catch(()=>({}));return L.ok?D.state??null:null}catch{return null}},[t]),H=S.useCallback(async ce=>{try{const L=await fetch(QM(t,ce.sessionId),{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({clientRequestId:ce.clientRequestId,text:ce.text.trim()||"请查看附件图片。",images:ce.images.map(({type:P,mimeType:_,data:ne})=>({type:P,mimeType:_,data:ne}))})}),D=await L.json().catch(()=>({}));return{httpOk:L.ok,status:L.status,body:D}}catch{return{httpOk:!1,status:0,body:{},networkError:!0}}},[t]),F=S.useCallback(()=>({showNotice:G,setError:ce=>c(ce)}),[G,c]),te=S.useCallback(async(ce,L,D)=>{n.stoppingTurnIdRef.current=D,n.streamingRef.current=!1,y(!1),A("stopping"),E(null);try{const P=await fetch(eO(t,ce,D),{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:"{}"}),_=await P.json().catch(()=>({}));if(n.sessionRef.current?.sessionId!==ce||n.sessionGenerationRef.current!==L||n.stoppingTurnIdRef.current!==D)return;const ne=E2({httpOk:P.ok,turnId:D,body:_}),de=la(n);if(de.stoppingTurnId=D,ne.action==="owner-lost-reconcile"){const se=await B(ce),ae=n.sessionRef.current?.sessionId===ce&&n.sessionGenerationRef.current===L;Vm(de,ne,F(),{sessionStillCurrent:ae,runtimeBusy:_o(se??void 0),markIdle:()=>R(ce,L,n.assistantIdRef.current)}),oa(n,de),A(Ys(de));return}Vm(de,ne,F(),{sessionStillCurrent:!0,markIdle:()=>R(ce,L,n.assistantIdRef.current)}),oa(n,de),A(Ys(de)),de.streaming&&y(!0)}catch{const P=la(n);Vm(P,E2({httpOk:!1,turnId:D,body:{},networkError:!0}),F()),oa(n,P),n.streamingRef.current=!0,y(!0),A("stopping")}},[t,n,y,A,R,B,F]),K=S.useCallback((ce,L)=>{const D=la(n);D.sessionId=n.sessionRef.current?.sessionId??null,D.sessionGeneration=n.sessionGenerationRef.current,D.submitGeneration=n.submitGenerationRef.current;const P=_=>{O(_)};sO(D,ce,{assistantId:L.assistantId,text:L.text,images:L.images,pending:L.pending,sessionId:L.sessionId,notice:F(),acceptedUi:{setStreaming:y,setStreamingAssistantId:E,setPendingImages:P,watchSessionTitle:p},adoptUi:{clearEmptyAssistant:_=>Ym(x,_),setInput:I,setPendingImages:P,setStreaming:y,setStreamingAssistantId:E},rejectedUi:{setError:c,setStreaming:y,setStreamingAssistantId:E,clearEmptyAssistant:_=>Ym(x,_),setInput:I,setPendingImages:P,formatError:qa},onAutoAbort:_=>{te(L.sessionId,L.generation,_)}}),oa(n,D),A(Ys(D))},[n,F,y,A,E,O,p,x,I,c,te]),V=S.useCallback(async ce=>{const L=n.sessionRef.current;if(!L||!ce.text.trim()&&ce.images.length===0)return{action:"handled"};const D=s.deferredTurn;G("正在排队…");const P=de=>{C(de),I(""),O([]),c(null),G(D?"已更新停止后发送的消息":"已排队,将在上一轮停止后自动发送")},_=()=>{C(null),I(""),O([]),c(null),G("消息已进入发送")},ne=async()=>{const de=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(L.sessionId)}/deferred-turn`,{method:"PUT",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({clientRequestId:ce.clientRequestId,blockedByTurnId:ce.blockedByTurnId,text:ce.text,images:ce.images,...D?{expectedRevision:D.revision}:{}})}),se=await de.json().catch(()=>({}));return{response:de,body:se}};try{for(let de=0;de<2;de+=1){const{response:se,body:ae}=await ne();if(se.ok&&ae.accepted&&ae.deferredTurn)return P(ae.deferredTurn),{action:"handled"};if(ae.deferredTurn&&C(ae.deferredTurn),ae.error?.code!=="TURN_NOT_STOPPING")return c(ae.error?.message??`待发送消息未被服务端接受(HTTP ${se.status})`),{action:"handled"};const we=await B(L.sessionId),ge=v2({clientRequestId:ce.clientRequestId,blockedByTurnId:ce.blockedByTurnId,state:we??void 0});if(ge.action==="deferred")return P(ge.deferredTurn),{action:"handled"};if(ge.action==="accepted")return _(),{action:"handled"};if(!(ge.action==="retry-deferred"&&de===0))return ge.action==="send-now"&&!D?(G("上一轮已停止,正在发送当前消息…"),{action:"send-now"}):(c(ae.error?.message??"停止状态已变化,当前消息仍保留在输入框"),{action:"handled"})}return{action:"handled"}}catch(de){const se=await B(L.sessionId),ae=v2({clientRequestId:ce.clientRequestId,blockedByTurnId:ce.blockedByTurnId,state:se??void 0});return ae.action==="deferred"?(P(ae.deferredTurn),{action:"handled"}):ae.action==="accepted"?(_(),{action:"handled"}):ae.action==="send-now"&&!D?(G("上一轮已停止,正在发送当前消息…"),{action:"send-now"}):(c(de instanceof Error?`无法确认消息是否已排队:${de.message}`:"无法确认消息是否已排队,请刷新后查看服务端状态"),{action:"handled"})}},[t,n,s.deferredTurn,C,I,O,c,G,B]),$=S.useCallback(async()=>{const ce=n.sessionRef.current,L=s.deferredTurn;if(!(!ce||!L))try{const D=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(ce.sessionId)}/deferred-turn`,{method:"DELETE",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({clientRequestId:L.clientRequestId,expectedRevision:L.revision})}),P=await D.json().catch(()=>({}));if(!D.ok||!P.cancelled){c(P.error?.message??"待发送消息撤回失败");return}C(null),I(P.deferredTurn?.text??""),O(P.deferredTurn?.images??[]),c(null),G("待发送消息已移回输入框")}catch(D){c(D instanceof Error?D.message:String(D))}},[t,n,s.deferredTurn,C,I,O,c,G]),ee=S.useCallback(async(ce,L)=>{const D=n.sessionRef.current;if(!D||!ce.trim()&&L.length===0)return;const P=la(n),_=VM({turnPhase:Ys(P),blockedByTurnId:P.stoppingTurnId??P.activeTurnId}),ne=rs("chat-submit");if(_.action==="hold"){Ys(P)==="stopping"&&G("正在确认上一轮停止状态,当前消息已保留");return}if(_.action==="queue-deferred"&&(await V({text:ce,images:L,clientRequestId:ne,blockedByTurnId:_.blockedByTurnId})).action!=="send-now")return;const de=n.sessionRef.current,se=n.sessionGenerationRef.current;if(!de||de.sessionId!==D.sessionId||!ce.trim()&&L.length===0||n.streamingRef.current||n.submitInFlightRef.current||n.pendingSubmissionRef.current)return;n.submitInFlightRef.current=!0;const ae=++n.submitGenerationRef.current,we=rs("u"),ge=rs("a"),ze=ce.trim(),Me=L.slice(),Se=YM({clientRequestId:ne,submitGeneration:ae,sessionId:de.sessionId,sessionGeneration:se,text:ze,images:Me,assistantId:ge,userMessageId:we});n.pendingSubmissionRef.current=Se;try{await Q(de.sessionId,se)}catch(lt){n.sessionRef.current?.sessionId===de.sessionId&&n.sessionGenerationRef.current===se&&c(qa(lt instanceof Error?lt.message:String(lt))),j(ne);return}if(n.sessionRef.current?.sessionId!==de.sessionId||n.sessionGenerationRef.current!==se){j(ne);return}const $e={id:we,role:"user",text:ze,createdAt:Date.now()};x(lt=>[...lt,$e,{id:ge,role:"assistant",text:"",createdAt:Date.now()}]),I(""),d(!0),c(null),n.streamingRef.current=!0,A("running"),n.assistantIdRef.current=ge,y(!0),E(ge);const ct={sessionId:de.sessionId,generation:se,submitGeneration:ae,assistantId:ge,text:ze,images:Me,pending:Se},mt=await H({sessionId:de.sessionId,clientRequestId:ne,text:ze,images:Me});if(!Ou({pending:Se,sessionId:n.sessionRef.current?.sessionId,sessionGeneration:n.sessionGenerationRef.current,submitGeneration:n.submitGenerationRef.current})){Se.resolveOutcome({kind:"stale"}),j(ne);return}let Ze=mt.networkError?y2():x2({httpOk:mt.httpOk,status:mt.status,body:mt.body,clientRequestId:ne});if(Ze.kind==="ambiguous"){const lt=await B(de.sessionId),Tt=lt?ZM({clientRequestId:ne,state:lt}):null;if(Tt)Ze=Tt;else{const St=await H({sessionId:de.sessionId,clientRequestId:ne,text:ze,images:Me});if(!Ou({pending:Se,sessionId:n.sessionRef.current?.sessionId,sessionGeneration:n.sessionGenerationRef.current,submitGeneration:n.submitGenerationRef.current})){Se.resolveOutcome({kind:"stale"}),j(ne);return}if(Ze=St.networkError?y2("无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)"):x2({httpOk:St.httpOk,status:St.status,body:St.body,clientRequestId:ne}),Ze.kind==="ambiguous"){const wt=Ze.message||"无法确认 Turn 是否已创建,正在与服务端对账(不会重复提交新的请求 ID)";Ze=XM(wt),G(wt)}}}K(Ze,ct)},[t,n,Q,H,B,K,j,G,x,I,d,c,y,A,E,V]),oe=S.useCallback(async()=>{const ce=n.sessionRef.current?.sessionId,L=n.sessionGenerationRef.current;if(!ce)return;const D=la(n),P=T2(D,{postAbort:()=>{},notice:F()});if(oa(n,D),A("stopping"),P.abortedTurnId){if(n.stopInFlightRef.current)return;n.stopInFlightRef.current=!0;try{await te(ce,L,P.abortedTurnId)}finally{n.stopInFlightRef.current=!1}return}const _=n.pendingSubmissionRef.current;if(_&&!n.stopInFlightRef.current){n.stopInFlightRef.current=!0;try{const ne=await _.outcomePromise;if(n.sessionRef.current?.sessionId!==ce||n.sessionGenerationRef.current!==L)return;let de=null;if(ne.kind==="accepted")de=ne.turnId;else if(ne.kind==="adopt-active")de=ne.activeTurn.turnId;else{if(ne.kind==="ambiguous")return;n.stopRequestedRef.current=!1;return}if(!de)return;const se=la(n);U6(se);const ae=T2(se,{postAbort:()=>{},notice:F()});oa(n,se),ae.abortedTurnId&&await te(ce,L,ae.abortedTurnId)}finally{n.stopInFlightRef.current=!1}}},[n,F,te]);return S.useEffect(()=>{const ce=!!n.pendingSubmissionRef.current||n.submitInFlightRef.current||n.stopRequestedRef.current||!!n.activeTurnIdRef.current;if(!a||!N&&!ce)return;const L=a.sessionId,D=n.sessionGenerationRef.current;let P=!1;const _=async()=>{try{const ae=await fetch(w2(t,L),{credentials:"include"}),we=await ae.json().catch(()=>({}));if(P||!ae.ok||n.sessionRef.current?.sessionId!==L||n.sessionGenerationRef.current!==D)return;const ge=we.state,ze=n.pendingSubmissionRef.current;if(ze){const Ze=WM({clientRequestId:ze.clientRequestId,state:ge}),lt=la(n),Tt=lO(lt,Ze,ge,{markIdle:()=>R(L,D,n.assistantIdRef.current),onAutoAbort:St=>{te(L,D,St)}});if(oa(n,lt),A(Ys(lt)),ge&&"deferredTurn"in ge&&C(ge.deferredTurn??null),Tt==="bound"){y(!0);return}if(Tt==="released"||!ze.acceptedTurnId&&!lt.pendingSubmission?.acceptedTurnId)return}const Me=ge?.activeTurn?.turnId??ge?.activeTurnId??null;n.activeTurnIdRef.current=Me;const Se=_o(ge),$e=n.pendingSubmissionRef.current;if($e){const Ze=ge?.latestTurn?.clientRequestId===$e.clientRequestId&&is(ge?.latestTurn?.state),lt=ge?.activeTurn?.clientRequestId===$e.clientRequestId&&is(ge?.activeTurn?.state);if(Ze||lt){const Tt=lt?ge?.activeTurn?.turnId??null:ge?.latestTurn?.turnId??$e.acceptedTurnId??null,St=la(n);S2(St,{clientRequestId:$e.clientRequestId,turnId:Tt,markIdle:!Se}),oa(n,St),Se||R(L,D,n.assistantIdRef.current);return}}if(Se)return;const ct=n.assistantIdRef.current;if(Me&&!(is(ge?.activeTurn?.state)||is(ge?.activeTurnState)))return;Me&&n.settledTurnIdsRef.current.add(Me);const mt=$e?.clientRequestId;if(mt){const Ze=la(n);S2(Ze,{clientRequestId:mt,turnId:Me,markIdle:!0}),oa(n,Ze)}else j();R(L,D,ct)}catch{}},ne=()=>{document.visibilityState==="visible"&&_()},de=()=>{_()},se=window.setInterval(()=>{_()},15e3);return document.addEventListener("visibilitychange",ne),window.addEventListener("online",de),_(),()=>{P=!0,window.clearInterval(se),document.removeEventListener("visibilitychange",ne),window.removeEventListener("online",de)}},[t,n,a,N,A,R,j,te]),S.useEffect(()=>{if(!a)return;const ce=n.sessionGenerationRef.current;return W(a.sessionId,ce),()=>{const L=n.eventsStreamStateRef.current;L?.sessionId===a.sessionId&&L.generation===ce&&(n.reconnectAbortRef.current?.abort(),n.reconnectAbortRef.current=null,n.eventsStreamStateRef.current=null)}},[a,h,n,W]),{sendPrompt:ee,handleStop:oe,cancelDeferredTurn:$,openEventsStream:U}}function pO(e){const{origin:t,refs:n,thread:a,setError:s}=e,{interview:l,setInterview:c}=a,[d,m]=S.useState(""),h=S.useCallback(async()=>{const x=n.sessionRef.current;if(!x)return;const y=window.prompt("Task ID(例如 2026-07-26-my-task)")?.trim();if(!y)return;const E=await fetch(`${t}/api/operator/v1/chat/sessions/${x.sessionId}/interviews`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({taskId:y})}),N=await E.json();if(!E.ok){s(N.error?.message??`HTTP ${E.status}`);return}c({interviewSessionId:N.interview?.sessionId,taskId:y,state:N.interview?.state,question:N.question,draft:N.draft?.draft,draftSha256:N.draft?.draftSha256,assessment:N.assessment})},[t,n,c,s]),p=S.useCallback(async x=>{const y=n.sessionRef.current;if(!y||!l?.interviewSessionId||!l.question)return;const E=await fetch(`${t}/api/operator/v1/chat/sessions/${y.sessionId}/interviews/${l.interviewSessionId}/answers`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({questionId:l.question.id,response:x,...x==="override"?{text:d}:{}})}),N=await E.json();if(!E.ok){s(N.error?.message??`HTTP ${E.status}`);return}c(A=>({...A??{},state:N.interview?.state,question:N.question,draft:N.draft?.draft,draftSha256:N.draft?.draftSha256,assessment:N.assessment,taskKindRecommendation:N.taskKindRecommendation??A?.taskKindRecommendation})),m("")},[t,n,l,d,c,s]),b=S.useCallback(async()=>{const x=n.sessionRef.current;if(!x||!l?.interviewSessionId||!l.taskKindRecommendation)return;const y=await fetch(`${t}/api/operator/v1/chat/sessions/${x.sessionId}/interviews/${l.interviewSessionId}/task-kind/confirm`,{method:"POST",headers:{"Content-Type":"application/json","x-loop-console-confirmation":er()},credentials:"include",body:JSON.stringify({taskKind:l.taskKindRecommendation})}),E=await y.json();if(!y.ok){s(E.error?.message??`HTTP ${y.status}`);return}c(N=>({...N??{},confirmedTaskKind:N?.taskKindRecommendation,taskKindRecommendation:void 0,draft:E.draft?.draft,draftSha256:E.draft?.draftSha256,assessment:E.assessment}))},[t,n,l,c,s]);return{interviewAnswer:d,setInterviewAnswer:m,startInterview:h,answerInterview:p,confirmTaskKind:b}}function gO(e){const{origin:t,refs:n,sessionId:a,setError:s}=e,[l,c]=S.useState({}),[d,m]=S.useState(new Set),[h,p]=S.useState(null),[b,x]=S.useState([]),[y,E]=S.useState(null),[N,A]=S.useState(!1),C=S.useRef(new Set);C.current=d;const I=S.useCallback(async(Q="")=>{try{p(null);const B=await fetch(`${t}/api/operator/v1/chat/repo/tree?path=${encodeURIComponent(Q)}`,{credentials:"include"}),H=await B.json();if(!B.ok)throw new Error(H.error?.message??"无法读取仓库目录");c(F=>({...F,[Q]:H.data?.entries??[]}))}catch(B){p(B instanceof Error?B.message:String(B))}},[t]);S.useEffect(()=>{I()},[I]);const[O,G]=S.useState(0),j=S.useCallback(()=>{G(Q=>Q+1)},[]);S.useEffect(()=>{const Q=["",...C.current];for(const B of Q)I(B)},[I,O]),S.useEffect(()=>{const Q=()=>{document.hidden||j()};return document.addEventListener("visibilitychange",Q),()=>document.removeEventListener("visibilitychange",Q)},[j]);const R=S.useCallback(async Q=>{A(!0);try{const B=await fetch(`${t}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(Q)}`,{credentials:"include"}),H=await B.json();if(!B.ok||!H.data)throw new Error(H.error?.message??"无法预览文件");x(F=>{const te=[...F.filter(V=>V.path!==H.data.path),H.data],K=n.sessionRef.current?.sessionId;return K&&window.localStorage.setItem(`${Yr}.previews.${K}`,JSON.stringify(te.map(V=>V.path))),te}),E(H.data.path)}catch(B){s(B instanceof Error?B.message:String(B))}finally{A(!1)}},[t,n,s]);S.useEffect(()=>{if(!a)return;let Q=[];try{const B=JSON.parse(window.localStorage.getItem(`${Yr}.previews.${a}`)??"[]");Array.isArray(B)&&(Q=B.filter(H=>typeof H=="string").slice(0,10))}catch{}Q.length&&Promise.all(Q.map(async B=>{const H=await fetch(`${t}/api/operator/v1/chat/repo/file?path=${encodeURIComponent(B)}`,{credentials:"include"});if(H.ok)return(await H.json()).data})).then(B=>{if(n.sessionRef.current?.sessionId!==a)return;const H=B.filter(F=>!!F);x(H),E(H.at(-1)?.path??null)})},[t,a,n]);const U=S.useCallback(Q=>{m(B=>{const H=new Set(B);return H.has(Q)?H.delete(Q):H.add(Q),H}),l[Q]||I(Q)},[l,I]),W=S.useCallback(Q=>{x(B=>{const H=B.filter(F=>F.path!==Q);return a&&window.localStorage.setItem(`${Yr}.previews.${a}`,JSON.stringify(H.map(F=>F.path))),H}),E(B=>B===Q?b.find(H=>H.path!==Q)?.path??null:B)},[b,a]);return{tree:l,expandedDirs:d,treeError:h,previews:b,activePreviewPath:y,setActivePreviewPath:E,previewLoading:N,setPreviews:x,loadTree:I,refreshTree:j,openPreview:R,closePreview:W,toggleDir:U}}const bO=["operator","web","extension","prompt","skill"];function vO(e){const t=[];for(const n of bO){const a=[];for(let s=0;s<e.length;s+=1)e[s].source===n&&a.push({entry:e[s],globalIndex:s});a.length!==0&&t.push({source:n,label:Z_[n],items:a})}return t}function yO(e,t){return!Number.isFinite(t)||t<=0||!Number.isFinite(e)||e<0?0:e>=t?t-1:e}function xO(e){return e==="comfortable"?3:e==="compact"?2:1}function N2(e,t,n,a){const s=t.findIndex(b=>b.items.some(x=>x.globalIndex===e));if(s<0)return e;const l=t[s],c=l.items.findIndex(b=>b.globalIndex===e);if(c<0)return e;const d=Math.floor(c/n),m=c%n;if(a==="left"||a==="right"){if(n<=1)return e;const x=c+(a==="left"?-1:1);return x<0||x>=l.items.length||Math.floor(x/n)!==d?e:l.items[x].globalIndex}const h=a==="up"?-1:1,p=c+h*n;if(p>=0&&p<l.items.length)return l.items[p].globalIndex;for(let b=s+h;b>=0&&b<t.length;b+=h){const x=t[b];if(x.items.length===0)continue;const y=Math.floor((x.items.length-1)/n)*n,E=a==="up"?y+m:m;return E>=x.items.length?e:x.items[E].globalIndex}return e}function wO(e,t,n){const a=(e.left+e.right)/2;let s=null;for(const l of t){if(l.globalIndex===e.globalIndex)continue;const c=n==="up"?e.top-l.bottom:l.top-e.bottom;if(c<0)continue;const d=(l.left+l.right)/2,m=Math.abs(d-a);(s===null||c<s.gap||c===s.gap&&m<s.dist||c===s.gap&&m===s.dist&&l.globalIndex<s.index)&&(s={gap:c,dist:m,index:l.globalIndex})}return s?.index??null}function SO(e){const{origin:t,sessionId:n,refs:a,setError:s}=e,[l,c]=S.useState(""),[d,m]=S.useState([]),[h,p]=S.useState([]),[b,x]=S.useState(!1),y=S.useCallback(_=>{if(typeof _=="function"){c(ne=>{const de=_(ne);return x(de.startsWith("/")),de});return}c(_),x(_.startsWith("/"))},[]),[E,N]=S.useState(0),[A,C]=S.useState([]),[I,O]=S.useState(!1),[G,j]=S.useState(null),[R,U]=S.useState(0),W=S.useRef(null),Q=S.useRef(n),B=S.useRef(0),H=S.useCallback(_=>{y(_),x(_.startsWith("/")),N(0)},[]);S.useLayoutEffect(()=>{Q.current=n,B.current+=1,C([]),j(null),O(!1)},[n]);const F=S.useCallback(async()=>{if(!n){C([]),j(null),O(!1);return}const _=n,ne=B.current;Q.current=_,O(!0),j(null);const de=()=>Q.current===_&&B.current===ne;try{const se=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(_)}/commands`,{credentials:"include"});if(!de())return;if(!se.ok){j("动态命令加载失败"),C([]);return}const ae=await se.json().catch(()=>null),we=[];for(const ze of ae?.commands??[]){const Me=ze.source;if(Me!=="extension"&&Me!=="prompt"&&Me!=="skill")continue;const Se=String(ze.command??ze.name??"").trim();Se&&we.push({command:Se.startsWith("/")?Se:`/${Se}`,label:String(ze.label??ze.name??Se),description:String(ze.description??""),source:Me})}if(!de())return;C(we);const ge=typeof ae?.warning=="string"?ae.warning.trim():"";j(ge?ge.slice(0,160):null)}catch{if(!de())return;j("动态命令加载失败"),C([])}finally{de()&&O(!1)}},[t,n]);S.useEffect(()=>{n&&(!b&&R===0||F())},[n,b,R,F]);const te=S.useCallback(()=>{U(_=>_+1),F()},[F]);S.useEffect(()=>{if(!n)return;const _=l.slice(0,W.current?.selectionStart??l.length).match(/(?:^|\s)@([^\s@]*)$/);if(!_){m([]);return}const ne=window.setTimeout(()=>{fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(n)}/files?q=${encodeURIComponent(_[1]??"")}`).then(de=>de.ok?de.json():null).then(de=>m((de?.files??[]).map(se=>se.path)))},150);return()=>window.clearTimeout(ne)},[t,n,l]);const K=S.useCallback(_=>{const ne=W.current?.selectionStart??l.length,se=l.slice(0,ne).search(/@[^\s@]*$/);se<0||(y(`${l.slice(0,se)}@${_} ${l.slice(ne)}`),m([]))},[l]),V=S.useCallback(_=>{for(const ne of Array.from(_).slice(0,4)){if(!ne.type.startsWith("image/")||ne.size>5*1024*1024){s("图片仅支持 PNG/JPEG/GIF/WebP,单张不超过 5 MiB");continue}const de=new FileReader;de.onload=()=>{const se=String(de.result??""),ae=se.slice(se.indexOf(",")+1);p(we=>[...we,{name:ne.name,type:"image",mimeType:ne.type,data:ae}].slice(0,4))},de.readAsDataURL(ne)}},[s]),$=S.useCallback(_=>{p(ne=>ne.filter(de=>de!==_))},[]);S.useLayoutEffect(()=>{const _=W.current;_&&(_.style.height="auto",_.style.height=`${Math.min(_.scrollHeight,280)}px`)},[l]),S.useEffect(()=>{if(!n)return;const _=window.setTimeout(()=>{fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(n)}/draft`,{method:"PUT",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":er()},body:JSON.stringify({text:l})})},400);return()=>window.clearTimeout(_)},[t,n,l]);const ee=S.useMemo(()=>Y_(A),[A]),oe=S.useMemo(()=>l.startsWith("/")?X_(ee,l):[],[l,ee]);S.useEffect(()=>{N(_=>yO(_,oe.length))},[oe.length]);const ce=S.useCallback(()=>{a.isComposingRef.current=!0},[a]),L=S.useCallback(()=>{a.isComposingRef.current=!1,a.compositionEndedAtRef.current=Date.now()},[a]),D=S.useCallback(()=>a.isComposingRef.current,[a]),P=S.useCallback(()=>Date.now()-a.compositionEndedAtRef.current<100,[a]);return S.useEffect(()=>{$8({origin:t,sessionId:n,refs:a})},[t,n,a]),{input:l,setInput:y,handleInputChange:H,fileOptions:d,pendingImages:h,setPendingImages:p,addImagesFromFiles:V,removeImage:$,shortcutOpen:b,setShortcutOpen:x,shortcutIndex:E,setShortcutIndex:N,filteredShortcuts:oe,dynamicCommandsLoading:I,dynamicCommandsError:G,retryDynamicCommands:te,insertFileReference:K,textareaRef:W,onCompositionStart:ce,onCompositionEnd:L,isComposingNow:D,recentlyComposedNow:P}}const kO=[{toolId:"read",kind:"explore",description:"Pi 内置读取文件。"},{toolId:"write",kind:"explore",description:"Pi 内置写入文件(软约束:大改优先走 DAG)。"},{toolId:"edit",kind:"explore",description:"Pi 内置编辑文件(软约束:大改优先走 DAG)。"},{toolId:"bash",kind:"explore",description:"Pi 内置 shell 执行(软约束:优先受治路径)。"},{toolId:"grep",kind:"explore",description:"Pi 内置内容搜索。"},{toolId:"find",kind:"explore",description:"按名称查找文件路径。"},{toolId:"ls",kind:"explore",description:"列出目录内容。"},{toolId:"safe-read",kind:"explore",description:"安全读取仓库相对路径文件;拒绝敏感文件并自动脱敏 secret。"},{toolId:"safe-grep",kind:"explore",description:"安全搜索仓库内容;跳过敏感文件并自动脱敏搜索结果。"},{toolId:"git-status",kind:"explore",description:"固定参数执行 git status --porcelain(无 shell)。"},{toolId:"git-diff",kind:"explore",description:"固定参数查看 git diff;敏感路径不可查看且结果自动脱敏。"}];function EO(e){if(!e)return null;const t=(e.tools??[]).map(a=>({toolId:a.toolId,action:a.action,description:a.description,kind:a.kind??"read",cli:a.cli})),n=[...kO];return{explore:n,operator:t,total:n.length+t.length}}let TO=0;function NO(e){const{origin:t,session:n,setSession:a,refs:s,setError:l}=e,[c,d]=S.useState(null),[m,h]=S.useState([]),[p,b]=S.useState("idle"),[x,y]=S.useState(null),[E,N]=S.useState([]),[A,C]=S.useState(null),[I,O]=S.useState(null),[G,j]=S.useState(!1),[R,U]=S.useState(!1),[W,Q]=S.useState(!1),B=S.useRef(null),H=S.useRef(null),F=S.useRef(0);S.useEffect(()=>{F.current=-1,j(!1)},[n?.sessionId,j]);const K=sl().snapshot,V=S.useCallback(async()=>{try{const se=await fetch(`${t}/api/operator/v1/chat/capabilities`);if(!se.ok)return;const ae=await se.json();d(ae)}catch{}},[t]);S.useEffect(()=>{V()},[V]);const $=S.useCallback(async()=>{if(!n){h([]),b("idle");return}const se=n.sessionId;b("loading"),y(null);try{const ae=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(se)}/models`,{credentials:"include"}),we=await ae.json().catch(()=>null);if(s.sessionRef.current?.sessionId!==se)return;if(!ae.ok||!we){b("error"),y(we?.error?.message??`模型列表读取失败(HTTP ${ae.status})`);return}h(we.models??[]),N(we.thinkingLevels??[]),b("ready")}catch(ae){if(s.sessionRef.current?.sessionId!==se)return;b("error"),y(ae instanceof Error?ae.message:String(ae))}},[t,n,s]);S.useEffect(()=>{$()},[$]),S.useEffect(()=>{if(!n){C(null),O(null);return}const se=n.sessionId,ae=`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(se)}`;O(null),fetch(`${ae}/runtime-context`,{credentials:"include"}).then(async we=>{const ge=await we.json().catch(()=>null);if(!ge?.context||s.sessionRef.current?.sessionId!==se)return;const ze=ge.context,Me=V8().snapshot;C(Se=>F8(Se,ze,Me,se))}).catch(()=>{s.sessionRef.current?.sessionId===se&&O("注入上下文读取失败,请重试")})},[t,n?.sessionId,s]),S.useEffect(()=>{if(!K||!n||K.sessionId!==n.sessionId)return;const se=H2(K);a(ae=>{if(!ae||ae.sessionId!==K.sessionId||cM(ae,se))return ae;const we=z6(ae,se);return s.sessionRef.current=we,we}),C(ae=>{if(!ae)return ae;const we={...ae,...se.model?{model:se.model}:{},...se.thinkingLevel?{thinkingLevel:se.thinkingLevel}:{}};return we.model?.provider===ae.model?.provider&&we.model?.modelId===ae.model?.modelId&&we.thinkingLevel===ae.thinkingLevel?ae:we})},[K,n?.sessionId,s,a,C]);const ee=S.useCallback(async se=>{if(!n)return!1;const ae=n.sessionId,we=++TO;F.current=we,$2({type:"mutation-start",token:we}),j(!0);try{const ge=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(n.sessionId)}/model`,{method:"POST",credentials:"include",headers:{"content-type":"application/json","x-loop-console-confirmation":er()},body:JSON.stringify(se)}),ze=await ge.json().catch(()=>({}));return F.current!==we?!1:ge.ok?!ze.session||s.sessionRef.current?.sessionId!==ae?!1:G8(we,ae,ze.snapshot):(s.sessionRef.current?.sessionId===ae&&(l(ze.error?.message??`模型或思考等级切换失败(HTTP ${ge.status})`),tl()),!1)}catch(ge){return F.current!==we||s.sessionRef.current?.sessionId===ae&&l(ge instanceof Error?ge.message:String(ge)),!1}finally{K8(we,ae,s)&&F.current===we&&j(!1)}},[t,n,s,a,l]);S.useEffect(()=>{if(!R)return;const se=we=>{const ge=B.current;ge&&we.target instanceof Node&&!ge.contains(we.target)&&U(!1)},ae=we=>{we.key==="Escape"&&U(!1)};return document.addEventListener("mousedown",se),document.addEventListener("keydown",ae),()=>{document.removeEventListener("mousedown",se),document.removeEventListener("keydown",ae)}},[R]),S.useEffect(()=>{if(!W)return;const se=we=>{const ge=H.current;ge&&we.target instanceof Node&&!ge.contains(we.target)&&Q(!1)},ae=we=>{we.key==="Escape"&&Q(!1)};return document.addEventListener("mousedown",se),document.addEventListener("keydown",ae),()=>{document.removeEventListener("mousedown",se),document.removeEventListener("keydown",ae)}},[W]);const oe=S.useMemo(()=>EO(c),[c]),ce=K?(K.models??[]).map(se=>({provider:se.provider,id:se.id,...se.name?{name:se.name}:{},...se.hasCredentials!==void 0?{hasCredentials:se.hasCredentials}:{}})):m,L=K?.thinkingLevels?.length?K.thinkingLevels.map(se=>se.value):E,D=n?.model??A?.model,P=D?Ao(D.provider,D.modelId):"",_=K?.selection?.thinkingSelection??n?.thinkingLevel??"",ne=K?.selection?.effectiveThinkingLevel??n?.thinkingLevel??void 0,de=!P||ce.some(se=>Ao(se.provider,se.id)===P);return{capabilities:c,models:ce,modelsStatus:p,modelsError:x,onRetryModels:()=>{$()},thinkingLevels:L,runtimeContext:A,runtimeContextError:I,onRetryRuntimeContext:()=>{O(null),tl()},toolsOpen:R,setToolsOpen:U,runtimeContextOpen:W,setRuntimeContextOpen:Q,toolsMenuRef:B,runtimeContextMenuRef:H,switchRuntime:ee,switching:G,toolCatalog:oe,activeModel:D,activeModelRef:P,activeThinkingLevel:_,effectiveThinkingLevel:ne,activeModelListed:de}}const C2={comfortableMin:1450,compactMin:1100};function CO(e){return!Number.isFinite(e)||e<0?"narrow":e>=C2.comfortableMin?"comfortable":e>=C2.compactMin?"compact":"narrow"}const RO={mode:"comfortable",width:1600,landingDensity:"comfortable",emptyHeight:720};function AO(e,t){const[n,a]=S.useState(RO);return S.useEffect(()=>{const s=e.current;if(!s||typeof ResizeObserver>"u")return;const l=()=>{const p=s.getBoundingClientRect().width,b=t?.current??null,x=b?b.getBoundingClientRect().height:720;a({mode:CO(p),width:p,landingDensity:_I(x),emptyHeight:x})};l();const c=new ResizeObserver(()=>l());c.observe(s);let d=null;const m=()=>{const p=t?.current??null;p&&p!==d&&(d&&c.unobserve(d),c.observe(p),d=p,l())};m();const h=window.setInterval(m,250);return()=>{window.clearInterval(h),c.disconnect()}},[e,t]),n}function _O(e="none"){return{active:e}}function Xs(e,t){return{active:t}}function ta(e={active:"none"}){return{active:"none"}}function IO(e){return{sidebarDrawerOpen:e.active==="sidebar-drawer",processOpen:e.active==="process",runtimeContextOpen:e.active==="runtime-context",toolsOpen:e.active==="tools",activityOpen:e.active==="activity"}}const MO=160,OO=120,DO=120;function jO(e){return e?e.operationCards.length+e.humanGateCards.length+e.artifactCards.length:0}function LO(e){const t=jO(e),[n,a]=S.useState(()=>t>0?{phase:"visible",snapshot:e}:{phase:"hidden",snapshot:null}),s=S.useRef(n);s.current=n;const l=S.useMemo(()=>`${e?.sessionId??"none"}:${t}`,[e?.sessionId,t]);return S.useEffect(()=>{const c=[],d=s.current.snapshot;if(!e||t===0){if(!d){a({phase:"hidden",snapshot:null});return}a({phase:"leaving",snapshot:d}),c.push(window.setTimeout(()=>{a({phase:"hidden",snapshot:null})},OO))}else d?d.sessionId!==e.sessionId?(a({phase:"switching",snapshot:e}),c.push(window.setTimeout(()=>{a({phase:"visible",snapshot:e})},DO))):a({phase:"visible",snapshot:e}):(a({phase:"entering",snapshot:e}),c.push(window.setTimeout(()=>{a({phase:"visible",snapshot:e})},MO)));return()=>{for(const m of c)window.clearTimeout(m)}},[e,l,t]),n}function zO(e){const{origin:t,surface:n="standalone"}=e,a=n==="workspace",s=SM(),[l,c]=S.useState(null),[d,m]=S.useState(!1),[h,p]=S.useState(null),[b,x]=S.useState(!0),[y,E]=S.useState(!0),[N,A]=S.useState(()=>_O()),[C,I]=S.useState(null),[O,G]=S.useState(null),[j,R]=S.useState(0),U=S.useRef(null),W=S.useRef(null),Q=S.useRef(null),B=S.useRef(null),H=S.useRef(null),F=S.useRef(null),te=S.useRef(null),K=S.useRef(null),V=S.useRef(null),$=S.useRef(()=>{}),ee=S.useRef(null),oe=S.useRef(!1),ce=AO(Q,H),L=ce.mode,D=IO(N),P=D.processOpen,_=P,ne=D.runtimeContextOpen,de=D.activityOpen,se=S.useCallback(ue=>{A(Ee=>{const Oe=Ee.active==="process";return(typeof ue=="function"?ue(Oe):ue)?Xs(Ee,"process"):Ee.active==="process"?ta(Ee):Ee})},[]),ae=SO({origin:t,sessionId:h?.sessionId,refs:s,setError:c}),we=S.useMemo(()=>vO(ae.filteredShortcuts),[ae.filteredShortcuts]),ge=gO({origin:t,refs:s,sessionId:h?.sessionId,setError:c}),ze=S.useRef(()=>{}),Me=S.useCallback(ue=>{ze.current(ue)},[]),Se=MM({origin:t,refs:s,sessionId:h?.sessionId,setError:c,onReconcile:Me});ze.current=ue=>{const Ee=s.sessionRef.current?.sessionId;Ee&&(async()=>await Se.recoverSession(Ee)?(G({id:Date.now(),message:"已自动恢复:会话事件已重新同步,可继续对话。"}),R(Ue=>Ue+1)):G({id:Date.now(),message:"自动恢复未完成,将在重连时重试。"}))()};const $e=Se.operationCards.length+Se.humanGateCards.length+Se.artifactCards.length,ct=S.useMemo(()=>E6(Se.operationCards).length+Se.humanGateCards.length+Se.artifactCards.length,[Se.operationCards,Se.humanGateCards.length,Se.artifactCards.length]),mt=S.useMemo(()=>h?{sessionId:h.sessionId,operationCards:Se.operationCards,humanGateCards:Se.humanGateCards,artifactCards:Se.artifactCards}:null,[h,Se.operationCards,Se.humanGateCards,Se.artifactCards]),Ze=LO(mt),lt=S.useMemo(()=>cI({operations:Se.operationCards,gates:Se.humanGateCards,artifacts:Se.artifactCards}),[Se.operationCards,Se.humanGateCards,Se.artifactCards]),Tt=S.useCallback(ue=>lt.has(ue),[lt]),St=AI(B,L,h?.sessionId??"no-session"),wt=St.presentation==="sidecar";S.useEffect(()=>{const ue=L==="comfortable"&&N.active==="sidebar-drawer",Ee=wt&&N.active==="activity";(ue||Ee)&&A(Oe=>Oe.active===N.active?ta(Oe):Oe)},[wt,L,N.active]),S.useEffect(()=>{I(null)},[h?.sessionId]),S.useEffect(()=>{$e>0||N.active!=="activity"||A(ue=>ue.active==="activity"?ta(ue):ue)},[$e,N.active]);const Je=S.useCallback(ue=>{ue&&I(ue),wt||A(Ee=>Xs(Ee,"activity"))},[wt]),Nt=S.useCallback(()=>{A(ue=>ue.active==="activity"?ta(ue):ue)},[]),qt=S.useCallback(ue=>{const Ee=W.current;if(!Ee)return;const Ue=Array.from(Ee.querySelectorAll("[data-activity-ref]")).find(jt=>ue.includes(jt.dataset.activityRef??""));if(!Ue){G({id:Date.now(),message:"详细运行记录暂时没有对应的对话位置。"});return}Ue.scrollIntoView({block:"center",behavior:"smooth"}),Ue.classList.add("is-located"),window.setTimeout(()=>Ue.classList.remove("is-located"),1400),wt||Nt()},[wt,Nt]),Fe=UM({origin:t,refs:s,setSession:p,thread:Se,composer:{setInput:ae.setInput,setPendingImages:ae.setPendingImages},browser:{setPreviews:ge.setPreviews,setActivePreviewPath:ge.setActivePreviewPath},setError:c,setNotice:G,onCompactionChange:m,setProcessOpen:se,setAutoScroll:E}),Xt=hO({origin:t,refs:s,session:h,thread:Se,composer:{setInput:ae.setInput,setPendingImages:ae.setPendingImages},setError:c,setNotice:G,setAutoScroll:E,recoveryVersion:j,watchSessionTitle:Fe.watchSessionTitle}),he=pO({origin:t,refs:s,thread:Se,setError:c}),ve=NO({origin:t,session:h,setSession:p,refs:s,setError:c});S.useEffect(()=>{if(Se.streaming){Fe.refreshSessionList();return}ge.refreshTree();const ue=window.setTimeout(()=>{Fe.refreshSessionList()},1200);return()=>window.clearTimeout(ue)},[Se.streaming,Se.turnPhase,Se.deferredTurn?.revision,Se.deferredTurn?.state,Fe.refreshSessionList,ge.refreshTree]),S.useEffect(()=>{ve.runtimeContextOpen&&N.active!=="runtime-context"?A(ue=>Xs(ue,"runtime-context")):!ve.runtimeContextOpen&&N.active==="runtime-context"&&A(ue=>ta(ue))},[ve.runtimeContextOpen,N.active]),S.useEffect(()=>{N.active!=="runtime-context"&&ve.runtimeContextOpen&&ve.setRuntimeContextOpen(!1)},[N.active]),S.useEffect(()=>{if(!P&&!ne)return;const ue=Ee=>{if(Ee.target instanceof Node){if(P){const Oe=document.getElementById("oc-process-panel"),Ue=te.current;!Oe?.contains(Ee.target)&&!Ue?.contains(Ee.target)&&se(!1)}if(ne){const Oe=document.getElementById("oc-runtime-context-panel"),Ue=K.current;!Oe?.contains(Ee.target)&&!Ue?.contains(Ee.target)&&(ve.setRuntimeContextOpen(!1),A(jt=>jt.active==="runtime-context"?ta(jt):jt))}}};return document.addEventListener("mousedown",ue),()=>document.removeEventListener("mousedown",ue)},[P,ne,se,ve.setRuntimeContextOpen]),S.useEffect(()=>{Se.streaming&&N.active==="process"&&A(ta)},[Se.streaming,N.active]);const{sendPrompt:qe,handleStop:We,cancelDeferredTurn:nt}=Xt,$t=S.useRef(()=>{}),Zt=S.useCallback(async ue=>{const Ee=a2(ue);if(Ee&&Ee.action!=="unknown"&&Ee.action!=="pi-prompt"){$t.current(ue);return}await qe(ue,ae.pendingImages)},[qe,ae.pendingImages]);$.current=ue=>{Zt(ue)};const Pt=S.useCallback(()=>{ae.textareaRef.current?.focus()},[ae.textareaRef]),rt=S.useCallback(()=>{A(ue=>ue.active==="sidebar-drawer"?ta(ue):ue)},[]),on=S.useCallback(()=>{ve.setRuntimeContextOpen(!1),A(ue=>Xs(ue,"sidebar-drawer"))},[ve.setRuntimeContextOpen]),yt=S.useCallback(ue=>{Fe.activateSession(ue),rt(),queueMicrotask(()=>{W.current?.focus?.(),Pt()})},[Fe,rt,Pt]),Xn=S.useCallback(ue=>{ae.setInput(Ee=>`${Ee}${Ee&&!Ee.endsWith(" ")?" ":""}@${ue} `),rt(),queueMicrotask(()=>Pt())},[ae,rt,Pt]),Sn=S.useCallback(ue=>{ge.openPreview(ue),rt()},[ge,rt]),st=S.useCallback(()=>{const ue=W.current;if(!ue)return;const Ee=ue.scrollHeight-ue.scrollTop-ue.clientHeight<80;E(Ee)},[]);S.useEffect(()=>{y&&U.current?.scrollIntoView({behavior:"smooth",block:"end"})},[Se.messages,y,Se.streaming]),S.useEffect(()=>{if(!O)return;const ue=window.setTimeout(()=>G(null),6500);return()=>window.clearTimeout(ue)},[O]);const Ve=l?{id:O?.id??1,kind:"error",message:l}:O?{id:O.id,kind:"info",message:O.message}:null,xt=S.useCallback(ue=>{if(ue.action==="pi-prompt"||ue.command==="/name"||ue.command==="/compact"){ae.setInput(`${ue.command} `),ae.setShortcutOpen(!1),ae.textareaRef.current?.focus();return}$t.current(ue.command)},[ae]),Dt=S.useCallback(ue=>{const Ee=a2(ue),Oe=ue.trim(),Ue=Oe.split(/\s+/,1)[0]?.toLowerCase()??"";if(ae.setInput(""),ae.setShortcutOpen(!1),!Ee)return;if(Ee.action==="focus:interview"){if(!h){G({id:Date.now(),message:"请先创建或打开一个会话,再开始 Interview"});return}he.startInterview();return}const jt=V_(Ee.action);if(jt){e.onNavigateWorkspace?.(jt,{});return}if(Ee.action==="compact"){const _t=Oe.slice(Ue.length).trim();Fe.compactSession(_t||void 0);return}if(Ee.action==="name"){const _t=Oe.slice(Ue.length).trim(),bn=h?.sessionId;if(!bn){c("当前没有可重命名的会话");return}const Zn=Fe.sessionList.find(Cn=>Cn.sessionId===bn),dr=_t||window.prompt("会话名称",Zn?.title??Zn?.displayTitle??"")||"";dr.trim()&&Fe.updateSession(bn,{title:dr.trim()});return}if(Ee.action==="session"){const _t=h?.sessionId??"(none)",bn=Fe.sessionList.find(dr=>dr.sessionId===_t),Zn=bn?.title||bn?.displayTitle||"未命名对话";G({id:Date.now(),message:`当前会话:${Zn}(${_t})`});return}if(Ee.action==="copy"){const bn=[...Se.visibleMessages??[]].reverse().find(Zn=>Zn.role==="assistant");if(!bn?.text){c("没有可复制的助手消息");return}navigator.clipboard?.writeText(bn.text).then(()=>G({id:Date.now(),message:"已复制最后一条助手消息"}),()=>c("复制失败"));return}if(Ee.action==="unknown"){qe(Oe,ae.pendingImages);return}c(`未知 shortcut:${Ee.command}`)},[ae.setInput,ae.setShortcutOpen,ae.pendingImages,he.startInterview,e.onNavigateWorkspace,Fe,h,Se.visibleMessages,qe]);$t.current=Dt;const Wt=S.useCallback(ue=>{const Ee=s.isComposingRef.current||ue.nativeEvent.isComposing,Oe=Date.now()-s.compositionEndedAtRef.current<100;if(ae.shortcutOpen&&ae.filteredShortcuts.length>0&&!Ee&&!Oe){if(ue.key==="ArrowLeft"||ue.key==="ArrowRight"||ue.key==="ArrowUp"||ue.key==="ArrowDown"){ue.preventDefault();const Ue=xO(L);let jt=ae.shortcutIndex;if(ue.key==="ArrowLeft"||ue.key==="ArrowRight")jt=N2(ae.shortcutIndex,we,Ue,ue.key==="ArrowLeft"?"left":"right");else{const _t=ee.current;let bn=null;if(_t){const Zn=Array.from(_t.querySelectorAll("[data-shortcut-index]")).map(Cn=>{const sn=Cn.getBoundingClientRect();return{globalIndex:Number(Cn.dataset.shortcutIndex??-1),top:sn.top,bottom:sn.bottom,left:sn.left,right:sn.right}}).filter(Cn=>Number.isFinite(Cn.globalIndex)&&Cn.globalIndex>=0),dr=Zn.find(Cn=>Cn.globalIndex===ae.shortcutIndex)??null;dr&&(bn=wO(dr,Zn,ue.key==="ArrowUp"?"up":"down"))}jt=bn??N2(ae.shortcutIndex,we,Ue,ue.key==="ArrowUp"?"up":"down")}jt!==ae.shortcutIndex&&(oe.current=!0,ae.setShortcutIndex(jt));return}if(ue.key==="Escape"){ue.preventDefault(),ae.setShortcutOpen(!1);return}if(ue.key==="Enter"||ue.key==="Tab"){ue.preventDefault();const Ue=ae.filteredShortcuts[ae.shortcutIndex]??ae.filteredShortcuts[0];xt(Ue);return}}if(ue.key==="Enter"&&!ue.shiftKey&&(Ee||Oe)){Oe&&ue.preventDefault();return}if(ue.key==="Enter"&&!ue.shiftKey){if(ue.preventDefault(),s.streamingRef.current)return;Zt(ae.input);return}},[ae.input,ae.shortcutOpen,ae.filteredShortcuts,ae.shortcutIndex,ae.setShortcutIndex,ae.setShortcutOpen,s,Zt,xt,L,we,ee,oe]),Z=Se.visibleMessages.length>0||Se.operationCards.length>0||Se.humanGateCards.length>0||Se.artifactCards.length>0||!!Se.interview,xe=e.readiness==="setup-required"?"⚠ Pi 未就绪(setup-required):Chat 需要先完成 Pi 认证 / 模型配置。":e.readiness==="degraded"?"⚠ Pi 降级(degraded):可继续对话,但部分能力不可用。":null,je=f.jsx(Mw,{origin:t,open:b,layoutMode:L,drawerOpen:D.sidebarDrawerOpen,activeSessionId:h?.sessionId,activeSessionStreaming:Se.streaming,activeSessionTurnPhase:Se.turnPhase,sessions:Fe.sessionList,tree:ge.tree,expanded:ge.expandedDirs,treeError:ge.treeError,onToggleOpen:()=>x(ue=>!ue),onOpenDrawer:on,onCloseDrawer:rt,onCreate:()=>{Fe.createSession()},creatingSession:Fe.creatingSession,onActivate:ue=>{D.sidebarDrawerOpen?yt(ue):Fe.activateSession(ue)},onRename:(ue,Ee)=>{Fe.updateSession(ue,{title:Ee})},onSetState:(ue,Ee)=>{Fe.updateSession(ue,{state:Ee})},onDelete:ue=>Fe.deleteSession(ue),onRefreshTree:ge.refreshTree,onToggleDir:ge.toggleDir,onInsert:ue=>{D.sidebarDrawerOpen?Xn(ue):ae.setInput(Ee=>`${Ee}${Ee&&!Ee.endsWith(" ")?" ":""}@${ue} `)},onPreview:ue=>{D.sidebarDrawerOpen?Sn(ue):ge.openPreview(ue)},drawerTriggerRef:F}),et=["oc-workspace",P&&!_?"has-process":"",_?"has-process-overlay":""].filter(Boolean).join(" "),gt=ue=>f.jsx("div",{className:"oc-messages is-empty",ref:H,"data-landing-density":ce.landingDensity,children:f.jsx(M6,{mode:ue,readiness:e.readiness,density:ce.landingDensity,onSuggest:async Ee=>{Fe.creatingSession||(ue==="no-session"?await Fe.createSession()&&await Zt(Ee):await Zt(Ee))},disabled:Fe.creatingSession,onCreateSession:ue==="no-session"?()=>{Fe.createSession()}:void 0})});return f.jsxs("div",{className:"oc-shell",children:[a?null:f.jsxs("div",{className:"oc-banner",children:[f.jsxs("span",{className:"oc-banner-title",children:[f.jsx("span",{className:"oc-banner-dot","aria-hidden":"true"}),"对话"]}),f.jsxs("span",{className:"oc-banner-body",children:["用自然语言编排 loop-agent / agent-worker 的",f.jsx("strong",{children:"全部能力"}),"。这是 ",f.jsx("strong",{children:"Operator"})," 面:默认具备完整 Pi 工具(read/write/edit/bash/grep/find/ls)与 safe-* 探查、以及受策略约束的 operator action(ADR 0011)。",f.jsx("strong",{children:"软约束"}),":大改与高风险变更优先走受治 DAG 的 implement-pi / repair-pi 与 Human Gate,而非把 Chat 当作第二套 DAG kernel。"]})]}),xe&&f.jsx("div",{className:"oc-alert oc-alert-warning",children:xe}),f.jsx(DM,{toast:Ve,onDismiss:()=>{c(null),G(null)}}),h?f.jsxs("div",{className:et,ref:Q,"data-layout-mode":L,children:[je,f.jsxs("div",{ref:B,className:`oc-main${Z?"":" is-landing"}`,children:[!wt&&(L==="narrow"||$e>0)?f.jsxs("div",{className:"oc-main-topbar",children:[L==="narrow"?f.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:F,"aria-label":"打开会话与仓库","aria-expanded":D.sidebarDrawerOpen,onClick:()=>D.sidebarDrawerOpen?rt():on(),children:"会话与仓库"}):null,$e>0?f.jsxs("button",{type:"button",className:"oc-main-topbar-btn oc-activity-trigger",ref:V,"aria-controls":"oc-activity-rail","aria-expanded":de,onClick:()=>de?Nt():Je(),children:["运行活动 ",f.jsx("span",{children:ct})]}):null]}):null,f.jsx(n2,{previews:ge.previews,activePath:ge.activePreviewPath,loading:ge.previewLoading,onActivate:ge.setActivePreviewPath,onClose:ge.closePreview}),Z?f.jsxs("div",{className:"oc-thread-anchor-wrap",children:[f.jsx(sM,{scrollContainerRef:W,turnGroups:Se.turnGroups,measureKey:Se.visibleMessages.length}),f.jsx(nM,{scrollContainerRef:W,messagesEndRef:U,onScroll:st,hasThread:Z,readiness:e.readiness,streaming:Se.streaming,streamingAssistantId:Se.streamingAssistantId,messagesCount:Se.messages.length,visibleCount:Se.visibleMessages.length,onLoadMore:()=>Se.setHistoryLimit(ue=>ue+50),turnGroups:Se.turnGroups,interview:Se.interview,interviewAnswer:he.interviewAnswer,onInterviewAnswerChange:he.setInterviewAnswer,onAnswerInterview:ue=>{he.answerInterview(ue)},onConfirmTaskKind:()=>{he.confirmTaskKind()},onActivateActivity:Je,canActivateActivity:Tt,onSuggest:ue=>{Zt(ue)}})]}):gt("empty-session"),f.jsx(vM,{composer:ae,streaming:Se.streaming,turnPhase:Se.turnPhase,deferredTurn:Se.deferredTurn,hasThread:Z,layoutMode:L,paletteModel:we,shortcutPaletteRef:ee,paletteKeyboardNavRef:oe,onSend:ue=>{Zt(ue)},onStop:We,onCancelDeferred:nt,onKeyDown:Wt,onRunShortcut:Dt,models:ve.models,activeModel:ve.activeModel,activeModelRef:ve.activeModelRef,activeModelListed:ve.activeModelListed,activeThinkingLevel:ve.activeThinkingLevel,thinkingLevels:ve.thinkingLevels,onSwitchRuntime:ue=>{ve.switchRuntime(ue)},usage:Se.usage,unread:Se.unread,onCompact:()=>{Fe.compactSession()},compacting:d,processSummary:Se.streaming?null:Se.processSummary,processOpen:P,onToggleProcess:()=>{A(ue=>ue.active==="process"?ta(ue):Xs(ue,"process")),P||ve.setRuntimeContextOpen(!1)},processTriggerRef:te,runtimeContext:ve.runtimeContext,runtimeContextOpen:ne,onToggleRuntimeContext:()=>{ne?(ve.setRuntimeContextOpen(!1),A(ue=>ue.active==="runtime-context"?ta(ue):ue)):(ve.setRuntimeContextOpen(!0),A(ue=>Xs(ue,"runtime-context")))},runtimeContextTriggerRef:K})]}),$e>0&&!wt&&de?f.jsx("button",{type:"button",className:"oc-overlay-backdrop is-activity","aria-label":"关闭运行活动遮罩",onClick:Nt}):null,Ze.snapshot?f.jsx(NI,{origin:t,sessionId:Ze.snapshot.sessionId,presentation:St.presentation,sidecarRect:St.sidecarRect,phase:Ze.phase,open:de,focusRef:C,triggerRef:V,operationCards:Ze.snapshot.operationCards,humanGateCards:Ze.snapshot.humanGateCards,artifactCards:Ze.snapshot.artifactCards,onClose:Nt,onLocateConversation:qt,onNavigateWorkspace:e.onNavigateWorkspace}):null,ne&&ve.runtimeContext?f.jsx(wM,{panelOnly:!0,open:ne,onToggle:()=>{},onClose:()=>{ve.setRuntimeContextOpen(!1),A(ue=>ue.active==="runtime-context"?ta(ue):ue)},context:ve.runtimeContext,triggerRef:K}):null,P&&f.jsx(yM,{toolCalls:Se.toolCalls,overlay:_,onClose:()=>se(!1),triggerRef:te})]}):f.jsxs("div",{className:et,ref:Q,"data-layout-mode":L,children:[je,f.jsxs("div",{className:"oc-main is-landing",children:[L==="narrow"?f.jsx("div",{className:"oc-main-topbar",children:f.jsx("button",{type:"button",className:"oc-main-topbar-btn",ref:F,"aria-label":"打开会话与仓库","aria-expanded":D.sidebarDrawerOpen,onClick:()=>D.sidebarDrawerOpen?rt():on(),children:"会话与仓库"})}):null,f.jsx(n2,{previews:ge.previews,activePath:ge.activePreviewPath,loading:ge.previewLoading,onActivate:ge.setActivePreviewPath,onClose:ge.closePreview}),gt("no-session")]})]})]})}function BO(e){return e==="validate"||e==="apply"||e==="spine"?"contract":e}const Tp="X-Loop-Console-Confirmation",H6="agent-worker console doctor --repo .",Np=["LOW","MED","HIGH"];function qO(e){if(e.length===0)return"模型值不能为空";if(e.trim()!==e)return"模型值不能包含首尾空白";if(e==="default")return"default 是保留哨兵,不能作为模型值";if(e.startsWith("/")||e.endsWith("/")||e.includes("//"))return"provider/model 格式非法:不允许 /model、provider/ 或 a//b"}function UO(e){const t={};for(const n of Np){const a=qO(e[n]);a&&(t[n]=a)}return t}function R2(e){return{LOW:e?.LOW?.value??"",MED:e?.MED?.value??"",HIGH:e?.HIGH?.value??""}}function HO(e){return Np.every(t=>e[t]===void 0)}const Oh=[{kind:"standard",label:"后端研发(默认 DAG)",hint:"生成标准 hybrid DAG(contract → implement → verify)"},{kind:"frontend-implementation",label:"前端研发",hint:"生成 frontend-implementation 专用节点链"},{kind:"backend-test",label:"后端测试",hint:"生成 backend-test-dag(分析 / 用例 / pytest)"},{kind:"frontend-test",label:"前端测试",hint:"生成 frontend-test-dag(RAG 用例 + Playwright CLI)"}],F6={"setup-required":"需要设置",ready:"已就绪",degraded:"降级可用",unknown:"未知"},FO={idle:"未探测",match:"匹配",mismatch:"仓库不匹配",unavailable:"不可用"},P6={low:"低",medium:"中",high:"高"},$6={"validation-failed":"校验失败","contract-drift":"契约漂移","runtime-mismatch":"运行时不匹配","pause-on-human":"等待人工","verification-failed":"验证失败","orphan-unknown":"孤立/未知","terminal-failed":"已终止(失败)","terminal-succeeded":"已终止(成功)","needs-reconcile":"需要对账","running-active":"正在运行"},PO={idle:"空闲","not-started":"未开始","not-run":"未运行","n/a (MVP)":"不适用(MVP)",accepted:"已接受",succeeded:"已成功",running:"运行中",ran:"已执行"};function mu(e){return PO[e]??e}function Cp(){return window.__CONSOLE_CONFIRMATION_TOKEN__??""}function Lu(e){return`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}async function zu(e,t={},n){const a={"Content-Type":"application/json",[Tp]:Cp()},s=await fetch("/api/operator/v1/operations",{method:"POST",credentials:"same-origin",headers:a,body:JSON.stringify({action:e,actionParams:t,...n?{clientRequestId:n}:{}})});let l={};try{l=await s.json()}catch{l={ok:!1,error:{code:"INVALID_INPUT",message:"操作响应不是合法 JSON"}}}return{status:s.status,body:l}}const $O=new Set(["runDag","dagRerun","dagReconcileRun","dagRequestInterrupt","standaloneTaskRerun"]);function Xm(e,t){return q6({blockedReasons:e.blockedReasons,blockingNodes:e.blockingNodes,fallbackMessage:t})}async function A2(e,t=3e5){const n=Date.now();for(;Date.now()-n<t;){const a=await fetch(`/api/operator/v1/operations/${encodeURIComponent(e)}`,{credentials:"same-origin"});if(!a.ok)return null;const s=await a.json(),l=s.operation??s,c=l.state??"";if(c==="succeeded"||c==="failed"||c==="needs-reconcile"||c==="timed-out")return l;await new Promise(d=>setTimeout(d,250))}return{state:"needs-reconcile",errorMessage:"等待操作结果超时"}}const GO={};function KO(){const[e,t]=S.useState(()=>R6({env:GO?.VITE_OPERATOR_CHAT_DEFAULT_LANDING,storage:window.localStorage,location:window.location})),[n,a]=S.useState(null),[s,l]=S.useState("setup-required"),[c,d]=S.useState(null),[m,h]=S.useState(null),[p,b]=S.useState(!1),[x,y]=S.useState(!1),[E,N]=S.useState(null),[A,C]=S.useState(null),[I,O]=S.useState(null),[G,j]=S.useState(null),[R,U]=S.useState({command:"idle",dag:"not-started",verification:"not-run",promote:"n/a (MVP)"}),[W,Q]=S.useState("setup"),B=S.useCallback(V=>{Q($=>BO(typeof V=="function"?V($):V))},[]),H=s==="setup-required",F=s==="degraded",te=S.useCallback(V=>{V!==e&&(N(null),O(null),C(null)),t(V)},[e]),K=S.useCallback(async()=>{try{const $=await(await fetch("/api/health")).json();a($);const ee=$.piReadiness??"setup-required";l(ee),h(null),B(ee==="ready"||ee==="degraded"?oe=>oe==="setup"?"import-prd":oe:"setup")}catch(V){h(V instanceof Error?V.message:String(V))}try{const $=await(await fetch("/api/operator/v1/readiness")).json();d($),$.state&&l($.state)}catch{}},[B]);return{nav:e,setNav:t,selectNav:te,health:n,readiness:s,setReadiness:l,readinessReport:c,healthError:m,loadHealth:K,busy:p,setBusy:b,observeBusy:x,setObserveBusy:y,opError:E,setOpError:N,opMessage:A,setOpMessage:C,opErrorCode:I,setOpErrorCode:O,lastOpState:G,setLastOpState:j,layers:R,setLayers:U,step:W,setStep:B,setupBlocked:H,degraded:F}}const VO={bootstrapFromPrd:"正在导入 PRD 并创建任务:归档文档 → 确定性解析 → 语义结构化(MED→HIGH→LOW,每档最多 300 秒,请勿关闭页面)",importPrd:"正在导入 PRD:归档文档 → 确定性解析 → 语义结构化(MED→HIGH→LOW,每档最多 300 秒,请勿关闭页面)",interviewStart:"正在启动需求访谈…",interviewTurn:"正在提交访谈回答…",interviewSkip:"正在跳过访谈并生成评估…",contractValidate:"正在校验契约草稿…",contractDiff:"正在计算契约差异…",contractApply:"正在应用契约(写入需求与执行约束)…",spineCheck:"正在运行 Spine 审计…",dagGenerate:"正在生成 DAG…",standaloneTaskRerun:"正在带反馈重新执行任务:服务端校验资格后生成并启动新 DAG…",workerTaskRetry:"正在重新排队 Worker Task…"};function YO(e){const{shell:t,applyInterviewPayload:n}=e,{setBusy:a,setOpError:s,setOpErrorCode:l,setOpMessage:c,setReadiness:d,setStep:m,setNav:h,setLastOpState:p,setLayers:b,step:x,nav:y}=t,[E,N]=S.useState(null),[A,C]=S.useState([]),[I,O]=S.useState(!0),G=S.useRef(null),[j,R]=S.useState(null),[U,W]=S.useState(null),Q=S.useCallback(async(K,V={},$)=>{a(!0),s(null),l(null),c(VO[K]??null);try{const{status:ee,body:oe}=await zu(K,V,$?.clientRequestId);if(ee===412||oe.error?.code==="PI_SETUP_REQUIRED")return s(qa(oe.error?.message??"Pi 未就绪或已降级:该操作暂不可用")),l(oe.error?.code??"PI_SETUP_REQUIRED"),d("setup-required"),m("setup"),h("models"),oe;if(ee>=400||oe.ok===!1)return s(qa(oe.error?.message??oe.message??`操作失败(HTTP ${ee})`)),l(oe.error?.code??String(ee)),p(oe.state??`failed:${ee}`),b(D=>({...D,command:oe.error?.message??`failed:${oe.error?.code??ee}`})),oe;if(oe.operationId){const D=window.localStorage.getItem(Yr)?.trim();if(D&&fetch(`/api/operator/v1/chat/sessions/${encodeURIComponent(D)}/operation-links`,{method:"POST",credentials:"same-origin",headers:{"Content-Type":"application/json",[Tp]:Cp()},body:JSON.stringify({operationId:oe.operationId})}).then(P=>{P.ok||console.warn("Operator Chat operation link failed",P.status)}).catch(P=>console.warn("Operator Chat operation link failed",P)),N(oe.operationId),p(oe.state??"accepted"),b(P=>({...P,command:oe.state??"accepted",dag:K==="runDag"?"running":P.dag})),$O.has(K)){O(!0),c(`操作已接受,后台运行中:${oe.operationId}(请看事件流;可同时打开 Observe)`);const P=oe.operationId;A2(P,30*6e4).then(_=>{if(_){if(p(_.state??null),_.state==="failed"||_.state==="needs-reconcile"||_.state==="timed-out"){s(qa(_.errorMessage??_.stderrPreview??`操作失败:${_.state}`)),l(_.errorCode??_.state??null),b(ne=>({...ne,command:`failed:${_.errorCode??_.state}`}));return}_.state==="succeeded"&&(c(`${K} 已成功`),b(ne=>({...ne,command:"succeeded"})))}})}else{c(`操作已接受:${oe.operationId}`);const P=await A2(oe.operationId);if(P){if(p(P.state??null),P.state==="failed"||P.state==="needs-reconcile"||P.state==="timed-out")return s(qa(P.errorMessage??P.stderrPreview??`操作失败:${P.state}`)),l(P.errorCode??P.state??null),b(se=>({...se,command:`failed:${P.errorCode??P.state}`})),{ok:!1,operationId:oe.operationId,state:P.state,error:{code:P.errorCode??P.state??"INTERNAL_ERROR",message:P.errorMessage??P.stderrPreview??`操作失败:${P.state}`}};c(P.errorMessage?`${K}:${P.errorMessage}`:`${K} 已成功`),b(se=>({...se,command:P.state??"succeeded"}));const _=P.result??{},ne={ok:!0,operationId:oe.operationId,state:P.state??"succeeded",result:_};(K==="interviewStart"||K==="interviewTurn"||K==="interviewSkip")&&n(_);const de=_.confirmation;return de?.confirmationId&&(R(de.confirmationId),W(_)),$?.advanceTo&&m($.advanceTo),ne}}}else c(`${K} 已完成`),p(oe.state??"succeeded"),b(D=>({...D,command:"succeeded",verification:K==="contractValidate"||K==="spineCheck"?"ran":D.verification}));const ce=oe.result??{};(K==="interviewStart"||K==="interviewTurn"||K==="interviewSkip")&&n(ce);const L=ce.confirmation;return L?.confirmationId&&(R(L.confirmationId),W(ce)),$?.advanceTo&&m($.advanceTo),oe}catch(ee){s(ee instanceof Error?ee.message:String(ee));return}finally{a(!1)}},[n,a,s,l,c,d,m,h,p,b]),B=S.useCallback(K=>{if(!K)return"无响应";if(K.error?.message)return K.error.message;if(K.message)return K.message;const V=K.result;if(V&&typeof V=="object")try{return JSON.stringify(V).slice(0,1200)}catch{return"已返回结果"}return K.ok===!1?"失败":"成功"},[]),H=S.useCallback(K=>{if(!K||K.ok===!1||K.error)return!1;const V=K.result;if(!V)return!0;if(typeof V.valid=="boolean")return V.valid;const $=V.result;return $&&typeof $.valid=="boolean"?$.valid:!0},[]),F=S.useCallback(async K=>{G.current?.abort();const V=new AbortController;G.current=V,C($=>[...$,`开始跟随事件流 ${K}`]);try{const $=await fetch(`/api/operator/v1/operations/${encodeURIComponent(K)}/events`,{credentials:"same-origin",signal:V.signal});if(!$.ok||!$.body){C(L=>[...L,`事件流 HTTP ${$.status}`]);return}const ee=$.body.getReader(),oe=new TextDecoder;let ce="";for(;I;){const{done:L,value:D}=await ee.read();if(L)break;ce+=oe.decode(D,{stream:!0});const P=ce.split(`
|