@vibe-forge/client 0.11.1 → 0.11.2

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 (63) hide show
  1. package/cli.cjs +6 -1
  2. package/dist/assets/{arc-CSepokz3.js → arc-De_WjPJ3.js} +1 -1
  3. package/dist/assets/{blockDiagram-c4efeb88-D0ARcoNf.js → blockDiagram-c4efeb88-C4aR2zTE.js} +1 -1
  4. package/dist/assets/{c4Diagram-c83219d4-BysYF9kP.js → c4Diagram-c83219d4-BZH3rq_m.js} +1 -1
  5. package/dist/assets/channel-BvERb8WU.js +1 -0
  6. package/dist/assets/{classDiagram-beda092f-BG1GhIOL.js → classDiagram-beda092f-BzJgBrIK.js} +1 -1
  7. package/dist/assets/{classDiagram-v2-2358418a-Dd08uGSH.js → classDiagram-v2-2358418a-5ZtXcnT3.js} +1 -1
  8. package/dist/assets/clone-B9_0v-6Y.js +1 -0
  9. package/dist/assets/{createText-1719965b-CigPEIEn.js → createText-1719965b-DUVvEtmR.js} +1 -1
  10. package/dist/assets/{cssMode-MjflyEfm.js → cssMode-GoTNjuXX.js} +1 -1
  11. package/dist/assets/{edges-96097737-DuTBJJRv.js → edges-96097737-Dd7m4Cvs.js} +1 -1
  12. package/dist/assets/{erDiagram-0228fc6a-Cp1bL7Y7.js → erDiagram-0228fc6a-DxqFlG_f.js} +1 -1
  13. package/dist/assets/{flowDb-c6c81e3f-BfKbhiq5.js → flowDb-c6c81e3f-DU0C5kCI.js} +1 -1
  14. package/dist/assets/{flowDiagram-50d868cf-m7gGc3PK.js → flowDiagram-50d868cf-Di1uDa_X.js} +1 -1
  15. package/dist/assets/flowDiagram-v2-4f6560a1-LpS8Kb00.js +1 -0
  16. package/dist/assets/{flowchart-elk-definition-6af322e1-EVeTDRRK.js → flowchart-elk-definition-6af322e1-CwG8aty5.js} +1 -1
  17. package/dist/assets/{freemarker2-Bb3-QAIN.js → freemarker2-j39cqTlI.js} +1 -1
  18. package/dist/assets/{ganttDiagram-a2739b55-DslB2U0R.js → ganttDiagram-a2739b55-baO_lzL-.js} +1 -1
  19. package/dist/assets/{gitGraphDiagram-82fe8481-C-KFWMXL.js → gitGraphDiagram-82fe8481-COoHjYMf.js} +1 -1
  20. package/dist/assets/{graph-CukaUc0o.js → graph-KxESr4M5.js} +1 -1
  21. package/dist/assets/{handlebars-C4le-2Y6.js → handlebars-BgjdZO8G.js} +1 -1
  22. package/dist/assets/{html-CjNiRs5S.js → html-Ba7tYObe.js} +1 -1
  23. package/dist/assets/{htmlMode-B73_3-We.js → htmlMode-Bztvbig1.js} +1 -1
  24. package/dist/assets/{index-5325376f-CVISZFPw.js → index-5325376f-BMTAx2mL.js} +1 -1
  25. package/dist/assets/{index-BZosmb5_.js → index-Pm_kLJvG.js} +4 -4
  26. package/dist/assets/{infoDiagram-8eee0895-DoirLE1K.js → infoDiagram-8eee0895-CC74qbHY.js} +1 -1
  27. package/dist/assets/{javascript-BDjnqJFP.js → javascript-C1e1cllX.js} +1 -1
  28. package/dist/assets/{journeyDiagram-c64418c1-Ckn-p2CM.js → journeyDiagram-c64418c1-C4MyOdE6.js} +1 -1
  29. package/dist/assets/{jsonMode-C-ftOc5j.js → jsonMode-BC98AlvF.js} +1 -1
  30. package/dist/assets/{layout-Z7yUG7hB.js → layout-CxAyTlr7.js} +1 -1
  31. package/dist/assets/{line-DPG_cfAy.js → line-DhaUfI71.js} +1 -1
  32. package/dist/assets/{linear--GSeVfMi.js → linear-MYukzldK.js} +1 -1
  33. package/dist/assets/{liquid-COiLZ9py.js → liquid-DahfJEYl.js} +1 -1
  34. package/dist/assets/{lspLanguageFeatures-DGmhryFq.js → lspLanguageFeatures-BWDJcswW.js} +1 -1
  35. package/dist/assets/{mdx-BpL87Gej.js → mdx-BELlF_FD.js} +1 -1
  36. package/dist/assets/{mermaid.core-Cg1CCDo6.js → mermaid.core-BrQnSGSY.js} +4 -4
  37. package/dist/assets/{mindmap-definition-8da855dc-CKDof1lD.js → mindmap-definition-8da855dc-B0FoxTiy.js} +1 -1
  38. package/dist/assets/{pieDiagram-a8764435-DwvCaZVE.js → pieDiagram-a8764435-Ddr2cjSL.js} +1 -1
  39. package/dist/assets/{python-63dBmWV_.js → python--C9if_AD.js} +1 -1
  40. package/dist/assets/{quadrantDiagram-1e28029f-CkzYBQpy.js → quadrantDiagram-1e28029f-BlEs7Mrl.js} +1 -1
  41. package/dist/assets/{razor-C50tBqEZ.js → razor-B9U9JxKn.js} +1 -1
  42. package/dist/assets/{requirementDiagram-08caed73-Brgdjqf4.js → requirementDiagram-08caed73-kEFOAu2v.js} +1 -1
  43. package/dist/assets/{sankeyDiagram-a04cb91d-CGkYexrs.js → sankeyDiagram-a04cb91d-BBghez8I.js} +1 -1
  44. package/dist/assets/{sequenceDiagram-c5b8d532-D0wE-_J8.js → sequenceDiagram-c5b8d532-CJqgzdUE.js} +1 -1
  45. package/dist/assets/{stateDiagram-1ecb1508-BYb3NCXZ.js → stateDiagram-1ecb1508-BER4XEI6.js} +1 -1
  46. package/dist/assets/{stateDiagram-v2-c2b004d7-DrPqi4Pt.js → stateDiagram-v2-c2b004d7-EBV2vSks.js} +1 -1
  47. package/dist/assets/{styles-b4e223ce-DD66TIO4.js → styles-b4e223ce-k0eswZsE.js} +1 -1
  48. package/dist/assets/{styles-ca3715f6-iy02LHIV.js → styles-ca3715f6-Ckr7GA-0.js} +1 -1
  49. package/dist/assets/{styles-d45a18b0-BgqAgJyW.js → styles-d45a18b0-C1bpSwV3.js} +1 -1
  50. package/dist/assets/{svgDrawCommon-b86b1483-CDq7ugnw.js → svgDrawCommon-b86b1483-CDtKpGvy.js} +1 -1
  51. package/dist/assets/{timeline-definition-faaaa080-DzcLLjK0.js → timeline-definition-faaaa080-BeGR-vua.js} +1 -1
  52. package/dist/assets/{tsMode-BFRFI4ct.js → tsMode-D_gJXIy3.js} +1 -1
  53. package/dist/assets/{typescript-CBZQRAPv.js → typescript-BoKcNXkN.js} +1 -1
  54. package/dist/assets/{xml-BpWm6upt.js → xml-DZvURlJ-.js} +1 -1
  55. package/dist/assets/{xychartDiagram-f5964ef8-zBN8FmLQ.js → xychartDiagram-f5964ef8-DxfeLuYV.js} +1 -1
  56. package/dist/assets/{yaml-CqbJPiIP.js → yaml-CTC8PAGY.js} +1 -1
  57. package/dist/index.html +1 -1
  58. package/package.json +9 -9
  59. package/src/resources/locales/en.json +4 -4
  60. package/src/resources/locales/zh.json +4 -4
  61. package/dist/assets/channel-CeKPk6Nd.js +0 -1
  62. package/dist/assets/clone-CrkD2PuD.js +0 -1
  63. package/dist/assets/flowDiagram-v2-4f6560a1-4ZU4bdp1.js +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-wDzz0qaB.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-CbQHKStN.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nwyudZeR.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-tKQVLTB8.js","assets/shellscript-Yzrsuije.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-DbKCFpqz.js","assets/erb-BOJIQeun.js","assets/ruby-BvKwtOVI.js","assets/haml-B8DHNrY2.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BbnMAYS6.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-B7Tvp0Sc.js","assets/gdshader-DkwncUOv.js","assets/gdscript-DTMYz4Jt.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-4LBKfQ-Z.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/latex-B4uzh10-.js","assets/tex-CvyZ59Mk.js","assets/liquid-DYVedYrR.js","assets/marko-DZsq8hO1.js","assets/less-B1dDrJ26.js","assets/mdc-DUICxH0z.js","assets/nginx-DknmC5AR.js","assets/nim-CVrawwO9.js","assets/perl-C0TMdlhV.js","assets/php-CDn_0X-4.js","assets/pug-CGlum2m_.js","assets/qml-3beO22l8.js","assets/razor-C1TweQQi.js","assets/csharp-K5feNrxe.js","assets/rst-B0xPkSld.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-Brmx7dQM.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/svelte-zxCyuUbr.js","assets/templ-W15q3VgB.js","assets/go-Dn2_MT6a.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-CO9l9SDP.js","assets/vue-DN_0RTcg.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/cssMode-MjflyEfm.js","assets/lspLanguageFeatures-DGmhryFq.js","assets/htmlMode-B73_3-We.js","assets/jsonMode-C-ftOc5j.js","assets/javascript-BDjnqJFP.js","assets/typescript-CBZQRAPv.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/angular-html-CU67Zn6k.js","assets/html-GMplVEZG.js","assets/javascript-wDzz0qaB.js","assets/css-DPfMkruS.js","assets/angular-ts-BwZT4LLn.js","assets/scss-OYdSNvt2.js","assets/apl-dKokRX4l.js","assets/xml-sdJ4AIDG.js","assets/java-CylS5w8V.js","assets/json-Cp-IABpG.js","assets/astro-CbQHKStN.js","assets/typescript-BPQ3VLAy.js","assets/postcss-CXtECtnM.js","assets/tsx-COt5Ahok.js","assets/blade-D4QpJJKB.js","assets/html-derivative-BFtXZ54Q.js","assets/sql-BLtJtn59.js","assets/bsl-BO_Y6i37.js","assets/sdbl-DVxCFoDh.js","assets/cairo-KRGpt6FW.js","assets/python-B6aJPvgy.js","assets/cobol-nwyudZeR.js","assets/coffee-Ch7k5sss.js","assets/cpp-CofmeUqb.js","assets/regexp-CDVJQ6XC.js","assets/glsl-DplSGwfg.js","assets/c-BIGW1oBm.js","assets/crystal-tKQVLTB8.js","assets/shellscript-Yzrsuije.js","assets/edge-BkV0erSs.js","assets/elixir-CDX3lj18.js","assets/elm-DbKCFpqz.js","assets/erb-BOJIQeun.js","assets/ruby-BvKwtOVI.js","assets/haml-B8DHNrY2.js","assets/graphql-ChdNCCLP.js","assets/jsx-g9-lgVsj.js","assets/lua-BbnMAYS6.js","assets/yaml-Buea-lGh.js","assets/erlang-DsQrWhSR.js","assets/markdown-Cvjx9yec.js","assets/fortran-fixed-form-CkoXwp7k.js","assets/fortran-free-form-BxgE0vQu.js","assets/fsharp-CXgrBDvD.js","assets/gdresource-B7Tvp0Sc.js","assets/gdshader-DkwncUOv.js","assets/gdscript-DTMYz4Jt.js","assets/git-commit-F4YmCXRG.js","assets/diff-D97Zzqfu.js","assets/git-rebase-r7XF79zn.js","assets/glimmer-js-Rg0-pVw9.js","assets/glimmer-ts-U6CK756n.js","assets/hack-CaT9iCJl.js","assets/handlebars-BL8al0AC.js","assets/http-jrhK8wxY.js","assets/hurl-irOxFIW8.js","assets/csv-fuZLfV_i.js","assets/hxml-Bvhsp5Yf.js","assets/haxe-CzTSHFRz.js","assets/jinja-4LBKfQ-Z.js","assets/jison-wvAkD_A8.js","assets/julia-CxzCAyBv.js","assets/r-Dspwwk_N.js","assets/latex-B4uzh10-.js","assets/tex-CvyZ59Mk.js","assets/liquid-DYVedYrR.js","assets/marko-DZsq8hO1.js","assets/less-B1dDrJ26.js","assets/mdc-DUICxH0z.js","assets/nginx-DknmC5AR.js","assets/nim-CVrawwO9.js","assets/perl-C0TMdlhV.js","assets/php-CDn_0X-4.js","assets/pug-CGlum2m_.js","assets/qml-3beO22l8.js","assets/razor-C1TweQQi.js","assets/csharp-K5feNrxe.js","assets/rst-B0xPkSld.js","assets/cmake-D1j8_8rp.js","assets/sas-cz2c8ADy.js","assets/shaderlab-Dg9Lc6iA.js","assets/hlsl-D3lLCCz7.js","assets/shellsession-BADoaaVG.js","assets/soy-Brmx7dQM.js","assets/sparql-rVzFXLq3.js","assets/turtle-BsS91CYL.js","assets/stata-BH5u7GGu.js","assets/svelte-zxCyuUbr.js","assets/templ-W15q3VgB.js","assets/go-Dn2_MT6a.js","assets/ts-tags-zn1MmPIZ.js","assets/twig-CO9l9SDP.js","assets/vue-DN_0RTcg.js","assets/vue-html-AaS7Mt5G.js","assets/vue-vine-CQOfvN7w.js","assets/stylus-BEDo0Tqx.js","assets/xsl-CtQFsRM5.js","assets/cssMode-GoTNjuXX.js","assets/lspLanguageFeatures-BWDJcswW.js","assets/htmlMode-Bztvbig1.js","assets/jsonMode-BC98AlvF.js","assets/javascript-C1e1cllX.js","assets/typescript-BoKcNXkN.js"])))=>i.map(i=>d[i]);
2
2
  var wKe=Object.defineProperty;var SKe=(n,e,t)=>e in n?wKe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var nt=(n,e,t)=>SKe(n,typeof e!="symbol"?e+"":e,t);function zTe(n,e){for(var t=0;t<e.length;t++){const i=e[t];if(typeof i!="string"&&!Array.isArray(i)){for(const s in i)if(s!=="default"&&!(s in n)){const r=Object.getOwnPropertyDescriptor(i,s);r&&Object.defineProperty(n,s,r.get?r:{enumerable:!0,get:()=>i[s]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(s){if(s.ep)return;s.ep=!0;const r=t(s);fetch(s.href,r)}})();var JM=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wv(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function Yle(n){if(n.__esModule)return n;var e=n.default;if(typeof e=="function"){var t=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(i){var s=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return n[i]}})}),t}var UTe={exports:{}},A7={},KTe={exports:{}},rs={};/**
3
3
  * @license React
4
4
  * react.production.min.js
@@ -23,7 +23,7 @@ var wKe=Object.defineProperty;var SKe=(n,e,t)=>e in n?wKe(n,e,{enumerable:!0,con
23
23
  *
24
24
  * This source code is licensed under the MIT license found in the
25
25
  * LICENSE file in the root directory of this source tree.
26
- */var cI=b;function Bqe(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var Hqe=typeof Object.is=="function"?Object.is:Bqe,Wqe=cI.useState,Vqe=cI.useEffect,jqe=cI.useLayoutEffect,zqe=cI.useDebugValue;function Uqe(n,e){var t=e(),i=Wqe({inst:{value:t,getSnapshot:e}}),s=i[0].inst,r=i[1];return jqe(function(){s.value=t,s.getSnapshot=e,MU(s)&&r({inst:s})},[n,t,e]),Vqe(function(){return MU(s)&&r({inst:s}),n(function(){MU(s)&&r({inst:s})})},[n]),zqe(t),t}function MU(n){var e=n.getSnapshot;n=n.value;try{var t=e();return!Hqe(n,t)}catch{return!0}}function Kqe(n,e){return e()}var qqe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Kqe:Uqe;hRe.useSyncExternalStore=cI.useSyncExternalStore!==void 0?cI.useSyncExternalStore:qqe;uRe.exports=hRe;var HY=uRe.exports;const Gqe=(n,e)=>a1(e)?e:Eqe(e)&&a1(e.defaultValue)?e.defaultValue:Array.isArray(n)?n[n.length-1]:n,Xqe={t:Gqe,ready:!1},Yqe=()=>()=>{},sn=(n,e={})=>{var E,N,R;const{i18n:t}=e,{i18n:i,defaultNS:s}=b.useContext(Fqe)||{},r=t||i||Oqe();r&&!r.reportNamespaces&&(r.reportNamespaces=new $qe),r||lRe(r,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const o=b.useMemo(()=>{var D;return{...Mqe(),...(D=r==null?void 0:r.options)==null?void 0:D.react,...e}},[r,e]),{useSuspense:a,keyPrefix:l}=o,c=s||((E=r==null?void 0:r.options)==null?void 0:E.defaultNS),d=a1(c)?[c]:c||["translation"],u=b.useMemo(()=>d,d);(R=(N=r==null?void 0:r.reportNamespaces)==null?void 0:N.addUsedNamespaces)==null||R.call(N,u);const h=b.useRef(0),f=b.useCallback(D=>{if(!r)return Yqe;const{bindI18n:M,bindI18nStore:T}=o,P=()=>{h.current+=1,D()};return M&&r.on(M,P),T&&r.store.on(T,P),()=>{M&&M.split(" ").forEach(O=>r.off(O,P)),T&&T.split(" ").forEach(O=>r.store.off(O,P))}},[r,o]),g=b.useRef(),m=b.useCallback(()=>{if(!r)return Xqe;const D=!!(r.isInitialized||r.initializedStoreOnce)&&u.every(F=>Lqe(F,r,o)),M=e.lng||r.language,T=h.current,P=g.current;if(P&&P.ready===D&&P.lng===M&&P.keyPrefix===l&&P.revision===T)return P;const A={t:r.getFixedT(M,o.nsMode==="fallback"?u:u[0],l),ready:D,lng:M,keyPrefix:l,revision:T};return g.current=A,A},[r,u,l,o,e.lng]),[p,_]=b.useState(0),{t:v,ready:y}=HY.useSyncExternalStore(f,m,m);b.useEffect(()=>{if(r&&!y&&!a){const D=()=>_(M=>M+1);e.lng?f_e(r,e.lng,u,D):$Y(r,u,D)}},[r,e.lng,u,y,a,p]);const C=r||{},w=b.useRef(null),x=b.useRef(),L=D=>{const M=Object.getOwnPropertyDescriptors(D);M.__original&&delete M.__original;const T=Object.create(Object.getPrototypeOf(D),M);if(!Object.prototype.hasOwnProperty.call(T,"__original"))try{Object.defineProperty(T,"__original",{value:D,writable:!1,enumerable:!1,configurable:!1})}catch{}return T},I=b.useMemo(()=>{const D=C,M=D==null?void 0:D.language;let T=D;D&&(w.current&&w.current.__original===D?x.current!==M?(T=L(D),w.current=T,x.current=M):T=w.current:(T=L(D),w.current=T,x.current=M));const P=[v,T,y];return P.t=v,P.i18n=T,P.ready=y,P},[v,C,y,C.resolvedLanguage,C.language,C.languages]);if(r&&a&&!y)throw new Promise(D=>{const M=()=>D();e.lng?f_e(r,e.lng,u,M):$Y(r,u,M)});return I},Zqe={newChat:"New Chat",search:"Search title or ID...",sessions:"Sessions",knowledgeBase:"Knowledge Base",archive:"Archive",archivedSessions:"Archived Sessions",theme:"Theme Mode",themeLight:"Light",themeDark:"Dark",themeSystem:"System",settings:"Settings",language:"Language",automation:"Automation",benchmark:"Benchmark",delete:"Delete",deleteSession:"Delete Session",deleteSessionConfirm:"Are you sure you want to delete this session? This action cannot be undone.",restore:"Restore",restoreSuccess:"Restored successfully",restoreFailed:"Failed to restore",batchRestore:"Batch Restore",batchRestoreSuccess:"Batch restored successfully",batchRestoreFailed:"Failed to restore some sessions",cancel:"Cancel",continue:"Continue",confirm:"Confirm",confirmAction:"Confirm {{action}}",startNewChat:"No active sessions found. Start a new chat!",backToHome:"Back to Home",noData:"No data",noSessions:"No matching sessions found",noArchivedSessions:"No archived sessions",sessionNotFound:"Session not found",expand:"Expand sidebar",dragResize:"Drag to resize",selectOrCreateSession:"Please select or create a session to start chatting",batchMode:"Batch Mode",cancelBatch:"Cancel Batch Mode",batchArchive:"Batch Archive",archiveConfirm:"Are you sure you want to archive the selected {{count}} chats?",alreadyInNewChat:"You are already in a new chat",creatingChat:"New Chat",batchDelete:"Batch Delete",batchDeleteSuccess:"Batch deleted successfully",batchDeleteFailed:"Failed to delete some sessions",selectedCount:"{{count}} sessions selected",selectAll:"Select all",deselectAll:"Deselect all",collapse:"Collapse sidebar",close:"Close",sort:"Sort order",allTags:"All tags",allAdapters:"All adapters",searchActions:"Search and filters",expandChildren:"Expand children",collapseChildren:"Collapse children",childSummary:"{{count}} child sessions",childStatusItem:"{{count}} {{status}}",deleteConfirm:"Are you sure you want to delete the selected {{count}} chats?",deleteSuccess:"Deleted successfully",deleteFailed:"Failed to delete",operationFailed:"Operation failed",copyFailed:"Copy failed",star:"Star",unstar:"Unstar",rename:"Rename",renameSession:"Rename session",addTag:"Tag",copySessionLink:"Copy session link",copySessionId:"Copy session ID",copyResumeCommand:"Copy resume command",moreActions:"More actions",sessionLinkCopied:"Session link copied to clipboard",resumeCommandCopied:"Resume command copied to clipboard",sessionIdCopied:"Session ID copied to clipboard",doubleClickToCopy:"Double click to copy Session ID",status:{running:"Running",completed:"Done",failed:"Failed",terminated:"Stopped",waiting_input:"Waiting"}},Qqe={title:"Automation",newRule:"New Rule",creatingRule:"Creating",editRule:"Edit Rule",searchRule:"Search rules",favorite:"Favorite",unfavorite:"Unfavorite",toggleEnabled:"Enable/Disable",noDescription:"No description",runSearch:"Search runs",statusAll:"All statuses",timeAll:"All time",time24h:"Last 24 hours",time7d:"Last 7 days",time30d:"Last 30 days",sortDesc:"Newest first",sortAsc:"Oldest first",triggerCount:"{{count}} triggers",basicDesc:"Describe purpose and toggle the rule on or off",sectionBasic:"Basic Info",sectionTriggers:"Triggers",sectionTasks:"Tasks",ruleName:"Rule Name",ruleNameRequired:"Enter a rule name",ruleDescription:"Description",immediateRun:"Run Immediately",ruleType:"Trigger Type",ruleTypeRequired:"Select a trigger type",typeInterval:"Interval",typeWebhook:"Webhook",typeCron:"Cron",intervalMinutes:"Interval (minutes)",intervalRequired:"Enter an interval",webhookKey:"Webhook Key",webhookKeyHint:"Leave empty to auto-generate",cronExpressionLabel:"Cron Expression",cronExpressionRequired:"Enter a cron expression",cronExpressionHint:"Example: 0 9 * * 1",cronExpression:"Cron: {{expression}}",cronPreset:"Presets",cronPresetHint:"Choose a preset",cronPresetHourly:"Hourly",cronPresetDaily9:"Daily at 09:00",cronPresetWeekday9:"Weekdays at 09:00",cronPresetWeekend10:"Weekend at 10:00",cronInputHint:"Enter cron directly, or use weekly fields below to generate one",weeklyDay:"Weekly Day",weeklyTime:"Time (HH:mm)",weeklyTimeHint:"Example: 09:00",weekdaySun:"Sun",weekdayMon:"Mon",weekdayTue:"Tue",weekdayWed:"Wed",weekdayThu:"Thu",weekdayFri:"Fri",weekdaySat:"Sat",triggerAny:"Trigger when any condition matches",taskAll:"Run all tasks when triggered",addTrigger:"Add Trigger",addTask:"Add Task",remove:"Remove",taskDefaultTitle:"Task {{index}}",taskTitle:"Task Title",taskTitlePlaceholder:"Optional, for distinguishing tasks",taskIndex:"Task {{index}}",taskCount:"{{count}} tasks",taskUnknown:"Untitled Task",webhookUrl:"Webhook URL",prompt:"Task Prompt",promptRequired:"Enter the task prompt",trigger:"Trigger",webhookTrigger:"Webhook",intervalEvery:"Every {{minutes}} min",enabled:"Enabled",ruleStatus:"Rule Status",lastRunLabel:"Last Run",lastRun:"Last Run",lastRunAt:"Last run: {{time}}",noRunYet:"No runs yet",emptyRules:"No automation rules",selectRule:"Select an automation rule",ruleId:"Rule ID",createdAt:"Created At",enabledOn:"Enabled",enabledOff:"Disabled",noTriggers:"No triggers",noTasks:"No tasks",runHistory:"Run History",runTime:"Run Time",runStatus:"Status",runSummary:"Summary",session:"Session",relatedSession:"Related Session",openSession:"Open Session",noRuns:"No runs yet",actions:"Actions",run:"Run Now",edit:"Edit",delete:"Delete",copy:"Copy",webhookCopied:"Webhook copied",created:"Rule created",updated:"Rule updated",deleted:"Rule deleted",saveFailed:"Save failed",deleteFailed:"Delete failed",toggleFailed:"Update failed",runStarted:"Task started",runFailed:"Start failed"},Jqe={title:"Benchmark",sidebarHint:"Choose a category and case, inspect the task goal, and launch a run.",category:"Category",categoryCount:"{{count}} categories",caseCount:"{{count}} cases",caseTree:"Case Tree",expandAll:"Expand All",collapseAll:"Collapse All",runSelected:"Run Selected ({{count}})",runAll:"Run All",caseId:"Case:",searchPlaceholder:"Search category, title, or summary",emptyCases:"No benchmark cases",noSummary:"No summary",configTitle:"Case Config",baseCommit:"Base Commit",setupCommand:"Setup Command",testCommand:"Test Command",timeoutSec:"Timeout (sec)",runState:"Run State",noActiveRun:"No active benchmark run",runStatus:"Status",progress:"Progress",lastMessage:"Last Message",taskGoal:"Task Goal",resultTitle:"Latest Result",noResult:"No result yet",finalScore:"Final Score",lastRunAt:"Last Run",testScore:"Test Score",goalScore:"Goal Score",referenceScore:"Reference Score",changedFiles:"Changed Files",noChangedFiles:"No changed files recorded",testExitCode:"Test Exit Code",durationMs:"Duration (ms)",issues:"Issues",noIssues:"No issues",concurrency:"Concurrency",runCategory:"Run Category",runCase:"Run Case",runStarted:"Benchmark started",categoryRunStarted:"Category benchmark started",runCompleted:"Benchmark completed",runFailed:"Benchmark run failed",status:{pass:"Pass",partial:"Partial",fail:"Fail"}},eGe={title:"Project Knowledge Base",subtitle:"Manage skills, entities, flows, and rules for this project",tabs:{skills:"Skills",entities:"Entities",flows:"Flows",rules:"Rules"},actions:{refresh:"Refresh",refreshed:"Refreshed",import:"Import",expand:"Expand",collapse:"Collapse"},filters:{search:"Search name, description, or params",tags:"Filter by tags",noResults:"No matching results"},meta:{params:"{{count}} params",always:"Always",skills:"Skills",rules:"Rules",skillsCount:"Skills {{count}}",rulesCount:"Rules {{count}}"},skills:{title:"Skill Library",desc:"Maintain reusable skill definitions and usage notes.",empty:"No skills found.",create:"Create Skill",createHint:"Create a skill file under .ai/skills, then refresh the page.",importHint:"Import skill files into .ai/skills, then refresh the page."},entities:{title:"Entity Library",desc:"Manage roles, components, and domain entities for the project.",empty:"No entities found.",create:"Create Entity",createHint:"Create an entity definition under .ai/entities, then refresh the page.",importHint:"Import entity files into .ai/entities, then refresh the page."},flows:{title:"Flow Library",desc:"Manage project flows and parameter definitions.",empty:"No flows found.",noContent:"No flow definition content",create:"Create Flow",createHint:"Create a flow file under .ai/specs, then refresh the page.",importHint:"Import flow files into .ai/specs, then refresh the page."},rules:{title:"Rule Library",desc:"Maintain project conventions, constraints, and enforcement rules.",empty:"No rules found.",create:"Create Rule",createHint:"Create a rule file under .ai/rules, then refresh the page.",importHint:"Import rule files into .ai/rules, then refresh the page."}},tGe={titleUpdated:"Title updated",titleUpdateFailed:"Failed to update title",clickToEditTitle:"Click to edit title",inputPlaceholder:"Type a message...",send:"Send",thinking:"Thinking...",stop:"Stop",result:"Result",sessionActive:"Session Active",selectModel:"Select a model to start",modelSelectPlaceholder:"Select model",modelSearchPlaceholder:"Search models or services",modelUnavailable:"No models available",modelConfigRequired:"Add a model service in config before starting a session",modelConfigRequiredTitle:"Model setup required",modelConfigRequiredHelp:"Add at least one model service, then retry sending from the composer.",connectionErrorTitle:"Connection error",connectionClosedTitle:"Connection closed",sessionErrorTitle:"Task failed",connectionError:"WebSocket connection failed. Check the server and try again.",connectionClosed:"WebSocket connection closed. Try reconnecting.",connectionErrorHelp:"Streaming updates stopped before the session could recover. Retry to resubscribe to the running session.",connectionClosedHelp:"The current stream has ended unexpectedly. Retry to reconnect and continue receiving new messages.",sessionErrorHelp:"Check the latest tool output or terminal logs, then continue from the most recent user message if needed.",sessionErrorCode:"Error code: {{code}}",retryConnection:"Retry",debugMockLabel:"Debug Preview",debugMockConnectionErrorMessage:"Unable to reach the session stream. The websocket handshake timed out before any updates arrived.",debugMockConnectionClosedMessage:"The connection dropped after the assistant started responding. No further tokens will arrive until you reconnect.",debugMockSessionErrorMessage:"The runtime hit its session timeout while waiting for a downstream tool result and stopped this turn.",permissionRequestBadge:"Permission request",permissionRequestTitleWithTool:"Requesting permission to use 【{{tool}}】. Choose how to proceed.",permissionSubject:"Scope",permissionProjectConfig:"Project config",permissionCurrentMode:"Current mode",permissionSuggestedMode:"Suggested mode",permissionDeniedTools:"Restricted tools",permissionReasons:"Reasons",permissionExpandOptions:"Show more options",permissionCollapseOptions:"Show fewer options",tooltipSlashCommands:"Slash commands",tooltipMentionAgents:"Mention agents",tooltipInjectContext:"Inject context",tooltipUploadImages:"Upload images",tooltipReferenceActions:"More",referenceActionsShortcutTooltip:"More / Permission mode",modelShortcutTooltip:"Switch model",modelAddRecommendation:"Add to recommended models",modelAlreadyRecommended:"Already recommended",modelRemoveRecommendation:"Remove from recommended models",effortShortcutTooltip:"Switch reasoning effort",sendShortcutTooltip:"Send message",adapterLockedTooltip:"Adapters are locked after a session is created",referenceActionsShort:"More",referenceActionsTitle:"More",referenceActionsDescription:"Add photos, files, and permission-related settings.",referenceAttachments:"Add photos and files",referenceAttachmentsDescription:"Choose images or project files as references.",referencePermission:"Permission mode",referencePermissionDescription:"Control how tool actions are authorized.",referenceImage:"Image",referenceImageDescription:"Choose a local image and attach it to the message.",referenceFile:"File",referenceFileDescription:"Choose files from the current project tree.",effortSelectPlaceholder:"Effort",effortLabels:{default:"Standard",low:"Low",medium:"Medium",high:"High",max:"Max"},permissionModeSelectPlaceholder:"Permission mode",assetWarningsTitle:"Compatibility notes",assetWarningsCount:"{{count}} asset warnings",assetWarningsMore:"+{{count}} more",selectionWarningsTitle:"Model routing warnings",selectionWarningsCount:"{{count}} model warnings",selectionWarningReasonExcluded:"the model is excluded by adapter rules",selectionWarningReasonNotIncluded:"the model is not included by adapter rules",selectionWarningFallback:"Adapter {{adapter}} switched from {{requestedModel}} to {{resolvedModel}} because {{reason}}.",modelGroupBuiltin:"{{adapter}} built-in models",modelGroupServices:"Model Services",imageTooLarge:"Image must be smaller than 5MB",imageReadFailed:"Failed to read image",imageNotSupportedInInteraction:"Images are not supported for this interaction",fileNotSupportedInInteraction:"Files are not supported for this interaction",contextPickerTitle:"Reference files",contextPickerDescription:"Choose one or more files from the current project tree.",contextPickerConfirm:"Reference files",contextPickerLoading:"Loading workspace tree...",contextPickerEmpty:"No files available in this directory",contextPickerLoadFailed:"Failed to load workspace tree",modelGroupRecommended:"Recommended Models",modelMoreModels:"More models",availableTools:"Available Tools",availableToolsEmpty:"No tools are available for this session yet.",toolGroupChromeDevtools:"ChromeDevtools",toolGroupSystem:"System",toolsCount:"{{count}} tools",usedTools:"Used {{count}} tools",debugSessionId:"Session",debugType:"Type",debugUuid:"UUID",debugLeafUuid:"Leaf",debugAdapter:"Adapter",debugModel:"Model",debugEffort:"Effort",debugVersion:"Version",debugTools:"Tools",debugAgents:"Agents",debugCwd:"CWD",debugTags:"Tags",debugView:"View",debugStarred:"Starred",debugArchived:"Archived",debugEnable:"Enable debug mode",debugDisable:"Disable debug mode",debugEnabledValue:"Enabled",debugDisabledValue:"Disabled",debugSectionTitle:"Debug Session Info",debugModeTitle:"Debug mode is on",debugModeDescription:"This section is visible because the current URL contains a debug query.",viewInitInfo:"Click the title 5 times to toggle debug mode",viewHistory:"History",viewTimeline:"Timeline",viewTerminal:"Terminal",viewSettings:"Settings",gitBranchSwitcher:"Switch branch",gitOperations:"Git actions",gitWorktree:"Worktree",gitDetachedHead:"DETACHED",gitSearchBranches:"Search local or remote branches",gitBranchesLocal:"Local branches",gitBranchesWorktrees:"Other worktrees",gitBranchesRemote:"Remote branches",gitBranchCheckedOutInOtherWorktree:"Checked out in {{path}}",gitRemoteBranchCheckedOutInOtherWorktree:"Local branch already checked out in {{path}}",gitNoBranches:"No matching branches",gitCreateBranch:"Create branch",gitCreateBranchWithName:"Create branch {{branch}}",gitSwitchBranchSuccess:"Switched to {{branch}}",gitCreateBranchSuccess:"Created and switched to {{branch}}",gitCommitShort:"Commit",gitCommitAllChanges:"Commit all changes",gitCommitDialogTitle:"Commit all changes",gitCommitDescription:"This stages all current repository changes before committing.",gitCommitPanelTitle:"Commit changes",gitCommitPanelBranch:"Branch",gitCommitPanelChanges:"Changes",gitChangedFilesCount:"{{count}} files",gitCommitIncludeUnstagedChanges:"Include unstaged changes",gitCommitIncludeUnstagedChangesDescription:"Include unstaged and untracked files.",gitCommitOnlyStagedChangesDescription:"Commit staged changes only.",gitCommitSkipHooks:"Skip Git hooks",gitCommitSkipHooksDescription:"Skip pre-commit and commit-msg hooks.",gitCommitAmend:"Amend latest commit",gitCommitAmendDescription:"Fold into the latest commit. Current: {{subject}}",gitCommitAmendUnavailableDescription:"There is no existing commit to amend in this repository.",gitCommitMessageLabel:"Commit message",gitCommitMessageOptional:"Optional",gitCommitMessagePlaceholder:"Enter a commit message",gitCommitMessagePlaceholderAmend:"Leave blank to keep the latest commit message",gitCommitMessageAmendHint:"Leave it blank to reuse the latest commit message.",gitCommitMessageRequired:"Enter a commit message",gitCommitSuccess:"Commit created",gitCommitNoChanges:"There are no changes to commit",gitCommitNoStagedChanges:"There are no staged changes to commit",gitCommitNextStep:"Next step",gitCommitAndPush:"Commit and push",gitCommitAndPushSuccess:"Commit and push completed",gitCommitPushFailedAfterCommit:"Commit completed, but push failed: {{error}}",gitAmendSuccess:"Amend completed",gitAmendAndPushSuccess:"Amend and push completed",gitAmendUnavailable:"There is no commit available to amend",gitForcePush:"Force push",gitForcePushDescription:"Use force-with-lease for the remote branch.",gitForcePushHint:"Only replaces it when the remote has no newer commits.",gitPushNeedsSyncOrForce:"This branch is behind upstream. Sync first or enable force push.",gitPushShort:"Push",gitPush:"Push current branch",gitPushPanelTitle:"Push changes",gitPushPanelUpstream:"Upstream",gitPushPanelUpstreamHint:"The first push sets the upstream automatically.",gitForcePushSuccess:"Force push completed",gitPushSuccess:"Push completed",gitSyncShort:"Sync",gitSync:"Sync current branch",gitSyncSuccess:"Sync completed",gitStatusDirty:"Uncommitted changes",gitStatusClean:"Working tree clean",gitUpstreamStatus:"Ahead {{ahead}} / behind {{behind}}",gitNoUpstream:"No upstream configured",gitLocalBranch:"Local",gitRemoteBranch:"Remote · {{remote}}",deleteSessionTitle:"Delete session",deleteSessionDesc:"This will permanently remove the session and all messages. Proceed carefully.",timelineEmpty:"No events yet",timelineTask:"Task",timelineStatus:"Status",timelineTiming:"Timeline",timelineStart:"Start",timelineEventName:"Event",timelineInput:"Input",timelineOutput:"Output",timelineEmptyValue:"—",timeline:{mainTasks:"Main task",mainStart:"Conversation start",mainEnd:"Conversation end",startTasks:"Create tasks",askUserQuestion:"AskUserQuestion",edit:"Edit",resumeTask:"Resume task",userPrompt:"User prompt",merge:"Merge",merged:"Merged",donePrefix:"Done",taskStart:"Create task",taskEnd:"End",viewGit:"Git Graph",viewGantt:"Gantt",eventListTitle:"Event List",eventListSearch:"Search events",ganttTitle:"Task Timeline",ganttMainSection:"Main",ganttTasksSection:"Tasks",allTasksDone:"All tasks done",userAnswer:"User answer",receiveReply:"Reply received",destroyLabel:"Destroy {{name}} @ {{end}}",rangeLabel:"{{name}} ({{start}} → {{end}})"},messageActions:{copy:"Copy raw text",copySuccess:"Raw message copied",copyFailed:"Failed to copy raw message",copyLink:"Copy message link",copyLinkSuccess:"Message link copied",copyId:"Copy message ID",copyIdSuccess:"Message ID copied",copyJson:"Copy message JSON",copyJsonSuccess:"Message JSON copied",copyTimestamp:"Copy timestamp",copyTimestampSuccess:"Timestamp copied",edit:"Edit message",editInProgress:"A message is already being edited. Send or cancel it first.",saveEdit:"Save as branch",confirmInline:"Confirm",recall:"Recall to here",fork:"Fork from here",recallConfirmTitle:"Recall to this message?",recallConfirmContent:"Messages after this point will be rolled back. Continue?",forkConfirmTitle:"Fork from this message?",forkConfirmContent:"This will create a new session branch from this message. Continue?"},messageFooter:{tokens:"Tokens",copyTimestampSuccess:"Copied ISO timestamp",copyTimestampTitle:"Double-click to copy the ISO timestamp and log the message payload"},turnProcessedDuration:"Processed {{duration}}",turnDurationUnderSecond:"<1s",turnDurationHours:"{{count}}h",turnDurationMinutes:"{{count}}m",turnDurationSeconds:"{{count}}s",turnSummaryCount:"{{count}} hidden messages",turnExpandAction:"Expand",turnCollapseAction:"Collapse",hint:"Press Enter to send, Shift + Enter for new line, type / @ # for completion",newSessionGuide:{loading:"Loading...",announcements:{title:"Announcements"},specs:{title:"Existing Flows",params:"{{count}} params",empty:"No flows found. Add .ai/specs/*.md to show them here.",create:"Quick Create Flow",createToast:"Create a flow file under .ai/specs, then refresh the page."},entities:{title:"Existing Entities",empty:"No entities found. Add them under .ai/entities to show here.",create:"Quick Create Entity",createToast:"Create an entity definition under .ai/entities, then refresh the page."},help:{title:"Help",item1:"Flow files can include name/description/params for better discovery",item2:"Entities can be described with index.json or README.md",item3:"After creation, refresh the page to see them here",footer:"Add usage guidance to flow descriptions when needed"}},todo:{noTasks:"No tasks planned",progress:"Progress: {{completed}}/{{total}} completed"},tools:{read:"Read File",write:"Write File",bash:"Bash",getTaskInfo:"Get Task Info",listTasks:"List Tasks",listTasksEmpty:"No tasks",startTasks:"Start Tasks",startTasksBackground:"Background",startTasksForeground:"Foreground",startTasksEmpty:"No tasks",startTasksStarted:"Started",startTasksFailed:"Failed",startTasksLogs:"Task Logs",task:"Task",taskCount:"{{count}} tasks",taskExitCode:"Exit: {{code}}",writeSuccess:"Write Success",writeFailed:"Write Failed",askUserQuestion:"Ask User Question",globTool:"Glob",grepTool:"Grep",editTool:"Edit File",lsTool:"List Directory",notebookEdit:"Notebook Edit",webFetch:"Web Fetch",webSearch:"Web Search",booleanOn:"On",booleanOff:"Off",diffSplit:"Split",diffInline:"Inline",skill:"Skill",enterPlanMode:"Enter Plan Mode",exitPlanMode:"Exit Plan Mode",taskCreate:"Create Task",taskGet:"Get Task",taskUpdate:"Update Task",taskList:"List Tasks",claudeTask:"Claude Task",todo:"Task Planning",call:"call",reading:"Reading file...",offset:"offset",limit:"limit",timeout:"timeout",runInBackground:"run in background",dangerouslyDisableSandbox:"sandbox disabled",viewCommand:"View command",noParameters:"No parameters",groupSummaryCount:"{{name}} {{count}}x",groupSummaryMoreCount:"+{{count}}x",singleSelect:"single",multiSelect:"multi",fields:{activeForm:"Active Form",addBlockedBy:"Add Blocked By",addBlocks:"Add Blocks",allowedDomains:"Allowed Domains",allowedPrompts:"Allowed Prompts",answers:"Answers",args:"Args",blockedDomains:"Blocked Domains",cellId:"Cell ID",cellType:"Cell Type",command:"Command",content:"Content",description:"Description",disableSandbox:"Disable Sandbox",details:"Details",editMode:"Edit Mode",glob:"Glob",ignore:"Ignore",limit:"Limit",maxTurns:"Max Turns",metadata:"Metadata",model:"Model",mode:"Mode",newSource:"New Source",newString:"New String",oldString:"Old String",owner:"Owner",offset:"Offset",path:"Path",prompt:"Prompt",pushToRemote:"Push To Remote",questions:"Questions",remoteSession:"Remote Session",remoteSessionUrl:"Remote Session URL",replaceAll:"Replace All",resume:"Resume",runInBackground:"Run In Background",status:"Status",subagentType:"Subagent Type",subject:"Subject",timeout:"Timeout",todos:"Todos"},unknown:"Unknown tool"},terminal:{connectionError:"Terminal connection failed. Check the server and try again.",exitSummary:"Terminal exited with exitCode={{code}}, signal={{signal}}",resizePanel:"Drag to resize terminal height"},sessionSettings:"Session Settings",enterTitle:"Enter session title...",tags:"Tags",addTagPlaceholder:"Add tag and press Enter...",noTags:"No tags",title:"Title",newSessionPlaceholder:"Type a message to start a new chat..."},nGe={title:"System Configuration",readOnlyHint:"Configuration supports in-app editing and saves to json/yaml files.",loadFailed:"Failed to load configuration",editHint:"Changes are auto-saved to the selected source config file for project or user overrides.",maskHint:"Sensitive fields are masked. Keep ****** to preserve existing values.",invalidJson:"Invalid JSON. Fix the format before saving.",saveSuccess:"Configuration saved",saveFailed:"Failed to save configuration",copySuccess:"Configuration copied",copyFailed:"Copy failed",sources:{project:"Project",user:"User",projectMissing:"Project (Not created)",userMissing:"User (Not created)"},actions:{edit:"Edit",save:"Save",cancel:"Cancel",format:"Format",copy:"Copy"},editor:{addField:"Add Field",addItem:"Add Item",remove:"Remove",collapse:"Collapse",expand:"Expand",addAdapter:"Add Adapter",addPlugin:"Add Plugin",addMcpServer:"Add MCP Server",addModelService:"Add Model Service",addMarketplace:"Add Marketplace",addEnvVar:"Add Environment Variable",addHeader:"Add Header",addEntry:"Add Entry",newModelSelectorName:"New model selector",shortcutPlaceholder:"Press shortcut",clearShortcut:"Clear shortcut",newModelServiceName:"New model service name",newChannelName:"New channel name",newAdapterName:"New adapter name",newPluginName:"New plugin name",newMcpServerName:"New MCP server name",newMarketplaceName:"New marketplace name",newEnvVarName:"New environment variable name",newHeaderName:"New header name",fieldKey:"Field Key",fieldValue:"Field Value",complexPlaceholder:"Use JSON for complex structures",secretPlaceholder:"Enter secret",itemPlaceholder:"Enter value",commandPlaceholder:"Enter command",urlPlaceholder:"Enter URL",multilinePlaceholder:"Enter content",defaultAdapterPlaceholder:"Select adapter",defaultModelServicePlaceholder:"Select model service",defaultModelPlaceholder:"Select model",titlePlaceholder:"Enter title",descriptionPlaceholder:"Enter description",channelType:"Channel Type",unknownChannelType:"Unknown type",complexValue:"Complex value",tagsPlaceholder:"Type and press Enter",types:{string:"Text",number:"Number",boolean:"Boolean",object:"Object",array:"Array"},effort:{low:"Low",medium:"Medium",high:"High",max:"Max"}},fields:{general:{baseDir:{label:"Workspace Folder",desc:"Default folder for configuration and cache files"},effort:{label:"Default Effort",desc:"Default effort level used when none is specified"},defaultAdapter:{label:"Default Adapter",desc:"Adapter used when none is specified"},defaultModelService:{label:"Default Model Service",desc:"Model service used when none is specified"},defaultModel:{label:"Default Model",desc:"Model used when none is specified"},recommendedModels:{label:"Recommended Models",desc:"Models shown in the recommended section of the selector"},interfaceLanguage:{label:"Interface Language",desc:"Controls UI display and interaction language"},modelLanguage:{label:"Model Language",desc:"Controls the assistant response language"},announcements:{label:"Announcements",desc:"Shown when starting a new session"},permissions:{label:"Permissions",desc:"Access policy for tools and resources",allow:{label:"Allow"},deny:{label:"Deny"},ask:{label:"Ask"}},env:{label:"Environment",desc:"Overrides or additional environment variables"},notifications:{label:"Notifications",desc:"Trigger notifications on session status updates",disabled:{label:"Disable Notifications",desc:"Disable to stop sending notifications"},volume:{label:"Notification Volume",desc:"0-1 or 0-100, 0 means mute"},events:{completed:{label:"Completion Notification",desc:"Triggered when a session completes",disabled:{label:"Disable Completion Notification",desc:"Disable to stop completion notifications"},title:{label:"Completion Title",desc:"Leave empty to use the default title"},description:{label:"Completion Message",desc:"Leave empty to use the default message"},sound:{label:"Completion Sound",desc:"Audio file path, leave empty for default sound"}},failed:{label:"Failure Notification",desc:"Triggered when a session fails",disabled:{label:"Disable Failure Notification",desc:"Disable to stop failure notifications"},title:{label:"Failure Title",desc:"Leave empty to use the default title"},description:{label:"Failure Message",desc:"Leave empty to use the default message"},sound:{label:"Failure Sound",desc:"Audio file path, leave empty for default sound"}},terminated:{label:"Termination Notification",desc:"Triggered when a session is terminated",disabled:{label:"Disable Termination Notification",desc:"Disable to stop termination notifications"},title:{label:"Termination Title",desc:"Leave empty to use the default title"},description:{label:"Termination Message",desc:"Leave empty to use the default message"},sound:{label:"Termination Sound",desc:"Audio file path, leave empty for default sound"}},waiting_input:{label:"Waiting Input Notification",desc:"Triggered when a session waits for input",disabled:{label:"Disable Waiting Input Notification",desc:"Disable to stop waiting input notifications"},title:{label:"Waiting Input Title",desc:"Leave empty to use the default title"},description:{label:"Waiting Input Message",desc:"Leave empty to use the default message"},sound:{label:"Waiting Input Sound",desc:"Audio file path, leave empty for default sound"}}}}},conversation:{style:{label:"Conversation Style",desc:"Controls the assistant’s interaction style"},customInstructions:{label:"Custom Instructions",desc:"Additional guidance for the assistant"}},models:{items:{label:"Model Selector Entries",desc:"Model metadata keyed by `service` or `service,model`. Display metadata like alias/title/description only applies to exact `model` or `service,model` matches"}},modelServices:{items:{label:"Service Entries",desc:"Flattened configuration by service name"},item:{title:{label:"Display Title",desc:"Shown in the default model service dropdown"},description:{label:"Display Description",desc:"Shown in the default model service dropdown"},apiBaseUrl:{label:"API Base URL",desc:"Base URL for the model service API"},apiKey:{label:"API Key",desc:"Access key for the model service"},models:{label:"Models",desc:"Models supported by this service"},timeoutMs:{label:"Timeout (ms)",desc:"Provider timeout in milliseconds. Codex uses it as stream idle timeout; Claude Code Router uses global API timeout."},maxOutputTokens:{label:"Max Output Tokens",desc:"Default output token cap for this service. Codex uses maxOutputTokens; Claude Code Router uses the maxtoken transformer."},extra:{label:"Extra Settings",desc:"Additional configuration for the service"}}},adapters:{items:{label:"Adapter Entries",desc:"Flattened configuration by adapter name. Common fields include `defaultModel`, `includeModels`, and `excludeModels`."}},plugins:{items:{label:"Plugin Configuration",desc:"Flattened configuration by plugin name"},enabled:{label:"Enabled Plugins",desc:"Enable or disable plugins"},marketplaces:{label:"Extra Marketplaces",desc:"Additional plugin marketplace sources"}},mcp:{mcpServers:{label:"MCP Servers",desc:"Connection details for MCP servers"},defaultIncludeMcpServers:{label:"Default Include",desc:"MCP servers enabled by default"},defaultExcludeMcpServers:{label:"Default Exclude",desc:"MCP servers disabled by default"},noDefaultVibeForgeMcpServer:{label:"Disable Built-in MCP",desc:"Do not enable the built-in VibeForge MCP server"},items:{label:"Server Entries",desc:"Flattened configuration by server name"}},mcpServer:{enabled:{label:"Enabled",desc:"Toggle MCP server availability"},type:{label:"Connection Type",desc:"Choose how to connect to the server"},command:{label:"Command",desc:"Local command launch"},args:{label:"Arguments",desc:"Command arguments"},url:{label:"Server URL",desc:"Remote MCP server address"},headers:{label:"Headers",desc:"Headers included for the connection"},env:{label:"Environment",desc:"Environment variables for the MCP server"}},shortcuts:{newSession:{label:"New Session",desc:"Global shortcut for creating a new session"},openConfig:{label:"Open Config",desc:"Shortcut for opening the config view"},sendMessage:{label:"Send Message",desc:"Shortcut for sending a message"},clearInput:{label:"Clear Input",desc:"Shortcut for clearing the input"},switchModel:{label:"Switch Model",desc:"Open the model selector and navigate it with the keyboard"},switchEffort:{label:"Switch Reasoning Effort",desc:"Open the effort selector and navigate it with the keyboard"},switchPermissionMode:{label:"Switch Permission Mode",desc:"Open the permission menu and navigate it with the keyboard"}}},options:{language:{zh:"Chinese",en:"English"},conversation:{friendly:"Friendly",programmatic:"Programmatic"},mcp:{command:"Command",sse:"SSE",http:"HTTP"}},sectionGroups:{base:"Base Configuration",permissions:"Tool Permissions",env:"Environment Variables",items:"Entry Configuration",plugins:"Plugin Configuration"},groups:{config:"Configuration",app:"Application"},about:{software:"Software Info",version:"Version",lastRelease:"Last Release",checkUpdate:"Check Updates",docs:"Documentation",contact:"Contact Us",feedback:"Feedback",unknown:"Unknown"},sections:{general:"General",conversation:"Conversation",models:"Models",modelServices:"Model Services",channels:"Channels",adapters:"Adapters",plugins:"Plugins",mcp:"MCP",shortcuts:"Shortcuts",appearance:"Appearance",experiments:"Experiments",about:"About"},appSettings:{announcements:{label:"Show announcements",desc:"Show announcements when creating a new session"}}},iGe={common:Zqe,automation:Qqe,benchmark:Jqe,knowledge:eGe,chat:tGe,config:nGe},sGe={newChat:"新建会话",search:"搜索标题或 ID...",sessions:"会话列表",knowledgeBase:"项目知识库",archive:"归档",archivedSessions:"已归档会话",theme:"主题模式",themeLight:"浅色模式",themeDark:"深色模式",themeSystem:"跟随系统",settings:"设置",language:"语言",automation:"自动化任务",benchmark:"评测",delete:"删除",deleteSession:"删除会话",deleteSessionConfirm:"确定要删除这个会话吗?此操作不可撤销。",restore:"还原",restoreSuccess:"还原成功",restoreFailed:"还原失败",batchRestore:"批量还原",batchRestoreSuccess:"批量还原成功",batchRestoreFailed:"部分会话还原失败",cancel:"取消",continue:"继续",confirm:"确定",confirmAction:"确认{{action}}",startNewChat:"暂时没有未归档的历史会话,聊点什么吧",backToHome:"返回首页",noData:"暂无数据",noSessions:"未找到匹配的会话",noArchivedSessions:"暂无已归档会话",sessionNotFound:"会话不存在",expand:"展开侧边栏",dragResize:"拖动调整宽度",selectOrCreateSession:"请选择或新建会话开始对话",batchMode:"批量操作",cancelBatch:"取消批量操作",batchArchive:"批量归档",archiveConfirm:"确定要归档选中的 {{count}} 个会话吗?",alreadyInNewChat:"当前已是新建会话",creatingChat:"正在新建会话",batchDelete:"批量删除",batchDeleteSuccess:"批量删除成功",batchDeleteFailed:"部分会话删除失败",selectedCount:"已选中 {{count}} 个会话",selectAll:"全选",deselectAll:"取消全选",collapse:"收起侧边栏",close:"关闭",sort:"排序规则",allTags:"全部标签",allAdapters:"全部适配器",searchActions:"搜索与筛选",expandChildren:"展开子会话",collapseChildren:"收起子会话",childSummary:"{{count}} 个子会话",childStatusItem:"{{count}} {{status}}",deleteConfirm:"确定要删除选中的 {{count}} 个会话吗?",deleteSuccess:"删除成功",deleteFailed:"删除失败",operationFailed:"操作失败",copyFailed:"复制失败",star:"收藏",unstar:"取消收藏",rename:"重命名",renameSession:"重命名会话",addTag:"标签",actions:"操作",copySessionLink:"复制会话链接",copySessionId:"复制会话 ID",copyResumeCommand:"复制控制台指令",moreActions:"更多操作",sessionLinkCopied:"会话链接已复制到剪贴板",resumeCommandCopied:"控制台指令已复制到剪贴板",sessionIdCopied:"Session ID 已复制到剪贴板",doubleClickToCopy:"双击复制 Session ID",status:{running:"进行中",completed:"已完成",failed:"失败",terminated:"已终止",waiting_input:"等待输入"}},rGe={title:"自动化任务",newRule:"新建规则",creatingRule:"正在新建",editRule:"编辑规则",searchRule:"搜索规则",favorite:"收藏",unfavorite:"取消收藏",toggleEnabled:"启用/停用",noDescription:"暂无说明",runSearch:"搜索运行记录",statusAll:"全部状态",timeAll:"全部时间",time24h:"近 24 小时",time7d:"近 7 天",time30d:"近 30 天",sortDesc:"时间最新",sortAsc:"时间最早",triggerCount:"{{count}} 个触发条件",basicDesc:"用于说明规则用途与开关启停",sectionBasic:"基本信息",sectionTriggers:"触发条件",sectionTasks:"任务内容",ruleName:"规则名称",ruleNameRequired:"请输入规则名称",ruleDescription:"规则介绍",immediateRun:"立即触发",ruleType:"触发类型",ruleTypeRequired:"请选择触发类型",typeInterval:"时间间隔",typeWebhook:"接口触发",typeCron:"Cron 周期",intervalMinutes:"间隔(分钟)",intervalRequired:"请输入时间间隔",webhookKey:"Webhook Key",webhookKeyHint:"留空自动生成",cronExpressionLabel:"Cron 表达式",cronExpressionRequired:"请输入 Cron 表达式",cronExpressionHint:"例如:0 9 * * 1",cronExpression:"Cron:{{expression}}",cronPreset:"常用预设",cronPresetHint:"选择常用 Cron",cronPresetHourly:"每小时整点",cronPresetDaily9:"每天 09:00",cronPresetWeekday9:"工作日 09:00",cronPresetWeekend10:"周末 10:00",cronInputHint:"可直接输入 Cron 表达式,或用下方每周配置生成表达式",weeklyDay:"每周日期",weeklyTime:"时间(HH:mm)",weeklyTimeHint:"例如:09:00",weekdaySun:"周日",weekdayMon:"周一",weekdayTue:"周二",weekdayWed:"周三",weekdayThu:"周四",weekdayFri:"周五",weekdaySat:"周六",triggerAny:"满足任意一个条件即可触发任务",taskAll:"触发后同时执行以下任务",addTrigger:"添加触发条件",addTask:"添加任务",remove:"移除",taskDefaultTitle:"任务 {{index}}",taskTitle:"任务标题",taskTitlePlaceholder:"可选,用于区分多个任务",taskIndex:"第 {{index}} 个任务",taskCount:"{{count}} 个任务",taskUnknown:"未命名任务",webhookUrl:"Webhook 地址",prompt:"自动任务内容",promptRequired:"请输入自动任务内容",trigger:"触发方式",webhookTrigger:"Webhook",intervalEvery:"每 {{minutes}} 分钟",enabled:"启用",ruleStatus:"规则状态",lastRunLabel:"最近运行",lastRun:"最近运行",lastRunAt:"最近运行:{{time}}",noRunYet:"暂无运行记录",emptyRules:"暂无自动化任务",selectRule:"请选择一个自动化任务",ruleId:"规则 ID",createdAt:"创建时间",enabledOn:"已启用",enabledOff:"已停用",noTriggers:"暂无触发条件",noTasks:"暂无任务",runHistory:"运行记录",runTime:"运行时间",runStatus:"状态",runSummary:"摘要",session:"会话",relatedSession:"相关会话",openSession:"打开会话",noRuns:"暂无运行记录",actions:"操作",run:"立即运行",edit:"编辑",delete:"删除",copy:"复制",webhookCopied:"Webhook 已复制",created:"规则已创建",updated:"规则已更新",deleted:"规则已删除",saveFailed:"保存失败",deleteFailed:"删除失败",toggleFailed:"更新失败",runStarted:"已启动任务",runFailed:"启动失败"},oGe={title:"评测",sidebarHint:"选择 category 和 case,查看任务目标并触发跑分。",category:"分类",categoryCount:"{{count}} 个分类",caseCount:"{{count}} 个用例",caseTree:"用例树",expandAll:"展开全部",collapseAll:"折叠全部",runSelected:"运行已选 ({{count}})",runAll:"运行全部",caseId:"用例:",searchPlaceholder:"搜索分类、标题或摘要",emptyCases:"暂无 benchmark 用例",noSummary:"暂无摘要",configTitle:"用例配置",baseCommit:"基线 Commit",setupCommand:"初始化命令",testCommand:"测试命令",timeoutSec:"超时(秒)",runState:"运行状态",noActiveRun:"当前没有运行中的 benchmark 任务",runStatus:"运行状态",progress:"进度",lastMessage:"最新消息",taskGoal:"任务目标",resultTitle:"最近结果",noResult:"暂无结果",finalScore:"总分",lastRunAt:"最近运行",testScore:"测试分",goalScore:"目标分",referenceScore:"参考分",changedFiles:"改动文件数",noChangedFiles:"暂无改动文件记录",testExitCode:"测试退出码",durationMs:"耗时(毫秒)",issues:"问题",noIssues:"暂无问题",concurrency:"并发",runCategory:"运行当前分类",runCase:"运行当前用例",runStarted:"Benchmark 已启动",categoryRunStarted:"分类跑分已启动",runCompleted:"Benchmark 已完成",runFailed:"Benchmark 运行失败",status:{pass:"通过",partial:"部分完成",fail:"失败"}},aGe={title:"项目知识库",subtitle:"管理当前项目的技能、实体、流程与规则",tabs:{skills:"技能",entities:"实体",flows:"流程",rules:"规则"},actions:{refresh:"刷新",refreshed:"已刷新",import:"导入",expand:"展开",collapse:"收起"},filters:{search:"搜索名称、描述或参数",tags:"按标签过滤",noResults:"没有匹配的结果"},meta:{params:"{{count}} 个参数",always:"常驻",skills:"技能",rules:"规则",skillsCount:"技能 {{count}}",rulesCount:"规则 {{count}}"},skills:{title:"技能库",desc:"维护可复用的技能定义与调用说明。",empty:"暂未发现技能。",create:"新建技能",createHint:"请在 .ai/skills 中创建技能文件,保存后刷新页面。",importHint:"请将技能文件导入至 .ai/skills,保存后刷新页面。"},entities:{title:"实体库",desc:"管理项目内的角色、组件或领域实体。",empty:"暂未发现实体。",create:"新建实体",createHint:"请在 .ai/entities 中创建实体定义文件,保存后刷新页面。",importHint:"请将实体文件导入至 .ai/entities,保存后刷新页面。"},flows:{title:"流程库",desc:"管理项目流程与参数定义。",empty:"暂未发现流程。",noContent:"暂无流程定义内容",create:"新建流程",createHint:"请在 .ai/specs 中创建流程文件,保存后刷新页面。",importHint:"请将流程文件导入至 .ai/specs,保存后刷新页面。"},rules:{title:"规则库",desc:"维护项目规范、约束与执行规则。",empty:"暂未发现规则。",create:"新建规则",createHint:"请在 .ai/rules 中创建规则文件,保存后刷新页面。",importHint:"请将规则文件导入至 .ai/rules,保存后刷新页面。"}},lGe={titleUpdated:"标题已更新",titleUpdateFailed:"标题更新失败",clickToEditTitle:"点击编辑标题",inputPlaceholder:"输入消息...",send:"发送",thinking:"思考中...",stop:"停止",result:"结果",sessionActive:"会话进行中",selectModel:"选择模型开始聊天",modelSelectPlaceholder:"选择模型",modelSearchPlaceholder:"搜索模型或服务",modelUnavailable:"暂无可用模型",modelConfigRequired:"请先在配置中添加模型服务后再开始会话",modelConfigRequiredTitle:"需要先配置模型服务",modelConfigRequiredHelp:"至少添加一个模型服务后,再回到输入框重新发送消息。",connectionErrorTitle:"连接异常",connectionClosedTitle:"连接已断开",sessionErrorTitle:"任务失败",connectionError:"WebSocket 连接失败,请检查服务状态后重试",connectionClosed:"WebSocket 连接已关闭,请重试",connectionErrorHelp:"当前流式更新还没恢复就中断了。重试连接后可以重新订阅这个会话的实时输出。",connectionClosedHelp:"当前消息流意外结束了。重试连接后,可以继续接收这个会话后续的新消息。",sessionErrorHelp:"可以先检查最近一次工具输出或终端日志,再决定是否从最近一条用户消息继续。",sessionErrorCode:"错误码:{{code}}",retryConnection:"重试连接",debugMockLabel:"调试预览",debugMockConnectionErrorMessage:"无法连上当前会话的消息流,WebSocket 握手在收到任何更新前就超时了。",debugMockConnectionClosedMessage:"assistant 已经开始回复,但连接中途断开;在重新连接前,不会再收到新的 token。",debugMockSessionErrorMessage:"runtime 在等待下游工具结果时触发了会话超时,这一轮任务已经停止。",permissionRequestBadge:"权限请求",permissionRequestTitleWithTool:"正在请求使用【{{tool}}】的调用权限,请选择通过",permissionSubject:"审批范围",permissionProjectConfig:"项目配置",permissionCurrentMode:"当前模式",permissionSuggestedMode:"建议模式",permissionDeniedTools:"受限工具",permissionReasons:"原因",permissionExpandOptions:"展开更多选项",permissionCollapseOptions:"收起更多选项",tooltipSlashCommands:"快捷指令",tooltipMentionAgents:"提及代理",tooltipInjectContext:"注入上下文",tooltipUploadImages:"上传图片",tooltipReferenceActions:"更多",referenceActionsShortcutTooltip:"更多 / 权限模式",modelShortcutTooltip:"切换模型",modelAddRecommendation:"加入推荐模型",modelAlreadyRecommended:"已在推荐模型中",modelRemoveRecommendation:"从推荐模型中移除",effortShortcutTooltip:"切换推理强度",sendShortcutTooltip:"发送消息",adapterLockedTooltip:"创建会话后适配器会锁定",referenceActionsShort:"更多",referenceActionsTitle:"更多",referenceActionsDescription:"添加照片、文件和权限相关设置。",referenceAttachments:"添加照片和文件",referenceAttachmentsDescription:"选择图片或项目文件作为引用内容。",referencePermission:"权限模式",referencePermissionDescription:"控制工具执行前的授权策略。",referenceImage:"图片",referenceImageDescription:"从本地选择图片并附在消息中。",referenceFile:"文件",referenceFileDescription:"从当前项目目录树中选择要引用的文件。",effortSelectPlaceholder:"推理强度",effortLabels:{default:"默认",low:"低",medium:"中",high:"高",max:"最高"},permissionModeSelectPlaceholder:"权限模式",assetWarningsTitle:"兼容性提示",assetWarningsCount:"{{count}} 个资产告警",assetWarningsMore:"还有 {{count}} 条",selectionWarningsTitle:"模型路由提示",selectionWarningsCount:"{{count}} 个模型告警",selectionWarningReasonExcluded:"该模型被适配器规则排除了",selectionWarningReasonNotIncluded:"该模型不在适配器允许列表中",selectionWarningFallback:"适配器 {{adapter}} 已将模型从 {{requestedModel}} 切换到 {{resolvedModel}},原因:{{reason}}。",modelGroupBuiltin:"{{adapter}} 内置模型",modelGroupServices:"模型服务",imageTooLarge:"图片大小不能超过 5MB",imageReadFailed:"图片读取失败",imageNotSupportedInInteraction:"当前交互不支持图片",fileNotSupportedInInteraction:"当前交互不支持文件上下文",contextPickerTitle:"引用文件",contextPickerDescription:"从当前项目目录树中选择一个或多个文件。",contextPickerConfirm:"引用文件",contextPickerLoading:"正在加载项目目录树...",contextPickerEmpty:"当前目录下没有可选文件",contextPickerLoadFailed:"项目目录树加载失败",modelGroupRecommended:"推荐模型",modelMoreModels:"更多模型",availableTools:"可用工具",availableToolsEmpty:"当前会话没有可展示的工具。",toolGroupChromeDevtools:"ChromeDevtools",toolGroupSystem:"系统",toolsCount:"{{count}} 个工具",usedTools:"使用了 {{count}} 个工具",debugSessionId:"会话",debugType:"类型",debugUuid:"UUID",debugLeafUuid:"Leaf",debugAdapter:"适配器",debugModel:"模型",debugEffort:"推理强度",debugVersion:"版本",debugTools:"工具数",debugAgents:"代理数",debugCwd:"目录",debugTags:"标签",debugView:"视图",debugStarred:"收藏",debugArchived:"归档",debugEnable:"开启调试模式",debugDisable:"关闭调试模式",debugEnabledValue:"开启",debugDisabledValue:"关闭",debugSectionTitle:"调试会话信息",debugModeTitle:"调试模式已开启",debugModeDescription:"当前 URL 带有 debug query,所以这里会展示平时隐藏的会话元信息。",viewInitInfo:"连续点击标题 5 次切换调试模式",viewHistory:"历史",viewTimeline:"时序",viewTerminal:"终端",viewSettings:"配置",gitBranchSwitcher:"切换分支",gitOperations:"Git 操作",gitWorktree:"Worktree",gitDetachedHead:"DETACHED",gitSearchBranches:"搜索本地或远程分支",gitBranchesLocal:"本地分支",gitBranchesWorktrees:"其他 worktree",gitBranchesRemote:"远程分支",gitBranchCheckedOutInOtherWorktree:"已在 {{path}}",gitRemoteBranchCheckedOutInOtherWorktree:"本地分支已在 {{path}}",gitNoBranches:"没有匹配的分支",gitCreateBranch:"创建分支",gitCreateBranchWithName:"创建分支 {{branch}}",gitSwitchBranchSuccess:"已切换到 {{branch}}",gitCreateBranchSuccess:"已创建并切换到 {{branch}}",gitCommitShort:"提交",gitCommitAllChanges:"提交全部变更",gitCommitDialogTitle:"提交全部变更",gitCommitDescription:"会先暂存当前仓库的全部变更,再执行提交。",gitCommitPanelTitle:"提交更改",gitCommitPanelBranch:"分支",gitCommitPanelChanges:"更改",gitChangedFilesCount:"{{count}} 个文件",gitCommitIncludeUnstagedChanges:"包含未暂存的更改",gitCommitIncludeUnstagedChangesDescription:"带上未暂存和未跟踪文件。",gitCommitOnlyStagedChangesDescription:"只提交已暂存内容。",gitCommitSkipHooks:"跳过 Git hooks",gitCommitSkipHooksDescription:"跳过 pre-commit / commit-msg。",gitCommitAmend:"修订最近一次提交",gitCommitAmendDescription:"并入最近一次提交。当前:{{subject}}",gitCommitAmendUnavailableDescription:"当前仓库还没有可修订的提交。",gitCommitMessageLabel:"提交消息",gitCommitMessageOptional:"可选",gitCommitMessagePlaceholder:"输入提交说明",gitCommitMessagePlaceholderAmend:"留空则保留上一条提交消息",gitCommitMessageAmendHint:"留空会沿用最近一次提交消息。",gitCommitMessageRequired:"请输入提交说明",gitCommitSuccess:"提交成功",gitCommitNoChanges:"当前没有可提交的更改",gitCommitNoStagedChanges:"当前没有已暂存的更改",gitCommitNextStep:"后续步骤",gitCommitAndPush:"提交并推送",gitCommitAndPushSuccess:"提交并推送成功",gitCommitPushFailedAfterCommit:"提交已完成,但推送失败:{{error}}",gitAmendSuccess:"修订成功",gitAmendAndPushSuccess:"修订并推送成功",gitAmendUnavailable:"当前没有可修订的提交",gitForcePush:"强制推送",gitForcePushDescription:"用 force-with-lease 覆盖远端。",gitForcePushHint:"仅远端没有新提交时覆盖。",gitPushNeedsSyncOrForce:"当前分支落后上游,请先同步或开启强制推送。",gitPushShort:"推送",gitPush:"推送当前分支",gitPushPanelTitle:"推送更改",gitPushPanelUpstream:"上游",gitPushPanelUpstreamHint:"首次推送会自动设置上游。",gitForcePushSuccess:"强制推送成功",gitPushSuccess:"推送成功",gitSyncShort:"同步",gitSync:"同步当前分支",gitSyncSuccess:"同步成功",gitStatusDirty:"有未提交变更",gitStatusClean:"工作区干净",gitUpstreamStatus:"领先 {{ahead}} / 落后 {{behind}}",gitNoUpstream:"未设置上游",gitLocalBranch:"本地",gitRemoteBranch:"远程 · {{remote}}",deleteSessionTitle:"删除会话",deleteSessionDesc:"删除会话会永久移除全部消息与上下文,请确认后再继续。",timelineEmpty:"暂无事件记录",timelineTask:"子任务",timelineStatus:"状态",timelineTiming:"时序",timelineStart:"开始",timelineEventName:"事件名",timelineInput:"输入",timelineOutput:"输出",timelineEmptyValue:"—",timeline:{mainTasks:"主任务",mainStart:"对话启动",mainEnd:"对话结束",startTasks:"创建任务",askUserQuestion:"询问问题",edit:"编辑",resumeTask:"继续任务",userPrompt:"用户提示",merge:"合并",merged:"已合并",donePrefix:"完成",taskStart:"创建任务",taskEnd:"结束",viewGit:"Git 视图",viewGantt:"甘特图",eventListTitle:"事件列表",eventListSearch:"搜索事件",ganttTitle:"任务时序",ganttMainSection:"主任务",ganttTasksSection:"任务",allTasksDone:"全部任务完成",userAnswer:"用户回答",receiveReply:"收到回复",destroyLabel:"销毁 {{name}}({{end}})",rangeLabel:"{{name}}({{start}} → {{end}})"},messageActions:{copy:"复制原文",copySuccess:"消息原文已复制",copyFailed:"复制消息原文失败",copyLink:"复制消息链接",copyLinkSuccess:"消息链接已复制",copyId:"复制消息 ID",copyIdSuccess:"消息 ID 已复制",copyJson:"复制消息结构 JSON",copyJsonSuccess:"消息结构 JSON 已复制",copyTimestamp:"复制时间戳",copyTimestampSuccess:"时间戳已复制",edit:"编辑消息",editInProgress:"已有一条消息正在编辑,请先发送或取消当前编辑",saveEdit:"保存并分叉",confirmInline:"确认",recall:"撤回到此处",fork:"从此处分叉",recallConfirmTitle:"确认撤回到此处",recallConfirmContent:"后续消息会被回退到这条消息之后,是否继续?",forkConfirmTitle:"确认从此处分叉",forkConfirmContent:"将基于这条消息创建一个新的会话分支,是否继续?"},messageFooter:{tokens:"Token 数",copyTimestampSuccess:"ISO 时间已复制到剪贴板",copyTimestampTitle:"双击复制 ISO 时间并在控制台输出消息结构"},turnProcessedDuration:"已处理 {{duration}}",turnDurationUnderSecond:"1 秒内",turnDurationHours:"{{count}} 小时",turnDurationMinutes:"{{count}} 分",turnDurationSeconds:"{{count}} 秒",turnSummaryCount:"{{count}} 条中间消息",turnExpandAction:"展开",turnCollapseAction:"收起",hint:"按 Enter 发送,Shift + Enter 换行,输入 / @ # 触发补全",newSessionGuide:{loading:"正在加载...",announcements:{title:"最新公告"},specs:{title:"已有流程",params:"{{count}} 个参数",empty:"暂未发现流程,放入 .ai/specs/*.md 即可展示。",create:"快速创建流程",createToast:"请在 .ai/specs 下创建流程文件,保存后刷新页面。"},entities:{title:"已有实体",empty:"暂未发现实体,放入 .ai/entities 即可展示。",create:"快速创建实体",createToast:"请在 .ai/entities 下创建实体定义文件,保存后刷新页面。"},help:{title:"一些帮助",item1:"流程文件支持 name/description/params 等元信息,便于识别和调用",item2:"实体可使用 index.json 或 README.md 描述能力与职责",item3:"创建完成后刷新页面即可出现在这里",footer:"需要更多引导时,可在流程描述中写明使用方式"}},todo:{noTasks:"未规划任务",progress:"任务进度: {{completed}}/{{total}} 已完成"},tools:{read:"读取文件",write:"写入文件",bash:"Bash",getTaskInfo:"任务详情",listTasks:"任务列表",listTasksEmpty:"暂无任务",startTasks:"启动任务",startTasksBackground:"后台任务",startTasksForeground:"前台任务",startTasksEmpty:"未提供任务",startTasksStarted:"已启动",startTasksFailed:"失败",startTasksLogs:"任务日志",task:"任务",taskCount:"{{count}} 个任务",taskExitCode:"退出码: {{code}}",writeSuccess:"写入成功",writeFailed:"写入失败",askUserQuestion:"询问问题",globTool:"Glob",grepTool:"Grep",editTool:"编辑文件",lsTool:"浏览目录",notebookEdit:"编辑 Notebook",webFetch:"抓取网页",webSearch:"网页搜索",booleanOn:"开启",booleanOff:"关闭",diffSplit:"双栏",diffInline:"单栏",skill:"技能",enterPlanMode:"进入计划模式",exitPlanMode:"退出计划模式",taskCreate:"创建任务",taskGet:"获取任务",taskUpdate:"更新任务",taskList:"列出任务",claudeTask:"Claude 任务",todo:"任务规划",call:"调用",reading:"正在读取文件...",offset:"offset",limit:"limit",timeout:"timeout",runInBackground:"后台执行",dangerouslyDisableSandbox:"禁用沙箱",viewCommand:"查看指令",noParameters:"无参数",groupSummaryCount:"{{name}} {{count}} 次",groupSummaryMoreCount:"+{{count}} 次",singleSelect:"单选",multiSelect:"多选",fields:{activeForm:"当前表述",addBlockedBy:"新增阻塞源",addBlocks:"新增阻塞项",allowedDomains:"允许域名",allowedPrompts:"允许的提示",answers:"回答",args:"参数",blockedDomains:"屏蔽域名",cellId:"单元 ID",cellType:"单元类型",command:"命令",content:"内容",description:"说明",disableSandbox:"禁用沙箱",details:"详情",editMode:"编辑模式",glob:"Glob",ignore:"忽略项",limit:"Limit",maxTurns:"最大轮次",metadata:"元数据",model:"模型",mode:"模式",newSource:"新内容",newString:"新字符串",oldString:"旧字符串",owner:"负责人",offset:"Offset",path:"路径",prompt:"提示词",pushToRemote:"推送到远端",questions:"问题",remoteSession:"远端会话",remoteSessionUrl:"远端会话地址",replaceAll:"全量替换",resume:"恢复",runInBackground:"后台执行",status:"状态",subagentType:"子代理类型",subject:"主题",timeout:"超时",todos:"待办事项"},unknown:"未知工具"},terminal:{connectionError:"终端连接失败,请检查服务状态后重试",exitSummary:"终端已退出,exitCode={{code}},signal={{signal}}",resizePanel:"拖动调整终端高度"},sessionSettings:"会话设置",enterTitle:"输入会话标题...",tags:"标签",addTagPlaceholder:"添加新标签并按回车...",noTags:"暂无标签",title:"标题",newSessionPlaceholder:"输入消息以创建新会话..."},cGe={title:"系统配置",readOnlyHint:"配置支持在线编辑,保存后会写入对应的 json/yaml 配置文件。",loadFailed:"配置加载失败",editHint:"修改后会自动保存到当前来源配置文件,可用于项目或用户级别覆盖。",maskHint:"敏感字段已脱敏展示,保留 ****** 可保持原值。",invalidJson:"JSON 格式错误,请修正后再保存。",saveSuccess:"配置已保存",saveFailed:"配置保存失败",copySuccess:"配置已复制",copyFailed:"复制失败",sources:{project:"项目",user:"用户",projectMissing:"项目(未创建)",userMissing:"用户(未创建)"},actions:{edit:"编辑",save:"保存",cancel:"取消",format:"格式化",copy:"复制"},editor:{addField:"添加字段",addItem:"添加项",remove:"移除",collapse:"折叠",expand:"展开",addAdapter:"添加适配器",addPlugin:"添加插件",addMcpServer:"添加 MCP 服务",addModelService:"添加模型服务",addMarketplace:"添加市场",addEnvVar:"添加环境变量",addHeader:"添加请求头",addEntry:"添加条目",newModelSelectorName:"新增模型选择器",shortcutPlaceholder:"按下快捷键",clearShortcut:"清除快捷键",newModelServiceName:"新增模型服务名称",newChannelName:"新增频道名称",newAdapterName:"新增适配器名称",newPluginName:"新增插件名称",newMcpServerName:"新增 MCP 服务名称",newMarketplaceName:"新增市场名称",newEnvVarName:"新增环境变量名称",newHeaderName:"新增请求头名称",fieldKey:"字段名",fieldValue:"字段值",complexPlaceholder:"复杂结构请使用 JSON 输入",secretPlaceholder:"请输入密钥",itemPlaceholder:"请输入内容",commandPlaceholder:"请输入命令",urlPlaceholder:"请输入地址",multilinePlaceholder:"请输入内容",defaultAdapterPlaceholder:"请选择适配器",defaultModelServicePlaceholder:"请选择模型服务",defaultModelPlaceholder:"请选择模型",titlePlaceholder:"请输入标题",descriptionPlaceholder:"请输入描述",channelType:"频道类型",unknownChannelType:"未知类型",complexValue:"复杂结构",tagsPlaceholder:"输入后回车",types:{string:"文本",number:"数字",boolean:"开关",object:"对象",array:"数组"},effort:{low:"低",medium:"中",high:"高",max:"最高"}},fields:{general:{baseDir:{label:"工作目录",desc:"配置文件和缓存的默认目录"},effort:{label:"默认思考强度",desc:"未指定时默认使用的 effort 等级"},defaultAdapter:{label:"默认适配器",desc:"未指定时使用的适配器"},defaultModelService:{label:"默认模型服务",desc:"未指定时使用的模型服务"},defaultModel:{label:"默认模型",desc:"未指定时使用的模型"},recommendedModels:{label:"建议模型",desc:"用于模型下拉推荐展示的列表"},interfaceLanguage:{label:"界面交互语言",desc:"控制界面显示与交互语言"},modelLanguage:{label:"模型对话语言",desc:"控制模型输出语言"},announcements:{label:"公告",desc:"新建会话时的提示信息"},permissions:{label:"权限",desc:"控制工具与资源的访问策略",allow:{label:"允许"},deny:{label:"禁止"},ask:{label:"询问"}},env:{label:"环境变量",desc:"覆盖或新增的运行环境变量"},notifications:{label:"通知",desc:"会话状态变更时触发通知",disabled:{label:"禁用通知",desc:"关闭后不发送通知"},volume:{label:"提示音量",desc:"0-1 或 0-100,0 为静音"},events:{completed:{label:"完成通知",desc:"会话完成时触发",disabled:{label:"禁用完成通知",desc:"关闭后不发送完成通知"},title:{label:"完成标题",desc:"留空使用默认标题"},description:{label:"完成文案",desc:"留空使用默认文案"},sound:{label:"完成音频",desc:"音频文件路径,留空使用默认音效"}},failed:{label:"失败通知",desc:"会话失败时触发",disabled:{label:"禁用失败通知",desc:"关闭后不发送失败通知"},title:{label:"失败标题",desc:"留空使用默认标题"},description:{label:"失败文案",desc:"留空使用默认文案"},sound:{label:"失败音频",desc:"音频文件路径,留空使用默认音效"}},terminated:{label:"终止通知",desc:"会话终止时触发",disabled:{label:"禁用终止通知",desc:"关闭后不发送终止通知"},title:{label:"终止标题",desc:"留空使用默认标题"},description:{label:"终止文案",desc:"留空使用默认文案"},sound:{label:"终止音频",desc:"音频文件路径,留空使用默认音效"}},waiting_input:{label:"等待输入通知",desc:"会话等待输入时触发",disabled:{label:"禁用等待输入通知",desc:"关闭后不发送等待输入通知"},title:{label:"等待输入标题",desc:"留空使用默认标题"},description:{label:"等待输入文案",desc:"留空使用默认文案"},sound:{label:"等待输入音频",desc:"音频文件路径,留空使用默认音效"}}}}},conversation:{style:{label:"对话风格",desc:"控制助手的对话风格"},customInstructions:{label:"自定义指令",desc:"为对话提供额外的提示与约束"}},models:{items:{label:"模型选择器明细",desc:"按 `service` 或 `service,model` 配置模型元信息;展示元数据如 alias/title/description 仅在 `model` 或 `service,model` 精确匹配时生效"}},modelServices:{items:{label:"服务明细",desc:"按服务名称平铺配置"},item:{title:{label:"展示标题",desc:"用于默认模型服务下拉展示"},description:{label:"展示描述",desc:"用于默认模型服务下拉展示"},apiBaseUrl:{label:"API 地址",desc:"模型服务的 API 基础地址"},apiKey:{label:"API 密钥",desc:"模型服务的访问密钥"},models:{label:"模型列表",desc:"该服务支持的模型名称"},timeoutMs:{label:"超时(毫秒)",desc:"模型服务超时。Codex 会映射为流空闲超时,Claude Code Router 会映射为全局 API 超时。"},maxOutputTokens:{label:"最大输出 Token",desc:"该服务的默认输出上限。Codex 会映射为 maxOutputTokens,Claude Code Router 会映射为 maxtoken transformer。"},extra:{label:"扩展配置",desc:"模型服务扩展参数"}}},adapters:{items:{label:"适配器明细",desc:"按适配器名称平铺配置,公共字段包括 `defaultModel`、`includeModels` 和 `excludeModels`"}},plugins:{items:{label:"插件配置",desc:"按插件名称平铺配置"},enabled:{label:"启用插件",desc:"控制插件启用状态"},marketplaces:{label:"额外插件源",desc:"新增可用的插件市场来源"}},mcp:{mcpServers:{label:"MCP 服务器",desc:"配置 MCP 服务器的连接信息"},defaultIncludeMcpServers:{label:"默认启用列表",desc:"默认启用的 MCP 服务器"},defaultExcludeMcpServers:{label:"默认禁用列表",desc:"默认禁用的 MCP 服务器"},noDefaultVibeForgeMcpServer:{label:"禁用内置 MCP",desc:"不启用内置 VibeForge MCP 服务器"},items:{label:"服务器明细",desc:"按服务器名称平铺配置"}},mcpServer:{enabled:{label:"是否启用",desc:"控制当前 MCP 服务器的启用状态"},type:{label:"连接类型",desc:"选择 MCP 服务器的连接方式"},command:{label:"命令",desc:"本地命令启动方式"},args:{label:"命令参数",desc:"启动命令的参数列表"},url:{label:"服务地址",desc:"远程 MCP 服务地址"},headers:{label:"请求头",desc:"连接时附带的请求头"},env:{label:"环境变量",desc:"为 MCP 服务器注入环境变量"}},shortcuts:{newSession:{label:"新建会话",desc:"创建新会话的全局快捷键"},openConfig:{label:"打开配置",desc:"打开配置页的快捷键"},sendMessage:{label:"发送消息",desc:"发送消息的快捷键"},clearInput:{label:"清空输入框",desc:"清空输入框内容的快捷键"},switchModel:{label:"切换模型",desc:"激活模型选择框并支持键盘切换"},switchEffort:{label:"切换推理强度",desc:"激活推理强度选择框并支持键盘切换"},switchPermissionMode:{label:"切换权限等级",desc:"打开权限模式菜单并支持键盘切换"}}},options:{language:{zh:"中文",en:"English"},conversation:{friendly:"友好",programmatic:"程序化"},mcp:{command:"命令",sse:"SSE",http:"HTTP"}},sectionGroups:{base:"基础配置",permissions:"工具权限",env:"环境变量",items:"明细配置",plugins:"插件配置"},groups:{config:"配置",app:"应用"},about:{software:"软件信息",version:"版本",lastRelease:"最后发布时间",checkUpdate:"检查更新",docs:"帮助文档",contact:"联系我们",feedback:"问题反馈",unknown:"未知"},sections:{general:"通用",conversation:"会话",models:"模型选择器",modelServices:"模型服务",channels:"频道",adapters:"适配器",plugins:"插件",mcp:"MCP",shortcuts:"快捷键",appearance:"外观",experiments:"实验功能",about:"关于"},appSettings:{announcements:{label:"显示公告",desc:"新建会话时展示公告信息"}}},dGe={common:sGe,automation:rGe,benchmark:oGe,knowledge:aGe,chat:lGe,config:cGe};Od.use(aRe).use(Aqe).init({resources:{zh:{translation:dGe},en:{translation:iGe}},fallbackLng:"zh",interpolation:{escapeValue:!1}});var fRe={exports:{}};/*!
26
+ */var cI=b;function Bqe(n,e){return n===e&&(n!==0||1/n===1/e)||n!==n&&e!==e}var Hqe=typeof Object.is=="function"?Object.is:Bqe,Wqe=cI.useState,Vqe=cI.useEffect,jqe=cI.useLayoutEffect,zqe=cI.useDebugValue;function Uqe(n,e){var t=e(),i=Wqe({inst:{value:t,getSnapshot:e}}),s=i[0].inst,r=i[1];return jqe(function(){s.value=t,s.getSnapshot=e,MU(s)&&r({inst:s})},[n,t,e]),Vqe(function(){return MU(s)&&r({inst:s}),n(function(){MU(s)&&r({inst:s})})},[n]),zqe(t),t}function MU(n){var e=n.getSnapshot;n=n.value;try{var t=e();return!Hqe(n,t)}catch{return!0}}function Kqe(n,e){return e()}var qqe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Kqe:Uqe;hRe.useSyncExternalStore=cI.useSyncExternalStore!==void 0?cI.useSyncExternalStore:qqe;uRe.exports=hRe;var HY=uRe.exports;const Gqe=(n,e)=>a1(e)?e:Eqe(e)&&a1(e.defaultValue)?e.defaultValue:Array.isArray(n)?n[n.length-1]:n,Xqe={t:Gqe,ready:!1},Yqe=()=>()=>{},sn=(n,e={})=>{var E,N,R;const{i18n:t}=e,{i18n:i,defaultNS:s}=b.useContext(Fqe)||{},r=t||i||Oqe();r&&!r.reportNamespaces&&(r.reportNamespaces=new $qe),r||lRe(r,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const o=b.useMemo(()=>{var D;return{...Mqe(),...(D=r==null?void 0:r.options)==null?void 0:D.react,...e}},[r,e]),{useSuspense:a,keyPrefix:l}=o,c=s||((E=r==null?void 0:r.options)==null?void 0:E.defaultNS),d=a1(c)?[c]:c||["translation"],u=b.useMemo(()=>d,d);(R=(N=r==null?void 0:r.reportNamespaces)==null?void 0:N.addUsedNamespaces)==null||R.call(N,u);const h=b.useRef(0),f=b.useCallback(D=>{if(!r)return Yqe;const{bindI18n:M,bindI18nStore:T}=o,P=()=>{h.current+=1,D()};return M&&r.on(M,P),T&&r.store.on(T,P),()=>{M&&M.split(" ").forEach(O=>r.off(O,P)),T&&T.split(" ").forEach(O=>r.store.off(O,P))}},[r,o]),g=b.useRef(),m=b.useCallback(()=>{if(!r)return Xqe;const D=!!(r.isInitialized||r.initializedStoreOnce)&&u.every(F=>Lqe(F,r,o)),M=e.lng||r.language,T=h.current,P=g.current;if(P&&P.ready===D&&P.lng===M&&P.keyPrefix===l&&P.revision===T)return P;const A={t:r.getFixedT(M,o.nsMode==="fallback"?u:u[0],l),ready:D,lng:M,keyPrefix:l,revision:T};return g.current=A,A},[r,u,l,o,e.lng]),[p,_]=b.useState(0),{t:v,ready:y}=HY.useSyncExternalStore(f,m,m);b.useEffect(()=>{if(r&&!y&&!a){const D=()=>_(M=>M+1);e.lng?f_e(r,e.lng,u,D):$Y(r,u,D)}},[r,e.lng,u,y,a,p]);const C=r||{},w=b.useRef(null),x=b.useRef(),L=D=>{const M=Object.getOwnPropertyDescriptors(D);M.__original&&delete M.__original;const T=Object.create(Object.getPrototypeOf(D),M);if(!Object.prototype.hasOwnProperty.call(T,"__original"))try{Object.defineProperty(T,"__original",{value:D,writable:!1,enumerable:!1,configurable:!1})}catch{}return T},I=b.useMemo(()=>{const D=C,M=D==null?void 0:D.language;let T=D;D&&(w.current&&w.current.__original===D?x.current!==M?(T=L(D),w.current=T,x.current=M):T=w.current:(T=L(D),w.current=T,x.current=M));const P=[v,T,y];return P.t=v,P.i18n=T,P.ready=y,P},[v,C,y,C.resolvedLanguage,C.language,C.languages]);if(r&&a&&!y)throw new Promise(D=>{const M=()=>D();e.lng?f_e(r,e.lng,u,M):$Y(r,u,M)});return I},Zqe={newChat:"New Chat",search:"Search title or ID...",sessions:"Sessions",knowledgeBase:"Knowledge Base",archive:"Archive",archivedSessions:"Archived Sessions",theme:"Theme Mode",themeLight:"Light",themeDark:"Dark",themeSystem:"System",settings:"Settings",language:"Language",automation:"Automation",benchmark:"Benchmark",delete:"Delete",deleteSession:"Delete Session",deleteSessionConfirm:"Are you sure you want to delete this session? This action cannot be undone.",restore:"Restore",restoreSuccess:"Restored successfully",restoreFailed:"Failed to restore",batchRestore:"Batch Restore",batchRestoreSuccess:"Batch restored successfully",batchRestoreFailed:"Failed to restore some sessions",cancel:"Cancel",continue:"Continue",confirm:"Confirm",confirmAction:"Confirm {{action}}",startNewChat:"No active sessions found. Start a new chat!",backToHome:"Back to Home",noData:"No data",noSessions:"No matching sessions found",noArchivedSessions:"No archived sessions",sessionNotFound:"Session not found",expand:"Expand sidebar",dragResize:"Drag to resize",selectOrCreateSession:"Please select or create a session to start chatting",batchMode:"Batch Mode",cancelBatch:"Cancel Batch Mode",batchArchive:"Batch Archive",archiveConfirm:"Are you sure you want to archive the selected {{count}} chats?",alreadyInNewChat:"You are already in a new chat",creatingChat:"New Chat",batchDelete:"Batch Delete",batchDeleteSuccess:"Batch deleted successfully",batchDeleteFailed:"Failed to delete some sessions",selectedCount:"{{count}} sessions selected",selectAll:"Select all",deselectAll:"Deselect all",collapse:"Collapse sidebar",close:"Close",sort:"Sort order",allTags:"All tags",allAdapters:"All adapters",searchActions:"Search and filters",expandChildren:"Expand children",collapseChildren:"Collapse children",childSummary:"{{count}} child sessions",childStatusItem:"{{count}} {{status}}",deleteConfirm:"Are you sure you want to delete the selected {{count}} chats?",deleteSuccess:"Deleted successfully",deleteFailed:"Failed to delete",operationFailed:"Operation failed",copyFailed:"Copy failed",star:"Star",unstar:"Unstar",rename:"Rename",renameSession:"Rename session",addTag:"Tag",copySessionLink:"Copy session link",copySessionId:"Copy session ID",copyResumeCommand:"Copy resume command",moreActions:"More actions",sessionLinkCopied:"Session link copied to clipboard",resumeCommandCopied:"Resume command copied to clipboard",sessionIdCopied:"Session ID copied to clipboard",doubleClickToCopy:"Double click to copy Session ID",status:{running:"Running",completed:"Done",failed:"Failed",terminated:"Stopped",waiting_input:"Waiting"}},Qqe={title:"Automation",newRule:"New Rule",creatingRule:"Creating",editRule:"Edit Rule",searchRule:"Search rules",favorite:"Favorite",unfavorite:"Unfavorite",toggleEnabled:"Enable/Disable",noDescription:"No description",runSearch:"Search runs",statusAll:"All statuses",timeAll:"All time",time24h:"Last 24 hours",time7d:"Last 7 days",time30d:"Last 30 days",sortDesc:"Newest first",sortAsc:"Oldest first",triggerCount:"{{count}} triggers",basicDesc:"Describe purpose and toggle the rule on or off",sectionBasic:"Basic Info",sectionTriggers:"Triggers",sectionTasks:"Tasks",ruleName:"Rule Name",ruleNameRequired:"Enter a rule name",ruleDescription:"Description",immediateRun:"Run Immediately",ruleType:"Trigger Type",ruleTypeRequired:"Select a trigger type",typeInterval:"Interval",typeWebhook:"Webhook",typeCron:"Cron",intervalMinutes:"Interval (minutes)",intervalRequired:"Enter an interval",webhookKey:"Webhook Key",webhookKeyHint:"Leave empty to auto-generate",cronExpressionLabel:"Cron Expression",cronExpressionRequired:"Enter a cron expression",cronExpressionHint:"Example: 0 9 * * 1",cronExpression:"Cron: {{expression}}",cronPreset:"Presets",cronPresetHint:"Choose a preset",cronPresetHourly:"Hourly",cronPresetDaily9:"Daily at 09:00",cronPresetWeekday9:"Weekdays at 09:00",cronPresetWeekend10:"Weekend at 10:00",cronInputHint:"Enter cron directly, or use weekly fields below to generate one",weeklyDay:"Weekly Day",weeklyTime:"Time (HH:mm)",weeklyTimeHint:"Example: 09:00",weekdaySun:"Sun",weekdayMon:"Mon",weekdayTue:"Tue",weekdayWed:"Wed",weekdayThu:"Thu",weekdayFri:"Fri",weekdaySat:"Sat",triggerAny:"Trigger when any condition matches",taskAll:"Run all tasks when triggered",addTrigger:"Add Trigger",addTask:"Add Task",remove:"Remove",taskDefaultTitle:"Task {{index}}",taskTitle:"Task Title",taskTitlePlaceholder:"Optional, for distinguishing tasks",taskIndex:"Task {{index}}",taskCount:"{{count}} tasks",taskUnknown:"Untitled Task",webhookUrl:"Webhook URL",prompt:"Task Prompt",promptRequired:"Enter the task prompt",trigger:"Trigger",webhookTrigger:"Webhook",intervalEvery:"Every {{minutes}} min",enabled:"Enabled",ruleStatus:"Rule Status",lastRunLabel:"Last Run",lastRun:"Last Run",lastRunAt:"Last run: {{time}}",noRunYet:"No runs yet",emptyRules:"No automation rules",selectRule:"Select an automation rule",ruleId:"Rule ID",createdAt:"Created At",enabledOn:"Enabled",enabledOff:"Disabled",noTriggers:"No triggers",noTasks:"No tasks",runHistory:"Run History",runTime:"Run Time",runStatus:"Status",runSummary:"Summary",session:"Session",relatedSession:"Related Session",openSession:"Open Session",noRuns:"No runs yet",actions:"Actions",run:"Run Now",edit:"Edit",delete:"Delete",copy:"Copy",webhookCopied:"Webhook copied",created:"Rule created",updated:"Rule updated",deleted:"Rule deleted",saveFailed:"Save failed",deleteFailed:"Delete failed",toggleFailed:"Update failed",runStarted:"Task started",runFailed:"Start failed"},Jqe={title:"Benchmark",sidebarHint:"Choose a category and case, inspect the task goal, and launch a run.",category:"Category",categoryCount:"{{count}} categories",caseCount:"{{count}} cases",caseTree:"Case Tree",expandAll:"Expand All",collapseAll:"Collapse All",runSelected:"Run Selected ({{count}})",runAll:"Run All",caseId:"Case:",searchPlaceholder:"Search category, title, or summary",emptyCases:"No benchmark cases",noSummary:"No summary",configTitle:"Case Config",baseCommit:"Base Commit",setupCommand:"Setup Command",testCommand:"Test Command",timeoutSec:"Timeout (sec)",runState:"Run State",noActiveRun:"No active benchmark run",runStatus:"Status",progress:"Progress",lastMessage:"Last Message",taskGoal:"Task Goal",resultTitle:"Latest Result",noResult:"No result yet",finalScore:"Final Score",lastRunAt:"Last Run",testScore:"Test Score",goalScore:"Goal Score",referenceScore:"Reference Score",changedFiles:"Changed Files",noChangedFiles:"No changed files recorded",testExitCode:"Test Exit Code",durationMs:"Duration (ms)",issues:"Issues",noIssues:"No issues",concurrency:"Concurrency",runCategory:"Run Category",runCase:"Run Case",runStarted:"Benchmark started",categoryRunStarted:"Category benchmark started",runCompleted:"Benchmark completed",runFailed:"Benchmark run failed",status:{pass:"Pass",partial:"Partial",fail:"Fail"}},eGe={title:"Project Knowledge Base",subtitle:"Manage skills, entities, flows, and rules for this project",tabs:{skills:"Skills",entities:"Entities",flows:"Flows",rules:"Rules"},actions:{refresh:"Refresh",refreshed:"Refreshed",import:"Import",expand:"Expand",collapse:"Collapse"},filters:{search:"Search name, description, or params",tags:"Filter by tags",noResults:"No matching results"},meta:{params:"{{count}} params",always:"Always",skills:"Skills",rules:"Rules",skillsCount:"Skills {{count}}",rulesCount:"Rules {{count}}"},skills:{title:"Skill Library",desc:"Maintain reusable skill definitions and usage notes.",empty:"No skills found.",create:"Create Skill",createHint:"Create a skill file under .ai/skills, then refresh the page.",importHint:"Import skill files into .ai/skills, then refresh the page."},entities:{title:"Entity Library",desc:"Manage roles, components, and domain entities for the project.",empty:"No entities found.",create:"Create Entity",createHint:"Create an entity definition file, then refresh the page.",importHint:"Import entity definition files, then refresh the page."},flows:{title:"Flow Library",desc:"Manage project flows and parameter definitions.",empty:"No flows found.",noContent:"No flow definition content",create:"Create Flow",createHint:"Create a flow file under .ai/specs, then refresh the page.",importHint:"Import flow files into .ai/specs, then refresh the page."},rules:{title:"Rule Library",desc:"Maintain project conventions, constraints, and enforcement rules.",empty:"No rules found.",create:"Create Rule",createHint:"Create a rule file under .ai/rules, then refresh the page.",importHint:"Import rule files into .ai/rules, then refresh the page."}},tGe={titleUpdated:"Title updated",titleUpdateFailed:"Failed to update title",clickToEditTitle:"Click to edit title",inputPlaceholder:"Type a message...",send:"Send",thinking:"Thinking...",stop:"Stop",result:"Result",sessionActive:"Session Active",selectModel:"Select a model to start",modelSelectPlaceholder:"Select model",modelSearchPlaceholder:"Search models or services",modelUnavailable:"No models available",modelConfigRequired:"Add a model service in config before starting a session",modelConfigRequiredTitle:"Model setup required",modelConfigRequiredHelp:"Add at least one model service, then retry sending from the composer.",connectionErrorTitle:"Connection error",connectionClosedTitle:"Connection closed",sessionErrorTitle:"Task failed",connectionError:"WebSocket connection failed. Check the server and try again.",connectionClosed:"WebSocket connection closed. Try reconnecting.",connectionErrorHelp:"Streaming updates stopped before the session could recover. Retry to resubscribe to the running session.",connectionClosedHelp:"The current stream has ended unexpectedly. Retry to reconnect and continue receiving new messages.",sessionErrorHelp:"Check the latest tool output or terminal logs, then continue from the most recent user message if needed.",sessionErrorCode:"Error code: {{code}}",retryConnection:"Retry",debugMockLabel:"Debug Preview",debugMockConnectionErrorMessage:"Unable to reach the session stream. The websocket handshake timed out before any updates arrived.",debugMockConnectionClosedMessage:"The connection dropped after the assistant started responding. No further tokens will arrive until you reconnect.",debugMockSessionErrorMessage:"The runtime hit its session timeout while waiting for a downstream tool result and stopped this turn.",permissionRequestBadge:"Permission request",permissionRequestTitleWithTool:"Requesting permission to use 【{{tool}}】. Choose how to proceed.",permissionSubject:"Scope",permissionProjectConfig:"Project config",permissionCurrentMode:"Current mode",permissionSuggestedMode:"Suggested mode",permissionDeniedTools:"Restricted tools",permissionReasons:"Reasons",permissionExpandOptions:"Show more options",permissionCollapseOptions:"Show fewer options",tooltipSlashCommands:"Slash commands",tooltipMentionAgents:"Mention agents",tooltipInjectContext:"Inject context",tooltipUploadImages:"Upload images",tooltipReferenceActions:"More",referenceActionsShortcutTooltip:"More / Permission mode",modelShortcutTooltip:"Switch model",modelAddRecommendation:"Add to recommended models",modelAlreadyRecommended:"Already recommended",modelRemoveRecommendation:"Remove from recommended models",effortShortcutTooltip:"Switch reasoning effort",sendShortcutTooltip:"Send message",adapterLockedTooltip:"Adapters are locked after a session is created",referenceActionsShort:"More",referenceActionsTitle:"More",referenceActionsDescription:"Add photos, files, and permission-related settings.",referenceAttachments:"Add photos and files",referenceAttachmentsDescription:"Choose images or project files as references.",referencePermission:"Permission mode",referencePermissionDescription:"Control how tool actions are authorized.",referenceImage:"Image",referenceImageDescription:"Choose a local image and attach it to the message.",referenceFile:"File",referenceFileDescription:"Choose files from the current project tree.",effortSelectPlaceholder:"Effort",effortLabels:{default:"Standard",low:"Low",medium:"Medium",high:"High",max:"Max"},permissionModeSelectPlaceholder:"Permission mode",assetWarningsTitle:"Compatibility notes",assetWarningsCount:"{{count}} asset warnings",assetWarningsMore:"+{{count}} more",selectionWarningsTitle:"Model routing warnings",selectionWarningsCount:"{{count}} model warnings",selectionWarningReasonExcluded:"the model is excluded by adapter rules",selectionWarningReasonNotIncluded:"the model is not included by adapter rules",selectionWarningFallback:"Adapter {{adapter}} switched from {{requestedModel}} to {{resolvedModel}} because {{reason}}.",modelGroupBuiltin:"{{adapter}} built-in models",modelGroupServices:"Model Services",imageTooLarge:"Image must be smaller than 5MB",imageReadFailed:"Failed to read image",imageNotSupportedInInteraction:"Images are not supported for this interaction",fileNotSupportedInInteraction:"Files are not supported for this interaction",contextPickerTitle:"Reference files",contextPickerDescription:"Choose one or more files from the current project tree.",contextPickerConfirm:"Reference files",contextPickerLoading:"Loading workspace tree...",contextPickerEmpty:"No files available in this directory",contextPickerLoadFailed:"Failed to load workspace tree",modelGroupRecommended:"Recommended Models",modelMoreModels:"More models",availableTools:"Available Tools",availableToolsEmpty:"No tools are available for this session yet.",toolGroupChromeDevtools:"ChromeDevtools",toolGroupSystem:"System",toolsCount:"{{count}} tools",usedTools:"Used {{count}} tools",debugSessionId:"Session",debugType:"Type",debugUuid:"UUID",debugLeafUuid:"Leaf",debugAdapter:"Adapter",debugModel:"Model",debugEffort:"Effort",debugVersion:"Version",debugTools:"Tools",debugAgents:"Agents",debugCwd:"CWD",debugTags:"Tags",debugView:"View",debugStarred:"Starred",debugArchived:"Archived",debugEnable:"Enable debug mode",debugDisable:"Disable debug mode",debugEnabledValue:"Enabled",debugDisabledValue:"Disabled",debugSectionTitle:"Debug Session Info",debugModeTitle:"Debug mode is on",debugModeDescription:"This section is visible because the current URL contains a debug query.",viewInitInfo:"Click the title 5 times to toggle debug mode",viewHistory:"History",viewTimeline:"Timeline",viewTerminal:"Terminal",viewSettings:"Settings",gitBranchSwitcher:"Switch branch",gitOperations:"Git actions",gitWorktree:"Worktree",gitDetachedHead:"DETACHED",gitSearchBranches:"Search local or remote branches",gitBranchesLocal:"Local branches",gitBranchesWorktrees:"Other worktrees",gitBranchesRemote:"Remote branches",gitBranchCheckedOutInOtherWorktree:"Checked out in {{path}}",gitRemoteBranchCheckedOutInOtherWorktree:"Local branch already checked out in {{path}}",gitNoBranches:"No matching branches",gitCreateBranch:"Create branch",gitCreateBranchWithName:"Create branch {{branch}}",gitSwitchBranchSuccess:"Switched to {{branch}}",gitCreateBranchSuccess:"Created and switched to {{branch}}",gitCommitShort:"Commit",gitCommitAllChanges:"Commit all changes",gitCommitDialogTitle:"Commit all changes",gitCommitDescription:"This stages all current repository changes before committing.",gitCommitPanelTitle:"Commit changes",gitCommitPanelBranch:"Branch",gitCommitPanelChanges:"Changes",gitChangedFilesCount:"{{count}} files",gitCommitIncludeUnstagedChanges:"Include unstaged changes",gitCommitIncludeUnstagedChangesDescription:"Include unstaged and untracked files.",gitCommitOnlyStagedChangesDescription:"Commit staged changes only.",gitCommitSkipHooks:"Skip Git hooks",gitCommitSkipHooksDescription:"Skip pre-commit and commit-msg hooks.",gitCommitAmend:"Amend latest commit",gitCommitAmendDescription:"Fold into the latest commit. Current: {{subject}}",gitCommitAmendUnavailableDescription:"There is no existing commit to amend in this repository.",gitCommitMessageLabel:"Commit message",gitCommitMessageOptional:"Optional",gitCommitMessagePlaceholder:"Enter a commit message",gitCommitMessagePlaceholderAmend:"Leave blank to keep the latest commit message",gitCommitMessageAmendHint:"Leave it blank to reuse the latest commit message.",gitCommitMessageRequired:"Enter a commit message",gitCommitSuccess:"Commit created",gitCommitNoChanges:"There are no changes to commit",gitCommitNoStagedChanges:"There are no staged changes to commit",gitCommitNextStep:"Next step",gitCommitAndPush:"Commit and push",gitCommitAndPushSuccess:"Commit and push completed",gitCommitPushFailedAfterCommit:"Commit completed, but push failed: {{error}}",gitAmendSuccess:"Amend completed",gitAmendAndPushSuccess:"Amend and push completed",gitAmendUnavailable:"There is no commit available to amend",gitForcePush:"Force push",gitForcePushDescription:"Use force-with-lease for the remote branch.",gitForcePushHint:"Only replaces it when the remote has no newer commits.",gitPushNeedsSyncOrForce:"This branch is behind upstream. Sync first or enable force push.",gitPushShort:"Push",gitPush:"Push current branch",gitPushPanelTitle:"Push changes",gitPushPanelUpstream:"Upstream",gitPushPanelUpstreamHint:"The first push sets the upstream automatically.",gitForcePushSuccess:"Force push completed",gitPushSuccess:"Push completed",gitSyncShort:"Sync",gitSync:"Sync current branch",gitSyncSuccess:"Sync completed",gitStatusDirty:"Uncommitted changes",gitStatusClean:"Working tree clean",gitUpstreamStatus:"Ahead {{ahead}} / behind {{behind}}",gitNoUpstream:"No upstream configured",gitLocalBranch:"Local",gitRemoteBranch:"Remote · {{remote}}",deleteSessionTitle:"Delete session",deleteSessionDesc:"This will permanently remove the session and all messages. Proceed carefully.",timelineEmpty:"No events yet",timelineTask:"Task",timelineStatus:"Status",timelineTiming:"Timeline",timelineStart:"Start",timelineEventName:"Event",timelineInput:"Input",timelineOutput:"Output",timelineEmptyValue:"—",timeline:{mainTasks:"Main task",mainStart:"Conversation start",mainEnd:"Conversation end",startTasks:"Create tasks",askUserQuestion:"AskUserQuestion",edit:"Edit",resumeTask:"Resume task",userPrompt:"User prompt",merge:"Merge",merged:"Merged",donePrefix:"Done",taskStart:"Create task",taskEnd:"End",viewGit:"Git Graph",viewGantt:"Gantt",eventListTitle:"Event List",eventListSearch:"Search events",ganttTitle:"Task Timeline",ganttMainSection:"Main",ganttTasksSection:"Tasks",allTasksDone:"All tasks done",userAnswer:"User answer",receiveReply:"Reply received",destroyLabel:"Destroy {{name}} @ {{end}}",rangeLabel:"{{name}} ({{start}} → {{end}})"},messageActions:{copy:"Copy raw text",copySuccess:"Raw message copied",copyFailed:"Failed to copy raw message",copyLink:"Copy message link",copyLinkSuccess:"Message link copied",copyId:"Copy message ID",copyIdSuccess:"Message ID copied",copyJson:"Copy message JSON",copyJsonSuccess:"Message JSON copied",copyTimestamp:"Copy timestamp",copyTimestampSuccess:"Timestamp copied",edit:"Edit message",editInProgress:"A message is already being edited. Send or cancel it first.",saveEdit:"Save as branch",confirmInline:"Confirm",recall:"Recall to here",fork:"Fork from here",recallConfirmTitle:"Recall to this message?",recallConfirmContent:"Messages after this point will be rolled back. Continue?",forkConfirmTitle:"Fork from this message?",forkConfirmContent:"This will create a new session branch from this message. Continue?"},messageFooter:{tokens:"Tokens",copyTimestampSuccess:"Copied ISO timestamp",copyTimestampTitle:"Double-click to copy the ISO timestamp and log the message payload"},turnProcessedDuration:"Processed {{duration}}",turnDurationUnderSecond:"<1s",turnDurationHours:"{{count}}h",turnDurationMinutes:"{{count}}m",turnDurationSeconds:"{{count}}s",turnSummaryCount:"{{count}} hidden messages",turnExpandAction:"Expand",turnCollapseAction:"Collapse",hint:"Press Enter to send, Shift + Enter for new line, type / @ # for completion",newSessionGuide:{loading:"Loading...",announcements:{title:"Announcements"},specs:{title:"Existing Flows",params:"{{count}} params",empty:"No flows found. Add .ai/specs/*.md to show them here.",create:"Quick Create Flow",createToast:"Create a flow file under .ai/specs, then refresh the page."},entities:{title:"Existing Entities",empty:"No entities found. Add entity definition files to show them here.",create:"Quick Create Entity",createToast:"Create an entity definition file, then refresh the page."},help:{title:"Help",item1:"Flow files can include name/description/params for better discovery",item2:"Entities can be described with index.json or README.md",item3:"After creation, refresh the page to see them here",footer:"Add usage guidance to flow descriptions when needed"}},todo:{noTasks:"No tasks planned",progress:"Progress: {{completed}}/{{total}} completed"},tools:{read:"Read File",write:"Write File",bash:"Bash",getTaskInfo:"Get Task Info",listTasks:"List Tasks",listTasksEmpty:"No tasks",startTasks:"Start Tasks",startTasksBackground:"Background",startTasksForeground:"Foreground",startTasksEmpty:"No tasks",startTasksStarted:"Started",startTasksFailed:"Failed",startTasksLogs:"Task Logs",task:"Task",taskCount:"{{count}} tasks",taskExitCode:"Exit: {{code}}",writeSuccess:"Write Success",writeFailed:"Write Failed",askUserQuestion:"Ask User Question",globTool:"Glob",grepTool:"Grep",editTool:"Edit File",lsTool:"List Directory",notebookEdit:"Notebook Edit",webFetch:"Web Fetch",webSearch:"Web Search",booleanOn:"On",booleanOff:"Off",diffSplit:"Split",diffInline:"Inline",skill:"Skill",enterPlanMode:"Enter Plan Mode",exitPlanMode:"Exit Plan Mode",taskCreate:"Create Task",taskGet:"Get Task",taskUpdate:"Update Task",taskList:"List Tasks",claudeTask:"Claude Task",todo:"Task Planning",call:"call",reading:"Reading file...",offset:"offset",limit:"limit",timeout:"timeout",runInBackground:"run in background",dangerouslyDisableSandbox:"sandbox disabled",viewCommand:"View command",noParameters:"No parameters",groupSummaryCount:"{{name}} {{count}}x",groupSummaryMoreCount:"+{{count}}x",singleSelect:"single",multiSelect:"multi",fields:{activeForm:"Active Form",addBlockedBy:"Add Blocked By",addBlocks:"Add Blocks",allowedDomains:"Allowed Domains",allowedPrompts:"Allowed Prompts",answers:"Answers",args:"Args",blockedDomains:"Blocked Domains",cellId:"Cell ID",cellType:"Cell Type",command:"Command",content:"Content",description:"Description",disableSandbox:"Disable Sandbox",details:"Details",editMode:"Edit Mode",glob:"Glob",ignore:"Ignore",limit:"Limit",maxTurns:"Max Turns",metadata:"Metadata",model:"Model",mode:"Mode",newSource:"New Source",newString:"New String",oldString:"Old String",owner:"Owner",offset:"Offset",path:"Path",prompt:"Prompt",pushToRemote:"Push To Remote",questions:"Questions",remoteSession:"Remote Session",remoteSessionUrl:"Remote Session URL",replaceAll:"Replace All",resume:"Resume",runInBackground:"Run In Background",status:"Status",subagentType:"Subagent Type",subject:"Subject",timeout:"Timeout",todos:"Todos"},unknown:"Unknown tool"},terminal:{connectionError:"Terminal connection failed. Check the server and try again.",exitSummary:"Terminal exited with exitCode={{code}}, signal={{signal}}",resizePanel:"Drag to resize terminal height"},sessionSettings:"Session Settings",enterTitle:"Enter session title...",tags:"Tags",addTagPlaceholder:"Add tag and press Enter...",noTags:"No tags",title:"Title",newSessionPlaceholder:"Type a message to start a new chat..."},nGe={title:"System Configuration",readOnlyHint:"Configuration supports in-app editing and saves to json/yaml files.",loadFailed:"Failed to load configuration",editHint:"Changes are auto-saved to the selected source config file for project or user overrides.",maskHint:"Sensitive fields are masked. Keep ****** to preserve existing values.",invalidJson:"Invalid JSON. Fix the format before saving.",saveSuccess:"Configuration saved",saveFailed:"Failed to save configuration",copySuccess:"Configuration copied",copyFailed:"Copy failed",sources:{project:"Project",user:"User",projectMissing:"Project (Not created)",userMissing:"User (Not created)"},actions:{edit:"Edit",save:"Save",cancel:"Cancel",format:"Format",copy:"Copy"},editor:{addField:"Add Field",addItem:"Add Item",remove:"Remove",collapse:"Collapse",expand:"Expand",addAdapter:"Add Adapter",addPlugin:"Add Plugin",addMcpServer:"Add MCP Server",addModelService:"Add Model Service",addMarketplace:"Add Marketplace",addEnvVar:"Add Environment Variable",addHeader:"Add Header",addEntry:"Add Entry",newModelSelectorName:"New model selector",shortcutPlaceholder:"Press shortcut",clearShortcut:"Clear shortcut",newModelServiceName:"New model service name",newChannelName:"New channel name",newAdapterName:"New adapter name",newPluginName:"New plugin name",newMcpServerName:"New MCP server name",newMarketplaceName:"New marketplace name",newEnvVarName:"New environment variable name",newHeaderName:"New header name",fieldKey:"Field Key",fieldValue:"Field Value",complexPlaceholder:"Use JSON for complex structures",secretPlaceholder:"Enter secret",itemPlaceholder:"Enter value",commandPlaceholder:"Enter command",urlPlaceholder:"Enter URL",multilinePlaceholder:"Enter content",defaultAdapterPlaceholder:"Select adapter",defaultModelServicePlaceholder:"Select model service",defaultModelPlaceholder:"Select model",titlePlaceholder:"Enter title",descriptionPlaceholder:"Enter description",channelType:"Channel Type",unknownChannelType:"Unknown type",complexValue:"Complex value",tagsPlaceholder:"Type and press Enter",types:{string:"Text",number:"Number",boolean:"Boolean",object:"Object",array:"Array"},effort:{low:"Low",medium:"Medium",high:"High",max:"Max"}},fields:{general:{baseDir:{label:"Workspace Folder",desc:"Default folder for configuration and cache files"},effort:{label:"Default Effort",desc:"Default effort level used when none is specified"},defaultAdapter:{label:"Default Adapter",desc:"Adapter used when none is specified"},defaultModelService:{label:"Default Model Service",desc:"Model service used when none is specified"},defaultModel:{label:"Default Model",desc:"Model used when none is specified"},recommendedModels:{label:"Recommended Models",desc:"Models shown in the recommended section of the selector"},interfaceLanguage:{label:"Interface Language",desc:"Controls UI display and interaction language"},modelLanguage:{label:"Model Language",desc:"Controls the assistant response language"},announcements:{label:"Announcements",desc:"Shown when starting a new session"},permissions:{label:"Permissions",desc:"Access policy for tools and resources",allow:{label:"Allow"},deny:{label:"Deny"},ask:{label:"Ask"}},env:{label:"Environment",desc:"Overrides or additional environment variables"},notifications:{label:"Notifications",desc:"Trigger notifications on session status updates",disabled:{label:"Disable Notifications",desc:"Disable to stop sending notifications"},volume:{label:"Notification Volume",desc:"0-1 or 0-100, 0 means mute"},events:{completed:{label:"Completion Notification",desc:"Triggered when a session completes",disabled:{label:"Disable Completion Notification",desc:"Disable to stop completion notifications"},title:{label:"Completion Title",desc:"Leave empty to use the default title"},description:{label:"Completion Message",desc:"Leave empty to use the default message"},sound:{label:"Completion Sound",desc:"Audio file path, leave empty for default sound"}},failed:{label:"Failure Notification",desc:"Triggered when a session fails",disabled:{label:"Disable Failure Notification",desc:"Disable to stop failure notifications"},title:{label:"Failure Title",desc:"Leave empty to use the default title"},description:{label:"Failure Message",desc:"Leave empty to use the default message"},sound:{label:"Failure Sound",desc:"Audio file path, leave empty for default sound"}},terminated:{label:"Termination Notification",desc:"Triggered when a session is terminated",disabled:{label:"Disable Termination Notification",desc:"Disable to stop termination notifications"},title:{label:"Termination Title",desc:"Leave empty to use the default title"},description:{label:"Termination Message",desc:"Leave empty to use the default message"},sound:{label:"Termination Sound",desc:"Audio file path, leave empty for default sound"}},waiting_input:{label:"Waiting Input Notification",desc:"Triggered when a session waits for input",disabled:{label:"Disable Waiting Input Notification",desc:"Disable to stop waiting input notifications"},title:{label:"Waiting Input Title",desc:"Leave empty to use the default title"},description:{label:"Waiting Input Message",desc:"Leave empty to use the default message"},sound:{label:"Waiting Input Sound",desc:"Audio file path, leave empty for default sound"}}}}},conversation:{style:{label:"Conversation Style",desc:"Controls the assistant’s interaction style"},customInstructions:{label:"Custom Instructions",desc:"Additional guidance for the assistant"}},models:{items:{label:"Model Selector Entries",desc:"Model metadata keyed by `service` or `service,model`. Display metadata like alias/title/description only applies to exact `model` or `service,model` matches"}},modelServices:{items:{label:"Service Entries",desc:"Flattened configuration by service name"},item:{title:{label:"Display Title",desc:"Shown in the default model service dropdown"},description:{label:"Display Description",desc:"Shown in the default model service dropdown"},apiBaseUrl:{label:"API Base URL",desc:"Base URL for the model service API"},apiKey:{label:"API Key",desc:"Access key for the model service"},models:{label:"Models",desc:"Models supported by this service"},timeoutMs:{label:"Timeout (ms)",desc:"Provider timeout in milliseconds. Codex uses it as stream idle timeout; Claude Code Router uses global API timeout."},maxOutputTokens:{label:"Max Output Tokens",desc:"Default output token cap for this service. Codex uses maxOutputTokens; Claude Code Router uses the maxtoken transformer."},extra:{label:"Extra Settings",desc:"Additional configuration for the service"}}},adapters:{items:{label:"Adapter Entries",desc:"Flattened configuration by adapter name. Common fields include `defaultModel`, `includeModels`, and `excludeModels`."}},plugins:{items:{label:"Plugin Configuration",desc:"Flattened configuration by plugin name"},enabled:{label:"Enabled Plugins",desc:"Enable or disable plugins"},marketplaces:{label:"Extra Marketplaces",desc:"Additional plugin marketplace sources"}},mcp:{mcpServers:{label:"MCP Servers",desc:"Connection details for MCP servers"},defaultIncludeMcpServers:{label:"Default Include",desc:"MCP servers enabled by default"},defaultExcludeMcpServers:{label:"Default Exclude",desc:"MCP servers disabled by default"},noDefaultVibeForgeMcpServer:{label:"Disable Built-in MCP",desc:"Do not enable the built-in VibeForge MCP server"},items:{label:"Server Entries",desc:"Flattened configuration by server name"}},mcpServer:{enabled:{label:"Enabled",desc:"Toggle MCP server availability"},type:{label:"Connection Type",desc:"Choose how to connect to the server"},command:{label:"Command",desc:"Local command launch"},args:{label:"Arguments",desc:"Command arguments"},url:{label:"Server URL",desc:"Remote MCP server address"},headers:{label:"Headers",desc:"Headers included for the connection"},env:{label:"Environment",desc:"Environment variables for the MCP server"}},shortcuts:{newSession:{label:"New Session",desc:"Global shortcut for creating a new session"},openConfig:{label:"Open Config",desc:"Shortcut for opening the config view"},sendMessage:{label:"Send Message",desc:"Shortcut for sending a message"},clearInput:{label:"Clear Input",desc:"Shortcut for clearing the input"},switchModel:{label:"Switch Model",desc:"Open the model selector and navigate it with the keyboard"},switchEffort:{label:"Switch Reasoning Effort",desc:"Open the effort selector and navigate it with the keyboard"},switchPermissionMode:{label:"Switch Permission Mode",desc:"Open the permission menu and navigate it with the keyboard"}}},options:{language:{zh:"Chinese",en:"English"},conversation:{friendly:"Friendly",programmatic:"Programmatic"},mcp:{command:"Command",sse:"SSE",http:"HTTP"}},sectionGroups:{base:"Base Configuration",permissions:"Tool Permissions",env:"Environment Variables",items:"Entry Configuration",plugins:"Plugin Configuration"},groups:{config:"Configuration",app:"Application"},about:{software:"Software Info",version:"Version",lastRelease:"Last Release",checkUpdate:"Check Updates",docs:"Documentation",contact:"Contact Us",feedback:"Feedback",unknown:"Unknown"},sections:{general:"General",conversation:"Conversation",models:"Models",modelServices:"Model Services",channels:"Channels",adapters:"Adapters",plugins:"Plugins",mcp:"MCP",shortcuts:"Shortcuts",appearance:"Appearance",experiments:"Experiments",about:"About"},appSettings:{announcements:{label:"Show announcements",desc:"Show announcements when creating a new session"}}},iGe={common:Zqe,automation:Qqe,benchmark:Jqe,knowledge:eGe,chat:tGe,config:nGe},sGe={newChat:"新建会话",search:"搜索标题或 ID...",sessions:"会话列表",knowledgeBase:"项目知识库",archive:"归档",archivedSessions:"已归档会话",theme:"主题模式",themeLight:"浅色模式",themeDark:"深色模式",themeSystem:"跟随系统",settings:"设置",language:"语言",automation:"自动化任务",benchmark:"评测",delete:"删除",deleteSession:"删除会话",deleteSessionConfirm:"确定要删除这个会话吗?此操作不可撤销。",restore:"还原",restoreSuccess:"还原成功",restoreFailed:"还原失败",batchRestore:"批量还原",batchRestoreSuccess:"批量还原成功",batchRestoreFailed:"部分会话还原失败",cancel:"取消",continue:"继续",confirm:"确定",confirmAction:"确认{{action}}",startNewChat:"暂时没有未归档的历史会话,聊点什么吧",backToHome:"返回首页",noData:"暂无数据",noSessions:"未找到匹配的会话",noArchivedSessions:"暂无已归档会话",sessionNotFound:"会话不存在",expand:"展开侧边栏",dragResize:"拖动调整宽度",selectOrCreateSession:"请选择或新建会话开始对话",batchMode:"批量操作",cancelBatch:"取消批量操作",batchArchive:"批量归档",archiveConfirm:"确定要归档选中的 {{count}} 个会话吗?",alreadyInNewChat:"当前已是新建会话",creatingChat:"正在新建会话",batchDelete:"批量删除",batchDeleteSuccess:"批量删除成功",batchDeleteFailed:"部分会话删除失败",selectedCount:"已选中 {{count}} 个会话",selectAll:"全选",deselectAll:"取消全选",collapse:"收起侧边栏",close:"关闭",sort:"排序规则",allTags:"全部标签",allAdapters:"全部适配器",searchActions:"搜索与筛选",expandChildren:"展开子会话",collapseChildren:"收起子会话",childSummary:"{{count}} 个子会话",childStatusItem:"{{count}} {{status}}",deleteConfirm:"确定要删除选中的 {{count}} 个会话吗?",deleteSuccess:"删除成功",deleteFailed:"删除失败",operationFailed:"操作失败",copyFailed:"复制失败",star:"收藏",unstar:"取消收藏",rename:"重命名",renameSession:"重命名会话",addTag:"标签",actions:"操作",copySessionLink:"复制会话链接",copySessionId:"复制会话 ID",copyResumeCommand:"复制控制台指令",moreActions:"更多操作",sessionLinkCopied:"会话链接已复制到剪贴板",resumeCommandCopied:"控制台指令已复制到剪贴板",sessionIdCopied:"Session ID 已复制到剪贴板",doubleClickToCopy:"双击复制 Session ID",status:{running:"进行中",completed:"已完成",failed:"失败",terminated:"已终止",waiting_input:"等待输入"}},rGe={title:"自动化任务",newRule:"新建规则",creatingRule:"正在新建",editRule:"编辑规则",searchRule:"搜索规则",favorite:"收藏",unfavorite:"取消收藏",toggleEnabled:"启用/停用",noDescription:"暂无说明",runSearch:"搜索运行记录",statusAll:"全部状态",timeAll:"全部时间",time24h:"近 24 小时",time7d:"近 7 天",time30d:"近 30 天",sortDesc:"时间最新",sortAsc:"时间最早",triggerCount:"{{count}} 个触发条件",basicDesc:"用于说明规则用途与开关启停",sectionBasic:"基本信息",sectionTriggers:"触发条件",sectionTasks:"任务内容",ruleName:"规则名称",ruleNameRequired:"请输入规则名称",ruleDescription:"规则介绍",immediateRun:"立即触发",ruleType:"触发类型",ruleTypeRequired:"请选择触发类型",typeInterval:"时间间隔",typeWebhook:"接口触发",typeCron:"Cron 周期",intervalMinutes:"间隔(分钟)",intervalRequired:"请输入时间间隔",webhookKey:"Webhook Key",webhookKeyHint:"留空自动生成",cronExpressionLabel:"Cron 表达式",cronExpressionRequired:"请输入 Cron 表达式",cronExpressionHint:"例如:0 9 * * 1",cronExpression:"Cron:{{expression}}",cronPreset:"常用预设",cronPresetHint:"选择常用 Cron",cronPresetHourly:"每小时整点",cronPresetDaily9:"每天 09:00",cronPresetWeekday9:"工作日 09:00",cronPresetWeekend10:"周末 10:00",cronInputHint:"可直接输入 Cron 表达式,或用下方每周配置生成表达式",weeklyDay:"每周日期",weeklyTime:"时间(HH:mm)",weeklyTimeHint:"例如:09:00",weekdaySun:"周日",weekdayMon:"周一",weekdayTue:"周二",weekdayWed:"周三",weekdayThu:"周四",weekdayFri:"周五",weekdaySat:"周六",triggerAny:"满足任意一个条件即可触发任务",taskAll:"触发后同时执行以下任务",addTrigger:"添加触发条件",addTask:"添加任务",remove:"移除",taskDefaultTitle:"任务 {{index}}",taskTitle:"任务标题",taskTitlePlaceholder:"可选,用于区分多个任务",taskIndex:"第 {{index}} 个任务",taskCount:"{{count}} 个任务",taskUnknown:"未命名任务",webhookUrl:"Webhook 地址",prompt:"自动任务内容",promptRequired:"请输入自动任务内容",trigger:"触发方式",webhookTrigger:"Webhook",intervalEvery:"每 {{minutes}} 分钟",enabled:"启用",ruleStatus:"规则状态",lastRunLabel:"最近运行",lastRun:"最近运行",lastRunAt:"最近运行:{{time}}",noRunYet:"暂无运行记录",emptyRules:"暂无自动化任务",selectRule:"请选择一个自动化任务",ruleId:"规则 ID",createdAt:"创建时间",enabledOn:"已启用",enabledOff:"已停用",noTriggers:"暂无触发条件",noTasks:"暂无任务",runHistory:"运行记录",runTime:"运行时间",runStatus:"状态",runSummary:"摘要",session:"会话",relatedSession:"相关会话",openSession:"打开会话",noRuns:"暂无运行记录",actions:"操作",run:"立即运行",edit:"编辑",delete:"删除",copy:"复制",webhookCopied:"Webhook 已复制",created:"规则已创建",updated:"规则已更新",deleted:"规则已删除",saveFailed:"保存失败",deleteFailed:"删除失败",toggleFailed:"更新失败",runStarted:"已启动任务",runFailed:"启动失败"},oGe={title:"评测",sidebarHint:"选择 category 和 case,查看任务目标并触发跑分。",category:"分类",categoryCount:"{{count}} 个分类",caseCount:"{{count}} 个用例",caseTree:"用例树",expandAll:"展开全部",collapseAll:"折叠全部",runSelected:"运行已选 ({{count}})",runAll:"运行全部",caseId:"用例:",searchPlaceholder:"搜索分类、标题或摘要",emptyCases:"暂无 benchmark 用例",noSummary:"暂无摘要",configTitle:"用例配置",baseCommit:"基线 Commit",setupCommand:"初始化命令",testCommand:"测试命令",timeoutSec:"超时(秒)",runState:"运行状态",noActiveRun:"当前没有运行中的 benchmark 任务",runStatus:"运行状态",progress:"进度",lastMessage:"最新消息",taskGoal:"任务目标",resultTitle:"最近结果",noResult:"暂无结果",finalScore:"总分",lastRunAt:"最近运行",testScore:"测试分",goalScore:"目标分",referenceScore:"参考分",changedFiles:"改动文件数",noChangedFiles:"暂无改动文件记录",testExitCode:"测试退出码",durationMs:"耗时(毫秒)",issues:"问题",noIssues:"暂无问题",concurrency:"并发",runCategory:"运行当前分类",runCase:"运行当前用例",runStarted:"Benchmark 已启动",categoryRunStarted:"分类跑分已启动",runCompleted:"Benchmark 已完成",runFailed:"Benchmark 运行失败",status:{pass:"通过",partial:"部分完成",fail:"失败"}},aGe={title:"项目知识库",subtitle:"管理当前项目的技能、实体、流程与规则",tabs:{skills:"技能",entities:"实体",flows:"流程",rules:"规则"},actions:{refresh:"刷新",refreshed:"已刷新",import:"导入",expand:"展开",collapse:"收起"},filters:{search:"搜索名称、描述或参数",tags:"按标签过滤",noResults:"没有匹配的结果"},meta:{params:"{{count}} 个参数",always:"常驻",skills:"技能",rules:"规则",skillsCount:"技能 {{count}}",rulesCount:"规则 {{count}}"},skills:{title:"技能库",desc:"维护可复用的技能定义与调用说明。",empty:"暂未发现技能。",create:"新建技能",createHint:"请在 .ai/skills 中创建技能文件,保存后刷新页面。",importHint:"请将技能文件导入至 .ai/skills,保存后刷新页面。"},entities:{title:"实体库",desc:"管理项目内的角色、组件或领域实体。",empty:"暂未发现实体。",create:"新建实体",createHint:"请创建实体定义文件,保存后刷新页面。",importHint:"请导入实体定义文件,保存后刷新页面。"},flows:{title:"流程库",desc:"管理项目流程与参数定义。",empty:"暂未发现流程。",noContent:"暂无流程定义内容",create:"新建流程",createHint:"请在 .ai/specs 中创建流程文件,保存后刷新页面。",importHint:"请将流程文件导入至 .ai/specs,保存后刷新页面。"},rules:{title:"规则库",desc:"维护项目规范、约束与执行规则。",empty:"暂未发现规则。",create:"新建规则",createHint:"请在 .ai/rules 中创建规则文件,保存后刷新页面。",importHint:"请将规则文件导入至 .ai/rules,保存后刷新页面。"}},lGe={titleUpdated:"标题已更新",titleUpdateFailed:"标题更新失败",clickToEditTitle:"点击编辑标题",inputPlaceholder:"输入消息...",send:"发送",thinking:"思考中...",stop:"停止",result:"结果",sessionActive:"会话进行中",selectModel:"选择模型开始聊天",modelSelectPlaceholder:"选择模型",modelSearchPlaceholder:"搜索模型或服务",modelUnavailable:"暂无可用模型",modelConfigRequired:"请先在配置中添加模型服务后再开始会话",modelConfigRequiredTitle:"需要先配置模型服务",modelConfigRequiredHelp:"至少添加一个模型服务后,再回到输入框重新发送消息。",connectionErrorTitle:"连接异常",connectionClosedTitle:"连接已断开",sessionErrorTitle:"任务失败",connectionError:"WebSocket 连接失败,请检查服务状态后重试",connectionClosed:"WebSocket 连接已关闭,请重试",connectionErrorHelp:"当前流式更新还没恢复就中断了。重试连接后可以重新订阅这个会话的实时输出。",connectionClosedHelp:"当前消息流意外结束了。重试连接后,可以继续接收这个会话后续的新消息。",sessionErrorHelp:"可以先检查最近一次工具输出或终端日志,再决定是否从最近一条用户消息继续。",sessionErrorCode:"错误码:{{code}}",retryConnection:"重试连接",debugMockLabel:"调试预览",debugMockConnectionErrorMessage:"无法连上当前会话的消息流,WebSocket 握手在收到任何更新前就超时了。",debugMockConnectionClosedMessage:"assistant 已经开始回复,但连接中途断开;在重新连接前,不会再收到新的 token。",debugMockSessionErrorMessage:"runtime 在等待下游工具结果时触发了会话超时,这一轮任务已经停止。",permissionRequestBadge:"权限请求",permissionRequestTitleWithTool:"正在请求使用【{{tool}}】的调用权限,请选择通过",permissionSubject:"审批范围",permissionProjectConfig:"项目配置",permissionCurrentMode:"当前模式",permissionSuggestedMode:"建议模式",permissionDeniedTools:"受限工具",permissionReasons:"原因",permissionExpandOptions:"展开更多选项",permissionCollapseOptions:"收起更多选项",tooltipSlashCommands:"快捷指令",tooltipMentionAgents:"提及代理",tooltipInjectContext:"注入上下文",tooltipUploadImages:"上传图片",tooltipReferenceActions:"更多",referenceActionsShortcutTooltip:"更多 / 权限模式",modelShortcutTooltip:"切换模型",modelAddRecommendation:"加入推荐模型",modelAlreadyRecommended:"已在推荐模型中",modelRemoveRecommendation:"从推荐模型中移除",effortShortcutTooltip:"切换推理强度",sendShortcutTooltip:"发送消息",adapterLockedTooltip:"创建会话后适配器会锁定",referenceActionsShort:"更多",referenceActionsTitle:"更多",referenceActionsDescription:"添加照片、文件和权限相关设置。",referenceAttachments:"添加照片和文件",referenceAttachmentsDescription:"选择图片或项目文件作为引用内容。",referencePermission:"权限模式",referencePermissionDescription:"控制工具执行前的授权策略。",referenceImage:"图片",referenceImageDescription:"从本地选择图片并附在消息中。",referenceFile:"文件",referenceFileDescription:"从当前项目目录树中选择要引用的文件。",effortSelectPlaceholder:"推理强度",effortLabels:{default:"默认",low:"低",medium:"中",high:"高",max:"最高"},permissionModeSelectPlaceholder:"权限模式",assetWarningsTitle:"兼容性提示",assetWarningsCount:"{{count}} 个资产告警",assetWarningsMore:"还有 {{count}} 条",selectionWarningsTitle:"模型路由提示",selectionWarningsCount:"{{count}} 个模型告警",selectionWarningReasonExcluded:"该模型被适配器规则排除了",selectionWarningReasonNotIncluded:"该模型不在适配器允许列表中",selectionWarningFallback:"适配器 {{adapter}} 已将模型从 {{requestedModel}} 切换到 {{resolvedModel}},原因:{{reason}}。",modelGroupBuiltin:"{{adapter}} 内置模型",modelGroupServices:"模型服务",imageTooLarge:"图片大小不能超过 5MB",imageReadFailed:"图片读取失败",imageNotSupportedInInteraction:"当前交互不支持图片",fileNotSupportedInInteraction:"当前交互不支持文件上下文",contextPickerTitle:"引用文件",contextPickerDescription:"从当前项目目录树中选择一个或多个文件。",contextPickerConfirm:"引用文件",contextPickerLoading:"正在加载项目目录树...",contextPickerEmpty:"当前目录下没有可选文件",contextPickerLoadFailed:"项目目录树加载失败",modelGroupRecommended:"推荐模型",modelMoreModels:"更多模型",availableTools:"可用工具",availableToolsEmpty:"当前会话没有可展示的工具。",toolGroupChromeDevtools:"ChromeDevtools",toolGroupSystem:"系统",toolsCount:"{{count}} 个工具",usedTools:"使用了 {{count}} 个工具",debugSessionId:"会话",debugType:"类型",debugUuid:"UUID",debugLeafUuid:"Leaf",debugAdapter:"适配器",debugModel:"模型",debugEffort:"推理强度",debugVersion:"版本",debugTools:"工具数",debugAgents:"代理数",debugCwd:"目录",debugTags:"标签",debugView:"视图",debugStarred:"收藏",debugArchived:"归档",debugEnable:"开启调试模式",debugDisable:"关闭调试模式",debugEnabledValue:"开启",debugDisabledValue:"关闭",debugSectionTitle:"调试会话信息",debugModeTitle:"调试模式已开启",debugModeDescription:"当前 URL 带有 debug query,所以这里会展示平时隐藏的会话元信息。",viewInitInfo:"连续点击标题 5 次切换调试模式",viewHistory:"历史",viewTimeline:"时序",viewTerminal:"终端",viewSettings:"配置",gitBranchSwitcher:"切换分支",gitOperations:"Git 操作",gitWorktree:"Worktree",gitDetachedHead:"DETACHED",gitSearchBranches:"搜索本地或远程分支",gitBranchesLocal:"本地分支",gitBranchesWorktrees:"其他 worktree",gitBranchesRemote:"远程分支",gitBranchCheckedOutInOtherWorktree:"已在 {{path}}",gitRemoteBranchCheckedOutInOtherWorktree:"本地分支已在 {{path}}",gitNoBranches:"没有匹配的分支",gitCreateBranch:"创建分支",gitCreateBranchWithName:"创建分支 {{branch}}",gitSwitchBranchSuccess:"已切换到 {{branch}}",gitCreateBranchSuccess:"已创建并切换到 {{branch}}",gitCommitShort:"提交",gitCommitAllChanges:"提交全部变更",gitCommitDialogTitle:"提交全部变更",gitCommitDescription:"会先暂存当前仓库的全部变更,再执行提交。",gitCommitPanelTitle:"提交更改",gitCommitPanelBranch:"分支",gitCommitPanelChanges:"更改",gitChangedFilesCount:"{{count}} 个文件",gitCommitIncludeUnstagedChanges:"包含未暂存的更改",gitCommitIncludeUnstagedChangesDescription:"带上未暂存和未跟踪文件。",gitCommitOnlyStagedChangesDescription:"只提交已暂存内容。",gitCommitSkipHooks:"跳过 Git hooks",gitCommitSkipHooksDescription:"跳过 pre-commit / commit-msg。",gitCommitAmend:"修订最近一次提交",gitCommitAmendDescription:"并入最近一次提交。当前:{{subject}}",gitCommitAmendUnavailableDescription:"当前仓库还没有可修订的提交。",gitCommitMessageLabel:"提交消息",gitCommitMessageOptional:"可选",gitCommitMessagePlaceholder:"输入提交说明",gitCommitMessagePlaceholderAmend:"留空则保留上一条提交消息",gitCommitMessageAmendHint:"留空会沿用最近一次提交消息。",gitCommitMessageRequired:"请输入提交说明",gitCommitSuccess:"提交成功",gitCommitNoChanges:"当前没有可提交的更改",gitCommitNoStagedChanges:"当前没有已暂存的更改",gitCommitNextStep:"后续步骤",gitCommitAndPush:"提交并推送",gitCommitAndPushSuccess:"提交并推送成功",gitCommitPushFailedAfterCommit:"提交已完成,但推送失败:{{error}}",gitAmendSuccess:"修订成功",gitAmendAndPushSuccess:"修订并推送成功",gitAmendUnavailable:"当前没有可修订的提交",gitForcePush:"强制推送",gitForcePushDescription:"用 force-with-lease 覆盖远端。",gitForcePushHint:"仅远端没有新提交时覆盖。",gitPushNeedsSyncOrForce:"当前分支落后上游,请先同步或开启强制推送。",gitPushShort:"推送",gitPush:"推送当前分支",gitPushPanelTitle:"推送更改",gitPushPanelUpstream:"上游",gitPushPanelUpstreamHint:"首次推送会自动设置上游。",gitForcePushSuccess:"强制推送成功",gitPushSuccess:"推送成功",gitSyncShort:"同步",gitSync:"同步当前分支",gitSyncSuccess:"同步成功",gitStatusDirty:"有未提交变更",gitStatusClean:"工作区干净",gitUpstreamStatus:"领先 {{ahead}} / 落后 {{behind}}",gitNoUpstream:"未设置上游",gitLocalBranch:"本地",gitRemoteBranch:"远程 · {{remote}}",deleteSessionTitle:"删除会话",deleteSessionDesc:"删除会话会永久移除全部消息与上下文,请确认后再继续。",timelineEmpty:"暂无事件记录",timelineTask:"子任务",timelineStatus:"状态",timelineTiming:"时序",timelineStart:"开始",timelineEventName:"事件名",timelineInput:"输入",timelineOutput:"输出",timelineEmptyValue:"—",timeline:{mainTasks:"主任务",mainStart:"对话启动",mainEnd:"对话结束",startTasks:"创建任务",askUserQuestion:"询问问题",edit:"编辑",resumeTask:"继续任务",userPrompt:"用户提示",merge:"合并",merged:"已合并",donePrefix:"完成",taskStart:"创建任务",taskEnd:"结束",viewGit:"Git 视图",viewGantt:"甘特图",eventListTitle:"事件列表",eventListSearch:"搜索事件",ganttTitle:"任务时序",ganttMainSection:"主任务",ganttTasksSection:"任务",allTasksDone:"全部任务完成",userAnswer:"用户回答",receiveReply:"收到回复",destroyLabel:"销毁 {{name}}({{end}})",rangeLabel:"{{name}}({{start}} → {{end}})"},messageActions:{copy:"复制原文",copySuccess:"消息原文已复制",copyFailed:"复制消息原文失败",copyLink:"复制消息链接",copyLinkSuccess:"消息链接已复制",copyId:"复制消息 ID",copyIdSuccess:"消息 ID 已复制",copyJson:"复制消息结构 JSON",copyJsonSuccess:"消息结构 JSON 已复制",copyTimestamp:"复制时间戳",copyTimestampSuccess:"时间戳已复制",edit:"编辑消息",editInProgress:"已有一条消息正在编辑,请先发送或取消当前编辑",saveEdit:"保存并分叉",confirmInline:"确认",recall:"撤回到此处",fork:"从此处分叉",recallConfirmTitle:"确认撤回到此处",recallConfirmContent:"后续消息会被回退到这条消息之后,是否继续?",forkConfirmTitle:"确认从此处分叉",forkConfirmContent:"将基于这条消息创建一个新的会话分支,是否继续?"},messageFooter:{tokens:"Token 数",copyTimestampSuccess:"ISO 时间已复制到剪贴板",copyTimestampTitle:"双击复制 ISO 时间并在控制台输出消息结构"},turnProcessedDuration:"已处理 {{duration}}",turnDurationUnderSecond:"1 秒内",turnDurationHours:"{{count}} 小时",turnDurationMinutes:"{{count}} 分",turnDurationSeconds:"{{count}} 秒",turnSummaryCount:"{{count}} 条中间消息",turnExpandAction:"展开",turnCollapseAction:"收起",hint:"按 Enter 发送,Shift + Enter 换行,输入 / @ # 触发补全",newSessionGuide:{loading:"正在加载...",announcements:{title:"最新公告"},specs:{title:"已有流程",params:"{{count}} 个参数",empty:"暂未发现流程,放入 .ai/specs/*.md 即可展示。",create:"快速创建流程",createToast:"请在 .ai/specs 下创建流程文件,保存后刷新页面。"},entities:{title:"已有实体",empty:"暂未发现实体,加入实体定义文件后即可展示。",create:"快速创建实体",createToast:"请创建实体定义文件,保存后刷新页面。"},help:{title:"一些帮助",item1:"流程文件支持 name/description/params 等元信息,便于识别和调用",item2:"实体可使用 index.json 或 README.md 描述能力与职责",item3:"创建完成后刷新页面即可出现在这里",footer:"需要更多引导时,可在流程描述中写明使用方式"}},todo:{noTasks:"未规划任务",progress:"任务进度: {{completed}}/{{total}} 已完成"},tools:{read:"读取文件",write:"写入文件",bash:"Bash",getTaskInfo:"任务详情",listTasks:"任务列表",listTasksEmpty:"暂无任务",startTasks:"启动任务",startTasksBackground:"后台任务",startTasksForeground:"前台任务",startTasksEmpty:"未提供任务",startTasksStarted:"已启动",startTasksFailed:"失败",startTasksLogs:"任务日志",task:"任务",taskCount:"{{count}} 个任务",taskExitCode:"退出码: {{code}}",writeSuccess:"写入成功",writeFailed:"写入失败",askUserQuestion:"询问问题",globTool:"Glob",grepTool:"Grep",editTool:"编辑文件",lsTool:"浏览目录",notebookEdit:"编辑 Notebook",webFetch:"抓取网页",webSearch:"网页搜索",booleanOn:"开启",booleanOff:"关闭",diffSplit:"双栏",diffInline:"单栏",skill:"技能",enterPlanMode:"进入计划模式",exitPlanMode:"退出计划模式",taskCreate:"创建任务",taskGet:"获取任务",taskUpdate:"更新任务",taskList:"列出任务",claudeTask:"Claude 任务",todo:"任务规划",call:"调用",reading:"正在读取文件...",offset:"offset",limit:"limit",timeout:"timeout",runInBackground:"后台执行",dangerouslyDisableSandbox:"禁用沙箱",viewCommand:"查看指令",noParameters:"无参数",groupSummaryCount:"{{name}} {{count}} 次",groupSummaryMoreCount:"+{{count}} 次",singleSelect:"单选",multiSelect:"多选",fields:{activeForm:"当前表述",addBlockedBy:"新增阻塞源",addBlocks:"新增阻塞项",allowedDomains:"允许域名",allowedPrompts:"允许的提示",answers:"回答",args:"参数",blockedDomains:"屏蔽域名",cellId:"单元 ID",cellType:"单元类型",command:"命令",content:"内容",description:"说明",disableSandbox:"禁用沙箱",details:"详情",editMode:"编辑模式",glob:"Glob",ignore:"忽略项",limit:"Limit",maxTurns:"最大轮次",metadata:"元数据",model:"模型",mode:"模式",newSource:"新内容",newString:"新字符串",oldString:"旧字符串",owner:"负责人",offset:"Offset",path:"路径",prompt:"提示词",pushToRemote:"推送到远端",questions:"问题",remoteSession:"远端会话",remoteSessionUrl:"远端会话地址",replaceAll:"全量替换",resume:"恢复",runInBackground:"后台执行",status:"状态",subagentType:"子代理类型",subject:"主题",timeout:"超时",todos:"待办事项"},unknown:"未知工具"},terminal:{connectionError:"终端连接失败,请检查服务状态后重试",exitSummary:"终端已退出,exitCode={{code}},signal={{signal}}",resizePanel:"拖动调整终端高度"},sessionSettings:"会话设置",enterTitle:"输入会话标题...",tags:"标签",addTagPlaceholder:"添加新标签并按回车...",noTags:"暂无标签",title:"标题",newSessionPlaceholder:"输入消息以创建新会话..."},cGe={title:"系统配置",readOnlyHint:"配置支持在线编辑,保存后会写入对应的 json/yaml 配置文件。",loadFailed:"配置加载失败",editHint:"修改后会自动保存到当前来源配置文件,可用于项目或用户级别覆盖。",maskHint:"敏感字段已脱敏展示,保留 ****** 可保持原值。",invalidJson:"JSON 格式错误,请修正后再保存。",saveSuccess:"配置已保存",saveFailed:"配置保存失败",copySuccess:"配置已复制",copyFailed:"复制失败",sources:{project:"项目",user:"用户",projectMissing:"项目(未创建)",userMissing:"用户(未创建)"},actions:{edit:"编辑",save:"保存",cancel:"取消",format:"格式化",copy:"复制"},editor:{addField:"添加字段",addItem:"添加项",remove:"移除",collapse:"折叠",expand:"展开",addAdapter:"添加适配器",addPlugin:"添加插件",addMcpServer:"添加 MCP 服务",addModelService:"添加模型服务",addMarketplace:"添加市场",addEnvVar:"添加环境变量",addHeader:"添加请求头",addEntry:"添加条目",newModelSelectorName:"新增模型选择器",shortcutPlaceholder:"按下快捷键",clearShortcut:"清除快捷键",newModelServiceName:"新增模型服务名称",newChannelName:"新增频道名称",newAdapterName:"新增适配器名称",newPluginName:"新增插件名称",newMcpServerName:"新增 MCP 服务名称",newMarketplaceName:"新增市场名称",newEnvVarName:"新增环境变量名称",newHeaderName:"新增请求头名称",fieldKey:"字段名",fieldValue:"字段值",complexPlaceholder:"复杂结构请使用 JSON 输入",secretPlaceholder:"请输入密钥",itemPlaceholder:"请输入内容",commandPlaceholder:"请输入命令",urlPlaceholder:"请输入地址",multilinePlaceholder:"请输入内容",defaultAdapterPlaceholder:"请选择适配器",defaultModelServicePlaceholder:"请选择模型服务",defaultModelPlaceholder:"请选择模型",titlePlaceholder:"请输入标题",descriptionPlaceholder:"请输入描述",channelType:"频道类型",unknownChannelType:"未知类型",complexValue:"复杂结构",tagsPlaceholder:"输入后回车",types:{string:"文本",number:"数字",boolean:"开关",object:"对象",array:"数组"},effort:{low:"低",medium:"中",high:"高",max:"最高"}},fields:{general:{baseDir:{label:"工作目录",desc:"配置文件和缓存的默认目录"},effort:{label:"默认思考强度",desc:"未指定时默认使用的 effort 等级"},defaultAdapter:{label:"默认适配器",desc:"未指定时使用的适配器"},defaultModelService:{label:"默认模型服务",desc:"未指定时使用的模型服务"},defaultModel:{label:"默认模型",desc:"未指定时使用的模型"},recommendedModels:{label:"建议模型",desc:"用于模型下拉推荐展示的列表"},interfaceLanguage:{label:"界面交互语言",desc:"控制界面显示与交互语言"},modelLanguage:{label:"模型对话语言",desc:"控制模型输出语言"},announcements:{label:"公告",desc:"新建会话时的提示信息"},permissions:{label:"权限",desc:"控制工具与资源的访问策略",allow:{label:"允许"},deny:{label:"禁止"},ask:{label:"询问"}},env:{label:"环境变量",desc:"覆盖或新增的运行环境变量"},notifications:{label:"通知",desc:"会话状态变更时触发通知",disabled:{label:"禁用通知",desc:"关闭后不发送通知"},volume:{label:"提示音量",desc:"0-1 或 0-100,0 为静音"},events:{completed:{label:"完成通知",desc:"会话完成时触发",disabled:{label:"禁用完成通知",desc:"关闭后不发送完成通知"},title:{label:"完成标题",desc:"留空使用默认标题"},description:{label:"完成文案",desc:"留空使用默认文案"},sound:{label:"完成音频",desc:"音频文件路径,留空使用默认音效"}},failed:{label:"失败通知",desc:"会话失败时触发",disabled:{label:"禁用失败通知",desc:"关闭后不发送失败通知"},title:{label:"失败标题",desc:"留空使用默认标题"},description:{label:"失败文案",desc:"留空使用默认文案"},sound:{label:"失败音频",desc:"音频文件路径,留空使用默认音效"}},terminated:{label:"终止通知",desc:"会话终止时触发",disabled:{label:"禁用终止通知",desc:"关闭后不发送终止通知"},title:{label:"终止标题",desc:"留空使用默认标题"},description:{label:"终止文案",desc:"留空使用默认文案"},sound:{label:"终止音频",desc:"音频文件路径,留空使用默认音效"}},waiting_input:{label:"等待输入通知",desc:"会话等待输入时触发",disabled:{label:"禁用等待输入通知",desc:"关闭后不发送等待输入通知"},title:{label:"等待输入标题",desc:"留空使用默认标题"},description:{label:"等待输入文案",desc:"留空使用默认文案"},sound:{label:"等待输入音频",desc:"音频文件路径,留空使用默认音效"}}}}},conversation:{style:{label:"对话风格",desc:"控制助手的对话风格"},customInstructions:{label:"自定义指令",desc:"为对话提供额外的提示与约束"}},models:{items:{label:"模型选择器明细",desc:"按 `service` 或 `service,model` 配置模型元信息;展示元数据如 alias/title/description 仅在 `model` 或 `service,model` 精确匹配时生效"}},modelServices:{items:{label:"服务明细",desc:"按服务名称平铺配置"},item:{title:{label:"展示标题",desc:"用于默认模型服务下拉展示"},description:{label:"展示描述",desc:"用于默认模型服务下拉展示"},apiBaseUrl:{label:"API 地址",desc:"模型服务的 API 基础地址"},apiKey:{label:"API 密钥",desc:"模型服务的访问密钥"},models:{label:"模型列表",desc:"该服务支持的模型名称"},timeoutMs:{label:"超时(毫秒)",desc:"模型服务超时。Codex 会映射为流空闲超时,Claude Code Router 会映射为全局 API 超时。"},maxOutputTokens:{label:"最大输出 Token",desc:"该服务的默认输出上限。Codex 会映射为 maxOutputTokens,Claude Code Router 会映射为 maxtoken transformer。"},extra:{label:"扩展配置",desc:"模型服务扩展参数"}}},adapters:{items:{label:"适配器明细",desc:"按适配器名称平铺配置,公共字段包括 `defaultModel`、`includeModels` 和 `excludeModels`"}},plugins:{items:{label:"插件配置",desc:"按插件名称平铺配置"},enabled:{label:"启用插件",desc:"控制插件启用状态"},marketplaces:{label:"额外插件源",desc:"新增可用的插件市场来源"}},mcp:{mcpServers:{label:"MCP 服务器",desc:"配置 MCP 服务器的连接信息"},defaultIncludeMcpServers:{label:"默认启用列表",desc:"默认启用的 MCP 服务器"},defaultExcludeMcpServers:{label:"默认禁用列表",desc:"默认禁用的 MCP 服务器"},noDefaultVibeForgeMcpServer:{label:"禁用内置 MCP",desc:"不启用内置 VibeForge MCP 服务器"},items:{label:"服务器明细",desc:"按服务器名称平铺配置"}},mcpServer:{enabled:{label:"是否启用",desc:"控制当前 MCP 服务器的启用状态"},type:{label:"连接类型",desc:"选择 MCP 服务器的连接方式"},command:{label:"命令",desc:"本地命令启动方式"},args:{label:"命令参数",desc:"启动命令的参数列表"},url:{label:"服务地址",desc:"远程 MCP 服务地址"},headers:{label:"请求头",desc:"连接时附带的请求头"},env:{label:"环境变量",desc:"为 MCP 服务器注入环境变量"}},shortcuts:{newSession:{label:"新建会话",desc:"创建新会话的全局快捷键"},openConfig:{label:"打开配置",desc:"打开配置页的快捷键"},sendMessage:{label:"发送消息",desc:"发送消息的快捷键"},clearInput:{label:"清空输入框",desc:"清空输入框内容的快捷键"},switchModel:{label:"切换模型",desc:"激活模型选择框并支持键盘切换"},switchEffort:{label:"切换推理强度",desc:"激活推理强度选择框并支持键盘切换"},switchPermissionMode:{label:"切换权限等级",desc:"打开权限模式菜单并支持键盘切换"}}},options:{language:{zh:"中文",en:"English"},conversation:{friendly:"友好",programmatic:"程序化"},mcp:{command:"命令",sse:"SSE",http:"HTTP"}},sectionGroups:{base:"基础配置",permissions:"工具权限",env:"环境变量",items:"明细配置",plugins:"插件配置"},groups:{config:"配置",app:"应用"},about:{software:"软件信息",version:"版本",lastRelease:"最后发布时间",checkUpdate:"检查更新",docs:"帮助文档",contact:"联系我们",feedback:"问题反馈",unknown:"未知"},sections:{general:"通用",conversation:"会话",models:"模型选择器",modelServices:"模型服务",channels:"频道",adapters:"适配器",plugins:"插件",mcp:"MCP",shortcuts:"快捷键",appearance:"外观",experiments:"实验功能",about:"关于"},appSettings:{announcements:{label:"显示公告",desc:"新建会话时展示公告信息"}}},dGe={common:sGe,automation:rGe,benchmark:oGe,knowledge:aGe,chat:lGe,config:cGe};Od.use(aRe).use(Aqe).init({resources:{zh:{translation:dGe},en:{translation:iGe}},fallbackLng:"zh",interpolation:{escapeValue:!1}});var fRe={exports:{}};/*!
27
27
  Copyright (c) 2018 Jed Watson.
28
28
  Licensed under the MIT License (MIT), see
29
29
  http://jedwatson.github.io/classnames
@@ -1449,7 +1449,7 @@ ${e.toString()}`}}class O8{constructor(e=new dD,t=!1,i,s=ehn){this._services=e,t
1449
1449
  `:`\r
1450
1450
  `}};Bae=Bp([Tr(0,kn)],Bae);class hhn{publicLog2(){}}const QM=class QM{constructor(){const e=Ft.from({scheme:QM.SCHEME,authority:"model",path:"/"});this.workspace={id:Z8e,folders:[new IGt({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===QM.SCHEME?this.workspace.folders[0]:null}};QM.SCHEME="inmemory";let Hae=QM;function F8(n,e,t){if(!e||!(n instanceof A8))return;const i=[];Object.keys(e).forEach(s=>{KGt(s)&&i.push([`editor.${s}`,e[s]]),t&&qGt(s)&&i.push([`diffEditor.${s}`,e[s]])}),i.length>0&&n.updateValues(i)}let Wae=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:xge.convert(e),s=new Map;for(const a of i){if(!(a instanceof By))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=s.get(l);c||(c=[],s.set(l,c)),c.push(Js.replaceMove(V.lift(a.textEdit.range),a.textEdit.text))}let r=0,o=0;for(const[a,l]of s)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),o+=1,r+=l.length;return{ariaSummary:N1(Mre.bulkEditServiceSummary,r,o),isApplied:r>0}}};Wae=Bp([Tr(0,Fs)],Wae);class fhn{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return gh(e)}}let Vae=class extends Ndn{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,i)}};Vae=Bp([Tr(0,Ap),Tr(1,ri)],Vae);class ghn{constructor(){this._neverEmitter=new ue,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class mhn extends iae{constructor(){super()}}class phn extends rhn{constructor(){super(new w4t)}}let jae=class extends oae{constructor(e,t,i,s,r,o){super(e,t,i,s,r,o),this.configure({blockMouse:!1})}};jae=Bp([Tr(0,ol),Tr(1,sr),Tr(2,Xv),Tr(3,ci),Tr(4,wh),Tr(5,nn)],jae);const _hn={esmModuleLocation:void 0,label:"editorWorkerService"};let zae=class extends Uoe{constructor(e,t,i,s,r){super(_hn,e,t,i,s,r)}};zae=Bp([Tr(0,Fs),Tr(1,Zz),Tr(2,us),Tr(3,$s),Tr(4,Ct)],zae);class vhn{async playSignal(e,t){}}zn(us,phn,0);zn(kn,A8,0);zn(Zz,$ae,0);zn(KVe,Bae,0);zn(Av,Hae,0);zn(ex,fhn,0);zn(ol,hhn,0);zn(xF,dhn,0);zn(Pge,chn,0);zn(sr,Aae,0);zn(Fp,iw,0);zn(ir,mhn,0);zn(Lu,Ccn,0);zn(Fs,hae,0);zn(sfe,uae,0);zn(nn,Mae,0);zn(xWe,lhn,0);zn(Pv,Oae,0);zn(Bl,uqt,0);zn(Zc,zae,0);zn(hF,Wae,0);zn(sje,ghn,0);zn($l,Pae,0);zn(la,Nae,0);zn(Lh,bQt,0);zn(fs,Fae,0);zn(ci,pN,0);zn(el,Eae,0);zn(Xv,Vae,0);zn(Yv,dae,0);zn(Td,Tae,0);zn(ku,jae,0);zn(wh,fne,0);zn(qv,vhn,0);zn(jfe,ohn,0);zn(QBe,L4t,0);zn(Sme,Otn,0);var mn;(function(n){const e=new dD;for(const[l,c]of m1e())e.set(l,c);const t=new O8(e,!0);e.set(Nt,t);function i(l){s||o({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof Nm?t.invokeFunction(d=>d.get(l)):c}n.get=i;let s=!1;const r=new ue;function o(l){if(s)return t;s=!0;for(const[d,u]of m1e())e.get(d)||e.set(d,u);for(const d in l)if(l.hasOwnProperty(d)){const u=Mn(d);e.get(u)instanceof Nm&&e.set(u,l[d])}const c=IXt();for(const d of c)try{t.createInstance(d)}catch(u){gn(u)}return r.fire(),t}n.initialize=o;function a(l){if(s)return l();const c=new Ee,d=c.add(r.event(()=>{d.dispose(),c.add(l())}));return c}n.withServices=a})(mn||(mn={}));var bhn=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},UNe=function(n,e){return function(t,i){e(t,i,n)}},M3,o1;let Uae=(o1=class{constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,i){var d;const s=Wg(i.context)?i.context:void 0;let r;e?r=this._languageService.getLanguageIdByLanguageName(e):s&&(r=(d=s.getModel())==null?void 0:d.getLanguageId()),r||(r=_u);const o=await EVt(this._languageService,t,r),a=M3._ttpTokenizer?M3._ttpTokenizer.createHTML(o)??o:o,l=document.createElement("span");l.innerHTML=a;const c=l.querySelector(".monaco-tokenized-source");return nr(c)?(zo(c,this.getFontInfo(s)),l):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):r3t({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},M3=o1,o1._ttpTokenizer=Pp("tokenizeToString",{createHTML(e){return e}}),o1);Uae=M3=bhn([UNe(0,kn),UNe(1,ir)],Uae);var tpe=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},es=function(n,e){return function(t,i){e(t,i,n)}};let yhn=0,KNe=!1;function Chn(n){if(!n){if(KNe)return;KNe=!0}WFt(n||Hi.document.body)}let $8=class extends $1{constructor(e,t,i,s,r,o,a,l,c,d,u,h,f,g){const m={...t};m.ariaLabel=m.ariaLabel||Tre.editorViewAccessibleLabel,super(e,m,{},i,s,r,o,c,d,u,h,f),l instanceof pN?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,Chn(m.ariaContainerElement),fjt((p,_)=>i.createInstance(JI,p,{instantHover:_},{})),SUt(a),g.setDefaultCodeBlockRenderer(i.createInstance(Uae))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++yhn,r=Oe.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,r),s}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),fe.None;const t=e.id,i=e.label,s=Oe.and(Oe.equals("editorId",this.getId()),Oe.deserialize(e.precondition)),r=e.keybindings,o=Oe.and(s,Oe.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(f,...g)=>Promise.resolve(e.run(this,...g)),d=new Ee,u=this.getId()+":"+t;if(d.add(Jn.registerCommand(u,c)),a){const f={command:{id:u,title:i},when:s,group:a,order:l};d.add(Vo.appendMenuItem(wt.EditorContext,f))}if(Array.isArray(r))for(const f of r)d.add(this._standaloneKeybindingService.addDynamicKeybinding(u,f,c,o));const h=new G6e(u,i,i,void 0,s,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,h),d.add(xt(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof k8)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};$8=tpe([es(2,Nt),es(3,ri),es(4,fs),es(5,nn),es(6,hc),es(7,ci),es(8,Gs),es(9,sr),es(10,la),es(11,$s),es(12,Ct),es(13,Pf)],$8);let Kae=class extends $8{constructor(e,t,i,s,r,o,a,l,c,d,u,h,f,g,m,p,_){const v={...t};F8(u,v,!1);const y=c.registerEditorContainer(e);typeof v.theme=="string"&&c.setTheme(v.theme),typeof v.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!v.autoDetectHighContrast);const C=v.model;delete v.model,super(e,v,i,s,r,o,a,l,c,d,h,m,p,_),this._configurationService=u,this._standaloneThemeService=c,this._register(y);let w;if(typeof C>"u"){const x=g.getLanguageIdByMimeType(v.language)||v.language||_u;w=Yje(f,g,v.value||"",x,void 0),this._ownsModel=!0}else w=C,this._ownsModel=!1;if(this._attachModel(w),w){const x={oldModelUrl:null,newModelUrl:w.uri};this._onDidChangeModel.fire(x)}}dispose(){super.dispose()}updateOptions(e){F8(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};Kae=tpe([es(2,Nt),es(3,ri),es(4,fs),es(5,nn),es(6,hc),es(7,ci),es(8,Lu),es(9,sr),es(10,kn),es(11,la),es(12,Fs),es(13,ir),es(14,$s),es(15,Ct),es(16,Pf)],Kae);let qae=class extends bp{constructor(e,t,i,s,r,o,a,l,c,d,u,h){const f={...t};F8(l,f,!0);const g=o.registerEditorContainer(e);typeof f.theme=="string"&&o.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&o.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},s,i,r,h,d),this._configurationService=l,this._standaloneThemeService=o,this._register(g)}dispose(){super.dispose()}updateOptions(e){F8(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance($8,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};qae=tpe([es(2,Nt),es(3,nn),es(4,ri),es(5,Lu),es(6,sr),es(7,kn),es(8,ku),es(9,Pv),es(10,Td),es(11,qv)],qae);function Yje(n,e,t,i,s){if(t=t||"",!i){const r=t.indexOf(`
1451
1451
  `);let o=t;return r!==-1&&(o=t.substring(0,r)),qNe(n,t,e.createByFilepathOrFirstLine(s||null,o),s)}return qNe(n,t,e.createById(i),s)}function qNe(n,e,t,i){return n.createModel(e,t,i)}X("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},k(142,"The background color of the diff editor's header"));X("multiDiffEditor.background",wr,k(143,"The background color of the multi file diff editor"));X("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},k(144,"The border color of the multi file diff editor"));var whn=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},GNe=function(n,e){return function(t,i){e(t,i,n)}};class Shn{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let Gae=class extends fe{constructor(e,t,i,s,r){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=s,this._viewModel=tn(this,void 0),this._collapsed=Te(this,l=>{var c;return(c=this._viewModel.read(l))==null?void 0:c.collapsed.read(l)}),this._editorContentHeight=tn(this,500),this.contentHeight=Te(this,l=>(this._collapsed.read(l)?0:this._editorContentHeight.read(l))+this._outerEditorHeight),this._modifiedContentWidth=tn(this,0),this._modifiedWidth=tn(this,0),this._originalContentWidth=tn(this,0),this._originalWidth=tn(this,0),this.maxScroll=Te(this,l=>{const c=this._modifiedContentWidth.read(l)-this._modifiedWidth.read(l),d=this._originalContentWidth.read(l)-this._originalWidth.read(l);return c>d?{maxScroll:c,width:this._modifiedWidth.read(l)}:{maxScroll:d,width:this._originalWidth.read(l)}}),this._elements=ii("div.multiDiffEntry",[ii("div.header@header",[ii("div.header-content",[ii("div.collapse-button@collapseButton"),ii("div.file-path",[ii("div.title.modified.show-file-icons@primaryPath",[]),ii("div.status.deleted@status",["R"]),ii("div.title.original.show-file-icons@secondaryPath",[])]),ii("div.actions@actions")])]),ii("div.editorParent",[ii("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(bp,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=As(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=As(this.editor.getOriginalEditor()).isFocused,this.isFocused=Te(this,l=>this.isModifedFocused.read(l)||this.isOriginalFocused.read(l)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new Ee),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new Q6(this._elements.collapseButton,{});this._register(Yt(l=>{o.element.className="",o.icon=this._collapsed.read(l)?$e.chevronRight:$e.chevronDown})),this._register(o.onDidClick(()=>{var l;(l=this._viewModel.get())==null||l.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Yt(l=>{this._elements.editor.style.display=this._collapsed.read(l)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(l=>{const c=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(c,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(l=>{const c=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(c,void 0)})),this._register(this.editor.onDidContentSizeChange(l=>{zT(c=>{this._editorContentHeight.set(l.contentHeight,c),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),c),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),c)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(l=>{if(this._isSettingScrollTop||!l.scrollTopChanged||!this._data)return;const c=l.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(c)})),this._register(Yt(l=>{var d;const c=(d=this._viewModel.read(l))==null?void 0:d.isActive.read(l);this._elements.root.classList.toggle("active",c)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(r.createScoped(this._elements.actions));const a=this._register(this._instantiationService.createChild(new dD([nn,this._contextKeyService])));this._register(a.createInstance(XO,this._elements.actions,wt.MultiDiffEditorFileToolbar,{actionRunner:this._register(new F8e(()=>{var l,c;return((l=this._viewModel.get())==null?void 0:l.modifiedUri)??((c=this._viewModel.get())==null?void 0:c.originalUri)})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:l=>l.startsWith("navigation")},actionViewItemProvider:(l,c)=>wge(a,l,c)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){zT(s=>{this._viewModel.set(void 0,s),this.editor.setDiffModel(null,s),this._dataStore.clear()});return}const i=e.viewModel.documentDiffItem;if(zT(s=>{var c,d;(c=this._resourceLabel)==null||c.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let r=!1,o=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",r=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",o=!0),this._elements.status.classList.toggle("renamed",r),this._elements.status.classList.toggle("deleted",o),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,(d=this._resourceLabel2)==null||d.setUri(r?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,s),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,s=>{s||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[s,r]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(s,r)}render(e,t,i,s){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const r=e.length-this._headerHeight,o=Math.max(0,Math.min(s.start-e.start,r));this._elements.header.style.transform=`translateY(${o}px)`,zT(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",o>0||i>0),this._elements.header.classList.toggle("collapsed",o===r)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};Gae=whn([GNe(3,Nt),GNe(4,nn)],Gae);class xhn{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const i=[...this._unused.values()];t=i.find(s=>this._itemData.get(s).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var khn=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},XNe=function(n,e){return function(t,i){e(t,i,n)}};let Xae=class extends fe{constructor(e,t,i,s,r,o){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=s,this._parentContextKeyService=r,this._parentInstantiationService=o,this._scrollableElements=ii("div.scrollContent",[ii("div@content",{style:{overflow:"hidden"}}),ii("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new lD({forceIntegerValues:!1,scheduleAtNextAnimationFrame:c=>zc(Rt(this._element),c),smoothScrollDuration:100})),this._scrollableElement=this._register(new lz(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=ii("div.monaco-component.multiDiffEditor",{},[ii("div",{},[this._scrollableElement.getDomNode()]),ii("div.placeholder@placeholder",{},[ii("div")])]),this._sizeObserver=this._register(new _8e(this._element,void 0)),this._objectPool=this._register(new xhn(c=>{const d=this._instantiationService.createInstance(Gae,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return d.setData(c),d})),this.scrollTop=wi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=wi(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=Te(this,c=>{const d=this._viewModel.read(c);if(!d)return{items:[],getItem:g=>{throw new $t}};const u=d.items.read(c),h=new Map;return{items:u.map(g=>{var _;const m=c.store.add(new Ehn(g,this._objectPool,this.scrollLeft,v=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+v})})),p=(_=this._lastDocStates)==null?void 0:_[m.getKey()];return p&&is(v=>{m.setViewState(p,v)}),h.set(g,m),m}),getItem:g=>h.get(g)}}),this._viewItems=this._viewItemsInfo.map(this,c=>c.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(c,d)=>c.reduce((u,h)=>u+h.contentHeight.read(d)+this._spaceBetweenPx,0)),this.activeControl=Te(this,c=>{var h,f;const d=(h=this._viewModel.read(c))==null?void 0:h.activeDiffItem.read(c);return d?(f=this._viewItemsInfo.read(c).getItem(d).template.read(c))==null?void 0:f.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new dD([nn,this._contextKeyService]))),this._contextKeyService.createKey(Y.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(Ya((c,d)=>{const u=this._viewModel.read(c);if(u&&u.contextKeys)for(const[h,f]of Object.entries(u.contextKeys)){const g=this._contextKeyService.createKey(h,void 0);g.set(f),d.add(xt(()=>g.reset()))}}));const a=this._parentContextKeyService.createKey(Y.multiDiffEditorAllCollapsed.key,!1);this._register(Yt(c=>{const d=this._viewModel.read(c);if(d){const u=d.items.read(c).every(h=>h.collapsed.read(c));a.set(u)}})),this._register(Yt(c=>{const d=this._dimension.read(c);this._sizeObserver.observe(d)}));const l=Te(c=>{if(this._viewItems.read(c).length>0)return;const u=this._viewModel.read(c);return!u||u.isLoading.read(c)?k(145,"Loading..."):k(146,"No Changed Files")});this._register(Yt(c=>{const d=l.read(c);this._elements.placeholder.innerText=d??"",this._elements.placeholder.classList.toggle("visible",!!d)})),this._scrollableElements.content.style.position="relative",this._register(Yt(c=>{const d=this._sizeObserver.height.read(c);this._scrollableElements.root.style.height=`${d}px`;const u=this._totalHeight.read(c);this._scrollableElements.content.style.height=`${u}px`;const h=this._sizeObserver.width.read(c);let f=h;const g=this._viewItems.read(c),m=Sfe(g,Ta(p=>p.maxScroll.read(c).maxScroll,yd));if(m){const p=m.maxScroll.read(c);f=h+p.maxScroll}this._scrollableElement.setScrollDimensions({width:h,height:d,scrollHeight:u,scrollWidth:f})})),e.replaceChildren(this._elements.root),this._register(xt(()=>{e.replaceChildren()})),this._register(Yt(c=>{const d=this._viewModel.read(c);if(d&&!d.isLoading.read(c)){if(d.items.read(c).length===0||d.activeDiffItem.read(c))return;this.goToNextChange()}})),this._register(this._register(Yt(c=>{zT(d=>{this.render(c)})})))}reveal(e,t){var c;const i=this._viewItems.get(),s=i.findIndex(d=>{var u,h,f,g;return((u=d.viewModel.originalUri)==null?void 0:u.toString())===((h=e.original)==null?void 0:h.toString())&&((f=d.viewModel.modifiedUri)==null?void 0:f.toString())===((g=e.modified)==null?void 0:g.toString())});if(s===-1)throw new $t("Resource not found in diff editor");const r=i[s];this._viewModel.get().activeDiffItem.setCache(r.viewModel,void 0);let o=0;for(let d=0;d<s;d++)o+=i[d].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:o});const a=(c=r.template.get())==null?void 0:c.editor,l="original"in e?a==null?void 0:a.getOriginalEditor():a==null?void 0:a.getModifiedEditor();l&&(t!=null&&t.range)&&(l.revealRangeInCenter(t.range),Lhn(l,t.range))}goToNextChange(){this._navigateToChange("next")}_navigateToChange(e){var l,c,d,u,h;const t=this._viewItems.get();if(t.length===0)return;const i=(l=this._viewModel.get())==null?void 0:l.activeDiffItem.get(),s=i?t.findIndex(f=>f.viewModel===i):-1;if(s===-1){this._goToFile(0,"first");return}const r=t[s];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0);const o=(c=r.template.get())==null?void 0:c.editor;if((u=(d=o==null?void 0:o.getDiffComputationResult())==null?void 0:d.changes2)!=null&&u.length){const f=((h=o.getModifiedEditor().getPosition())==null?void 0:h.lineNumber)||1,g=o.getDiffComputationResult().changes2;if(e==="next"?g.some(p=>p.modified.startLineNumber>f):g.some(p=>p.modified.endLineNumberExclusive<=f)){o.goToDiff(e);return}}const a=(s+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(a,e==="next"?"first":"last")}_goToFile(e,t){var r,o,a;const i=this._viewItems.get()[e];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0),this.reveal({original:i.viewModel.originalUri,modified:i.viewModel.modifiedUri});const s=(r=i.template.get())==null?void 0:r.editor;if((a=(o=s==null?void 0:s.getDiffComputationResult())==null?void 0:o.changes2)!=null&&a.length)if(t==="first")s.revealFirstDiff();else{const l=s.getDiffComputationResult().changes2.at(-1),c=s.getModifiedEditor();c.setPosition({lineNumber:l.modified.startLineNumber,column:1}),c.revealLineInCenter(l.modified.startLineNumber)}s==null||s.focus()}render(e){const t=this.scrollTop.read(e);let i=0,s=0,r=0;const o=this._sizeObserver.height.read(e),a=It.ofStartAndLength(t,o),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),u=Math.min(d,o),h=It.ofStartAndLength(s,u),f=It.ofStartAndLength(r,d);if(f.isBefore(a))i-=d-u,c.hide();else if(f.isAfter(a))c.hide();else{const g=Math.max(0,Math.min(a.start-f.start,d-u));i-=g;const m=It.ofStartAndLength(t+i,o);c.render(h,g,l,m)}s+=u+this._spaceBetweenPx,r+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};Xae=khn([XNe(4,nn),XNe(5,Nt)],Xae);function Lhn(n,e){const t=n.getModel(),i=n.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{n.getModel()===t&&i.clear()},350)}class Ehn extends fe{constructor(e,t,i,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=s,this._templateRef=this._register(Bhe(this,void 0)),this.contentHeight=Te(this,r=>{var o,a;return((a=(o=this._templateRef.read(r))==null?void 0:o.object.contentHeight)==null?void 0:a.read(r))??this.viewModel.lastTemplateData.read(r).contentHeight}),this.maxScroll=Te(this,r=>{var o;return((o=this._templateRef.read(r))==null?void 0:o.object.maxScroll.read(r))??{maxScroll:0,scrollWidth:0}}),this.template=Te(this,r=>{var o;return(o=this._templateRef.read(r))==null?void 0:o.object}),this._isHidden=tn(this,!1),this._isFocused=Te(this,r=>{var o;return((o=this.template.read(r))==null?void 0:o.isFocused.read(r))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Yt(r=>{var a;const o=this._scrollLeft.read(r);(a=this._templateRef.read(r))==null||a.object.setScrollLeft(o)})),this._register(Yt(r=>{const o=this._templateRef.read(r);!o||!this._isHidden.read(r)||o.object.isFocused.read(r)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.documentDiffItem.modified)==null?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var o;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const i=this.viewModel.lastTemplateData.get(),s=(o=e.selections)==null?void 0:o.map(ft.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:s},t);const r=this._templateRef.get();r&&s&&r.object.editor.setSelections(s)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&is(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,s){this._isHidden.set(!1,void 0);let r=this._templateRef.get();if(!r){r=this._objectPool.getUnusedObj(new Shn(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(r,void 0);const o=this.viewModel.lastTemplateData.get().selections;o&&r.object.editor.setSelections(o)}r.object.render(e,i,t,s)}}var Ihn=function(n,e,t,i){var s=arguments.length,r=s<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(o=n[a])&&(r=(s<3?o(r):s>3?o(e,t,r):o(e,t))||r);return s>3&&r&&Object.defineProperty(e,t,r),r},Nhn=function(n,e){return function(t,i){e(t,i,n)}};let Yae=class extends fe{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=tn(this,void 0),this._viewModel=tn(this,void 0),this._widgetImpl=Te(this,s=>s.store.add(this._instantiationService.createInstance(n_(Xae),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(AI(this._widgetImpl))}};Yae=Ihn([Nhn(2,Nt)],Yae);function Dhn(n,e,t){return mn.initialize(t||{}).createInstance(Kae,n,e)}function Thn(n){return mn.get(ri).onCodeEditorAdd(t=>{n(t)})}function Rhn(n){return mn.get(ri).onDiffEditorAdd(t=>{n(t)})}function Mhn(){return mn.get(ri).listCodeEditors()}function Phn(){return mn.get(ri).listDiffEditors()}function Ohn(n,e,t){return mn.initialize(t||{}).createInstance(qae,n,e)}function Ahn(n,e){const t=mn.initialize(e||{});return new Yae(n,{},t)}function Fhn(n){if(typeof n.id!="string"||typeof n.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return Jn.registerCommand(n.id,n.run)}function $hn(n){if(typeof n.id!="string"||typeof n.label!="string"||typeof n.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=Oe.deserialize(n.precondition),t=(s,...r)=>uo.runEditorCommand(s,r,e,(o,a,l)=>Promise.resolve(n.run(a,...l))),i=new Ee;if(i.add(Jn.registerCommand(n.id,t)),n.contextMenuGroupId){const s={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(Vo.appendMenuItem(wt.EditorContext,s))}if(Array.isArray(n.keybindings)){const s=mn.get(ci);if(!(s instanceof pN))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const r=Oe.and(e,Oe.deserialize(n.keybindingContext));i.add(s.addDynamicKeybindings(n.keybindings.map(o=>({keybinding:o,command:n.id,when:r}))))}}return i}function Bhn(n){return Zje([n])}function Zje(n){const e=mn.get(ci);return e instanceof pN?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:Oe.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),fe.None)}function Hhn(n,e,t){const i=mn.get(ir),s=i.getLanguageIdByMimeType(e)||e;return Yje(mn.get(Fs),i,n,s,t)}function Whn(n,e){const t=mn.get(ir),i=t.getLanguageIdByMimeType(e)||e||_u;n.setLanguage(t.createById(i))}function Vhn(n,e,t){n&&mn.get(Fp).changeOne(e,n.uri,t)}function jhn(n){mn.get(Fp).changeAll(n,[])}function zhn(n){return mn.get(Fp).read(n)}function Uhn(n){return mn.get(Fp).onMarkerChanged(n)}function Khn(n){return mn.get(Fs).getModel(n)}function qhn(){return mn.get(Fs).getModels()}function Ghn(n){return mn.get(Fs).onModelAdded(n)}function Xhn(n){return mn.get(Fs).onModelRemoved(n)}function Yhn(n){return mn.get(Fs).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function Zhn(n){return idn(mn.get(Fs),n)}function Qhn(n,e){const t=mn.get(ir),i=mn.get(Lu);return Yme.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function Jhn(n,e,t){const i=mn.get(ir);return mn.get(Lu).registerEditorContainer(Hi.document.body),Yme.colorize(i,n,e,t)}function efn(n,e,t=4){return mn.get(Lu).registerEditorContainer(Hi.document.body),Yme.colorizeModelLine(n,e,t)}function tfn(n){const e=Qs.get(n);return e||{getInitialState:()=>YI,tokenize:(t,i,s)=>Vfe(n,s)}}function nfn(n,e){Qs.getOrCreate(e);const t=tfn(e),i=Id(n),s=[];let r=t.getInitialState();for(let o=0,a=i.length;o<a;o++){const l=i[o],c=t.tokenize(l,!0,r);s[o]=c.tokens,r=c.endState}return s}function ifn(n,e){mn.get(Lu).defineTheme(n,e)}function sfn(n){mn.get(Lu).setTheme(n)}function rfn(){Mee.clearAllFontInfos()}function ofn(n,e){return Jn.registerCommand({id:n,handler:e})}function afn(n){return mn.get(Yv).registerOpener({async open(t){return typeof t=="string"&&(t=Ft.parse(t)),n.open(t)}})}function lfn(n){return mn.get(ri).registerCodeEditorOpenHandler(async(t,i,s)=>{var a;if(!i)return null;const r=(a=t.options)==null?void 0:a.selection;let o;return r&&typeof r.endLineNumber=="number"&&typeof r.endColumn=="number"?o=r:r&&(o={lineNumber:r.startLineNumber,column:r.startColumn}),await n.openCodeEditor(i,t.resource,o)?i:null})}function cfn(){return{create:Dhn,getEditors:Mhn,getDiffEditors:Phn,onDidCreateEditor:Thn,onDidCreateDiffEditor:Rhn,createDiffEditor:Ohn,addCommand:Fhn,addEditorAction:$hn,addKeybindingRule:Bhn,addKeybindingRules:Zje,createModel:Hhn,setModelLanguage:Whn,setModelMarkers:Vhn,getModelMarkers:zhn,removeAllMarkers:jhn,onDidChangeMarkers:Uhn,getModels:qhn,getModel:Khn,onDidCreateModel:Ghn,onWillDisposeModel:Xhn,onDidChangeModelLanguage:Yhn,createWebWorker:Zhn,colorizeElement:Qhn,colorize:Jhn,colorizeModelLine:efn,tokenize:nfn,defineTheme:ifn,setTheme:sfn,remeasureFonts:rfn,registerCommand:ofn,registerLinkOpener:afn,registerEditorOpener:lfn,AccessibilitySupport:Kre,ContentWidgetPositionPreference:Qre,CursorChangeReason:Jre,DefaultEndOfLine:eoe,EditorAutoIndentStrategy:noe,EditorOption:ioe,EndOfLinePreference:soe,EndOfLineSequence:roe,MinimapPosition:_oe,MinimapSectionHeaderStyle:voe,MouseTargetType:boe,OverlayWidgetPositionPreference:woe,OverviewRulerLane:Soe,GlyphMarginLane:ooe,RenderLineNumbersType:Loe,RenderMinimap:Eoe,ScrollbarVisibility:Noe,ScrollType:Ioe,TextEditorCursorBlinkingStyle:Aoe,TextEditorCursorStyle:Foe,TrackedRangeStickiness:$oe,WrappingIndent:Boe,InjectedTextCursorStops:coe,PositionAffinity:koe,ShowLightbulbIconMode:Toe,TextDirection:Ooe,ConfigurationChangedEvent:NHe,BareFontInfo:R1,FontInfo:XH,TextModelResolvedOptions:i3,FindMatch:hO,ApplyUpdateResult:jR,EditorZoom:Xu,createMultiFileDiffEditor:Ahn,EditorType:nF,EditorOptions:xl}}function dfn(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function J5(n,e){return typeof n=="boolean"?n:e}function YNe(n,e){return typeof n=="string"?n:e}function ufn(n){const e={};for(const t of n)e[t]=!0;return e}function ZNe(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=ufn(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function Zae(n,e,t){e=e.replace(/@@/g,"");let i=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(o,a){s=!0;let l="";if(typeof n[a]=="string")l=n[a];else if(n[a]&&n[a]instanceof RegExp)l=n[a].source;else throw n[a]===void 0?ws(n,"language definition does not contain attribute '"+a+"', used at: "+e):ws(n,"attribute reference '"+a+"' must be a string, used at: "+e);return tw(l)?"":"(?:"+l+")"}),i++;while(s&&i<5);e=e.replace(/\x01/g,"@");const r=(n.ignoreCase?"i":"")+(n.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(ldn(n,e,c),r)),l)}return new RegExp(e,r)}function hfn(n,e,t,i){if(i<0)return n;if(i<e.length)return e[i];if(i>=100){i=i-100;const s=t.split(".");if(s.unshift(t),i<s.length)return s[i]}return null}function ffn(n,e,t,i){let s=-1,r=t,o=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);o&&(o[3]&&(s=parseInt(o[3]),o[2]&&(s=s+100)),r=o[4]);let a="~",l=r;!r||r.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(o=r.match(/^(@|!@|~|!~|==|!=)(.*)$/),o&&(a=o[1],l=o[2]));let c;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const d=ZNe(l.split("|"),n.ignoreCase);c=function(u){return a==="~"?d(u):!d(u)}}else if(a==="@"||a==="!@"){const d=n[l];if(!d)throw ws(n,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!dfn(function(h){return typeof h=="string"},d))throw ws(n,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const u=ZNe(d,n.ignoreCase);c=function(h){return a==="@"?u(h):!u(h)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const d=Zae(n,"^"+l+"$",!1);c=function(u){return a==="~"?d.test(u):!d.test(u)}}else c=function(d,u,h,f){return Zae(n,"^"+Gb(n,l,u,h,f)+"$",!1).test(d)};else if(l.indexOf("$")<0){const d=dv(n,l);c=function(u){return a==="=="?u===d:u!==d}}else{const d=dv(n,l);c=function(u,h,f,g,m){const p=Gb(n,d,h,f,g);return a==="=="?u===p:u!==p}}return s===-1?{name:t,value:i,test:function(d,u,h,f){return c(d,d,u,h,f)}}:{name:t,value:i,test:function(d,u,h,f){const g=hfn(d,u,h,s);return c(g||"",d,u,h,f)}}}function Qae(n,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw ws(n,"a 'token' attribute must be of type string, in rule: "+e);{const i={token:t.token};if(t.token.indexOf("$")>=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw ws(n,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw ws(n,"the next state must be a string value in rule: "+e);{let s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!cdn(n,Gb(n,s,"",[],""))))throw ws(n,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=s}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let s=0,r=t.length;s<r;s++)i[s]=Qae(n,e,t[s]);return{group:i}}else if(t.cases){const i=[];let s=!1;for(const o in t.cases)if(t.cases.hasOwnProperty(o)){const a=Qae(n,e,t.cases[o]);o==="@default"||o==="@"||o===""?i.push({test:void 0,value:a,name:o}):o==="@eos"?i.push({test:function(l,c,d,u){return u},value:a,name:o}):i.push(ffn(n,e,o,a)),s||(s=!xo(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}const r=n.defaultToken;return{hasEmbeddedEndInCases:s,test:function(o,a,l,c){for(const d of i)if(!d.test||d.test(o,a,l,c))return d.value;return r}}}else throw ws(n,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class gfn{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if(typeof t=="string")i=t;else if(t instanceof RegExp)i=t.source;else throw ws(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]==="^",this.name=this.name+": "+i,this.regex=Zae(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=Qae(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function Qje(n,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:n,includeLF:J5(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:J5(e.ignoreCase,!1),unicode:J5(e.unicode,!1),tokenPostfix:YNe(e.tokenPostfix,"."+n),defaultToken:YNe(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function s(o,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!="string")throw ws(t,"an 'include' attribute must be a string at: "+o);if(d[0]==="@"&&(d=d.substr(1)),!e.tokenizer[d])throw ws(t,"include target '"+d+"' is not defined at: "+o);s(o+"."+d,a,e.tokenizer[d])}else{const u=new gfn(o);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(u.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")u.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const h=c[1];h.next=c[2],u.setAction(i,h)}else throw ws(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+o);else u.setAction(i,c[1]);else{if(!c.regex)throw ws(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+o);c.name&&typeof c.name=="string"&&(u.name=c.name),c.matchOnlyAtStart&&(u.matchOnlyAtLineStart=J5(c.matchOnlyAtLineStart,!1)),u.setRegex(i,c.regex),u.setAction(i,c.action)}a.push(u)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw ws(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const o in e.tokenizer)if(e.tokenizer.hasOwnProperty(o)){t.start||(t.start=o);const a=e.tokenizer[o];t.tokenizer[o]=new Array,s("tokenizer."+o,t.tokenizer[o],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw ws(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const r=[];for(const o of e.brackets){let a=o;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw ws(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+`
1452
- hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:dv(t,a.open),close:dv(t,a.close)});else throw ws(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function mfn(n){$I.registerLanguage(n)}function pfn(){let n=[];return n=n.concat($I.getLanguages()),n}function _fn(n){return mn.get(ir).languageIdCodec.encodeLanguageId(n)}function vfn(n,e){return mn.withServices(()=>{const i=mn.get(ir).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function bfn(n,e){return mn.withServices(()=>{const i=mn.get(ir).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function yfn(n,e){if(!mn.get(ir).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return mn.get($s).register(n,e,100)}class Cfn{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return V2.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new hz(s.tokens,s.endState)}}class V2{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<s&&(l=s),i[r]=new LO(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const r=t.tokenize(i,s),o=V2._toClassicTokens(r.tokens,e);let a;return r.endState.equals(s)?a=s:a=r.endState,new xfe(o,a)}tokenize(e,t,i){return V2.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let c=0,d=t.length;c<d;c++){const u=t[c],h=s.match(i,u.scopes)|1024;if(o>0&&r[o-1]===h)continue;let f=u.startIndex;c===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=h,a=f}const l=new Uint32Array(o);for(let c=0;c<o;c++)l[c]=r[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let o;return s.endState.equals(i)?o=i:o=s.endState,new hz(r,o)}}function wfn(n){return typeof n.getInitialState=="function"}function Sfn(n){return"tokenizeEncoded"in n}function Jje(n){return n&&typeof n.then=="function"}function xfn(n){const e=mn.get(Lu);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=Ne.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function eze(n,e){return Sfn(e)?new Cfn(n,e):new V2(n,e,mn.get(ir),mn.get(Lu))}function npe(n,e){const t=new CWt(async()=>{const i=await Promise.resolve(e.create());return i?wfn(i)?eze(n,i):new O2(mn.get(ir),mn.get(Lu),n,Qje(n,i),mn.get(kn)):null});return Qs.registerFactory(n,t)}function kfn(n,e){if(!mn.get(ir).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Jje(e)?npe(n,{create:()=>e}):Qs.register(n,eze(n,e))}function Lfn(n,e){const t=i=>new O2(mn.get(ir),mn.get(Lu),n,Qje(n,i),mn.get(kn));return Jje(e)?npe(n,{create:()=>e}):Qs.register(n,t(e))}function Efn(n,e){return mn.get(Ct).referenceProvider.register(n,e)}function Ifn(n,e){return mn.get(Ct).renameProvider.register(n,e)}function Nfn(n,e){return mn.get(Ct).newSymbolNamesProvider.register(n,e)}function Dfn(n,e){return mn.get(Ct).signatureHelpProvider.register(n,e)}function Tfn(n,e){return mn.get(Ct).hoverProvider.register(n,{provideHover:async(i,s,r,o)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new V(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new V(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function Rfn(n,e){return mn.get(Ct).documentSymbolProvider.register(n,e)}function Mfn(n,e){return mn.get(Ct).documentHighlightProvider.register(n,e)}function Pfn(n,e){return mn.get(Ct).linkedEditingRangeProvider.register(n,e)}function Ofn(n,e){return mn.get(Ct).definitionProvider.register(n,e)}function Afn(n,e){return mn.get(Ct).implementationProvider.register(n,e)}function Ffn(n,e){return mn.get(Ct).typeDefinitionProvider.register(n,e)}function $fn(n,e){return mn.get(Ct).codeLensProvider.register(n,e)}function Bfn(n,e,t){return mn.get(Ct).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,r,o,a)=>{const c=mn.get(Fp).read({resource:s.uri}).filter(d=>V.areIntersectingOrTouching(d,r));return e.provideCodeActions(s,r,{markers:c,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function Hfn(n,e){return mn.get(Ct).documentFormattingEditProvider.register(n,e)}function Wfn(n,e){return mn.get(Ct).documentRangeFormattingEditProvider.register(n,e)}function Vfn(n,e){return mn.get(Ct).onTypeFormattingEditProvider.register(n,e)}function jfn(n,e){return mn.get(Ct).linkProvider.register(n,e)}function zfn(n,e){return mn.get(Ct).completionProvider.register(n,e)}function Ufn(n,e){return mn.get(Ct).colorProvider.register(n,e)}function Kfn(n,e){return mn.get(Ct).foldingRangeProvider.register(n,e)}function qfn(n,e){return mn.get(Ct).declarationProvider.register(n,e)}function Gfn(n,e){return mn.get(Ct).selectionRangeProvider.register(n,e)}function Xfn(n,e){return mn.get(Ct).documentSemanticTokensProvider.register(n,e)}function Yfn(n,e){return mn.get(Ct).documentRangeSemanticTokensProvider.register(n,e)}function Zfn(n,e){return mn.get(Ct).inlineCompletionsProvider.register(n,e)}function Qfn(n,e){return mn.get(Ct).inlayHintsProvider.register(n,e)}function Jfn(){return{register:mfn,getLanguages:pfn,onLanguage:vfn,onLanguageEncountered:bfn,getEncodedLanguageId:_fn,setLanguageConfiguration:yfn,setColorMap:xfn,registerTokensProviderFactory:npe,setTokensProvider:kfn,setMonarchTokensProvider:Lfn,registerReferenceProvider:Efn,registerRenameProvider:Ifn,registerNewSymbolNameProvider:Nfn,registerCompletionItemProvider:zfn,registerSignatureHelpProvider:Dfn,registerHoverProvider:Tfn,registerDocumentSymbolProvider:Rfn,registerDocumentHighlightProvider:Mfn,registerLinkedEditingRangeProvider:Pfn,registerDefinitionProvider:Ofn,registerImplementationProvider:Afn,registerTypeDefinitionProvider:Ffn,registerCodeLensProvider:$fn,registerCodeActionProvider:Bfn,registerDocumentFormattingEditProvider:Hfn,registerDocumentRangeFormattingEditProvider:Wfn,registerOnTypeFormattingEditProvider:Vfn,registerLinkProvider:jfn,registerColorProvider:Ufn,registerFoldingRangeProvider:Kfn,registerDeclarationProvider:qfn,registerSelectionRangeProvider:Gfn,registerDocumentSemanticTokensProvider:Xfn,registerDocumentRangeSemanticTokensProvider:Yfn,registerInlineCompletionsProvider:Zfn,registerInlayHintsProvider:Qfn,DocumentHighlightKind:toe,CompletionItemKind:Xre,CompletionItemTag:Yre,CompletionItemInsertTextRule:Gre,SymbolKind:Moe,SymbolTag:Poe,IndentAction:loe,CompletionTriggerKind:Zre,SignatureHelpTriggerKind:Roe,InlayHintKind:doe,InlineCompletionTriggerKind:foe,CodeActionTriggerType:qre,NewSymbolNameTag:yoe,NewSymbolNameTriggerKind:Coe,PartialAcceptTriggerKind:xoe,HoverVerbosityAction:aoe,InlineCompletionEndOfLifeReasonKind:uoe,InlineCompletionHintStyle:hoe,FoldingRangeKind:Dx,SelectedSuggestionInfo:M6e,EditDeltaInfo:$O}}xl.wrappingIndent.defaultValue=0;xl.glyphMargin.defaultValue=!1;xl.autoIndent.defaultValue=3;xl.overviewRulerLanes.defaultValue=2;f2.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const gc=Eje();gc.editor=cfn();gc.languages=Jfn();const tze=gc.CancellationTokenSource,PC=gc.Emitter,nze=gc.KeyCode,ize=gc.KeyMod,eb=gc.Position,Vx=gc.Range,sze=gc.Selection,rze=gc.SelectionDirection,af=gc.MarkerSeverity,B8=gc.MarkerTag,oU=gc.Uri,oze=gc.Token,rp=gc.editor,yt=gc.languages,dY=uhe(),jE=globalThis;(dY!=null&&dY.globalAPI||typeof jE.define=="function"&&jE.define.amd)&&(jE.monaco=gc);typeof jE.require<"u"&&typeof jE.require.config=="function"&&jE.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const egn=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:tze,Emitter:PC,KeyCode:nze,KeyMod:ize,MarkerSeverity:af,MarkerTag:B8,Position:eb,Range:Vx,Selection:sze,SelectionDirection:rze,Token:oze,Uri:oU,editor:rp,languages:yt},Symbol.toStringTag,{value:"Module"}));let ipe=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const spe={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},rpe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},aze=new ipe("css",spe,rpe),lze=new ipe("scss",spe,rpe),cze=new ipe("less",spe,rpe);function ope(){return Q(()=>import("./cssMode-MjflyEfm.js"),__vite__mapDeps([97,98]))}yt.onLanguage("less",()=>{ope().then(n=>n.setupMode(cze))});yt.onLanguage("scss",()=>{ope().then(n=>n.setupMode(lze))});yt.onLanguage("css",()=>{ope().then(n=>n.setupMode(aze))});const dze=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:aze,lessDefaults:cze,scssDefaults:lze},Symbol.toStringTag,{value:"Module"}));let tgn=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const ngn={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},aU={format:ngn,suggest:{},data:{useDefaultDataProvider:!0}};function lU(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===RM,documentFormattingEdits:n===RM,documentRangeFormattingEdits:n===RM}}const RM="html",QNe="handlebars",JNe="razor",uze=cU(RM,aU,lU(RM)),ign=uze.defaults,hze=cU(QNe,aU,lU(QNe)),sgn=hze.defaults,fze=cU(JNe,aU,lU(JNe)),rgn=fze.defaults;function ogn(){return Q(()=>import("./htmlMode-B73_3-We.js"),__vite__mapDeps([99,98]))}function cU(n,e=aU,t=lU(n)){const i=new tgn(n,e,t);let s;const r=yt.onLanguage(n,async()=>{s=(await ogn()).setupMode(i)});return{defaults:i,dispose(){r.dispose(),s==null||s.dispose(),s=void 0}}}const gze=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:sgn,handlebarLanguageService:hze,htmlDefaults:ign,htmlLanguageService:uze,razorDefaults:rgn,razorLanguageService:fze,registerHTMLLanguageService:cU},Symbol.toStringTag,{value:"Module"}));let agn=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const lgn={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},cgn={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},mze=new agn("json",lgn,cgn),dgn=()=>pze().then(n=>n.getWorker());function pze(){return Q(()=>import("./jsonMode-C-ftOc5j.js"),__vite__mapDeps([100,98]))}yt.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});yt.onLanguage("json",()=>{pze().then(n=>n.setupMode(mze))});const _ze=Object.freeze(Object.defineProperty({__proto__:null,getWorker:dgn,jsonDefaults:mze},Symbol.toStringTag,{value:"Module"})),ugn="5.9.3";var vze=(n=>(n[n.None=0]="None",n[n.CommonJS=1]="CommonJS",n[n.AMD=2]="AMD",n[n.UMD=3]="UMD",n[n.System=4]="System",n[n.ES2015=5]="ES2015",n[n.ESNext=99]="ESNext",n))(vze||{}),bze=(n=>(n[n.None=0]="None",n[n.Preserve=1]="Preserve",n[n.React=2]="React",n[n.ReactNative=3]="ReactNative",n[n.ReactJSX=4]="ReactJSX",n[n.ReactJSXDev=5]="ReactJSXDev",n))(bze||{}),yze=(n=>(n[n.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",n[n.LineFeed=1]="LineFeed",n))(yze||{}),Cze=(n=>(n[n.ES3=0]="ES3",n[n.ES5=1]="ES5",n[n.ES2015=2]="ES2015",n[n.ES2016=3]="ES2016",n[n.ES2017=4]="ES2017",n[n.ES2018=5]="ES2018",n[n.ES2019=6]="ES2019",n[n.ES2020=7]="ES2020",n[n.ESNext=99]="ESNext",n[n.JSON=100]="JSON",n[n.Latest=99]="Latest",n))(Cze||{}),wze=(n=>(n[n.Classic=1]="Classic",n[n.NodeJs=2]="NodeJs",n))(wze||{});class Sze{constructor(e,t,i,s,r){this._onDidChange=new PC,this._onDidExtraLibsChange=new PC,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(s),this.setModeConfiguration(r),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[i]&&(s=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(s=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let r=this._extraLibs[i];r&&r.version===s&&(delete this._extraLibs[i],this._removedExtraLibs[i]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let r=1;this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:s,version:r}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const hgn=ugn,xze={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},kze=new Sze({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},xze),Lze=new Sze({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},xze),fgn=()=>dU().then(n=>n.getTypeScriptWorker()),ggn=()=>dU().then(n=>n.getJavaScriptWorker());function dU(){return Q(()=>import("./tsMode-BFRFI4ct.js"),[])}yt.onLanguage("typescript",()=>dU().then(n=>n.setupTypeScript(kze)));yt.onLanguage("javascript",()=>dU().then(n=>n.setupJavaScript(Lze)));const Eze=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:bze,ModuleKind:vze,ModuleResolutionKind:wze,NewLineKind:yze,ScriptTarget:Cze,getJavaScriptWorker:ggn,getTypeScriptWorker:fgn,javascriptDefaults:Lze,typescriptDefaults:kze,typescriptVersion:hgn},Symbol.toStringTag,{value:"Module"})),Ize={},uY={};class ape{static getOrCreate(e){return uY[e]||(uY[e]=new ape(e)),uY[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,Ize[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Xt(n){const e=n.id;Ize[e]=n,yt.register(n);const t=ape.getOrCreate(e);yt.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),yt.onLanguageEncountered(e,async()=>{const i=await t.load();yt.setLanguageConfiguration(e,i.conf)})}Xt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Q(()=>import("./abap-DLDM7-KI.js"),[])});Xt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Q(()=>import("./apex-DNDY2TF8.js"),[])});Xt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Q(()=>import("./azcli-Y6nb8tq_.js"),[])});Xt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Q(()=>import("./bat-BwHxbl9M.js"),[])});Xt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Q(()=>import("./bicep-CFznDFnq.js"),[])});Xt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Q(()=>import("./cameligo-Bf6VGUru.js"),[])});Xt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Q(()=>import("./clojure-Dnu-v4kV.js"),[])});Xt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Q(()=>import("./coffee-Bd8akH9Z.js"),[])});Xt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Q(()=>import("./cpp-BbWJElDN.js"),[])});Xt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Q(()=>import("./cpp-BbWJElDN.js"),[])});Xt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Q(()=>import("./csharp-Co3qMtFm.js"),[])});Xt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Q(()=>import("./csp-D-4FJmMZ.js"),[])});Xt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Q(()=>import("./css-DdJfP1eB.js"),[])});Xt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Q(()=>import("./cypher-cTPe9QuQ.js"),[])});Xt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Q(()=>import("./dart-BOtBlQCF.js"),[])});Xt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Q(()=>import("./dockerfile-BG73LgW2.js"),[])});Xt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Q(()=>import("./ecl-BEgZUVRK.js"),[])});Xt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Q(()=>import("./elixir-BkW5O-1t.js"),[])});Xt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Q(()=>import("./flow9-BeJ5waoc.js"),[])});Xt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Q(()=>import("./fsharp-PahG7c26.js"),[])});Xt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagAutoInterpolationDollar)});Xt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagAngleInterpolationDollar)});Xt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagBracketInterpolationDollar)});Xt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagAngleInterpolationBracket)});Xt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagBracketInterpolationBracket)});Xt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagAutoInterpolationDollar)});Xt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Q(()=>import("./freemarker2-Bb3-QAIN.js"),[]).then(n=>n.TagAutoInterpolationBracket)});Xt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Q(()=>import("./go-acbASCJo.js"),[])});Xt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Q(()=>import("./graphql-BxJiqAUM.js"),[])});Xt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Q(()=>import("./handlebars-C4le-2Y6.js"),[])});Xt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Q(()=>import("./hcl-DtV1sZF8.js"),[])});Xt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Q(()=>import("./html-CjNiRs5S.js"),[])});Xt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Q(()=>import("./ini-Kd9XrMLS.js"),[])});Xt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Q(()=>import("./java-CXBNlu9o.js"),[])});Xt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Q(()=>import("./javascript-BDjnqJFP.js"),__vite__mapDeps([101,102]))});Xt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Q(()=>import("./julia-cl7-CwDS.js"),[])});Xt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Q(()=>import("./kotlin-s7OhZKlX.js"),[])});Xt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Q(()=>import("./less-9HpZscsL.js"),[])});Xt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Q(()=>import("./lexon-OrD6JF1K.js"),[])});Xt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Q(()=>import("./lua-Cyyb5UIc.js"),[])});Xt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Q(()=>import("./liquid-COiLZ9py.js"),[])});Xt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Q(()=>import("./m3-B8OfTtLu.js"),[])});Xt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Q(()=>import("./markdown-BFxVWTOG.js"),[])});Xt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Q(()=>import("./mdx-BpL87Gej.js"),[])});Xt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Q(()=>import("./mips-CiqrrVzr.js"),[])});Xt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Q(()=>import("./msdax-DmeGPVcC.js"),[])});Xt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Q(()=>import("./mysql-C_tMU-Nz.js"),[])});Xt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Q(()=>import("./objective-c-BDtDVThU.js"),[])});Xt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Q(()=>import("./pascal-vHIfCaH5.js"),[])});Xt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Q(()=>import("./pascaligo-DtZ0uQbO.js"),[])});Xt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Q(()=>import("./perl-Ub6l9XKa.js"),[])});Xt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Q(()=>import("./pgsql-BlNEE0v7.js"),[])});Xt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Q(()=>import("./php-BBUBE1dy.js"),[])});Xt({id:"pla",extensions:[".pla"],loader:()=>Q(()=>import("./pla-DSh2-awV.js"),[])});Xt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Q(()=>import("./postiats-CocnycG-.js"),[])});Xt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Q(()=>import("./powerquery-tScXyioY.js"),[])});Xt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Q(()=>import("./powershell-COWaemsV.js"),[])});Xt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Q(()=>import("./protobuf-Brw8urJB.js"),[])});Xt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Q(()=>import("./pug-8SOpv6rk.js"),[])});Xt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Q(()=>import("./python-63dBmWV_.js"),[])});Xt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Q(()=>import("./qsharp-Bw9ernYp.js"),[])});Xt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Q(()=>import("./r-j7ic8hl3.js"),[])});Xt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Q(()=>import("./razor-C50tBqEZ.js"),[])});Xt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Q(()=>import("./redis-Bu5POkcn.js"),[])});Xt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Q(()=>import("./redshift-Bs9aos_-.js"),[])});Xt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Q(()=>import("./restructuredtext-CqXO7rUv.js"),[])});Xt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Q(()=>import("./ruby-zBfavPgS.js"),[])});Xt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Q(()=>import("./rust-BzKRNQWT.js"),[])});Xt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Q(()=>import("./sb-BBc9UKZt.js"),[])});Xt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Q(()=>import("./scala-D9hQfWCl.js"),[])});Xt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Q(()=>import("./scheme-BPhDTwHR.js"),[])});Xt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Q(()=>import("./scss-CBJaRo0y.js"),[])});Xt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Q(()=>import("./shell-DiJ1NA_G.js"),[])});Xt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Q(()=>import("./solidity-Db0IVjzk.js"),[])});Xt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Q(()=>import("./sophia-CnS9iZB_.js"),[])});Xt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Q(()=>import("./sparql-CJmd_6j2.js"),[])});Xt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Q(()=>import("./sql-ClhHkBeG.js"),[])});Xt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Q(()=>import("./st-CHwy0fLd.js"),[])});Xt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Q(()=>import("./swift-Bqt4WxQ4.js"),[])});Xt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Q(()=>import("./systemverilog-Bs9z6M-B.js"),[])});Xt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Q(()=>import("./systemverilog-Bs9z6M-B.js"),[])});Xt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Q(()=>import("./tcl-Dm6ycUr_.js"),[])});Xt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Q(()=>import("./twig-Csy3S7wG.js"),[])});Xt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Q(()=>import("./typescript-CBZQRAPv.js"),[])});Xt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Q(()=>import("./typespec-Btyra-wh.js"),[])});Xt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Q(()=>import("./vb-Db0cS2oM.js"),[])});Xt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Q(()=>import("./wgsl-BTesnYfV.js"),[])});Xt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>Q(()=>import("./xml-BpWm6upt.js"),[])});Xt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Q(()=>import("./yaml-CqbJPiIP.js"),[])});var mgn=Object.defineProperty,pgn=(n,e,t)=>e in n?mgn(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Vt=(n,e,t)=>pgn(n,typeof e!="symbol"?e+"":e,t),e$,eDe,t$,hY,n$;function _gn(n){return n.method!==void 0}var tDe;(function(n){function e(t){return t}n.create=e})(tDe||(tDe={}));var ef;(function(n){n.parseError=-32700,n.invalidRequest=-32600,n.methodNotFound=-32601,n.invalidParams=-32602,n.internalError=-32603;function e(r){return-32099<=r&&r<=-32e3}n.isServerError=e;function t(r){if(!e(r))throw new Error("Invalid range for a server error.");return r}n.serverError=t,n.unexpectedServerError=-32e3;function i(r){return!0}n.isApplicationError=i;function s(r){return r}n.applicationError=s,n.genericApplicationError=-320100})(ef||(ef={}));var lpe=class{constructor(){Vt(this,"listeners",new Set),Vt(this,"event",n=>(this.listeners.add(n),{dispose:()=>{this.listeners.delete(n)}}))}fire(n){this.listeners.forEach(e=>e(n))}},vgn=class{constructor(n){Vt(this,"_value"),Vt(this,"eventEmitter"),this._value=n,this.eventEmitter=new lpe}get value(){return this._value}set value(n){this._value!==n&&(this._value=n,this.eventEmitter.fire(n))}get onChange(){return this.eventEmitter.event}};function bgn(n,e){const t=setTimeout(e,n);return{dispose:()=>clearTimeout(t)}}function fY(n,e,t){return n instanceof Set?(n.add(e),{dispose:()=>n.delete(e)}):(n.set(e,t),{dispose:()=>n.delete(e)})}var ygn=class{constructor(){Vt(this,"_state","none"),Vt(this,"promise"),Vt(this,"resolve",()=>{}),Vt(this,"reject",()=>{}),this.promise=new Promise((n,e)=>{this.resolve=n,this.reject=e})}get state(){return this._state}},Nze=(e$=class{constructor(){Vt(this,"_unprocessedMessages",[]),Vt(this,"_messageListener"),Vt(this,"id",e$.id++),Vt(this,"_state",new vgn({state:"open"})),Vt(this,"state",this._state)}setListener(n){if(this._messageListener=n,!!n)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(n){return this._sendImpl(n)}_dispatchReceivedMessage(n){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(n):this._unprocessedMessages.push(n)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(n){return new Cgn(this,n??new wgn)}},Vt(e$,"id",0),e$),Cgn=class{constructor(n,e){Vt(this,"baseStream"),Vt(this,"logger"),this.baseStream=n,this.logger=e}get state(){return this.baseStream.state}setListener(n){if(n===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),n(e)})}send(n){return this.logger.log(this.baseStream,"outgoing",n),this.baseStream.send(n)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},wgn=class{log(n,e,t){console.log(`${e==="incoming"?"<-":"->"} [${n.toString()}] ${JSON.stringify(t)}`)}},Sgn=class Dze{constructor(e){Vt(this,"connect"),this.connect=e}mapContext(e){return new Dze(t=>this.connect(t?xgn(t,e):void 0))}};function xgn(n,e){return{handleNotification:(t,i)=>n.handleNotification(t,e(i)),handleRequest:(t,i,s)=>n.handleRequest(t,i,e(s))}}var kgn=class Tze{constructor(e,t,i){Vt(this,"_stream"),Vt(this,"_listener"),Vt(this,"_logger"),Vt(this,"_unprocessedResponses",new Map),Vt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(s=>{_gn(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let i=!1;return new Sgn(s=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new Tze(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:ef.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ef.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(s.id),new Promise((r,o)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?r({result:l.result}):(l.error||o(new Error("Response had neither 'result' nor 'error' field set.")),r({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),o(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zE;(function(n){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}n.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}n.sEmptyObject=t;function i(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}n.sVoidFromNull=i})(zE||(zE={}));const Rze=Symbol("OptionalMethodNotFound");var Mze=class{contextualize(n){return new Lgn(this,n)}},Lgn=class extends Mze{constructor(n,e){super(),Vt(this,"underylingTypedChannel"),Vt(this,"converters"),this.underylingTypedChannel=n,this.converters=e}async request(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(n,e,i)}async notify(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(n,e,i)}registerNotificationHandler(n,e){return this.underylingTypedChannel.registerNotificationHandler(n,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(n,e){return this.underylingTypedChannel.registerRequestHandler(n,async(t,i,s)=>await e(t,i,await this.converters.getNewContext(s)))}},Jae=class Pze extends Mze{constructor(e,t={}){super(),Vt(this,"channelCtor"),Vt(this,"_requestSender"),Vt(this,"_handler",new Map),Vt(this,"_unknownNotificationHandler",new Set),Vt(this,"_timeout"),Vt(this,"sendExceptionDetails",!1),Vt(this,"_logger"),Vt(this,"listeningDeferred",new ygn),Vt(this,"onListening",this.listeningDeferred.promise),Vt(this,"_requestDidErrorEventEmitter",new lpe),Vt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=bgn(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new Pze(kgn.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ef.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const o=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e}}),{error:{code:ef.invalidRequest,message:o,data:{method:e.method}}}}const r=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){const o=`Got invalid params: ${r.errorMessage}`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e,errorMessage:r.errorMessage}}),{error:{code:ef.invalidParams,message:o,data:{errors:r.errorMessage}}}}else{const o=r.value;let a;try{const l=await s.handler(o,t,i);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ef.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof iDe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ef.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const o of this._unknownNotificationHandler)o(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const r=s.value;for(const o of i.handlers)try{o(r,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return fY(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return fY(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return fY(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);nDe(s);const r=await this._requestSender.sendRequest({method:e.method,params:s},i);if("error"in r){if(e.isOptional&&r.error.code===ef.methodNotFound)return Rze;let o;if(r.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(r.error.data);if(l.hasErrors)throw new Error(l.errorMessage);o=l.value}else o=void 0;const a=new iDe(r.error.message,o,r.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const o=e.resultSerializer.deserializeFromJson(r.result);if(o.hasErrors)throw new Error("Could not deserialize response: "+o.errorMessage+`
1452
+ hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:dv(t,a.open),close:dv(t,a.close)});else throw ws(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function mfn(n){$I.registerLanguage(n)}function pfn(){let n=[];return n=n.concat($I.getLanguages()),n}function _fn(n){return mn.get(ir).languageIdCodec.encodeLanguageId(n)}function vfn(n,e){return mn.withServices(()=>{const i=mn.get(ir).onDidRequestRichLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function bfn(n,e){return mn.withServices(()=>{const i=mn.get(ir).onDidRequestBasicLanguageFeatures(s=>{s===n&&(i.dispose(),e())});return i})}function yfn(n,e){if(!mn.get(ir).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return mn.get($s).register(n,e,100)}class Cfn{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return V2.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const s=this._actual.tokenizeEncoded(e,i);return new hz(s.tokens,s.endState)}}class V2{constructor(e,t,i,s){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let s=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<s&&(l=s),i[r]=new LO(l,a.scopes,t),s=l}return i}static adaptTokenize(e,t,i,s){const r=t.tokenize(i,s),o=V2._toClassicTokens(r.tokens,e);let a;return r.endState.equals(s)?a=s:a=r.endState,new xfe(o,a)}tokenize(e,t,i){return V2.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let c=0,d=t.length;c<d;c++){const u=t[c],h=s.match(i,u.scopes)|1024;if(o>0&&r[o-1]===h)continue;let f=u.startIndex;c===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=h,a=f}const l=new Uint32Array(o);for(let c=0;c<o;c++)l[c]=r[c];return l}tokenizeEncoded(e,t,i){const s=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let o;return s.endState.equals(i)?o=i:o=s.endState,new hz(r,o)}}function wfn(n){return typeof n.getInitialState=="function"}function Sfn(n){return"tokenizeEncoded"in n}function Jje(n){return n&&typeof n.then=="function"}function xfn(n){const e=mn.get(Lu);if(n){const t=[null];for(let i=1,s=n.length;i<s;i++)t[i]=Ne.fromHex(n[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function eze(n,e){return Sfn(e)?new Cfn(n,e):new V2(n,e,mn.get(ir),mn.get(Lu))}function npe(n,e){const t=new CWt(async()=>{const i=await Promise.resolve(e.create());return i?wfn(i)?eze(n,i):new O2(mn.get(ir),mn.get(Lu),n,Qje(n,i),mn.get(kn)):null});return Qs.registerFactory(n,t)}function kfn(n,e){if(!mn.get(ir).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return Jje(e)?npe(n,{create:()=>e}):Qs.register(n,eze(n,e))}function Lfn(n,e){const t=i=>new O2(mn.get(ir),mn.get(Lu),n,Qje(n,i),mn.get(kn));return Jje(e)?npe(n,{create:()=>e}):Qs.register(n,t(e))}function Efn(n,e){return mn.get(Ct).referenceProvider.register(n,e)}function Ifn(n,e){return mn.get(Ct).renameProvider.register(n,e)}function Nfn(n,e){return mn.get(Ct).newSymbolNamesProvider.register(n,e)}function Dfn(n,e){return mn.get(Ct).signatureHelpProvider.register(n,e)}function Tfn(n,e){return mn.get(Ct).hoverProvider.register(n,{provideHover:async(i,s,r,o)=>{const a=i.getWordAtPosition(s);return Promise.resolve(e.provideHover(i,s,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new V(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),l.range||(l.range=new V(s.lineNumber,s.column,s.lineNumber,s.column)),l})}})}function Rfn(n,e){return mn.get(Ct).documentSymbolProvider.register(n,e)}function Mfn(n,e){return mn.get(Ct).documentHighlightProvider.register(n,e)}function Pfn(n,e){return mn.get(Ct).linkedEditingRangeProvider.register(n,e)}function Ofn(n,e){return mn.get(Ct).definitionProvider.register(n,e)}function Afn(n,e){return mn.get(Ct).implementationProvider.register(n,e)}function Ffn(n,e){return mn.get(Ct).typeDefinitionProvider.register(n,e)}function $fn(n,e){return mn.get(Ct).codeLensProvider.register(n,e)}function Bfn(n,e,t){return mn.get(Ct).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(s,r,o,a)=>{const c=mn.get(Fp).read({resource:s.uri}).filter(d=>V.areIntersectingOrTouching(d,r));return e.provideCodeActions(s,r,{markers:c,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function Hfn(n,e){return mn.get(Ct).documentFormattingEditProvider.register(n,e)}function Wfn(n,e){return mn.get(Ct).documentRangeFormattingEditProvider.register(n,e)}function Vfn(n,e){return mn.get(Ct).onTypeFormattingEditProvider.register(n,e)}function jfn(n,e){return mn.get(Ct).linkProvider.register(n,e)}function zfn(n,e){return mn.get(Ct).completionProvider.register(n,e)}function Ufn(n,e){return mn.get(Ct).colorProvider.register(n,e)}function Kfn(n,e){return mn.get(Ct).foldingRangeProvider.register(n,e)}function qfn(n,e){return mn.get(Ct).declarationProvider.register(n,e)}function Gfn(n,e){return mn.get(Ct).selectionRangeProvider.register(n,e)}function Xfn(n,e){return mn.get(Ct).documentSemanticTokensProvider.register(n,e)}function Yfn(n,e){return mn.get(Ct).documentRangeSemanticTokensProvider.register(n,e)}function Zfn(n,e){return mn.get(Ct).inlineCompletionsProvider.register(n,e)}function Qfn(n,e){return mn.get(Ct).inlayHintsProvider.register(n,e)}function Jfn(){return{register:mfn,getLanguages:pfn,onLanguage:vfn,onLanguageEncountered:bfn,getEncodedLanguageId:_fn,setLanguageConfiguration:yfn,setColorMap:xfn,registerTokensProviderFactory:npe,setTokensProvider:kfn,setMonarchTokensProvider:Lfn,registerReferenceProvider:Efn,registerRenameProvider:Ifn,registerNewSymbolNameProvider:Nfn,registerCompletionItemProvider:zfn,registerSignatureHelpProvider:Dfn,registerHoverProvider:Tfn,registerDocumentSymbolProvider:Rfn,registerDocumentHighlightProvider:Mfn,registerLinkedEditingRangeProvider:Pfn,registerDefinitionProvider:Ofn,registerImplementationProvider:Afn,registerTypeDefinitionProvider:Ffn,registerCodeLensProvider:$fn,registerCodeActionProvider:Bfn,registerDocumentFormattingEditProvider:Hfn,registerDocumentRangeFormattingEditProvider:Wfn,registerOnTypeFormattingEditProvider:Vfn,registerLinkProvider:jfn,registerColorProvider:Ufn,registerFoldingRangeProvider:Kfn,registerDeclarationProvider:qfn,registerSelectionRangeProvider:Gfn,registerDocumentSemanticTokensProvider:Xfn,registerDocumentRangeSemanticTokensProvider:Yfn,registerInlineCompletionsProvider:Zfn,registerInlayHintsProvider:Qfn,DocumentHighlightKind:toe,CompletionItemKind:Xre,CompletionItemTag:Yre,CompletionItemInsertTextRule:Gre,SymbolKind:Moe,SymbolTag:Poe,IndentAction:loe,CompletionTriggerKind:Zre,SignatureHelpTriggerKind:Roe,InlayHintKind:doe,InlineCompletionTriggerKind:foe,CodeActionTriggerType:qre,NewSymbolNameTag:yoe,NewSymbolNameTriggerKind:Coe,PartialAcceptTriggerKind:xoe,HoverVerbosityAction:aoe,InlineCompletionEndOfLifeReasonKind:uoe,InlineCompletionHintStyle:hoe,FoldingRangeKind:Dx,SelectedSuggestionInfo:M6e,EditDeltaInfo:$O}}xl.wrappingIndent.defaultValue=0;xl.glyphMargin.defaultValue=!1;xl.autoIndent.defaultValue=3;xl.overviewRulerLanes.defaultValue=2;f2.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const gc=Eje();gc.editor=cfn();gc.languages=Jfn();const tze=gc.CancellationTokenSource,PC=gc.Emitter,nze=gc.KeyCode,ize=gc.KeyMod,eb=gc.Position,Vx=gc.Range,sze=gc.Selection,rze=gc.SelectionDirection,af=gc.MarkerSeverity,B8=gc.MarkerTag,oU=gc.Uri,oze=gc.Token,rp=gc.editor,yt=gc.languages,dY=uhe(),jE=globalThis;(dY!=null&&dY.globalAPI||typeof jE.define=="function"&&jE.define.amd)&&(jE.monaco=gc);typeof jE.require<"u"&&typeof jE.require.config=="function"&&jE.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const egn=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:tze,Emitter:PC,KeyCode:nze,KeyMod:ize,MarkerSeverity:af,MarkerTag:B8,Position:eb,Range:Vx,Selection:sze,SelectionDirection:rze,Token:oze,Uri:oU,editor:rp,languages:yt},Symbol.toStringTag,{value:"Module"}));let ipe=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const spe={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},rpe={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},aze=new ipe("css",spe,rpe),lze=new ipe("scss",spe,rpe),cze=new ipe("less",spe,rpe);function ope(){return Q(()=>import("./cssMode-GoTNjuXX.js"),__vite__mapDeps([97,98]))}yt.onLanguage("less",()=>{ope().then(n=>n.setupMode(cze))});yt.onLanguage("scss",()=>{ope().then(n=>n.setupMode(lze))});yt.onLanguage("css",()=>{ope().then(n=>n.setupMode(aze))});const dze=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:aze,lessDefaults:cze,scssDefaults:lze},Symbol.toStringTag,{value:"Module"}));let tgn=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const ngn={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},aU={format:ngn,suggest:{},data:{useDefaultDataProvider:!0}};function lU(n){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:n===RM,documentFormattingEdits:n===RM,documentRangeFormattingEdits:n===RM}}const RM="html",QNe="handlebars",JNe="razor",uze=cU(RM,aU,lU(RM)),ign=uze.defaults,hze=cU(QNe,aU,lU(QNe)),sgn=hze.defaults,fze=cU(JNe,aU,lU(JNe)),rgn=fze.defaults;function ogn(){return Q(()=>import("./htmlMode-Bztvbig1.js"),__vite__mapDeps([99,98]))}function cU(n,e=aU,t=lU(n)){const i=new tgn(n,e,t);let s;const r=yt.onLanguage(n,async()=>{s=(await ogn()).setupMode(i)});return{defaults:i,dispose(){r.dispose(),s==null||s.dispose(),s=void 0}}}const gze=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:sgn,handlebarLanguageService:hze,htmlDefaults:ign,htmlLanguageService:uze,razorDefaults:rgn,razorLanguageService:fze,registerHTMLLanguageService:cU},Symbol.toStringTag,{value:"Module"}));let agn=class{constructor(e,t,i){this._onDidChange=new PC,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const lgn={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},cgn={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},mze=new agn("json",lgn,cgn),dgn=()=>pze().then(n=>n.getWorker());function pze(){return Q(()=>import("./jsonMode-BC98AlvF.js"),__vite__mapDeps([100,98]))}yt.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});yt.onLanguage("json",()=>{pze().then(n=>n.setupMode(mze))});const _ze=Object.freeze(Object.defineProperty({__proto__:null,getWorker:dgn,jsonDefaults:mze},Symbol.toStringTag,{value:"Module"})),ugn="5.9.3";var vze=(n=>(n[n.None=0]="None",n[n.CommonJS=1]="CommonJS",n[n.AMD=2]="AMD",n[n.UMD=3]="UMD",n[n.System=4]="System",n[n.ES2015=5]="ES2015",n[n.ESNext=99]="ESNext",n))(vze||{}),bze=(n=>(n[n.None=0]="None",n[n.Preserve=1]="Preserve",n[n.React=2]="React",n[n.ReactNative=3]="ReactNative",n[n.ReactJSX=4]="ReactJSX",n[n.ReactJSXDev=5]="ReactJSXDev",n))(bze||{}),yze=(n=>(n[n.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",n[n.LineFeed=1]="LineFeed",n))(yze||{}),Cze=(n=>(n[n.ES3=0]="ES3",n[n.ES5=1]="ES5",n[n.ES2015=2]="ES2015",n[n.ES2016=3]="ES2016",n[n.ES2017=4]="ES2017",n[n.ES2018=5]="ES2018",n[n.ES2019=6]="ES2019",n[n.ES2020=7]="ES2020",n[n.ESNext=99]="ESNext",n[n.JSON=100]="JSON",n[n.Latest=99]="Latest",n))(Cze||{}),wze=(n=>(n[n.Classic=1]="Classic",n[n.NodeJs=2]="NodeJs",n))(wze||{});class Sze{constructor(e,t,i,s,r){this._onDidChange=new PC,this._onDidExtraLibsChange=new PC,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(s),this.setModeConfiguration(r),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[i]&&(s=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(s=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let r=this._extraLibs[i];r&&r.version===s&&(delete this._extraLibs[i],this._removedExtraLibs[i]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,s=t.content;let r=1;this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:s,version:r}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const hgn=ugn,xze={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},kze=new Sze({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},xze),Lze=new Sze({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},xze),fgn=()=>dU().then(n=>n.getTypeScriptWorker()),ggn=()=>dU().then(n=>n.getJavaScriptWorker());function dU(){return Q(()=>import("./tsMode-D_gJXIy3.js"),[])}yt.onLanguage("typescript",()=>dU().then(n=>n.setupTypeScript(kze)));yt.onLanguage("javascript",()=>dU().then(n=>n.setupJavaScript(Lze)));const Eze=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:bze,ModuleKind:vze,ModuleResolutionKind:wze,NewLineKind:yze,ScriptTarget:Cze,getJavaScriptWorker:ggn,getTypeScriptWorker:fgn,javascriptDefaults:Lze,typescriptDefaults:kze,typescriptVersion:hgn},Symbol.toStringTag,{value:"Module"})),Ize={},uY={};class ape{static getOrCreate(e){return uY[e]||(uY[e]=new ape(e)),uY[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,Ize[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Xt(n){const e=n.id;Ize[e]=n,yt.register(n);const t=ape.getOrCreate(e);yt.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),yt.onLanguageEncountered(e,async()=>{const i=await t.load();yt.setLanguageConfiguration(e,i.conf)})}Xt({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Q(()=>import("./abap-DLDM7-KI.js"),[])});Xt({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Q(()=>import("./apex-DNDY2TF8.js"),[])});Xt({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Q(()=>import("./azcli-Y6nb8tq_.js"),[])});Xt({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Q(()=>import("./bat-BwHxbl9M.js"),[])});Xt({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Q(()=>import("./bicep-CFznDFnq.js"),[])});Xt({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Q(()=>import("./cameligo-Bf6VGUru.js"),[])});Xt({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Q(()=>import("./clojure-Dnu-v4kV.js"),[])});Xt({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Q(()=>import("./coffee-Bd8akH9Z.js"),[])});Xt({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Q(()=>import("./cpp-BbWJElDN.js"),[])});Xt({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Q(()=>import("./cpp-BbWJElDN.js"),[])});Xt({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Q(()=>import("./csharp-Co3qMtFm.js"),[])});Xt({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Q(()=>import("./csp-D-4FJmMZ.js"),[])});Xt({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Q(()=>import("./css-DdJfP1eB.js"),[])});Xt({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Q(()=>import("./cypher-cTPe9QuQ.js"),[])});Xt({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Q(()=>import("./dart-BOtBlQCF.js"),[])});Xt({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Q(()=>import("./dockerfile-BG73LgW2.js"),[])});Xt({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Q(()=>import("./ecl-BEgZUVRK.js"),[])});Xt({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Q(()=>import("./elixir-BkW5O-1t.js"),[])});Xt({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Q(()=>import("./flow9-BeJ5waoc.js"),[])});Xt({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Q(()=>import("./fsharp-PahG7c26.js"),[])});Xt({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagAutoInterpolationDollar)});Xt({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagAngleInterpolationDollar)});Xt({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagBracketInterpolationDollar)});Xt({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagAngleInterpolationBracket)});Xt({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagBracketInterpolationBracket)});Xt({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagAutoInterpolationDollar)});Xt({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Q(()=>import("./freemarker2-j39cqTlI.js"),[]).then(n=>n.TagAutoInterpolationBracket)});Xt({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Q(()=>import("./go-acbASCJo.js"),[])});Xt({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Q(()=>import("./graphql-BxJiqAUM.js"),[])});Xt({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Q(()=>import("./handlebars-BgjdZO8G.js"),[])});Xt({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Q(()=>import("./hcl-DtV1sZF8.js"),[])});Xt({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Q(()=>import("./html-Ba7tYObe.js"),[])});Xt({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Q(()=>import("./ini-Kd9XrMLS.js"),[])});Xt({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Q(()=>import("./java-CXBNlu9o.js"),[])});Xt({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Q(()=>import("./javascript-C1e1cllX.js"),__vite__mapDeps([101,102]))});Xt({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Q(()=>import("./julia-cl7-CwDS.js"),[])});Xt({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Q(()=>import("./kotlin-s7OhZKlX.js"),[])});Xt({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Q(()=>import("./less-9HpZscsL.js"),[])});Xt({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Q(()=>import("./lexon-OrD6JF1K.js"),[])});Xt({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Q(()=>import("./lua-Cyyb5UIc.js"),[])});Xt({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Q(()=>import("./liquid-DahfJEYl.js"),[])});Xt({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Q(()=>import("./m3-B8OfTtLu.js"),[])});Xt({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Q(()=>import("./markdown-BFxVWTOG.js"),[])});Xt({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Q(()=>import("./mdx-BELlF_FD.js"),[])});Xt({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Q(()=>import("./mips-CiqrrVzr.js"),[])});Xt({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Q(()=>import("./msdax-DmeGPVcC.js"),[])});Xt({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Q(()=>import("./mysql-C_tMU-Nz.js"),[])});Xt({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Q(()=>import("./objective-c-BDtDVThU.js"),[])});Xt({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Q(()=>import("./pascal-vHIfCaH5.js"),[])});Xt({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Q(()=>import("./pascaligo-DtZ0uQbO.js"),[])});Xt({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Q(()=>import("./perl-Ub6l9XKa.js"),[])});Xt({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Q(()=>import("./pgsql-BlNEE0v7.js"),[])});Xt({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Q(()=>import("./php-BBUBE1dy.js"),[])});Xt({id:"pla",extensions:[".pla"],loader:()=>Q(()=>import("./pla-DSh2-awV.js"),[])});Xt({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Q(()=>import("./postiats-CocnycG-.js"),[])});Xt({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Q(()=>import("./powerquery-tScXyioY.js"),[])});Xt({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Q(()=>import("./powershell-COWaemsV.js"),[])});Xt({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Q(()=>import("./protobuf-Brw8urJB.js"),[])});Xt({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Q(()=>import("./pug-8SOpv6rk.js"),[])});Xt({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Q(()=>import("./python--C9if_AD.js"),[])});Xt({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Q(()=>import("./qsharp-Bw9ernYp.js"),[])});Xt({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Q(()=>import("./r-j7ic8hl3.js"),[])});Xt({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Q(()=>import("./razor-B9U9JxKn.js"),[])});Xt({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Q(()=>import("./redis-Bu5POkcn.js"),[])});Xt({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Q(()=>import("./redshift-Bs9aos_-.js"),[])});Xt({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Q(()=>import("./restructuredtext-CqXO7rUv.js"),[])});Xt({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Q(()=>import("./ruby-zBfavPgS.js"),[])});Xt({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Q(()=>import("./rust-BzKRNQWT.js"),[])});Xt({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Q(()=>import("./sb-BBc9UKZt.js"),[])});Xt({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Q(()=>import("./scala-D9hQfWCl.js"),[])});Xt({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Q(()=>import("./scheme-BPhDTwHR.js"),[])});Xt({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Q(()=>import("./scss-CBJaRo0y.js"),[])});Xt({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Q(()=>import("./shell-DiJ1NA_G.js"),[])});Xt({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Q(()=>import("./solidity-Db0IVjzk.js"),[])});Xt({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Q(()=>import("./sophia-CnS9iZB_.js"),[])});Xt({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Q(()=>import("./sparql-CJmd_6j2.js"),[])});Xt({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Q(()=>import("./sql-ClhHkBeG.js"),[])});Xt({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Q(()=>import("./st-CHwy0fLd.js"),[])});Xt({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Q(()=>import("./swift-Bqt4WxQ4.js"),[])});Xt({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Q(()=>import("./systemverilog-Bs9z6M-B.js"),[])});Xt({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Q(()=>import("./systemverilog-Bs9z6M-B.js"),[])});Xt({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Q(()=>import("./tcl-Dm6ycUr_.js"),[])});Xt({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Q(()=>import("./twig-Csy3S7wG.js"),[])});Xt({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Q(()=>import("./typescript-BoKcNXkN.js"),[])});Xt({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Q(()=>import("./typespec-Btyra-wh.js"),[])});Xt({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Q(()=>import("./vb-Db0cS2oM.js"),[])});Xt({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Q(()=>import("./wgsl-BTesnYfV.js"),[])});Xt({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>Q(()=>import("./xml-DZvURlJ-.js"),[])});Xt({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Q(()=>import("./yaml-CTC8PAGY.js"),[])});var mgn=Object.defineProperty,pgn=(n,e,t)=>e in n?mgn(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Vt=(n,e,t)=>pgn(n,typeof e!="symbol"?e+"":e,t),e$,eDe,t$,hY,n$;function _gn(n){return n.method!==void 0}var tDe;(function(n){function e(t){return t}n.create=e})(tDe||(tDe={}));var ef;(function(n){n.parseError=-32700,n.invalidRequest=-32600,n.methodNotFound=-32601,n.invalidParams=-32602,n.internalError=-32603;function e(r){return-32099<=r&&r<=-32e3}n.isServerError=e;function t(r){if(!e(r))throw new Error("Invalid range for a server error.");return r}n.serverError=t,n.unexpectedServerError=-32e3;function i(r){return!0}n.isApplicationError=i;function s(r){return r}n.applicationError=s,n.genericApplicationError=-320100})(ef||(ef={}));var lpe=class{constructor(){Vt(this,"listeners",new Set),Vt(this,"event",n=>(this.listeners.add(n),{dispose:()=>{this.listeners.delete(n)}}))}fire(n){this.listeners.forEach(e=>e(n))}},vgn=class{constructor(n){Vt(this,"_value"),Vt(this,"eventEmitter"),this._value=n,this.eventEmitter=new lpe}get value(){return this._value}set value(n){this._value!==n&&(this._value=n,this.eventEmitter.fire(n))}get onChange(){return this.eventEmitter.event}};function bgn(n,e){const t=setTimeout(e,n);return{dispose:()=>clearTimeout(t)}}function fY(n,e,t){return n instanceof Set?(n.add(e),{dispose:()=>n.delete(e)}):(n.set(e,t),{dispose:()=>n.delete(e)})}var ygn=class{constructor(){Vt(this,"_state","none"),Vt(this,"promise"),Vt(this,"resolve",()=>{}),Vt(this,"reject",()=>{}),this.promise=new Promise((n,e)=>{this.resolve=n,this.reject=e})}get state(){return this._state}},Nze=(e$=class{constructor(){Vt(this,"_unprocessedMessages",[]),Vt(this,"_messageListener"),Vt(this,"id",e$.id++),Vt(this,"_state",new vgn({state:"open"})),Vt(this,"state",this._state)}setListener(n){if(this._messageListener=n,!!n)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(n){return this._sendImpl(n)}_dispatchReceivedMessage(n){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(n):this._unprocessedMessages.push(n)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(n){return new Cgn(this,n??new wgn)}},Vt(e$,"id",0),e$),Cgn=class{constructor(n,e){Vt(this,"baseStream"),Vt(this,"logger"),this.baseStream=n,this.logger=e}get state(){return this.baseStream.state}setListener(n){if(n===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),n(e)})}send(n){return this.logger.log(this.baseStream,"outgoing",n),this.baseStream.send(n)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},wgn=class{log(n,e,t){console.log(`${e==="incoming"?"<-":"->"} [${n.toString()}] ${JSON.stringify(t)}`)}},Sgn=class Dze{constructor(e){Vt(this,"connect"),this.connect=e}mapContext(e){return new Dze(t=>this.connect(t?xgn(t,e):void 0))}};function xgn(n,e){return{handleNotification:(t,i)=>n.handleNotification(t,e(i)),handleRequest:(t,i,s)=>n.handleRequest(t,i,e(s))}}var kgn=class Tze{constructor(e,t,i){Vt(this,"_stream"),Vt(this,"_listener"),Vt(this,"_logger"),Vt(this,"_unprocessedResponses",new Map),Vt(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(s=>{_gn(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let i=!1;return new Sgn(s=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new Tze(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${s}`,message:e,exception:s}),t={error:{code:ef.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ef.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(s.id),new Promise((r,o)=>{const a=""+s.id;this._unprocessedResponses.set(a,l=>{"result"in l?r({result:l.result}):(l.error||o(new Error("Response had neither 'result' nor 'error' field set.")),r({error:l.error}))}),this._stream.send(s).then(void 0,l=>{this._unprocessedResponses.delete(a),o(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zE;(function(n){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}n.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}n.sEmptyObject=t;function i(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}n.sVoidFromNull=i})(zE||(zE={}));const Rze=Symbol("OptionalMethodNotFound");var Mze=class{contextualize(n){return new Lgn(this,n)}},Lgn=class extends Mze{constructor(n,e){super(),Vt(this,"underylingTypedChannel"),Vt(this,"converters"),this.underylingTypedChannel=n,this.converters=e}async request(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(n,e,i)}async notify(n,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(n,e,i)}registerNotificationHandler(n,e){return this.underylingTypedChannel.registerNotificationHandler(n,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(n,e){return this.underylingTypedChannel.registerRequestHandler(n,async(t,i,s)=>await e(t,i,await this.converters.getNewContext(s)))}},Jae=class Pze extends Mze{constructor(e,t={}){super(),Vt(this,"channelCtor"),Vt(this,"_requestSender"),Vt(this,"_handler",new Map),Vt(this,"_unknownNotificationHandler",new Set),Vt(this,"_timeout"),Vt(this,"sendExceptionDetails",!1),Vt(this,"_logger"),Vt(this,"listeningDeferred",new ygn),Vt(this,"onListening",this.listeningDeferred.promise),Vt(this,"_requestDidErrorEventEmitter",new lpe),Vt(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=bgn(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new Pze(kgn.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ef.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(s.kind!="request"){const o=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e}}),{error:{code:ef.invalidRequest,message:o,data:{method:e.method}}}}const r=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){const o=`Got invalid params: ${r.errorMessage}`;return this._logger&&this._logger.debug({text:o,data:{requestObject:e,errorMessage:r.errorMessage}}),{error:{code:ef.invalidParams,message:o,data:{errors:r.errorMessage}}}}else{const o=r.value;let a;try{const l=await s.handler(o,t,i);if("error"in l||"errorMessage"in l){const c=l.error?s.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ef.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:s.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof iDe?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ef.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const o of this._unknownNotificationHandler)o(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const s=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${s}`,data:{requestObject:e,errorMessage:s.errorMessage}});return}const r=s.value;for(const o of i.handlers)try{o(r,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return fY(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return fY(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return fY(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);nDe(s);const r=await this._requestSender.sendRequest({method:e.method,params:s},i);if("error"in r){if(e.isOptional&&r.error.code===ef.methodNotFound)return Rze;let o;if(r.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(r.error.data);if(l.hasErrors)throw new Error(l.errorMessage);o=l.value}else o=void 0;const a=new iDe(r.error.message,o,r.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const o=e.resultSerializer.deserializeFromJson(r.result);if(o.hasErrors)throw new Error("Could not deserialize response: "+o.errorMessage+`
1453
1453
 
1454
1454
  ${JSON.stringify(r,null,2)}`);return o.value}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error;const s=e.paramsSerializer.serializeToJson(t);nDe(s),this._requestSender.sendNotification({method:e.method,params:s},i)}};function nDe(n){if(n!==null&&Array.isArray(n)&&typeof n!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var iDe=class Oze extends Error{constructor(e,t,i=ef.genericApplicationError){super(e),Vt(this,"data"),Vt(this,"code"),this.data=t,this.code=i,Object.setPrototypeOf(this,Oze.prototype)}},Egn=class ele{constructor(e,t,i,s,r=!1){Vt(this,"method"),Vt(this,"paramsSerializer"),Vt(this,"resultSerializer"),Vt(this,"errorSerializer"),Vt(this,"isOptional"),Vt(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=s,this.isOptional=r}withMethod(e){return new ele(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new ele(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},Ign=class Aze{constructor(e,t){Vt(this,"method"),Vt(this,"paramsSerializer"),Vt(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new Aze(e,this.paramsSerializer)}};function En(n){return new Egn((n||{}).method,zE.sAny(),zE.sAny(),zE.sAny())}function pr(n){return new Ign((n||{}).method,zE.sAny())}const Ngn=Symbol();var sDe=(eDe=Ngn,t$=class{constructor(n){Vt(this,"error"),Vt(this,eDe),this.error=n}},Vt(t$,"factory",n=>new t$(n)),t$);function Dgn(n){const e=rDe(n.server),t=rDe(n.client);return new Tgn(n.tags||[],e,t)}function rDe(n){const e={};for(const[t,i]of Object.entries(n)){const s=i.method?i.method:t;e[t]=i.withMethod(s)}return e}var Tgn=class Fze{constructor(e=[],t,i){Vt(this,"tags"),Vt(this,"server"),Vt(this,"client"),this.tags=e,this.server=t,this.client=i}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,i,s){const r=this.buildCounterpart(e,i),o=this.registerHandlers(e,t,s,r);return{counterpart:r,dispose:()=>o.dispose()}}buildCounterpart(e,t){const i={};for(const[s,r]of Object.entries(t)){let o;r.kind==="request"?r.isOptional?o=async(a,l)=>{a===void 0&&(a={});try{return await e.request(r,a,l)}catch(c){if(c&&c.code===ef.methodNotFound)return Rze;throw c}}:o=(a,l)=>(a===void 0&&(a={}),e.request(r,a,l)):o=(a,l)=>(a===void 0&&(a={}),e.notify(r,a,l)),i[s]=o}return i}registerHandlers(e,t,i,s){const r=[];for(const[o,a]of Object.entries(t))if(a.kind==="request"){let l=i[o];if(!l)continue;const c=this.createRequestHandler(s,l);r.push(e.registerRequestHandler(a,c))}else{const l=i[o];l&&r.push(e.registerNotificationHandler(a,(c,d)=>{l(c,{context:d,counterpart:s})}))}return{dispose:()=>r.forEach(o=>o.dispose())}}createRequestHandler(e,t){return async(i,s,r)=>{const o=await t(i,{context:r,counterpart:e,newErr:sDe.factory,requestId:s});return o instanceof sDe?o.error:{ok:o}}}static getServerFromStream(e,t,i,s){const r=Jae.fromTransport(t,i),{server:o}=e.getServer(r,s);return r.startListen(),{channel:r,server:o}}static registerServerToStream(e,t,i,s){const r=Jae.fromTransport(t,i),{client:o}=e.registerServer(r,s);return r.startListen(),{channel:r,client:o}}getServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.client,this.server,t);return{server:i,dispose:s}}registerServer(e,t){const{counterpart:i,dispose:s}=this.getInterface(e,this.server,this.client,t);return{client:i,dispose:s}}withContext(){return new Fze(this.tags,this.server,this.client)}};let UE=function(n){return n.Comment="comment",n.Imports="imports",n.Region="region",n}({}),Ar=function(n){return n[n.File=1]="File",n[n.Module=2]="Module",n[n.Namespace=3]="Namespace",n[n.Package=4]="Package",n[n.Class=5]="Class",n[n.Method=6]="Method",n[n.Property=7]="Property",n[n.Field=8]="Field",n[n.Constructor=9]="Constructor",n[n.Enum=10]="Enum",n[n.Interface=11]="Interface",n[n.Function=12]="Function",n[n.Variable=13]="Variable",n[n.Constant=14]="Constant",n[n.String=15]="String",n[n.Number=16]="Number",n[n.Boolean=17]="Boolean",n[n.Array=18]="Array",n[n.Object=19]="Object",n[n.Key=20]="Key",n[n.Null=21]="Null",n[n.EnumMember=22]="EnumMember",n[n.Struct=23]="Struct",n[n.Event=24]="Event",n[n.Operator=25]="Operator",n[n.TypeParameter=26]="TypeParameter",n}({}),$ze=function(n){return n[n.Deprecated=1]="Deprecated",n}({}),oDe=function(n){return n[n.Type=1]="Type",n[n.Parameter=2]="Parameter",n}({}),Rgn=function(n){return n[n.None=0]="None",n[n.Full=1]="Full",n[n.Incremental=2]="Incremental",n}({}),Kr=function(n){return n[n.Text=1]="Text",n[n.Method=2]="Method",n[n.Function=3]="Function",n[n.Constructor=4]="Constructor",n[n.Field=5]="Field",n[n.Variable=6]="Variable",n[n.Class=7]="Class",n[n.Interface=8]="Interface",n[n.Module=9]="Module",n[n.Property=10]="Property",n[n.Unit=11]="Unit",n[n.Value=12]="Value",n[n.Enum=13]="Enum",n[n.Keyword=14]="Keyword",n[n.Snippet=15]="Snippet",n[n.Color=16]="Color",n[n.File=17]="File",n[n.Reference=18]="Reference",n[n.Folder=19]="Folder",n[n.EnumMember=20]="EnumMember",n[n.Constant=21]="Constant",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter",n}({}),Mgn=function(n){return n[n.Deprecated=1]="Deprecated",n}({}),Pgn=function(n){return n[n.PlainText=1]="PlainText",n[n.Snippet=2]="Snippet",n}({}),gY=function(n){return n[n.Text=1]="Text",n[n.Read=2]="Read",n[n.Write=3]="Write",n}({}),Zp=function(n){return n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll",n}({}),H8=function(n){return n.PlainText="plaintext",n.Markdown="markdown",n}({}),z_=function(n){return n[n.Error=1]="Error",n[n.Warning=2]="Warning",n[n.Information=3]="Information",n[n.Hint=4]="Hint",n}({}),aDe=function(n){return n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated",n}({}),P3=function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",n}({}),O3=function(n){return n[n.Invoked=1]="Invoked",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange",n}({}),tle=function(n){return n[n.Invoked=1]="Invoked",n[n.Automatic=2]="Automatic",n}({}),Ogn=function(n){return n.Relative="relative",n}({});var fi=class{constructor(n){this.method=n}};const qn={textDocumentImplementation:new fi("textDocument/implementation"),textDocumentTypeDefinition:new fi("textDocument/typeDefinition"),textDocumentDocumentColor:new fi("textDocument/documentColor"),textDocumentColorPresentation:new fi("textDocument/colorPresentation"),textDocumentFoldingRange:new fi("textDocument/foldingRange"),textDocumentDeclaration:new fi("textDocument/declaration"),textDocumentSelectionRange:new fi("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new fi("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new fi("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new fi("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new fi("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new fi("workspace/willCreateFiles"),workspaceWillRenameFiles:new fi("workspace/willRenameFiles"),workspaceWillDeleteFiles:new fi("workspace/willDeleteFiles"),textDocumentMoniker:new fi("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new fi("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new fi("textDocument/inlineValue"),textDocumentInlayHint:new fi("textDocument/inlayHint"),textDocumentDiagnostic:new fi("textDocument/diagnostic"),textDocumentInlineCompletion:new fi("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new fi("textDocument/willSaveWaitUntil"),textDocumentCompletion:new fi("textDocument/completion"),textDocumentHover:new fi("textDocument/hover"),textDocumentSignatureHelp:new fi("textDocument/signatureHelp"),textDocumentDefinition:new fi("textDocument/definition"),textDocumentReferences:new fi("textDocument/references"),textDocumentDocumentHighlight:new fi("textDocument/documentHighlight"),textDocumentDocumentSymbol:new fi("textDocument/documentSymbol"),textDocumentCodeAction:new fi("textDocument/codeAction"),workspaceSymbol:new fi("workspace/symbol"),textDocumentCodeLens:new fi("textDocument/codeLens"),textDocumentDocumentLink:new fi("textDocument/documentLink"),textDocumentFormatting:new fi("textDocument/formatting"),textDocumentRangeFormatting:new fi("textDocument/rangeFormatting"),textDocumentRangesFormatting:new fi("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new fi("textDocument/onTypeFormatting"),textDocumentRename:new fi("textDocument/rename"),workspaceExecuteCommand:new fi("workspace/executeCommand"),workspaceDidCreateFiles:new fi("workspace/didCreateFiles"),workspaceDidRenameFiles:new fi("workspace/didRenameFiles"),workspaceDidDeleteFiles:new fi("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new fi("workspace/didChangeConfiguration"),textDocumentDidOpen:new fi("textDocument/didOpen"),textDocumentDidChange:new fi("textDocument/didChange"),textDocumentDidClose:new fi("textDocument/didClose"),textDocumentDidSave:new fi("textDocument/didSave"),textDocumentWillSave:new fi("textDocument/willSave"),workspaceDidChangeWatchedFiles:new fi("workspace/didChangeWatchedFiles")},j2=Dgn({server:{textDocumentImplementation:En({method:"textDocument/implementation"}),textDocumentTypeDefinition:En({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:En({method:"textDocument/documentColor"}),textDocumentColorPresentation:En({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:En({method:"textDocument/foldingRange"}),textDocumentDeclaration:En({method:"textDocument/declaration"}),textDocumentSelectionRange:En({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:En({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:En({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:En({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:En({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:En({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:En({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:En({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:En({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:En({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:En({method:"workspace/willDeleteFiles"}),textDocumentMoniker:En({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:En({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:En({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:En({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:En({method:"textDocument/inlineValue"}),textDocumentInlayHint:En({method:"textDocument/inlayHint"}),inlayHintResolve:En({method:"inlayHint/resolve"}),textDocumentDiagnostic:En({method:"textDocument/diagnostic"}),workspaceDiagnostic:En({method:"workspace/diagnostic"}),textDocumentInlineCompletion:En({method:"textDocument/inlineCompletion"}),initialize:En({method:"initialize"}),shutdown:En({method:"shutdown"}),textDocumentWillSaveWaitUntil:En({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:En({method:"textDocument/completion"}),completionItemResolve:En({method:"completionItem/resolve"}),textDocumentHover:En({method:"textDocument/hover"}),textDocumentSignatureHelp:En({method:"textDocument/signatureHelp"}),textDocumentDefinition:En({method:"textDocument/definition"}),textDocumentReferences:En({method:"textDocument/references"}),textDocumentDocumentHighlight:En({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:En({method:"textDocument/documentSymbol"}),textDocumentCodeAction:En({method:"textDocument/codeAction"}),codeActionResolve:En({method:"codeAction/resolve"}),workspaceSymbol:En({method:"workspace/symbol"}),workspaceSymbolResolve:En({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:En({method:"textDocument/codeLens"}),codeLensResolve:En({method:"codeLens/resolve"}),textDocumentDocumentLink:En({method:"textDocument/documentLink"}),documentLinkResolve:En({method:"documentLink/resolve"}),textDocumentFormatting:En({method:"textDocument/formatting"}),textDocumentRangeFormatting:En({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:En({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:En({method:"textDocument/onTypeFormatting"}),textDocumentRename:En({method:"textDocument/rename"}),textDocumentPrepareRename:En({method:"textDocument/prepareRename"}),workspaceExecuteCommand:En({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:pr({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:pr({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:pr({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:pr({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:pr({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:pr({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:pr({method:"notebookDocument/didChange"}),notebookDocumentDidSave:pr({method:"notebookDocument/didSave"}),notebookDocumentDidClose:pr({method:"notebookDocument/didClose"}),initialized:pr({method:"initialized"}),exit:pr({method:"exit"}),workspaceDidChangeConfiguration:pr({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:pr({method:"textDocument/didOpen"}),textDocumentDidChange:pr({method:"textDocument/didChange"}),textDocumentDidClose:pr({method:"textDocument/didClose"}),textDocumentDidSave:pr({method:"textDocument/didSave"}),textDocumentWillSave:pr({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:pr({method:"workspace/didChangeWatchedFiles"}),setTrace:pr({method:"$/setTrace"}),cancelRequest:pr({method:"$/cancelRequest"}),progress:pr({method:"$/progress"})},client:{workspaceWorkspaceFolders:En({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:En({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:En({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:En({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:En({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:En({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:En({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:En({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:En({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:En({method:"client/registerCapability"}).optional(),clientUnregisterCapability:En({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:En({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:En({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:En({method:"workspace/applyEdit"}).optional(),windowShowMessage:pr({method:"window/showMessage"}),windowLogMessage:pr({method:"window/logMessage"}),telemetryEvent:pr({method:"telemetry/event"}),textDocumentPublishDiagnostics:pr({method:"textDocument/publishDiagnostics"}),logTrace:pr({method:"$/logTrace"}),cancelRequest:pr({method:"$/cancelRequest"}),progress:pr({method:"$/progress"})}});function aS(n,e){if(n.textModel!==e)throw new Error(`Expected text model to be ${e}, but got ${n.textModel}`);return n}var zr=(hY=class{constructor(){Vt(this,"_store",new cpe)}dispose(){this._store.dispose()}_register(n){if(n===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(n)}},Vt(hY,"None",Object.freeze({dispose(){}})),hY),cpe=(n$=class{constructor(){Vt(this,"_toDispose",new Set),Vt(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const n of this._toDispose)n.dispose()}finally{this._toDispose.clear()}}add(n){if(!n)return n;if(n===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?n$.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(n),n}},Vt(n$,"DISABLE_DISPOSED_WARNING",!1),n$);const Bze=new Map([[Zp.Empty,""],[Zp.QuickFix,"quickfix"],[Zp.Refactor,"refactor"],[Zp.RefactorExtract,"refactor.extract"],[Zp.RefactorInline,"refactor.inline"],[Zp.RefactorRewrite,"refactor.rewrite"],[Zp.Source,"source"],[Zp.SourceOrganizeImports,"source.organizeImports"],[Zp.SourceFixAll,"source.fixAll"]]);function Agn(n){if(n)return Bze.get(n)??n}const Fgn=new Map([[yt.CodeActionTriggerType.Invoke,tle.Invoked],[yt.CodeActionTriggerType.Auto,tle.Automatic]]);function $gn(n){return Fgn.get(n)??tle.Invoked}const Hze=new Map([[Kr.Text,yt.CompletionItemKind.Text],[Kr.Method,yt.CompletionItemKind.Method],[Kr.Function,yt.CompletionItemKind.Function],[Kr.Constructor,yt.CompletionItemKind.Constructor],[Kr.Field,yt.CompletionItemKind.Field],[Kr.Variable,yt.CompletionItemKind.Variable],[Kr.Class,yt.CompletionItemKind.Class],[Kr.Interface,yt.CompletionItemKind.Interface],[Kr.Module,yt.CompletionItemKind.Module],[Kr.Property,yt.CompletionItemKind.Property],[Kr.Unit,yt.CompletionItemKind.Unit],[Kr.Value,yt.CompletionItemKind.Value],[Kr.Enum,yt.CompletionItemKind.Enum],[Kr.Keyword,yt.CompletionItemKind.Keyword],[Kr.Snippet,yt.CompletionItemKind.Snippet],[Kr.Color,yt.CompletionItemKind.Color],[Kr.File,yt.CompletionItemKind.File],[Kr.Reference,yt.CompletionItemKind.Reference],[Kr.Folder,yt.CompletionItemKind.Folder],[Kr.EnumMember,yt.CompletionItemKind.EnumMember],[Kr.Constant,yt.CompletionItemKind.Constant],[Kr.Struct,yt.CompletionItemKind.Struct],[Kr.Event,yt.CompletionItemKind.Event],[Kr.Operator,yt.CompletionItemKind.Operator],[Kr.TypeParameter,yt.CompletionItemKind.TypeParameter]]);function Bgn(n){return n?Hze.get(n)??yt.CompletionItemKind.Text:yt.CompletionItemKind.Text}const Wze=new Map([[Mgn.Deprecated,yt.CompletionItemTag.Deprecated]]);function Hgn(n){return Wze.get(n)}const Wgn=new Map([[yt.CompletionTriggerKind.Invoke,P3.Invoked],[yt.CompletionTriggerKind.TriggerCharacter,P3.TriggerCharacter],[yt.CompletionTriggerKind.TriggerForIncompleteCompletions,P3.TriggerForIncompleteCompletions]]);function Vgn(n){return Wgn.get(n)??P3.Invoked}const jgn=new Map([[Pgn.Snippet,yt.CompletionItemInsertTextRule.InsertAsSnippet]]);function zgn(n){if(n)return jgn.get(n)}const Vze=new Map([[Ar.File,yt.SymbolKind.File],[Ar.Module,yt.SymbolKind.Module],[Ar.Namespace,yt.SymbolKind.Namespace],[Ar.Package,yt.SymbolKind.Package],[Ar.Class,yt.SymbolKind.Class],[Ar.Method,yt.SymbolKind.Method],[Ar.Property,yt.SymbolKind.Property],[Ar.Field,yt.SymbolKind.Field],[Ar.Constructor,yt.SymbolKind.Constructor],[Ar.Enum,yt.SymbolKind.Enum],[Ar.Interface,yt.SymbolKind.Interface],[Ar.Function,yt.SymbolKind.Function],[Ar.Variable,yt.SymbolKind.Variable],[Ar.Constant,yt.SymbolKind.Constant],[Ar.String,yt.SymbolKind.String],[Ar.Number,yt.SymbolKind.Number],[Ar.Boolean,yt.SymbolKind.Boolean],[Ar.Array,yt.SymbolKind.Array],[Ar.Object,yt.SymbolKind.Object],[Ar.Key,yt.SymbolKind.Key],[Ar.Null,yt.SymbolKind.Null],[Ar.EnumMember,yt.SymbolKind.EnumMember],[Ar.Struct,yt.SymbolKind.Struct],[Ar.Event,yt.SymbolKind.Event],[Ar.Operator,yt.SymbolKind.Operator],[Ar.TypeParameter,yt.SymbolKind.TypeParameter]]);function jze(n){return Vze.get(n)??yt.SymbolKind.File}const Ugn=new Map([[$ze.Deprecated,yt.SymbolTag.Deprecated]]);function zze(n){return Ugn.get(n)}const Kgn=new Map([[gY.Text,yt.DocumentHighlightKind.Text],[gY.Read,yt.DocumentHighlightKind.Read],[gY.Write,yt.DocumentHighlightKind.Write]]);function qgn(n){return n?Kgn.get(n)??yt.DocumentHighlightKind.Text:yt.DocumentHighlightKind.Text}const Ggn=new Map([[UE.Comment,yt.FoldingRangeKind.Comment],[UE.Imports,yt.FoldingRangeKind.Imports],[UE.Region,yt.FoldingRangeKind.Region]]);function Xgn(n){if(n)return Ggn.get(n)}const Ygn=new Map([[af.Error,z_.Error],[af.Warning,z_.Warning],[af.Info,z_.Information],[af.Hint,z_.Hint]]);function Zgn(n){return Ygn.get(n)??z_.Error}const Qgn=new Map([[z_.Error,af.Error],[z_.Warning,af.Warning],[z_.Information,af.Info],[z_.Hint,af.Hint]]);function Jgn(n){return n?Qgn.get(n)??af.Error:af.Error}const Uze=new Map([[aDe.Unnecessary,B8.Unnecessary],[aDe.Deprecated,B8.Deprecated]]);function emn(n){return Uze.get(n)}const tmn=new Map([[yt.SignatureHelpTriggerKind.Invoke,O3.Invoked],[yt.SignatureHelpTriggerKind.TriggerCharacter,O3.TriggerCharacter],[yt.SignatureHelpTriggerKind.ContentChange,O3.ContentChange]]);function nmn(n){return tmn.get(n)??O3.Invoked}function KE(n){if(n)return{id:n.command,title:n.title,arguments:n.arguments}}const imn=new Map([[oDe.Type,yt.InlayHintKind.Type],[oDe.Parameter,yt.InlayHintKind.Parameter]]);function smn(n){return n?imn.get(n)??yt.InlayHintKind.Type:yt.InlayHintKind.Type}function OC(n,e){if("targetUri"in n){const t=e.bridge.translateBackRange({uri:n.targetUri},n.targetRange);return{uri:t.textModel.uri,range:t.range,originSelectionRange:n.originSelectionRange?e.bridge.translateBackRange({uri:n.targetUri},n.originSelectionRange).range:void 0,targetSelectionRange:n.targetSelectionRange?e.bridge.translateBackRange({uri:n.targetUri},n.targetSelectionRange).range:void 0}}else{const t=e.bridge.translateBackRange({uri:n.uri},n.range);return{uri:t.textModel.uri,range:t.range}}}function da(n){return!n||n.length===0?{language:"*"}:n.map(e=>"notebook"in e?typeof e.notebook=="string"?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function rmn(n,e){if(!e)return!0;const t=n.getLanguageId();if(n.uri.toString(!0),!e||e.length===0)return!0;for(const i of e)if(!(i.language&&i.language!=="*"&&i.language!==t))return!0;return!1}function nle(n){var t;const e={severity:Jgn(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,source:n.source,code:typeof n.code=="string"?n.code:(t=n.code)==null?void 0:t.toString()};return n.tags&&(e.tags=n.tags.map(i=>emn(i)).filter(i=>i!==void 0)),n.relatedInformation&&(e.relatedInformation=n.relatedInformation.map(i=>({resource:oU.parse(i.location.uri),startLineNumber:i.location.range.start.line+1,startColumn:i.location.range.start.character+1,endLineNumber:i.location.range.end.line+1,endColumn:i.location.range.end.character+1,message:i.message}))),e}var omn=class extends zr{constructor(n){super(),this._connection=n,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(Hze.keys())},completionItem:{tagSupport:{valueSet:Array.from(Wze.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(qn.textDocumentCompletion,!0,e=>yt.registerCompletionItemProvider(da(e.documentSelector),new amn(this._connection,e))))}},amn=class{constructor(n,e){Vt(this,"resolveCompletionItem"),this._client=n,this._capabilities=e,e.resolveProvider&&(this.resolveCompletionItem=async(t,i)=>(Kze(t,await this._client.server.completionItemResolve(t._lspItem),this._client.bridge,t._translated,t._model),t))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(n,e,t,i){const s=this._client.bridge.translate(n,e),r=await this._client.server.textDocumentCompletion({textDocument:s.textDocument,position:s.position,context:t.triggerCharacter?{triggerKind:Vgn(t.triggerKind),triggerCharacter:t.triggerCharacter}:void 0});return r?{suggestions:(Array.isArray(r)?r:r.items).map(o=>({...lmn(o,this._client.bridge,s,n,e),_lspItem:o,_translated:s,_model:n}))}:{suggestions:[]}}};function lmn(n,e,t,i,s){let r=n.insertText||n.label,o;n.textEdit&&("range"in n.textEdit?(r=n.textEdit.newText,o=aS(e.translateBackRange(t.textDocument,n.textEdit.range),i).range):(r=n.textEdit.newText,o={insert:aS(e.translateBackRange(t.textDocument,n.textEdit.insert),i).range,replace:aS(e.translateBackRange(t.textDocument,n.textEdit.replace),i).range})),o||(o=Vx.fromPositions(s,s));const a={label:n.label,kind:Bgn(n.kind),insertText:r,sortText:n.sortText,filterText:n.filterText,preselect:n.preselect,commitCharacters:n.commitCharacters,range:o};return Kze(a,n,e,t,i),a}function Kze(n,e,t,i,s){e.detail!==void 0&&(n.detail=e.detail),e.documentation!==void 0&&(n.documentation=cmn(e.documentation)),e.insertTextFormat!==void 0&&(n.insertTextRules=zgn(e.insertTextFormat)),e.tags&&e.tags.length>0&&(n.tags=e.tags.map(Hgn).filter(r=>r!==void 0)),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(n.additionalTextEdits=e.additionalTextEdits.map(r=>({range:aS(t.translateBackRange(i.textDocument,r.range),s).range,text:r.newText}))),e.command&&(n.command=KE(e.command))}function cmn(n){if(n)return typeof n=="string"?n:{value:n.value,isTrusted:!0}}var dmn=class extends zr{constructor(n){super(),this._connection=n,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[H8.Markdown,H8.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(qn.textDocumentHover,!0,e=>yt.registerHoverProvider(da(e.documentSelector),new umn(this._connection,e))))}},umn=class{constructor(n,e){this._client=n,this._capabilities=e}async provideHover(n,e,t){const i=this._client.bridge.translate(n,e),s=await this._client.server.textDocumentHover({textDocument:i.textDocument,position:i.position});return!s||!s.contents?null:{contents:hmn(s.contents),range:s.range?this._client.bridge.translateBackRange(i.textDocument,s.range).range:void 0}}};function hmn(n){return Array.isArray(n)?n.map(e=>lDe(e)):[lDe(n)]}function lDe(n){return typeof n=="string"?{value:n,isTrusted:!0}:"kind"in n?{value:n.value,isTrusted:!0}:{value:`\`\`\`${n.language}
1455
1455
  ${n.value}
@@ -1471,7 +1471,7 @@ ${n.value}
1471
1471
 
1472
1472
  `)},avn=90,lvn=140;function cvn({anchorId:n,msg:e,isFirstInGroup:t,originalMessage:i,isTargeted:s,sessionId:r,sessionInfo:o,isSessionBusy:a,isEditing:l,showAssistantActions:c,onEditMessage:d,onRecallMessage:u,onForkMessage:h,onStartEditing:f,onCancelEditing:g}){const{t:m}=sn(),{message:p}=aa.useApp(),[_]=IA(),v=_.get("debug")==="true",y=e.role==="user",[C,w]=b.useState(!1),[x,L]=b.useState(!1),[I,E]=b.useState(null),N=b.useRef(null),R=b.useRef(null),D=b.useRef(null),M=b.useMemo(()=>svn(e),[e]),T=b.useMemo(()=>ovn(e),[e]),P=i.id,O=r!=null&&r!==""&&!P.startsWith("local-"),A=O&&!a&&y&&M!=null,F=O&&!a&&y,H=O&&!a&&y,$=T!=null,j=!y&&c;b.useEffect(()=>{w(!1)},[l,e.id]),b.useEffect(()=>{l&&(L(!1),E(null))},[l]),b.useEffect(()=>()=>{R.current!=null&&clearTimeout(R.current),D.current!=null&&clearTimeout(D.current)},[]),b.useEffect(()=>{x||E(null)},[x]),b.useEffect(()=>{if(I==null)return;const ee=te=>{var we;const pe=te.target;if(!(pe instanceof Node)){E(null);return}(we=N.current)!=null&&we.contains(pe)||E(null)};return document.addEventListener("pointerdown",ee,!0),()=>{document.removeEventListener("pointerdown",ee,!0)}},[I]);const B=e.content==null?null:typeof e.content=="string"?S.jsx(Jm,{content:e.content}):!Array.isArray(e.content)||!(e.content.some(te=>te.type==="text"||te.type==="image"||te.type==="file")||e.toolCall!=null)?null:S.jsxs("div",{className:"message-contents",children:[e.content.map((te,pe)=>te.type==="text"?S.jsx(Jm,{content:te.text},pe):te.type==="image"?S.jsx("a",{className:"message-image",href:te.url,target:"_blank",rel:"noreferrer",children:S.jsx("img",{src:te.url,alt:te.name??"image"})},pe):te.type==="file"?S.jsxs("div",{className:"message-context-file",children:[S.jsx("span",{className:"material-symbols-rounded message-context-file__icon",children:"description"}),S.jsx("code",{className:"message-context-file__path",children:te.path})]},pe):null),e.toolCall!=null&&S.jsx(q2,{item:{type:"tool_use",id:e.toolCall.id??"legacy",name:e.toolCall.name,input:e.toolCall.args},resultItem:e.toolCall.output!=null?{type:"tool_result",tool_use_id:e.toolCall.id??"legacy",content:e.toolCall.output,is_error:e.toolCall.status==="error"}:void 0})]});if(B==null)return null;const U=()=>{M!=null&&(E(null),f(P))},K=async ee=>{const te=dle(ee);if(te==null||rvn(te,M))return g(P),!0;w(!0);try{const pe=await d(P,te);return pe&&g(P),pe}finally{w(!1)}},G=async ee=>K(ee),ne=async ee=>K(ee),J=async()=>{if(T!=null){E(null);try{await navigator.clipboard.writeText(T),p.success(m("chat.messageActions.copySuccess"))}catch{p.error(m("chat.messageActions.copyFailed"))}}},re=async()=>{E(null),await u(P)},me=async()=>{E(null),await h(P)},ge=ee=>{if(I===ee){if(ee==="recall"){re();return}me();return}E(ee)},ae=()=>{!y||l||(D.current!=null&&(clearTimeout(D.current),D.current=null),!(x||R.current!=null)&&(R.current=setTimeout(()=>{L(!0),R.current=null},avn)))},le=()=>{y&&(R.current!=null&&(clearTimeout(R.current),R.current=null),!(!x||D.current!=null)&&(D.current=setTimeout(()=>{L(!1),E(null),D.current=null},lvn)))},ie=S.jsxs(S.Fragment,{children:[$&&S.jsx("button",{type:"button",className:"msg-action-button msg-action-button--copy",title:m("chat.messageActions.copy"),"aria-label":m("chat.messageActions.copy"),onClick:()=>{J()},children:S.jsx("span",{className:"material-symbols-rounded",children:"content_copy"})}),A&&S.jsx("button",{type:"button",className:"msg-action-button msg-action-button--edit",title:m("chat.messageActions.edit"),"aria-label":m("chat.messageActions.edit"),onClick:U,children:S.jsx("span",{className:"material-symbols-rounded",children:"edit"})}),F&&S.jsxs("button",{type:"button",className:`msg-action-button msg-action-button--recall ${I==="recall"?"is-confirming":""}`,title:m(I==="recall"?"chat.messageActions.confirmInline":"chat.messageActions.recall"),"aria-label":m(I==="recall"?"chat.messageActions.confirmInline":"chat.messageActions.recall"),onClick:()=>{ge("recall")},children:[S.jsx("span",{className:"material-symbols-rounded",children:"undo"}),I==="recall"&&S.jsx("span",{className:"msg-action-button__label",children:m("chat.messageActions.confirmInline")})]}),H&&S.jsxs("button",{type:"button",className:`msg-action-button msg-action-button--fork ${I==="fork"?"is-confirming":""}`,title:m(I==="fork"?"chat.messageActions.confirmInline":"chat.messageActions.fork"),"aria-label":m(I==="fork"?"chat.messageActions.confirmInline":"chat.messageActions.fork"),onClick:()=>{ge("fork")},children:[S.jsx("span",{className:"material-symbols-rounded",children:"fork_right"}),I==="fork"&&S.jsx("span",{className:"msg-action-button__label",children:m("chat.messageActions.confirmInline")})]})]});return S.jsx(lle,{anchorId:n,canEdit:A,canFork:H,canRecall:F,copyableText:T,isDebugMode:v,isEditing:l,message:i,sessionId:r,onFork:me,onRecall:re,onStartEditing:U,children:S.jsx("div",{ref:N,id:n,className:`${y?"chat-message-user":"chat-message-assistant"} ${l?"is-editing":""} ${t?"":"consecutive"} ${x?"is-actions-visible":""} ${s?"is-targeted":""}`,"data-message-id":i.id,onPointerEnter:ae,onPointerLeave:le,children:S.jsxs("div",{className:`message-body-container ${l?"is-editing":""}`,children:[y&&!l&&S.jsx("div",{className:"message-side-actions",children:ie}),S.jsx("div",{className:`bubble ${l?"is-editing":""}`,children:l?S.jsx("div",{className:"message-inline-editor",children:S.jsx(tUe,{variant:"inline-edit",sessionInfo:o,initialContent:M,submitLabel:m("chat.send"),submitLoading:C,autoFocus:!0,onCancel:()=>{g(P)},onSend:G,onSendContent:ne,onInterrupt:()=>{}})}):B}),!l&&S.jsx(cle,{msg:i,isUser:y,children:j?ie:void 0})]})})})}const dvn=(n,e)=>n.anchorId===e.anchorId&&n.isFirstInGroup===e.isFirstInGroup&&n.isTargeted===e.isTargeted&&n.isSessionBusy===e.isSessionBusy&&n.isEditing===e.isEditing&&n.sessionId===e.sessionId&&n.sessionInfo===e.sessionInfo&&n.showAssistantActions===e.showAssistantActions&&n.msg.id===e.msg.id&&n.msg.role===e.msg.role&&n.msg.createdAt===e.msg.createdAt&&n.msg.model===e.msg.model&&n.msg.content===e.msg.content&&n.msg.toolCall===e.msg.toolCall&&n.msg.usage===e.msg.usage&&n.originalMessage===e.originalMessage,uvn=oe.memo(cvn,dvn);function hvn({notice:n,onRetryConnection:e}){const{t}=sn();return S.jsx("div",{className:`message-status-notice message-status-notice--${n.tone} ${n.isMock?"is-mock":""}`,children:S.jsx("div",{className:"message-status-notice__card",role:"status","aria-live":"polite",children:S.jsxs("div",{className:"message-status-notice__content",children:[S.jsxs("div",{className:"message-status-notice__header",children:[S.jsxs("div",{className:"message-status-notice__title-row",children:[S.jsx("span",{className:"material-symbols-rounded message-status-notice__icon",children:n.icon}),S.jsx("div",{className:"message-status-notice__title",children:n.title}),n.isMock&&S.jsx("span",{className:"message-status-notice__badge",children:t("chat.debugMockLabel")})]}),n.meta!=null&&n.meta!==""&&S.jsx("span",{className:"message-status-notice__meta",children:n.meta})]}),S.jsx("div",{className:"message-status-notice__message",children:n.message}),n.detail!=null&&n.detail!==""&&S.jsx("div",{className:"message-status-notice__detail",children:n.detail}),n.action==="retry-connection"&&S.jsx("div",{className:"message-status-notice__actions",children:S.jsx(Pt,{size:"small",onClick:e,children:t("chat.retryConnection")})})]})})})}const fvn=n=>n.type==="message"&&n.originalMessage.role==="user",gvn=n=>{const e=[];let t=null;for(const i of n.renderItems){if(fvn(i)){t!=null&&e.push(t),t={id:i.originalMessage.id,items:[i],startedByUser:!0};continue}if(t==null){t={id:`orphan:${i.anchorId}`,items:[i],startedByUser:!1};continue}t.items.push(i)}return t!=null&&e.push(t),e.map((i,s)=>{var f,g;const r=s===e.length-1,o=((f=i.items[0])==null?void 0:f.originalMessage.createdAt)??null,a=((g=i.items[i.items.length-1])==null?void 0:g.originalMessage.createdAt)??null,l=Math.max(i.items.length-2,0),c=i.startedByUser&&l>0,d=n.hashAnchorId!=null&&n.hashAnchorId!==""?i.items.some(m=>m.anchorId===n.hashAnchorId):!1,h=c&&!(r&&n.keepLastTurnExpanded)&&!n.expandedTurnIds.has(i.id)&&!d;return{durationMs:o!=null&&a!=null?Math.max(a-o,0):null,hiddenCount:l,id:i.id,isCollapsed:h,isExpandable:c,items:i.items,visibleItems:h?[i.items[0],i.items[i.items.length-1]]:i.items}})};function mvn(n){var r;const e=[],t=(o,a,l)=>{for(let c=a;c<l.length;c++){const d=l[c];if(Array.isArray(d.content)){const u=d.content.find(h=>h.type==="tool_result"&&h.tool_use_id===o);if(u)return u}}};let i=0;for(;i<n.length;){const o=n[i];if(!o||!o.content){o&&o.toolCall&&e.push({anchorId:WD(o.id),originalMessage:o,type:"message",message:o,isFirstInGroup:i===0||i>0&&((r=n[i-1])==null?void 0:r.role)!==o.role}),i++;continue}const a=i>0?n[i-1]:null,l=i===0||a!=null&&a.role!==o.role;if(typeof o.content=="string"){e.push({anchorId:WD(o.id),originalMessage:o,type:"message",message:o,isFirstInGroup:l}),i++;continue}if(Array.isArray(o.content)){const c=o.content,d=[];let u=[],h=0;const f=()=>{u.length>0&&(e.push({anchorId:WD(o.id,`tool-${h}`),originalMessage:o,type:"tool-group",id:`group-${o.id}-${h}`,items:[...u],footer:void 0}),u=[],h++)},g=()=>{d.length>0&&(e.push({anchorId:WD(o.id,`text-${h}`),originalMessage:o,type:"message",message:{...o,id:`${o.id}-text-${h}`,content:[...d]},isFirstInGroup:l&&h===0}),d.length=0,h++)};for(const m of c)if(m.type==="text"||m.type==="image"||m.type==="file")f(),d.push(m);else if(m.type==="tool_use"){g();const p=t(m.id,i,n);u.push({item:m,resultItem:p})}if(g(),f(),h===0&&o.toolCall&&(e.push({anchorId:WD(o.id),originalMessage:o,type:"message",message:o,isFirstInGroup:l}),h++),h>0){const m=e[e.length-1];m.type==="tool-group"&&(m.footer={model:o.model,usage:o.usage,createdAt:o.createdAt,originalMessage:o})}}i++}const s=[];for(const o of e){if(o.type==="tool-group"){const a=s[s.length-1];if(a&&a.type==="tool-group"){a.items.push(...o.items),a.originalMessage=o.originalMessage,a.anchorId=o.anchorId,o.footer&&(a.footer=o.footer);continue}}s.push(o)}return s}function pvn({anchorId:n,items:e,originalMessage:t,sessionId:i,targetToolUseId:s,footer:r}){const{t:o}=sn(),[a]=IA(),l=a.get("debug")==="true",[c,d]=b.useState(!1);if(e.length===0)return null;const u=F_n(e,o),h=s!=null&&s!==""&&e.some(g=>g.item.id===s),f=c||h;return e.length===1?S.jsx(lle,{anchorId:n,canEdit:!1,canFork:!1,canRecall:!1,isDebugMode:l,isEditing:!1,message:t,sessionId:i,onFork:()=>{},onRecall:()=>{},onStartEditing:()=>{},children:S.jsxs("div",{id:n,className:"tool-group-container",children:[S.jsx("div",{className:"tool-group-wrapper single-item","data-tool-use-id":e[0].item.id,children:S.jsx(q2,{item:e[0].item,resultItem:e[0].resultItem})}),r&&l&&S.jsx("div",{className:"tool-group-footer-wrapper",children:S.jsx(cle,{msg:r.originalMessage,isUser:!1})})]})}):S.jsx(lle,{anchorId:n,canEdit:!1,canFork:!1,canRecall:!1,isDebugMode:l,isEditing:!1,message:t,sessionId:i,onFork:()=>{},onRecall:()=>{},onStartEditing:()=>{},children:S.jsxs("div",{id:n,className:"tool-group-container",children:[S.jsxs("div",{className:"tool-group-wrapper card-style",children:[S.jsxs("div",{className:"tool-group-header","aria-expanded":f,onClick:()=>d(!c),children:[S.jsx("div",{className:"header-left",children:S.jsx("span",{children:u})}),S.jsx("span",{className:`material-symbols-rounded expand-icon ${f?"is-expanded":""}`,children:"chevron_right"})]}),S.jsx("div",{className:`tool-group-list-shell ${f?"expanded":"collapsed"}`,"aria-hidden":!f,children:S.jsx("div",{className:"tool-group-list",children:e.map((g,m)=>S.jsx(q2,{item:g.item,resultItem:g.resultItem},g.item.id||m))})})]}),r&&l&&S.jsx("div",{className:"tool-group-footer-wrapper",children:S.jsx(cle,{msg:r.originalMessage,isUser:!1})})]})})}const _vn=(n,e)=>{if(n.anchorId!==e.anchorId||n.items.length!==e.items.length||n.targetToolUseId!==e.targetToolUseId)return!1;for(let t=0;t<n.items.length;t++)if(n.items[t].item!==e.items[t].item||n.items[t].resultItem!==e.items[t].resultItem)return!1;return n.originalMessage!==e.originalMessage||n.sessionId!==e.sessionId?!1:n.footer==null&&e.footer==null?!0:n.footer==null||e.footer==null?!1:n.footer.originalMessage===e.footer.originalMessage&&n.footer.createdAt===e.footer.createdAt&&n.footer.model===e.footer.model&&n.footer.usage===e.footer.usage},vvn=oe.memo(pvn,_vn);function bvn({isReady:n,messages:e,session:t,targetMessageId:i,targetToolUseId:s,sessionInfo:r,historyStatusNotices:o,onRetryConnection:a,interactionRequest:l,onInteractionResponse:c,setMessages:d,onClearMessages:u,placeholder:h,modelMenuGroups:f,modelSearchOptions:g,recommendedModelOptions:m,servicePreviewModelOptions:p,onToggleRecommendedModel:_,updatingRecommendedModelValue:v,selectedModel:y,modelForQuery:C,onModelChange:w,effort:x,effortOptions:L,onEffortChange:I,permissionMode:E,permissionModeOptions:N,onPermissionModeChange:R,selectedAdapter:D,adapterOptions:M,onAdapterChange:T,modelUnavailable:P,hasAvailableModels:O}){const{t:A}=sn(),{message:F}=aa.useApp(),H=If(),$=e.length+o.length,{messagesEndRef:j,messagesContainerRef:z,messagesContentRef:B,showScrollBottom:U,scrollToBottom:K}=rPt({contentVersion:$}),{isCreating:G,send:ne,sendContent:J,editMessage:re,forkMessage:me,interrupt:ge,clearMessages:ae,recallMessage:le}=aPt({session:t,modelForQuery:C,hasAvailableModels:O,effort:x,permissionMode:E,adapter:D,onClearMessages:u}),ie=b.useRef(!1),ee=b.useRef(""),te=b.useRef(""),[pe,we]=b.useState(null),[De,Ke]=b.useState(new Set),Le=Ie=>{var ye;return{id:(ye=globalThis.crypto)!=null&&ye.randomUUID?globalThis.crypto.randomUUID():`local-${Date.now()}-${Math.random().toString(16).slice(2)}`,role:"user",content:Ie,createdAt:Date.now()}},Me=async Ie=>{if(!(t!=null&&t.id)){const ye=Le(Ie);d(st=>[...st,ye]),await ne(Ie)||d(st=>st.filter(Dt=>Dt.id!==ye.id));return}await ne(Ie)&&d(ye=>[...ye,Le(Ie)])},xe=async Ie=>{if(!(t!=null&&t.id)){const ye=Le(Ie);d(st=>[...st,ye]),await J(Ie)||d(st=>st.filter(Dt=>Dt.id!==ye.id));return}await J(Ie)&&d(ye=>[...ye,Le(Ie)])};b.useEffect(()=>{ie.current=!1,ee.current="",te.current="",we(null),Ke(new Set)},[t==null?void 0:t.id]),b.useEffect(()=>{!ie.current&&n&&H.hash===""&&(K("auto"),ie.current=!0)},[$,n,H.hash,K]),b.useEffect(()=>{H.hash===""&&!U&&K("auto")},[$,H.hash,K,U]);const ke=Ie=>{let Re=!1;we(ye=>ye!=null&&ye!==Ie?(Re=!0,ye):Ie),Re&&F.warning(A("chat.messageActions.editInProgress"))},Ze=pe!=null,ve=b.useMemo(()=>mvn(e),[e]),Ae=b.useMemo(()=>decodeURIComponent(H.hash.replace(/^#/,"")),[H.hash]),We=b.useMemo(()=>{if(s!=null&&s!==""){const Ie=ve.find(Re=>Re.type==="tool-group"&&Re.items.some(ye=>ye.item.id===s));return(Ie==null?void 0:Ie.anchorId)??""}if(i!=null&&i!==""){const Ie=ve.find(Re=>Re.type==="message"&&Re.originalMessage.id===i);return(Ie==null?void 0:Ie.anchorId)??""}return""},[ve,i,s]),Ve=b.useMemo(()=>gvn({renderItems:ve,expandedTurnIds:De,hashAnchorId:Ae!==""?Ae:We,keepLastTurnExpanded:G||(t==null?void 0:t.status)==="running"||(t==null?void 0:t.status)==="waiting_input"}),[De,Ae,G,ve,t==null?void 0:t.status,We]),rt=b.useMemo(()=>{for(let Ie=ve.length-1;Ie>=0;Ie-=1){const Re=ve[Ie];if(Re!=null&&Re.type!=="tool-group"&&Re.message.role!=="user")return Re.anchorId}return null},[ve]);b.useEffect(()=>{const Ie=Ae;if(Ie===""){ee.current="";return}if(!n||ee.current===Ie)return;let Re=null,ye=null,He=null;const st=()=>{const Dt=document.getElementById(Ie);return Dt==null?!1:(ee.current=Ie,Dt.scrollIntoView({block:"center",behavior:"auto"}),Dt.classList.add("is-anchor-target"),Re=setTimeout(()=>{Dt.classList.remove("is-anchor-target")},1800),!0)};return st()||(He=requestAnimationFrame(()=>{st()||(ye=setTimeout(()=>{st()},120))})),()=>{He!=null&&cancelAnimationFrame(He),ye!=null&&clearTimeout(ye),Re!=null&&clearTimeout(Re)}},[Ae,n,Ve]),b.useEffect(()=>{const Ie=s!=null&&s!==""?{key:"data-tool-use-id",value:s,targetKey:`tool:${s}`}:i!=null&&i!==""?{key:"data-message-id",value:i,targetKey:`message:${i}`}:void 0;if(Ie==null){te.current="";return}if(te.current===Ie.targetKey)return;const Re=window.requestAnimationFrame(()=>{const ye=B.current;if(ye==null)return;const He=Array.from(ye.querySelectorAll(`[${Ie.key}]`)).find(st=>st.getAttribute(Ie.key)===Ie.value);He!=null&&(te.current=Ie.targetKey,He.scrollIntoView({block:"center",behavior:"smooth"}))});return()=>{window.cancelAnimationFrame(Re)}},[Ve,B,i,s]);const ze=Ie=>{Ke(Re=>{const ye=new Set(Re);return ye.has(Ie)?ye.delete(Ie):ye.add(Ie),ye})},Fe=Ie=>{if(Ie==null)return null;const Re=Math.floor(Ie/1e3);if(Re<=0)return A("chat.turnDurationUnderSecond");const ye=Math.floor(Re/3600),He=Math.floor(Re%3600/60),st=Re%60;return ye>0?[A("chat.turnDurationHours",{count:ye}),He>0?A("chat.turnDurationMinutes",{count:He}):null].filter(Boolean).join(" "):He>0?[A("chat.turnDurationMinutes",{count:He}),st>0?A("chat.turnDurationSeconds",{count:st}):null].filter(Boolean).join(" "):A("chat.turnDurationSeconds",{count:st})},it=Ie=>S.jsx("div",{className:`chat-turn-summary ${Ie.isCollapsed?"is-collapsed":"is-expanded"}`,children:S.jsxs("div",{className:"chat-turn-summary__content",children:[S.jsxs("div",{className:"chat-turn-summary__meta",children:[Fe(Ie.durationMs)!=null&&S.jsx("span",{className:"chat-turn-summary__time",children:A("chat.turnProcessedDuration",{duration:Fe(Ie.durationMs)})}),S.jsx("span",{className:"chat-turn-summary__count",children:A("chat.turnSummaryCount",{count:Ie.hiddenCount})})]}),S.jsx("button",{type:"button",className:"chat-turn-summary__toggle","aria-expanded":!Ie.isCollapsed,onClick:()=>ze(Ie.id),children:S.jsx("span",{className:"material-symbols-rounded",children:"chevron_right"})})]})}),tt=(Ie,Re)=>Ie.type==="message"?S.jsx(uvn,{anchorId:Ie.anchorId,msg:Ie.message,isFirstInGroup:Ie.isFirstInGroup,isTargeted:Ie.originalMessage.id===i,originalMessage:Ie.originalMessage,sessionInfo:r,isEditing:pe===Ie.originalMessage.id,isSessionBusy:G||(t==null?void 0:t.status)==="running"||(t==null?void 0:t.status)==="waiting_input",showAssistantActions:Ie.anchorId===rt,onEditMessage:re,onForkMessage:me,onRecallMessage:le,onStartEditing:ke,onCancelEditing:ye=>{we(He=>He===ye?null:He)},sessionId:t==null?void 0:t.id},Re??Ie.anchorId):S.jsx(vvn,{anchorId:Ie.anchorId,items:Ie.items,originalMessage:Ie.originalMessage,sessionId:t==null?void 0:t.id,targetToolUseId:s,footer:Ie.footer},Re??Ie.id);return S.jsxs(S.Fragment,{children:[S.jsxs("div",{className:`chat-messages ${n?"ready":""}`,ref:z,children:[S.jsxs("div",{className:"chat-messages-content",ref:B,children:[!(t!=null&&t.id)&&G&&S.jsxs("div",{className:"chat-pending-session-banner",children:[S.jsx("span",{className:"material-symbols-rounded",children:"hourglass_top"}),S.jsx("span",{children:A("common.creatingChat")})]}),Ve.map(Ie=>Ie.isExpandable?S.jsxs("div",{className:`chat-turn ${Ie.isCollapsed?"is-collapsed":"is-expanded"}`,children:[tt(Ie.items[0],`${Ie.id}:leading`),S.jsxs("div",{className:`chat-turn__summary-region ${Ie.isCollapsed?"is-collapsed":"is-expanded"}`,children:[it(Ie),S.jsx("div",{className:`chat-turn__collapsible ${Ie.isCollapsed?"is-collapsed":"is-expanded"}`,"aria-hidden":Ie.isCollapsed,children:S.jsx("div",{className:"chat-turn__collapsible-inner",children:Ie.items.slice(1,-1).map(Re=>tt(Re))})})]}),tt(Ie.items[Ie.items.length-1],`${Ie.id}:trailing`)]},Ie.id):S.jsx(oe.Fragment,{children:Ie.items.map(Re=>tt(Re))},Ie.id)),o.map(Ie=>S.jsx(hvn,{notice:Ie,onRetryConnection:a},Ie.id)),S.jsx("div",{ref:j})]}),U&&S.jsx("div",{className:"scroll-bottom-btn",onClick:()=>K(),children:S.jsx("span",{className:"material-symbols-rounded",children:"arrow_downward"})})]}),!(t!=null&&t.id)&&e.length===0&&o.length===0&&S.jsx("div",{className:"new-session-guide-wrapper",children:S.jsx(cPt,{})}),S.jsx(lPt,{messages:e}),!Ze&&S.jsx("div",{className:"sender-container",children:S.jsx(tUe,{onSend:Me,onSendContent:xe,adapterLocked:(t==null?void 0:t.id)!=null,sessionStatus:G?"running":t==null?void 0:t.status,onInterrupt:ge,onClear:ae,sessionInfo:r,interactionRequest:l,onInteractionResponse:c,placeholder:h,modelMenuGroups:f,modelSearchOptions:g,recommendedModelOptions:m,servicePreviewModelOptions:p,onToggleRecommendedModel:_,updatingRecommendedModelValue:v,selectedModel:y,onModelChange:w,effort:x,effortOptions:L,onEffortChange:I,permissionMode:E,permissionModeOptions:N,onPermissionModeChange:R,selectedAdapter:D,adapterOptions:M,onAdapterChange:T,modelUnavailable:P})})]})}function yvn({session:n,sessionInfo:e,onClose:t}){return S.jsx("div",{className:"chat-settings-panel",children:S.jsx(iPt,{session:n,sessionInfo:e,onClose:t})})}function Cvn(n){return n.replace(/\W/g,"_")}function tf(n){const[e,t,i]=n.split(":").map(Number);return(e||0)*3600+(t||0)*60+(i||0)}function AL(n){const[e,t,i]=n.split(":"),s=r=>{const o=Number.parseInt(r??"0",10);return Number.isFinite(o)?`${o}`.padStart(2,"0"):"00"};return`${s(e)}:${s(t)}:${s(i)}`}function xDe(){let n=0;return e=>`${e}_${n++}`}function wvn(n,e){const t=xDe(),i=xDe(),s=[],r=[],o="​";let a=0;const l=()=>(a+=1,o.repeat(a)),c=g=>{s.push(g)},d=g=>{const m=[{start:g.startTime,end:g.endTime}],p=g.events??[],_=p.findIndex(w=>w.type==="tool__AskUserQuestion");if(_<0)return m;const v=p[_],y=tf(v.startTime)<=tf(v.endTime)?v.startTime:v.endTime,C=tf(v.startTime)<=tf(v.endTime)?v.endTime:v.startTime;return tf(C)<=tf(y)||(m[m.length-1]={start:m[m.length-1].start,end:y},m.push({start:C,end:g.endTime})),m},u=g=>{for(let m=0;m<g.length;m+=1){const p=g[m],{type:_,startTime:v,endTime:y}=p;switch(_){case"tool__StartTasks":{const{tasks:C={}}=p,w=i("section"),x=l();for(const[L,I]of Object.entries(C)){const E=d(I);E.forEach((R,D)=>{const M=t("task"),T=E.length>1?`${L} - ${D}`:L,P={id:M,label:L,payload:{kind:"task",name:L,task:I}};r.push({id:M,label:T,start:AL(R.start),end:AL(R.end),sectionId:w,sectionLabel:x,type:"task",interaction:P}),c(P)});const{events:N=[]}=I;N.length>0&&u(N)}break}}}},h=t("main"),f=i("section");return r.push({id:h,label:e.ganttMainSection,start:AL(n.startTime),end:AL(n.endTime),sectionId:f,sectionLabel:e.ganttMainSection,type:"task"}),u(n.events??[]),{items:r,interactions:s}}function Svn(n){var i;const e=["gantt","dateFormat HH:mm:ss","axisFormat %H:%M:%S"],t=new Map;for(const s of n)t.has(s.sectionId)||t.set(s.sectionId,{label:s.sectionLabel,items:[]}),(i=t.get(s.sectionId))==null||i.items.push(s);for(const s of t.values()){e.push(s.label?`section ${s.label}`:"section");for(const r of s.items)r.end&&e.push(`${r.label} :${r.id}, ${r.start}, ${r.end}`)}return e.join(`
1473
1473
  `)}function xvn(n,e){const{items:t,interactions:i}=wvn(n,e);return{code:Svn(t),interactions:i}}function kvn(n){if(n)return n.replace(/"/g,"'")}function Lvn(n){return{normalizeCommitId:i=>i.replace(/\s+/g,"_"),allocateCommitId:i=>{let s=i,r=1;for(;n.has(s);)s=`${i}_${r}`,r+=1;return n.add(s),s}}}function i$(n,e){switch(e){case"tool__StartTasks":return n.startTasks;case"tool__AskUserQuestion":return n.askUserQuestion;case"tool__Edit":return n.edit;case"tool__ResumeTask":return n.resumeTask;case"user__Prompt":return n.userPrompt;default:return e}}function kDe(n){switch(n.kind){case"merge":return n.target;case"branch":return n.name;default:return n.branch}}function Evn(n){return[...n].sort((e,t)=>{const i=tf(e.time)-tf(t.time);if(i!==0)return i;if(e.priority!==t.priority)return e.priority-t.priority;const s=kDe(e),r=kDe(t);return s!==r?s.localeCompare(r):e.seq-t.seq})}function Ivn(n){const e=["gitGraph TB:"],t=new Set,i=new Set,{normalizeCommitId:s,allocateCommitId:r}=Lvn(i),o=new Map,a=new Map,l=new Map,c=new Map;let d,u,h=0;const f=[],g=[],m=(R,D)=>{const M=kvn(D);return M?e.push(`commit id:"${R}" tag:"${M}"`):e.push(`commit id:"${R}"`),R},p=(R,D,M,T)=>{if(!d){d={id:R,branch:D,time:M,seq:T};return}const P=tf(M)-tf(d.time);(P>0||P===0&&T>d.seq)&&(d={id:R,branch:D,time:M,seq:T})},_=R=>{let D=R;for(;D;){const M=a.get(D);if(M)return{id:M,branch:l.get(M)??D};const T=c.get(D);if(!T||T===D)break;D=T}},v=R=>{if(R)return _(R);if(d)return{id:d.id,branch:d.branch}},y=(R,D,M,T)=>{const P=s(R),O=r(P);return M!=null&&M.branchName&&typeof M.priority=="number"?(f.push({kind:"commit",time:R,branch:M.branchName,commitId:O,action:D,priority:M.priority,seq:h++}),a.set(M.branchName,O),l.set(O,M.branchName),p(O,M.branchName,R,h-1),T&&g.push({id:O,label:D??O,payload:T}),O):(T&&g.push({id:O,label:D??O,payload:T}),m(O,D))},C=R=>{t.has(R)||(t.add(R),u=R,e.push(`branch ${R}`))},w=R=>{u=R,e.push(`checkout ${R}`)},x=(R,D,M,T)=>{const P=[];D&&P.push(`id:"${D}"`),M&&P.push(`tag:"${M}"`),e.push(`merge ${R} ${P.join(" ")}`),D&&(T!=null&&T.branchName)&&T.time&&typeof T.seq=="number"&&(a.set(T.branchName,D),l.set(D,T.branchName),p(D,T.branchName,T.time,T.seq))},L=(R,D,M,T)=>{f.push({kind:"branch",time:R,baseBranch:D,name:M,priority:T,seq:h++})},I=(R,D,M,T,P,O)=>{const A=s(R),F=r(A);return f.push({kind:"merge",time:R,target:D,source:M,action:T,mergeId:F,priority:P,seq:h++}),O&&g.push({id:F,label:T,payload:O}),F},E="main";return{get curBranch(){return u},labels:n,lines:e,ops:f,interactions:g,commit:m,branch:C,checkout:w,merge:x,addCommit:y,addBranch:L,addMerge:I,ensureBranch:R=>{R!==E&&C(R)},normalizeCommitId:s,allocateCommitId:r,findLatestCommitId:v,resumeCommitIds:o,parentByBranch:c}}function wUe(n,e,t,i){const{labels:s,addCommit:r,addBranch:o,addMerge:a,parentByBranch:l,resumeCommitIds:c}=i;for(const d of n){const{type:u,startTime:h,endTime:f}=d;switch(u){case"tool__StartTasks":{r(h,s.taskStart,{branchName:e,priority:10},{kind:"event",event:d});const{tasks:g={}}=d;for(const[m,p]of Object.entries(g)){const _=Cvn(m);l.set(_,e),o(h,e,_,15),r(p.startTime,s.taskStart,{branchName:_,priority:16},{kind:"task",name:m,task:p});const{events:v=[]}=p;v.length>0&&wUe(v,_,e,i),r(p.endTime,s.taskEnd,{branchName:_,priority:60})}r(f,s.allTasksDone,{branchName:e,priority:70});break}case"tool__AskUserQuestion":r(h,s.askUserQuestion,{branchName:e,priority:20},{kind:"event",event:d}),a(f,t,e,s.userAnswer,80,{kind:"event",event:d});break;case"tool__Edit":r(h,i$(s,u),{branchName:e,priority:30},{kind:"event",event:d});break;case"tool__ResumeTask":{const g=r(h,i$(s,u),{branchName:e,priority:40},{kind:"event",event:d});c.set(e,g);break}case"user__Prompt":a(h,e,"<prev_branch>",i$(s,u),50,{kind:"event",event:d});break;default:r(f,i$(s,u),{branchName:e,priority:55},{kind:"event",event:d});break}}}function Nvn(n){const e=Evn(n.ops);for(const t of e)switch(t.kind){case"commit":n.ensureBranch(t.branch),n.checkout(t.branch),n.commit(t.commitId,t.action);break;case"branch":n.checkout(t.baseBranch),n.ensureBranch(t.name);break;case"merge":{t.source==="<prev_branch>"&&(t.source=n.curBranch),n.ensureBranch(t.target),n.ensureBranch(t.source),n.checkout(t.target),n.merge(t.source,t.mergeId,t.action,{branchName:t.target,time:t.time,seq:t.seq});break}}}function Dvn(n,e){const t=Ivn(e),i="main";return t.checkout(i),t.addCommit(n.startTime,e.mainStart),wUe(n.events??[],i,i,t),Nvn(t),t.checkout(i),t.addCommit(n.endTime,e.mainEnd),{code:t.lines.join(`
1474
- `),interactions:t.interactions}}function LDe(n){const{task:e,viewMode:t,className:i,style:s}=n,r=oe.useRef(null),{t:o}=sn(),a=oe.useMemo(()=>({mainStart:o("chat.timeline.mainStart"),mainEnd:o("chat.timeline.mainEnd"),startTasks:o("chat.timeline.startTasks"),allTasksDone:o("chat.timeline.allTasksDone"),askUserQuestion:o("chat.timeline.askUserQuestion"),edit:o("chat.timeline.edit"),resumeTask:o("chat.timeline.resumeTask"),userPrompt:o("chat.timeline.userPrompt"),userAnswer:o("chat.timeline.userAnswer"),receiveReply:o("chat.timeline.receiveReply"),taskStart:o("chat.timeline.taskStart"),taskEnd:o("chat.timeline.taskEnd"),ganttTitle:o("chat.timeline.ganttTitle"),ganttMainSection:o("chat.timeline.ganttMainSection"),ganttTasksSection:o("chat.timeline.ganttTasksSection")}),[o]),l=oe.useMemo(()=>t==="gantt"?xvn(e,a):Dvn(e,a),[a,e,t]),c=oe.useId(),d=oe.useMemo(()=>c.replace(/\W/g,"_"),[c]),u=oe.useRef(new Map),h=oe.useMemo(()=>l.code,[l.code]);return oe.useEffect(()=>{let f=!1;return(async()=>{const p=(await Q(()=>import("./mermaid.core-Cg1CCDo6.js").then(x=>x.b5),[])).default,_=getComputedStyle(document.body).fontFamily;if(p.initialize({startOnLoad:!1,securityLevel:"loose",themeVariables:{fontFamily:_},gitGraph:{},gantt:{topAxis:!0,displayMode:"compact",gridLineStartPadding:0,leftPadding:16,rightPadding:16}}),f)return;const v=r.current;if(!v)return;const{svg:y,bindFunctions:C}=await p.render(d,h);if(f)return;v.innerHTML=y;const w=v.querySelector("svg");if(w){w.classList.add("session-timeline-mermaid__svg");for(const x of l.interactions){const L=w.querySelector(`#${CSS.escape(x.id)}`);L&&(L.classList.add("session-timeline-mermaid__interactive"),L.addEventListener("click",()=>{const I=u.current.get(x.id);I&&console.warn(I.payload)}))}}typeof C=="function"&&C(v)})(),()=>{f=!0}},[l.interactions,h,d]),oe.useEffect(()=>{u.current=new Map(l.interactions.map(f=>[f.id,{label:f.label,payload:f.payload}]))},[l.interactions]),S.jsx("div",{ref:r,className:`session-timeline-panel session-timeline-panel--${t}${i?` ${i}`:""}`,style:s})}const Tvn=(n,e)=>{const t=[];let i=0;const s=(o,a,l,c,d)=>{t.push({id:`${o}-${a}-${l}-${i}`,label:o,startTime:a,endTime:l,depth:c,payload:d}),i+=1},r=(o,a)=>{for(const l of o)l.type==="tool__StartTasks"?s(e.startTasks,l.startTime,l.endTime,a,l):l.type==="tool__AskUserQuestion"?s(e.askUserQuestion,l.startTime,l.endTime,a,l):l.type==="tool__Edit"?s(e.edit,l.startTime,l.endTime,a,l):l.type==="tool__ResumeTask"?s(e.resumeTask,l.startTime,l.endTime,a,l):l.type==="user__Prompt"&&s(e.userPrompt,l.startTime,l.endTime,a,l)};return s(e.mainStart,n.startTime,n.startTime,0),r(n.events??[],0),s(e.mainEnd,n.endTime,n.endTime,0),t.map((o,a)=>({...o,index:a})).sort((o,a)=>{const l=tf(o.startTime)-tf(a.startTime);return l!==0?l:o.index-a.index}).map(({index:o,...a})=>a)};function Rvn({task:n}){const{t:e}=sn(),[t,i]=oe.useState(""),s=oe.useRef(null),[r,o]=oe.useState(240),a=oe.useMemo(()=>({mainStart:e("chat.timeline.mainStart"),mainEnd:e("chat.timeline.mainEnd"),startTasks:e("chat.timeline.startTasks"),askUserQuestion:e("chat.timeline.askUserQuestion"),edit:e("chat.timeline.edit"),resumeTask:e("chat.timeline.resumeTask"),userPrompt:e("chat.timeline.userPrompt")}),[e]),l=oe.useMemo(()=>Tvn(n,a),[a,n]),c=oe.useMemo(()=>{const h=t.trim().toLowerCase();return h?l.filter(f=>`${f.label} ${f.startTime} ${f.endTime}`.toLowerCase().includes(h)):l},[l,t]),d=e("chat.timelineEmptyValue"),u=oe.useMemo(()=>[{title:e("chat.timelineEventName"),key:"label",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__label",style:{paddingLeft:`${f.depth*16}px`},children:f.label})},{title:e("chat.timelineInput"),key:"input",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__value",children:f.input??d})},{title:e("chat.timelineOutput"),key:"output",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__value",children:f.output??d})},{title:e("chat.timelineTiming"),key:"time",width:160,render:(h,f)=>{const g=AL(f.startTime),m=AL(f.endTime);return S.jsx("span",{className:"session-timeline-event-table__time",children:g===m?g:`${g} → ${m}`})}}],[d,e]);return oe.useEffect(()=>{const h=s.current;if(!h)return;const f=()=>{const m=h.querySelector(".session-timeline-event-table__header"),p=h.querySelector(".ant-table-pagination"),_=(m==null?void 0:m.offsetHeight)??0,v=(p==null?void 0:p.offsetHeight)??0,y=Math.max(160,h.clientHeight-_-v-16);o(C=>C===y?C:y)};f();const g=new ResizeObserver(f);return g.observe(h),()=>{g.disconnect()}},[]),S.jsxs("div",{ref:s,className:"session-timeline-event-table",children:[S.jsxs("div",{className:"session-timeline-event-table__header",children:[S.jsx("span",{className:"session-timeline-event-table__title",children:e("chat.timeline.eventListTitle")}),S.jsx(gi,{className:"session-timeline-event-table__search",allowClear:!0,value:t,onChange:h=>i(h.target.value),placeholder:e("chat.timeline.eventListSearch")})]}),S.jsx(Np,{className:"session-timeline-event-table__table",size:"small",columns:u,dataSource:c,rowKey:"id",onRow:h=>({onClick:()=>{h.payload&&console.warn(h.payload)}}),pagination:{pageSize:20,showSizeChanger:!0,pageSizeOptions:["10","20","50"]},scroll:{y:r},locale:{emptyText:e("chat.timelineEmpty")}})]})}const vY={startTime:"09:40:00",endTime:"11:30:48",events:[{type:"tool__StartTasks",startTime:"09:41:02",endTime:"10:10:25",tasks:{taskA:{startTime:"09:41:10",endTime:"09:55:02",description:"Task A"},taskB:{startTime:"09:41:10",endTime:"09:50:40",description:"Task B"},taskC:{startTime:"09:41:10",endTime:"10:10:20",description:"Task C",events:[{type:"tool__StartTasks",startTime:"09:48:00",endTime:"10:05:30",tasks:{taskC0:{startTime:"09:49:10",endTime:"10:05:25",events:[{type:"tool__AskUserQuestion",startTime:"09:57:00",endTime:"09:59:23"},{type:"user__Prompt",startTime:"09:58:10",endTime:"09:58:20"}]}}},{type:"tool__Edit",startTime:"09:57:10",endTime:"09:59:20"},{type:"tool__ResumeTask",startTime:"09:59:22",endTime:"10:05:30"}]}}},{type:"tool__StartTasks",startTime:"10:41:02",endTime:"11:10:25",tasks:{taskA1:{startTime:"10:41:10",endTime:"10:55:02",description:"Task A1"},taskB1:{startTime:"10:41:10",endTime:"10:50:40",description:"Task B1"},taskC1:{startTime:"10:41:10",endTime:"11:10:20",description:"Task C1",events:[{type:"tool__StartTasks",startTime:"10:48:00",endTime:"11:05:30",tasks:{taskC10:{startTime:"10:49:10",endTime:"11:05:25",events:[{type:"tool__AskUserQuestion",startTime:"10:57:00",endTime:"10:59:23"},{type:"user__Prompt",startTime:"10:58:10",endTime:"10:58:20"}]}}},{type:"tool__Edit",startTime:"10:57:10",endTime:"10:59:20"},{type:"tool__ResumeTask",startTime:"10:59:22",endTime:"11:05:30"}]}}}]};function Mvn({messages:n}){return S.jsxs("div",{className:"chat-timeline-view",children:[S.jsx("section",{className:"session-timeline-section session-timeline-section--fixed",children:S.jsx(LDe,{task:vY,viewMode:"gantt"})}),S.jsxs("section",{className:"session-timeline-section session-timeline-section--flex session-timeline-section--row",children:[S.jsx("div",{className:"session-timeline-column session-timeline-column--graph",children:S.jsx(LDe,{task:vY,viewMode:"git"})}),S.jsx("div",{className:"session-timeline-column session-timeline-column--events",children:S.jsx(Rvn,{task:vY})})]})]})}const EDe=(n,e=!1)=>({icon:"settings_suggest",id:e?"mock-model-unavailable":"model-unavailable",isMock:e,message:n("chat.modelConfigRequired"),detail:n("chat.modelConfigRequiredHelp"),tone:"warning",title:n("chat.modelConfigRequiredTitle")}),bY=(n,e,t=!1)=>{const i=e.reason==="closed";return{action:t?void 0:"retry-connection",detail:n(i?"chat.connectionClosedHelp":"chat.connectionErrorHelp"),icon:i?"wifi_off":"cloud_off",id:t?i?"mock-connection-closed":"mock-connection-error":i?"connection-closed":"connection-error",isMock:t,message:e.message,tone:"error",title:n(i?"chat.connectionClosedTitle":"chat.connectionErrorTitle")}},IDe=(n,e,t=!1)=>({detail:n("chat.sessionErrorHelp"),icon:"error",id:t?"mock-session-error":"session-error",isMock:t,message:e.message,meta:e.code!=null&&e.code!==""?n("chat.sessionErrorCode",{code:e.code}):void 0,tone:"error",title:n("chat.sessionErrorTitle")}),Pvn=({errorState:n,isDebugMode:e,modelUnavailable:t,t:i})=>{const s=[],r=new Set;if(t&&(s.push(EDe(i)),r.add("model-unavailable")),n!=null&&n.message.trim()!==""&&(n.kind==="session"?(s.push(IDe(i,n)),r.add("session-error")):(s.push(bY(i,n)),r.add(n.reason==="closed"?"connection-closed":"connection-error"))),!e)return s;const o=[{scenario:"connection-error",notice:bY(i,{message:i("chat.debugMockConnectionErrorMessage"),reason:"error"},!0)},{scenario:"connection-closed",notice:bY(i,{message:i("chat.debugMockConnectionClosedMessage"),reason:"closed"},!0)},{scenario:"session-error",notice:IDe(i,{message:i("chat.debugMockSessionErrorMessage"),code:"session_timeout"},!0)},{scenario:"model-unavailable",notice:EDe(i,!0)}];for(const a of o)r.has(a.scenario)||s.push(a.notice);return s},Ovn=240,yY=(n,e,t)=>Math.min(Math.max(n,e),Math.max(e,t)),Avn=n=>n==null?!1:n.closest('button, a, input, textarea, select, option, [role="button"], [data-dock-panel-no-resize="true"]')!=null;function Fvn({enterMotion:n="slide-up",children:e,className:t,closeLabel:i,defaultHeight:s=Ovn,footer:r,isOpen:o=!0,maxHeight:a=520,meta:l,minHeight:c=180,onClose:d,resizeLabel:u,storageKey:h,title:f,actions:g}){const m=b.useRef(null),p=b.useRef(null),[_,v]=b.useState(!1),[y,C]=b.useState(()=>{const L=Number(localStorage.getItem(h));return Number.isFinite(L)&&L>0?yY(L,c,a):yY(s,c,a)});b.useEffect(()=>{localStorage.setItem(h,String(y))},[y,h]),b.useEffect(()=>()=>{document.body.style.cursor="",document.body.style.userSelect=""},[]),b.useEffect(()=>{if(!_)return;const L=E=>{const N=p.current;if(N==null)return;const R=yY(N.startHeight+N.startY-E.clientY,c,N.maxHeight);C(R)},I=()=>{p.current=null,v(!1),document.body.style.cursor="",document.body.style.userSelect=""};return window.addEventListener("pointermove",L),window.addEventListener("pointerup",I),window.addEventListener("pointercancel",I),()=>{window.removeEventListener("pointermove",L),window.removeEventListener("pointerup",I),window.removeEventListener("pointercancel",I)}},[_,c]);const w=L=>{if(Avn(L.target))return;L.preventDefault();const I=m.current,E=I==null?void 0:I.parentElement,N=E==null?void 0:E.getBoundingClientRect().height;p.current={startY:L.clientY,startHeight:(I==null?void 0:I.getBoundingClientRect().height)??y,maxHeight:N!=null?Math.min(a,N-96):a},v(!0),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},x=b.useMemo(()=>({"--dock-panel-height":`${y}px`,"--dock-panel-max-height":`${a}px`,"--dock-panel-min-height":`${c}px`}),[a,c,y]);return S.jsxs("div",{ref:m,className:`dock-panel ${o&&n==="slide-up"?"is-entering-slide-up":""} ${o?"is-open":"is-closing"} ${t??""} ${_?"is-resizing":""}`,style:x,children:[S.jsxs("div",{className:"dock-panel__resize-handle",title:u,onPointerDown:w,children:[S.jsxs("div",{className:"dock-panel__header-main",children:[S.jsx("span",{className:"dock-panel__title",children:f}),l!=null&&S.jsx("span",{className:"dock-panel__meta",children:l})]}),S.jsx("div",{className:"dock-panel__header-spacer"}),(g!=null||d!=null)&&S.jsxs("div",{className:"dock-panel__header-actions",children:[g,d!=null&&i!=null&&S.jsx(Pt,{type:"text",className:"dock-panel__close-btn","data-dock-panel-no-resize":"true",icon:S.jsx("span",{className:"material-symbols-rounded",children:"close"}),title:i,"aria-label":i,onClick:d})]})]}),S.jsx("div",{className:"dock-panel__body",children:e}),r!=null&&S.jsx("div",{className:"dock-panel__footer",children:r})]})}/**
1474
+ `),interactions:t.interactions}}function LDe(n){const{task:e,viewMode:t,className:i,style:s}=n,r=oe.useRef(null),{t:o}=sn(),a=oe.useMemo(()=>({mainStart:o("chat.timeline.mainStart"),mainEnd:o("chat.timeline.mainEnd"),startTasks:o("chat.timeline.startTasks"),allTasksDone:o("chat.timeline.allTasksDone"),askUserQuestion:o("chat.timeline.askUserQuestion"),edit:o("chat.timeline.edit"),resumeTask:o("chat.timeline.resumeTask"),userPrompt:o("chat.timeline.userPrompt"),userAnswer:o("chat.timeline.userAnswer"),receiveReply:o("chat.timeline.receiveReply"),taskStart:o("chat.timeline.taskStart"),taskEnd:o("chat.timeline.taskEnd"),ganttTitle:o("chat.timeline.ganttTitle"),ganttMainSection:o("chat.timeline.ganttMainSection"),ganttTasksSection:o("chat.timeline.ganttTasksSection")}),[o]),l=oe.useMemo(()=>t==="gantt"?xvn(e,a):Dvn(e,a),[a,e,t]),c=oe.useId(),d=oe.useMemo(()=>c.replace(/\W/g,"_"),[c]),u=oe.useRef(new Map),h=oe.useMemo(()=>l.code,[l.code]);return oe.useEffect(()=>{let f=!1;return(async()=>{const p=(await Q(()=>import("./mermaid.core-BrQnSGSY.js").then(x=>x.b5),[])).default,_=getComputedStyle(document.body).fontFamily;if(p.initialize({startOnLoad:!1,securityLevel:"loose",themeVariables:{fontFamily:_},gitGraph:{},gantt:{topAxis:!0,displayMode:"compact",gridLineStartPadding:0,leftPadding:16,rightPadding:16}}),f)return;const v=r.current;if(!v)return;const{svg:y,bindFunctions:C}=await p.render(d,h);if(f)return;v.innerHTML=y;const w=v.querySelector("svg");if(w){w.classList.add("session-timeline-mermaid__svg");for(const x of l.interactions){const L=w.querySelector(`#${CSS.escape(x.id)}`);L&&(L.classList.add("session-timeline-mermaid__interactive"),L.addEventListener("click",()=>{const I=u.current.get(x.id);I&&console.warn(I.payload)}))}}typeof C=="function"&&C(v)})(),()=>{f=!0}},[l.interactions,h,d]),oe.useEffect(()=>{u.current=new Map(l.interactions.map(f=>[f.id,{label:f.label,payload:f.payload}]))},[l.interactions]),S.jsx("div",{ref:r,className:`session-timeline-panel session-timeline-panel--${t}${i?` ${i}`:""}`,style:s})}const Tvn=(n,e)=>{const t=[];let i=0;const s=(o,a,l,c,d)=>{t.push({id:`${o}-${a}-${l}-${i}`,label:o,startTime:a,endTime:l,depth:c,payload:d}),i+=1},r=(o,a)=>{for(const l of o)l.type==="tool__StartTasks"?s(e.startTasks,l.startTime,l.endTime,a,l):l.type==="tool__AskUserQuestion"?s(e.askUserQuestion,l.startTime,l.endTime,a,l):l.type==="tool__Edit"?s(e.edit,l.startTime,l.endTime,a,l):l.type==="tool__ResumeTask"?s(e.resumeTask,l.startTime,l.endTime,a,l):l.type==="user__Prompt"&&s(e.userPrompt,l.startTime,l.endTime,a,l)};return s(e.mainStart,n.startTime,n.startTime,0),r(n.events??[],0),s(e.mainEnd,n.endTime,n.endTime,0),t.map((o,a)=>({...o,index:a})).sort((o,a)=>{const l=tf(o.startTime)-tf(a.startTime);return l!==0?l:o.index-a.index}).map(({index:o,...a})=>a)};function Rvn({task:n}){const{t:e}=sn(),[t,i]=oe.useState(""),s=oe.useRef(null),[r,o]=oe.useState(240),a=oe.useMemo(()=>({mainStart:e("chat.timeline.mainStart"),mainEnd:e("chat.timeline.mainEnd"),startTasks:e("chat.timeline.startTasks"),askUserQuestion:e("chat.timeline.askUserQuestion"),edit:e("chat.timeline.edit"),resumeTask:e("chat.timeline.resumeTask"),userPrompt:e("chat.timeline.userPrompt")}),[e]),l=oe.useMemo(()=>Tvn(n,a),[a,n]),c=oe.useMemo(()=>{const h=t.trim().toLowerCase();return h?l.filter(f=>`${f.label} ${f.startTime} ${f.endTime}`.toLowerCase().includes(h)):l},[l,t]),d=e("chat.timelineEmptyValue"),u=oe.useMemo(()=>[{title:e("chat.timelineEventName"),key:"label",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__label",style:{paddingLeft:`${f.depth*16}px`},children:f.label})},{title:e("chat.timelineInput"),key:"input",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__value",children:f.input??d})},{title:e("chat.timelineOutput"),key:"output",width:180,render:(h,f)=>S.jsx("span",{className:"session-timeline-event-table__value",children:f.output??d})},{title:e("chat.timelineTiming"),key:"time",width:160,render:(h,f)=>{const g=AL(f.startTime),m=AL(f.endTime);return S.jsx("span",{className:"session-timeline-event-table__time",children:g===m?g:`${g} → ${m}`})}}],[d,e]);return oe.useEffect(()=>{const h=s.current;if(!h)return;const f=()=>{const m=h.querySelector(".session-timeline-event-table__header"),p=h.querySelector(".ant-table-pagination"),_=(m==null?void 0:m.offsetHeight)??0,v=(p==null?void 0:p.offsetHeight)??0,y=Math.max(160,h.clientHeight-_-v-16);o(C=>C===y?C:y)};f();const g=new ResizeObserver(f);return g.observe(h),()=>{g.disconnect()}},[]),S.jsxs("div",{ref:s,className:"session-timeline-event-table",children:[S.jsxs("div",{className:"session-timeline-event-table__header",children:[S.jsx("span",{className:"session-timeline-event-table__title",children:e("chat.timeline.eventListTitle")}),S.jsx(gi,{className:"session-timeline-event-table__search",allowClear:!0,value:t,onChange:h=>i(h.target.value),placeholder:e("chat.timeline.eventListSearch")})]}),S.jsx(Np,{className:"session-timeline-event-table__table",size:"small",columns:u,dataSource:c,rowKey:"id",onRow:h=>({onClick:()=>{h.payload&&console.warn(h.payload)}}),pagination:{pageSize:20,showSizeChanger:!0,pageSizeOptions:["10","20","50"]},scroll:{y:r},locale:{emptyText:e("chat.timelineEmpty")}})]})}const vY={startTime:"09:40:00",endTime:"11:30:48",events:[{type:"tool__StartTasks",startTime:"09:41:02",endTime:"10:10:25",tasks:{taskA:{startTime:"09:41:10",endTime:"09:55:02",description:"Task A"},taskB:{startTime:"09:41:10",endTime:"09:50:40",description:"Task B"},taskC:{startTime:"09:41:10",endTime:"10:10:20",description:"Task C",events:[{type:"tool__StartTasks",startTime:"09:48:00",endTime:"10:05:30",tasks:{taskC0:{startTime:"09:49:10",endTime:"10:05:25",events:[{type:"tool__AskUserQuestion",startTime:"09:57:00",endTime:"09:59:23"},{type:"user__Prompt",startTime:"09:58:10",endTime:"09:58:20"}]}}},{type:"tool__Edit",startTime:"09:57:10",endTime:"09:59:20"},{type:"tool__ResumeTask",startTime:"09:59:22",endTime:"10:05:30"}]}}},{type:"tool__StartTasks",startTime:"10:41:02",endTime:"11:10:25",tasks:{taskA1:{startTime:"10:41:10",endTime:"10:55:02",description:"Task A1"},taskB1:{startTime:"10:41:10",endTime:"10:50:40",description:"Task B1"},taskC1:{startTime:"10:41:10",endTime:"11:10:20",description:"Task C1",events:[{type:"tool__StartTasks",startTime:"10:48:00",endTime:"11:05:30",tasks:{taskC10:{startTime:"10:49:10",endTime:"11:05:25",events:[{type:"tool__AskUserQuestion",startTime:"10:57:00",endTime:"10:59:23"},{type:"user__Prompt",startTime:"10:58:10",endTime:"10:58:20"}]}}},{type:"tool__Edit",startTime:"10:57:10",endTime:"10:59:20"},{type:"tool__ResumeTask",startTime:"10:59:22",endTime:"11:05:30"}]}}}]};function Mvn({messages:n}){return S.jsxs("div",{className:"chat-timeline-view",children:[S.jsx("section",{className:"session-timeline-section session-timeline-section--fixed",children:S.jsx(LDe,{task:vY,viewMode:"gantt"})}),S.jsxs("section",{className:"session-timeline-section session-timeline-section--flex session-timeline-section--row",children:[S.jsx("div",{className:"session-timeline-column session-timeline-column--graph",children:S.jsx(LDe,{task:vY,viewMode:"git"})}),S.jsx("div",{className:"session-timeline-column session-timeline-column--events",children:S.jsx(Rvn,{task:vY})})]})]})}const EDe=(n,e=!1)=>({icon:"settings_suggest",id:e?"mock-model-unavailable":"model-unavailable",isMock:e,message:n("chat.modelConfigRequired"),detail:n("chat.modelConfigRequiredHelp"),tone:"warning",title:n("chat.modelConfigRequiredTitle")}),bY=(n,e,t=!1)=>{const i=e.reason==="closed";return{action:t?void 0:"retry-connection",detail:n(i?"chat.connectionClosedHelp":"chat.connectionErrorHelp"),icon:i?"wifi_off":"cloud_off",id:t?i?"mock-connection-closed":"mock-connection-error":i?"connection-closed":"connection-error",isMock:t,message:e.message,tone:"error",title:n(i?"chat.connectionClosedTitle":"chat.connectionErrorTitle")}},IDe=(n,e,t=!1)=>({detail:n("chat.sessionErrorHelp"),icon:"error",id:t?"mock-session-error":"session-error",isMock:t,message:e.message,meta:e.code!=null&&e.code!==""?n("chat.sessionErrorCode",{code:e.code}):void 0,tone:"error",title:n("chat.sessionErrorTitle")}),Pvn=({errorState:n,isDebugMode:e,modelUnavailable:t,t:i})=>{const s=[],r=new Set;if(t&&(s.push(EDe(i)),r.add("model-unavailable")),n!=null&&n.message.trim()!==""&&(n.kind==="session"?(s.push(IDe(i,n)),r.add("session-error")):(s.push(bY(i,n)),r.add(n.reason==="closed"?"connection-closed":"connection-error"))),!e)return s;const o=[{scenario:"connection-error",notice:bY(i,{message:i("chat.debugMockConnectionErrorMessage"),reason:"error"},!0)},{scenario:"connection-closed",notice:bY(i,{message:i("chat.debugMockConnectionClosedMessage"),reason:"closed"},!0)},{scenario:"session-error",notice:IDe(i,{message:i("chat.debugMockSessionErrorMessage"),code:"session_timeout"},!0)},{scenario:"model-unavailable",notice:EDe(i,!0)}];for(const a of o)r.has(a.scenario)||s.push(a.notice);return s},Ovn=240,yY=(n,e,t)=>Math.min(Math.max(n,e),Math.max(e,t)),Avn=n=>n==null?!1:n.closest('button, a, input, textarea, select, option, [role="button"], [data-dock-panel-no-resize="true"]')!=null;function Fvn({enterMotion:n="slide-up",children:e,className:t,closeLabel:i,defaultHeight:s=Ovn,footer:r,isOpen:o=!0,maxHeight:a=520,meta:l,minHeight:c=180,onClose:d,resizeLabel:u,storageKey:h,title:f,actions:g}){const m=b.useRef(null),p=b.useRef(null),[_,v]=b.useState(!1),[y,C]=b.useState(()=>{const L=Number(localStorage.getItem(h));return Number.isFinite(L)&&L>0?yY(L,c,a):yY(s,c,a)});b.useEffect(()=>{localStorage.setItem(h,String(y))},[y,h]),b.useEffect(()=>()=>{document.body.style.cursor="",document.body.style.userSelect=""},[]),b.useEffect(()=>{if(!_)return;const L=E=>{const N=p.current;if(N==null)return;const R=yY(N.startHeight+N.startY-E.clientY,c,N.maxHeight);C(R)},I=()=>{p.current=null,v(!1),document.body.style.cursor="",document.body.style.userSelect=""};return window.addEventListener("pointermove",L),window.addEventListener("pointerup",I),window.addEventListener("pointercancel",I),()=>{window.removeEventListener("pointermove",L),window.removeEventListener("pointerup",I),window.removeEventListener("pointercancel",I)}},[_,c]);const w=L=>{if(Avn(L.target))return;L.preventDefault();const I=m.current,E=I==null?void 0:I.parentElement,N=E==null?void 0:E.getBoundingClientRect().height;p.current={startY:L.clientY,startHeight:(I==null?void 0:I.getBoundingClientRect().height)??y,maxHeight:N!=null?Math.min(a,N-96):a},v(!0),document.body.style.cursor="row-resize",document.body.style.userSelect="none"},x=b.useMemo(()=>({"--dock-panel-height":`${y}px`,"--dock-panel-max-height":`${a}px`,"--dock-panel-min-height":`${c}px`}),[a,c,y]);return S.jsxs("div",{ref:m,className:`dock-panel ${o&&n==="slide-up"?"is-entering-slide-up":""} ${o?"is-open":"is-closing"} ${t??""} ${_?"is-resizing":""}`,style:x,children:[S.jsxs("div",{className:"dock-panel__resize-handle",title:u,onPointerDown:w,children:[S.jsxs("div",{className:"dock-panel__header-main",children:[S.jsx("span",{className:"dock-panel__title",children:f}),l!=null&&S.jsx("span",{className:"dock-panel__meta",children:l})]}),S.jsx("div",{className:"dock-panel__header-spacer"}),(g!=null||d!=null)&&S.jsxs("div",{className:"dock-panel__header-actions",children:[g,d!=null&&i!=null&&S.jsx(Pt,{type:"text",className:"dock-panel__close-btn","data-dock-panel-no-resize":"true",icon:S.jsx("span",{className:"material-symbols-rounded",children:"close"}),title:i,"aria-label":i,onClick:d})]})]}),S.jsx("div",{className:"dock-panel__body",children:e}),r!=null&&S.jsx("div",{className:"dock-panel__footer",children:r})]})}/**
1475
1475
  * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.
1476
1476
  * @license MIT
1477
1477
  *