@tea-agent/loop-agent 0.39.0-next.12 → 0.39.0-next.13

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.
Files changed (69) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/dist/build-stamp.json +2 -2
  3. package/dist/shared/operator/capabilities.js +65 -8
  4. package/dist/worker/console/chat/pi-runtime.js +11 -9
  5. package/dist/worker/console/chat/semantic-activity.js +17 -5
  6. package/dist/worker/console/operator-actions.js +74 -0
  7. package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-CRpBFiPS.js → abnfDiagram-N423BO3Z-Hfsot6rP.js} +1 -1
  8. package/dist/worker/console/static/assets/{arc-CFq00qel.js → arc-YGwEASin.js} +1 -1
  9. package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-Dk_urLIc.js → architectureDiagram-T3A2C74G-CmOM0F92.js} +1 -1
  10. package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-CLM5ocwZ.js → blockDiagram-VBNYF7ZC-DDLuaHC5.js} +1 -1
  11. package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-CWYcPCa3.js → c4Diagram-5PPSVZJV-B0Um43W4.js} +1 -1
  12. package/dist/worker/console/static/assets/channel-Dp_2Aqf1.js +1 -0
  13. package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-XILOozrE.js → chunk-2GRJ4B5K-DvBN4JZc.js} +1 -1
  14. package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-M4A5lfjn.js → chunk-2Q5K7J3B-B1UVgW4E.js} +1 -1
  15. package/dist/worker/console/static/assets/{chunk-5RXB4S5H-CHq6wHgP.js → chunk-5RXB4S5H-Cf0GgXzX.js} +1 -1
  16. package/dist/worker/console/static/assets/{chunk-5VM5RSS4-COevfhfp.js → chunk-5VM5RSS4-DbNA24sj.js} +1 -1
  17. package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-CN1D-iO4.js → chunk-6Q2QTUOP-Bi_0Be06.js} +1 -1
  18. package/dist/worker/console/static/assets/{chunk-GF5L2VYU-C6qAAYuy.js → chunk-GF5L2VYU-C8pPGvRd.js} +1 -1
  19. package/dist/worker/console/static/assets/{chunk-JWPE2WC7-DzjF9LjT.js → chunk-JWPE2WC7-BitQY8Z-.js} +1 -1
  20. package/dist/worker/console/static/assets/{chunk-KBJHAD2P-B4vicTaj.js → chunk-KBJHAD2P-U67GCiEo.js} +1 -1
  21. package/dist/worker/console/static/assets/{chunk-RYQCIY6F-D5nkzM8K.js → chunk-RYQCIY6F-IoJwXPBA.js} +1 -1
  22. package/dist/worker/console/static/assets/{chunk-XXDRQBXY-CUgkbah9.js → chunk-XXDRQBXY-YDZ_UHgE.js} +1 -1
  23. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL--CODy37j.js +1 -0
  24. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE--CODy37j.js +1 -0
  25. package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-faupYrw-.js → cose-bilkent-JH36ORCC-CUZgsiRC.js} +1 -1
  26. package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-Bev9OTKA.js → cynefin-VYW2F7L2-COmCh4pT.js} +1 -1
  27. package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-A0iHnoJm.js → cynefinDiagram-MW4NZA55-Ta6FSm68.js} +1 -1
  28. package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-Bboc-8dL.js → dagre-VZM6K2ZE-UdcR-VW9.js} +1 -1
  29. package/dist/worker/console/static/assets/{diagram-7IWD3JNH-CZcV9H_a.js → diagram-7IWD3JNH-DybcO3Et.js} +1 -1
  30. package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-I1kV6LGQ.js → diagram-B4RE2ZJO-wErDFWLw.js} +1 -1
  31. package/dist/worker/console/static/assets/{diagram-LBJQPF4R-BaSON7dV.js → diagram-LBJQPF4R-DkVHZWqz.js} +1 -1
  32. package/dist/worker/console/static/assets/{diagram-Q27KOJAE-KUeIAdtX.js → diagram-Q27KOJAE-DdqWs7QN.js} +1 -1
  33. package/dist/worker/console/static/assets/{diagram-UB23O5K3-DylPuZu-.js → diagram-UB23O5K3-C9dMVmDo.js} +1 -1
  34. package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-DcWoMdm7.js → ebnfDiagram-BXEA7PRR-B2T2WcBK.js} +1 -1
  35. package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-BxJOdF_H.js → erDiagram-JOGREHBK-Bt9rjDFq.js} +1 -1
  36. package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-DHxQgLL0.js → flowDiagram-UKHOOZJN-U8ic_tvi.js} +1 -1
  37. package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-CVz9xzIE.js → ganttDiagram-PKOTCBZU-BfQJdQoO.js} +1 -1
  38. package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-D4C2Yvbd.js → gitGraphDiagram-DS77QQ5N-CpMftH4O.js} +1 -1
  39. package/dist/worker/console/static/assets/{index-amy_wpJL.js → index-DKPXBrdc.js} +3 -3
  40. package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-Dr3ejwyd.js → infoDiagram-6WML65LV-DzqWXNO_.js} +1 -1
  41. package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-2kJbNO0g.js → ishikawaDiagram-WSZJBQD7-CJmGQ5Yp.js} +1 -1
  42. package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-CMfF4VjJ.js → journeyDiagram-NVQOT4AX-ChPtKFLz.js} +1 -1
  43. package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-DNN-Q1z3.js → kanban-definition-27J2QSJJ-PRe7wB5u.js} +1 -1
  44. package/dist/worker/console/static/assets/{linear-OB4Y8pOn.js → linear-DpKX6QNp.js} +1 -1
  45. package/dist/worker/console/static/assets/{mermaid.core-DFSjahzL.js → mermaid.core-Dnl76b7Y.js} +5 -5
  46. package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-D1WNklJu.js → mindmap-definition-FAOFIHXS-S9PCXc3J.js} +1 -1
  47. package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-Be2wdQXD.js → pegDiagram-VL7TDLO6-Du8e-FSX.js} +1 -1
  48. package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-hhWe5f6C.js → pieDiagram-7S7Q4E2Y-CY6OmHTc.js} +1 -1
  49. package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-BT597AoO.js → quadrantDiagram-CIZ2JOQS-C65GPhpj.js} +1 -1
  50. package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-BjqVRkNc.js → railroadDiagram-AXF67PYL-U6IUiTCL.js} +1 -1
  51. package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-D964n5d3.js → requirementDiagram-LRYGKXZP-D-I_9Qhi.js} +1 -1
  52. package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-_aPpr_hL.js → sankeyDiagram-W5VNT64P-B57Fhed0.js} +1 -1
  53. package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-BY0YUKL1.js → sequenceDiagram-SI44F4Z6-CJOtiw21.js} +1 -1
  54. package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-CgpnvQ-_.js → sizeCapture-X5ZJPWSS-FyX8zxSh.js} +1 -1
  55. package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-BfWR9Od2.js → stateDiagram-OKZ733FA-eF-pbs9t.js} +1 -1
  56. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-B-mvnLEc.js +1 -0
  57. package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-CWDqlFt_.js → swimlanes-SLNWSIFB-CcfkA-Dq.js} +2 -2
  58. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-JtpBmIv4.js +8 -0
  59. package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-DjURY-Nw.js → timeline-definition-Z64GVDOM-DH8FjnOK.js} +1 -1
  60. package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-D1nP5tpF.js → vennDiagram-T6HMQDX7-beoTagJg.js} +1 -1
  61. package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-BfRbqp6h.js → wardleyDiagram-T6FBY63Y-CQSfw4cK.js} +1 -1
  62. package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-D8FzmnEz.js → xychartDiagram-ELKLHX3M-CQgzQ6jn.js} +1 -1
  63. package/dist/worker/console/static/index.html +1 -1
  64. package/package.json +1 -1
  65. package/dist/worker/console/static/assets/channel-Dpjb6BMm.js +0 -1
  66. package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-Cv4CdaZH.js +0 -1
  67. package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-Cv4CdaZH.js +0 -1
  68. package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI--1Trd-FO.js +0 -1
  69. package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-BepA9ids.js +0 -8
@@ -302,10 +302,10 @@ 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`),wn=Ce,Pt=Xe),vt===void 0&&(vt=!0);const Wn={code:Pt,language:wn};Oi("before:highlight",Wn);const kr=Wn.result?Wn.result:Ln(Wn.language,Wn.code,vt);return kr.code=Wn.code,Oi("after:highlight",kr),kr}function Ln(Ce,Xe,vt,Pt){const wn=Object.create(null);function Wn(ze,Ge){return ze.keywords[Ge]}function kr(){if(!at.keywords){Cn.addText($t);return}let ze=0;at.keywordPatternRe.lastIndex=0;let Ge=at.keywordPatternRe.exec($t),dt="";for(;Ge;){dt+=$t.substring(ze,Ge.index);const Tt=Pn.case_insensitive?Ge[0].toLowerCase():Ge[0],un=Wn(at,Tt);if(un){const[Ur,bl]=un;if(Cn.addText(dt),dt="",wn[Tt]=(wn[Tt]||0)+1,wn[Tt]<=bt&&(Xa+=bl),Ur.startsWith("_"))dt+=Ge[0];else{const zo=Pn.classNameAliases[Ur]||Ur;Er(Ge[0],zo)}}else dt+=Ge[0];ze=at.keywordPatternRe.lastIndex,Ge=at.keywordPatternRe.exec($t)}dt+=$t.substring(ze),Cn.addText(dt)}function dr(){if($t==="")return;let ze=null;if(typeof at.subLanguage=="string"){if(!xe[at.subLanguage]){Cn.addText($t);return}ze=Ln(at.subLanguage,$t,!0,Lo[at.subLanguage]),Lo[at.subLanguage]=ze._top}else ze=Xn($t,at.subLanguage.length?at.subLanguage:null);at.relevance>0&&(Xa+=ze.relevance),Cn.__addSublanguage(ze._emitter,ze.language)}function tn(){at.subLanguage!=null?dr():kr(),$t=""}function Er(ze,Ge){ze!==""&&(Cn.startScope(Ge),Cn.addText(ze),Cn.endScope())}function Do(ze,Ge){let dt=1;const Tt=Ge.length-1;for(;dt<=Tt;){if(!ze._emit[dt]){dt++;continue}const un=Pn.classNameAliases[ze[dt]]||ze[dt],Ur=Ge[dt];un?Er(Ur,un):($t=Ur,kr(),$t=""),dt++}}function ms(ze,Ge){return ze.scope&&typeof ze.scope=="string"&&Cn.openNode(Pn.classNameAliases[ze.scope]||ze.scope),ze.beginScope&&(ze.beginScope._wrap?(Er($t,Pn.classNameAliases[ze.beginScope._wrap]||ze.beginScope._wrap),$t=""):ze.beginScope._multi&&(Do(ze.beginScope,Ge),$t="")),at=Object.create(ze,{parent:{value:at}}),at}function hl(ze,Ge,dt){let Tt=A(ze.endRe,dt);if(Tt){if(ze["on:end"]){const un=new t(ze);ze["on:end"](Ge,un),un.isMatchIgnored&&(Tt=!1)}if(Tt){for(;ze.endsParent&&ze.parent;)ze=ze.parent;return ze}}if(ze.endsWithParent)return hl(ze.parent,Ge,dt)}function hs(ze){return at.matcher.regexIndex===0?($t+=ze[0],1):(Za=!0,0)}function s0(ze){const Ge=ze[0],dt=ze.rule,Tt=new t(dt),un=[dt.__beforeBegin,dt["on:begin"]];for(const Ur of un)if(Ur&&(Ur(ze,Tt),Tt.isMatchIgnored))return hs(Ge);return dt.skip?$t+=Ge:(dt.excludeBegin&&($t+=Ge),tn(),!dt.returnBegin&&!dt.excludeBegin&&($t=Ge)),ms(dt,ze),dt.returnBegin?0:Ge.length}function fr(ze){const Ge=ze[0],dt=Xe.substring(ze.index),Tt=hl(at,ze,dt);if(!Tt)return Ke;const un=at;at.endScope&&at.endScope._wrap?(tn(),Er(Ge,at.endScope._wrap)):at.endScope&&at.endScope._multi?(tn(),Do(at.endScope,ze)):un.skip?$t+=Ge:(un.returnEnd||un.excludeEnd||($t+=Ge),tn(),un.excludeEnd&&($t=Ge));do at.scope&&Cn.closeNode(),!at.skip&&!at.subLanguage&&(Xa+=at.relevance),at=at.parent;while(at!==Tt.parent);return Tt.starts&&ms(Tt.starts,ze),un.returnEnd?0:Ge.length}function pl(){const ze=[];for(let Ge=at;Ge!==Pn;Ge=Ge.parent)Ge.scope&&ze.unshift(Ge.scope);ze.forEach(Ge=>Cn.openNode(Ge))}let Di={};function ps(ze,Ge){const dt=Ge&&Ge[0];if($t+=ze,dt==null)return tn(),0;if(Di.type==="begin"&&Ge.type==="end"&&Di.index===Ge.index&&dt===""){if($t+=Xe.slice(Ge.index,Ge.index+1),!oe){const Tt=new Error(`0 width match regex (${Ce})`);throw Tt.languageName=Ce,Tt.badRule=Di.rule,Tt}return 1}if(Di=Ge,Ge.type==="begin")return s0(Ge);if(Ge.type==="illegal"&&!vt){const Tt=new Error('Illegal lexeme "'+dt+'" for mode "'+(at.scope||"<unnamed>")+'"');throw Tt.mode=at,Tt}else if(Ge.type==="end"){const Tt=fr(Ge);if(Tt!==Ke)return Tt}if(Ge.type==="illegal"&&dt==="")return Ge.index===Xe.length||($t+=`
303
303
  `),1;if(gl>1e5&&gl>Ge.index*3)throw new Error("potential infinite loop, way more iterations than matches");return $t+=dt,dt.length}const Pn=rr(Ce);if(!Pn)throw Fe(De.replace("{}",Ce)),new Error('Unknown language: "'+Ce+'"');const jo=At(Pn);let gs="",at=Pt||jo;const Lo={},Cn=new Me.__emitter(Me);pl();let $t="",Xa=0,ba=0,gl=0,Za=!1;try{if(Pn.__emitTokens)Pn.__emitTokens(Xe,Cn);else{for(at.matcher.considerAll();;){gl++,Za?Za=!1:at.matcher.considerAll(),at.matcher.lastIndex=ba;const ze=at.matcher.exec(Xe);if(!ze)break;const Ge=Xe.substring(ba,ze.index),dt=ps(Ge,ze);ba=ze.index+dt}ps(Xe.substring(ba))}return Cn.finalize(),gs=Cn.toHTML(),{language:Ce,value:gs,relevance:Xa,illegal:!1,_emitter:Cn,_top:at}}catch(ze){if(ze.message&&ze.message.includes("Illegal"))return{language:Ce,value:yn(Xe),illegal:!0,relevance:0,_illegalBy:{message:ze.message,index:ba,context:Xe.slice(ba-100,ba+100),mode:ze.mode,resultSoFar:gs},_emitter:Cn};if(oe)return{language:Ce,value:yn(Xe),illegal:!1,relevance:0,errorRaised:ze,_emitter:Cn,_top:at};throw ze}}function ur(Ce){const Xe={value:yn(Ce),illegal:!1,relevance:0,_top:je,_emitter:new Me.__emitter(Me)};return Xe._emitter.addText(Ce),Xe}function Xn(Ce,Xe){Xe=Xe||Me.languages||Object.keys(xe);const vt=ur(Ce),Pt=Xe.filter(rr).filter(Va).map(tn=>Ln(tn,Ce,!1));Pt.unshift(vt);const wn=Pt.sort((tn,Er)=>{if(tn.relevance!==Er.relevance)return Er.relevance-tn.relevance;if(tn.language&&Er.language){if(rr(tn.language).supersetOf===Er.language)return 1;if(rr(Er.language).supersetOf===tn.language)return-1}return 0}),[Wn,kr]=wn,dr=Wn;return dr.secondBest=kr,dr}function nr(Ce,Xe,vt){const Pt=Xe&&Le[Xe]||vt;Ce.classList.add("hljs"),Ce.classList.add(`language-${Pt}`)}function xn(Ce){let Xe=null;const vt=Ot(Ce);if($e(vt))return;if(Oi("before:highlightElement",{el:Ce,language:vt}),Ce.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",Ce);return}if(Ce.children.length>0&&(Me.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(Ce)),Me.throwUnescapedHTML))throw new Yn("One of your code blocks includes unescaped HTML.",Ce.innerHTML);Xe=Ce;const Pt=Xe.textContent,wn=vt?wt(Pt,{language:vt,ignoreIllegals:!0}):Xn(Pt);Ce.innerHTML=wn.value,Ce.dataset.highlighted="yes",nr(Ce,vt,wn.language),Ce.result={language:wn.language,re:wn.relevance,relevance:wn.relevance},wn.secondBest&&(Ce.secondBest={language:wn.secondBest.language,relevance:wn.secondBest.relevance}),Oi("after:highlightElement",{el:Ce,result:wn,text:Pt})}function Zn(Ce){Me=it(Me,Ce)}const Ka=()=>{fs(),fe("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function fl(){fs(),fe("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Io=!1;function fs(){function Ce(){fs()}if(document.readyState==="loading"){Io||window.addEventListener("DOMContentLoaded",Ce,!1),Io=!0;return}document.querySelectorAll(Me.cssSelector).forEach(xn)}function Mo(Ce,Xe){let vt=null;try{vt=Xe(J)}catch(Pt){if(Fe("Language definition for '{}' could not be registered.".replace("{}",Ce)),oe)Fe(Pt);else throw Pt;vt=je}vt.name||(vt.name=Ce),xe[Ce]=vt,vt.rawDefinition=Xe.bind(null,J),vt.aliases&&pa(vt.aliases,{languageName:Ce})}function Mi(Ce){delete xe[Ce];for(const Xe of Object.keys(Le))Le[Xe]===Ce&&delete Le[Xe]}function ml(){return Object.keys(xe)}function rr(Ce){return Ce=(Ce||"").toLowerCase(),xe[Ce]||xe[Le[Ce]]}function pa(Ce,{languageName:Xe}){typeof Ce=="string"&&(Ce=[Ce]),Ce.forEach(vt=>{Le[vt.toLowerCase()]=Xe})}function Va(Ce){const Xe=rr(Ce);return Xe&&!Xe.disableAutodetect}function Ya(Ce){Ce["before:highlightBlock"]&&!Ce["before:highlightElement"]&&(Ce["before:highlightElement"]=Xe=>{Ce["before:highlightBlock"](Object.assign({block:Xe.el},Xe))}),Ce["after:highlightBlock"]&&!Ce["after:highlightElement"]&&(Ce["after:highlightElement"]=Xe=>{Ce["after:highlightBlock"](Object.assign({block:Xe.el},Xe))})}function Nn(Ce){Ya(Ce),tt.push(Ce)}function Oo(Ce){const Xe=tt.indexOf(Ce);Xe!==-1&&tt.splice(Xe,1)}function Oi(Ce,Xe){const vt=Ce;tt.forEach(function(Pt){Pt[vt]&&Pt[vt](Xe)})}function ga(Ce){return fe("10.7.0","highlightBlock will be removed entirely in v12.0"),fe("10.7.0","Please use highlightElement now."),xn(Ce)}Object.assign(J,{highlight:wt,highlightAuto:Xn,highlightAll:fs,highlightElement:xn,highlightBlock:ga,configure:Zn,initHighlighting:Ka,initHighlightingOnLoad:fl,registerLanguage:Mo,unregisterLanguage:Mi,listLanguages:ml,getLanguage:rr,registerAliases:pa,autoDetection:Va,inherit:it,addPlugin:Nn,removePlugin:Oo}),J.debugMode=function(){oe=!1},J.safeMode=function(){oe=!0},J.versionString=gt,J.regex={concat:C,lookahead:x,either:N,optional:S,anyNumberOfTimes:y};for(const Ce in Ie)typeof Ie[Ce]=="object"&&e(Ie[Ce]);return Object.assign(J,Ie),J},zt=It({});return zt.newInstance=()=>It({}),Wf=zt,zt.HighlightJS=zt,zt.default=zt,Wf}var Qf,cy;function ER(){if(cy)return Qf;cy=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,o={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:[o]},{begin:/'/,end:/'/,contains:[o]},{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},o,{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 Qf=e,Qf}var Jf,uy;function TR(){if(uy)return Jf;uy=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 o={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,o]};o.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"],S=t.SHEBANG({binary:`(${y.join("|")})`,relevance:10}),C={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},M=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],N=["true","false"],R={match:/(\/[a-z._-]+)+/},A=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],F=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],q=["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"],O=["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:M,literal:N,built_in:[...A,...F,"set","shopt",...q,...O]},contains:[S,t.SHEBANG(),C,x,c,d,R,m,h,p,b,a]}}return Jf=e,Jf}var em,dy;function NR(){if(dy)return em;dy=1;function e(t){const n=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",d="("+s+"|"+n.optional(o)+"[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(o)+t.IDENT_RE,relevance:0},S=n.optional(o)+t.IDENT_RE+"\\s*\\(",N={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"},R=[x,m,a,t.C_BLOCK_COMMENT_MODE,b,p],A={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:N,contains:R.concat([{begin:/\(/,end:/\)/,keywords:N,contains:R.concat(["self"]),relevance:0}]),relevance:0},F={begin:"("+d+"[\\*&\\s]+)+"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:N,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:N,relevance:0},{begin:S,returnBegin:!0,contains:[t.inherit(y,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:N,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,p,b,m,{begin:/\(/,end:/\)/,keywords:N,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:N,disableAutodetect:!0,illegal:"</",contains:[].concat(A,F,R,[x,{begin:t.IDENT_RE+"::",keywords:N},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{preprocessor:x,strings:p,keywords:N}}}return em=e,em}var tm,fy;function CR(){if(fy)return tm;fy=1;function e(t){const n=t.regex,a=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),s="decltype\\(auto\\)",o="[a-zA-Z_]\\w*::",d="(?!struct)("+s+"|"+n.optional(o)+"[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(o)+t.IDENT_RE,relevance:0},S=n.optional(o)+t.IDENT_RE+"\\s*\\(",C=["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"],M=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],N=["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"],R=["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"],q={type:M,keyword:C,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:N},O={className:"function.dispatch",relevance:0,keywords:{_hint:R},begin:n.concat(/\b/,`(?!${C.join("|")})`,t.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/))},P=[O,x,m,a,t.C_BLOCK_COMMENT_MODE,b,p],$={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:q,contains:P.concat([{begin:/\(/,end:/\)/,keywords:q,contains:P.concat(["self"]),relevance:0}]),relevance:0},W={className:"function",begin:"("+d+"[\\*&\\s]+)+"+S,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:q,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:q,relevance:0},{begin:S,returnBegin:!0,contains:[y],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[p,b]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:q,relevance:0,contains:[a,t.C_BLOCK_COMMENT_MODE,p,b,m,{begin:/\(/,end:/\)/,keywords:q,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:q,illegal:"</",classNameAliases:{"function.dispatch":"built_in"},contains:[].concat($,W,O,P,[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:q,contains:["self",m]},{begin:t.IDENT_RE+"::",keywords:q},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}return tm=e,tm}var nm,my;function AR(){if(my)return nm;my=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"],o=["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:o.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},S=t.inherit(y,{illegal:/\n/}),C={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},t.BACKSLASH_ESCAPE,S]},M={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},y]},N=t.inherit(M,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},S]});y.contains=[M,C,b,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.C_BLOCK_COMMENT_MODE],S.contains=[N,C,x,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,h,t.inherit(t.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const R={variants:[p,M,C,b,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},A={begin:"<",end:">",contains:[{beginKeywords:"in out"},m]},F=t.IDENT_RE+"(<"+t.IDENT_RE+"(\\s*,\\s*"+t.IDENT_RE+")*>)?(\\[\\])?",q={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"}},R,h,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},m,A,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,A,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:"("+F+"\\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,A],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:d,relevance:0,contains:[R,h,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},q]}}return nm=e,nm}var rm,hy;function RR(){if(hy)return rm;hy=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(),o=["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",S=/@-?\w[\w]*(-\w+)*/,C="[a-zA-Z-][a-zA-Z0-9_-]*",M=[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:"\\."+C,relevance:0},b.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+o.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,...M,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...M,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},b.FUNCTION_DISPATCH]},{begin:p.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:S},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:y,attribute:s.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...M,b.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b"}]}}return rm=m,rm}var am,py;function _R(){if(py)return am;py=1;function e(t){const n=t.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},s={begin:"^[-\\*]{3,}",end:"$"},o={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 S=[a,h];return[p,b,x,y].forEach(R=>{R.contains=R.contains.concat(S)}),S=S.concat(p,b),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:S},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:S}]}]},a,c,p,b,{className:"quote",begin:"^>\\s+",contains:S,end:"$"},o,s,h,d,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}return am=e,am}var im,gy;function IR(){if(gy)return im;gy=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 im=e,im}var sm,by;function MR(){if(by)return sm;by=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]+/),o=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",S="[0-9](_?[0-9])*",C={className:"number",relevance:0,variants:[{begin:`\\b(${y})(\\.(${S}))?([eE][+-]?(${S})|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"}]},M={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:d}]},P=[x,{variants:[{match:[/class\s+/,o,/\s+<\s+/,o]},{match:[/\b(class|module)\s+/,o]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:d},{match:[/(include|extend)\s+/,o],scope:{2:"title.class"},keywords:d},{relevance:0,match:[o,/\.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:[M]},{begin:t.IDENT_RE+"::"},{className:"symbol",begin:t.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[x,{begin:a}],relevance:0},C,{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=P,M.contains=P;const G=[{begin:/^\s*=>/,starts:{end:"$",contains:P}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:d,contains:P}}];return p.unshift(h),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:d,illegal:/\/\*/,contains:[t.SHEBANG({binary:"ruby"})].concat(G).concat(p).concat(P)}}return sm=e,sm}var lm,vy;function OR(){if(vy)return lm;vy=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 lm=e,lm}var om,yy;function DR(){if(yy)return om;yy=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 om=e,om}var cm,xy;function jR(){if(xy)return cm;xy=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 o={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,o,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,o,d,a]}}]}}return cm=e,cm}var um,wy;function LR(){if(wy)return um;wy=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 o(c){const d=c.regex,m="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",h=m+s("(?:<"+m+"~~~(?:\\s*,\\s*"+m+"~~~)*>)?",/~~~/g,2),S={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"]},C={className:"meta",begin:"@"+m,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},M={className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[c.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:S,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:[M,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:S,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:S,relevance:0,contains:[C,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,C]}}return um=o,um}var dm,Sy;function zR(){if(Sy)return dm;Sy=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"],o=["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(o,a,s);function m(h){const p=h.regex,b=(te,{after:be})=>{const ge="</"+te[0].slice(1);return te.input.indexOf(ge,be)!==-1},x=e,y={begin:"<>",end:"</>"},S=/<[A-Za-z0-9\\._:-]+\s*\/>/,C={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(te,be)=>{const ge=te[0].length+te.index,Ie=te.input[ge];if(Ie==="<"||Ie===","){be.ignoreMatch();return}Ie===">"&&(b(te,{after:ge})||be.ignoreMatch());let He;const Ee=te.input.substring(ge);if(He=Ee.match(/^\s*=/)){be.ignoreMatch();return}if((He=Ee.match(/^\s+extends\s+/))&&He.index===0){be.ignoreMatch();return}}},M={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},N="[0-9](_?[0-9])*",R=`\\.(${N})`,A="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",F={className:"number",variants:[{begin:`(\\b(${A})((${R})|\\.)?|(${R}))[eE][+-]?(${N})\\b`},{begin:`\\b(${A})\\b((${R})\\b|\\.)?|(${R})\\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},q={className:"subst",begin:"\\$\\{",end:"\\}",keywords:M,contains:[]},O={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,q],subLanguage:"xml"}},P={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,q],subLanguage:"css"}},$={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[h.BACKSLASH_ESCAPE,q],subLanguage:"graphql"}},W={className:"string",begin:"`",end:"`",contains:[h.BACKSLASH_ESCAPE,q]},G={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]},K=[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,O,P,$,W,{match:/\$\d+/},F];q.contains=K.concat({begin:/\{/,end:/\}/,keywords:M,contains:["self"].concat(K)});const ie=[].concat(G,q.contains),Q=ie.concat([{begin:/(\s*)\(/,end:/\)/,keywords:M,contains:["self"].concat(ie)}]),H={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:M,contains:Q},B={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"}}]},Y={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]}},re={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},we={variants:[{match:[/function/,/\s+/,x,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[H],illegal:/%/},z={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function L(te){return p.concat("(?!",te.join("|"),")")}const V={match:p.concat(/\b/,L([...o,"super","import","await"].map(te=>`${te}\\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},se={match:[/get|set/,/\s+/,x,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},H]},he="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+h.UNDERSCORE_IDENT_RE+")\\s*=>",ce={match:[/const|var|let/,/\s+/,x,/\s*/,/=\s*/,/(async\s*)?/,p.lookahead(he)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[H]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:M,exports:{PARAMS_CONTAINS:Q,CLASS_REFERENCE:Y},illegal:/#(?![$_A-Za-z])/,contains:[h.SHEBANG({label:"shebang",binary:"node",relevance:5}),re,h.APOS_STRING_MODE,h.QUOTE_STRING_MODE,O,P,$,W,G,{match:/\$\d+/},F,Y,{scope:"attr",match:x+p.lookahead(":"),relevance:0},ce,{begin:"("+h.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[G,h.REGEXP_MODE,{className:"function",begin:he,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:M,contains:Q}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:y.begin,end:y.end},{match:S},{begin:C.begin,"on:begin":C.isTrulyOpeningTag,end:C.end}],subLanguage:"xml",contains:[{begin:C.begin,end:C.end,skip:!0,contains:["self"]}]}]},we,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+h.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[H,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:[H]},V,z,B,se,{match:/\$[(.]/}]}}return dm=m,dm}var fm,ky;function BR(){if(ky)return fm;ky=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},o={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,o,a.APOS_STRING_MODE,a.QUOTE_STRING_MODE,d,t,a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}return fm=n,fm}var mm,Ey;function UR(){if(Ey)return mm;Ey=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(o){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:o.UNDERSCORE_IDENT_RE+"@"},h={className:"subst",begin:/\$\{/,end:/\}/,contains:[o.C_NUMBER_MODE]},p={className:"variable",begin:"\\$"+o.UNDERSCORE_IDENT_RE},b={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[p,h]},{begin:"'",end:"'",illegal:/\n/,contains:[o.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[o.BACKSLASH_ESCAPE,p,h]}]};h.contains.push(b);const x={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+o.UNDERSCORE_IDENT_RE+")?"},y={className:"meta",begin:"@"+o.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[o.inherit(b,{className:"string"}),"self"]}]},S=a,C=o.COMMENT("/\\*","\\*/",{contains:[o.C_BLOCK_COMMENT_MODE]}),M={variants:[{className:"type",begin:o.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},N=M;return N.variants[1].contains=[M],M.variants[1].contains=[N],{name:"Kotlin",aliases:["kt","kts"],keywords:c,contains:[o.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),o.C_LINE_COMMENT_MODE,C,d,m,x,y,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:c,relevance:5,contains:[{begin:o.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[o.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:[M,o.C_LINE_COMMENT_MODE,C],relevance:0},o.C_LINE_COMMENT_MODE,C,x,y,b,o.C_NUMBER_MODE]},C]},{begin:[/class|interface|trait/,/\s+/,o.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},o.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
  `},S]}}return mm=s,mm}var hm,Ty;function qR(){if(Ty)return hm;Ty=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(),o=["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=o.concat(c).sort().reverse();function h(p){const b=e(p),x=m,y="and or not only",S="[\\w-]+",C="("+S+"|@\\{"+S+"\\})",M=[],N=[],R=function(ie){return{className:"string",begin:"~?"+ie+".*?"+ie}},A=function(ie,Q,H){return{className:ie,begin:Q,relevance:H}},F={$pattern:/[a-z-]+/,keyword:y,attribute:s.join(" ")},q={begin:"\\(",end:"\\)",contains:N,keywords:F,relevance:0};N.push(p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,R("'"),R('"'),b.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},b.UNICODE_RANGE,b.HEXCOLOR,q,A("variable","@@?"+S,10),A("variable","@\\{"+S+"\\}"),A("built_in","~?`[^`]*?`"),{className:"attribute",begin:S+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},b.IMPORTANT,{beginKeywords:"and not"},b.FUNCTION_DISPATCH);const O=N.concat({begin:/\{/,end:/\}/,contains:M}),P={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(N)},$={begin:C+"\\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:N}}]},W={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:F,returnEnd:!0,contains:N,relevance:0}},U={className:"variable",variants:[{begin:"@"+S+"\\s*:",relevance:15},{begin:"@"+S}],starts:{end:"[;}]",returnEnd:!0,contains:O}},G={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:C,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,P,A("keyword","all\\b"),A("variable","@\\{"+S+"\\}"),{begin:"\\b("+a.join("|")+")\\b",className:"selector-tag"},b.CSS_NUMBER_MODE,A("selector-tag",C,0),A("selector-id","#"+C),A("selector-class","\\."+C,0),A("selector-tag","&",0),b.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+o.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+c.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:O},{begin:"!important"},b.FUNCTION_DISPATCH]},K={begin:S+`:(:)?(${x.join("|")})`,returnBegin:!0,contains:[G]};return M.push(p.C_LINE_COMMENT_MODE,p.C_BLOCK_COMMENT_MODE,W,U,K,$,G,P,b.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:M}}return hm=h,hm}var pm,Ny;function HR(){if(Ny)return pm;Ny=1;function e(t){const n="\\[=*\\[",a="\\]=*\\]",s={begin:n,end:a,contains:["self"]},o=[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:o.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:o}].concat(o)},t.C_NUMBER_MODE,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{className:"string",begin:n,end:a,contains:[s],relevance:5}])}}return pm=e,pm}var gm,Cy;function FR(){if(Cy)return gm;Cy=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]},o={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,o,c,d]}}return gm=e,gm}var bm,Ay;function PR(){if(Ay)return bm;Ay=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}/,o={$pattern:/[\w.]+/,keyword:a.join(" ")},c={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:o},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=(M,N,R="\\1")=>{const A=R==="\\1"?R:n.concat(R,N);return n.concat(n.concat("(?:",M,")"),N,/(?:\\.|[^\\\/])*?/,A,/(?:\\.|[^\\\/])*?/,R,s)},S=(M,N,R)=>n.concat(n.concat("(?:",M,")"),N,/(?:\\.|[^\\\/])*?/,R,s),C=[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:S("(?:m|qr)?",/\//,/\//)},{begin:S("m|qr",n.either(...x,{capture:!0}),/\1/)},{begin:S("m|qr",/\(/,/\)/)},{begin:S("m|qr",/\[/,/\]/)},{begin:S("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=C,d.contains=C,{name:"Perl",aliases:["pl","pm"],keywords:o,contains:C}}return bm=e,bm}var vm,Ry;function $R(){if(Ry)return vm;Ry=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 vm=e,vm}var ym,_y;function GR(){if(_y)return ym;_y=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),o=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":(H,B)=>{B.data._beginMatch=H[1]||H[2]},"on:end":(H,B)=>{B.data._beginMatch!==H[1]&&B.ignoreMatch()}},y=t.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),S=`[
305
- ]`,C={scope:"string",variants:[b,p,x,y]},M={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},N=["false","null","true"],R=["__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"],A=["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"],q={keyword:R,literal:(H=>{const B=[];return H.forEach(Y=>{B.push(Y),Y.toLowerCase()===Y?B.push(Y.toUpperCase()):B.push(Y.toLowerCase())}),B})(N),built_in:A},O=H=>H.map(B=>B.replace(/\|\d+$/,"")),P={variants:[{match:[/new/,n.concat(S,"+"),n.concat("(?!",O(A).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},$=n.concat(s,"\\b(?!\\()"),W={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),$],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,n.concat(/::/,n.lookahead(/(?!class\b)/)),$],scope:{1:"title.class",3:"variable.constant"}},{match:[o,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},U={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},G={relevance:0,begin:/\(/,end:/\)/,keywords:q,contains:[U,d,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M,P]},K={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",O(R).join("\\b|"),"|",O(A).join("\\b|"),"\\b)"),s,n.concat(S,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[G]};G.contains.push(K);const ie=[U,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M,P],Q={begin:n.concat(/#\[\s*\\?/,n.either(o,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:N,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:N,keyword:["new","array"]},contains:["self",...ie]},...ie,{scope:"meta",variants:[{match:o},{match:c}]}]};return{case_insensitive:!1,keywords:q,contains:[Q,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,K,W,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},P,{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:q,contains:["self",Q,d,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M]}]},{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]},C,M]}}return ym=e,ym}var xm,Iy;function KR(){if(Iy)return xm;Iy=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 xm=e,xm}var wm,My;function VR(){if(My)return wm;My=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return wm=e,wm}var Sm,Oy;function YR(){if(Oy)return Sm;Oy=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])*",S=`(\\b(${y}))?\\.(${y})|\\b(${y})\\.`,C=`\\b|${s.join("|")}`,M={className:"number",relevance:0,variants:[{begin:`(\\b(${y})|(${S}))[eE][+-]?(${y})[jJ]?(?=${C})`},{begin:`(${S})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${C})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${C})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${C})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${C})`},{begin:`\\b(${y})[jJ](?=${C})`}]},N={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:m,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},R={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:["self",h,M,x,t.HASH_COMMENT_MODE]}]};return p.contains=[x,M,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:m,illegal:/(<\/|\?)|=>/,contains:[h,M,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},x,N,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[R]},{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:[M,R,x]}]}}return Sm=e,Sm}var km,Dy;function XR(){if(Dy)return km;Dy=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return km=e,km}var Em,jy;function ZR(){if(jy)return Em;jy=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]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,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:[o,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:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return Em=e,Em}var Tm,Ly;function WR(){if(Ly)return Tm;Ly=1;function e(t){const n=t.regex,a=/(r#)?/,s=n.concat(a,t.UNDERSCORE_IDENT_RE),o=n.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,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 Tm=e,Tm}var Nm,zy;function QR(){if(zy)return Nm;zy=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(),o=["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=o,y="@[a-z-]+",S="and or not only",M={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("|")+")"},M,{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,M,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:S,attribute:s.join(" ")},contains:[{begin:y,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},M,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.HEXCOLOR,p.CSS_NUMBER_MODE]},p.FUNCTION_DISPATCH]}}return Nm=m,Nm}var Cm,By;function JR(){if(By)return Cm;By=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 Cm=e,Cm}var Am,Uy;function e_(){if(Uy)return Am;Uy=1;function e(t){const n=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={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"],S=b,C=[...p,...h].filter(O=>!b.includes(O)),M={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},N={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},R={match:n.concat(/\b/,n.either(...S),/\s*\(/),relevance:0,keywords:{built_in:S}};function A(O){return n.concat(/\b/,n.either(...O.map(P=>P.replace(/\s+/,"\\s+"))),/\b/)}const F={scope:"keyword",match:A(y),relevance:0};function q(O,{exceptions:P,when:$}={}){const W=$;return P=P||[],O.map(U=>U.match(/\|\d+$/)||P.includes(U)?U:W(U)?`${U}|0`:U)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:q(C,{when:O=>O.length<3}),literal:c,type:m,built_in:x},contains:[{scope:"type",match:A(d)},F,R,M,s,o,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,N]}}return Am=e,Am}var Rm,qy;function t_(){if(qy)return Rm;qy=1;function e($){return $?typeof $=="string"?$:$.source:null}function t($){return n("(?=",$,")")}function n(...$){return $.map(U=>e(U)).join("")}function a($){const W=$[$.length-1];return typeof W=="object"&&W.constructor===Object?($.splice($.length-1,1),W):{}}function s(...$){return"("+(a($).capture?"":"?:")+$.map(G=>e(G)).join("|")+")"}const o=$=>n(/\b/,$,/\w$/.test($)?/\b/:/\B/),c=["Protocol","Type"].map(o),d=["init","self"].map(o),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"],S=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]/),C=s(S,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),M=n(S,C,"*"),N=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]/),R=s(N,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),A=n(N,R,"*"),F=n(/[A-Z]/,R,"*"),q=["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\(/,A,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],O=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function P($){const W={match:/\s+/,relevance:0},U=$.COMMENT("/\\*","\\*/",{contains:["self"]}),G=[$.C_LINE_COMMENT_MODE,U],K={match:[/\./,s(...c,...d)],className:{2:"keyword"}},ie={match:n(/\./,s(...h)),relevance:0},Q=h.filter(Ke=>typeof Ke=="string").concat(["_|0"]),H=h.filter(Ke=>typeof Ke!="string").concat(m).map(o),B={variants:[{className:"keyword",match:s(...H,...d)}]},Y={$pattern:s(/\b\w+/,/#\w+/),keyword:Q.concat(x),literal:p},re=[K,ie,B],we={match:n(/\./,s(...y)),relevance:0},z={className:"built_in",match:n(/\b/,s(...y),/(?=\()/)},L=[we,z],V={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:M},{match:`\\.(\\.|${C})+`}]},se=[V,_],he="([0-9]_*)+",ce="([0-9a-fA-F]_*)+",te={className:"number",relevance:0,variants:[{match:`\\b(${he})(\\.(${he}))?([eE][+-]?(${he}))?\\b`},{match:`\\b0x(${ce})(\\.(${ce}))?([pP][+-]?(${he}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},be=(Ke="")=>({className:"subst",variants:[{match:n(/\\/,Ke,/[0\\tnr"']/)},{match:n(/\\/,Ke,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ge=(Ke="")=>({className:"subst",match:n(/\\/,Ke,/[\t ]*(?:[\r\n]|\r\n)/)}),Ie=(Ke="")=>({className:"subst",label:"interpol",begin:n(/\\/,Ke,/\(/),end:/\)/}),He=(Ke="")=>({begin:n(Ke,/"""/),end:n(/"""/,Ke),contains:[be(Ke),ge(Ke),Ie(Ke)]}),Ee=(Ke="")=>({begin:n(Ke,/"/),end:n(/"/,Ke),contains:[be(Ke),Ie(Ke)]}),et={className:"string",variants:[He(),He("#"),He("##"),He("###"),Ee(),Ee("#"),Ee("##"),Ee("###")]},pt=[$.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[$.BACKSLASH_ESCAPE]}],Ht={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:pt},_t=Ke=>{const bt=n(Ke,/\//),It=n(/\//,Ke);return{begin:bt,end:It,contains:[...pt,{scope:"comment",begin:`#(?!.*${It})`,end:/$/}]}},vn={scope:"regexp",variants:[_t("###"),_t("##"),_t("#"),Ht]},Tn={match:n(/`/,A,/`/)},mn={className:"variable",match:/\$\d+/},Ft={className:"variable",match:`\\$${R}+`},Qe=[Tn,mn,Ft],xt={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:O,contains:[...se,te,et]}]}},Lt={scope:"keyword",match:n(/@/,s(...q),t(s(/\(/,/\s+/)))},Fe={scope:"meta",match:n(/@/,A)},Vt=[xt,Lt,Fe],fe={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)/,R,"+")},{className:"type",match:F,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:n(/\s+&\s+/,t(F)),relevance:0}]},ve={begin:/</,end:/>/,keywords:Y,contains:[...G,...re,...Vt,V,fe]};fe.contains.push(ve);const Ue={match:n(A,/\s*:/),keywords:"_|0",relevance:0},Ze={begin:/\(/,end:/\)/,relevance:0,keywords:Y,contains:["self",Ue,...G,vn,...re,...L,...se,te,et,...Qe,...Vt,fe]},Je={begin:/</,end:/>/,keywords:"repeat each",contains:[...G,fe]},Mt={begin:s(t(n(A,/\s*:/)),t(n(A,/\s+/,A,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:A}]},nn={begin:/\(/,end:/\)/,keywords:Y,contains:[Mt,...G,...re,...se,te,et,...Vt,fe,Ze],endsParent:!0,illegal:/["']/},At={match:[/(func|macro)/,/\s+/,s(Tn.match,A,M)],className:{1:"keyword",3:"title.function"},contains:[Je,nn,W],illegal:[/\[/,/%/]},lt={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Je,nn,W],illegal:/\[|%/},cn={match:[/operator/,/\s+/,M],className:{1:"keyword",3:"title"}},gt={begin:[/precedencegroup/,/\s+/,F],className:{1:"keyword",3:"title"},contains:[fe],keywords:[...b,...p],end:/}/},Yn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},yn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},it={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,A,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:Y,contains:[Je,...re,{begin:/:/,end:/\{/,keywords:Y,contains:[{scope:"title.class.inherited",match:F},...re],relevance:0}]};for(const Ke of et.variants){const bt=Ke.contains.find(zt=>zt.label==="interpol");bt.keywords=Y;const It=[...re,...L,...se,te,et,...Qe];bt.contains=[...It,{begin:/\(/,end:/\)/,contains:["self",...It]}]}return{name:"Swift",keywords:Y,contains:[...G,At,lt,Yn,yn,it,cn,gt,{beginKeywords:"import",end:/$/,contains:[...G],relevance:0},vn,...re,...L,...se,te,et,...Qe,...Vt,fe,Ze]}}return Rm=P,Rm}var _m,Hy;function n_(){if(Hy)return _m;Hy=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]|$)/}]},o={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,o]},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"},S={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},C={begin:/\{/,end:/\}/,contains:[S],illegal:"\\n",relevance:0},M={begin:"\\[",end:"\\]",contains:[S],illegal:"\\n",relevance:0},N=[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},C,M,c,d],R=[...N];return R.pop(),R.push(m),S.contains=R,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:N}}return _m=e,_m}var Im,Fy;function r_(){if(Fy)return Im;Fy=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"],o=["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(o,a,s);function m(p){const b=p.regex,x=(be,{after:ge})=>{const Ie="</"+be[0].slice(1);return be.input.indexOf(Ie,ge)!==-1},y=e,S={begin:"<>",end:"</>"},C=/<[A-Za-z0-9\\._:-]+\s*\/>/,M={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(be,ge)=>{const Ie=be[0].length+be.index,He=be.input[Ie];if(He==="<"||He===","){ge.ignoreMatch();return}He===">"&&(x(be,{after:Ie})||ge.ignoreMatch());let Ee;const et=be.input.substring(Ie);if(Ee=et.match(/^\s*=/)){ge.ignoreMatch();return}if((Ee=et.match(/^\s+extends\s+/))&&Ee.index===0){ge.ignoreMatch();return}}},N={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},R="[0-9](_?[0-9])*",A=`\\.(${R})`,F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",q={className:"number",variants:[{begin:`(\\b(${F})((${A})|\\.)?|(${A}))[eE][+-]?(${R})\\b`},{begin:`\\b(${F})\\b((${A})\\b|\\.)?|(${A})\\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},O={className:"subst",begin:"\\$\\{",end:"\\}",keywords:N,contains:[]},P={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"xml"}},$={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"css"}},W={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"graphql"}},U={className:"string",begin:"`",end:"`",contains:[p.BACKSLASH_ESCAPE,O]},K={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]},ie=[p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,P,$,W,U,{match:/\$\d+/},q];O.contains=ie.concat({begin:/\{/,end:/\}/,keywords:N,contains:["self"].concat(ie)});const Q=[].concat(K,O.contains),H=Q.concat([{begin:/(\s*)\(/,end:/\)/,keywords:N,contains:["self"].concat(Q)}]),B={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:N,contains:H},Y={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"}}]},re={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]}},we={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,y,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[B],illegal:/%/},L={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(be){return b.concat("(?!",be.join("|"),")")}const _={match:b.concat(/\b/,V([...o,"super","import","await"].map(be=>`${be}\\s*\\(`)),y,b.lookahead(/\s*\(/)),className:"title.function",relevance:0},se={begin:b.concat(/\./,b.lookahead(b.concat(y,/(?![0-9A-Za-z$_(])/))),end:y,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},he={match:[/get|set/,/\s+/,y,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},B]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+p.UNDERSCORE_IDENT_RE+")\\s*=>",te={match:[/const|var|let/,/\s+/,y,/\s*/,/=\s*/,/(async\s*)?/,b.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[B]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:N,exports:{PARAMS_CONTAINS:H,CLASS_REFERENCE:re},illegal:/#(?![$_A-Za-z])/,contains:[p.SHEBANG({label:"shebang",binary:"node",relevance:5}),we,p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,P,$,W,U,K,{match:/\$\d+/},q,re,{scope:"attr",match:y+b.lookahead(":"),relevance:0},te,{begin:"("+p.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[K,p.REGEXP_MODE,{className:"function",begin:ce,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:N,contains:H}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:S.begin,end:S.end},{match:C},{begin:M.begin,"on:begin":M.isTrulyOpeningTag,end:M.end}],subLanguage:"xml",contains:[{begin:M.begin,end:M.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+p.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[B,p.inherit(p.TITLE_MODE,{begin:y,className:"title.function"})]},{match:/\.\.\./,relevance:0},se,{match:"\\$"+y,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[B]},_,L,Y,he,{match:/\$[(.]/}]}}function h(p){const b=p.regex,x=m(p),y=e,S=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],C={begin:[/namespace/,/\s+/,p.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},M={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:S},contains:[x.exports.CLASS_REFERENCE]},N={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},R=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],A={$pattern:e,keyword:t.concat(R),literal:n,built_in:d.concat(S),"variable.language":c},F={className:"meta",begin:"@"+y},q=(W,U,G)=>{const K=W.contains.findIndex(ie=>ie.label===U);if(K===-1)throw new Error("can not find mode to replace");W.contains.splice(K,1,G)};Object.assign(x.keywords,A),x.exports.PARAMS_CONTAINS.push(F);const O=x.contains.find(W=>W.scope==="attr"),P=Object.assign({},O,{match:b.concat(y,b.lookahead(/\s*\?:/))});x.exports.PARAMS_CONTAINS.push([x.exports.CLASS_REFERENCE,O,P]),x.contains=x.contains.concat([F,C,M,P]),q(x,"shebang",p.SHEBANG()),q(x,"use_strict",N);const $=x.contains.find(W=>W.label==="func.def");return $.relevance=0,Object.assign(x,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),x}return Im=h,Im}var Mm,Py;function a_(){if(Py)return Mm;Py=1;function e(t){const n=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o=/\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,o),/ *#/)},{begin:n.concat(/# */,m,/ *#/)},{begin:n.concat(/# */,d,/ *#/)},{begin:n.concat(/# */,n.either(c,o),/ +/,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 Mm=e,Mm}var Om,$y;function i_(){if($y)return Om;$y=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"],o={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,o,t.QUOTE_STRING_MODE,h,p,m]}}return Om=e,Om}var Dm,Gy;function s_(){if(Gy)return Dm;Gy=1;var e=kR();return e.registerLanguage("xml",ER()),e.registerLanguage("bash",TR()),e.registerLanguage("c",NR()),e.registerLanguage("cpp",CR()),e.registerLanguage("csharp",AR()),e.registerLanguage("css",RR()),e.registerLanguage("markdown",_R()),e.registerLanguage("diff",IR()),e.registerLanguage("ruby",MR()),e.registerLanguage("go",OR()),e.registerLanguage("graphql",DR()),e.registerLanguage("ini",jR()),e.registerLanguage("java",LR()),e.registerLanguage("javascript",zR()),e.registerLanguage("json",BR()),e.registerLanguage("kotlin",UR()),e.registerLanguage("less",qR()),e.registerLanguage("lua",HR()),e.registerLanguage("makefile",FR()),e.registerLanguage("perl",PR()),e.registerLanguage("objectivec",$R()),e.registerLanguage("php",GR()),e.registerLanguage("php-template",KR()),e.registerLanguage("plaintext",VR()),e.registerLanguage("python",YR()),e.registerLanguage("python-repl",XR()),e.registerLanguage("r",ZR()),e.registerLanguage("rust",WR()),e.registerLanguage("scss",QR()),e.registerLanguage("shell",JR()),e.registerLanguage("sql",e_()),e.registerLanguage("swift",t_()),e.registerLanguage("yaml",n_()),e.registerLanguage("typescript",r_()),e.registerLanguage("vbnet",a_()),e.registerLanguage("wasm",i_()),e.HighlightJS=e,e.default=e,Dm=e,Dm}var l_=s_();const Ky=Du(l_),r6=/^(javascript|vbscript|data):/i;function o_(e){if(!e)return!1;const t=e.trim();return!(!t||r6.test(t))}function c_(e){if(!e)return!1;const t=e.trim();return!t||r6.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 u_=[[FN,{singleTilde:!1}],[$A,{singleDollarTextMath:!0}]],d_=[SR];let jm=null,Vy=null;async function f_(){return jm||(Vy??=Sw(()=>import("./mermaid.core-DFSjahzL.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 jm=t,t}).catch(()=>null),Vy)}function m_({code:e}){const t=E.useRef(null),[n,a]=E.useState(!1);return E.useEffect(()=>{let s=!1;return f_().then(o=>{if(s||!o||!t.current){o||a(!0);return}o(t.current,e).catch(()=>{s||a(!0)})}),()=>{s=!0}},[e]),n?f.jsx(kh,{lang:"mermaid",text:e}):f.jsx("div",{className:"oc-mermaid",ref:t,role:"img","aria-label":"Mermaid 图表"})}function kh({lang:e,text:t,children:n}){const[a,s]=E.useState(!1),o=E.useMemo(()=>{const d=Ky.getLanguage(e)?e:"";return d?Ky.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:o!==void 0?f.jsx("code",{className:`hljs language-${e}`,dangerouslySetInnerHTML:{__html:o}}):f.jsx("code",{className:e?`hljs language-${e}`:"hljs",children:n??t})})]})}function Eh(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(Eh).join("");if(typeof e=="object"&&"props"in e){const t=e.props;return Eh(t?.children)}return""}const h_={pre({children:e}){return f.jsx(f.Fragment,{children:e})},code({className:e,children:t,...n}){const a=Eh(t).replace(/\n$/,""),s=/language-([\w-]+)/.exec(e??"");return s?.[1]==="mermaid"?f.jsx(m_,{code:a}):s||e&&a.includes(`
305
+ ]`,C={scope:"string",variants:[b,p,x,y]},M={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},N=["false","null","true"],R=["__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"],A=["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"],q={keyword:R,literal:(H=>{const B=[];return H.forEach(Y=>{B.push(Y),Y.toLowerCase()===Y?B.push(Y.toUpperCase()):B.push(Y.toLowerCase())}),B})(N),built_in:A},O=H=>H.map(B=>B.replace(/\|\d+$/,"")),P={variants:[{match:[/new/,n.concat(S,"+"),n.concat("(?!",O(A).join("\\b|"),"\\b)"),o],scope:{1:"keyword",4:"title.class"}}]},$=n.concat(s,"\\b(?!\\()"),W={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),$],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[o,n.concat(/::/,n.lookahead(/(?!class\b)/)),$],scope:{1:"title.class",3:"variable.constant"}},{match:[o,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[o,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},U={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},G={relevance:0,begin:/\(/,end:/\)/,keywords:q,contains:[U,d,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M,P]},K={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",O(R).join("\\b|"),"|",O(A).join("\\b|"),"\\b)"),s,n.concat(S,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[G]};G.contains.push(K);const ie=[U,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M,P],Q={begin:n.concat(/#\[\s*\\?/,n.either(o,c)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:N,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:N,keyword:["new","array"]},contains:["self",...ie]},...ie,{scope:"meta",variants:[{match:o},{match:c}]}]};return{case_insensitive:!1,keywords:q,contains:[Q,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,K,W,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},P,{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:q,contains:["self",Q,d,W,t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE,t.HASH_COMMENT_MODE,C,M]}]},{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]},C,M]}}return ym=e,ym}var xm,Iy;function KR(){if(Iy)return xm;Iy=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 xm=e,xm}var wm,My;function VR(){if(My)return wm;My=1;function e(t){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}return wm=e,wm}var Sm,Oy;function YR(){if(Oy)return Sm;Oy=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])*",S=`(\\b(${y}))?\\.(${y})|\\b(${y})\\.`,C=`\\b|${s.join("|")}`,M={className:"number",relevance:0,variants:[{begin:`(\\b(${y})|(${S}))[eE][+-]?(${y})[jJ]?(?=${C})`},{begin:`(${S})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${C})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${C})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${C})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${C})`},{begin:`\\b(${y})[jJ](?=${C})`}]},N={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:m,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},R={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:m,contains:["self",h,M,x,t.HASH_COMMENT_MODE]}]};return p.contains=[x,M,h],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:m,illegal:/(<\/|\?)|=>/,contains:[h,M,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},x,N,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{1:"keyword",3:"title.function"},contains:[R]},{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:[M,R,x]}]}}return Sm=e,Sm}var km,Dy;function XR(){if(Dy)return km;Dy=1;function e(t){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}return km=e,km}var Em,jy;function ZR(){if(jy)return Em;jy=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]?/),o=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,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:[o,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:o},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:c},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}return Em=e,Em}var Tm,Ly;function WR(){if(Ly)return Tm;Ly=1;function e(t){const n=t.regex,a=/(r#)?/,s=n.concat(a,t.UNDERSCORE_IDENT_RE),o=n.concat(a,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,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 Tm=e,Tm}var Nm,zy;function QR(){if(zy)return Nm;zy=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(),o=["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=o,y="@[a-z-]+",S="and or not only",M={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("|")+")"},M,{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,M,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:S,attribute:s.join(" ")},contains:[{begin:y,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},M,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.HEXCOLOR,p.CSS_NUMBER_MODE]},p.FUNCTION_DISPATCH]}}return Nm=m,Nm}var Cm,By;function JR(){if(By)return Cm;By=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 Cm=e,Cm}var Am,Uy;function e_(){if(Uy)return Am;Uy=1;function e(t){const n=t.regex,a=t.COMMENT("--","$"),s={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},o={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"],S=b,C=[...p,...h].filter(O=>!b.includes(O)),M={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},N={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},R={match:n.concat(/\b/,n.either(...S),/\s*\(/),relevance:0,keywords:{built_in:S}};function A(O){return n.concat(/\b/,n.either(...O.map(P=>P.replace(/\s+/,"\\s+"))),/\b/)}const F={scope:"keyword",match:A(y),relevance:0};function q(O,{exceptions:P,when:$}={}){const W=$;return P=P||[],O.map(U=>U.match(/\|\d+$/)||P.includes(U)?U:W(U)?`${U}|0`:U)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:q(C,{when:O=>O.length<3}),literal:c,type:m,built_in:x},contains:[{scope:"type",match:A(d)},F,R,M,s,o,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,a,N]}}return Am=e,Am}var Rm,qy;function t_(){if(qy)return Rm;qy=1;function e($){return $?typeof $=="string"?$:$.source:null}function t($){return n("(?=",$,")")}function n(...$){return $.map(U=>e(U)).join("")}function a($){const W=$[$.length-1];return typeof W=="object"&&W.constructor===Object?($.splice($.length-1,1),W):{}}function s(...$){return"("+(a($).capture?"":"?:")+$.map(G=>e(G)).join("|")+")"}const o=$=>n(/\b/,$,/\w$/.test($)?/\b/:/\B/),c=["Protocol","Type"].map(o),d=["init","self"].map(o),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"],S=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]/),C=s(S,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),M=n(S,C,"*"),N=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]/),R=s(N,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),A=n(N,R,"*"),F=n(/[A-Z]/,R,"*"),q=["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\(/,A,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],O=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function P($){const W={match:/\s+/,relevance:0},U=$.COMMENT("/\\*","\\*/",{contains:["self"]}),G=[$.C_LINE_COMMENT_MODE,U],K={match:[/\./,s(...c,...d)],className:{2:"keyword"}},ie={match:n(/\./,s(...h)),relevance:0},Q=h.filter(Ke=>typeof Ke=="string").concat(["_|0"]),H=h.filter(Ke=>typeof Ke!="string").concat(m).map(o),B={variants:[{className:"keyword",match:s(...H,...d)}]},Y={$pattern:s(/\b\w+/,/#\w+/),keyword:Q.concat(x),literal:p},re=[K,ie,B],we={match:n(/\./,s(...y)),relevance:0},z={className:"built_in",match:n(/\b/,s(...y),/(?=\()/)},L=[we,z],V={match:/->/,relevance:0},_={className:"operator",relevance:0,variants:[{match:M},{match:`\\.(\\.|${C})+`}]},se=[V,_],he="([0-9]_*)+",ce="([0-9a-fA-F]_*)+",te={className:"number",relevance:0,variants:[{match:`\\b(${he})(\\.(${he}))?([eE][+-]?(${he}))?\\b`},{match:`\\b0x(${ce})(\\.(${ce}))?([pP][+-]?(${he}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},be=(Ke="")=>({className:"subst",variants:[{match:n(/\\/,Ke,/[0\\tnr"']/)},{match:n(/\\/,Ke,/u\{[0-9a-fA-F]{1,8}\}/)}]}),ge=(Ke="")=>({className:"subst",match:n(/\\/,Ke,/[\t ]*(?:[\r\n]|\r\n)/)}),Ie=(Ke="")=>({className:"subst",label:"interpol",begin:n(/\\/,Ke,/\(/),end:/\)/}),He=(Ke="")=>({begin:n(Ke,/"""/),end:n(/"""/,Ke),contains:[be(Ke),ge(Ke),Ie(Ke)]}),Ee=(Ke="")=>({begin:n(Ke,/"/),end:n(/"/,Ke),contains:[be(Ke),Ie(Ke)]}),et={className:"string",variants:[He(),He("#"),He("##"),He("###"),Ee(),Ee("#"),Ee("##"),Ee("###")]},pt=[$.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[$.BACKSLASH_ESCAPE]}],Ht={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:pt},_t=Ke=>{const bt=n(Ke,/\//),It=n(/\//,Ke);return{begin:bt,end:It,contains:[...pt,{scope:"comment",begin:`#(?!.*${It})`,end:/$/}]}},vn={scope:"regexp",variants:[_t("###"),_t("##"),_t("#"),Ht]},Tn={match:n(/`/,A,/`/)},mn={className:"variable",match:/\$\d+/},Ft={className:"variable",match:`\\$${R}+`},Qe=[Tn,mn,Ft],xt={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:O,contains:[...se,te,et]}]}},Lt={scope:"keyword",match:n(/@/,s(...q),t(s(/\(/,/\s+/)))},Fe={scope:"meta",match:n(/@/,A)},Vt=[xt,Lt,Fe],fe={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)/,R,"+")},{className:"type",match:F,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:n(/\s+&\s+/,t(F)),relevance:0}]},ve={begin:/</,end:/>/,keywords:Y,contains:[...G,...re,...Vt,V,fe]};fe.contains.push(ve);const Ue={match:n(A,/\s*:/),keywords:"_|0",relevance:0},Ze={begin:/\(/,end:/\)/,relevance:0,keywords:Y,contains:["self",Ue,...G,vn,...re,...L,...se,te,et,...Qe,...Vt,fe]},Je={begin:/</,end:/>/,keywords:"repeat each",contains:[...G,fe]},Mt={begin:s(t(n(A,/\s*:/)),t(n(A,/\s+/,A,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:A}]},nn={begin:/\(/,end:/\)/,keywords:Y,contains:[Mt,...G,...re,...se,te,et,...Vt,fe,Ze],endsParent:!0,illegal:/["']/},At={match:[/(func|macro)/,/\s+/,s(Tn.match,A,M)],className:{1:"keyword",3:"title.function"},contains:[Je,nn,W],illegal:[/\[/,/%/]},lt={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[Je,nn,W],illegal:/\[|%/},cn={match:[/operator/,/\s+/,M],className:{1:"keyword",3:"title"}},gt={begin:[/precedencegroup/,/\s+/,F],className:{1:"keyword",3:"title"},contains:[fe],keywords:[...b,...p],end:/}/},Yn={match:[/class\b/,/\s+/,/func\b/,/\s+/,/\b[A-Za-z_][A-Za-z0-9_]*\b/],scope:{1:"keyword",3:"keyword",5:"title.function"}},yn={match:[/class\b/,/\s+/,/var\b/],scope:{1:"keyword",3:"keyword"}},it={begin:[/(struct|protocol|class|extension|enum|actor)/,/\s+/,A,/\s*/],beginScope:{1:"keyword",3:"title.class"},keywords:Y,contains:[Je,...re,{begin:/:/,end:/\{/,keywords:Y,contains:[{scope:"title.class.inherited",match:F},...re],relevance:0}]};for(const Ke of et.variants){const bt=Ke.contains.find(zt=>zt.label==="interpol");bt.keywords=Y;const It=[...re,...L,...se,te,et,...Qe];bt.contains=[...It,{begin:/\(/,end:/\)/,contains:["self",...It]}]}return{name:"Swift",keywords:Y,contains:[...G,At,lt,Yn,yn,it,cn,gt,{beginKeywords:"import",end:/$/,contains:[...G],relevance:0},vn,...re,...L,...se,te,et,...Qe,...Vt,fe,Ze]}}return Rm=P,Rm}var _m,Hy;function n_(){if(Hy)return _m;Hy=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]|$)/}]},o={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,o]},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"},S={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},C={begin:/\{/,end:/\}/,contains:[S],illegal:"\\n",relevance:0},M={begin:"\\[",end:"\\]",contains:[S],illegal:"\\n",relevance:0},N=[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},C,M,c,d],R=[...N];return R.pop(),R.push(m),S.contains=R,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:N}}return _m=e,_m}var Im,Fy;function r_(){if(Fy)return Im;Fy=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"],o=["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(o,a,s);function m(p){const b=p.regex,x=(be,{after:ge})=>{const Ie="</"+be[0].slice(1);return be.input.indexOf(Ie,ge)!==-1},y=e,S={begin:"<>",end:"</>"},C=/<[A-Za-z0-9\\._:-]+\s*\/>/,M={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(be,ge)=>{const Ie=be[0].length+be.index,He=be.input[Ie];if(He==="<"||He===","){ge.ignoreMatch();return}He===">"&&(x(be,{after:Ie})||ge.ignoreMatch());let Ee;const et=be.input.substring(Ie);if(Ee=et.match(/^\s*=/)){ge.ignoreMatch();return}if((Ee=et.match(/^\s+extends\s+/))&&Ee.index===0){ge.ignoreMatch();return}}},N={$pattern:e,keyword:t,literal:n,built_in:d,"variable.language":c},R="[0-9](_?[0-9])*",A=`\\.(${R})`,F="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",q={className:"number",variants:[{begin:`(\\b(${F})((${A})|\\.)?|(${A}))[eE][+-]?(${R})\\b`},{begin:`\\b(${F})\\b((${A})\\b|\\.)?|(${A})\\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},O={className:"subst",begin:"\\$\\{",end:"\\}",keywords:N,contains:[]},P={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"xml"}},$={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"css"}},W={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[p.BACKSLASH_ESCAPE,O],subLanguage:"graphql"}},U={className:"string",begin:"`",end:"`",contains:[p.BACKSLASH_ESCAPE,O]},K={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]},ie=[p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,P,$,W,U,{match:/\$\d+/},q];O.contains=ie.concat({begin:/\{/,end:/\}/,keywords:N,contains:["self"].concat(ie)});const Q=[].concat(K,O.contains),H=Q.concat([{begin:/(\s*)\(/,end:/\)/,keywords:N,contains:["self"].concat(Q)}]),B={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:N,contains:H},Y={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"}}]},re={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]}},we={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},z={variants:[{match:[/function/,/\s+/,y,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[B],illegal:/%/},L={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(be){return b.concat("(?!",be.join("|"),")")}const _={match:b.concat(/\b/,V([...o,"super","import","await"].map(be=>`${be}\\s*\\(`)),y,b.lookahead(/\s*\(/)),className:"title.function",relevance:0},se={begin:b.concat(/\./,b.lookahead(b.concat(y,/(?![0-9A-Za-z$_(])/))),end:y,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},he={match:[/get|set/,/\s+/,y,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},B]},ce="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+p.UNDERSCORE_IDENT_RE+")\\s*=>",te={match:[/const|var|let/,/\s+/,y,/\s*/,/=\s*/,/(async\s*)?/,b.lookahead(ce)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[B]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:N,exports:{PARAMS_CONTAINS:H,CLASS_REFERENCE:re},illegal:/#(?![$_A-Za-z])/,contains:[p.SHEBANG({label:"shebang",binary:"node",relevance:5}),we,p.APOS_STRING_MODE,p.QUOTE_STRING_MODE,P,$,W,U,K,{match:/\$\d+/},q,re,{scope:"attr",match:y+b.lookahead(":"),relevance:0},te,{begin:"("+p.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[K,p.REGEXP_MODE,{className:"function",begin:ce,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:N,contains:H}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:S.begin,end:S.end},{match:C},{begin:M.begin,"on:begin":M.isTrulyOpeningTag,end:M.end}],subLanguage:"xml",contains:[{begin:M.begin,end:M.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+p.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[B,p.inherit(p.TITLE_MODE,{begin:y,className:"title.function"})]},{match:/\.\.\./,relevance:0},se,{match:"\\$"+y,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[B]},_,L,Y,he,{match:/\$[(.]/}]}}function h(p){const b=p.regex,x=m(p),y=e,S=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],C={begin:[/namespace/,/\s+/,p.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},M={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:S},contains:[x.exports.CLASS_REFERENCE]},N={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},R=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],A={$pattern:e,keyword:t.concat(R),literal:n,built_in:d.concat(S),"variable.language":c},F={className:"meta",begin:"@"+y},q=(W,U,G)=>{const K=W.contains.findIndex(ie=>ie.label===U);if(K===-1)throw new Error("can not find mode to replace");W.contains.splice(K,1,G)};Object.assign(x.keywords,A),x.exports.PARAMS_CONTAINS.push(F);const O=x.contains.find(W=>W.scope==="attr"),P=Object.assign({},O,{match:b.concat(y,b.lookahead(/\s*\?:/))});x.exports.PARAMS_CONTAINS.push([x.exports.CLASS_REFERENCE,O,P]),x.contains=x.contains.concat([F,C,M,P]),q(x,"shebang",p.SHEBANG()),q(x,"use_strict",N);const $=x.contains.find(W=>W.label==="func.def");return $.relevance=0,Object.assign(x,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),x}return Im=h,Im}var Mm,Py;function a_(){if(Py)return Mm;Py=1;function e(t){const n=t.regex,a={className:"string",begin:/"(""|[^/n])"C\b/},s={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o=/\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,o),/ *#/)},{begin:n.concat(/# */,m,/ *#/)},{begin:n.concat(/# */,d,/ *#/)},{begin:n.concat(/# */,n.either(c,o),/ +/,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 Mm=e,Mm}var Om,$y;function i_(){if($y)return Om;$y=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"],o={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,o,t.QUOTE_STRING_MODE,h,p,m]}}return Om=e,Om}var Dm,Gy;function s_(){if(Gy)return Dm;Gy=1;var e=kR();return e.registerLanguage("xml",ER()),e.registerLanguage("bash",TR()),e.registerLanguage("c",NR()),e.registerLanguage("cpp",CR()),e.registerLanguage("csharp",AR()),e.registerLanguage("css",RR()),e.registerLanguage("markdown",_R()),e.registerLanguage("diff",IR()),e.registerLanguage("ruby",MR()),e.registerLanguage("go",OR()),e.registerLanguage("graphql",DR()),e.registerLanguage("ini",jR()),e.registerLanguage("java",LR()),e.registerLanguage("javascript",zR()),e.registerLanguage("json",BR()),e.registerLanguage("kotlin",UR()),e.registerLanguage("less",qR()),e.registerLanguage("lua",HR()),e.registerLanguage("makefile",FR()),e.registerLanguage("perl",PR()),e.registerLanguage("objectivec",$R()),e.registerLanguage("php",GR()),e.registerLanguage("php-template",KR()),e.registerLanguage("plaintext",VR()),e.registerLanguage("python",YR()),e.registerLanguage("python-repl",XR()),e.registerLanguage("r",ZR()),e.registerLanguage("rust",WR()),e.registerLanguage("scss",QR()),e.registerLanguage("shell",JR()),e.registerLanguage("sql",e_()),e.registerLanguage("swift",t_()),e.registerLanguage("yaml",n_()),e.registerLanguage("typescript",r_()),e.registerLanguage("vbnet",a_()),e.registerLanguage("wasm",i_()),e.HighlightJS=e,e.default=e,Dm=e,Dm}var l_=s_();const Ky=Du(l_),r6=/^(javascript|vbscript|data):/i;function o_(e){if(!e)return!1;const t=e.trim();return!(!t||r6.test(t))}function c_(e){if(!e)return!1;const t=e.trim();return!t||r6.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 u_=[[FN,{singleTilde:!1}],[$A,{singleDollarTextMath:!0}]],d_=[SR];let jm=null,Vy=null;async function f_(){return jm||(Vy??=Sw(()=>import("./mermaid.core-Dnl76b7Y.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 jm=t,t}).catch(()=>null),Vy)}function m_({code:e}){const t=E.useRef(null),[n,a]=E.useState(!1);return E.useEffect(()=>{let s=!1;return f_().then(o=>{if(s||!o||!t.current){o||a(!0);return}o(t.current,e).catch(()=>{s||a(!0)})}),()=>{s=!0}},[e]),n?f.jsx(kh,{lang:"mermaid",text:e}):f.jsx("div",{className:"oc-mermaid",ref:t,role:"img","aria-label":"Mermaid 图表"})}function kh({lang:e,text:t,children:n}){const[a,s]=E.useState(!1),o=E.useMemo(()=>{const d=Ky.getLanguage(e)?e:"";return d?Ky.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:o!==void 0?f.jsx("code",{className:`hljs language-${e}`,dangerouslySetInnerHTML:{__html:o}}):f.jsx("code",{className:e?`hljs language-${e}`:"hljs",children:n??t})})]})}function Eh(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(Eh).join("");if(typeof e=="object"&&"props"in e){const t=e.props;return Eh(t?.children)}return""}const h_={pre({children:e}){return f.jsx(f.Fragment,{children:e})},code({className:e,children:t,...n}){const a=Eh(t).replace(/\n$/,""),s=/language-([\w-]+)/.exec(e??"");return s?.[1]==="mermaid"?f.jsx(m_,{code:a}):s||e&&a.includes(`
306
306
  `)?f.jsx(kh,{lang:s?.[1]??"",text:a}):a.includes(`
307
- `)?f.jsx(kh,{lang:"",text:a}):f.jsx("code",{className:e,...n,children:t})},a({href:e,children:t,...n}){if(!o_(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 c_(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 p_ extends E.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 Th({text:e}){try{return f.jsx(p_,{text:e,children:f.jsx("div",{className:"oc-md",children:f.jsx(_E,{remarkPlugins:u_,rehypePlugins:d_,components:h_,children:e})})})}catch{return f.jsx("div",{className:"oc-md",children:f.jsx("pre",{className:"oc-md-fallback",children:e})})}}function g_(e){return e.language==="md"||e.language==="markdown"}function b_(e){const t=e.previews.find(o=>o.path===e.activePath),n=t?g_(t):!1,[a,s]=E.useState(n?"preview":"source");return E.useEffect(()=>{s(n?"preview":"source")},[t?.path,n]),!t&&!e.loading?null:f.jsxs(f.Fragment,{children:[t&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"oc-file-preview-backdrop",onMouseDown:o=>{o.target===o.currentTarget&&e.onClose(t.path)}}),f.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${t.path}`,children:[f.jsxs("header",{children:[f.jsx("div",{className:"oc-file-tabs",role:"tablist","aria-label":"文件预览 Tabs",children:e.previews.map(o=>f.jsx("button",{type:"button",role:"tab","aria-selected":o.path===t.path,className:o.path===t.path?"is-active":"",onClick:()=>e.onActivate(o.path),children:o.path},o.path))}),n&&f.jsxs("div",{className:"oc-file-view-modes",role:"group","aria-label":"文件查看模式",children:[f.jsx("button",{type:"button",className:`oc-file-view-mode${a==="preview"?" is-active":""}`,"aria-pressed":a==="preview",onClick:()=>s("preview"),children:"预览"}),f.jsx("button",{type:"button",className:`oc-file-view-mode${a==="source"?" is-active":""}`,"aria-pressed":a==="source",onClick:()=>s("source"),children:"源文件"})]}),f.jsxs("span",{children:[t.bytes," bytes",t.truncated?" · 已截断":""]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>e.onClose(t.path),children:"关闭预览"})]}),a==="preview"&&n?f.jsx("div",{className:"oc-file-preview-rendered",children:f.jsx(Th,{text:t.content})}):f.jsx("pre",{children:f.jsx("code",{children:t.content})})]})]}),e.loading&&f.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const a6=[{command:"/task",label:"Task context",description:"查看当前任务、Draft 与 assessment",action:"focus-panel:task",source:"operator"},{command:"/contract",label:"Contract",description:"查看 contract diff 与 apply gate",action:"focus-panel:contract",source:"operator"},{command:"/dag",label:"DAG",description:"查看 DAG spine、确认与运行状态",action:"focus-panel:dag",source:"operator"},{command:"/interview",label:"Interview",description:"打开 Requirement Interview",action:"focus:interview",source:"operator"},{command:"/reload",label:"Reload session",description:"重新加载当前 Pi 会话的设置、扩展、技能、提示词、主题与上下文文件(不产生消息)",action:"reload",source:"operator"}],i6=[{command:"/compact",label:"压缩上下文",description:"压缩当前会话上下文,释放 token",action:"compact",source:"web"},{command:"/name",label:"重命名会话",description:"设置当前会话标题",action:"name",source:"web"},{command:"/session",label:"会话信息",description:"显示当前会话元信息",action:"session",source:"web"},{command:"/copy",label:"复制回复",description:"复制最后一条助手消息原文",action:"copy",source:"web"}],as={operator:0,web:1,extension:2,skill:3,prompt:4};function Yy(e){const t=e.trim().split(/\s+/,1)[0]??"";return t?t.startsWith("/")?t.toLowerCase():`/${t.toLowerCase()}`:""}function Xy(e){const t=e.trim().split(/\s+/,1)[0]?.toLowerCase();if(!t?.startsWith("/"))return;const n=[...a6,...i6].find(a=>a.command===t);return n?{command:n.command,action:n.action}:{command:t,action:"unknown"}}function v_(e){if(e==="focus-panel:task"||e==="focus-panel:contract")return"tasks";if(e==="focus-panel:dag")return"recovery"}function y_(e=[]){const t=new Map,n=a=>{const s=Yy(a.command);if(!s)return;const o=t.get(s);if(!o){t.set(s,{...a,command:s});return}as[a.source]<as[o.source]&&t.set(s,{...a,command:s})};for(const a of a6)n({command:a.command,label:a.label,description:a.description,source:a.source,action:a.action});for(const a of i6)n({command:a.command,label:a.label,description:a.description,source:a.source,action:a.action});for(const a of e){const s=Yy(a.command);s&&n({command:s,label:a.label||s,description:a.description||"",source:a.source,action:"pi-prompt"})}return[...t.values()].sort((a,s)=>{const o=as[a.source]-as[s.source];return o!==0?o:a.command.localeCompare(s.command)})}function x_(e,t){const n=(t.trim().split(/\s+/,1)[0]??"").toLowerCase();if((/\s/.test(t.trimStart().slice(1))||t.includes(" "))&&t.trimStart().includes(" "))return[];const a=n.startsWith("/")?n:n?`/${n}`:"/",s=a==="/"?"":a.slice(1),o=[];for(const c of e){const d=c.command.toLowerCase(),m=d.startsWith("/")?d.slice(1):d,h=c.description.toLowerCase();let p=100;if(!s)p=10+as[c.source];else if(d===a||m===s)p=0;else if(d.startsWith(a)||m.startsWith(s))p=1;else if(m.includes(s)||d.includes(s))p=2;else if(h.includes(s))p=3;else continue;o.push({...c,score:p})}return o.sort((c,d)=>{if(c.score!==d.score)return c.score-d.score;const m=as[c.source]-as[d.source];return m!==0?m:c.command.localeCompare(d.command)})}const w_={operator:"Operator",web:"Pi Web",extension:"Extensions",prompt:"Prompts",skill:"Skills"},S_=new Set(["operatorCapabilities","operationList","operationGet","operationEventSummary","statsContext","sourceInstructions","spineCheck","inspect","observeLink"]);function k_(e){return S_.has(e)?"technical-only":e==="doctor"?"inline-detail":"activity-detail"}const E_={newTask:"创建任务",importPrd:"任务需求",contractShow:"任务边界",contractApply:"更新任务契约",contractDiff:"任务契约差异",contractDraftSave:"任务契约草稿",contractValidate:"检查任务契约",taskAdvance:"推进任务准备",dagRunTask:"执行流程",dagValidate:"校验执行流程",prepareDagConfirmation:"执行确认",confirmDagConfirmation:"确认执行边界",prepareDagExecution:"执行边界",runDag:"任务执行",operationWait:"执行监督",operationGet:"任务活动详情",operationList:"会话活动",operationEventSummary:"执行进展摘要",dagStatus:"执行状态",dagDoctor:"执行诊断",dagReport:"执行结果",dagRerunPlan:"恢复评估",dagInterruptEligibility:"中止资格",standaloneTaskRerun:"恢复执行",workerTaskRetry:"重试任务",promoteRun:"任务推进",status:"任务状态"},T_={newTask:{running:"正在创建任务",success:"任务已经创建",error:"创建任务时遇到问题"},importPrd:{running:"正在整理并导入任务需求",success:"任务需求已经导入",error:"导入任务需求时遇到问题"},contractShow:{running:"正在读取任务目标和执行边界",success:"任务目标与执行边界已经读取",error:"读取任务边界时遇到问题"},taskAdvance:{running:"正在推进任务契约并准备执行流程",success:"任务已经推进到下一安全阶段",error:"任务推进被契约或执行边界阻塞"},dagRunTask:{running:"正在生成并校验执行流程",success:"执行流程已经准备好",error:"准备执行流程时遇到问题"},prepareDagExecution:{running:"正在确认任务可以安全执行",success:"执行边界已经确认",error:"执行边界尚未通过确认"},runDag:{running:"正在启动任务执行",success:"任务执行已经启动",error:"启动任务执行时遇到问题"},dagReport:{running:"正在读取本次执行结果",success:"本次执行结果已经读取",error:"读取执行结果时遇到问题"},dagRerunPlan:{running:"正在评估能否从失败位置继续",success:"恢复条件评估已经完成",error:"暂时无法确定安全的恢复方式"},dagInterruptEligibility:{running:"正在检查能否协作中止此运行",success:"中止资格已经确认",error:"当前运行不能协作中止"},standaloneTaskRerun:{running:"正在从失败位置恢复执行",success:"已经从失败位置继续执行",error:"从失败位置恢复执行时遇到问题"},promoteRun:{running:"正在推进任务状态",success:"任务状态已经更新",error:"推进任务状态时遇到问题"},status:{running:"正在读取任务状态",success:"任务状态已经更新",error:"读取任务状态时遇到问题"},contractApply:{running:"正在应用任务契约变更",success:"任务契约已经更新",error:"应用任务契约变更时遇到问题"},contractDiff:{running:"正在比较任务契约版本",success:"任务契约差异已经读取",error:"比较任务契约时遇到问题"},contractDraftSave:{running:"正在保存任务契约草稿",success:"任务契约草稿已经保存",error:"保存任务契约草稿时遇到问题"},contractValidate:{running:"正在检查任务契约",success:"任务契约检查已经完成",error:"任务契约检查没有通过"},dagValidate:{running:"正在校验执行流程",success:"执行流程校验已经通过",error:"执行流程校验没有通过"},prepareDagConfirmation:{running:"正在准备执行确认",success:"执行确认已经准备好",error:"准备执行确认时遇到问题"},confirmDagConfirmation:{running:"正在确认执行边界",success:"执行边界已经确认",error:"执行边界尚未通过确认"},operationGet:{running:"正在读取任务活动详情",success:"任务活动详情已经读取",error:"读取任务活动详情时遇到问题"},operationList:{running:"正在读取本次对话的活动",success:"本次对话的活动已经读取",error:"读取对话活动时遇到问题"},operationEventSummary:{running:"正在汇总执行进展",success:"执行进展已经汇总",error:"汇总执行进展时遇到问题"},dagStatus:{running:"正在读取执行状态",success:"执行状态已经更新",error:"读取执行状态时遇到问题"},dagDoctor:{running:"正在诊断本次任务执行",success:"任务执行诊断已经完成",error:"诊断任务执行时遇到问题"},workerTaskRetry:{running:"正在重试失败的任务",success:"失败任务已经重新开始",error:"重试失败任务时遇到问题"},doctor:{running:"正在检查运行环境",success:"运行环境检查已经完成",error:"运行环境检查发现问题"},inspect:{running:"正在读取详细运行信息",success:"详细运行信息已经读取",error:"读取详细运行信息时遇到问题"},observeLink:{running:"正在准备运行看板入口",success:"运行看板入口已经准备好",error:"准备运行看板入口时遇到问题"},operatorCapabilities:{running:"正在读取可用操作能力",success:"可用操作能力已经读取",error:"读取可用操作能力时遇到问题"},sourceInstructions:{running:"正在读取任务来源说明",success:"任务来源说明已经读取",error:"读取任务来源说明时遇到问题"},spineCheck:{running:"正在检查计划执行步骤",success:"计划执行步骤检查已经完成",error:"计划执行步骤检查发现问题"},statsContext:{running:"正在统计上下文使用情况",success:"上下文使用情况已经统计完成",error:"统计上下文使用情况时遇到问题"}},N_=[{pattern:/(?:^|-)contract(?:-pi)?$/i,running:"正在核对任务目标和执行边界",finished:"任务目标与执行边界已确认",error:"任务边界存在冲突,需要先处理"},{pattern:/scout-src/i,running:"正在梳理与任务相关的代码",finished:"相关代码范围已梳理",error:"梳理相关代码时遇到问题"},{pattern:/scout-tests/i,running:"正在检查现有测试和验证方式",finished:"现有测试与验证方式已确认",error:"检查现有测试时遇到问题"},{pattern:/plan/i,running:"正在整理具体实施步骤",finished:"实施步骤已经准备好",error:"实施方案还需要进一步完善"},{pattern:/implement|writer/i,running:"正在修改并保存相关文件",finished:"文件修改已经完成",error:"修改文件时遇到问题"},{pattern:/verify|reverify/i,running:"正在验证本次修改",finished:"本次修改已通过验证",error:"验证没有通过,正在检查原因"},{pattern:/review/i,running:"正在检查改动是否完整",finished:"改动完整性检查已通过",error:"发现需要补充或修正的内容"},{pattern:/closeout/i,running:"正在整理交付结果",finished:"任务已经完成并形成交付记录",error:"交付结果尚未整理完整"}];function s6(e){if(!(!e||typeof e!="object"))return e}function pp(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return s6(JSON.parse(e))}catch{return}}function Lm(e){const n=pp(e)?.operationId;return typeof n=="string"&&n?n:void 0}function C_(e){const n=pp(e)?.maxWaitMs;if(!(typeof n!="number"||!Number.isFinite(n)||n<=0))return Math.max(1,Math.round(n/1e3))}function l6(e){const t=e.operationId??Lm(e.args)??Lm(e.result)??Lm(e.resultText);return t?`operation:${t}`:`tool:${e.id}`}function A_(e){return e==="running"?"progress":e==="error"?"error":"success"}function R_(e){return pp(e.resultText??e.result)}function __(e){return Array.isArray(e.events)?e.events.flatMap(t=>{const n=s6(t);if(!n)return[];const a=n.messagePreview??n.message;return typeof a=="string"?[a]:[]}):[]}function I_(e,t,n){const a=[];for(const m of e)for(const h of m.matchAll(/node-(started|finished)[^\n]*?node=([^\s,]+)/gi)){const p=h[1]?.toLowerCase(),b=h[2]??"",x=m.match(/status=([^\s,]+)/i)?.[1]?.toUpperCase();let y="finished";x==="ERROR"||x==="FAILED"?y="error":p==="started"&&(y="running"),a.push({node:b,status:y})}const s=a.at(-1);if(!s)return;const o=a.some(m=>/scout-src/i.test(m.node)&&m.status==="finished"),c=a.some(m=>/scout-tests/i.test(m.node)&&m.status==="finished");if(o&&c)return{id:t,kind:"success",title:"代码与测试的影响范围已确认",activityRef:n};const d=N_.find(m=>m.pattern.test(s.node));return d?s.status==="running"?{id:t,kind:"progress",title:d.running,activityRef:n}:s.status==="error"?{id:t,kind:"error",title:d.error,activityRef:n}:{id:t,kind:"success",title:d.finished,activityRef:n}:{id:t,kind:"success",title:"执行状态已经更新",activityRef:n}}function M_(e){const t=l6(e),n=`activity:${e.id}`,a=C_(e.args);if(e.status==="running")return{id:n,kind:"progress",title:a?`正在等待新的执行进展,最长等待时间 ${a} 秒`:"正在等待新的执行进展",activityRef:t};if(e.status==="error")return{id:n,kind:"error",title:"等待执行进展时遇到问题",activityRef:t};let s="";typeof e.resultText=="string"?s=e.resultText:typeof e.result=="string"&&(s=e.result);const o=R_(e),c=I_([s,...o?__(o):[]],n,t);if(c)return c;if(o){if(o.timedOut===!0||o.changed===!1)return{id:n,kind:"warning",title:"等待期间没有新的执行进展",activityRef:t};if(o.changed===!0)return{id:n,kind:"success",title:"已经收到新的执行进展",activityRef:t}}return{id:n,kind:"success",title:"执行状态已经更新",activityRef:t}}function O_(e){const t=k_(e.toolName);if(t==="technical-only"||t==="inline-detail")return;if(e.toolName==="operationWait")return M_(e);const n=T_[e.toolName];if(!n)return;let a=n.success;return e.status==="running"?a=n.running:e.status==="error"&&(a=n.error),{id:`activity:${e.id}`,kind:A_(e.status),title:a,activityRef:l6(e)}}function o6(e){return E_[e]??"任务活动"}function gp(e){switch(e){case"starting":return{label:"正在启动",kind:"progress"};case"running":return{label:"运行中",kind:"progress"};case"succeeded":case"finished":case"FINISHED":case"pass":return{label:"已完成",kind:"success"};case"failed":case"partial_failed":case"ERROR":case"FAILED":case"timed-out":return{label:"未完成",kind:"error"};case"needs-reconcile":return{label:"需要同步",kind:"warning"};case"cancelled":case"abandoned":case"superseded":return{label:"已停止",kind:"warning"};default:return{label:"状态已更新",kind:"success"}}}function c6(e){return[e.activityRef??`operation:${e.operationId}`,`operation:${e.operationId}`,...e.toolCallId?[`tool:${e.toolCallId}`]:[]]}function u6(e){return[e.activityRef??`gate:${e.cardId}`]}function d6(e){return[e.activityRef??`artifact:${e.artifactId}`]}function D_(e){return new Set([...e.operations.flatMap(c6),...e.gates.flatMap(u6),...e.artifacts.flatMap(d6)])}function Zy(e){return e.updatedSeq??e.eventSeq}function Wy(e){const t=Date.parse(e.updatedAt);return Number.isFinite(t)?t:0}function bp(e,t){const n=Zy(e),a=Zy(t);return n!==void 0&&a!==void 0?n-a:Wy(e)-Wy(t)}function j_(e){return e.taskId?`task:${e.taskId}`:e.dagRunId?`run:${e.dagRunId}`:`operation:${e.operationId}`}function L_(e){return e.taskId?e.taskId.replace(/^\d{4}-\d{2}-\d{2}-/,"").replace(/[-_]+/g," ").trim()||e.taskId:o6(e.action)}function z_(e){return[...new Set(e)]}function B_(e){const t=new Map;for(const n of e)t.set(n.action,n);return[...t.values()].sort(bp).map(n=>{const a=gp(n.state);return{id:n.operationId,label:o6(n.action),stateLabel:a.label,kind:a.kind,at:n.updatedAt}})}function U_(e){const t=new Map;for(const n of e){const a=n.dagRunId??n.runSummary?.runId;if(!a)continue;const s=t.get(a)??[];s.push(n),t.set(a,s)}return[...t.entries()].flatMap(([n,a])=>{const s=[...a].sort((h,p)=>bp(p,h)),o=s[0];if(!o)return[];const c=s.find(h=>h.runSummary)?.runSummary,d=c?.status??o.state,m=gp(d);return[{runId:n,state:d,stateLabel:m.label,kind:m.kind,updatedAt:o.updatedAt,operationCount:a.length,firstFailedNode:c?.nodes.find(h=>h.status==="ERROR")?.id,failureCategory:c?.failureCategory,inspectHref:o.inspectHref}]}).sort((n,a)=>Date.parse(a.updatedAt)-Date.parse(n.updatedAt))}function f6(e){const t=new Map;for(const n of e){const a=j_(n),s=t.get(a)??[];s.push(n),t.set(a,s)}return[...t.entries()].flatMap(([n,a])=>{const s=[...a].sort(bp),o=s.at(-1);if(!o)return[];const c=gp(o.state);return[{key:n,taskId:o.taskId,displayTitle:L_(o),state:o.state,stateLabel:c.label,kind:c.kind,updatedAt:o.updatedAt,latestOperation:o,operations:s,steps:B_(s),runs:U_(s),activityRefs:z_(s.flatMap(c6)),compactEligible:c.kind==="success"}]}).sort((n,a)=>{const s=n.kind==="progress"||n.kind==="error"?0:1,o=a.kind==="progress"||a.kind==="error"?0:1;return s!==o?s-o:Date.parse(a.updatedAt)-Date.parse(n.updatedAt)})}const q_={operation:"执行记录",contract:"任务契约",dag:"执行流程",report:"报告",html:"HTML 预览"};function H_(e){const{artifact:t}=e,n=!!(t.reportText||t.htmlPreview);return f.jsxs("section",{className:"oc-artifact-card","aria-label":`任务产物:${t.title??t.artifactId}`,"data-activity-ref":t.activityRef??`artifact:${t.artifactId}`,children:[f.jsxs("header",{children:[f.jsxs("div",{children:[f.jsx("small",{children:"任务产物"}),f.jsx("strong",{children:t.title??t.artifactId}),f.jsx("code",{children:t.artifactId})]}),f.jsx("span",{children:q_[t.kind]})]}),t.summary?f.jsx("p",{children:t.summary}):null,n?f.jsxs("details",{className:"oc-artifact-details",children:[f.jsx("summary",{children:"预览与技术详情"}),t.reportText?f.jsx("pre",{children:t.reportText}):null,t.htmlPreview?f.jsx("iframe",{title:`${t.title??t.artifactId} preview`,sandbox:"",srcDoc:t.htmlPreview}):null]}):null,t.inspectHref?f.jsx("footer",{children:f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>window.open(t.inspectHref,"_blank","noopener,noreferrer"),children:"打开产物"})}):null]})}const Qy={prepared:"等待确认",confirmed:"已经确认",dispatched:"正在执行",consumed:"已经完成",stale:"已经失效",expired:"已经过期",error:"处理失败"};function Jy(e){return e.gateType==="contract-apply"?"确认任务契约变更":e.gateType==="mutation"?"确认执行工作区修改":"确认启动任务执行"}function F_({card:e,origin:t,sessionId:n}){const[a,s]=E.useState(!1),[o,c]=E.useState(),d=async()=>{s(!0),c(void 0);try{let b="contract-apply";e.gateType==="dag-run"?b=e.state==="prepared"?"dag-confirm":"dag-run":e.gateType==="mutation"&&(b="mutation-apply");const x=e.gateType==="dag-run"?{confirmationId:e.confirmationId,...e.state==="prepared"?{humanGateToken:e.humanGateToken}:{}}:{receiptId:e.receiptId,humanGateToken:e.humanGateToken},y=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(n)}/human-gate/${b}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":wr()},body:JSON.stringify(x)}),S=await y.json();if(!y.ok)throw new Error(S.error?.message??`HTTP ${y.status}`)}catch(b){c(b instanceof Error?b.message:String(b))}finally{s(!1)}},m=e.state==="prepared"||e.gateType==="dag-run"&&e.state==="confirmed";let h="确认接受";e.gateType==="mutation"?h="确认执行":e.gateType==="dag-run"&&(h=e.state==="prepared"?"确认边界":"启动执行");const p=(e.displayOnlyChallenges?.length??0)+(e.dagSpine?.length??0);return f.jsxs("section",{className:`oc-human-gate-card is-${e.state}`,"aria-label":`${Jy(e)}:${Qy[e.state]}`,"data-activity-ref":e.activityRef??`gate:${e.cardId}`,children:[f.jsxs("header",{children:[f.jsxs("div",{children:[f.jsx("small",{children:"人工门禁"}),f.jsx("strong",{children:Jy(e)}),f.jsx("code",{children:e.taskId})]}),f.jsx("span",{children:Qy[e.state]})]}),e.contractDiffSummary?f.jsx("p",{className:"oc-human-gate-summary",children:e.contractDiffSummary}):null,p>0||e.errorMessage?f.jsxs("details",{className:"oc-human-gate-details",children:[f.jsxs("summary",{children:["门禁详情 · ",p," 项"]}),e.displayOnlyChallenges?.length?f.jsxs("div",{className:"oc-human-gate-challenges",children:[f.jsx("b",{children:"确认前请检查"}),f.jsx("ul",{children:e.displayOnlyChallenges.map(b=>f.jsx("li",{children:b},b))})]}):null,e.dagSpine?.length?f.jsxs("div",{children:[f.jsx("b",{children:"计划执行步骤"}),f.jsx("ol",{children:e.dagSpine.map(b=>f.jsx("li",{children:f.jsx("code",{children:b})},b))})]}):null,e.errorMessage?f.jsx("p",{className:"oc-human-gate-error",children:e.errorMessage}):null]}):null,f.jsxs("footer",{children:[f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>window.open(e.inspectHref,"_blank","noopener,noreferrer"),children:"查看记录"}),f.jsx("button",{className:"btn btn-primary",type:"button",disabled:!m||a,onClick:()=>{d()},children:a?"提交中…":h})]}),o?f.jsx("div",{className:"oc-human-gate-error",children:o}):null]})}const Yr="loop-console.operator-chat.active-session.v1",P_="loop-console.operator-chat.default-landing.v1";function Tu(e){const t=e?.trim().toLowerCase();if(t==="chat")return"chat";if(t==="tasks")return"tasks"}function m6(e){const t=e?.trim().toLowerCase();if(t==="chat"||t==="tasks"||t==="recovery"||t==="night"||t==="models"||t==="settings")return t}function h6(e){const t=n=>e.get(n)?.trim()||void 0;return{...t("taskId")?{taskId:t("taskId")}:{},...t("dagRunId")?{dagRunId:t("dagRunId")}:{},...t("fromNodeId")?{fromNodeId:t("fromNodeId")}:{},...t("featureId")?{featureId:t("featureId")}:{},...t("intent")?{intent:t("intent")}:{}}}function p6(e){const t=String(e??"").replace(/^#/,"");if(!t)return null;const n=t.indexOf("?"),a=n>=0?t.slice(0,n):t,s=n>=0?t.slice(n+1):"",o=(a||"/").split("?")[0]||"/";if(o==="/"||o==="")return null;const c=o.replace(/^\//,"").split("/")[0],d=m6(c);return d?{workspace:d,...h6(new URLSearchParams(s))}:null}function $_(e){const t=new URLSearchParams(e.search),n=e.hash.startsWith("#")?e.hash.slice(1):e.hash,a=new URLSearchParams(n),s=m6(t.get("workspace")??t.get("landing")??a.get("workspace"));return s?{workspace:s,...h6(t)}:null}function G_(e){if(!e)return;const t=p6(e.hash);if(t)return t.workspace;const n=new URLSearchParams(e.search),a=Tu(n.get("landing")??n.get("workspace"));if(a)return a;const s=e.hash.startsWith("#")?e.hash.slice(1):e.hash;return Tu(new URLSearchParams(s).get("workspace"))}function g6(e){return G_(e.location)??Tu(e.storage?.getItem(P_))??Tu(e.env)??"chat"}function b6(e,t={}){const n=new URLSearchParams;for(const[o,c]of Object.entries(t))c?.trim()&&n.set(o,c.trim());const a=n.toString(),s=`/${e}`;return a?`${s}?${a}`:s}function K_(e,t={}){return`#${b6(e,t)}`}function V_(e){return p6(e.hash)??$_(e)}function e2(e,t=900){if(e)return e.length>t?`${e.slice(0,t)}…`:e}function zm(e){return new Date(e).toLocaleString()}function t2(e){if(!e)return;const t=e.trim();if(/taskId[^\n]*(?:placeholder|占位)|["']?<id>["']?/i.test(t))return"任务编号仍是占位符;请提供实际的 YYYY-MM-DD-<slug> 任务编号后重试。";if(/ENOENT|no such file or directory/i.test(t))return"任务活动缺少所需文件或目录,可进入 DAG 查看详情。";if(/command failed|exited with code/i.test(t))return"相关命令没有成功完成,可进入 DAG 查看详情。";if(!(t.length>220||t.startsWith("{")||t.startsWith("[")||t.includes("[dag execute]")||t.includes("schemaVersion")||/[A-Za-z]:\\/.test(t)))return t}function Y_(e){const t=e.latestOperation,n=t.runSummary;if(e.kind==="success"||e.kind==="progress")return;const a=n?.nodes.find(c=>c.status==="ERROR")?.id;if(a){const c=n?.failureCategory?`,原因分类为 ${n.failureCategory}`:"";return`执行在 ${a} 阶段未完成${c}。`}const s=n?.next?.description;if(s&&/fail|error|block|cannot|unable/i.test(s))return s;const o=t2(t.stderrPreview)??t2(t.summaryPreview);return o||(e.kind==="error"?"本次任务活动没有完成,可进入 DAG 查看详情或使用恢复选项。":"本次任务活动需要进一步确认,请查看相关记录。")}function X_(e){const{journey:t}=e,n=t.latestOperation,a=t.runs[0],s=t.runs.slice(1),o=n.inspectHref.startsWith("/")?`${e.origin}${n.inspectHref}`:n.inspectHref,c=Y_(t),d=t.kind==="error"||t.kind==="warning",m=(h,p)=>{e.onNavigateWorkspace?e.onNavigateWorkspace(h,p):window.location.assign(K_(h,p))};return e.compact?f.jsxs("details",{className:"oc-journey-compact",children:[f.jsxs("summary",{children:[f.jsx("span",{className:`oc-journey-dot is-${t.kind}`,"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:t.displayTitle}),f.jsxs("small",{children:[t.stateLabel," · ",zm(t.updatedAt)]})]}),f.jsx("span",{"aria-hidden":"true",children:"›"})]}),f.jsxs("div",{className:"oc-journey-compact-body",children:[t.taskId?f.jsx("code",{children:t.taskId}):null,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>window.open(o,"_blank","noopener,noreferrer"),children:"查看记录"})]})]}):f.jsxs("section",{className:`oc-task-journey-card is-${t.kind}`,"aria-label":`${t.displayTitle}:${t.stateLabel}`,children:[f.jsxs("header",{className:"oc-journey-head",children:[f.jsxs("div",{children:[f.jsxs("div",{className:"oc-journey-state-line",children:[f.jsx("span",{className:`oc-journey-dot is-${t.kind}`,"aria-hidden":"true"}),f.jsx("span",{children:t.stateLabel})]}),f.jsx("strong",{children:t.displayTitle}),t.taskId?f.jsxs("small",{children:["Task · ",f.jsx("code",{children:t.taskId})]}):null]}),f.jsx("time",{dateTime:t.updatedAt,children:zm(t.updatedAt)})]}),f.jsx("div",{className:"oc-journey-steps","aria-label":"任务旅程",children:t.steps.slice(-6).map(h=>f.jsxs("div",{className:"oc-journey-step",children:[f.jsx("span",{className:`oc-journey-step-icon is-${h.kind}`,"aria-hidden":"true",children:h.kind==="success"?"✓":h.kind==="error"?"!":"•"}),f.jsx("span",{children:h.label}),f.jsx("small",{children:h.stateLabel})]},h.id))}),c?f.jsxs("div",{className:`oc-journey-outcome is-${t.kind}`,children:[f.jsx("strong",{children:d?"当前问题":"最新结果"}),f.jsx("p",{children:c})]}):null,a?f.jsxs("div",{className:"oc-journey-latest-run",children:[f.jsx("span",{children:"最新执行"}),f.jsx("code",{children:a.runId}),f.jsx("b",{className:`is-${a.kind}`,children:a.stateLabel}),a.firstFailedNode?f.jsxs("small",{children:["失败阶段 · ",a.firstFailedNode]}):null]}):null,s.length>0?f.jsxs("details",{className:"oc-journey-history",children:[f.jsxs("summary",{children:["执行历史 ",t.runs.length," 次"]}),f.jsx("div",{children:t.runs.map(h=>f.jsxs("div",{className:"oc-journey-run-row",children:[f.jsx("code",{children:h.runId}),f.jsx("span",{className:`is-${h.kind}`,children:h.stateLabel}),h.firstFailedNode?f.jsx("small",{children:h.firstFailedNode}):null,f.jsx("time",{dateTime:h.updatedAt,children:zm(h.updatedAt)})]},h.runId))})]}):null,f.jsxs("footer",{className:"oc-journey-actions",children:[f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>{const h=n.dagRunId??a?.runId,p=h?n.inspectHref.startsWith("/")?`${e.origin}/inspect/#/dag/${encodeURIComponent(h)}`:`/inspect/#/dag/${encodeURIComponent(h)}`:o;window.open(p,"_blank","noopener,noreferrer")},children:"进入 DAG"}),d&&(t.taskId||n.dagRunId)?f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>m("recovery",{taskId:t.taskId,dagRunId:n.dagRunId}),children:"恢复选项"}):null]}),f.jsxs("details",{className:"oc-journey-technical",children:[f.jsxs("summary",{children:["技术详情 · ",t.operations.length," 项活动"]}),f.jsx("div",{className:"oc-journey-technical-body",children:t.operations.map(h=>f.jsxs("div",{className:"oc-journey-operation-row",children:[f.jsxs("div",{children:[f.jsx("code",{children:h.operationId}),f.jsx("span",{children:h.action})]}),h.dagRunId?f.jsxs("small",{children:["run · ",h.dagRunId]}):null,h.controller?f.jsxs("small",{children:["controller · ",h.controller]}):null,h.stderrPreview?f.jsx("pre",{className:"is-error",children:e2(h.stderrPreview)}):null,h.summaryPreview?f.jsx("pre",{children:e2(h.summaryPreview)}):null]},h.operationId))})]})]})}function n2(e){return e.state==="prepared"||e.state==="confirmed"?0:e.state==="dispatched"?1:e.state==="error"?2:3}function Bm(e,t){return e!==null&&t.includes(e)}function Z_(e){return e.operations>0?"operations":e.gates>0?"gates":"artifacts"}function W_(e){const t=e.presentation==="sidecar",n=t||e.open,a=E.useRef(null),[s,o]=E.useState("operations"),c=E.useMemo(()=>f6(e.operationCards),[e.operationCards]),d=c.length+e.humanGateCards.length+e.artifactCards.length,m=E.useMemo(()=>[...e.humanGateCards].sort((y,S)=>{const C=n2(y)-n2(S);return C!==0?C:(S.eventSeq??0)-(y.eventSeq??0)}),[e.humanGateCards]),h=E.useMemo(()=>[...e.artifactCards].sort((y,S)=>(S.eventSeq??0)-(y.eventSeq??0)),[e.artifactCards]);if(Bu({open:n&&!t,containerRef:a,triggerRef:e.triggerRef,onEscape:e.onClose}),E.useEffect(()=>{o(Z_({operations:c.length,gates:e.humanGateCards.length,artifacts:e.artifactCards.length}))},[e.sessionId]),E.useEffect(()=>{e.focusRef&&(e.focusRef.startsWith("gate:")?o("gates"):e.focusRef.startsWith("artifact:")?o("artifacts"):o("operations"))},[e.focusRef]),E.useEffect(()=>{if(!n||!e.focusRef)return;const y=window.requestAnimationFrame(()=>{const S=a.current;if(!S)return;Array.from(S.querySelectorAll("[data-activity-ref], [data-tool-call-id], [data-activity-refs]")).find(N=>{const R=N.dataset.activityRefs?.split(" ")??[];return N.dataset.activityRef===e.focusRef||R.includes(e.focusRef??"")||N.dataset.toolCallId&&`tool:${N.dataset.toolCallId}`===e.focusRef})?.scrollIntoView({block:"nearest",behavior:"smooth"})});return()=>window.cancelAnimationFrame(y)},[n,s,e.focusRef]),!n||d===0)return null;let p="is-drawer";t?p="is-sidecar":e.presentation==="sheet"&&(p="is-sheet");const b=t&&e.sidecarRect?{top:e.sidecarRect.top,left:e.sidecarRect.left,height:e.sidecarRect.height,width:e.sidecarRect.width}:void 0,x=f.jsxs("aside",{ref:a,id:"oc-activity-rail",className:`oc-activity-rail ${p} is-${e.phase}`,style:b,"aria-label":"本次对话的活动","aria-busy":e.phase==="switching",tabIndex:-1,children:[f.jsxs("header",{className:"oc-activity-rail-head",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"本次对话的活动"}),f.jsx("small",{children:"运行、门禁与任务产物"})]}),f.jsx("span",{className:"oc-activity-count",children:d}),t?null:f.jsx("button",{type:"button",className:"oc-activity-close","aria-label":"关闭运行活动",onClick:e.onClose,children:"×"})]}),f.jsxs("div",{className:"oc-activity-content",children:[f.jsxs("div",{className:"oc-activity-tabs",role:"tablist","aria-label":"活动类型",children:[f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="operations",className:s==="operations"?"is-active":"",onClick:()=>o("operations"),children:["运行 ",f.jsx("span",{children:c.length})]}),f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="gates",className:s==="gates"?"is-active":"",onClick:()=>o("gates"),children:["门禁 ",f.jsx("span",{children:m.length})]}),f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="artifacts",className:s==="artifacts"?"is-active":"",onClick:()=>o("artifacts"),children:["产物 ",f.jsx("span",{children:h.length})]})]}),f.jsxs("div",{className:"oc-activity-list",children:[s==="operations"&&c.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有任务执行记录。"}):null,s==="operations"?c.map((y,S)=>{const C=y.activityRefs;return f.jsxs("div",{"data-activity-refs":C.join(" "),className:`oc-activity-card-wrap${Bm(e.focusRef,C)?" is-focused":""}`,children:[f.jsx(X_,{journey:y,compact:S>0&&y.compactEligible,origin:e.origin,onNavigateWorkspace:e.onNavigateWorkspace}),f.jsx("button",{type:"button",className:"oc-activity-locate",onClick:()=>e.onLocateConversation(C),children:"查看对话位置"})]},y.key)}):null,s==="gates"&&m.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有需要展示的门禁。"}):null,s==="gates"?m.map(y=>{const S=u6(y);return f.jsx("div",{className:`oc-activity-card-wrap${Bm(e.focusRef,S)?" is-focused":""}`,children:f.jsx(F_,{card:y,origin:e.origin,sessionId:e.sessionId})},y.cardId)}):null,s==="artifacts"&&h.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有任务产物。"}):null,s==="artifacts"?h.map(y=>{const S=d6(y);return f.jsx("div",{className:`oc-activity-card-wrap${Bm(e.focusRef,S)?" is-focused":""}`,children:f.jsx(H_,{artifact:y})},y.artifactId)}):null]})]},e.sessionId)]});return t?ju.createPortal(x,document.body):x}const v6=420,y6=12;function Q_(e){if(e.layoutMode==="narrow")return"sheet";const t=e.railWidth??v6,n=e.gap??y6;return e.viewportWidth-e.mainRight>=t+n?"sidecar":"drawer"}const J_={presentation:"drawer",sidecarRect:null};function eI(e,t,n){const[a,s]=E.useState(J_);return E.useLayoutEffect(()=>{const o=e.current;if(!o)return;const c=o.closest(".panel--chat")??o;let d=0;const m=()=>{window.cancelAnimationFrame(d),d=window.requestAnimationFrame(()=>{const p=o.getBoundingClientRect(),b=c.getBoundingClientRect(),x=Q_({layoutMode:t,viewportWidth:window.innerWidth,mainRight:p.right}),y=x==="sidecar"?{top:b.top,left:p.right+y6,height:b.height,width:v6}:null;s(S=>S.presentation===x&&S.sidecarRect?.top===y?.top&&S.sidecarRect?.left===y?.left&&S.sidecarRect?.height===y?.height&&S.sidecarRect?.width===y?.width?S:{presentation:x,sidecarRect:y})})};m();const h=new ResizeObserver(m);return h.observe(o),c!==o&&h.observe(c),window.addEventListener("resize",m),()=>{window.cancelAnimationFrame(d),h.disconnect(),window.removeEventListener("resize",m)}},[t,e,n]),a}const r2={comfortableMin:620,compactMin:480};function tI(e){return!Number.isFinite(e)||e<0?"extra-compact":e>=r2.comfortableMin?"comfortable":e>=r2.compactMin?"compact":"extra-compact"}function nI(e){return`is-landing-${e}`}const rI=[{label:"新建任务",hint:"先走需求分析 skills,再导入创建任务",prompt:["我要新建任务。请先做需求分析,不要用一句话直接 bootstrapFromPrd。","1. 先问我需求内容和范围(frontend / backend / both,默认 both)。","2. 读取并严格执行 `.agents/skills/analyze-product-requirements/SKILL.md`(`loop-agent init --profile full` 会投影该 skill):按规程澄清访谈、校验,并把产物写到 `docs/product-analysis/<requirement-id>/`(product-analysis.md、requirement-clarification.md、product-requirement.md)。","3. product-requirement 为 complete 且校验通过后,再严格执行 `.agents/skills/analyze-product-dependencies/SKILL.md`,生成 dependency-analysis.md 和按需的 api-documentation.md。","4. 两套产物都校验通过后,再用这些文件 bootstrapFromPrd 创建任务,并建议 taskKind。","若上述 skill 不存在,先说明缺失,并提示运行 `loop-agent init --repo-root . --profile full --merge`。"].join(`
308
- `)},{label:"查看任务状态",hint:"列出任务与就绪/阻塞状态",prompt:"列出当前所有 task 及其状态,重点说明哪些是 Ready 可以推进、哪些 Blocked 及阻塞原因。"},{label:"诊断 DAG 运行",hint:"对失败运行跑 Doctor",prompt:"帮我诊断最近失败或异常的 DAG 运行:先列出最近的 DAG 运行,对有问题的运行执行 doctor,总结根因和可执行的恢复方案。"},{label:"恢复或重跑任务",hint:"默认从节点续跑,勿无故新开 task",prompt:"我要恢复失败或卡住的 DAG。请先 dagReport/doctor 看 primaryFailure.nodeId 与 primaryRecovery;默认用 dagRerunPlan→dagRerun 从失败/安全上游节点续跑(plan 合格后直接 dagRerun,不要 prepareMutationGate)。不要新建 task-id。plan 不合格时:Worker-owned 用 workerTaskRetry;独立 run 用 standaloneTaskRerun。paused 走 approve/resume。确定后直接帮我发起。"}];function x6(e){const t=e.readiness==="setup-required",n=!!e.disabled||t,a=e.density??"comfortable",s=e.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",o=e.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return f.jsxs("div",{className:`oc-empty ${nI(a)}`,role:"status","data-landing-density":a,children:[f.jsxs("div",{className:"oc-empty-hero",children:[f.jsx("img",{className:"oc-empty-icon oc-empty-brand",src:"/favicon.svg",alt:"","aria-hidden":"true",draggable:!1}),f.jsxs("div",{className:"oc-empty-copy",children:[f.jsx("h3",{children:s}),f.jsx("p",{children:o})]})]}),f.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:rI.map(c=>f.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>e.onSuggest(c.prompt),disabled:n,children:[f.jsx("strong",{children:c.label}),f.jsx("span",{children:a==="extra-compact"?c.hint.replace(/[,,].*$/,""):c.hint})]},c.label))}),f.jsxs("ul",{className:"oc-empty-tips",children:[f.jsxs("li",{children:[f.jsx("kbd",{children:"@"}),f.jsx("span",{children:"引用仓库文件"})]}),f.jsxs("li",{children:[f.jsx("kbd",{children:"/"}),f.jsx("span",{children:"快捷命令"})]}),f.jsxs("li",{children:[f.jsx("kbd",{children:"Enter"}),f.jsx("span",{children:"发送 · Shift+Enter 换行"})]})]}),e.mode==="no-session"&&e.onCreateSession?f.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:e.onCreateSession,disabled:n,"aria-busy":e.disabled||void 0,children:t?"需先完成 Pi setup":e.disabled?"创建中…":"新建空白对话"}):null]})}function aI(e){const{interview:t,interviewAnswer:n,onAnswerChange:a,onAnswer:s}=e;return f.jsxs("section",{className:"oc-draft-card","aria-label":"Requirement Interview",children:[f.jsxs("header",{children:[f.jsx("strong",{children:"Requirement Interview"}),f.jsx("span",{children:t.state})]}),t.question&&f.jsxs("div",{className:"oc-interview-bubble",children:[f.jsx("strong",{children:t.question.text}),f.jsxs("p",{children:["建议:",t.question.recommendation]}),f.jsx("textarea",{value:n,onChange:o=>a(o.target.value),placeholder:"输入答案"}),f.jsxs("div",{children:[f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>s("override"),disabled:!n.trim(),children:"提交答案"}),f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>s("accept-recommendation"),children:"接受建议"})]})]}),t.draft&&f.jsxs("details",{open:!0,children:[f.jsxs("summary",{children:["TaskContractDraftV1 · ",t.draftSha256?.slice(0,12)]}),f.jsx("pre",{children:JSON.stringify(t.draft,null,2)})]}),t.assessment&&f.jsxs("div",{className:`oc-assessment${t.assessment.fresh?" is-fresh":""}`,children:[f.jsxs("strong",{children:["完整性:",t.assessment.outcome]}),(t.assessment.missingFields??[]).length>0&&f.jsxs("p",{children:["缺失:",t.assessment.missingFields?.join("、")]})]}),t.taskKindRecommendation&&f.jsxs("div",{className:"oc-task-kind-card",children:[f.jsx("span",{children:"taskKind 建议"}),f.jsx("strong",{children:t.taskKindRecommendation}),f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e.onConfirmTaskKind(),children:"由我确认"}),f.jsx("small",{children:"模型不能代替人类确认。"})]}),t.confirmedTaskKind&&f.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",f.jsx("strong",{children:t.confirmedTaskKind})]})]})}function Or(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function iI(e){const t=[],n=e.inputTokens??0,a=e.outputTokens??0,s=e.cacheReadTokens??0,o=e.cacheWriteTokens??0,c=e.cost??0;if(n>0&&t.push(`${Or(n)} in`),a>0&&t.push(`${Or(a)} out`),s>0&&t.push(`${Or(s)} cache R`),o>0&&t.push(`${Or(o)} cache W`),c>0&&t.push(c>=.01?`$${c.toFixed(2)}`:"<$0.01"),t.length===0){const d=e.totalTokens??0;return d>0?`${Or(d)} tokens`:"—"}return t.join(" · ")}function sI(){return f.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),f.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function lI(){return f.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("polyline",{points:"20 6 9 17 4 12"})})}function oI(){return f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),f.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})}function cI(){return f.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:f.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}function vp(){return f.jsx("svg",{className:"oc-tool-chevron",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("polyline",{points:"4 2.5 7.5 6 4 9.5"})})}function uI(){return f.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})})}function Nh(e){const[t,n]=E.useState(!1),a=()=>{navigator.clipboard?.writeText(e.text).then(()=>{n(!0),window.setTimeout(()=>n(!1),1600)},()=>{})};return f.jsx("button",{type:"button",className:`oc-message-copy${t?" is-copied":""}`,"aria-label":t?"已复制":"复制消息",title:t?"已复制":"复制",onClick:a,children:t?f.jsx(lI,{}):f.jsx(sI,{})})}function a2(e){const{message:t,streaming:n,activeAssistantId:a}=e;if(t.kind==="compaction")return f.jsxs("div",{className:"oc-compaction-card",role:"status",children:[f.jsx("span",{className:"oc-compaction-icon","aria-hidden":"true",children:f.jsx(p8,{size:16})}),f.jsxs("div",{className:"oc-compaction-body",children:[f.jsxs("div",{className:"oc-compaction-heading",children:[f.jsx("strong",{children:"上下文已压缩"}),f.jsx("span",{children:$m(t.createdAt)}),t.compaction?.tokensBefore?f.jsxs("span",{children:["压缩前 ",Or(t.compaction.tokensBefore)," tokens"]}):null]}),f.jsx("div",{className:"oc-compaction-summary",children:f.jsx(Th,{text:t.text})})]})]});const s=t.role==="user",o=s?"你":"π",c=s?"你":"助手",d=!s&&n&&a!==null&&t.id===a,m=d&&t.text.length===0,h=t.text.trim().length>0;return f.jsxs("div",{className:`oc-row ${s?"is-user":"is-assistant"}`,children:[f.jsxs("div",{className:"oc-meta",children:[f.jsx("span",{className:`oc-avatar ${s?"oc-avatar-user":"oc-avatar-assistant"}`,"aria-hidden":"true",children:o}),f.jsx("span",{className:"oc-role",children:c}),f.jsx("span",{className:"oc-time",children:$m(t.createdAt)}),h&&f.jsx(Nh,{text:t.text})]}),f.jsxs("div",{className:`oc-bubble ${s?"oc-bubble-user":"oc-bubble-assistant"}`,children:[h?s?f.jsx("div",{style:{whiteSpace:"pre-wrap"},children:t.text}):f.jsx(Th,{text:t.text}):m?f.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,d&&h&&f.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function dI(e){if(!(!e||typeof e!="object"))return e}function ki(e){return typeof e=="string"?e:void 0}function yp(e){if(!Array.isArray(e))return;const t=[];for(const n of e){const a=dI(n);if(!a)continue;const s=ki(a.type)??"";if(s==="thinking"||s==="reasoning"){const o=ki(a.thinking)??ki(a.text)??"";t.push({type:"thinking",thinking:o});continue}if(s==="toolCall"||s==="tool_call"||s==="toolUse"||s==="tool_use"){const o=ki(a.toolCallId)??ki(a.id)??"";if(!o)continue;const c=ki(a.toolName)??ki(a.name);t.push({type:"toolCall",toolCallId:o,...c?{toolName:c}:{}});continue}if(s==="text"||s==="output_text"||s===""){const o=ki(a.text);o!==void 0&&t.push({type:"text",text:o})}}return t}function fI(e,t={}){return e.type==="thinking"&&!t.isStreaming&&e.thinking.trim()===""}function w6(e,t={}){return e.filter(n=>!fI(n,t))}function mI(e){return e.type==="text"}function hI(e,t={}){const n=w6(e,t);let a=-1;for(let s=n.length-1;s>=0;s--)if(!mI(n[s])){a=s;break}return a===-1?{answerBlocks:n,processBlocks:[]}:{answerBlocks:n.slice(a+1),processBlocks:n.slice(0,a+1)}}function pI(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function gI(e){return{key:e,assistants:[],tools:[],processItems:[],live:!1}}function S6(e){const t=[],n=[];let a,s=[];const o=c=>{for(const d of s)d.assistantMessageId||(d.assistantMessageId=c),d.turnId||(d.turnId=a);s=[]};for(const c of e){const d=Date.parse(c.at)||Date.now();if(c.role==="user"){a=`restored-${c.id}`,s=[],t.push({id:c.id,role:"user",text:c.text,createdAt:d});continue}if(c.role==="assistant"){a||(a=`restored-${c.id}`);const m=yp(c.content);t.push({id:c.id,role:"assistant",text:c.text,createdAt:d,...m&&m.length>0?{content:m}:{}}),o(c.id);continue}if(c.role==="tool"){a||(a=`restored-tool-${c.id}`);const m={id:c.toolCallId||c.id,toolName:c.toolName||"tool",status:c.isError===!0?"error":"ok",resultText:c.text,result:c.text,createdAt:d,finishedAt:d,turnId:a,...c.operationId?{operationId:c.operationId}:{}};n.push(m),s.push(m)}}return{messages:t,toolCalls:n}}function bI(e){return[...e].sort((t,n)=>t.eventSeq!==void 0&&n.eventSeq!==void 0&&t.eventSeq!==n.eventSeq?t.eventSeq-n.eventSeq:t.createdAt!==n.createdAt?t.createdAt-n.createdAt:t.id<n.id?-1:1)}function vo(e,t){if(t.length===0)return;const n=bI(t);for(const a of n){const s=O_(a);s?e.push({kind:"activity",activity:s}):e.push({kind:"tool",tool:a})}}function i2(e,t,n,a){let s=[];for(const o of e){if(o.type==="thinking"){vo(n,s),s=[],n.push({kind:"thinking",thinking:o.thinking});continue}if(o.type==="text"){vo(n,s),s=[],o.text.trim()&&n.push({kind:"text",text:o.text});continue}const c=t.tools.find(d=>d.id===o.toolCallId);c&&!a.has(c.id)&&(s.push(c),a.add(c.id))}vo(n,s)}function s2(e,t,n,a){const s=e.tools.filter(o=>!a.has(o.id)&&o.assistantMessageId===t.id);if(s.length!==0){for(const o of s)a.add(o.id);vo(n,s)}}function vI(e){const t=new Set,n=[],a=e.assistants.slice(0,-1),s=e.assistants.at(-1);for(const h of a)i2(w6(h.content??[]),e,n,t),s2(e,h,n,t);const o=s?.content??[],c=hI(o,{isStreaming:e.live});i2(c.processBlocks,e,n,t),s&&s2(e,s,n,t);const d=e.tools.filter(h=>!t.has(h.id));if(d.length>0&&vo(n,d),e.processItems=n,!s)return;if(o.length===0){e.answer=s;return}const m=pI(c.answerBlocks);e.answer={...s,text:m,content:c.answerBlocks}}function yI(e){const t=e.messages.filter(d=>d.role==="user"||d.role==="assistant"),n=[];let a=null;const s=d=>{const m=gI(d);return n.push(m),m};for(const d of t){if(d.role==="user"){a=s(`user-${d.id}`),a.user=d;continue}if(d.kind==="compaction"){a=s(`compaction-${d.id}`),a.assistants.push(d),a=null;continue}a||(a=s(`assistant-${d.id}`)),a.assistants.push(d)}const o=new Set,c=new Map;for(const d of n)for(const m of d.assistants)c.set(m.id,d);for(const d of e.toolCalls)if(d.assistantMessageId){const m=c.get(d.assistantMessageId);m&&(m.tools.push(d),o.add(d.id))}for(const d of e.toolCalls)if(!o.has(d.id)&&d.turnId){const m=n.find(p=>p.tools.some(b=>b.turnId===d.turnId)||p.key===`turn-${d.turnId}`||p.user&&`restored-${p.user.id}`===d.turnId);if(m){m.tools.push(d),o.add(d.id);continue}const h=n.find(p=>d.turnId===`restored-${p.user?.id}`||p.assistants.some(b=>d.turnId===`restored-${b.id}`));h&&(h.tools.push(d),o.add(d.id))}for(const d of e.toolCalls){if(o.has(d.id))continue;const m=n.find((h,p)=>{const b=h.user?.createdAt??h.assistants[0]?.createdAt??0,y=n[p+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return d.createdAt>=b&&d.createdAt<y});m&&(m.tools.push(d),o.add(d.id))}for(const d of n)d.tools.sort((m,h)=>m.eventSeq!==void 0&&h.eventSeq!==void 0?m.eventSeq-h.eventSeq:m.createdAt-h.createdAt),d.live=e.streaming&&e.activeAssistantId!==null&&d.assistants.some(m=>m.id===e.activeAssistantId),vI(d);return n}function xI(e,t){return t<=0?[]:e.length<=t?[...e]:e.slice(-t)}function wI(e,t){const n=e.length,a=t?.thinkingCount??0,s=t?.textCount??0,o=t?.activityCount??0,c=a+s+o+n,d=e.filter(p=>p.status==="error").length+(t?.activityErrorCount??0),m=e.filter(p=>p.status==="running").length+(t?.activityRunningCount??0),h=[`处理详情 · ${c} 步`];return n>0&&h.push(`${n} 工具`),o>0&&h.push(`${o} 进展`),d>0?h.push(`${d} 出错`):m>0&&h.push("运行中"),{count:n,errorCount:d,runningCount:m,stepCount:c,label:h.join(" · ")}}function SI(e){const t=[];let n=0,a=0,s=0,o=0,c=0;for(const d of e)d.kind==="thinking"?n+=1:d.kind==="text"?a+=1:d.kind==="activity"?(s+=1,d.activity.kind==="error"?o+=1:d.activity.kind==="progress"&&(c+=1)):t.push(d.tool);return wI(t,{thinkingCount:n,textCount:a,activityCount:s,activityErrorCount:o,activityRunningCount:c})}function k6(e){const{entry:t}=e,[n,a]=E.useState(t.status==="error"),[s,o]=E.useState(!1),c=t.status==="running"?"运行中":t.status==="error"?"出错":"完成",d=`is-${t.status}`,m=w8(t.args,{toolName:t.toolName}),h=T8(t.createdAt,t.finishedAt),p=S8(t.toolName),b=A2(t.resultText??t.result),x=E8(b,s?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return f.jsxs("div",{className:`oc-tool ${t.status==="error"?"is-error":""} ${t.status==="running"?"is-running":""}`,children:[f.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":n,onClick:()=>a(y=>!y),children:[f.jsx(vp,{}),f.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:f.jsx(uI,{})}),f.jsx("span",{className:"oc-tool-name",children:t.toolName}),m&&f.jsx("span",{className:"oc-tool-args",children:m}),h!==void 0&&f.jsxs("span",{className:"oc-tool-duration",children:[h,"s"]}),f.jsx("span",{className:`oc-tool-status ${d}`,children:c})]}),n&&f.jsxs("div",{className:"oc-tool-body",children:[t.args!==void 0&&f.jsxs("div",{className:"oc-tool-section",children:[f.jsx("div",{className:"oc-tool-label",children:p.argsLabel}),f.jsx("pre",{className:"oc-tool-code",children:k8(t.args)})]}),(t.resultText!==void 0||t.result!==void 0)&&f.jsxs("div",{className:"oc-tool-section",children:[f.jsx("div",{className:"oc-tool-label",children:t.status==="error"?"错误":p.resultLabel}),f.jsx("pre",{className:"oc-tool-code",children:x.text}),x.truncated&&!s&&f.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>o(!0),children:"展开全部"})]}),t.status==="running"&&t.resultText===void 0&&t.result===void 0&&t.args===void 0&&f.jsx("div",{className:"oc-tool-section",children:f.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function kI(e){const{thinking:t,defaultOpen:n}=e,[a,s]=E.useState(n);return E.useEffect(()=>{s(n)},[n]),f.jsxs("div",{className:"oc-thinking",children:[f.jsxs("button",{type:"button",className:`oc-thinking-summary${a?" is-open":""}`,"aria-expanded":a,onClick:()=>s(o=>!o),children:[f.jsx(vp,{}),f.jsx("span",{children:"思考"})]}),a?f.jsx("pre",{className:"oc-thinking-body",children:t||"…"}):null]})}function EI(e){return e.kind==="progress"?"••":e.kind==="success"?"✓":e.kind==="warning"?"!":"×"}function TI(e){const{activity:t,onActivate:n}=e,a=!!(t.activityRef&&n&&(e.canActivate?.(t.activityRef)??!0)),s=f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"oc-semantic-activity-icon","aria-hidden":"true",children:EI(t)}),f.jsxs("span",{className:"oc-semantic-activity-copy",children:[f.jsx("strong",{children:t.title}),t.detail?f.jsx("small",{children:t.detail}):null]}),a?f.jsx("span",{className:"oc-semantic-activity-link",children:"查看详情"}):null]});if(a&&t.activityRef&&n){const o=t.activityRef;return f.jsx("button",{type:"button",className:`oc-semantic-activity is-${t.kind}`,"data-activity-ref":o,onClick:()=>n(o),children:s})}return f.jsx("div",{className:`oc-semantic-activity is-${t.kind}`,"data-activity-ref":t.activityRef,children:s})}function NI(e){const{items:t,live:n}=e,[a,s]=E.useState(!1);E.useEffect(()=>{n||s(!1)},[n]);const o=SI(t),c=f.jsx("div",{className:"oc-process-inline-body",children:t.map((d,m)=>{if(d.kind==="thinking")return f.jsx(kI,{thinking:d.thinking,defaultOpen:n},`thinking-${m}`);if(d.kind==="text")return f.jsx("div",{className:"oc-process-text",children:d.text},`text-${m}`);if(d.kind==="activity")return f.jsx(TI,{activity:d.activity,onActivate:e.onActivateActivity,canActivate:e.canActivateActivity},d.activity.id);if(d.kind==="tool")return f.jsx(k6,{entry:d.tool},d.tool.id)})});return n?f.jsx("div",{className:"oc-process-inline is-live",children:c}):f.jsxs("div",{className:"oc-process-inline",children:[f.jsxs("button",{type:"button",className:`oc-process-inline-summary${a?" is-open":""}${o.errorCount>0?" is-error":o.runningCount>0?" is-running":""}`,"aria-expanded":a,onClick:()=>s(d=>!d),children:[f.jsx(vp,{}),f.jsx("span",{children:o.label})]}),a?c:null]})}function CI(e){const{scrollContainerRef:t,messagesEndRef:n,onScroll:a,hasThread:s,readiness:o,streaming:c,streamingAssistantId:d,messagesCount:m,visibleCount:h,onLoadMore:p,turnGroups:b,interview:x}=e;return f.jsxs("div",{ref:t,className:`oc-messages${s?" has-thread":" is-empty"}`,onScroll:a,children:[s?null:f.jsx(x6,{mode:"empty-session",readiness:o,disabled:c,onSuggest:e.onSuggest}),s&&m>h&&f.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:p,children:"加载更早消息"}),s&&b.map((y,S)=>{const C=y.user??y.assistants[0],M=S>0?b[S-1].user??b[S-1].assistants[0]:void 0,N=!!C&&(!M||gf(M.createdAt)!==gf(C.createdAt)),R=y.answer,A=!!R?.text.trim(),F=y.live&&y.processItems.length===0;return f.jsxs("div",{className:"oc-turn-group",children:[N&&C&&f.jsx("div",{className:"oc-day-sep",children:gf(C.createdAt)}),y.user&&f.jsx(a2,{message:y.user,streaming:c,activeAssistantId:d}),y.processItems.length>0&&f.jsx(NI,{items:y.processItems,live:y.live,onActivateActivity:e.onActivateActivity,canActivateActivity:e.canActivateActivity}),R&&(A||F)?f.jsx(a2,{message:R,streaming:c,activeAssistantId:d}):null]},y.key)}),x&&f.jsx(aI,{interview:x,interviewAnswer:e.interviewAnswer,onAnswerChange:e.onInterviewAnswerChange,onAnswer:e.onAnswerInterview,onConfirmTaskKind:e.onConfirmTaskKind}),f.jsx("div",{ref:n})]})}const AI={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function RI(e,t){const n=t.trim().toLowerCase(),a=new Map;for(const s of e){if(n&&!s.provider.toLowerCase().includes(n)&&!s.id.toLowerCase().includes(n)&&!(s.name??"").toLowerCase().includes(n))continue;const o=a.get(s.provider)??[];o.push(s),a.set(s.provider,o)}return[...a.entries()].map(([s,o])=>({provider:s,models:o}))}function _I(e,t){const n=new Set,a=[],s=o=>{n.has(o)||(n.add(o),a.push({value:o,label:AI[o]??o,...o==="auto"&&t?{effective:t}:{}}))};s("auto");for(const o of e)s(o);return a}function Nu(e,t){return`${e}/${t}`}function Ch(e){return{...e.modelProvider&&e.modelId?{model:{provider:e.modelProvider,modelId:e.modelId}}:{},...e.thinkingLevel?{thinkingLevel:e.thinkingLevel}:{}}}function E6(e,t){return{...e,model:t.model??e.model,thinkingLevel:t.thinkingLevel??e.thinkingLevel}}function II(e,t){const n=E6(e,t);return n.model?.provider===e.model?.provider&&n.model?.modelId===e.model?.modelId&&n.thinkingLevel===e.thinkingLevel}function MI(){return f.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:f.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function OI(e){const t=al(),[n,a]=E.useState(!1),[s,o]=E.useState(""),[c,d]=E.useState(0),m=E.useRef(null),h=E.useRef(null),p=t.snapshot,b=t.status==="loading",x=t.status==="error"?t.error:null,y=p?(p.models??[]).map(R=>({provider:R.provider,id:R.id,...R.name?{name:R.name}:{},...R.hasCredentials!==void 0?{hasCredentials:R.hasCredentials}:{}})):e.models,S=E.useMemo(()=>RI(y,s),[y,s]),C=E.useMemo(()=>S.flatMap(R=>R.models),[S]);E.useEffect(()=>{n&&(o(""),d(0),window.setTimeout(()=>h.current?.focus(),0))},[n]),E.useEffect(()=>{if(!n)return;const R=F=>{const q=m.current;q&&F.target instanceof Node&&!q.contains(F.target)&&a(!1)},A=F=>{F.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",R),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",R),document.removeEventListener("keydown",A)}},[n]);const M=R=>{if(e.disabled)return;const A=C[R];A&&(a(!1),e.onSelect(A.provider,A.id))},N=R=>{if(R.key==="ArrowDown"){R.preventDefault(),d(A=>C.length?(A+1)%C.length:0);return}if(R.key==="ArrowUp"){R.preventDefault(),d(A=>C.length?(A-1+C.length)%C.length:0);return}if(R.key==="Enter"){R.preventDefault(),M(c);return}if(R.key==="Escape"){R.preventDefault(),a(!1);return}};return f.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:m,children:[f.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":n,title:"选择模型",disabled:e.disabled,onClick:()=>a(R=>!R),children:[f.jsx("span",{className:"oc-select-trigger-label",children:e.triggerLabel}),f.jsx(MI,{})]}),n&&f.jsxs("div",{className:"oc-select-panel oc-model-panel",role:"listbox","aria-label":"选择模型",children:[f.jsx("input",{ref:h,className:"oc-select-search",placeholder:"搜索模型或 Provider…",value:s,onChange:R=>{o(R.target.value),d(0)},onKeyDown:N}),b&&f.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),x&&f.jsxs("div",{className:"oc-select-status is-error",children:[f.jsxs("span",{children:[x.code?`${x.code}:`:"",x.message]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Js()},children:"重试"})]}),!b&&!x&&S.length===0&&f.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),S.map(R=>f.jsxs("div",{className:"oc-model-group",children:[f.jsx("div",{className:"oc-model-group-head",children:R.provider}),R.models.map(A=>{const F=Nu(A.provider,A.id),q=F===e.activeModelRef,O=C[c]===A;return f.jsxs("button",{type:"button",role:"option","aria-selected":q,disabled:e.disabled,className:`oc-select-option oc-model-option${O?" is-highlighted":""}${q?" is-active":""}`,onMouseDown:P=>P.preventDefault(),onClick:()=>{e.disabled||(a(!1),e.onSelect(A.provider,A.id))},children:[f.jsxs("span",{className:"oc-model-option-name",children:[A.name?`${A.name} · `:"",A.id]}),q&&f.jsx("span",{className:"oc-model-option-check",children:"✓"})]},F)})]},R.provider))]})]})}function DI(){return f.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:f.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function jI(e){const t=al(),[n,a]=E.useState(!1),[s,o]=E.useState(0),c=E.useRef(null),d=e.effectiveLevel??t.snapshot?.selection?.effectiveThinkingLevel,m=t.snapshot?.thinkingLevels?.length?t.snapshot.thinkingLevels.map(x=>x.value):void 0,h=E.useMemo(()=>_I(m??e.levels,d),[m,e.levels,d]);E.useEffect(()=>{n&&o(0)},[n]),E.useEffect(()=>{if(!n)return;const x=S=>{const C=c.current;C&&S.target instanceof Node&&!C.contains(S.target)&&a(!1)},y=S=>{S.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",x),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",x),document.removeEventListener("keydown",y)}},[n]);const p=x=>{if(e.disabled)return;const y=h[x];y&&(a(!1),e.onSelect(y.value))},b=x=>{if(x.key==="ArrowDown"){x.preventDefault(),o(y=>h.length?(y+1)%h.length:0);return}if(x.key==="ArrowUp"){x.preventDefault(),o(y=>h.length?(y-1+h.length)%h.length:0);return}if(x.key==="Enter"){x.preventDefault(),p(s);return}if(x.key==="Escape"){x.preventDefault(),a(!1);return}};return f.jsxs("div",{className:"oc-select-menu oc-thinking-menu",ref:c,children:[f.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":n,title:"思考等级",disabled:e.disabled,onClick:()=>a(x=>!x),children:[f.jsx("span",{className:"oc-select-trigger-label",children:e.triggerLabel}),f.jsx(DI,{})]}),n&&f.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:b,children:h.map((x,y)=>{const S=x.value===e.activeValue,C=y===s;return f.jsxs("button",{type:"button",role:"option","aria-selected":S,disabled:e.disabled,className:`oc-select-option oc-thinking-option${C?" is-highlighted":""}${S?" is-active":""}`,onMouseDown:M=>M.preventDefault(),onClick:()=>{e.disabled||(a(!1),e.onSelect(x.value))},children:[f.jsx("span",{className:"oc-thinking-option-label",children:x.label}),x.value==="auto"&&x.effective?f.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",x.effective]}):null,S&&f.jsx("span",{className:"oc-model-option-check",children:"✓"})]},x.value)})})]})}const Um="--oc-shortcut-palette-available-height",LI=8,zI=8;function BI(e){const t=e.viewportTop??0,n=e.topInset??LI,a=e.anchorGap??zI;if([e.boundaryTop,e.anchorTop,t,n,a].some(c=>!Number.isFinite(c)))return null;const o=Math.max(e.boundaryTop,t);return Math.max(0,Math.floor(e.anchorTop-o-n-a))}function UI(){return f.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),f.jsx("circle",{cx:"8.5",cy:"10",r:"1.5"}),f.jsx("path",{d:"m21 16-5.5-5.5L9 17"})]})}function qI(e){const{composer:t,streaming:n,hasThread:a}=e,s=E.useRef(null),o=al(),c=o.reloading,d=o.reloadError,h=o.mutationBusy||c||n,p=E.useCallback(()=>{t.setInput(""),t.setShortcutOpen(!1),Qs()},[t.setInput,t.setShortcutOpen]),b=E.useCallback(N=>{const R=t.isComposingNow()||N.nativeEvent.isComposing,A=t.recentlyComposedNow();if(N.key==="Enter"&&!N.shiftKey&&!R&&!A&&!n){if(t.shortcutOpen&&t.filteredShortcuts.length>0){if((t.filteredShortcuts[t.shortcutIndex]??t.filteredShortcuts[0])?.command==="/reload"){N.preventDefault(),p();return}}else if(t.input.trim()==="/reload"){N.preventDefault(),p();return}}e.onKeyDown(N)},[t.isComposingNow,t.recentlyComposedNow,t.shortcutOpen,t.filteredShortcuts,t.shortcutIndex,t.input,p,n,e.onKeyDown]),x=E.useCallback((N,R)=>{if(R==="pi-prompt"||N==="/name"||N==="/compact"){t.setInput(`${N} `),t.setShortcutOpen(!1),t.textareaRef.current?.focus();return}if(N==="/reload"){p();return}e.onRunShortcut(N)},[p,e.onRunShortcut,t]),y=E.useCallback(()=>{if(t.input.trim()==="/reload"){p();return}e.onSend(t.input)},[t.input,p,e.onSend]);E.useEffect(()=>{if(!t.shortcutOpen||t.filteredShortcuts.length===0||!e.paletteKeyboardNavRef.current)return;const N=e.shortcutPaletteRef.current;if(!N)return;N.querySelector(`[data-shortcut-index="${t.shortcutIndex}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"}),e.paletteKeyboardNavRef.current=!1},[t.shortcutOpen,t.filteredShortcuts,t.shortcutIndex,e.shortcutPaletteRef,e.paletteKeyboardNavRef]),E.useEffect(()=>{if(!t.shortcutOpen||t.filteredShortcuts.length===0)return;const N=s.current,R=e.shortcutPaletteRef.current,A=N?.closest(".oc-main")??null;if(!N||!R||!A)return;let F=0;const q=()=>{F=0;const $=A.getBoundingClientRect(),W=N.getBoundingClientRect(),U=BI({boundaryTop:$.top,anchorTop:W.top,viewportTop:window.visualViewport?.offsetTop??0});if(U===null){R.style.removeProperty(Um);return}R.style.setProperty(Um,`${U}px`)},O=()=>{F!==0&&window.cancelAnimationFrame(F),F=window.requestAnimationFrame(q)};q();const P=typeof ResizeObserver>"u"?null:new ResizeObserver(O);return P?.observe(A),P?.observe(N),window.addEventListener("resize",O),window.visualViewport?.addEventListener("resize",O),window.visualViewport?.addEventListener("scroll",O),()=>{F!==0&&window.cancelAnimationFrame(F),P?.disconnect(),window.removeEventListener("resize",O),window.visualViewport?.removeEventListener("resize",O),window.visualViewport?.removeEventListener("scroll",O),R.style.removeProperty(Um)}},[t.shortcutOpen,t.filteredShortcuts.length,e.layoutMode,e.shortcutPaletteRef]);const S=(()=>{const N=e.processSummary;return N?N.statusKind==="error"?`查看工具调用记录,共 ${N.count} 次,其中 ${N.statusLabel}`:N.statusKind==="running"?`查看工具调用记录,共 ${N.count} 次,${N.statusLabel||"正在运行"}`:`查看工具调用记录,共 ${N.count} 次,全部已完成`:"查看工具调用记录"})(),C=(()=>{const N=e.usage.inputTokens,R=e.usage.outputTokens,A=e.usage.cacheReadTokens,F=e.usage.cacheWriteTokens,q=e.usage.cost??0,O=e.usage.contextUsage,P=[];if(O&&(O.percent!==null||O.tokens!==null)){const $=O.percent!==null?`${Math.round(O.percent*10)/10}%`:"—",W=O.contextWindow>0?Or(O.contextWindow):"—",U=O.tokens!==null?Or(O.tokens):"—";P.push(f.jsxs("span",{className:`oc-usage-part is-context${O.percent!==null&&O.percent>=80?" is-high":""}`,title:`上下文占用 ${U} / ${W} tokens(达到约 80% 时建议压缩上下文)`,children:["上下文 ",$," / ",W]},"context"))}if(N>0&&P.push(f.jsxs("span",{className:"oc-usage-part is-in",title:"输入 tokens",children:["↑ ",Or(N)]},"in")),R>0&&P.push(f.jsxs("span",{className:"oc-usage-part is-out",title:"输出 tokens",children:["↓ ",Or(R)]},"out")),A>0&&P.push(f.jsxs("span",{className:"oc-usage-part",title:"缓存命中:这部分输入由提供商 prompt 缓存复用,计费约为原价的 10%",children:[f.jsx(hv,{size:12,"aria-hidden":"true"}),"缓存命中 ",Or(A)]},"cache-read")),F>0&&P.push(f.jsxs("span",{className:"oc-usage-part",title:"缓存写入:本次新建立 prompt 缓存的部分,下次请求可低价复用",children:[f.jsx(hv,{size:12,"aria-hidden":"true"}),"缓存写入 ",Or(F)]},"cache-write")),q>0&&P.push(f.jsx("span",{className:"oc-usage-part",children:q>=.01?`$${q.toFixed(2)}`:"<$0.01"},"cost")),P.length===0){const $=e.usage.totalTokens;$>0&&P.push(f.jsxs("span",{className:"oc-usage-part",children:[Or($)," tokens"]},"total"))}return P})(),M=f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"oc-runtime-controls-group",children:[f.jsx(OI,{models:e.models,activeModelRef:e.activeModelRef,triggerLabel:e.activeModelRef||"选择模型",disabled:h,onSelect:(N,R)=>e.onSwitchRuntime({provider:N,modelId:R})}),f.jsx(jI,{levels:e.thinkingLevels,activeValue:e.activeThinkingLevel||"auto",triggerLabel:e.activeThinkingLevel||"auto",disabled:h,onSelect:N=>e.onSwitchRuntime({thinkingLevel:N})}),f.jsxs("span",{className:"oc-usage",title:iI(e.usage),children:[f.jsx("span",{className:"oc-usage-state",children:n?"运行中":"空闲"}),e.unread>0?f.jsxs("span",{className:"oc-usage-unread",children:[e.unread," 未读"]}):null,C]}),e.processSummary&&f.jsxs("button",{type:"button",ref:e.processTriggerRef,className:`oc-process-summary is-${e.processSummary.statusKind}${e.processOpen?" is-open":""}`,"aria-expanded":e.processOpen,"aria-controls":"oc-process-panel","aria-label":S,title:S,onClick:e.onToggleProcess,children:[f.jsx("span",{className:"oc-process-summary-label",children:"调用记录"}),f.jsx("span",{className:"oc-process-summary-badge",children:e.processSummary.count}),e.processSummary.statusKind!=="ok"&&e.processSummary.statusLabel?f.jsx("span",{className:"oc-process-summary-status",children:e.processSummary.statusLabel}):null]})]}),f.jsxs("div",{className:"oc-runtime-controls-group is-right",children:[f.jsxs("button",{type:"button",className:"btn btn-ghost",onClick:e.onCompact,disabled:n||!a||e.compacting,title:e.compacting?"正在压缩上下文…":a?n?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文","aria-label":e.compacting?"正在压缩上下文…":a?n?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:[e.compacting?f.jsx("span",{className:"oc-spinner oc-spinner-inline","aria-hidden":"true"}):null,e.compacting?"压缩中…":"压缩"]}),e.runtimeContext?f.jsx("button",{type:"button",ref:e.runtimeContextTriggerRef,className:`btn btn-ghost oc-runtime-context-toggle${e.runtimeContextOpen?" is-active":""}`,"aria-expanded":e.runtimeContextOpen,"aria-controls":"oc-runtime-context-panel",onClick:e.onToggleRuntimeContext,children:"注入上下文"}):null]})]});return f.jsx("div",{className:"oc-composer",children:f.jsxs("div",{className:"oc-composer-inner",ref:s,children:[t.fileOptions.length>0&&f.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:t.fileOptions.map(N=>f.jsx("button",{type:"button",role:"option",className:N.endsWith("/")?"is-dir":void 0,onMouseDown:R=>R.preventDefault(),onClick:()=>t.insertFileReference(N),children:f.jsxs("code",{children:["@",N]})},N))}),t.pendingImages.length>0&&f.jsx("div",{className:"oc-attachment-list",children:t.pendingImages.map(N=>f.jsxs("span",{children:[N.name,f.jsx("button",{type:"button","aria-label":`移除 ${N.name}`,onClick:()=>t.removeImage(N),children:"×"})]},N.name))}),f.jsxs("div",{className:"oc-composer-toolbar",children:[f.jsxs("label",{className:"oc-attach-button oc-attach-icon",title:"添加图片","aria-label":"添加图片",children:[f.jsx(UI,{}),f.jsx("span",{className:"sr-only",children:"添加图片"}),f.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,hidden:!0,onChange:N=>{t.addImagesFromFiles(Array.from(N.target.files??[]).slice(0,4)),N.target.value=""}})]}),f.jsxs("span",{className:"oc-composer-hint",children:[f.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),f.jsxs("span",{className:"oc-composer-hint",children:[f.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",f.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]}),c&&f.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),t.shortcutOpen&&t.filteredShortcuts.length>0&&f.jsxs("div",{className:"oc-shortcut-palette",id:"oc-shortcut-palette",ref:e.shortcutPaletteRef,role:"listbox","aria-label":"命令","aria-busy":t.dynamicCommandsLoading||void 0,"data-layout-mode":e.layoutMode,children:[f.jsxs("div",{className:"oc-shortcut-palette-head",children:[f.jsxs("strong",{children:["命令 · ",t.filteredShortcuts.length]}),t.dynamicCommandsLoading?f.jsx("span",{className:"oc-shortcut-palette-meta",children:"正在加载扩展、提示词与技能…"}):null,t.dynamicCommandsError?f.jsxs("span",{className:"oc-shortcut-palette-meta is-error",children:[t.dynamicCommandsError,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>t.retryDynamicCommands(),children:"重试"})]}):null]}),f.jsx("div",{className:"oc-shortcut-palette-body",children:e.paletteModel.map(N=>f.jsxs("div",{className:"oc-shortcut-group",children:[f.jsxs("small",{children:[N.label," · ",N.items.length]}),N.items.map(({entry:R,globalIndex:A})=>f.jsxs("button",{type:"button",role:"option",id:`oc-shortcut-option-${A}`,"aria-label":R.command,"aria-describedby":`oc-shortcut-option-desc-${A}`,"aria-selected":A===t.shortcutIndex,className:A===t.shortcutIndex?"is-active":"","data-shortcut-index":A,title:R.command,onMouseEnter:()=>t.setShortcutIndex(A),onMouseDown:F=>F.preventDefault(),onClick:F=>{F.currentTarget.scrollIntoView({block:"nearest"}),x(R.command,R.action)},children:[f.jsx("code",{children:R.command}),f.jsx("small",{id:`oc-shortcut-option-desc-${A}`,children:R.description})]},`${R.source}:${R.command}`))]},N.source))})," "]}),f.jsxs("div",{className:`oc-composer-shell${n?" is-busy":""}`,children:[f.jsx("textarea",{ref:t.textareaRef,className:"oc-textarea",value:t.input,rows:3,placeholder:n?"正在生成回复…可先输入下一轮内容,停止后发送(Enter 暂不发送)":a?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:N=>t.handleInputChange(N.target.value),onKeyDown:b,onCompositionStart:t.onCompositionStart,onCompositionEnd:t.onCompositionEnd,"aria-expanded":t.shortcutOpen,"aria-controls":t.shortcutOpen?"oc-shortcut-palette":void 0,"aria-activedescendant":t.shortcutOpen&&t.filteredShortcuts.length>0?`oc-shortcut-option-${t.shortcutIndex}`:void 0}),n?f.jsxs("button",{type:"button",className:"oc-stop",title:"对话进行中,点击停止","aria-label":"对话进行中,点击停止",onClick:e.onStop,children:[f.jsx("span",{className:"oc-spinner","aria-hidden":"true"}),f.jsx(cI,{})]}):f.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:y,disabled:!t.input.trim()&&t.pendingImages.length===0||c,children:f.jsx(oI,{})})]}),d&&f.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[f.jsxs("span",{children:[d.code?`${d.code}:`:"",d.message]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Qs()},children:"重试"})]}),f.jsx("div",{className:"oc-runtime-controls",children:M})]})})}function HI(e){const{toolCalls:t,onClose:n,overlay:a=!1}=e,s=E.useRef(null);return Bu({open:a,containerRef:s,triggerRef:e.triggerRef,onEscape:n}),f.jsxs("aside",{ref:s,id:"oc-process-panel",className:`oc-process${a?" is-process-overlay":""}`,"aria-label":"工具调用记录",role:a?"dialog":void 0,"aria-modal":a?!0:void 0,tabIndex:-1,children:[f.jsxs("header",{className:"oc-process-head",children:[f.jsxs("div",{className:"oc-process-title",children:[f.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"工具调用记录",f.jsxs("span",{className:"oc-process-count",children:[t.length," 次"]})]}),f.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭工具调用记录",onClick:n,children:"关闭"})]}),f.jsx("div",{className:"oc-process-timeline",children:t.length===0?f.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):t.map((o,c)=>f.jsxs("div",{className:`oc-process-item${c===0?" is-first":""}${c===t.length-1?" is-last":""}${o.status==="error"?" is-error":""}${o.status==="running"?" is-running":""}`,children:[f.jsx("div",{className:"oc-process-rail","aria-hidden":"true",children:f.jsx("span",{className:"oc-process-dot"})}),f.jsx("div",{className:"oc-process-time",children:$m(o.createdAt)}),f.jsx("div",{className:"oc-process-body",children:f.jsx(k6,{entry:o})})]},o.id))})]})}const l2=[{id:"overview",label:"概览"},{id:"system",label:"System prompt"},{id:"files",label:"Context files"},{id:"skills",label:"Skills"},{id:"extensions",label:"Extensions"},{id:"packages",label:"Plugins"},{id:"tools",label:"Active tools"},{id:"raw",label:"原始 JSON"}];function su(e){const t=Array.isArray(e.items)?e.items:void 0;return f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsx("strong",{children:e.title}),f.jsx("span",{className:"oc-runtime-context-meta",children:t?`${t.length} 项`:"未投影"})]}),t===void 0?f.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):t.length===0?f.jsx("p",{className:"oc-runtime-context-empty",children:e.emptyText}):f.jsx("ul",{className:"oc-runtime-context-resources",children:t.map((n,a)=>f.jsx(FI,{item:n},`${n.name??n.path??a}:${a}`))})]})}function FI(e){const t=e.item,a=[t.scope?`scope ${t.scope}`:"",t.source??"",t.version?`v${t.version}`:"",t.cwd?`cwd ${t.cwd}`:""].filter(Boolean).join(" · "),s=t.path?`${t.path}${t.baseDir?`(base: ${t.baseDir})`:""}`:"";return f.jsxs("li",{children:[f.jsxs("div",{className:"oc-runtime-context-resource-head",children:[f.jsx("strong",{className:"oc-runtime-context-resource-name",title:t.path??t.name,children:t.name||t.path||"未命名资源"}),t.enabled===!1?f.jsx("span",{className:"oc-runtime-context-resource-flag",children:"未启用"}):null,a?f.jsx("span",{className:"oc-runtime-context-meta",title:a,children:a}):null]}),t.description?f.jsx("span",{className:"oc-runtime-context-resource-desc",children:t.description}):null,t.path?f.jsx("code",{className:"oc-runtime-context-resource-path",title:s,children:s}):null,t.error?f.jsxs("span",{className:"oc-runtime-context-diag is-error",children:[f.jsx("span",{className:"oc-runtime-context-diag-icon","aria-hidden":"true",children:"✕"}),t.error]}):null,Array.isArray(t.diagnostics)&&t.diagnostics.length>0?f.jsxs("span",{className:"oc-runtime-context-diag",children:[f.jsx("span",{className:"oc-runtime-context-diag-icon","aria-hidden":"true",children:"⚠"}),t.diagnostics.join(";")]}):null,Array.isArray(t.resolved)&&t.resolved.length>0?f.jsxs("details",{className:"oc-runtime-context-resolved",children:[f.jsxs("summary",{children:["已解析 ",t.resolved.length," 项"]}),f.jsx("ul",{className:"oc-runtime-context-resolved-list",children:t.resolved.map((o,c)=>{const d=`${o.type??"?"}:${o.name??o.path??"?"}`;return f.jsx("li",{children:f.jsx("code",{title:d,children:d})},c)})})]}):null]})}const PI=E.forwardRef(function({open:t,onToggle:n,onClose:a,context:s,panelOnly:o=!1,triggerOnly:c=!1,triggerRef:d},m){const h=al(),p=h.reloading,b=h.reloadError,[x,y]=E.useState("overview"),S=E.useRef(null);Bu({open:t&&!c,containerRef:S,triggerRef:d,onEscape:a}),E.useEffect(()=>{t||y("overview")},[t]);const C=Array.isArray(s.resources.activeTools)?s.resources.activeTools:[],M=typeof s.resources.activeToolCount=="number"?s.resources.activeToolCount:C.length,N=s.systemPrompt.text??s.systemPrompt.summary??"",R=s.systemPrompt.charCount??N.length,A=s.suffix.present?s.suffix.text??s.suffix.summary??"":"",F=s.model?Nu(s.model.provider,s.model.modelId):"",q=s.resources,O=String(s.resources.mode??"closed"),P=O.includes("open")?"open":"closed",$={files:q.contextFiles?.length??0,skills:q.skills?.length??0,extensions:q.extensions?.length??0,packages:q.packages?.length??0},W=["files","skills","extensions","packages"].map(K=>({id:K,label:l2.find(ie=>ie.id===K)?.label??K,count:$[K]??0})),U=f.jsx("button",{type:"button",ref:K=>{typeof m=="function"?m(K):m&&(m.current=K)},className:`btn btn-ghost oc-runtime-context-toggle${t?" is-active":""}`,"aria-expanded":t,"aria-controls":"oc-runtime-context-panel",onClick:n,children:"注入上下文"});if(c)return U;const G=t?f.jsxs("div",{ref:S,id:"oc-runtime-context-panel",className:"oc-runtime-context-sidepanel",role:"dialog","aria-modal":"true","aria-label":"注入上下文",tabIndex:-1,children:[f.jsxs("header",{className:"oc-runtime-context-head",children:[f.jsxs("div",{className:"oc-runtime-context-head-copy",children:[f.jsx("strong",{children:"注入上下文"}),f.jsx("span",{className:"oc-runtime-context-meta",children:"只读 · 本轮实际注入的 system prompt / 资源(已脱敏)"})]}),f.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭注入上下文",onClick:a,children:"关闭"})]}),f.jsxs("div",{className:"oc-runtime-context-layout",children:[f.jsx("nav",{className:"oc-runtime-context-nav","aria-label":"上下文分类",children:l2.map(K=>{const ie=$[K.id];return f.jsxs("button",{type:"button",className:`oc-runtime-context-nav-item${x===K.id?" is-active":""}`,"aria-current":x===K.id?"page":void 0,onClick:()=>y(K.id),children:[f.jsx("span",{className:"oc-runtime-context-nav-label",title:K.label,children:K.label}),typeof ie=="number"?f.jsx("span",{className:"oc-runtime-context-nav-count",children:ie}):null]},K.id)})}),f.jsxs("div",{className:"oc-runtime-context-body",children:[x==="overview"?f.jsxs("div",{className:"oc-runtime-context-overview",children:[s.model?f.jsxs("section",{className:"oc-runtime-context-model-card",children:[f.jsx("span",{className:"oc-runtime-context-model-label",children:"模型"}),f.jsx("code",{className:"oc-runtime-context-model-ref",title:F,children:F})]}):null,f.jsxs("div",{className:"oc-runtime-context-stat-grid",children:[f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"Prompt 字数"}),f.jsxs("strong",{className:"oc-runtime-context-stat-value",children:[R.toLocaleString()," 字"]})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"工具"}),f.jsx("strong",{className:"oc-runtime-context-stat-value",children:M})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"思考"}),f.jsx("strong",{className:"oc-runtime-context-stat-value",children:s.thinkingLevel??"—"})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"资源面"}),f.jsxs("strong",{className:`oc-runtime-context-stat-value oc-runtime-context-mode is-${P}`,title:O,children:[f.jsx("span",{className:"oc-runtime-context-mode-dot","aria-hidden":"true"}),O]})]})]}),f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsx("header",{className:"oc-runtime-context-section-head",children:f.jsx("strong",{children:"已加载资源"})}),f.jsx("div",{className:"oc-runtime-context-resource-links",children:W.map(K=>f.jsxs("button",{type:"button",className:"oc-runtime-context-resource-link",onClick:()=>y(K.id),children:[f.jsx("span",{className:"oc-runtime-context-resource-label",children:K.label}),f.jsx("span",{className:`oc-runtime-context-resource-count${K.count===0?" is-zero":""}`,children:K.count}),f.jsx("span",{className:"oc-runtime-context-resource-chevron","aria-hidden":"true",children:"›"})]},K.id))})]})]}):null,x==="system"?f.jsxs(f.Fragment,{children:[f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"System prompt"}),f.jsxs("code",{className:"oc-runtime-context-hash",children:[s.systemPrompt.hash.slice(0,12),"…"]})]}),N?f.jsx(Nh,{text:N}):null]}),f.jsx("pre",{className:"oc-runtime-context-text",children:N||"(空)"})]}),f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsxs("div",{className:"oc-runtime-context-section-title",children:[f.jsx("strong",{children:"Session suffix"}),f.jsx("span",{className:"oc-runtime-context-meta",children:s.suffix.present?`${(s.suffix.charCount??0).toLocaleString()} 字`:"未注入"})]}),A?f.jsx(Nh,{text:A}):null]}),s.suffix.present?f.jsx("pre",{className:"oc-runtime-context-text",children:A||"已注入"}):f.jsx("p",{className:"oc-runtime-context-empty",children:"本会话无额外 suffix"})]})]}):null,x==="files"?f.jsx(su,{title:"Context files",items:q.contextFiles?.map(K=>({name:K.path,description:`${K.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件"}):null,x==="skills"?f.jsx(su,{title:"Skills",items:q.skills,emptyText:"该 session 未加载任何 Skills"}):null,x==="extensions"?f.jsx(su,{title:"Extensions",items:q.extensions,emptyText:"该 session 未加载任何 Extensions"}):null,x==="packages"?f.jsx(su,{title:"Plugins",items:q.packages,emptyText:"该会话没有插件"}):null,x==="tools"?f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsx("strong",{children:"Active tools"}),f.jsxs("span",{className:"oc-runtime-context-meta",children:[M," 项"]})]}),C.length===0?f.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):f.jsx("ul",{className:"oc-runtime-context-tools",children:C.map(K=>f.jsx("li",{children:f.jsx("code",{children:K})},K))}),Array.isArray(q.diagnostics)&&q.diagnostics.length>0?f.jsx("ul",{className:"oc-runtime-context-resources",children:q.diagnostics.map((K,ie)=>f.jsxs("li",{children:[f.jsxs("span",{className:`oc-runtime-context-diag is-${K.type??"warning"}`,children:[K.type,": ",K.message]}),K.path?f.jsx("code",{children:K.path}):null]},ie))}):null]}):null,x==="raw"?f.jsxs("details",{className:"oc-runtime-context-raw",open:!0,children:[f.jsx("summary",{children:"原始投影 JSON"}),f.jsx("pre",{children:JSON.stringify(s,null,2)})]}):null]},x)]}),f.jsxs("footer",{className:"oc-runtime-context-foot",children:[f.jsx("span",{className:"oc-runtime-context-meta",children:p?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),f.jsx("button",{type:"button",className:"btn btn-ghost",disabled:p,onClick:()=>{Qs()},children:"重新加载会话"}),b&&f.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[b.code?`${b.code}:`:"",b.message,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Qs()},children:"重试"})]})]})]}):null;return o?G:f.jsxs("div",{className:"oc-runtime-context-menu",children:[U,G]})});function $I(){const e=E.useRef(null),t=E.useRef(!1),n=E.useRef(null),a=E.useRef(new Map),s=E.useRef(new Set),o=E.useRef(null),c=E.useRef(null),d=E.useRef(0),m=E.useRef(null),h=E.useRef(new Set),p=E.useRef(new Set),b=E.useRef(new Map),x=E.useRef(new Set),y=E.useRef(null),S=E.useRef(null),C=E.useRef(!1),M=E.useRef(0),N=E.useRef(null),R=E.useRef(!1),A=E.useRef(!1),F=E.useRef(null),q=E.useRef(new Set),O=E.useRef(new Set),P=E.useRef(new Set),$=E.useRef(!1),W=E.useRef(0);return E.useMemo(()=>({sessionRef:e,streamingRef:t,abortRef:n,sessionAbortControllersRef:a,inlineStreamSessionIdsRef:s,assistantIdRef:o,lastEventIdRef:c,sessionGenerationRef:d,eventsStreamStateRef:m,settledTurnIdsRef:h,seenEventIdsRef:p,turnAssistantIdsRef:b,sealedAssistantIdsRef:x,reconnectAbortRef:y,activeTurnIdRef:S,submitInFlightRef:C,submitGenerationRef:M,pendingSubmissionRef:N,stopInFlightRef:R,stopRequestedRef:A,stoppingTurnIdRef:F,abortPostedTurnIdsRef:q,releasedClientRequestIdsRef:O,usageResponseKeysRef:P,isComposingRef:$,compositionEndedAtRef:W}),[e,t,n,a,s,o,c,d,m,h,p,b,x,y,S,C,M,N,R,A,F,q,O,P,$,W])}const GI=["operation","contract","dag","report","html"];function KI(e){const t=e.artifact;if(!t||typeof t!="object")return;const n=t;if(!(n.schemaVersion!==1||typeof n.artifactId!="string"||!n.artifactId||typeof n.kind!="string"||!GI.includes(n.kind)||typeof n.previewHash!="string")){for(const a of["title","summary","htmlPreview","reportText","inspectHref"])if(n[a]!==void 0&&typeof n[a]!="string")return;return n}}function VI(e,t){const n=e.findIndex(a=>a.artifactId===t.artifactId);return n<0?[...e,t]:e.map((a,s)=>s===n?{...a,...t,eventSeq:a.eventSeq??t.eventSeq,activityRef:a.activityRef??t.activityRef}:a)}function YI(e){if(!e||typeof e!="object")return;const t=e;if(!(t.schemaVersion!==1||typeof t.cardId!="string"||t.gateType!=="contract-apply"&&t.gateType!=="dag-run"||typeof t.taskId!="string"||typeof t.state!="string"||typeof t.expiresAt!="string"||typeof t.inspectHref!="string"||typeof t.previewHash!="string"))return t}function XI(e,t){const n=e.findIndex(o=>o.cardId===t.cardId);if(n<0)return[...e,t];const a=[...e],s=a[n];return s?(a[n]={...s,...t,eventSeq:s.eventSeq??t.eventSeq,activityRef:s.activityRef??t.activityRef},a):[...e,t]}function ZI(e,t){const n=e.findIndex(a=>a.operationId===t.operationId);return n<0?[...e,t]:e.map((a,s)=>{if(s!==n)return a;let o=a.eventSeq;return o===void 0?o=t.eventSeq:t.eventSeq!==void 0&&(o=Math.min(o,t.eventSeq)),{...a,...t,...o===void 0?{}:{eventSeq:o},updatedSeq:Math.max(a.updatedSeq??a.eventSeq??0,t.updatedSeq??t.eventSeq??0),toolCallId:a.toolCallId??t.toolCallId,activityRef:a.activityRef??t.activityRef}})}function WI(e){const t=e.operation;if(!t||typeof t!="object")return;const n=t;if(n.schemaVersion!==1||typeof n.operationId!="string"||typeof n.action!="string"||typeof n.state!="string"||typeof n.inspectHref!="string"||typeof n.createdAt!="string"||typeof n.updatedAt!="string"||typeof n.previewHash!="string")return;const a=QI(n.runSummary),{runSummary:s,...o}=n;return{...o,...a?{runSummary:a}:{}}}function QI(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e;if(typeof t.runId!="string"||!t.runId||typeof t.status!="string"||!t.status)return;let n=[];Array.isArray(t.nodes)&&(n=t.nodes.flatMap(o=>{if(!o||typeof o!="object")return[];const c=String(o.id??""),d=String(o.status??"");return!c||!d?[]:[{id:c,status:d}]}).slice(0,20));let a;if(t.next&&typeof t.next=="object"){const o=t.next;a={kind:String(o.kind??""),...typeof o.description=="string"?{description:o.description}:{}}}return{runId:t.runId,status:t.status,nodes:n,...typeof t.verdict=="string"?{verdict:t.verdict}:{},...typeof t.failureCategory=="string"?{failureCategory:t.failureCategory}:{},...a&&a.kind?{next:a}:{}}}function JI(e){const{refs:t,onReconcile:n,setError:a,setInterview:s,setHumanGateCards:o,setArtifactCards:c,setStreaming:d,setStreamingAssistantId:m,setUnread:h,setOperationCards:p,setUsage:b,setMessages:x,setToolCalls:y}=e;return(S,C,M,N)=>{if(N?.generation!==void 0&&t.sessionGenerationRef.current!==N.generation)return;const R=N?.replay===!0;if(S==="stream_ready")return;if(S==="reconcile"){const W={reason:typeof C.reason=="string"?C.reason:"cursor_expired",...typeof C.minSeq=="number"?{minSeq:C.minSeq}:{},...typeof C.epoch=="string"?{epoch:C.epoch}:{},...typeof C.latestTurnId=="string"?{latestTurnId:C.latestTurnId}:{}};(typeof C.latestEventId=="string"||C.latestEventId===null)&&(W.latestEventId=C.latestEventId),n?.(W);return}const A=C.data&&typeof C.data=="object"?C.data:C,F=typeof C.turnId=="string"?C.turnId:void 0,q=typeof C.seq=="number"&&Number.isFinite(C.seq)?C.seq:void 0,O=typeof C.at=="string"&&Number.isFinite(Date.parse(C.at))?Date.parse(C.at):Date.now();if(F&&(S==="agent_start"||S==="message_update")&&t.settledTurnIdsRef.current.has(F))return;let P=M;if(F){const $=t.turnAssistantIdsRef.current.get(F);$?P=$:t.turnAssistantIdsRef.current.set(F,M)}if(S==="interview-turn"){s($=>({...$??{},interviewSessionId:typeof A.interviewSessionId=="string"?A.interviewSessionId:$?.interviewSessionId,taskId:typeof A.taskId=="string"?A.taskId:$?.taskId,state:typeof A.state=="string"?A.state:$?.state,question:A.question&&typeof A.question=="object"?A.question:void 0}));return}if(S==="draft"){s($=>({...$??{},taskId:typeof A.taskId=="string"?A.taskId:$?.taskId,draft:A.draft&&typeof A.draft=="object"?A.draft:$?.draft,draftSha256:typeof A.draftSha256=="string"?A.draftSha256:$?.draftSha256,taskKindRecommendation:typeof A.taskKindRecommendation=="string"?A.taskKindRecommendation:$?.taskKindRecommendation}));return}if(S==="assessment"){s($=>({...$??{},assessment:A}));return}if(S==="taskKind-confirmed"){s($=>({...$??{},confirmedTaskKind:typeof A.taskKind=="string"?A.taskKind:$?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(S==="human-gate-card"){const $=YI(A);$&&o(W=>XI(W,{...$,...q===void 0?{}:{eventSeq:q},...F?{turnId:F}:{},activityRef:`gate:${$.cardId}`}));return}if(S==="artifact-ref"){const $=KI(A);$&&c(W=>VI(W,{...$,...q===void 0?{}:{eventSeq:q},...F?{turnId:F}:{},activityRef:`artifact:${$.artifactId}`}));return}if(S==="agent_start"){if(R&&F!==void 0&&F!==t.activeTurnIdRef.current)return;F&&(t.settledTurnIdsRef.current.delete(F),t.activeTurnIdRef.current=F),t.streamingRef.current=!0,d(!0),m(P);return}if(S==="agent_settled"||S==="agent_end"){if(F&&t.settledTurnIdsRef.current.add(F),S==="agent_end")return;F===t.activeTurnIdRef.current&&(t.activeTurnIdRef.current=null),t.streamingRef.current=!1,d(!1),m(null),S==="agent_settled"&&!R&&typeof document<"u"&&document.hidden&&h(W=>W+1);let $=!1;y(W=>($=W.some(U=>U.assistantMessageId===P),W.map(U=>U.status==="running"&&(F!==void 0&&U.turnId===F||U.assistantMessageId===P)?{...U,status:"error",finishedAt:Date.now()}:U))),x(W=>W.filter(U=>U.id!==P||U.role!=="assistant"||U.text.trim()||U.content&&U.content.length>0?!0:$));return}if(S==="operation-ref"||S==="operation-status"){const $=WI(A);if($){const W=typeof A.toolCallId=="string"?A.toolCallId:void 0;p(U=>ZI(U,{...$,...q===void 0?{}:{eventSeq:q,updatedSeq:q},...F?{turnId:F}:{},...W?{toolCallId:W}:{},activityRef:`operation:${$.operationId}`}))}return}if(S==="usage"){if(R)return;const $=A,W=typeof $.responseKey=="string"&&$.responseKey?$.responseKey:void 0;if(W&&t.usageResponseKeysRef.current.has(W))return;W&&t.usageResponseKeysRef.current.add(W),b(U=>{const G=$.inputTokens??0,K=$.outputTokens??0,ie=$.cacheReadTokens??0,Q=$.cacheWriteTokens??0,H=$.totalTokens??G+K+ie+Q,B=$.contextUsage,Y=B&&typeof B=="object"?{tokens:typeof B.tokens=="number"?B.tokens:null,contextWindow:typeof B.contextWindow=="number"?B.contextWindow:0,percent:typeof B.percent=="number"?B.percent:null}:U.contextUsage;return{inputTokens:U.inputTokens+G,outputTokens:U.outputTokens+K,cacheReadTokens:U.cacheReadTokens+ie,cacheWriteTokens:U.cacheWriteTokens+Q,totalTokens:U.totalTokens+H,cost:$.cost===void 0?U.cost:(U.cost??0)+$.cost,...Y?{contextUsage:Y}:{}}});return}if(S==="message_update"||S==="message_end"){if(R)return;const $=t.sealedAssistantIdsRef.current;if(S==="message_update"&&$.has(P)){const K=rs("a");F&&t.turnAssistantIdsRef.current.set(F,K);const ie=P;y(Q=>Q.map(H=>H.assistantMessageId===ie?{...H,assistantMessageId:K}:H)),P=K,m(K)}const W=typeof A.text=="string"?A.text:"",U=yp(A.content),G=P;x(K=>K.some(Q=>Q.id===G)?K.map(Q=>Q.id!==G?Q:{...Q,text:W,...U?{content:U}:{}}):[...K,{id:G,role:"assistant",text:W,createdAt:O,...U?{content:U}:{}}]),S==="message_end"&&$.add(G)}else if(S==="tool_call"){const $=typeof A.toolCallId=="string"?A.toolCallId:rs("t"),W=typeof A.toolName=="string"?A.toolName:"tool",U=typeof A.argsPreview=="string"?A.argsPreview:"{}";y(G=>G.some(K=>K.id===$)?G.map(K=>K.id!==$?K:{...K,args:U,status:"running",turnId:F??K.turnId,assistantMessageId:P,...q===void 0?{}:{eventSeq:q}}):[...G,{id:$,toolName:W,args:U,status:"running",createdAt:O,...q===void 0?{}:{eventSeq:q},turnId:F,assistantMessageId:P}])}else if(S==="tool_result"){const $=typeof A.toolCallId=="string"?A.toolCallId:rs("r"),W=typeof A.toolName=="string"?A.toolName:"tool",U=A.isError===!0,G=typeof A.resultPreview=="string"?A.resultPreview:"{}",K=typeof A.operationId=="string"&&A.operationId?A.operationId:void 0;y(ie=>ie.find(H=>H.id===$)?ie.map(H=>H.id!==$?H:{...H,result:G,resultText:G,status:U?"error":"ok",finishedAt:O,...q===void 0?{}:{finishedSeq:q},turnId:F??H.turnId,assistantMessageId:H.assistantMessageId??P,...K?{operationId:K}:H.operationId?{operationId:H.operationId}:{}}):[...ie,{id:$,toolName:W,result:G,resultText:G,status:U?"error":"ok",createdAt:O,finishedAt:O,...q===void 0?{}:{eventSeq:q,finishedSeq:q},turnId:F,assistantMessageId:P,...K?{operationId:K}:{}}])}else S==="error"&&a(typeof A.message=="string"?A.message:"chat error")}}const qm={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function eM(e){const{origin:t,refs:n,sessionId:a,setError:s,onReconcile:o}=e,[c,d]=E.useState([]),[m,h]=E.useState([]),[p,b]=E.useState([]),[x,y]=E.useState([]),[S,C]=E.useState(50),[M,N]=E.useState(0),[R,A]=E.useState([]),[F,q]=E.useState(null),[O,P]=E.useState(null),[$,W]=E.useState(!1),[U,G]=E.useState(qm),[K,ie]=E.useState(!1),[Q,H]=E.useState(null),[B]=E.useState(!1),Y=E.useMemo(()=>JI({refs:n,onReconcile:o,setError:s,setInterview:q,setHumanGateCards:A,setArtifactCards:y,setStreaming:ie,setStreamingAssistantId:H,setUnread:N,setOperationCards:b,setUsage:G,setMessages:d,setToolCalls:h}),[n,o,s]),re=E.useCallback((te,be,ge)=>{if(ge?.targetSessionId&&n.sessionRef.current?.sessionId!==ge.targetSessionId||ge?.generation!==void 0&&n.sessionGenerationRef.current!==ge.generation)return null;const Ie=te.split(`
307
+ `)?f.jsx(kh,{lang:"",text:a}):f.jsx("code",{className:e,...n,children:t})},a({href:e,children:t,...n}){if(!o_(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 c_(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 p_ extends E.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 Th({text:e}){try{return f.jsx(p_,{text:e,children:f.jsx("div",{className:"oc-md",children:f.jsx(_E,{remarkPlugins:u_,rehypePlugins:d_,components:h_,children:e})})})}catch{return f.jsx("div",{className:"oc-md",children:f.jsx("pre",{className:"oc-md-fallback",children:e})})}}function g_(e){return e.language==="md"||e.language==="markdown"}function b_(e){const t=e.previews.find(o=>o.path===e.activePath),n=t?g_(t):!1,[a,s]=E.useState(n?"preview":"source");return E.useEffect(()=>{s(n?"preview":"source")},[t?.path,n]),!t&&!e.loading?null:f.jsxs(f.Fragment,{children:[t&&f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"oc-file-preview-backdrop",onMouseDown:o=>{o.target===o.currentTarget&&e.onClose(t.path)}}),f.jsxs("section",{className:"oc-file-preview","aria-label":`文件预览 ${t.path}`,children:[f.jsxs("header",{children:[f.jsx("div",{className:"oc-file-tabs",role:"tablist","aria-label":"文件预览 Tabs",children:e.previews.map(o=>f.jsx("button",{type:"button",role:"tab","aria-selected":o.path===t.path,className:o.path===t.path?"is-active":"",onClick:()=>e.onActivate(o.path),children:o.path},o.path))}),n&&f.jsxs("div",{className:"oc-file-view-modes",role:"group","aria-label":"文件查看模式",children:[f.jsx("button",{type:"button",className:`oc-file-view-mode${a==="preview"?" is-active":""}`,"aria-pressed":a==="preview",onClick:()=>s("preview"),children:"预览"}),f.jsx("button",{type:"button",className:`oc-file-view-mode${a==="source"?" is-active":""}`,"aria-pressed":a==="source",onClick:()=>s("source"),children:"源文件"})]}),f.jsxs("span",{children:[t.bytes," bytes",t.truncated?" · 已截断":""]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>e.onClose(t.path),children:"关闭预览"})]}),a==="preview"&&n?f.jsx("div",{className:"oc-file-preview-rendered",children:f.jsx(Th,{text:t.content})}):f.jsx("pre",{children:f.jsx("code",{children:t.content})})]})]}),e.loading&&f.jsx("div",{className:"oc-file-preview-loading",children:"正在读取文件…"})]})}const a6=[{command:"/task",label:"Task context",description:"查看当前任务、Draft 与 assessment",action:"focus-panel:task",source:"operator"},{command:"/contract",label:"Contract",description:"查看 contract diff 与 apply gate",action:"focus-panel:contract",source:"operator"},{command:"/dag",label:"DAG",description:"查看 DAG spine、确认与运行状态",action:"focus-panel:dag",source:"operator"},{command:"/interview",label:"Interview",description:"打开 Requirement Interview",action:"focus:interview",source:"operator"},{command:"/reload",label:"Reload session",description:"重新加载当前 Pi 会话的设置、扩展、技能、提示词、主题与上下文文件(不产生消息)",action:"reload",source:"operator"}],i6=[{command:"/compact",label:"压缩上下文",description:"压缩当前会话上下文,释放 token",action:"compact",source:"web"},{command:"/name",label:"重命名会话",description:"设置当前会话标题",action:"name",source:"web"},{command:"/session",label:"会话信息",description:"显示当前会话元信息",action:"session",source:"web"},{command:"/copy",label:"复制回复",description:"复制最后一条助手消息原文",action:"copy",source:"web"}],as={operator:0,web:1,extension:2,skill:3,prompt:4};function Yy(e){const t=e.trim().split(/\s+/,1)[0]??"";return t?t.startsWith("/")?t.toLowerCase():`/${t.toLowerCase()}`:""}function Xy(e){const t=e.trim().split(/\s+/,1)[0]?.toLowerCase();if(!t?.startsWith("/"))return;const n=[...a6,...i6].find(a=>a.command===t);return n?{command:n.command,action:n.action}:{command:t,action:"unknown"}}function v_(e){if(e==="focus-panel:task"||e==="focus-panel:contract")return"tasks";if(e==="focus-panel:dag")return"recovery"}function y_(e=[]){const t=new Map,n=a=>{const s=Yy(a.command);if(!s)return;const o=t.get(s);if(!o){t.set(s,{...a,command:s});return}as[a.source]<as[o.source]&&t.set(s,{...a,command:s})};for(const a of a6)n({command:a.command,label:a.label,description:a.description,source:a.source,action:a.action});for(const a of i6)n({command:a.command,label:a.label,description:a.description,source:a.source,action:a.action});for(const a of e){const s=Yy(a.command);s&&n({command:s,label:a.label||s,description:a.description||"",source:a.source,action:"pi-prompt"})}return[...t.values()].sort((a,s)=>{const o=as[a.source]-as[s.source];return o!==0?o:a.command.localeCompare(s.command)})}function x_(e,t){const n=(t.trim().split(/\s+/,1)[0]??"").toLowerCase();if((/\s/.test(t.trimStart().slice(1))||t.includes(" "))&&t.trimStart().includes(" "))return[];const a=n.startsWith("/")?n:n?`/${n}`:"/",s=a==="/"?"":a.slice(1),o=[];for(const c of e){const d=c.command.toLowerCase(),m=d.startsWith("/")?d.slice(1):d,h=c.description.toLowerCase();let p=100;if(!s)p=10+as[c.source];else if(d===a||m===s)p=0;else if(d.startsWith(a)||m.startsWith(s))p=1;else if(m.includes(s)||d.includes(s))p=2;else if(h.includes(s))p=3;else continue;o.push({...c,score:p})}return o.sort((c,d)=>{if(c.score!==d.score)return c.score-d.score;const m=as[c.source]-as[d.source];return m!==0?m:c.command.localeCompare(d.command)})}const w_={operator:"Operator",web:"Pi Web",extension:"Extensions",prompt:"Prompts",skill:"Skills"},S_=new Set(["operatorCapabilities","operationList","operationGet","operationEventSummary","statsContext","sourceInstructions","spineCheck","inspect","observeLink"]);function k_(e){return S_.has(e)?"technical-only":e==="doctor"?"inline-detail":"activity-detail"}const E_={newTask:"创建任务",importPrd:"任务需求",contractShow:"任务边界",contractApply:"更新任务契约",contractDiff:"任务契约差异",contractDraftSave:"任务契约草稿",contractValidate:"检查任务契约",taskAdvance:"推进任务准备",dagRunTask:"执行流程",dagValidate:"校验执行流程",prepareDagConfirmation:"执行确认",confirmDagConfirmation:"确认执行边界",prepareDagExecution:"执行边界",runDag:"任务执行",operationWait:"执行监督",operationGet:"任务活动详情",operationList:"会话活动",operationEventSummary:"执行进展摘要",dagStatus:"执行状态",dagDoctor:"执行诊断",dagReport:"执行结果",dagRerunPlan:"恢复评估",dagRerun:"从节点续跑",dagInterruptEligibility:"中止资格",standaloneTaskRerun:"完整重跑任务",workerTaskRetry:"重试 Worker 任务",workerPoolDoctor:"任务池诊断",promoteRun:"任务推进",status:"任务状态"},T_={newTask:{running:"正在创建任务",success:"任务已经创建",error:"创建任务时遇到问题"},importPrd:{running:"正在整理并导入任务需求",success:"任务需求已经导入",error:"导入任务需求时遇到问题"},contractShow:{running:"正在读取任务目标和执行边界",success:"任务目标与执行边界已经读取",error:"读取任务边界时遇到问题"},taskAdvance:{running:"正在推进任务契约并准备执行流程",success:"任务已经推进到下一安全阶段",error:"任务推进被契约或执行边界阻塞"},dagRunTask:{running:"正在生成并校验执行流程",success:"执行流程已经准备好",error:"准备执行流程时遇到问题"},prepareDagExecution:{running:"正在确认任务可以安全执行",success:"执行边界已经确认",error:"执行边界尚未通过确认"},runDag:{running:"正在启动任务执行",success:"任务执行已经启动",error:"启动任务执行时遇到问题"},dagReport:{running:"正在读取本次执行结果",success:"本次执行结果已经读取",error:"读取执行结果时遇到问题"},dagRerunPlan:{running:"正在评估能否从失败位置继续",success:"恢复条件评估已经完成",error:"暂时无法确定安全的恢复方式"},dagInterruptEligibility:{running:"正在检查能否协作中止此运行",success:"中止资格已经确认",error:"当前运行不能协作中止"},dagRerun:{running:"正在从失败节点续跑",success:"已经从失败节点继续执行",error:"从失败节点续跑时遇到问题"},standaloneTaskRerun:{running:"正在完整重跑整单任务",success:"已经启动完整重跑",error:"完整重跑任务时遇到问题"},workerPoolDoctor:{running:"正在读取任务池状态",success:"任务池状态已经读取",error:"读取任务池状态时遇到问题"},promoteRun:{running:"正在推进任务状态",success:"任务状态已经更新",error:"推进任务状态时遇到问题"},status:{running:"正在读取任务状态",success:"任务状态已经更新",error:"读取任务状态时遇到问题"},contractApply:{running:"正在应用任务契约变更",success:"任务契约已经更新",error:"应用任务契约变更时遇到问题"},contractDiff:{running:"正在比较任务契约版本",success:"任务契约差异已经读取",error:"比较任务契约时遇到问题"},contractDraftSave:{running:"正在保存任务契约草稿",success:"任务契约草稿已经保存",error:"保存任务契约草稿时遇到问题"},contractValidate:{running:"正在检查任务契约",success:"任务契约检查已经完成",error:"任务契约检查没有通过"},dagValidate:{running:"正在校验执行流程",success:"执行流程校验已经通过",error:"执行流程校验没有通过"},prepareDagConfirmation:{running:"正在准备执行确认",success:"执行确认已经准备好",error:"准备执行确认时遇到问题"},confirmDagConfirmation:{running:"正在确认执行边界",success:"执行边界已经确认",error:"执行边界尚未通过确认"},operationGet:{running:"正在读取任务活动详情",success:"任务活动详情已经读取",error:"读取任务活动详情时遇到问题"},operationList:{running:"正在读取本次对话的活动",success:"本次对话的活动已经读取",error:"读取对话活动时遇到问题"},operationEventSummary:{running:"正在汇总执行进展",success:"执行进展已经汇总",error:"汇总执行进展时遇到问题"},dagStatus:{running:"正在读取执行状态",success:"执行状态已经更新",error:"读取执行状态时遇到问题"},dagDoctor:{running:"正在诊断本次任务执行",success:"任务执行诊断已经完成",error:"诊断任务执行时遇到问题"},workerTaskRetry:{running:"正在重试失败的任务",success:"失败任务已经重新开始",error:"重试失败任务时遇到问题"},doctor:{running:"正在检查运行环境",success:"运行环境检查已经完成",error:"运行环境检查发现问题"},inspect:{running:"正在读取详细运行信息",success:"详细运行信息已经读取",error:"读取详细运行信息时遇到问题"},observeLink:{running:"正在准备运行看板入口",success:"运行看板入口已经准备好",error:"准备运行看板入口时遇到问题"},operatorCapabilities:{running:"正在读取可用操作能力",success:"可用操作能力已经读取",error:"读取可用操作能力时遇到问题"},sourceInstructions:{running:"正在读取任务来源说明",success:"任务来源说明已经读取",error:"读取任务来源说明时遇到问题"},spineCheck:{running:"正在检查计划执行步骤",success:"计划执行步骤检查已经完成",error:"计划执行步骤检查发现问题"},statsContext:{running:"正在统计上下文使用情况",success:"上下文使用情况已经统计完成",error:"统计上下文使用情况时遇到问题"}},N_=[{pattern:/(?:^|-)contract(?:-pi)?$/i,running:"正在核对任务目标和执行边界",finished:"任务目标与执行边界已确认",error:"任务边界存在冲突,需要先处理"},{pattern:/scout-src/i,running:"正在梳理与任务相关的代码",finished:"相关代码范围已梳理",error:"梳理相关代码时遇到问题"},{pattern:/scout-tests/i,running:"正在检查现有测试和验证方式",finished:"现有测试与验证方式已确认",error:"检查现有测试时遇到问题"},{pattern:/plan/i,running:"正在整理具体实施步骤",finished:"实施步骤已经准备好",error:"实施方案还需要进一步完善"},{pattern:/implement|writer/i,running:"正在修改并保存相关文件",finished:"文件修改已经完成",error:"修改文件时遇到问题"},{pattern:/verify|reverify/i,running:"正在验证本次修改",finished:"本次修改已通过验证",error:"验证没有通过,正在检查原因"},{pattern:/review/i,running:"正在检查改动是否完整",finished:"改动完整性检查已通过",error:"发现需要补充或修正的内容"},{pattern:/closeout/i,running:"正在整理交付结果",finished:"任务已经完成并形成交付记录",error:"交付结果尚未整理完整"}];function s6(e){if(!(!e||typeof e!="object"))return e}function pp(e){if(e&&typeof e=="object")return e;if(typeof e=="string")try{return s6(JSON.parse(e))}catch{return}}function Lm(e){const n=pp(e)?.operationId;return typeof n=="string"&&n?n:void 0}function C_(e){const n=pp(e)?.maxWaitMs;if(!(typeof n!="number"||!Number.isFinite(n)||n<=0))return Math.max(1,Math.round(n/1e3))}function l6(e){const t=e.operationId??Lm(e.args)??Lm(e.result)??Lm(e.resultText);return t?`operation:${t}`:`tool:${e.id}`}function A_(e){return e==="running"?"progress":e==="error"?"error":"success"}function R_(e){return pp(e.resultText??e.result)}function __(e){return Array.isArray(e.events)?e.events.flatMap(t=>{const n=s6(t);if(!n)return[];const a=n.messagePreview??n.message;return typeof a=="string"?[a]:[]}):[]}function I_(e,t,n){const a=[];for(const m of e)for(const h of m.matchAll(/node-(started|finished)[^\n]*?node=([^\s,]+)/gi)){const p=h[1]?.toLowerCase(),b=h[2]??"",x=m.match(/status=([^\s,]+)/i)?.[1]?.toUpperCase();let y="finished";x==="ERROR"||x==="FAILED"?y="error":p==="started"&&(y="running"),a.push({node:b,status:y})}const s=a.at(-1);if(!s)return;const o=a.some(m=>/scout-src/i.test(m.node)&&m.status==="finished"),c=a.some(m=>/scout-tests/i.test(m.node)&&m.status==="finished");if(o&&c)return{id:t,kind:"success",title:"代码与测试的影响范围已确认",activityRef:n};const d=N_.find(m=>m.pattern.test(s.node));return d?s.status==="running"?{id:t,kind:"progress",title:d.running,activityRef:n}:s.status==="error"?{id:t,kind:"error",title:d.error,activityRef:n}:{id:t,kind:"success",title:d.finished,activityRef:n}:{id:t,kind:"success",title:"执行状态已经更新",activityRef:n}}function M_(e){const t=l6(e),n=`activity:${e.id}`,a=C_(e.args);if(e.status==="running")return{id:n,kind:"progress",title:a?`正在等待新的执行进展,最长等待时间 ${a} 秒`:"正在等待新的执行进展",activityRef:t};if(e.status==="error")return{id:n,kind:"error",title:"等待执行进展时遇到问题",activityRef:t};let s="";typeof e.resultText=="string"?s=e.resultText:typeof e.result=="string"&&(s=e.result);const o=R_(e),c=I_([s,...o?__(o):[]],n,t);if(c)return c;if(o){if(o.timedOut===!0||o.changed===!1)return{id:n,kind:"warning",title:"等待期间没有新的执行进展",activityRef:t};if(o.changed===!0)return{id:n,kind:"success",title:"已经收到新的执行进展",activityRef:t}}return{id:n,kind:"success",title:"执行状态已经更新",activityRef:t}}function O_(e){const t=k_(e.toolName);if(t==="technical-only"||t==="inline-detail")return;if(e.toolName==="operationWait")return M_(e);const n=T_[e.toolName];if(!n)return;let a=n.success;return e.status==="running"?a=n.running:e.status==="error"&&(a=n.error),{id:`activity:${e.id}`,kind:A_(e.status),title:a,activityRef:l6(e)}}function o6(e){return E_[e]??"任务活动"}function gp(e){switch(e){case"starting":return{label:"正在启动",kind:"progress"};case"running":return{label:"运行中",kind:"progress"};case"succeeded":case"finished":case"FINISHED":case"pass":return{label:"已完成",kind:"success"};case"failed":case"partial_failed":case"ERROR":case"FAILED":case"timed-out":return{label:"未完成",kind:"error"};case"needs-reconcile":return{label:"需要同步",kind:"warning"};case"cancelled":case"abandoned":case"superseded":return{label:"已停止",kind:"warning"};default:return{label:"状态已更新",kind:"success"}}}function c6(e){return[e.activityRef??`operation:${e.operationId}`,`operation:${e.operationId}`,...e.toolCallId?[`tool:${e.toolCallId}`]:[]]}function u6(e){return[e.activityRef??`gate:${e.cardId}`]}function d6(e){return[e.activityRef??`artifact:${e.artifactId}`]}function D_(e){return new Set([...e.operations.flatMap(c6),...e.gates.flatMap(u6),...e.artifacts.flatMap(d6)])}function Zy(e){return e.updatedSeq??e.eventSeq}function Wy(e){const t=Date.parse(e.updatedAt);return Number.isFinite(t)?t:0}function bp(e,t){const n=Zy(e),a=Zy(t);return n!==void 0&&a!==void 0?n-a:Wy(e)-Wy(t)}function j_(e){return e.taskId?`task:${e.taskId}`:e.dagRunId?`run:${e.dagRunId}`:`operation:${e.operationId}`}function L_(e){return e.taskId?e.taskId.replace(/^\d{4}-\d{2}-\d{2}-/,"").replace(/[-_]+/g," ").trim()||e.taskId:o6(e.action)}function z_(e){return[...new Set(e)]}function B_(e){const t=new Map;for(const n of e)t.set(n.action,n);return[...t.values()].sort(bp).map(n=>{const a=gp(n.state);return{id:n.operationId,label:o6(n.action),stateLabel:a.label,kind:a.kind,at:n.updatedAt}})}function U_(e){const t=new Map;for(const n of e){const a=n.dagRunId??n.runSummary?.runId;if(!a)continue;const s=t.get(a)??[];s.push(n),t.set(a,s)}return[...t.entries()].flatMap(([n,a])=>{const s=[...a].sort((h,p)=>bp(p,h)),o=s[0];if(!o)return[];const c=s.find(h=>h.runSummary)?.runSummary,d=c?.status??o.state,m=gp(d);return[{runId:n,state:d,stateLabel:m.label,kind:m.kind,updatedAt:o.updatedAt,operationCount:a.length,firstFailedNode:c?.nodes.find(h=>h.status==="ERROR")?.id,failureCategory:c?.failureCategory,inspectHref:o.inspectHref}]}).sort((n,a)=>Date.parse(a.updatedAt)-Date.parse(n.updatedAt))}function f6(e){const t=new Map;for(const n of e){const a=j_(n),s=t.get(a)??[];s.push(n),t.set(a,s)}return[...t.entries()].flatMap(([n,a])=>{const s=[...a].sort(bp),o=s.at(-1);if(!o)return[];const c=gp(o.state);return[{key:n,taskId:o.taskId,displayTitle:L_(o),state:o.state,stateLabel:c.label,kind:c.kind,updatedAt:o.updatedAt,latestOperation:o,operations:s,steps:B_(s),runs:U_(s),activityRefs:z_(s.flatMap(c6)),compactEligible:c.kind==="success"}]}).sort((n,a)=>{const s=n.kind==="progress"||n.kind==="error"?0:1,o=a.kind==="progress"||a.kind==="error"?0:1;return s!==o?s-o:Date.parse(a.updatedAt)-Date.parse(n.updatedAt)})}const q_={operation:"执行记录",contract:"任务契约",dag:"执行流程",report:"报告",html:"HTML 预览"};function H_(e){const{artifact:t}=e,n=!!(t.reportText||t.htmlPreview);return f.jsxs("section",{className:"oc-artifact-card","aria-label":`任务产物:${t.title??t.artifactId}`,"data-activity-ref":t.activityRef??`artifact:${t.artifactId}`,children:[f.jsxs("header",{children:[f.jsxs("div",{children:[f.jsx("small",{children:"任务产物"}),f.jsx("strong",{children:t.title??t.artifactId}),f.jsx("code",{children:t.artifactId})]}),f.jsx("span",{children:q_[t.kind]})]}),t.summary?f.jsx("p",{children:t.summary}):null,n?f.jsxs("details",{className:"oc-artifact-details",children:[f.jsx("summary",{children:"预览与技术详情"}),t.reportText?f.jsx("pre",{children:t.reportText}):null,t.htmlPreview?f.jsx("iframe",{title:`${t.title??t.artifactId} preview`,sandbox:"",srcDoc:t.htmlPreview}):null]}):null,t.inspectHref?f.jsx("footer",{children:f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>window.open(t.inspectHref,"_blank","noopener,noreferrer"),children:"打开产物"})}):null]})}const Qy={prepared:"等待确认",confirmed:"已经确认",dispatched:"正在执行",consumed:"已经完成",stale:"已经失效",expired:"已经过期",error:"处理失败"};function Jy(e){return e.gateType==="contract-apply"?"确认任务契约变更":e.gateType==="mutation"?"确认执行工作区修改":"确认启动任务执行"}function F_({card:e,origin:t,sessionId:n}){const[a,s]=E.useState(!1),[o,c]=E.useState(),d=async()=>{s(!0),c(void 0);try{let b="contract-apply";e.gateType==="dag-run"?b=e.state==="prepared"?"dag-confirm":"dag-run":e.gateType==="mutation"&&(b="mutation-apply");const x=e.gateType==="dag-run"?{confirmationId:e.confirmationId,...e.state==="prepared"?{humanGateToken:e.humanGateToken}:{}}:{receiptId:e.receiptId,humanGateToken:e.humanGateToken},y=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(n)}/human-gate/${b}`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json","x-loop-console-confirmation":wr()},body:JSON.stringify(x)}),S=await y.json();if(!y.ok)throw new Error(S.error?.message??`HTTP ${y.status}`)}catch(b){c(b instanceof Error?b.message:String(b))}finally{s(!1)}},m=e.state==="prepared"||e.gateType==="dag-run"&&e.state==="confirmed";let h="确认接受";e.gateType==="mutation"?h="确认执行":e.gateType==="dag-run"&&(h=e.state==="prepared"?"确认边界":"启动执行");const p=(e.displayOnlyChallenges?.length??0)+(e.dagSpine?.length??0);return f.jsxs("section",{className:`oc-human-gate-card is-${e.state}`,"aria-label":`${Jy(e)}:${Qy[e.state]}`,"data-activity-ref":e.activityRef??`gate:${e.cardId}`,children:[f.jsxs("header",{children:[f.jsxs("div",{children:[f.jsx("small",{children:"人工门禁"}),f.jsx("strong",{children:Jy(e)}),f.jsx("code",{children:e.taskId})]}),f.jsx("span",{children:Qy[e.state]})]}),e.contractDiffSummary?f.jsx("p",{className:"oc-human-gate-summary",children:e.contractDiffSummary}):null,p>0||e.errorMessage?f.jsxs("details",{className:"oc-human-gate-details",children:[f.jsxs("summary",{children:["门禁详情 · ",p," 项"]}),e.displayOnlyChallenges?.length?f.jsxs("div",{className:"oc-human-gate-challenges",children:[f.jsx("b",{children:"确认前请检查"}),f.jsx("ul",{children:e.displayOnlyChallenges.map(b=>f.jsx("li",{children:b},b))})]}):null,e.dagSpine?.length?f.jsxs("div",{children:[f.jsx("b",{children:"计划执行步骤"}),f.jsx("ol",{children:e.dagSpine.map(b=>f.jsx("li",{children:f.jsx("code",{children:b})},b))})]}):null,e.errorMessage?f.jsx("p",{className:"oc-human-gate-error",children:e.errorMessage}):null]}):null,f.jsxs("footer",{children:[f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>window.open(e.inspectHref,"_blank","noopener,noreferrer"),children:"查看记录"}),f.jsx("button",{className:"btn btn-primary",type:"button",disabled:!m||a,onClick:()=>{d()},children:a?"提交中…":h})]}),o?f.jsx("div",{className:"oc-human-gate-error",children:o}):null]})}const Yr="loop-console.operator-chat.active-session.v1",P_="loop-console.operator-chat.default-landing.v1";function Tu(e){const t=e?.trim().toLowerCase();if(t==="chat")return"chat";if(t==="tasks")return"tasks"}function m6(e){const t=e?.trim().toLowerCase();if(t==="chat"||t==="tasks"||t==="recovery"||t==="night"||t==="models"||t==="settings")return t}function h6(e){const t=n=>e.get(n)?.trim()||void 0;return{...t("taskId")?{taskId:t("taskId")}:{},...t("dagRunId")?{dagRunId:t("dagRunId")}:{},...t("fromNodeId")?{fromNodeId:t("fromNodeId")}:{},...t("featureId")?{featureId:t("featureId")}:{},...t("intent")?{intent:t("intent")}:{}}}function p6(e){const t=String(e??"").replace(/^#/,"");if(!t)return null;const n=t.indexOf("?"),a=n>=0?t.slice(0,n):t,s=n>=0?t.slice(n+1):"",o=(a||"/").split("?")[0]||"/";if(o==="/"||o==="")return null;const c=o.replace(/^\//,"").split("/")[0],d=m6(c);return d?{workspace:d,...h6(new URLSearchParams(s))}:null}function $_(e){const t=new URLSearchParams(e.search),n=e.hash.startsWith("#")?e.hash.slice(1):e.hash,a=new URLSearchParams(n),s=m6(t.get("workspace")??t.get("landing")??a.get("workspace"));return s?{workspace:s,...h6(t)}:null}function G_(e){if(!e)return;const t=p6(e.hash);if(t)return t.workspace;const n=new URLSearchParams(e.search),a=Tu(n.get("landing")??n.get("workspace"));if(a)return a;const s=e.hash.startsWith("#")?e.hash.slice(1):e.hash;return Tu(new URLSearchParams(s).get("workspace"))}function g6(e){return G_(e.location)??Tu(e.storage?.getItem(P_))??Tu(e.env)??"chat"}function b6(e,t={}){const n=new URLSearchParams;for(const[o,c]of Object.entries(t))c?.trim()&&n.set(o,c.trim());const a=n.toString(),s=`/${e}`;return a?`${s}?${a}`:s}function K_(e,t={}){return`#${b6(e,t)}`}function V_(e){return p6(e.hash)??$_(e)}function e2(e,t=900){if(e)return e.length>t?`${e.slice(0,t)}…`:e}function zm(e){return new Date(e).toLocaleString()}function t2(e){if(!e)return;const t=e.trim();if(/taskId[^\n]*(?:placeholder|占位)|["']?<id>["']?/i.test(t))return"任务编号仍是占位符;请提供实际的 YYYY-MM-DD-<slug> 任务编号后重试。";if(/ENOENT|no such file or directory/i.test(t))return"任务活动缺少所需文件或目录,可进入 DAG 查看详情。";if(/command failed|exited with code/i.test(t))return"相关命令没有成功完成,可进入 DAG 查看详情。";if(!(t.length>220||t.startsWith("{")||t.startsWith("[")||t.includes("[dag execute]")||t.includes("schemaVersion")||/[A-Za-z]:\\/.test(t)))return t}function Y_(e){const t=e.latestOperation,n=t.runSummary;if(e.kind==="success"||e.kind==="progress")return;const a=n?.nodes.find(c=>c.status==="ERROR")?.id;if(a){const c=n?.failureCategory?`,原因分类为 ${n.failureCategory}`:"";return`执行在 ${a} 阶段未完成${c}。`}const s=n?.next?.description;if(s&&/fail|error|block|cannot|unable/i.test(s))return s;const o=t2(t.stderrPreview)??t2(t.summaryPreview);return o||(e.kind==="error"?"本次任务活动没有完成,可进入 DAG 查看详情或使用恢复选项。":"本次任务活动需要进一步确认,请查看相关记录。")}function X_(e){const{journey:t}=e,n=t.latestOperation,a=t.runs[0],s=t.runs.slice(1),o=n.inspectHref.startsWith("/")?`${e.origin}${n.inspectHref}`:n.inspectHref,c=Y_(t),d=t.kind==="error"||t.kind==="warning",m=(h,p)=>{e.onNavigateWorkspace?e.onNavigateWorkspace(h,p):window.location.assign(K_(h,p))};return e.compact?f.jsxs("details",{className:"oc-journey-compact",children:[f.jsxs("summary",{children:[f.jsx("span",{className:`oc-journey-dot is-${t.kind}`,"aria-hidden":"true"}),f.jsxs("span",{children:[f.jsx("strong",{children:t.displayTitle}),f.jsxs("small",{children:[t.stateLabel," · ",zm(t.updatedAt)]})]}),f.jsx("span",{"aria-hidden":"true",children:"›"})]}),f.jsxs("div",{className:"oc-journey-compact-body",children:[t.taskId?f.jsx("code",{children:t.taskId}):null,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>window.open(o,"_blank","noopener,noreferrer"),children:"查看记录"})]})]}):f.jsxs("section",{className:`oc-task-journey-card is-${t.kind}`,"aria-label":`${t.displayTitle}:${t.stateLabel}`,children:[f.jsxs("header",{className:"oc-journey-head",children:[f.jsxs("div",{children:[f.jsxs("div",{className:"oc-journey-state-line",children:[f.jsx("span",{className:`oc-journey-dot is-${t.kind}`,"aria-hidden":"true"}),f.jsx("span",{children:t.stateLabel})]}),f.jsx("strong",{children:t.displayTitle}),t.taskId?f.jsxs("small",{children:["Task · ",f.jsx("code",{children:t.taskId})]}):null]}),f.jsx("time",{dateTime:t.updatedAt,children:zm(t.updatedAt)})]}),f.jsx("div",{className:"oc-journey-steps","aria-label":"任务旅程",children:t.steps.slice(-6).map(h=>f.jsxs("div",{className:"oc-journey-step",children:[f.jsx("span",{className:`oc-journey-step-icon is-${h.kind}`,"aria-hidden":"true",children:h.kind==="success"?"✓":h.kind==="error"?"!":"•"}),f.jsx("span",{children:h.label}),f.jsx("small",{children:h.stateLabel})]},h.id))}),c?f.jsxs("div",{className:`oc-journey-outcome is-${t.kind}`,children:[f.jsx("strong",{children:d?"当前问题":"最新结果"}),f.jsx("p",{children:c})]}):null,a?f.jsxs("div",{className:"oc-journey-latest-run",children:[f.jsx("span",{children:"最新执行"}),f.jsx("code",{children:a.runId}),f.jsx("b",{className:`is-${a.kind}`,children:a.stateLabel}),a.firstFailedNode?f.jsxs("small",{children:["失败阶段 · ",a.firstFailedNode]}):null]}):null,s.length>0?f.jsxs("details",{className:"oc-journey-history",children:[f.jsxs("summary",{children:["执行历史 ",t.runs.length," 次"]}),f.jsx("div",{children:t.runs.map(h=>f.jsxs("div",{className:"oc-journey-run-row",children:[f.jsx("code",{children:h.runId}),f.jsx("span",{className:`is-${h.kind}`,children:h.stateLabel}),h.firstFailedNode?f.jsx("small",{children:h.firstFailedNode}):null,f.jsx("time",{dateTime:h.updatedAt,children:zm(h.updatedAt)})]},h.runId))})]}):null,f.jsxs("footer",{className:"oc-journey-actions",children:[f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>{const h=n.dagRunId??a?.runId,p=h?n.inspectHref.startsWith("/")?`${e.origin}/inspect/#/dag/${encodeURIComponent(h)}`:`/inspect/#/dag/${encodeURIComponent(h)}`:o;window.open(p,"_blank","noopener,noreferrer")},children:"进入 DAG"}),d&&(t.taskId||n.dagRunId)?f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>m("recovery",{taskId:t.taskId,dagRunId:n.dagRunId}),children:"恢复选项"}):null]}),f.jsxs("details",{className:"oc-journey-technical",children:[f.jsxs("summary",{children:["技术详情 · ",t.operations.length," 项活动"]}),f.jsx("div",{className:"oc-journey-technical-body",children:t.operations.map(h=>f.jsxs("div",{className:"oc-journey-operation-row",children:[f.jsxs("div",{children:[f.jsx("code",{children:h.operationId}),f.jsx("span",{children:h.action})]}),h.dagRunId?f.jsxs("small",{children:["run · ",h.dagRunId]}):null,h.controller?f.jsxs("small",{children:["controller · ",h.controller]}):null,h.stderrPreview?f.jsx("pre",{className:"is-error",children:e2(h.stderrPreview)}):null,h.summaryPreview?f.jsx("pre",{children:e2(h.summaryPreview)}):null]},h.operationId))})]})]})}function n2(e){return e.state==="prepared"||e.state==="confirmed"?0:e.state==="dispatched"?1:e.state==="error"?2:3}function Bm(e,t){return e!==null&&t.includes(e)}function Z_(e){return e.operations>0?"operations":e.gates>0?"gates":"artifacts"}function W_(e){const t=e.presentation==="sidecar",n=t||e.open,a=E.useRef(null),[s,o]=E.useState("operations"),c=E.useMemo(()=>f6(e.operationCards),[e.operationCards]),d=c.length+e.humanGateCards.length+e.artifactCards.length,m=E.useMemo(()=>[...e.humanGateCards].sort((y,S)=>{const C=n2(y)-n2(S);return C!==0?C:(S.eventSeq??0)-(y.eventSeq??0)}),[e.humanGateCards]),h=E.useMemo(()=>[...e.artifactCards].sort((y,S)=>(S.eventSeq??0)-(y.eventSeq??0)),[e.artifactCards]);if(Bu({open:n&&!t,containerRef:a,triggerRef:e.triggerRef,onEscape:e.onClose}),E.useEffect(()=>{o(Z_({operations:c.length,gates:e.humanGateCards.length,artifacts:e.artifactCards.length}))},[e.sessionId]),E.useEffect(()=>{e.focusRef&&(e.focusRef.startsWith("gate:")?o("gates"):e.focusRef.startsWith("artifact:")?o("artifacts"):o("operations"))},[e.focusRef]),E.useEffect(()=>{if(!n||!e.focusRef)return;const y=window.requestAnimationFrame(()=>{const S=a.current;if(!S)return;Array.from(S.querySelectorAll("[data-activity-ref], [data-tool-call-id], [data-activity-refs]")).find(N=>{const R=N.dataset.activityRefs?.split(" ")??[];return N.dataset.activityRef===e.focusRef||R.includes(e.focusRef??"")||N.dataset.toolCallId&&`tool:${N.dataset.toolCallId}`===e.focusRef})?.scrollIntoView({block:"nearest",behavior:"smooth"})});return()=>window.cancelAnimationFrame(y)},[n,s,e.focusRef]),!n||d===0)return null;let p="is-drawer";t?p="is-sidecar":e.presentation==="sheet"&&(p="is-sheet");const b=t&&e.sidecarRect?{top:e.sidecarRect.top,left:e.sidecarRect.left,height:e.sidecarRect.height,width:e.sidecarRect.width}:void 0,x=f.jsxs("aside",{ref:a,id:"oc-activity-rail",className:`oc-activity-rail ${p} is-${e.phase}`,style:b,"aria-label":"本次对话的活动","aria-busy":e.phase==="switching",tabIndex:-1,children:[f.jsxs("header",{className:"oc-activity-rail-head",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"本次对话的活动"}),f.jsx("small",{children:"运行、门禁与任务产物"})]}),f.jsx("span",{className:"oc-activity-count",children:d}),t?null:f.jsx("button",{type:"button",className:"oc-activity-close","aria-label":"关闭运行活动",onClick:e.onClose,children:"×"})]}),f.jsxs("div",{className:"oc-activity-content",children:[f.jsxs("div",{className:"oc-activity-tabs",role:"tablist","aria-label":"活动类型",children:[f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="operations",className:s==="operations"?"is-active":"",onClick:()=>o("operations"),children:["运行 ",f.jsx("span",{children:c.length})]}),f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="gates",className:s==="gates"?"is-active":"",onClick:()=>o("gates"),children:["门禁 ",f.jsx("span",{children:m.length})]}),f.jsxs("button",{type:"button",role:"tab","aria-selected":s==="artifacts",className:s==="artifacts"?"is-active":"",onClick:()=>o("artifacts"),children:["产物 ",f.jsx("span",{children:h.length})]})]}),f.jsxs("div",{className:"oc-activity-list",children:[s==="operations"&&c.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有任务执行记录。"}):null,s==="operations"?c.map((y,S)=>{const C=y.activityRefs;return f.jsxs("div",{"data-activity-refs":C.join(" "),className:`oc-activity-card-wrap${Bm(e.focusRef,C)?" is-focused":""}`,children:[f.jsx(X_,{journey:y,compact:S>0&&y.compactEligible,origin:e.origin,onNavigateWorkspace:e.onNavigateWorkspace}),f.jsx("button",{type:"button",className:"oc-activity-locate",onClick:()=>e.onLocateConversation(C),children:"查看对话位置"})]},y.key)}):null,s==="gates"&&m.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有需要展示的门禁。"}):null,s==="gates"?m.map(y=>{const S=u6(y);return f.jsx("div",{className:`oc-activity-card-wrap${Bm(e.focusRef,S)?" is-focused":""}`,children:f.jsx(F_,{card:y,origin:e.origin,sessionId:e.sessionId})},y.cardId)}):null,s==="artifacts"&&h.length===0?f.jsx("div",{className:"oc-activity-empty",children:"本次对话还没有任务产物。"}):null,s==="artifacts"?h.map(y=>{const S=d6(y);return f.jsx("div",{className:`oc-activity-card-wrap${Bm(e.focusRef,S)?" is-focused":""}`,children:f.jsx(H_,{artifact:y})},y.artifactId)}):null]})]},e.sessionId)]});return t?ju.createPortal(x,document.body):x}const v6=420,y6=12;function Q_(e){if(e.layoutMode==="narrow")return"sheet";const t=e.railWidth??v6,n=e.gap??y6;return e.viewportWidth-e.mainRight>=t+n?"sidecar":"drawer"}const J_={presentation:"drawer",sidecarRect:null};function eI(e,t,n){const[a,s]=E.useState(J_);return E.useLayoutEffect(()=>{const o=e.current;if(!o)return;const c=o.closest(".panel--chat")??o;let d=0;const m=()=>{window.cancelAnimationFrame(d),d=window.requestAnimationFrame(()=>{const p=o.getBoundingClientRect(),b=c.getBoundingClientRect(),x=Q_({layoutMode:t,viewportWidth:window.innerWidth,mainRight:p.right}),y=x==="sidecar"?{top:b.top,left:p.right+y6,height:b.height,width:v6}:null;s(S=>S.presentation===x&&S.sidecarRect?.top===y?.top&&S.sidecarRect?.left===y?.left&&S.sidecarRect?.height===y?.height&&S.sidecarRect?.width===y?.width?S:{presentation:x,sidecarRect:y})})};m();const h=new ResizeObserver(m);return h.observe(o),c!==o&&h.observe(c),window.addEventListener("resize",m),()=>{window.cancelAnimationFrame(d),h.disconnect(),window.removeEventListener("resize",m)}},[t,e,n]),a}const r2={comfortableMin:620,compactMin:480};function tI(e){return!Number.isFinite(e)||e<0?"extra-compact":e>=r2.comfortableMin?"comfortable":e>=r2.compactMin?"compact":"extra-compact"}function nI(e){return`is-landing-${e}`}const rI=[{label:"新建任务",hint:"先走需求分析 skills,再导入创建任务",prompt:["我要新建任务。请先做需求分析,不要用一句话直接 bootstrapFromPrd。","1. 先问我需求内容和范围(frontend / backend / both,默认 both)。","2. 读取并严格执行 `.agents/skills/analyze-product-requirements/SKILL.md`(`loop-agent init --profile full` 会投影该 skill):按规程澄清访谈、校验,并把产物写到 `docs/product-analysis/<requirement-id>/`(product-analysis.md、requirement-clarification.md、product-requirement.md)。","3. product-requirement 为 complete 且校验通过后,再严格执行 `.agents/skills/analyze-product-dependencies/SKILL.md`,生成 dependency-analysis.md 和按需的 api-documentation.md。","4. 两套产物都校验通过后,再用这些文件 bootstrapFromPrd 创建任务,并建议 taskKind。","若上述 skill 不存在,先说明缺失,并提示运行 `loop-agent init --repo-root . --profile full --merge`。"].join(`
308
+ `)},{label:"查看任务状态",hint:"列出任务与就绪/阻塞状态",prompt:"列出当前所有 task 及其状态,重点说明哪些是 Ready 可以推进、哪些 Blocked 及阻塞原因。"},{label:"诊断 DAG 运行",hint:"对失败运行跑 Doctor",prompt:"帮我诊断最近失败或异常的 DAG 运行:先列出最近的 DAG 运行,对有问题的运行执行 doctor,总结根因和可执行的恢复方案。"},{label:"恢复或重跑任务",hint:"默认从节点续跑,勿无故新开 task",prompt:"我要恢复失败或卡住的 DAG。请先 dagReport/dagDoctor 看 primaryFailure.nodeId 与 primaryRecovery;默认用 dagRerunPlan→dagRerun 从失败节点续跑(plan 合格后直接 dagRerun,不要 prepareMutationGate)。不要新建 task-id。plan 不合格时:Worker Task Pool Failed 用 workerPoolDoctor 确认后再 workerTaskRetry;独立 Console run 用 standaloneTaskRerun(整单重生,不是从节点续跑)。paused/中断需要 resume 时准备 Human Gate,不要自己调 dagResume。确定后直接帮我发起。"}];function x6(e){const t=e.readiness==="setup-required",n=!!e.disabled||t,a=e.density??"comfortable",s=e.mode==="no-session"?"开始一段新的对话":"今天想推进什么?",o=e.mode==="no-session"?"用自然语言编排 loop-agent:查询状态、诊断问题、创建与恢复任务。可先点选下方建议,或新建空白对话。":"会话已就绪。点选建议快速开场,或在下方输入框直接描述目标。业务写入仍经受治理 DAG。";return f.jsxs("div",{className:`oc-empty ${nI(a)}`,role:"status","data-landing-density":a,children:[f.jsxs("div",{className:"oc-empty-hero",children:[f.jsx("img",{className:"oc-empty-icon oc-empty-brand",src:"/favicon.svg",alt:"","aria-hidden":"true",draggable:!1}),f.jsxs("div",{className:"oc-empty-copy",children:[f.jsx("h3",{children:s}),f.jsx("p",{children:o})]})]}),f.jsx("div",{className:"oc-suggestions","aria-label":"开场建议",children:rI.map(c=>f.jsxs("button",{type:"button",className:"oc-suggestion",onClick:()=>e.onSuggest(c.prompt),disabled:n,children:[f.jsx("strong",{children:c.label}),f.jsx("span",{children:a==="extra-compact"?c.hint.replace(/[,,].*$/,""):c.hint})]},c.label))}),f.jsxs("ul",{className:"oc-empty-tips",children:[f.jsxs("li",{children:[f.jsx("kbd",{children:"@"}),f.jsx("span",{children:"引用仓库文件"})]}),f.jsxs("li",{children:[f.jsx("kbd",{children:"/"}),f.jsx("span",{children:"快捷命令"})]}),f.jsxs("li",{children:[f.jsx("kbd",{children:"Enter"}),f.jsx("span",{children:"发送 · Shift+Enter 换行"})]})]}),e.mode==="no-session"&&e.onCreateSession?f.jsx("button",{type:"button",className:"btn btn-primary oc-empty-cta",onClick:e.onCreateSession,disabled:n,"aria-busy":e.disabled||void 0,children:t?"需先完成 Pi setup":e.disabled?"创建中…":"新建空白对话"}):null]})}function aI(e){const{interview:t,interviewAnswer:n,onAnswerChange:a,onAnswer:s}=e;return f.jsxs("section",{className:"oc-draft-card","aria-label":"Requirement Interview",children:[f.jsxs("header",{children:[f.jsx("strong",{children:"Requirement Interview"}),f.jsx("span",{children:t.state})]}),t.question&&f.jsxs("div",{className:"oc-interview-bubble",children:[f.jsx("strong",{children:t.question.text}),f.jsxs("p",{children:["建议:",t.question.recommendation]}),f.jsx("textarea",{value:n,onChange:o=>a(o.target.value),placeholder:"输入答案"}),f.jsxs("div",{children:[f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>s("override"),disabled:!n.trim(),children:"提交答案"}),f.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>s("accept-recommendation"),children:"接受建议"})]})]}),t.draft&&f.jsxs("details",{open:!0,children:[f.jsxs("summary",{children:["TaskContractDraftV1 · ",t.draftSha256?.slice(0,12)]}),f.jsx("pre",{children:JSON.stringify(t.draft,null,2)})]}),t.assessment&&f.jsxs("div",{className:`oc-assessment${t.assessment.fresh?" is-fresh":""}`,children:[f.jsxs("strong",{children:["完整性:",t.assessment.outcome]}),(t.assessment.missingFields??[]).length>0&&f.jsxs("p",{children:["缺失:",t.assessment.missingFields?.join("、")]})]}),t.taskKindRecommendation&&f.jsxs("div",{className:"oc-task-kind-card",children:[f.jsx("span",{children:"taskKind 建议"}),f.jsx("strong",{children:t.taskKindRecommendation}),f.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e.onConfirmTaskKind(),children:"由我确认"}),f.jsx("small",{children:"模型不能代替人类确认。"})]}),t.confirmedTaskKind&&f.jsxs("div",{className:"oc-task-kind-card is-confirmed",children:["已由人类确认:",f.jsx("strong",{children:t.confirmedTaskKind})]})]})}function Or(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function iI(e){const t=[],n=e.inputTokens??0,a=e.outputTokens??0,s=e.cacheReadTokens??0,o=e.cacheWriteTokens??0,c=e.cost??0;if(n>0&&t.push(`${Or(n)} in`),a>0&&t.push(`${Or(a)} out`),s>0&&t.push(`${Or(s)} cache R`),o>0&&t.push(`${Or(o)} cache W`),c>0&&t.push(c>=.01?`$${c.toFixed(2)}`:"<$0.01"),t.length===0){const d=e.totalTokens??0;return d>0?`${Or(d)} tokens`:"—"}return t.join(" · ")}function sI(){return f.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),f.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function lI(){return f.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("polyline",{points:"20 6 9 17 4 12"})})}function oI(){return f.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),f.jsx("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})}function cI(){return f.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:f.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}function vp(){return f.jsx("svg",{className:"oc-tool-chevron",viewBox:"0 0 12 12",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("polyline",{points:"4 2.5 7.5 6 4 9.5"})})}function uI(){return f.jsx("svg",{width:"13",height:"13",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:f.jsx("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"})})}function Nh(e){const[t,n]=E.useState(!1),a=()=>{navigator.clipboard?.writeText(e.text).then(()=>{n(!0),window.setTimeout(()=>n(!1),1600)},()=>{})};return f.jsx("button",{type:"button",className:`oc-message-copy${t?" is-copied":""}`,"aria-label":t?"已复制":"复制消息",title:t?"已复制":"复制",onClick:a,children:t?f.jsx(lI,{}):f.jsx(sI,{})})}function a2(e){const{message:t,streaming:n,activeAssistantId:a}=e;if(t.kind==="compaction")return f.jsxs("div",{className:"oc-compaction-card",role:"status",children:[f.jsx("span",{className:"oc-compaction-icon","aria-hidden":"true",children:f.jsx(p8,{size:16})}),f.jsxs("div",{className:"oc-compaction-body",children:[f.jsxs("div",{className:"oc-compaction-heading",children:[f.jsx("strong",{children:"上下文已压缩"}),f.jsx("span",{children:$m(t.createdAt)}),t.compaction?.tokensBefore?f.jsxs("span",{children:["压缩前 ",Or(t.compaction.tokensBefore)," tokens"]}):null]}),f.jsx("div",{className:"oc-compaction-summary",children:f.jsx(Th,{text:t.text})})]})]});const s=t.role==="user",o=s?"你":"π",c=s?"你":"助手",d=!s&&n&&a!==null&&t.id===a,m=d&&t.text.length===0,h=t.text.trim().length>0;return f.jsxs("div",{className:`oc-row ${s?"is-user":"is-assistant"}`,children:[f.jsxs("div",{className:"oc-meta",children:[f.jsx("span",{className:`oc-avatar ${s?"oc-avatar-user":"oc-avatar-assistant"}`,"aria-hidden":"true",children:o}),f.jsx("span",{className:"oc-role",children:c}),f.jsx("span",{className:"oc-time",children:$m(t.createdAt)}),h&&f.jsx(Nh,{text:t.text})]}),f.jsxs("div",{className:`oc-bubble ${s?"oc-bubble-user":"oc-bubble-assistant"}`,children:[h?s?f.jsx("div",{style:{whiteSpace:"pre-wrap"},children:t.text}):f.jsx(Th,{text:t.text}):m?f.jsx("span",{className:"oc-cursor","aria-hidden":"true"}):null,d&&h&&f.jsx("span",{className:"oc-cursor","aria-hidden":"true"})]})]})}function dI(e){if(!(!e||typeof e!="object"))return e}function ki(e){return typeof e=="string"?e:void 0}function yp(e){if(!Array.isArray(e))return;const t=[];for(const n of e){const a=dI(n);if(!a)continue;const s=ki(a.type)??"";if(s==="thinking"||s==="reasoning"){const o=ki(a.thinking)??ki(a.text)??"";t.push({type:"thinking",thinking:o});continue}if(s==="toolCall"||s==="tool_call"||s==="toolUse"||s==="tool_use"){const o=ki(a.toolCallId)??ki(a.id)??"";if(!o)continue;const c=ki(a.toolName)??ki(a.name);t.push({type:"toolCall",toolCallId:o,...c?{toolName:c}:{}});continue}if(s==="text"||s==="output_text"||s===""){const o=ki(a.text);o!==void 0&&t.push({type:"text",text:o})}}return t}function fI(e,t={}){return e.type==="thinking"&&!t.isStreaming&&e.thinking.trim()===""}function w6(e,t={}){return e.filter(n=>!fI(n,t))}function mI(e){return e.type==="text"}function hI(e,t={}){const n=w6(e,t);let a=-1;for(let s=n.length-1;s>=0;s--)if(!mI(n[s])){a=s;break}return a===-1?{answerBlocks:n,processBlocks:[]}:{answerBlocks:n.slice(a+1),processBlocks:n.slice(0,a+1)}}function pI(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function gI(e){return{key:e,assistants:[],tools:[],processItems:[],live:!1}}function S6(e){const t=[],n=[];let a,s=[];const o=c=>{for(const d of s)d.assistantMessageId||(d.assistantMessageId=c),d.turnId||(d.turnId=a);s=[]};for(const c of e){const d=Date.parse(c.at)||Date.now();if(c.role==="user"){a=`restored-${c.id}`,s=[],t.push({id:c.id,role:"user",text:c.text,createdAt:d});continue}if(c.role==="assistant"){a||(a=`restored-${c.id}`);const m=yp(c.content);t.push({id:c.id,role:"assistant",text:c.text,createdAt:d,...m&&m.length>0?{content:m}:{}}),o(c.id);continue}if(c.role==="tool"){a||(a=`restored-tool-${c.id}`);const m={id:c.toolCallId||c.id,toolName:c.toolName||"tool",status:c.isError===!0?"error":"ok",resultText:c.text,result:c.text,createdAt:d,finishedAt:d,turnId:a,...c.operationId?{operationId:c.operationId}:{}};n.push(m),s.push(m)}}return{messages:t,toolCalls:n}}function bI(e){return[...e].sort((t,n)=>t.eventSeq!==void 0&&n.eventSeq!==void 0&&t.eventSeq!==n.eventSeq?t.eventSeq-n.eventSeq:t.createdAt!==n.createdAt?t.createdAt-n.createdAt:t.id<n.id?-1:1)}function vo(e,t){if(t.length===0)return;const n=bI(t);for(const a of n){const s=O_(a);s?e.push({kind:"activity",activity:s}):e.push({kind:"tool",tool:a})}}function i2(e,t,n,a){let s=[];for(const o of e){if(o.type==="thinking"){vo(n,s),s=[],n.push({kind:"thinking",thinking:o.thinking});continue}if(o.type==="text"){vo(n,s),s=[],o.text.trim()&&n.push({kind:"text",text:o.text});continue}const c=t.tools.find(d=>d.id===o.toolCallId);c&&!a.has(c.id)&&(s.push(c),a.add(c.id))}vo(n,s)}function s2(e,t,n,a){const s=e.tools.filter(o=>!a.has(o.id)&&o.assistantMessageId===t.id);if(s.length!==0){for(const o of s)a.add(o.id);vo(n,s)}}function vI(e){const t=new Set,n=[],a=e.assistants.slice(0,-1),s=e.assistants.at(-1);for(const h of a)i2(w6(h.content??[]),e,n,t),s2(e,h,n,t);const o=s?.content??[],c=hI(o,{isStreaming:e.live});i2(c.processBlocks,e,n,t),s&&s2(e,s,n,t);const d=e.tools.filter(h=>!t.has(h.id));if(d.length>0&&vo(n,d),e.processItems=n,!s)return;if(o.length===0){e.answer=s;return}const m=pI(c.answerBlocks);e.answer={...s,text:m,content:c.answerBlocks}}function yI(e){const t=e.messages.filter(d=>d.role==="user"||d.role==="assistant"),n=[];let a=null;const s=d=>{const m=gI(d);return n.push(m),m};for(const d of t){if(d.role==="user"){a=s(`user-${d.id}`),a.user=d;continue}if(d.kind==="compaction"){a=s(`compaction-${d.id}`),a.assistants.push(d),a=null;continue}a||(a=s(`assistant-${d.id}`)),a.assistants.push(d)}const o=new Set,c=new Map;for(const d of n)for(const m of d.assistants)c.set(m.id,d);for(const d of e.toolCalls)if(d.assistantMessageId){const m=c.get(d.assistantMessageId);m&&(m.tools.push(d),o.add(d.id))}for(const d of e.toolCalls)if(!o.has(d.id)&&d.turnId){const m=n.find(p=>p.tools.some(b=>b.turnId===d.turnId)||p.key===`turn-${d.turnId}`||p.user&&`restored-${p.user.id}`===d.turnId);if(m){m.tools.push(d),o.add(d.id);continue}const h=n.find(p=>d.turnId===`restored-${p.user?.id}`||p.assistants.some(b=>d.turnId===`restored-${b.id}`));h&&(h.tools.push(d),o.add(d.id))}for(const d of e.toolCalls){if(o.has(d.id))continue;const m=n.find((h,p)=>{const b=h.user?.createdAt??h.assistants[0]?.createdAt??0,y=n[p+1]?.user?.createdAt??Number.POSITIVE_INFINITY;return d.createdAt>=b&&d.createdAt<y});m&&(m.tools.push(d),o.add(d.id))}for(const d of n)d.tools.sort((m,h)=>m.eventSeq!==void 0&&h.eventSeq!==void 0?m.eventSeq-h.eventSeq:m.createdAt-h.createdAt),d.live=e.streaming&&e.activeAssistantId!==null&&d.assistants.some(m=>m.id===e.activeAssistantId),vI(d);return n}function xI(e,t){return t<=0?[]:e.length<=t?[...e]:e.slice(-t)}function wI(e,t){const n=e.length,a=t?.thinkingCount??0,s=t?.textCount??0,o=t?.activityCount??0,c=a+s+o+n,d=e.filter(p=>p.status==="error").length+(t?.activityErrorCount??0),m=e.filter(p=>p.status==="running").length+(t?.activityRunningCount??0),h=[`处理详情 · ${c} 步`];return n>0&&h.push(`${n} 工具`),o>0&&h.push(`${o} 进展`),d>0?h.push(`${d} 出错`):m>0&&h.push("运行中"),{count:n,errorCount:d,runningCount:m,stepCount:c,label:h.join(" · ")}}function SI(e){const t=[];let n=0,a=0,s=0,o=0,c=0;for(const d of e)d.kind==="thinking"?n+=1:d.kind==="text"?a+=1:d.kind==="activity"?(s+=1,d.activity.kind==="error"?o+=1:d.activity.kind==="progress"&&(c+=1)):t.push(d.tool);return wI(t,{thinkingCount:n,textCount:a,activityCount:s,activityErrorCount:o,activityRunningCount:c})}function k6(e){const{entry:t}=e,[n,a]=E.useState(t.status==="error"),[s,o]=E.useState(!1),c=t.status==="running"?"运行中":t.status==="error"?"出错":"完成",d=`is-${t.status}`,m=w8(t.args,{toolName:t.toolName}),h=T8(t.createdAt,t.finishedAt),p=S8(t.toolName),b=A2(t.resultText??t.result),x=E8(b,s?{maxLen:Number.MAX_SAFE_INTEGER}:void 0);return f.jsxs("div",{className:`oc-tool ${t.status==="error"?"is-error":""} ${t.status==="running"?"is-running":""}`,children:[f.jsxs("button",{type:"button",className:"oc-tool-head","aria-expanded":n,onClick:()=>a(y=>!y),children:[f.jsx(vp,{}),f.jsx("span",{className:"oc-tool-icon","aria-hidden":"true",children:f.jsx(uI,{})}),f.jsx("span",{className:"oc-tool-name",children:t.toolName}),m&&f.jsx("span",{className:"oc-tool-args",children:m}),h!==void 0&&f.jsxs("span",{className:"oc-tool-duration",children:[h,"s"]}),f.jsx("span",{className:`oc-tool-status ${d}`,children:c})]}),n&&f.jsxs("div",{className:"oc-tool-body",children:[t.args!==void 0&&f.jsxs("div",{className:"oc-tool-section",children:[f.jsx("div",{className:"oc-tool-label",children:p.argsLabel}),f.jsx("pre",{className:"oc-tool-code",children:k8(t.args)})]}),(t.resultText!==void 0||t.result!==void 0)&&f.jsxs("div",{className:"oc-tool-section",children:[f.jsx("div",{className:"oc-tool-label",children:t.status==="error"?"错误":p.resultLabel}),f.jsx("pre",{className:"oc-tool-code",children:x.text}),x.truncated&&!s&&f.jsx("button",{type:"button",className:"btn btn-ghost oc-tool-expand-result",onClick:()=>o(!0),children:"展开全部"})]}),t.status==="running"&&t.resultText===void 0&&t.result===void 0&&t.args===void 0&&f.jsx("div",{className:"oc-tool-section",children:f.jsx("div",{className:"oc-tool-waiting",children:"等待结果…"})})]})]})}function kI(e){const{thinking:t,defaultOpen:n}=e,[a,s]=E.useState(n);return E.useEffect(()=>{s(n)},[n]),f.jsxs("div",{className:"oc-thinking",children:[f.jsxs("button",{type:"button",className:`oc-thinking-summary${a?" is-open":""}`,"aria-expanded":a,onClick:()=>s(o=>!o),children:[f.jsx(vp,{}),f.jsx("span",{children:"思考"})]}),a?f.jsx("pre",{className:"oc-thinking-body",children:t||"…"}):null]})}function EI(e){return e.kind==="progress"?"••":e.kind==="success"?"✓":e.kind==="warning"?"!":"×"}function TI(e){const{activity:t,onActivate:n}=e,a=!!(t.activityRef&&n&&(e.canActivate?.(t.activityRef)??!0)),s=f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"oc-semantic-activity-icon","aria-hidden":"true",children:EI(t)}),f.jsxs("span",{className:"oc-semantic-activity-copy",children:[f.jsx("strong",{children:t.title}),t.detail?f.jsx("small",{children:t.detail}):null]}),a?f.jsx("span",{className:"oc-semantic-activity-link",children:"查看详情"}):null]});if(a&&t.activityRef&&n){const o=t.activityRef;return f.jsx("button",{type:"button",className:`oc-semantic-activity is-${t.kind}`,"data-activity-ref":o,onClick:()=>n(o),children:s})}return f.jsx("div",{className:`oc-semantic-activity is-${t.kind}`,"data-activity-ref":t.activityRef,children:s})}function NI(e){const{items:t,live:n}=e,[a,s]=E.useState(!1);E.useEffect(()=>{n||s(!1)},[n]);const o=SI(t),c=f.jsx("div",{className:"oc-process-inline-body",children:t.map((d,m)=>{if(d.kind==="thinking")return f.jsx(kI,{thinking:d.thinking,defaultOpen:n},`thinking-${m}`);if(d.kind==="text")return f.jsx("div",{className:"oc-process-text",children:d.text},`text-${m}`);if(d.kind==="activity")return f.jsx(TI,{activity:d.activity,onActivate:e.onActivateActivity,canActivate:e.canActivateActivity},d.activity.id);if(d.kind==="tool")return f.jsx(k6,{entry:d.tool},d.tool.id)})});return n?f.jsx("div",{className:"oc-process-inline is-live",children:c}):f.jsxs("div",{className:"oc-process-inline",children:[f.jsxs("button",{type:"button",className:`oc-process-inline-summary${a?" is-open":""}${o.errorCount>0?" is-error":o.runningCount>0?" is-running":""}`,"aria-expanded":a,onClick:()=>s(d=>!d),children:[f.jsx(vp,{}),f.jsx("span",{children:o.label})]}),a?c:null]})}function CI(e){const{scrollContainerRef:t,messagesEndRef:n,onScroll:a,hasThread:s,readiness:o,streaming:c,streamingAssistantId:d,messagesCount:m,visibleCount:h,onLoadMore:p,turnGroups:b,interview:x}=e;return f.jsxs("div",{ref:t,className:`oc-messages${s?" has-thread":" is-empty"}`,onScroll:a,children:[s?null:f.jsx(x6,{mode:"empty-session",readiness:o,disabled:c,onSuggest:e.onSuggest}),s&&m>h&&f.jsx("button",{type:"button",className:"btn btn-ghost oc-load-history",onClick:p,children:"加载更早消息"}),s&&b.map((y,S)=>{const C=y.user??y.assistants[0],M=S>0?b[S-1].user??b[S-1].assistants[0]:void 0,N=!!C&&(!M||gf(M.createdAt)!==gf(C.createdAt)),R=y.answer,A=!!R?.text.trim(),F=y.live&&y.processItems.length===0;return f.jsxs("div",{className:"oc-turn-group",children:[N&&C&&f.jsx("div",{className:"oc-day-sep",children:gf(C.createdAt)}),y.user&&f.jsx(a2,{message:y.user,streaming:c,activeAssistantId:d}),y.processItems.length>0&&f.jsx(NI,{items:y.processItems,live:y.live,onActivateActivity:e.onActivateActivity,canActivateActivity:e.canActivateActivity}),R&&(A||F)?f.jsx(a2,{message:R,streaming:c,activeAssistantId:d}):null]},y.key)}),x&&f.jsx(aI,{interview:x,interviewAnswer:e.interviewAnswer,onAnswerChange:e.onInterviewAnswerChange,onAnswer:e.onAnswerInterview,onConfirmTaskKind:e.onConfirmTaskKind}),f.jsx("div",{ref:n})]})}const AI={auto:"auto(跟随 Pi 默认等级)",off:"off · 关闭",minimal:"minimal · 极简",low:"low · 低",medium:"medium · 中",high:"high · 高",xhigh:"xhigh · 极高",max:"max · 最高"};function RI(e,t){const n=t.trim().toLowerCase(),a=new Map;for(const s of e){if(n&&!s.provider.toLowerCase().includes(n)&&!s.id.toLowerCase().includes(n)&&!(s.name??"").toLowerCase().includes(n))continue;const o=a.get(s.provider)??[];o.push(s),a.set(s.provider,o)}return[...a.entries()].map(([s,o])=>({provider:s,models:o}))}function _I(e,t){const n=new Set,a=[],s=o=>{n.has(o)||(n.add(o),a.push({value:o,label:AI[o]??o,...o==="auto"&&t?{effective:t}:{}}))};s("auto");for(const o of e)s(o);return a}function Nu(e,t){return`${e}/${t}`}function Ch(e){return{...e.modelProvider&&e.modelId?{model:{provider:e.modelProvider,modelId:e.modelId}}:{},...e.thinkingLevel?{thinkingLevel:e.thinkingLevel}:{}}}function E6(e,t){return{...e,model:t.model??e.model,thinkingLevel:t.thinkingLevel??e.thinkingLevel}}function II(e,t){const n=E6(e,t);return n.model?.provider===e.model?.provider&&n.model?.modelId===e.model?.modelId&&n.thinkingLevel===e.thinkingLevel}function MI(){return f.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:f.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function OI(e){const t=al(),[n,a]=E.useState(!1),[s,o]=E.useState(""),[c,d]=E.useState(0),m=E.useRef(null),h=E.useRef(null),p=t.snapshot,b=t.status==="loading",x=t.status==="error"?t.error:null,y=p?(p.models??[]).map(R=>({provider:R.provider,id:R.id,...R.name?{name:R.name}:{},...R.hasCredentials!==void 0?{hasCredentials:R.hasCredentials}:{}})):e.models,S=E.useMemo(()=>RI(y,s),[y,s]),C=E.useMemo(()=>S.flatMap(R=>R.models),[S]);E.useEffect(()=>{n&&(o(""),d(0),window.setTimeout(()=>h.current?.focus(),0))},[n]),E.useEffect(()=>{if(!n)return;const R=F=>{const q=m.current;q&&F.target instanceof Node&&!q.contains(F.target)&&a(!1)},A=F=>{F.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",R),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",R),document.removeEventListener("keydown",A)}},[n]);const M=R=>{if(e.disabled)return;const A=C[R];A&&(a(!1),e.onSelect(A.provider,A.id))},N=R=>{if(R.key==="ArrowDown"){R.preventDefault(),d(A=>C.length?(A+1)%C.length:0);return}if(R.key==="ArrowUp"){R.preventDefault(),d(A=>C.length?(A-1+C.length)%C.length:0);return}if(R.key==="Enter"){R.preventDefault(),M(c);return}if(R.key==="Escape"){R.preventDefault(),a(!1);return}};return f.jsxs("div",{className:"oc-select-menu oc-model-menu",ref:m,children:[f.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":n,title:"选择模型",disabled:e.disabled,onClick:()=>a(R=>!R),children:[f.jsx("span",{className:"oc-select-trigger-label",children:e.triggerLabel}),f.jsx(MI,{})]}),n&&f.jsxs("div",{className:"oc-select-panel oc-model-panel",role:"listbox","aria-label":"选择模型",children:[f.jsx("input",{ref:h,className:"oc-select-search",placeholder:"搜索模型或 Provider…",value:s,onChange:R=>{o(R.target.value),d(0)},onKeyDown:N}),b&&f.jsx("div",{className:"oc-select-status",children:"模型列表加载中…"}),x&&f.jsxs("div",{className:"oc-select-status is-error",children:[f.jsxs("span",{children:[x.code?`${x.code}:`:"",x.message]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Js()},children:"重试"})]}),!b&&!x&&S.length===0&&f.jsx("div",{className:"oc-select-status",children:"当前没有可用模型(真实空态,未伪造列表)"}),S.map(R=>f.jsxs("div",{className:"oc-model-group",children:[f.jsx("div",{className:"oc-model-group-head",children:R.provider}),R.models.map(A=>{const F=Nu(A.provider,A.id),q=F===e.activeModelRef,O=C[c]===A;return f.jsxs("button",{type:"button",role:"option","aria-selected":q,disabled:e.disabled,className:`oc-select-option oc-model-option${O?" is-highlighted":""}${q?" is-active":""}`,onMouseDown:P=>P.preventDefault(),onClick:()=>{e.disabled||(a(!1),e.onSelect(A.provider,A.id))},children:[f.jsxs("span",{className:"oc-model-option-name",children:[A.name?`${A.name} · `:"",A.id]}),q&&f.jsx("span",{className:"oc-model-option-check",children:"✓"})]},F)})]},R.provider))]})]})}function DI(){return f.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:f.jsx("path",{d:"M2.6 4.2 6 7.6l3.4-3.4",fill:"none",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round"})})}function jI(e){const t=al(),[n,a]=E.useState(!1),[s,o]=E.useState(0),c=E.useRef(null),d=e.effectiveLevel??t.snapshot?.selection?.effectiveThinkingLevel,m=t.snapshot?.thinkingLevels?.length?t.snapshot.thinkingLevels.map(x=>x.value):void 0,h=E.useMemo(()=>_I(m??e.levels,d),[m,e.levels,d]);E.useEffect(()=>{n&&o(0)},[n]),E.useEffect(()=>{if(!n)return;const x=S=>{const C=c.current;C&&S.target instanceof Node&&!C.contains(S.target)&&a(!1)},y=S=>{S.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",x),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",x),document.removeEventListener("keydown",y)}},[n]);const p=x=>{if(e.disabled)return;const y=h[x];y&&(a(!1),e.onSelect(y.value))},b=x=>{if(x.key==="ArrowDown"){x.preventDefault(),o(y=>h.length?(y+1)%h.length:0);return}if(x.key==="ArrowUp"){x.preventDefault(),o(y=>h.length?(y-1+h.length)%h.length:0);return}if(x.key==="Enter"){x.preventDefault(),p(s);return}if(x.key==="Escape"){x.preventDefault(),a(!1);return}};return f.jsxs("div",{className:"oc-select-menu oc-thinking-menu",ref:c,children:[f.jsxs("button",{type:"button",className:"oc-select-trigger","aria-haspopup":"listbox","aria-expanded":n,title:"思考等级",disabled:e.disabled,onClick:()=>a(x=>!x),children:[f.jsx("span",{className:"oc-select-trigger-label",children:e.triggerLabel}),f.jsx(DI,{})]}),n&&f.jsx("div",{className:"oc-select-panel oc-thinking-panel",role:"listbox","aria-label":"思考等级",onKeyDown:b,children:h.map((x,y)=>{const S=x.value===e.activeValue,C=y===s;return f.jsxs("button",{type:"button",role:"option","aria-selected":S,disabled:e.disabled,className:`oc-select-option oc-thinking-option${C?" is-highlighted":""}${S?" is-active":""}`,onMouseDown:M=>M.preventDefault(),onClick:()=>{e.disabled||(a(!1),e.onSelect(x.value))},children:[f.jsx("span",{className:"oc-thinking-option-label",children:x.label}),x.value==="auto"&&x.effective?f.jsxs("span",{className:"oc-thinking-badge",children:["Pi 实际:",x.effective]}):null,S&&f.jsx("span",{className:"oc-model-option-check",children:"✓"})]},x.value)})})]})}const Um="--oc-shortcut-palette-available-height",LI=8,zI=8;function BI(e){const t=e.viewportTop??0,n=e.topInset??LI,a=e.anchorGap??zI;if([e.boundaryTop,e.anchorTop,t,n,a].some(c=>!Number.isFinite(c)))return null;const o=Math.max(e.boundaryTop,t);return Math.max(0,Math.floor(e.anchorTop-o-n-a))}function UI(){return f.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[f.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),f.jsx("circle",{cx:"8.5",cy:"10",r:"1.5"}),f.jsx("path",{d:"m21 16-5.5-5.5L9 17"})]})}function qI(e){const{composer:t,streaming:n,hasThread:a}=e,s=E.useRef(null),o=al(),c=o.reloading,d=o.reloadError,h=o.mutationBusy||c||n,p=E.useCallback(()=>{t.setInput(""),t.setShortcutOpen(!1),Qs()},[t.setInput,t.setShortcutOpen]),b=E.useCallback(N=>{const R=t.isComposingNow()||N.nativeEvent.isComposing,A=t.recentlyComposedNow();if(N.key==="Enter"&&!N.shiftKey&&!R&&!A&&!n){if(t.shortcutOpen&&t.filteredShortcuts.length>0){if((t.filteredShortcuts[t.shortcutIndex]??t.filteredShortcuts[0])?.command==="/reload"){N.preventDefault(),p();return}}else if(t.input.trim()==="/reload"){N.preventDefault(),p();return}}e.onKeyDown(N)},[t.isComposingNow,t.recentlyComposedNow,t.shortcutOpen,t.filteredShortcuts,t.shortcutIndex,t.input,p,n,e.onKeyDown]),x=E.useCallback((N,R)=>{if(R==="pi-prompt"||N==="/name"||N==="/compact"){t.setInput(`${N} `),t.setShortcutOpen(!1),t.textareaRef.current?.focus();return}if(N==="/reload"){p();return}e.onRunShortcut(N)},[p,e.onRunShortcut,t]),y=E.useCallback(()=>{if(t.input.trim()==="/reload"){p();return}e.onSend(t.input)},[t.input,p,e.onSend]);E.useEffect(()=>{if(!t.shortcutOpen||t.filteredShortcuts.length===0||!e.paletteKeyboardNavRef.current)return;const N=e.shortcutPaletteRef.current;if(!N)return;N.querySelector(`[data-shortcut-index="${t.shortcutIndex}"]`)?.scrollIntoView({block:"nearest",inline:"nearest"}),e.paletteKeyboardNavRef.current=!1},[t.shortcutOpen,t.filteredShortcuts,t.shortcutIndex,e.shortcutPaletteRef,e.paletteKeyboardNavRef]),E.useEffect(()=>{if(!t.shortcutOpen||t.filteredShortcuts.length===0)return;const N=s.current,R=e.shortcutPaletteRef.current,A=N?.closest(".oc-main")??null;if(!N||!R||!A)return;let F=0;const q=()=>{F=0;const $=A.getBoundingClientRect(),W=N.getBoundingClientRect(),U=BI({boundaryTop:$.top,anchorTop:W.top,viewportTop:window.visualViewport?.offsetTop??0});if(U===null){R.style.removeProperty(Um);return}R.style.setProperty(Um,`${U}px`)},O=()=>{F!==0&&window.cancelAnimationFrame(F),F=window.requestAnimationFrame(q)};q();const P=typeof ResizeObserver>"u"?null:new ResizeObserver(O);return P?.observe(A),P?.observe(N),window.addEventListener("resize",O),window.visualViewport?.addEventListener("resize",O),window.visualViewport?.addEventListener("scroll",O),()=>{F!==0&&window.cancelAnimationFrame(F),P?.disconnect(),window.removeEventListener("resize",O),window.visualViewport?.removeEventListener("resize",O),window.visualViewport?.removeEventListener("scroll",O),R.style.removeProperty(Um)}},[t.shortcutOpen,t.filteredShortcuts.length,e.layoutMode,e.shortcutPaletteRef]);const S=(()=>{const N=e.processSummary;return N?N.statusKind==="error"?`查看工具调用记录,共 ${N.count} 次,其中 ${N.statusLabel}`:N.statusKind==="running"?`查看工具调用记录,共 ${N.count} 次,${N.statusLabel||"正在运行"}`:`查看工具调用记录,共 ${N.count} 次,全部已完成`:"查看工具调用记录"})(),C=(()=>{const N=e.usage.inputTokens,R=e.usage.outputTokens,A=e.usage.cacheReadTokens,F=e.usage.cacheWriteTokens,q=e.usage.cost??0,O=e.usage.contextUsage,P=[];if(O&&(O.percent!==null||O.tokens!==null)){const $=O.percent!==null?`${Math.round(O.percent*10)/10}%`:"—",W=O.contextWindow>0?Or(O.contextWindow):"—",U=O.tokens!==null?Or(O.tokens):"—";P.push(f.jsxs("span",{className:`oc-usage-part is-context${O.percent!==null&&O.percent>=80?" is-high":""}`,title:`上下文占用 ${U} / ${W} tokens(达到约 80% 时建议压缩上下文)`,children:["上下文 ",$," / ",W]},"context"))}if(N>0&&P.push(f.jsxs("span",{className:"oc-usage-part is-in",title:"输入 tokens",children:["↑ ",Or(N)]},"in")),R>0&&P.push(f.jsxs("span",{className:"oc-usage-part is-out",title:"输出 tokens",children:["↓ ",Or(R)]},"out")),A>0&&P.push(f.jsxs("span",{className:"oc-usage-part",title:"缓存命中:这部分输入由提供商 prompt 缓存复用,计费约为原价的 10%",children:[f.jsx(hv,{size:12,"aria-hidden":"true"}),"缓存命中 ",Or(A)]},"cache-read")),F>0&&P.push(f.jsxs("span",{className:"oc-usage-part",title:"缓存写入:本次新建立 prompt 缓存的部分,下次请求可低价复用",children:[f.jsx(hv,{size:12,"aria-hidden":"true"}),"缓存写入 ",Or(F)]},"cache-write")),q>0&&P.push(f.jsx("span",{className:"oc-usage-part",children:q>=.01?`$${q.toFixed(2)}`:"<$0.01"},"cost")),P.length===0){const $=e.usage.totalTokens;$>0&&P.push(f.jsxs("span",{className:"oc-usage-part",children:[Or($)," tokens"]},"total"))}return P})(),M=f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"oc-runtime-controls-group",children:[f.jsx(OI,{models:e.models,activeModelRef:e.activeModelRef,triggerLabel:e.activeModelRef||"选择模型",disabled:h,onSelect:(N,R)=>e.onSwitchRuntime({provider:N,modelId:R})}),f.jsx(jI,{levels:e.thinkingLevels,activeValue:e.activeThinkingLevel||"auto",triggerLabel:e.activeThinkingLevel||"auto",disabled:h,onSelect:N=>e.onSwitchRuntime({thinkingLevel:N})}),f.jsxs("span",{className:"oc-usage",title:iI(e.usage),children:[f.jsx("span",{className:"oc-usage-state",children:n?"运行中":"空闲"}),e.unread>0?f.jsxs("span",{className:"oc-usage-unread",children:[e.unread," 未读"]}):null,C]}),e.processSummary&&f.jsxs("button",{type:"button",ref:e.processTriggerRef,className:`oc-process-summary is-${e.processSummary.statusKind}${e.processOpen?" is-open":""}`,"aria-expanded":e.processOpen,"aria-controls":"oc-process-panel","aria-label":S,title:S,onClick:e.onToggleProcess,children:[f.jsx("span",{className:"oc-process-summary-label",children:"调用记录"}),f.jsx("span",{className:"oc-process-summary-badge",children:e.processSummary.count}),e.processSummary.statusKind!=="ok"&&e.processSummary.statusLabel?f.jsx("span",{className:"oc-process-summary-status",children:e.processSummary.statusLabel}):null]})]}),f.jsxs("div",{className:"oc-runtime-controls-group is-right",children:[f.jsxs("button",{type:"button",className:"btn btn-ghost",onClick:e.onCompact,disabled:n||!a||e.compacting,title:e.compacting?"正在压缩上下文…":a?n?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文","aria-label":e.compacting?"正在压缩上下文…":a?n?"生成中,暂不可压缩":"压缩上下文,释放 token":"先进行对话后再压缩上下文",children:[e.compacting?f.jsx("span",{className:"oc-spinner oc-spinner-inline","aria-hidden":"true"}):null,e.compacting?"压缩中…":"压缩"]}),e.runtimeContext?f.jsx("button",{type:"button",ref:e.runtimeContextTriggerRef,className:`btn btn-ghost oc-runtime-context-toggle${e.runtimeContextOpen?" is-active":""}`,"aria-expanded":e.runtimeContextOpen,"aria-controls":"oc-runtime-context-panel",onClick:e.onToggleRuntimeContext,children:"注入上下文"}):null]})]});return f.jsx("div",{className:"oc-composer",children:f.jsxs("div",{className:"oc-composer-inner",ref:s,children:[t.fileOptions.length>0&&f.jsx("div",{className:"oc-file-palette",role:"listbox","aria-label":"Repository files",children:t.fileOptions.map(N=>f.jsx("button",{type:"button",role:"option",className:N.endsWith("/")?"is-dir":void 0,onMouseDown:R=>R.preventDefault(),onClick:()=>t.insertFileReference(N),children:f.jsxs("code",{children:["@",N]})},N))}),t.pendingImages.length>0&&f.jsx("div",{className:"oc-attachment-list",children:t.pendingImages.map(N=>f.jsxs("span",{children:[N.name,f.jsx("button",{type:"button","aria-label":`移除 ${N.name}`,onClick:()=>t.removeImage(N),children:"×"})]},N.name))}),f.jsxs("div",{className:"oc-composer-toolbar",children:[f.jsxs("label",{className:"oc-attach-button oc-attach-icon",title:"添加图片","aria-label":"添加图片",children:[f.jsx(UI,{}),f.jsx("span",{className:"sr-only",children:"添加图片"}),f.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/gif,image/webp",multiple:!0,hidden:!0,onChange:N=>{t.addImagesFromFiles(Array.from(N.target.files??[]).slice(0,4)),N.target.value=""}})]}),f.jsxs("span",{className:"oc-composer-hint",children:[f.jsx("span",{className:"oc-kbd",children:"Enter"})," 发送"]}),f.jsxs("span",{className:"oc-composer-hint",children:[f.jsx("span",{className:"oc-kbd",children:"Shift"}),"+",f.jsx("span",{className:"oc-kbd",children:"Enter"})," 换行"]}),c&&f.jsx("span",{className:"oc-reload-status",children:"正在重新加载会话…"})]}),t.shortcutOpen&&t.filteredShortcuts.length>0&&f.jsxs("div",{className:"oc-shortcut-palette",id:"oc-shortcut-palette",ref:e.shortcutPaletteRef,role:"listbox","aria-label":"命令","aria-busy":t.dynamicCommandsLoading||void 0,"data-layout-mode":e.layoutMode,children:[f.jsxs("div",{className:"oc-shortcut-palette-head",children:[f.jsxs("strong",{children:["命令 · ",t.filteredShortcuts.length]}),t.dynamicCommandsLoading?f.jsx("span",{className:"oc-shortcut-palette-meta",children:"正在加载扩展、提示词与技能…"}):null,t.dynamicCommandsError?f.jsxs("span",{className:"oc-shortcut-palette-meta is-error",children:[t.dynamicCommandsError,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>t.retryDynamicCommands(),children:"重试"})]}):null]}),f.jsx("div",{className:"oc-shortcut-palette-body",children:e.paletteModel.map(N=>f.jsxs("div",{className:"oc-shortcut-group",children:[f.jsxs("small",{children:[N.label," · ",N.items.length]}),N.items.map(({entry:R,globalIndex:A})=>f.jsxs("button",{type:"button",role:"option",id:`oc-shortcut-option-${A}`,"aria-label":R.command,"aria-describedby":`oc-shortcut-option-desc-${A}`,"aria-selected":A===t.shortcutIndex,className:A===t.shortcutIndex?"is-active":"","data-shortcut-index":A,title:R.command,onMouseEnter:()=>t.setShortcutIndex(A),onMouseDown:F=>F.preventDefault(),onClick:F=>{F.currentTarget.scrollIntoView({block:"nearest"}),x(R.command,R.action)},children:[f.jsx("code",{children:R.command}),f.jsx("small",{id:`oc-shortcut-option-desc-${A}`,children:R.description})]},`${R.source}:${R.command}`))]},N.source))})," "]}),f.jsxs("div",{className:`oc-composer-shell${n?" is-busy":""}`,children:[f.jsx("textarea",{ref:t.textareaRef,className:"oc-textarea",value:t.input,rows:3,placeholder:n?"正在生成回复…可先输入下一轮内容,停止后发送(Enter 暂不发送)":a?"输入消息… Enter 发送 · Shift+Enter 换行":"描述目标,或点选上方建议开始…",onChange:N=>t.handleInputChange(N.target.value),onKeyDown:b,onCompositionStart:t.onCompositionStart,onCompositionEnd:t.onCompositionEnd,"aria-expanded":t.shortcutOpen,"aria-controls":t.shortcutOpen?"oc-shortcut-palette":void 0,"aria-activedescendant":t.shortcutOpen&&t.filteredShortcuts.length>0?`oc-shortcut-option-${t.shortcutIndex}`:void 0}),n?f.jsxs("button",{type:"button",className:"oc-stop",title:"对话进行中,点击停止","aria-label":"对话进行中,点击停止",onClick:e.onStop,children:[f.jsx("span",{className:"oc-spinner","aria-hidden":"true"}),f.jsx(cI,{})]}):f.jsx("button",{type:"button",className:"oc-send",title:"发送","aria-label":"发送",onClick:y,disabled:!t.input.trim()&&t.pendingImages.length===0||c,children:f.jsx(oI,{})})]}),d&&f.jsxs("div",{className:"oc-reload-banner is-error",role:"alert",children:[f.jsxs("span",{children:[d.code?`${d.code}:`:"",d.message]}),f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Qs()},children:"重试"})]}),f.jsx("div",{className:"oc-runtime-controls",children:M})]})})}function HI(e){const{toolCalls:t,onClose:n,overlay:a=!1}=e,s=E.useRef(null);return Bu({open:a,containerRef:s,triggerRef:e.triggerRef,onEscape:n}),f.jsxs("aside",{ref:s,id:"oc-process-panel",className:`oc-process${a?" is-process-overlay":""}`,"aria-label":"工具调用记录",role:a?"dialog":void 0,"aria-modal":a?!0:void 0,tabIndex:-1,children:[f.jsxs("header",{className:"oc-process-head",children:[f.jsxs("div",{className:"oc-process-title",children:[f.jsx("span",{className:"oc-process-title-mark","aria-hidden":"true"}),"工具调用记录",f.jsxs("span",{className:"oc-process-count",children:[t.length," 次"]})]}),f.jsx("button",{type:"button",className:"btn btn-ghost oc-process-close","aria-label":"关闭工具调用记录",onClick:n,children:"关闭"})]}),f.jsx("div",{className:"oc-process-timeline",children:t.length===0?f.jsx("div",{className:"oc-process-empty",children:"本轮对话尚无工具调用。诊断细节会在这里按时间线展示。"}):t.map((o,c)=>f.jsxs("div",{className:`oc-process-item${c===0?" is-first":""}${c===t.length-1?" is-last":""}${o.status==="error"?" is-error":""}${o.status==="running"?" is-running":""}`,children:[f.jsx("div",{className:"oc-process-rail","aria-hidden":"true",children:f.jsx("span",{className:"oc-process-dot"})}),f.jsx("div",{className:"oc-process-time",children:$m(o.createdAt)}),f.jsx("div",{className:"oc-process-body",children:f.jsx(k6,{entry:o})})]},o.id))})]})}const l2=[{id:"overview",label:"概览"},{id:"system",label:"System prompt"},{id:"files",label:"Context files"},{id:"skills",label:"Skills"},{id:"extensions",label:"Extensions"},{id:"packages",label:"Plugins"},{id:"tools",label:"Active tools"},{id:"raw",label:"原始 JSON"}];function su(e){const t=Array.isArray(e.items)?e.items:void 0;return f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsx("strong",{children:e.title}),f.jsx("span",{className:"oc-runtime-context-meta",children:t?`${t.length} 项`:"未投影"})]}),t===void 0?f.jsx("p",{className:"oc-runtime-context-empty",children:"该 session 未提供资源投影"}):t.length===0?f.jsx("p",{className:"oc-runtime-context-empty",children:e.emptyText}):f.jsx("ul",{className:"oc-runtime-context-resources",children:t.map((n,a)=>f.jsx(FI,{item:n},`${n.name??n.path??a}:${a}`))})]})}function FI(e){const t=e.item,a=[t.scope?`scope ${t.scope}`:"",t.source??"",t.version?`v${t.version}`:"",t.cwd?`cwd ${t.cwd}`:""].filter(Boolean).join(" · "),s=t.path?`${t.path}${t.baseDir?`(base: ${t.baseDir})`:""}`:"";return f.jsxs("li",{children:[f.jsxs("div",{className:"oc-runtime-context-resource-head",children:[f.jsx("strong",{className:"oc-runtime-context-resource-name",title:t.path??t.name,children:t.name||t.path||"未命名资源"}),t.enabled===!1?f.jsx("span",{className:"oc-runtime-context-resource-flag",children:"未启用"}):null,a?f.jsx("span",{className:"oc-runtime-context-meta",title:a,children:a}):null]}),t.description?f.jsx("span",{className:"oc-runtime-context-resource-desc",children:t.description}):null,t.path?f.jsx("code",{className:"oc-runtime-context-resource-path",title:s,children:s}):null,t.error?f.jsxs("span",{className:"oc-runtime-context-diag is-error",children:[f.jsx("span",{className:"oc-runtime-context-diag-icon","aria-hidden":"true",children:"✕"}),t.error]}):null,Array.isArray(t.diagnostics)&&t.diagnostics.length>0?f.jsxs("span",{className:"oc-runtime-context-diag",children:[f.jsx("span",{className:"oc-runtime-context-diag-icon","aria-hidden":"true",children:"⚠"}),t.diagnostics.join(";")]}):null,Array.isArray(t.resolved)&&t.resolved.length>0?f.jsxs("details",{className:"oc-runtime-context-resolved",children:[f.jsxs("summary",{children:["已解析 ",t.resolved.length," 项"]}),f.jsx("ul",{className:"oc-runtime-context-resolved-list",children:t.resolved.map((o,c)=>{const d=`${o.type??"?"}:${o.name??o.path??"?"}`;return f.jsx("li",{children:f.jsx("code",{title:d,children:d})},c)})})]}):null]})}const PI=E.forwardRef(function({open:t,onToggle:n,onClose:a,context:s,panelOnly:o=!1,triggerOnly:c=!1,triggerRef:d},m){const h=al(),p=h.reloading,b=h.reloadError,[x,y]=E.useState("overview"),S=E.useRef(null);Bu({open:t&&!c,containerRef:S,triggerRef:d,onEscape:a}),E.useEffect(()=>{t||y("overview")},[t]);const C=Array.isArray(s.resources.activeTools)?s.resources.activeTools:[],M=typeof s.resources.activeToolCount=="number"?s.resources.activeToolCount:C.length,N=s.systemPrompt.text??s.systemPrompt.summary??"",R=s.systemPrompt.charCount??N.length,A=s.suffix.present?s.suffix.text??s.suffix.summary??"":"",F=s.model?Nu(s.model.provider,s.model.modelId):"",q=s.resources,O=String(s.resources.mode??"closed"),P=O.includes("open")?"open":"closed",$={files:q.contextFiles?.length??0,skills:q.skills?.length??0,extensions:q.extensions?.length??0,packages:q.packages?.length??0},W=["files","skills","extensions","packages"].map(K=>({id:K,label:l2.find(ie=>ie.id===K)?.label??K,count:$[K]??0})),U=f.jsx("button",{type:"button",ref:K=>{typeof m=="function"?m(K):m&&(m.current=K)},className:`btn btn-ghost oc-runtime-context-toggle${t?" is-active":""}`,"aria-expanded":t,"aria-controls":"oc-runtime-context-panel",onClick:n,children:"注入上下文"});if(c)return U;const G=t?f.jsxs("div",{ref:S,id:"oc-runtime-context-panel",className:"oc-runtime-context-sidepanel",role:"dialog","aria-modal":"true","aria-label":"注入上下文",tabIndex:-1,children:[f.jsxs("header",{className:"oc-runtime-context-head",children:[f.jsxs("div",{className:"oc-runtime-context-head-copy",children:[f.jsx("strong",{children:"注入上下文"}),f.jsx("span",{className:"oc-runtime-context-meta",children:"只读 · 本轮实际注入的 system prompt / 资源(已脱敏)"})]}),f.jsx("button",{type:"button",className:"btn btn-ghost oc-runtime-context-close","aria-label":"关闭注入上下文",onClick:a,children:"关闭"})]}),f.jsxs("div",{className:"oc-runtime-context-layout",children:[f.jsx("nav",{className:"oc-runtime-context-nav","aria-label":"上下文分类",children:l2.map(K=>{const ie=$[K.id];return f.jsxs("button",{type:"button",className:`oc-runtime-context-nav-item${x===K.id?" is-active":""}`,"aria-current":x===K.id?"page":void 0,onClick:()=>y(K.id),children:[f.jsx("span",{className:"oc-runtime-context-nav-label",title:K.label,children:K.label}),typeof ie=="number"?f.jsx("span",{className:"oc-runtime-context-nav-count",children:ie}):null]},K.id)})}),f.jsxs("div",{className:"oc-runtime-context-body",children:[x==="overview"?f.jsxs("div",{className:"oc-runtime-context-overview",children:[s.model?f.jsxs("section",{className:"oc-runtime-context-model-card",children:[f.jsx("span",{className:"oc-runtime-context-model-label",children:"模型"}),f.jsx("code",{className:"oc-runtime-context-model-ref",title:F,children:F})]}):null,f.jsxs("div",{className:"oc-runtime-context-stat-grid",children:[f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"Prompt 字数"}),f.jsxs("strong",{className:"oc-runtime-context-stat-value",children:[R.toLocaleString()," 字"]})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"工具"}),f.jsx("strong",{className:"oc-runtime-context-stat-value",children:M})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"思考"}),f.jsx("strong",{className:"oc-runtime-context-stat-value",children:s.thinkingLevel??"—"})]}),f.jsxs("div",{className:"oc-runtime-context-stat",children:[f.jsx("span",{className:"oc-runtime-context-stat-label",children:"资源面"}),f.jsxs("strong",{className:`oc-runtime-context-stat-value oc-runtime-context-mode is-${P}`,title:O,children:[f.jsx("span",{className:"oc-runtime-context-mode-dot","aria-hidden":"true"}),O]})]})]}),f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsx("header",{className:"oc-runtime-context-section-head",children:f.jsx("strong",{children:"已加载资源"})}),f.jsx("div",{className:"oc-runtime-context-resource-links",children:W.map(K=>f.jsxs("button",{type:"button",className:"oc-runtime-context-resource-link",onClick:()=>y(K.id),children:[f.jsx("span",{className:"oc-runtime-context-resource-label",children:K.label}),f.jsx("span",{className:`oc-runtime-context-resource-count${K.count===0?" is-zero":""}`,children:K.count}),f.jsx("span",{className:"oc-runtime-context-resource-chevron","aria-hidden":"true",children:"›"})]},K.id))})]})]}):null,x==="system"?f.jsxs(f.Fragment,{children:[f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsxs("div",{children:[f.jsx("strong",{children:"System prompt"}),f.jsxs("code",{className:"oc-runtime-context-hash",children:[s.systemPrompt.hash.slice(0,12),"…"]})]}),N?f.jsx(Nh,{text:N}):null]}),f.jsx("pre",{className:"oc-runtime-context-text",children:N||"(空)"})]}),f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsxs("div",{className:"oc-runtime-context-section-title",children:[f.jsx("strong",{children:"Session suffix"}),f.jsx("span",{className:"oc-runtime-context-meta",children:s.suffix.present?`${(s.suffix.charCount??0).toLocaleString()} 字`:"未注入"})]}),A?f.jsx(Nh,{text:A}):null]}),s.suffix.present?f.jsx("pre",{className:"oc-runtime-context-text",children:A||"已注入"}):f.jsx("p",{className:"oc-runtime-context-empty",children:"本会话无额外 suffix"})]})]}):null,x==="files"?f.jsx(su,{title:"Context files",items:q.contextFiles?.map(K=>({name:K.path,description:`${K.characters.toLocaleString()} 字符`})),emptyText:"该 session 未加载任何上下文文件"}):null,x==="skills"?f.jsx(su,{title:"Skills",items:q.skills,emptyText:"该 session 未加载任何 Skills"}):null,x==="extensions"?f.jsx(su,{title:"Extensions",items:q.extensions,emptyText:"该 session 未加载任何 Extensions"}):null,x==="packages"?f.jsx(su,{title:"Plugins",items:q.packages,emptyText:"该会话没有插件"}):null,x==="tools"?f.jsxs("section",{className:"oc-runtime-context-section",children:[f.jsxs("header",{className:"oc-runtime-context-section-head",children:[f.jsx("strong",{children:"Active tools"}),f.jsxs("span",{className:"oc-runtime-context-meta",children:[M," 项"]})]}),C.length===0?f.jsx("p",{className:"oc-runtime-context-empty",children:"无激活工具"}):f.jsx("ul",{className:"oc-runtime-context-tools",children:C.map(K=>f.jsx("li",{children:f.jsx("code",{children:K})},K))}),Array.isArray(q.diagnostics)&&q.diagnostics.length>0?f.jsx("ul",{className:"oc-runtime-context-resources",children:q.diagnostics.map((K,ie)=>f.jsxs("li",{children:[f.jsxs("span",{className:`oc-runtime-context-diag is-${K.type??"warning"}`,children:[K.type,": ",K.message]}),K.path?f.jsx("code",{children:K.path}):null]},ie))}):null]}):null,x==="raw"?f.jsxs("details",{className:"oc-runtime-context-raw",open:!0,children:[f.jsx("summary",{children:"原始投影 JSON"}),f.jsx("pre",{children:JSON.stringify(s,null,2)})]}):null]},x)]}),f.jsxs("footer",{className:"oc-runtime-context-foot",children:[f.jsx("span",{className:"oc-runtime-context-meta",children:p?"正在重新加载会话…":"重新加载 Pi 会话设置、扩展、技能、提示词与上下文文件"}),f.jsx("button",{type:"button",className:"btn btn-ghost",disabled:p,onClick:()=>{Qs()},children:"重新加载会话"}),b&&f.jsxs("span",{className:"oc-runtime-context-diag is-error",role:"alert",children:[b.code?`${b.code}:`:"",b.message,f.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>{Qs()},children:"重试"})]})]})]}):null;return o?G:f.jsxs("div",{className:"oc-runtime-context-menu",children:[U,G]})});function $I(){const e=E.useRef(null),t=E.useRef(!1),n=E.useRef(null),a=E.useRef(new Map),s=E.useRef(new Set),o=E.useRef(null),c=E.useRef(null),d=E.useRef(0),m=E.useRef(null),h=E.useRef(new Set),p=E.useRef(new Set),b=E.useRef(new Map),x=E.useRef(new Set),y=E.useRef(null),S=E.useRef(null),C=E.useRef(!1),M=E.useRef(0),N=E.useRef(null),R=E.useRef(!1),A=E.useRef(!1),F=E.useRef(null),q=E.useRef(new Set),O=E.useRef(new Set),P=E.useRef(new Set),$=E.useRef(!1),W=E.useRef(0);return E.useMemo(()=>({sessionRef:e,streamingRef:t,abortRef:n,sessionAbortControllersRef:a,inlineStreamSessionIdsRef:s,assistantIdRef:o,lastEventIdRef:c,sessionGenerationRef:d,eventsStreamStateRef:m,settledTurnIdsRef:h,seenEventIdsRef:p,turnAssistantIdsRef:b,sealedAssistantIdsRef:x,reconnectAbortRef:y,activeTurnIdRef:S,submitInFlightRef:C,submitGenerationRef:M,pendingSubmissionRef:N,stopInFlightRef:R,stopRequestedRef:A,stoppingTurnIdRef:F,abortPostedTurnIdsRef:q,releasedClientRequestIdsRef:O,usageResponseKeysRef:P,isComposingRef:$,compositionEndedAtRef:W}),[e,t,n,a,s,o,c,d,m,h,p,b,x,y,S,C,M,N,R,A,F,q,O,P,$,W])}const GI=["operation","contract","dag","report","html"];function KI(e){const t=e.artifact;if(!t||typeof t!="object")return;const n=t;if(!(n.schemaVersion!==1||typeof n.artifactId!="string"||!n.artifactId||typeof n.kind!="string"||!GI.includes(n.kind)||typeof n.previewHash!="string")){for(const a of["title","summary","htmlPreview","reportText","inspectHref"])if(n[a]!==void 0&&typeof n[a]!="string")return;return n}}function VI(e,t){const n=e.findIndex(a=>a.artifactId===t.artifactId);return n<0?[...e,t]:e.map((a,s)=>s===n?{...a,...t,eventSeq:a.eventSeq??t.eventSeq,activityRef:a.activityRef??t.activityRef}:a)}function YI(e){if(!e||typeof e!="object")return;const t=e;if(!(t.schemaVersion!==1||typeof t.cardId!="string"||t.gateType!=="contract-apply"&&t.gateType!=="dag-run"||typeof t.taskId!="string"||typeof t.state!="string"||typeof t.expiresAt!="string"||typeof t.inspectHref!="string"||typeof t.previewHash!="string"))return t}function XI(e,t){const n=e.findIndex(o=>o.cardId===t.cardId);if(n<0)return[...e,t];const a=[...e],s=a[n];return s?(a[n]={...s,...t,eventSeq:s.eventSeq??t.eventSeq,activityRef:s.activityRef??t.activityRef},a):[...e,t]}function ZI(e,t){const n=e.findIndex(a=>a.operationId===t.operationId);return n<0?[...e,t]:e.map((a,s)=>{if(s!==n)return a;let o=a.eventSeq;return o===void 0?o=t.eventSeq:t.eventSeq!==void 0&&(o=Math.min(o,t.eventSeq)),{...a,...t,...o===void 0?{}:{eventSeq:o},updatedSeq:Math.max(a.updatedSeq??a.eventSeq??0,t.updatedSeq??t.eventSeq??0),toolCallId:a.toolCallId??t.toolCallId,activityRef:a.activityRef??t.activityRef}})}function WI(e){const t=e.operation;if(!t||typeof t!="object")return;const n=t;if(n.schemaVersion!==1||typeof n.operationId!="string"||typeof n.action!="string"||typeof n.state!="string"||typeof n.inspectHref!="string"||typeof n.createdAt!="string"||typeof n.updatedAt!="string"||typeof n.previewHash!="string")return;const a=QI(n.runSummary),{runSummary:s,...o}=n;return{...o,...a?{runSummary:a}:{}}}function QI(e){if(!e||typeof e!="object"||Array.isArray(e))return;const t=e;if(typeof t.runId!="string"||!t.runId||typeof t.status!="string"||!t.status)return;let n=[];Array.isArray(t.nodes)&&(n=t.nodes.flatMap(o=>{if(!o||typeof o!="object")return[];const c=String(o.id??""),d=String(o.status??"");return!c||!d?[]:[{id:c,status:d}]}).slice(0,20));let a;if(t.next&&typeof t.next=="object"){const o=t.next;a={kind:String(o.kind??""),...typeof o.description=="string"?{description:o.description}:{}}}return{runId:t.runId,status:t.status,nodes:n,...typeof t.verdict=="string"?{verdict:t.verdict}:{},...typeof t.failureCategory=="string"?{failureCategory:t.failureCategory}:{},...a&&a.kind?{next:a}:{}}}function JI(e){const{refs:t,onReconcile:n,setError:a,setInterview:s,setHumanGateCards:o,setArtifactCards:c,setStreaming:d,setStreamingAssistantId:m,setUnread:h,setOperationCards:p,setUsage:b,setMessages:x,setToolCalls:y}=e;return(S,C,M,N)=>{if(N?.generation!==void 0&&t.sessionGenerationRef.current!==N.generation)return;const R=N?.replay===!0;if(S==="stream_ready")return;if(S==="reconcile"){const W={reason:typeof C.reason=="string"?C.reason:"cursor_expired",...typeof C.minSeq=="number"?{minSeq:C.minSeq}:{},...typeof C.epoch=="string"?{epoch:C.epoch}:{},...typeof C.latestTurnId=="string"?{latestTurnId:C.latestTurnId}:{}};(typeof C.latestEventId=="string"||C.latestEventId===null)&&(W.latestEventId=C.latestEventId),n?.(W);return}const A=C.data&&typeof C.data=="object"?C.data:C,F=typeof C.turnId=="string"?C.turnId:void 0,q=typeof C.seq=="number"&&Number.isFinite(C.seq)?C.seq:void 0,O=typeof C.at=="string"&&Number.isFinite(Date.parse(C.at))?Date.parse(C.at):Date.now();if(F&&(S==="agent_start"||S==="message_update")&&t.settledTurnIdsRef.current.has(F))return;let P=M;if(F){const $=t.turnAssistantIdsRef.current.get(F);$?P=$:t.turnAssistantIdsRef.current.set(F,M)}if(S==="interview-turn"){s($=>({...$??{},interviewSessionId:typeof A.interviewSessionId=="string"?A.interviewSessionId:$?.interviewSessionId,taskId:typeof A.taskId=="string"?A.taskId:$?.taskId,state:typeof A.state=="string"?A.state:$?.state,question:A.question&&typeof A.question=="object"?A.question:void 0}));return}if(S==="draft"){s($=>({...$??{},taskId:typeof A.taskId=="string"?A.taskId:$?.taskId,draft:A.draft&&typeof A.draft=="object"?A.draft:$?.draft,draftSha256:typeof A.draftSha256=="string"?A.draftSha256:$?.draftSha256,taskKindRecommendation:typeof A.taskKindRecommendation=="string"?A.taskKindRecommendation:$?.taskKindRecommendation}));return}if(S==="assessment"){s($=>({...$??{},assessment:A}));return}if(S==="taskKind-confirmed"){s($=>({...$??{},confirmedTaskKind:typeof A.taskKind=="string"?A.taskKind:$?.confirmedTaskKind,taskKindRecommendation:void 0}));return}if(S==="human-gate-card"){const $=YI(A);$&&o(W=>XI(W,{...$,...q===void 0?{}:{eventSeq:q},...F?{turnId:F}:{},activityRef:`gate:${$.cardId}`}));return}if(S==="artifact-ref"){const $=KI(A);$&&c(W=>VI(W,{...$,...q===void 0?{}:{eventSeq:q},...F?{turnId:F}:{},activityRef:`artifact:${$.artifactId}`}));return}if(S==="agent_start"){if(R&&F!==void 0&&F!==t.activeTurnIdRef.current)return;F&&(t.settledTurnIdsRef.current.delete(F),t.activeTurnIdRef.current=F),t.streamingRef.current=!0,d(!0),m(P);return}if(S==="agent_settled"||S==="agent_end"){if(F&&t.settledTurnIdsRef.current.add(F),S==="agent_end")return;F===t.activeTurnIdRef.current&&(t.activeTurnIdRef.current=null),t.streamingRef.current=!1,d(!1),m(null),S==="agent_settled"&&!R&&typeof document<"u"&&document.hidden&&h(W=>W+1);let $=!1;y(W=>($=W.some(U=>U.assistantMessageId===P),W.map(U=>U.status==="running"&&(F!==void 0&&U.turnId===F||U.assistantMessageId===P)?{...U,status:"error",finishedAt:Date.now()}:U))),x(W=>W.filter(U=>U.id!==P||U.role!=="assistant"||U.text.trim()||U.content&&U.content.length>0?!0:$));return}if(S==="operation-ref"||S==="operation-status"){const $=WI(A);if($){const W=typeof A.toolCallId=="string"?A.toolCallId:void 0;p(U=>ZI(U,{...$,...q===void 0?{}:{eventSeq:q,updatedSeq:q},...F?{turnId:F}:{},...W?{toolCallId:W}:{},activityRef:`operation:${$.operationId}`}))}return}if(S==="usage"){if(R)return;const $=A,W=typeof $.responseKey=="string"&&$.responseKey?$.responseKey:void 0;if(W&&t.usageResponseKeysRef.current.has(W))return;W&&t.usageResponseKeysRef.current.add(W),b(U=>{const G=$.inputTokens??0,K=$.outputTokens??0,ie=$.cacheReadTokens??0,Q=$.cacheWriteTokens??0,H=$.totalTokens??G+K+ie+Q,B=$.contextUsage,Y=B&&typeof B=="object"?{tokens:typeof B.tokens=="number"?B.tokens:null,contextWindow:typeof B.contextWindow=="number"?B.contextWindow:0,percent:typeof B.percent=="number"?B.percent:null}:U.contextUsage;return{inputTokens:U.inputTokens+G,outputTokens:U.outputTokens+K,cacheReadTokens:U.cacheReadTokens+ie,cacheWriteTokens:U.cacheWriteTokens+Q,totalTokens:U.totalTokens+H,cost:$.cost===void 0?U.cost:(U.cost??0)+$.cost,...Y?{contextUsage:Y}:{}}});return}if(S==="message_update"||S==="message_end"){if(R)return;const $=t.sealedAssistantIdsRef.current;if(S==="message_update"&&$.has(P)){const K=rs("a");F&&t.turnAssistantIdsRef.current.set(F,K);const ie=P;y(Q=>Q.map(H=>H.assistantMessageId===ie?{...H,assistantMessageId:K}:H)),P=K,m(K)}const W=typeof A.text=="string"?A.text:"",U=yp(A.content),G=P;x(K=>K.some(Q=>Q.id===G)?K.map(Q=>Q.id!==G?Q:{...Q,text:W,...U?{content:U}:{}}):[...K,{id:G,role:"assistant",text:W,createdAt:O,...U?{content:U}:{}}]),S==="message_end"&&$.add(G)}else if(S==="tool_call"){const $=typeof A.toolCallId=="string"?A.toolCallId:rs("t"),W=typeof A.toolName=="string"?A.toolName:"tool",U=typeof A.argsPreview=="string"?A.argsPreview:"{}";y(G=>G.some(K=>K.id===$)?G.map(K=>K.id!==$?K:{...K,args:U,status:"running",turnId:F??K.turnId,assistantMessageId:P,...q===void 0?{}:{eventSeq:q}}):[...G,{id:$,toolName:W,args:U,status:"running",createdAt:O,...q===void 0?{}:{eventSeq:q},turnId:F,assistantMessageId:P}])}else if(S==="tool_result"){const $=typeof A.toolCallId=="string"?A.toolCallId:rs("r"),W=typeof A.toolName=="string"?A.toolName:"tool",U=A.isError===!0,G=typeof A.resultPreview=="string"?A.resultPreview:"{}",K=typeof A.operationId=="string"&&A.operationId?A.operationId:void 0;y(ie=>ie.find(H=>H.id===$)?ie.map(H=>H.id!==$?H:{...H,result:G,resultText:G,status:U?"error":"ok",finishedAt:O,...q===void 0?{}:{finishedSeq:q},turnId:F??H.turnId,assistantMessageId:H.assistantMessageId??P,...K?{operationId:K}:H.operationId?{operationId:H.operationId}:{}}):[...ie,{id:$,toolName:W,result:G,resultText:G,status:U?"error":"ok",createdAt:O,finishedAt:O,...q===void 0?{}:{eventSeq:q,finishedSeq:q},turnId:F,assistantMessageId:P,...K?{operationId:K}:{}}])}else S==="error"&&a(typeof A.message=="string"?A.message:"chat error")}}const qm={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0,totalTokens:0};function eM(e){const{origin:t,refs:n,sessionId:a,setError:s,onReconcile:o}=e,[c,d]=E.useState([]),[m,h]=E.useState([]),[p,b]=E.useState([]),[x,y]=E.useState([]),[S,C]=E.useState(50),[M,N]=E.useState(0),[R,A]=E.useState([]),[F,q]=E.useState(null),[O,P]=E.useState(null),[$,W]=E.useState(!1),[U,G]=E.useState(qm),[K,ie]=E.useState(!1),[Q,H]=E.useState(null),[B]=E.useState(!1),Y=E.useMemo(()=>JI({refs:n,onReconcile:o,setError:s,setInterview:q,setHumanGateCards:A,setArtifactCards:y,setStreaming:ie,setStreamingAssistantId:H,setUnread:N,setOperationCards:b,setUsage:G,setMessages:d,setToolCalls:h}),[n,o,s]),re=E.useCallback((te,be,ge)=>{if(ge?.targetSessionId&&n.sessionRef.current?.sessionId!==ge.targetSessionId||ge?.generation!==void 0&&n.sessionGenerationRef.current!==ge.generation)return null;const Ie=te.split(`
309
309
  `);let He="message",Ee="",et=null;for(const _t of Ie)_t.startsWith("event: ")?He=_t.slice(7).trim():_t.startsWith("data: ")?Ee+=_t.slice(6):_t.startsWith("id: ")&&(et=_t.slice(4).trim());if(!Ee)return et;let pt;try{pt=JSON.parse(Ee)}catch{return et}const Ht=et??(typeof pt.eventId=="string"?pt.eventId:null);if(Ht){if(n.seenEventIdsRef.current.has(Ht))return Ht;n.seenEventIdsRef.current.add(Ht)}return Y(He,pt,be,ge),et??Ht},[Y,n]),we=E.useCallback(async(te,be)=>{const ge=be?.background===!0;ge||W(!0);try{const Ie=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(te)}/context`,{credentials:"include"});if(!Ie.ok)return;const He=await Ie.json();He.context&&n.sessionRef.current?.sessionId===te&&P(Ee=>N8(Ee,He.context)?Ee:He.context)}finally{ge||W(!1)}},[t,n]);E.useEffect(()=>{a&&we(a)},[a,we]),E.useEffect(()=>{if(!a)return;const te=window.setTimeout(()=>{we(a,{background:!0})},350);return()=>window.clearTimeout(te)},[a,p,R,F,we]);const z=E.useMemo(()=>c.filter(te=>te.role!=="system"||B),[c,B]);E.useEffect(()=>{const te=()=>{document.hidden||N(0)};return document.addEventListener("visibilitychange",te),()=>document.removeEventListener("visibilitychange",te)},[]);const L=E.useMemo(()=>{if(m.length===0)return null;const te=m.filter(Ee=>Ee.status==="running"),be=m.filter(Ee=>Ee.status==="error"),ge=te[te.length-1];let Ie="完成",He="ok";return be.length>0?(Ie=`${be.length} 次出错`,He="error"):te.length>0?(Ie=ge?`${ge.toolName} 运行中`:"运行中",He="running"):Ie="",{count:m.length,statusLabel:Ie,statusKind:He}},[m]),V=E.useMemo(()=>{const te=yI({messages:z,toolCalls:m,streaming:K,activeAssistantId:Q});return xI(te,S)},[z,m,K,Q,S]),_=E.useMemo(()=>{const te=[];for(const be of V)be.user&&te.push(be.user),te.push(...be.assistants);return te},[V]),se=E.useCallback(()=>{d([]),h([]),b([]),A([]),y([]),q(null),P(null),G(qm),ie(!1),H(null),N(0),C(50),n.usageResponseKeysRef.current=new Set},[n]),he=E.useCallback(te=>{d(te.messages),h(te.toolCalls),b([]),A([]),y([]),P(null),q(null),G(qm),n.usageResponseKeysRef.current=new Set,ie(te.streaming),H(null),N(0),C(50)},[n]),ce=E.useCallback(async te=>{try{const be=await fetch(`${t}/api/operator/v1/chat/sessions/${encodeURIComponent(te)}`,{credentials:"include"});if(!be.ok)return!1;const ge=await be.json();if(!ge.session||n.sessionRef.current?.sessionId!==te)return!1;const Ie=ge.session.activeTurnId??null;n.activeTurnIdRef.current=Ie,n.streamingRef.current=!!Ie,n.lastEventIdRef.current=ge.lastEventId??null,n.seenEventIdsRef.current=new Set,n.turnAssistantIdsRef.current=new Map,n.sealedAssistantIdsRef.current=new Set;const He=S6(ge.session.messages??[]);return d(He.messages),h(He.toolCalls),H(null),!0}catch{return!1}},[t,n,d,h,H]);return{messages:c,setMessages:d,toolCalls:m,setToolCalls:h,operationCards:p,artifactCards:x,historyLimit:S,setHistoryLimit:C,unread:M,humanGateCards:R,interview:F,setInterview:q,taskContext:O,contextLoading:$,usage:U,streaming:K,setStreaming:ie,streamingAssistantId:Q,setStreamingAssistantId:H,visibleMessages:_,turnGroups:V,processSummary:L,applyChatSseEvent:Y,applySseBlock:re,loadTaskContext:we,resetForNewSession:se,applyActivatedSession:he,recoverSession:ce}}const tM={error:6e3,info:4e3};function nM(e){const{toast:t,onDismiss:n}=e,[a,s]=E.useState(!1),o=E.useRef(null),c=E.useRef(null),d=()=>{o.current!==null&&window.clearTimeout(o.current),c.current!==null&&window.clearTimeout(c.current),o.current=null,c.current=null},m=()=>{d(),s(!0),c.current=window.setTimeout(()=>{s(!1),n()},140)};if(E.useEffect(()=>{if(t)return s(!1),o.current=window.setTimeout(m,tM[t.kind]),d},[t?.id]),E.useEffect(()=>d,[]),!t)return null;const h=t.kind==="error";return ju.createPortal(f.jsxs("div",{className:`oc-toast is-${t.kind}${a?" is-leaving":""}`,role:h?"alert":"status",onMouseEnter:d,onMouseLeave:()=>{a||(o.current=window.setTimeout(m,1600))},children:[f.jsx("span",{className:"oc-toast-icon","aria-hidden":"true",children:h?f.jsx(C2,{size:16}):f.jsx(h8,{size:16})}),f.jsx("span",{className:"oc-toast-message",children:t.message}),f.jsx("button",{type:"button",className:"oc-toast-close","aria-label":"关闭提示",onClick:m,children:f.jsx(u8,{size:14,"aria-hidden":"true"})})]}),document.body)}function rM(e){return e==="missing-capability-token"||e==="invalid-capability-token"||e==="missing-confirmation-token"||e==="invalid-confirmation-token"||e==="host-not-loopback"||e==="origin-mismatch"||e==="cross-site-fetch"}function T6(e){return e==="invalid-capability-token"||e==="invalid-confirmation-token"||e==="missing-capability-token"||e==="missing-confirmation-token"}function aM(e){return T6(e)?"页面已过期(控制台已重启),请刷新页面(F5)后重试。":e==="host-not-loopback"?"请求主机校验失败:非回环绑定时要求 Host 头,请刷新页面或检查访问地址。":e==="origin-mismatch"?"请求来源与控制台地址不一致,请通过控制台页面操作。":e==="cross-site-fetch"?"检测到跨站请求,已拒绝。请通过控制台页面操作。":"操作被拒绝,请刷新页面后重试。"}class iM{constructor(t){this.options=t,this.fetchFn=t.fetchFn??fetch,this.backoffMs=t.backoffMs??1e3,this.deadlineMs=t.deadlineMs??3e4}options;eligible=new Set;controllers=new Map;fetchFn;backoffMs;deadlineMs;markEligible(t){this.eligible.add(t)}startIfEligible(t){if(!this.eligible.delete(t)||this.controllers.has(t))return;const n=new AbortController;this.controllers.set(t,n),this.run(t,n)}cancel(t){this.eligible.delete(t),this.controllers.get(t)?.abort(),this.controllers.delete(t)}reconcile(t){const n=new Set(t);for(const a of this.controllers.keys())n.has(a)||this.cancel(a)}dispose(){for(const t of this.controllers.values())t.abort();this.controllers.clear(),this.eligible.clear()}async run(t,n){let a;const s=new Set;let o=!1;const c=window.setTimeout(()=>{o=!0,n.abort()},this.deadlineMs);try{for(;!n.signal.aborted;){try{const d={Accept:"text/event-stream"};a&&(d["Last-Event-ID"]=a);const m=await this.fetchFn(`${this.options.origin}/api/operator/v1/chat/sessions/${encodeURIComponent(t)}/events`,{headers:d,credentials:"include",signal:n.signal});if(m.status===404||!m.body)return;if(!m.ok)throw new Error(`HTTP ${m.status}`);const h=m.body.getReader(),p=new TextDecoder;let b="";for(;;){const{done:x,value:y}=await h.read();if(x||n.signal.aborted)break;b+=p.decode(y,{stream:!0});const S=b.split(`
310
310
 
311
311
  `);b=S.pop()??"";for(const C of S){const M=C.split(`