feihong-code 7.2.0 → 7.5.0

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 (249) hide show
  1. package/.github/workflows/ci.yml +180 -140
  2. package/.github/workflows/release.yml +200 -173
  3. package/CHANGELOG.md +94 -115
  4. package/README.md +609 -586
  5. package/dist/agent/completion-engine.js +76 -45
  6. package/dist/agent/completion-engine.js.map +1 -1
  7. package/dist/agent/completion-postprocess.js +109 -0
  8. package/dist/agent/completion-postprocess.js.map +1 -0
  9. package/dist/agent/context-budget.js +121 -0
  10. package/dist/agent/context-budget.js.map +1 -0
  11. package/dist/agent/context-compactor.js +47 -0
  12. package/dist/agent/context-compactor.js.map +1 -1
  13. package/dist/agent/custom-agent.js +52 -52
  14. package/dist/agent/design-to-code.js +40 -40
  15. package/dist/agent/lint.js +121 -0
  16. package/dist/agent/lint.js.map +1 -0
  17. package/dist/agent/multi-agent.js +44 -44
  18. package/dist/agent/orchestrator.js +20 -20
  19. package/dist/agent/prompts.js +54 -54
  20. package/dist/agent/self-correction.js +24 -24
  21. package/dist/agent/self-heal.js +27 -27
  22. package/dist/cli/commands.js +9 -0
  23. package/dist/cli/commands.js.map +1 -1
  24. package/dist/cli/index.js +9 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/multi-pane-tui.js +217 -0
  27. package/dist/cli/multi-pane-tui.js.map +1 -0
  28. package/dist/cli/run.js +129 -40
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/tui-run.js +79 -0
  31. package/dist/cli/tui-run.js.map +1 -0
  32. package/dist/cli/tui.js.map +1 -1
  33. package/dist/cli/version.js +1 -1
  34. package/dist/lsp/lsp-client.js +183 -0
  35. package/dist/lsp/lsp-client.js.map +1 -0
  36. package/dist/lsp/lsp-service.js +159 -0
  37. package/dist/lsp/lsp-service.js.map +1 -0
  38. package/dist/plugins/manager.js +50 -2
  39. package/dist/plugins/manager.js.map +1 -1
  40. package/dist/shared/i18n.js +108 -100
  41. package/dist/shared/i18n.js.map +1 -1
  42. package/dist/tools/generator/code-generator.js +40 -40
  43. package/dist/tools/generator/test-generator.js +9 -9
  44. package/dist/tools/shell/exec.js +23 -1
  45. package/dist/tools/shell/exec.js.map +1 -1
  46. package/dist/web/extra-apis.js +440 -0
  47. package/dist/web/extra-apis.js.map +1 -0
  48. package/dist/web/public/css/style.css +1715 -1715
  49. package/dist/web/public/index.html +1242 -1200
  50. package/dist/web/public/js/api.js +555 -496
  51. package/dist/web/public/js/app.js +2210 -2210
  52. package/dist/web/public/js/mock-api.js +234 -234
  53. package/dist/web/public/js/monaco-editor.js +363 -203
  54. package/dist/web/public/js/ui.js +2251 -1981
  55. package/dist/web/public/js/utils.js +214 -214
  56. package/dist/web/public/manifest.json +59 -59
  57. package/dist/web/public/service-worker.js +173 -173
  58. package/dist/web/server.js +97 -45
  59. package/dist/web/server.js.map +1 -1
  60. package/docs/BENCHMARK_REPORT_en.md +386 -329
  61. package/docs/BENCHMARK_REPORT_zh.md +386 -329
  62. package/docs/DPA.md +63 -0
  63. package/docs/DPA/346/225/260/346/215/256/345/244/204/347/220/206/345/215/217/350/256/256/346/250/241/346/235/277_v1.0.md +67 -0
  64. package/docs/SECURITY_WHITEPAPER.md +74 -0
  65. package/docs/SWE_BENCH_REPORT.md +55 -0
  66. package/docs/TECHNICAL_SPEC_en.md +292 -292
  67. package/docs/TECHNICAL_SPEC_zh.md +292 -292
  68. package/docs/UPDATE_NOTES_en.md +159 -159
  69. package/docs/UPDATE_NOTES_zh.md +159 -159
  70. package/docs/UPGRADE_7.2.0.md +309 -0
  71. package/docs/UPGRADE_GUIDE_7_5.md +86 -0
  72. package/docs/geo-feihong-code.html +391 -0
  73. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_50/350/275/256/346/267/261/345/272/246/345/256/241/350/256/241_v7.2.0.md +208 -0
  74. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_6/351/241/271/351/207/215/347/202/271/346/240/270/346/237/245_v7.2.0.md +152 -0
  75. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_/350/277/220/350/241/214/346/227/266/345/256/236/346/265/213/347/211/210_v7.2.0.md +271 -0
  76. package/docs//345/220/210/350/247/204/350/256/244/350/257/201/345/207/206/345/244/207/346/270/205/345/215/225_v7.2.0.md +59 -0
  77. package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +82 -0
  78. package/electron/main.js +404 -602
  79. package/package.json +175 -172
  80. package/templates/skills/api-design/SKILL.md +27 -0
  81. package/templates/skills/code-review/SKILL.md +35 -0
  82. package/templates/skills/dependency-upgrade/SKILL.md +29 -0
  83. package/templates/skills/doc-gen/SKILL.md +29 -0
  84. package/templates/skills/git-flow/SKILL.md +26 -0
  85. package/templates/skills/onboarding/SKILL.md +27 -0
  86. package/templates/skills/performance/SKILL.md +29 -0
  87. package/templates/skills/refactor/SKILL.md +28 -0
  88. package/templates/skills/security-audit/SKILL.md +28 -0
  89. package/templates/skills/test-gen/SKILL.md +30 -0
  90. package/tool-schema.json +197 -197
  91. package/dist/hello.js +0 -14
  92. package/dist/hello.js.map +0 -1
  93. package/dist/self-evolve/hook.ts +0 -80
  94. package/dist/self-evolve/manager.d.ts +0 -8
  95. package/dist/web/public/vendor/monaco/vs/abap-D-t0cyap.js +0 -1
  96. package/dist/web/public/vendor/monaco/vs/apex-CcIm7xu6.js +0 -1
  97. package/dist/web/public/vendor/monaco/vs/assets/css.worker-URu8fCFR.js +0 -97
  98. package/dist/web/public/vendor/monaco/vs/assets/editor.worker-lj3bdIIn.js +0 -30
  99. package/dist/web/public/vendor/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +0 -30
  100. package/dist/web/public/vendor/monaco/vs/assets/html.worker-D1SL3iM8.js +0 -474
  101. package/dist/web/public/vendor/monaco/vs/assets/json.worker-CoJx_OPf.js +0 -62
  102. package/dist/web/public/vendor/monaco/vs/assets/ts.worker-BWKtMYOk.js +0 -67722
  103. package/dist/web/public/vendor/monaco/vs/azcli-BA0tQDCg.js +0 -1
  104. package/dist/web/public/vendor/monaco/vs/basic-languages/monaco.contribution.js +0 -1
  105. package/dist/web/public/vendor/monaco/vs/bat-C397hTD6.js +0 -1
  106. package/dist/web/public/vendor/monaco/vs/bicep-DF5aW17k.js +0 -2
  107. package/dist/web/public/vendor/monaco/vs/cameligo-plsz8qhj.js +0 -1
  108. package/dist/web/public/vendor/monaco/vs/clojure-Y2auQMzK.js +0 -1
  109. package/dist/web/public/vendor/monaco/vs/coffee-Bu45yuWE.js +0 -1
  110. package/dist/web/public/vendor/monaco/vs/cpp-CkKPQIni.js +0 -1
  111. package/dist/web/public/vendor/monaco/vs/csharp-CX28MZyh.js +0 -1
  112. package/dist/web/public/vendor/monaco/vs/csp-D8uWnyxW.js +0 -1
  113. package/dist/web/public/vendor/monaco/vs/css-CaeNmE3S.js +0 -3
  114. package/dist/web/public/vendor/monaco/vs/css.worker-CyhWkhHo.js +0 -1
  115. package/dist/web/public/vendor/monaco/vs/cssMode-CV6Ay48H.js +0 -1
  116. package/dist/web/public/vendor/monaco/vs/cypher-DVThT8BS.js +0 -1
  117. package/dist/web/public/vendor/monaco/vs/dart-CmGfCvrO.js +0 -1
  118. package/dist/web/public/vendor/monaco/vs/dockerfile-CZqqYdch.js +0 -1
  119. package/dist/web/public/vendor/monaco/vs/ecl-30fUercY.js +0 -1
  120. package/dist/web/public/vendor/monaco/vs/editor/editor.main.css +0 -1
  121. package/dist/web/public/vendor/monaco/vs/editor/editor.main.js +0 -1
  122. package/dist/web/public/vendor/monaco/vs/editor/editor.worker.js +0 -1
  123. package/dist/web/public/vendor/monaco/vs/editor-KLE6jdfb.js +0 -831
  124. package/dist/web/public/vendor/monaco/vs/editor.js +0 -1
  125. package/dist/web/public/vendor/monaco/vs/editorWorkerHost-fVE1cjcC.js +0 -35
  126. package/dist/web/public/vendor/monaco/vs/elixir-xjPaIfzF.js +0 -1
  127. package/dist/web/public/vendor/monaco/vs/flow9-DqtmStfK.js +0 -1
  128. package/dist/web/public/vendor/monaco/vs/freemarker2-FWreY7v7.js +0 -3
  129. package/dist/web/public/vendor/monaco/vs/fsharp-BOMdg4U1.js +0 -1
  130. package/dist/web/public/vendor/monaco/vs/go-D_hbi-Jt.js +0 -1
  131. package/dist/web/public/vendor/monaco/vs/graphql-CKUU4kLG.js +0 -1
  132. package/dist/web/public/vendor/monaco/vs/handlebars-CZi4pHCH.js +0 -1
  133. package/dist/web/public/vendor/monaco/vs/hcl-DTaboeZW.js +0 -1
  134. package/dist/web/public/vendor/monaco/vs/html-j_7ZTNRU.js +0 -1
  135. package/dist/web/public/vendor/monaco/vs/html.worker-CA3iAimZ.js +0 -1
  136. package/dist/web/public/vendor/monaco/vs/htmlMode-27by_KM4.js +0 -1
  137. package/dist/web/public/vendor/monaco/vs/index-049xrXrp.js +0 -1
  138. package/dist/web/public/vendor/monaco/vs/index-CBVt3dzv.js +0 -5
  139. package/dist/web/public/vendor/monaco/vs/index.js +0 -1
  140. package/dist/web/public/vendor/monaco/vs/ini-CsNwO04R.js +0 -1
  141. package/dist/web/public/vendor/monaco/vs/initialize-DL0l1TGY.js +0 -1
  142. package/dist/web/public/vendor/monaco/vs/java-CI4ZMsH9.js +0 -1
  143. package/dist/web/public/vendor/monaco/vs/javascript-DTJl4Jn1.js +0 -1
  144. package/dist/web/public/vendor/monaco/vs/json.worker-BizpAl9O.js +0 -1
  145. package/dist/web/public/vendor/monaco/vs/jsonMode-DLUiMUrI.js +0 -1
  146. package/dist/web/public/vendor/monaco/vs/julia-BwzEvaQw.js +0 -1
  147. package/dist/web/public/vendor/monaco/vs/kotlin-IUYPiTV8.js +0 -1
  148. package/dist/web/public/vendor/monaco/vs/language/css/css.worker.js +0 -66
  149. package/dist/web/public/vendor/monaco/vs/language/css/monaco.contribution.js +0 -1
  150. package/dist/web/public/vendor/monaco/vs/language/html/html.worker.js +0 -443
  151. package/dist/web/public/vendor/monaco/vs/language/html/monaco.contribution.js +0 -1
  152. package/dist/web/public/vendor/monaco/vs/language/json/json.worker.js +0 -17
  153. package/dist/web/public/vendor/monaco/vs/language/json/monaco.contribution.js +0 -1
  154. package/dist/web/public/vendor/monaco/vs/language/typescript/monaco.contribution.js +0 -1
  155. package/dist/web/public/vendor/monaco/vs/language/typescript/ts.worker.js +0 -67693
  156. package/dist/web/public/vendor/monaco/vs/less-C0eDYdqa.js +0 -2
  157. package/dist/web/public/vendor/monaco/vs/lexon-iON-Kj97.js +0 -1
  158. package/dist/web/public/vendor/monaco/vs/liquid-CLJYelW6.js +0 -1
  159. package/dist/web/public/vendor/monaco/vs/loader.js +0 -1368
  160. package/dist/web/public/vendor/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +0 -2
  161. package/dist/web/public/vendor/monaco/vs/lua-DtygF91M.js +0 -1
  162. package/dist/web/public/vendor/monaco/vs/m3-CsR4AuFi.js +0 -1
  163. package/dist/web/public/vendor/monaco/vs/main-BEx-Fmlo.js +0 -15
  164. package/dist/web/public/vendor/monaco/vs/main-DsK8pnKg.js +0 -3
  165. package/dist/web/public/vendor/monaco/vs/markdown-C_rD0bIw.js +0 -1
  166. package/dist/web/public/vendor/monaco/vs/mdx-CpzZIPHF.js +0 -1
  167. package/dist/web/public/vendor/monaco/vs/mips-CiYP61RB.js +0 -1
  168. package/dist/web/public/vendor/monaco/vs/monaco.contribution-9cKT3C7t.js +0 -1
  169. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BE88ZNGY.js +0 -1
  170. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BPhsneLd.js +0 -1
  171. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BgRy6xDf.js +0 -1
  172. package/dist/web/public/vendor/monaco/vs/msdax-C38-sJlp.js +0 -1
  173. package/dist/web/public/vendor/monaco/vs/mysql-CdtbpvbG.js +0 -1
  174. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.d.ts +0 -1
  175. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.js +0 -9
  176. package/dist/web/public/vendor/monaco/vs/nls/lang/de.d.ts +0 -1
  177. package/dist/web/public/vendor/monaco/vs/nls/lang/de.js +0 -9
  178. package/dist/web/public/vendor/monaco/vs/nls/lang/es.d.ts +0 -1
  179. package/dist/web/public/vendor/monaco/vs/nls/lang/es.js +0 -9
  180. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.d.ts +0 -1
  181. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.js +0 -9
  182. package/dist/web/public/vendor/monaco/vs/nls/lang/it.d.ts +0 -1
  183. package/dist/web/public/vendor/monaco/vs/nls/lang/it.js +0 -9
  184. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.d.ts +0 -1
  185. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.js +0 -9
  186. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.d.ts +0 -1
  187. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.js +0 -9
  188. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.d.ts +0 -1
  189. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.js +0 -9
  190. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.d.ts +0 -1
  191. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.js +0 -9
  192. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.d.ts +0 -1
  193. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.js +0 -9
  194. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.d.ts +0 -1
  195. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.js +0 -9
  196. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.d.ts +0 -1
  197. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.js +0 -9
  198. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.d.ts +0 -1
  199. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.js +0 -9
  200. package/dist/web/public/vendor/monaco/vs/nls.messages-loader.js +0 -1
  201. package/dist/web/public/vendor/monaco/vs/objective-c-CntZFaHX.js +0 -1
  202. package/dist/web/public/vendor/monaco/vs/pascal-r6kuqfl_.js +0 -1
  203. package/dist/web/public/vendor/monaco/vs/pascaligo-BiXoTmXh.js +0 -1
  204. package/dist/web/public/vendor/monaco/vs/perl-DABw_TcH.js +0 -1
  205. package/dist/web/public/vendor/monaco/vs/pgsql-me_jFXeX.js +0 -1
  206. package/dist/web/public/vendor/monaco/vs/php-D_kh-9LK.js +0 -1
  207. package/dist/web/public/vendor/monaco/vs/pla-VfZjczW0.js +0 -1
  208. package/dist/web/public/vendor/monaco/vs/postiats-BBSzz8Pk.js +0 -1
  209. package/dist/web/public/vendor/monaco/vs/powerquery-Dt-g_2cc.js +0 -1
  210. package/dist/web/public/vendor/monaco/vs/powershell-B-7ap1zc.js +0 -1
  211. package/dist/web/public/vendor/monaco/vs/protobuf-BmtuEB1A.js +0 -2
  212. package/dist/web/public/vendor/monaco/vs/pug-BRpRNeEb.js +0 -1
  213. package/dist/web/public/vendor/monaco/vs/python-CqWUUgfu.js +0 -1
  214. package/dist/web/public/vendor/monaco/vs/qsharp-BzsFaUU9.js +0 -1
  215. package/dist/web/public/vendor/monaco/vs/r-f8dDdrp4.js +0 -1
  216. package/dist/web/public/vendor/monaco/vs/razor-hok5y9Km.js +0 -1
  217. package/dist/web/public/vendor/monaco/vs/redis-fvZQY4PI.js +0 -1
  218. package/dist/web/public/vendor/monaco/vs/redshift-45Et0LQi.js +0 -1
  219. package/dist/web/public/vendor/monaco/vs/restructuredtext-C7UUFKFD.js +0 -1
  220. package/dist/web/public/vendor/monaco/vs/ruby-CZO8zYTz.js +0 -1
  221. package/dist/web/public/vendor/monaco/vs/rust-Bfetafyc.js +0 -1
  222. package/dist/web/public/vendor/monaco/vs/sb-3GYllVck.js +0 -1
  223. package/dist/web/public/vendor/monaco/vs/scala-foMgrKo1.js +0 -1
  224. package/dist/web/public/vendor/monaco/vs/scheme-CHdMtr7p.js +0 -1
  225. package/dist/web/public/vendor/monaco/vs/scss-C1cmLt9V.js +0 -3
  226. package/dist/web/public/vendor/monaco/vs/shell-ClXCKCEW.js +0 -1
  227. package/dist/web/public/vendor/monaco/vs/solidity-MZ6ExpPy.js +0 -1
  228. package/dist/web/public/vendor/monaco/vs/sophia-DWkuSsPQ.js +0 -1
  229. package/dist/web/public/vendor/monaco/vs/sparql-AUGFYSyk.js +0 -1
  230. package/dist/web/public/vendor/monaco/vs/sql-32GpJSV2.js +0 -1
  231. package/dist/web/public/vendor/monaco/vs/st-CuDFIVZ_.js +0 -1
  232. package/dist/web/public/vendor/monaco/vs/swift-t-PfMj7W.js +0 -1
  233. package/dist/web/public/vendor/monaco/vs/systemverilog-Ch4vA8Yt.js +0 -1
  234. package/dist/web/public/vendor/monaco/vs/tcl-D74tq1nH.js +0 -1
  235. package/dist/web/public/vendor/monaco/vs/toggleHighContrast-qGX7E9o7.js +0 -61
  236. package/dist/web/public/vendor/monaco/vs/ts.worker-2QLmBukE.js +0 -1
  237. package/dist/web/public/vendor/monaco/vs/tsMode-B0S_kp2q.js +0 -11
  238. package/dist/web/public/vendor/monaco/vs/twig-C6taOxMV.js +0 -1
  239. package/dist/web/public/vendor/monaco/vs/typescript-_2t_511t.js +0 -1
  240. package/dist/web/public/vendor/monaco/vs/typespec-8OfoLt6R.js +0 -1
  241. package/dist/web/public/vendor/monaco/vs/vb-Dyb2648j.js +0 -1
  242. package/dist/web/public/vendor/monaco/vs/wgsl-BhLXMOR0.js +0 -298
  243. package/dist/web/public/vendor/monaco/vs/workers-BBttULjf.js +0 -1
  244. package/dist/web/public/vendor/monaco/vs/xml-cZjNDqDT.js +0 -1
  245. package/dist/web/public/vendor/monaco/vs/yaml-A1fOIdH6.js +0 -1
  246. package/dist/web/web-config.js +0 -143
  247. package/dist/web/web-config.js.map +0 -1
  248. package/docs/DEPLOYMENT.md +0 -382
  249. package/docs/MODEL_FINETUNING.md +0 -405
@@ -1 +0,0 @@
1
- define("vs/ts.worker-2QLmBukE", ["require", "exports"], (function(require, r){"use strict";const e=""+new URL(require.toUrl("./assets/ts.worker-BWKtMYOk.js"),document.baseURI).href;r.__worker_url_0__=e}));
@@ -1,11 +0,0 @@
1
- define("vs/tsMode-B0S_kp2q",["exports","./ts.worker-2QLmBukE","./editor-KLE6jdfb","./workers-BBttULjf","./monaco.contribution-BE88ZNGY"],(function(b,z,r,J,G){"use strict";class I{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=J.createWebWorker({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(z.__worker_url_0__,{type:"module"}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(r.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0,s["lib.decorators.d.ts"]=!0,s["lib.decorators.legacy.d.ts"]=!0,s["lib.dom.asynciterable.d.ts"]=!0,s["lib.dom.d.ts"]=!0,s["lib.dom.iterable.d.ts"]=!0,s["lib.es2015.collection.d.ts"]=!0,s["lib.es2015.core.d.ts"]=!0,s["lib.es2015.d.ts"]=!0,s["lib.es2015.generator.d.ts"]=!0,s["lib.es2015.iterable.d.ts"]=!0,s["lib.es2015.promise.d.ts"]=!0,s["lib.es2015.proxy.d.ts"]=!0,s["lib.es2015.reflect.d.ts"]=!0,s["lib.es2015.symbol.d.ts"]=!0,s["lib.es2015.symbol.wellknown.d.ts"]=!0,s["lib.es2016.array.include.d.ts"]=!0,s["lib.es2016.d.ts"]=!0,s["lib.es2016.full.d.ts"]=!0,s["lib.es2016.intl.d.ts"]=!0,s["lib.es2017.arraybuffer.d.ts"]=!0,s["lib.es2017.d.ts"]=!0,s["lib.es2017.date.d.ts"]=!0,s["lib.es2017.full.d.ts"]=!0,s["lib.es2017.intl.d.ts"]=!0,s["lib.es2017.object.d.ts"]=!0,s["lib.es2017.sharedmemory.d.ts"]=!0,s["lib.es2017.string.d.ts"]=!0,s["lib.es2017.typedarrays.d.ts"]=!0,s["lib.es2018.asyncgenerator.d.ts"]=!0,s["lib.es2018.asynciterable.d.ts"]=!0,s["lib.es2018.d.ts"]=!0,s["lib.es2018.full.d.ts"]=!0,s["lib.es2018.intl.d.ts"]=!0,s["lib.es2018.promise.d.ts"]=!0,s["lib.es2018.regexp.d.ts"]=!0,s["lib.es2019.array.d.ts"]=!0,s["lib.es2019.d.ts"]=!0,s["lib.es2019.full.d.ts"]=!0,s["lib.es2019.intl.d.ts"]=!0,s["lib.es2019.object.d.ts"]=!0,s["lib.es2019.string.d.ts"]=!0,s["lib.es2019.symbol.d.ts"]=!0,s["lib.es2020.bigint.d.ts"]=!0,s["lib.es2020.d.ts"]=!0,s["lib.es2020.date.d.ts"]=!0,s["lib.es2020.full.d.ts"]=!0,s["lib.es2020.intl.d.ts"]=!0,s["lib.es2020.number.d.ts"]=!0,s["lib.es2020.promise.d.ts"]=!0,s["lib.es2020.sharedmemory.d.ts"]=!0,s["lib.es2020.string.d.ts"]=!0,s["lib.es2020.symbol.wellknown.d.ts"]=!0,s["lib.es2021.d.ts"]=!0,s["lib.es2021.full.d.ts"]=!0,s["lib.es2021.intl.d.ts"]=!0,s["lib.es2021.promise.d.ts"]=!0,s["lib.es2021.string.d.ts"]=!0,s["lib.es2021.weakref.d.ts"]=!0,s["lib.es2022.array.d.ts"]=!0,s["lib.es2022.d.ts"]=!0,s["lib.es2022.error.d.ts"]=!0,s["lib.es2022.full.d.ts"]=!0,s["lib.es2022.intl.d.ts"]=!0,s["lib.es2022.object.d.ts"]=!0,s["lib.es2022.regexp.d.ts"]=!0,s["lib.es2022.string.d.ts"]=!0,s["lib.es2023.array.d.ts"]=!0,s["lib.es2023.collection.d.ts"]=!0,s["lib.es2023.d.ts"]=!0,s["lib.es2023.full.d.ts"]=!0,s["lib.es2023.intl.d.ts"]=!0,s["lib.es2024.arraybuffer.d.ts"]=!0,s["lib.es2024.collection.d.ts"]=!0,s["lib.es2024.d.ts"]=!0,s["lib.es2024.full.d.ts"]=!0,s["lib.es2024.object.d.ts"]=!0,s["lib.es2024.promise.d.ts"]=!0,s["lib.es2024.regexp.d.ts"]=!0,s["lib.es2024.sharedmemory.d.ts"]=!0,s["lib.es2024.string.d.ts"]=!0,s["lib.es5.d.ts"]=!0,s["lib.es6.d.ts"]=!0,s["lib.esnext.array.d.ts"]=!0,s["lib.esnext.collection.d.ts"]=!0,s["lib.esnext.d.ts"]=!0,s["lib.esnext.decorators.d.ts"]=!0,s["lib.esnext.disposable.d.ts"]=!0,s["lib.esnext.error.d.ts"]=!0,s["lib.esnext.float16.d.ts"]=!0,s["lib.esnext.full.d.ts"]=!0,s["lib.esnext.intl.d.ts"]=!0,s["lib.esnext.iterator.d.ts"]=!0,s["lib.esnext.promise.d.ts"]=!0,s["lib.esnext.sharedmemory.d.ts"]=!0,s["lib.scripthost.d.ts"]=!0,s["lib.webworker.asynciterable.d.ts"]=!0,s["lib.webworker.d.ts"]=!0,s["lib.webworker.importscripts.d.ts"]=!0,s["lib.webworker.iterable.d.ts"]=!0;function x(g,e,t=0){if(typeof g=="string")return g;if(g===void 0)return"";let o="";if(t){o+=e;for(let n=0;n<t;n++)o+=" "}if(o+=g.messageText,t++,g.next)for(const n of g.next)o+=x(n,e,t);return o}function S(g){return g?g.map(e=>e.text).join(""):""}class k{constructor(e){this._worker=e}_textSpanToRange(e,t){let o=e.getPositionAt(t.start),n=e.getPositionAt(t.start+t.length),{lineNumber:l,column:p}=o,{lineNumber:a,column:i}=n;return{startLineNumber:l,startColumn:p,endLineNumber:a,endColumn:i}}}class P{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=r.Uri.parse(e),o=r.editor.getModel(t);if(o)return o;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return r.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const n=G.typescriptDefaults.getExtraLibs()[e];return n?r.editor.createModel(n.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class O extends k{constructor(e,t,o,n){super(n),this._libFiles=e,this._defaults=t,this._selector=o,this._disposables=[],this._listener=Object.create(null);const l=i=>{if(i.getLanguageId()!==o)return;const c=()=>{const{onlyVisible:w}=this._defaults.getDiagnosticsOptions();w?i.isAttachedToEditor()&&this._doValidate(i):this._doValidate(i)};let u;const d=i.onDidChangeContent(()=>{clearTimeout(u),u=window.setTimeout(c,500)}),m=i.onDidChangeAttached(()=>{const{onlyVisible:w}=this._defaults.getDiagnosticsOptions();w&&(i.isAttachedToEditor()?c():r.editor.setModelMarkers(i,this._selector,[]))});this._listener[i.uri.toString()]={dispose(){d.dispose(),m.dispose(),clearTimeout(u)}},c()},p=i=>{r.editor.setModelMarkers(i,this._selector,[]);const c=i.uri.toString();this._listener[c]&&(this._listener[c].dispose(),delete this._listener[c])};this._disposables.push(r.editor.onDidCreateModel(i=>l(i))),this._disposables.push(r.editor.onWillDisposeModel(p)),this._disposables.push(r.editor.onDidChangeModelLanguage(i=>{p(i.model),l(i.model)})),this._disposables.push({dispose(){for(const i of r.editor.getModels())p(i)}});const a=()=>{for(const i of r.editor.getModels())p(i),l(i)};this._disposables.push(this._defaults.onDidChange(a)),this._disposables.push(this._defaults.onDidExtraLibsChange(a)),r.editor.getModels().forEach(i=>l(i))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const o=[],{noSyntaxValidation:n,noSemanticValidation:l,noSuggestionDiagnostics:p}=this._defaults.getDiagnosticsOptions();n||o.push(t.getSyntacticDiagnostics(e.uri.toString())),l||o.push(t.getSemanticDiagnostics(e.uri.toString())),p||o.push(t.getSuggestionDiagnostics(e.uri.toString()));const a=await Promise.all(o);if(!a||e.isDisposed())return;const i=a.reduce((u,d)=>d.concat(u),[]).filter(u=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(u.code)===-1),c=i.map(u=>u.relatedInformation||[]).reduce((u,d)=>d.concat(u),[]).map(u=>u.file?r.Uri.parse(u.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(c),!e.isDisposed()&&r.editor.setModelMarkers(e,this._selector,i.map(u=>this._convertDiagnostics(e,u)))}_convertDiagnostics(e,t){const o=t.start||0,n=t.length||1,{lineNumber:l,column:p}=e.getPositionAt(o),{lineNumber:a,column:i}=e.getPositionAt(o+n),c=[];return t.reportsUnnecessary&&c.push(r.MarkerTag.Unnecessary),t.reportsDeprecated&&c.push(r.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:l,startColumn:p,endLineNumber:a,endColumn:i,message:x(t.messageText,`
2
- `),code:t.code.toString(),tags:c,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const o=[];return t.forEach(n=>{let l=e;if(n.file&&(l=this._libFiles.getOrCreateModel(n.file.fileName)),!l)return;const p=n.start||0,a=n.length||1,{lineNumber:i,column:c}=l.getPositionAt(p),{lineNumber:u,column:d}=l.getPositionAt(p+a);o.push({resource:l.uri,startLineNumber:i,startColumn:c,endLineNumber:u,endColumn:d,message:x(n.messageText,`
3
- `)})}),o}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return r.MarkerSeverity.Error;case 3:return r.MarkerSeverity.Info;case 0:return r.MarkerSeverity.Warning;case 2:return r.MarkerSeverity.Hint}return r.MarkerSeverity.Info}}class v extends k{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,o,n){const l=e.getWordUntilPosition(t),p=new r.Range(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn),a=e.uri,i=e.getOffsetAt(t),c=await this._worker(a);if(e.isDisposed())return;const u=await c.getCompletionsAtPosition(a.toString(),i);return!u||e.isDisposed()?void 0:{suggestions:u.entries.map(m=>{let w=p;if(m.replacementSpan){const A=e.getPositionAt(m.replacementSpan.start),F=e.getPositionAt(m.replacementSpan.start+m.replacementSpan.length);w=new r.Range(A.lineNumber,A.column,F.lineNumber,F.column)}const C=[];return m.kindModifiers!==void 0&&m.kindModifiers.indexOf("deprecated")!==-1&&C.push(r.languages.CompletionItemTag.Deprecated),{uri:a,position:t,offset:i,range:w,label:m.name,insertText:m.name,sortText:m.sortText,kind:v.convertKind(m.kind),tags:C}})}}async resolveCompletionItem(e,t){const o=e,n=o.uri,l=o.position,p=o.offset,i=await(await this._worker(n)).getCompletionEntryDetails(n.toString(),p,o.label);return i?{uri:n,position:l,label:i.name,kind:v.convertKind(i.kind),detail:S(i.displayParts),documentation:{value:v.createDocumentationString(i)}}:o}static convertKind(e){switch(e){case f.primitiveType:case f.keyword:return r.languages.CompletionItemKind.Keyword;case f.variable:case f.localVariable:return r.languages.CompletionItemKind.Variable;case f.memberVariable:case f.memberGetAccessor:case f.memberSetAccessor:return r.languages.CompletionItemKind.Field;case f.function:case f.memberFunction:case f.constructSignature:case f.callSignature:case f.indexSignature:return r.languages.CompletionItemKind.Function;case f.enum:return r.languages.CompletionItemKind.Enum;case f.module:return r.languages.CompletionItemKind.Module;case f.class:return r.languages.CompletionItemKind.Class;case f.interface:return r.languages.CompletionItemKind.Interface;case f.warning:return r.languages.CompletionItemKind.File}return r.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=S(e.documentation);if(e.tags)for(const o of e.tags)t+=`
4
-
5
- ${M(o)}`;return t}}function M(g){let e=`*@${g.name}*`;if(g.name==="param"&&g.text){const[t,...o]=g.text;e+=`\`${t.text}\``,o.length>0&&(e+=` — ${o.map(n=>n.text).join(" ")}`)}else Array.isArray(g.text)?e+=` — ${g.text.map(t=>t.text).join(" ")}`:g.text&&(e+=` — ${g.text}`);return e}class D extends k{constructor(){super(...arguments),this.signatureHelpTriggerCharacters=["(",","]}static _toSignatureHelpTriggerReason(e){switch(e.triggerKind){case r.languages.SignatureHelpTriggerKind.TriggerCharacter:return e.triggerCharacter?e.isRetrigger?{kind:"retrigger",triggerCharacter:e.triggerCharacter}:{kind:"characterTyped",triggerCharacter:e.triggerCharacter}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.ContentChange:return e.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(e,t,o,n){const l=e.uri,p=e.getOffsetAt(t),a=await this._worker(l);if(e.isDisposed())return;const i=await a.getSignatureHelpItems(l.toString(),p,{triggerReason:D._toSignatureHelpTriggerReason(n)});if(!i||e.isDisposed())return;const c={activeSignature:i.selectedItemIndex,activeParameter:i.argumentIndex,signatures:[]};return i.items.forEach(u=>{const d={label:"",parameters:[]};d.documentation={value:S(u.documentation)},d.label+=S(u.prefixDisplayParts),u.parameters.forEach((m,w,C)=>{const A=S(m.displayParts),F={label:A,documentation:{value:S(m.documentation)}};d.label+=A,d.parameters.push(F),w<C.length-1&&(d.label+=S(u.separatorDisplayParts))}),d.label+=S(u.suffixDisplayParts),c.signatures.push(d)}),{value:c,dispose(){}}}}class N extends k{async provideHover(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getQuickInfoAtPosition(n.toString(),l);if(!a||e.isDisposed())return;const i=S(a.documentation),c=a.tags?a.tags.map(d=>M(d)).join(`
6
-
7
- `):"",u=S(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+u+"\n```\n"},{value:i+(c?`
8
-
9
- `+c:"")}]}}}class R extends k{async provideDocumentHighlights(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getDocumentHighlights(n.toString(),l,[n.toString()]);if(!(!a||e.isDisposed()))return a.flatMap(i=>i.highlightSpans.map(c=>({range:this._textSpanToRange(e,c.textSpan),kind:c.kind==="writtenReference"?r.languages.DocumentHighlightKind.Write:r.languages.DocumentHighlightKind.Text})))}}class H extends k{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,o){const n=e.uri,l=e.getOffsetAt(t),p=await this._worker(n);if(e.isDisposed())return;const a=await p.getDefinitionAtPosition(n.toString(),l);if(!a||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(a.map(c=>r.Uri.parse(c.fileName))),e.isDisposed()))return;const i=[];for(let c of a){const u=this._libFiles.getOrCreateModel(c.fileName);u&&i.push({uri:u.uri,range:this._textSpanToRange(u,c.textSpan)})}return i}}class E extends k{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,o,n){const l=e.uri,p=e.getOffsetAt(t),a=await this._worker(l);if(e.isDisposed())return;const i=await a.getReferencesAtPosition(l.toString(),p);if(!i||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(i.map(u=>r.Uri.parse(u.fileName))),e.isDisposed()))return;const c=[];for(let u of i){const d=this._libFiles.getOrCreateModel(u.fileName);d&&c.push({uri:d.uri,range:this._textSpanToRange(d,u.textSpan)})}return c}}class W extends k{async provideDocumentSymbols(e,t){const o=e.uri,n=await this._worker(o);if(e.isDisposed())return;const l=await n.getNavigationTree(o.toString());if(!l||e.isDisposed())return;const p=(i,c)=>({name:i.text,detail:"",kind:y[i.kind]||r.languages.SymbolKind.Variable,range:this._textSpanToRange(e,i.spans[0]),selectionRange:this._textSpanToRange(e,i.spans[0]),tags:[],children:i.childItems?.map(d=>p(d,i.text)),containerName:c});return l.childItems?l.childItems.map(i=>p(i)):[]}}const h=class h{};h.unknown="",h.keyword="keyword",h.script="script",h.module="module",h.class="class",h.interface="interface",h.type="type",h.enum="enum",h.variable="var",h.localVariable="local var",h.function="function",h.localFunction="local function",h.memberFunction="method",h.memberGetAccessor="getter",h.memberSetAccessor="setter",h.memberVariable="property",h.constructorImplementation="constructor",h.callSignature="call",h.indexSignature="index",h.constructSignature="construct",h.parameter="parameter",h.typeParameter="type parameter",h.primitiveType="primitive type",h.label="label",h.alias="alias",h.const="const",h.let="let",h.warning="warning";let f=h,y=Object.create(null);y[f.module]=r.languages.SymbolKind.Module,y[f.class]=r.languages.SymbolKind.Class,y[f.enum]=r.languages.SymbolKind.Enum,y[f.interface]=r.languages.SymbolKind.Interface,y[f.memberFunction]=r.languages.SymbolKind.Method,y[f.memberVariable]=r.languages.SymbolKind.Property,y[f.memberGetAccessor]=r.languages.SymbolKind.Property,y[f.memberSetAccessor]=r.languages.SymbolKind.Property,y[f.variable]=r.languages.SymbolKind.Variable,y[f.const]=r.languages.SymbolKind.Variable,y[f.localVariable]=r.languages.SymbolKind.Variable,y[f.variable]=r.languages.SymbolKind.Variable,y[f.function]=r.languages.SymbolKind.Function,y[f.localFunction]=r.languages.SymbolKind.Function;class _ extends k{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:`
10
- `,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}}class V extends _{constructor(){super(...arguments),this.canFormatMultipleRanges=!1}async provideDocumentRangeFormattingEdits(e,t,o,n){const l=e.uri,p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=await this._worker(l);if(e.isDisposed())return;const c=await i.getFormattingEditsForRange(l.toString(),p,a,_._convertOptions(o));if(!(!c||e.isDisposed()))return c.map(u=>this._convertTextChanges(e,u))}}class K extends _{get autoFormatTriggerCharacters(){return[";","}",`
11
- `]}async provideOnTypeFormattingEdits(e,t,o,n,l){const p=e.uri,a=e.getOffsetAt(t),i=await this._worker(p);if(e.isDisposed())return;const c=await i.getFormattingEditsAfterKeystroke(p.toString(),a,o,_._convertOptions(n));if(!(!c||e.isDisposed()))return c.map(u=>this._convertTextChanges(e,u))}}class j extends _{async provideCodeActions(e,t,o,n){const l=e.uri,p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=_._convertOptions(e.getOptions()),c=o.markers.filter(w=>w.code).map(w=>w.code).map(Number),u=await this._worker(l);if(e.isDisposed())return;const d=await u.getCodeFixesAtPosition(l.toString(),p,a,c,i);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(w=>w.changes.filter(C=>C.isNewFile).length===0).map(w=>this._tsCodeFixActionToMonacoCodeAction(e,o,w)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,o){const n=[];for(const p of o.changes)for(const a of p.textChanges)n.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,a.span),text:a.newText}});return{title:o.description,edit:{edits:n},diagnostics:t.markers,kind:"quickfix"}}}class B extends k{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,o,n){const l=e.uri,p=l.toString(),a=e.getOffsetAt(t),i=await this._worker(l);if(e.isDisposed())return;const c=await i.getRenameInfo(p,a,{allowRenameOfImportPath:!1});if(c.canRename===!1)return{edits:[],rejectReason:c.localizedErrorMessage};if(c.fileToRename!==void 0)throw new Error("Renaming files is not supported.");const u=await i.findRenameLocations(p,a,!1,!1,!1);if(!u||e.isDisposed())return;const d=[];for(const m of u){const w=this._libFiles.getOrCreateModel(m.fileName);if(w)d.push({resource:w.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(w,m.textSpan),text:o}});else throw new Error(`Unknown file ${m.fileName}.`)}return{edits:d}}}class U extends k{async provideInlayHints(e,t,o){const n=e.uri,l=n.toString(),p=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),i=await this._worker(n);return e.isDisposed()?null:{hints:(await i.provideInlayHints(l,p,a)).map(d=>({...d,label:d.text,position:e.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case"Parameter":return r.languages.InlayHintKind.Parameter;case"Type":return r.languages.InlayHintKind.Type;default:return r.languages.InlayHintKind.Type}}}let T,L;function Q(g){L=$(g,"typescript")}function q(g){T=$(g,"javascript")}function X(){return new Promise((g,e)=>{if(!T)return e("JavaScript not registered!");g(T)})}function Y(){return new Promise((g,e)=>{if(!L)return e("TypeScript not registered!");g(L)})}function $(g,e){const t=[],o=new I(e,g),n=(...a)=>o.getLanguageServiceWorker(...a),l=new P(n);function p(){const{modeConfiguration:a}=g;Z(t),a.completionItems&&t.push(r.languages.registerCompletionItemProvider(e,new v(n))),a.signatureHelp&&t.push(r.languages.registerSignatureHelpProvider(e,new D(n))),a.hovers&&t.push(r.languages.registerHoverProvider(e,new N(n))),a.documentHighlights&&t.push(r.languages.registerDocumentHighlightProvider(e,new R(n))),a.definitions&&t.push(r.languages.registerDefinitionProvider(e,new H(l,n))),a.references&&t.push(r.languages.registerReferenceProvider(e,new E(l,n))),a.documentSymbols&&t.push(r.languages.registerDocumentSymbolProvider(e,new W(n))),a.rename&&t.push(r.languages.registerRenameProvider(e,new B(l,n))),a.documentRangeFormattingEdits&&t.push(r.languages.registerDocumentRangeFormattingEditProvider(e,new V(n))),a.onTypeFormattingEdits&&t.push(r.languages.registerOnTypeFormattingEditProvider(e,new K(n))),a.codeActions&&t.push(r.languages.registerCodeActionProvider(e,new j(n))),a.inlayHints&&t.push(r.languages.registerInlayHintsProvider(e,new U(n))),a.diagnostics&&t.push(new O(l,g,e,n))}return p(),n}function Z(g){for(;g.length;)g.pop().dispose()}b.Adapter=k,b.CodeActionAdaptor=j,b.DefinitionAdapter=H,b.DiagnosticsAdapter=O,b.DocumentHighlightAdapter=R,b.FormatAdapter=V,b.FormatHelper=_,b.FormatOnTypeAdapter=K,b.InlayHintsAdapter=U,b.Kind=f,b.LibFiles=P,b.OutlineAdapter=W,b.QuickInfoAdapter=N,b.ReferenceAdapter=E,b.RenameAdapter=B,b.SignatureHelpAdapter=D,b.SuggestAdapter=v,b.WorkerManager=I,b.flattenDiagnosticMessageText=x,b.getJavaScriptWorker=X,b.getTypeScriptWorker=Y,b.setupJavaScript=q,b.setupTypeScript=Q,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/twig-C6taOxMV",["exports"],(function(t){"use strict";const e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{#","#}"]},brackets:[["{#","#}"],["{%","%}"],["{{","}}"],["(",")"],["[","]"],["<!--","-->"],["<",">"]],autoClosingPairs:[{open:"{# ",close:" #}"},{open:"{% ",close:" %}"},{open:"{{ ",close:" }}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},i={defaultToken:"",tokenPostfix:"",ignoreCase:!0,keywords:["apply","autoescape","block","deprecated","do","embed","extends","flush","for","from","if","import","include","macro","sandbox","set","use","verbatim","with","endapply","endautoescape","endblock","endembed","endfor","endif","endmacro","endsandbox","endset","endwith","true","false"],tokenizer:{root:[[/\s+/],[/{#/,"comment.twig","@commentState"],[/{%[-~]?/,"delimiter.twig","@blockState"],[/{{[-~]?/,"delimiter.twig","@variableState"],[/<!DOCTYPE/,"metatag.html","@doctype"],[/<!--/,"comment.html","@comment"],[/(<)((?:[\w\-]+:)?[\w\-]+)(\s*)(\/>)/,["delimiter.html","tag.html","","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/</,"delimiter.html"],[/[^<{]+/]],commentState:[[/#}/,"comment.twig","@pop"],[/./,"comment.twig"]],blockState:[[/[-~]?%}/,"delimiter.twig","@pop"],[/\s+/],[/(verbatim)(\s*)([-~]?%})/,["keyword.twig","",{token:"delimiter.twig",next:"@rawDataState"}]],{include:"expression"}],rawDataState:[[/({%[-~]?)(\s*)(endverbatim)(\s*)([-~]?%})/,["delimiter.twig","","keyword.twig","",{token:"delimiter.twig",next:"@popall"}]],[/./,"string.twig"]],variableState:[[/[-~]?}}/,"delimiter.twig","@pop"],{include:"expression"}],stringState:[[/"/,"string.twig","@pop"],[/#{\s*/,"string.twig","@interpolationState"],[/[^#"\\]*(?:(?:\\.|#(?!\{))[^#"\\]*)*/,"string.twig"]],interpolationState:[[/}/,"string.twig","@pop"],{include:"expression"}],expression:[[/\s+/],[/\+|-|\/{1,2}|%|\*{1,2}/,"operators.twig"],[/(and|or|not|b-and|b-xor|b-or)(\s+)/,["operators.twig",""]],[/==|!=|<|>|>=|<=/,"operators.twig"],[/(starts with|ends with|matches)(\s+)/,["operators.twig",""]],[/(in)(\s+)/,["operators.twig",""]],[/(is)(\s+)/,["operators.twig",""]],[/\||~|:|\.{1,2}|\?{1,2}/,"operators.twig"],[/[^\W\d][\w]*/,{cases:{"@keywords":"keyword.twig","@default":"variable.twig"}}],[/\d+(\.\d+)?/,"number.twig"],[/\(|\)|\[|\]|{|}|,/,"delimiter.twig"],[/"([^#"\\]*(?:\\.[^#"\\]*)*)"|\'([^\'\\]*(?:\\.[^\'\\]*)*)\'/,"string.twig"],[/"/,"string.twig","@stringState"],[/=>/,"operators.twig"],[/=/,"operators.twig"]],doctype:[[/[^>]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name.html","@scriptAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter.html","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name.html","@styleAfterType"],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter.html","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value.html",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value.html"],[/'([^']*)'/,"attribute.value.html"],[/[\w\-]+/,"attribute.name.html"],[/=/,"delimiter.html"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};t.conf=e,t.language=i,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/typescript-_2t_511t",["exports","./editor-KLE6jdfb"],(function(n,e){"use strict";const t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.languages.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.languages.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.languages.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.languages.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},o={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<","</",">>",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=><!~?:&|+\-*\/\^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/[{}]/,"delimiter.bracket"],{include:"common"}],common:[[/#?[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w\$]*/,"type.identifier"],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/([dgimsuy]*)(\s*)(\.|;|,|\)|\]|\}|$))/,{token:"regexp",bracket:"@open",next:"@regexp"}],[/[()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};n.conf=t,n.language=o,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/typespec-8OfoLt6R",["exports"],(function(e){"use strict";const t=n=>`\\b${n}\\b`,o=n=>`(?!${n})`,i=t("[_a-zA-Z][_a-zA-Z0-9]*"),r=t("[_a-zA-Z-0-9]+"),s=["import","model","scalar","namespace","op","interface","union","using","is","extends","enum","alias","return","void","if","else","projection","dec","extern","fn"],c=["true","false","null","unknown","never"],a="[ \\t\\r\\n]",g="[0-9]+",l={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"/**",close:" */",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],indentationRules:{decreaseIndentPattern:new RegExp("^((?!.*?/\\*).*\\*/)?\\s*[\\}\\]].*$"),increaseIndentPattern:new RegExp("^((?!//).)*(\\{([^}\"'`/]*|(\\t|[ ])*//.*)|\\([^)\"'`/]*|\\[[^\\]\"'`/]*)$"),unIndentedLinePattern:new RegExp("^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$")}},k={defaultToken:"",tokenPostfix:".tsp",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=:;<>]+/,keywords:s,namedLiterals:c,escapes:'\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|"|\\${)',tokenizer:{root:[{include:"@expression"},{include:"@whitespace"}],stringVerbatim:[{regex:'(|"|"")[^"]',action:{token:"string"}},{regex:`"""${o('"')}`,action:{token:"string",next:"@pop"}}],stringLiteral:[{regex:"\\${",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:'[^\\\\"$]+',action:{token:"string"}},{regex:"@escapes",action:{token:"string.escape"}},{regex:"\\\\.",action:{token:"string.escape.invalid"}},{regex:'"',action:{token:"string",next:"@pop"}}],bracketCounting:[{regex:"{",action:{token:"delimiter.bracket",next:"@bracketCounting"}},{regex:"}",action:{token:"delimiter.bracket",next:"@pop"}},{include:"@expression"}],comment:[{regex:"[^\\*]+",action:{token:"comment"}},{regex:"\\*\\/",action:{token:"comment",next:"@pop"}},{regex:"[\\/*]",action:{token:"comment"}}],whitespace:[{regex:a},{regex:"\\/\\*",action:{token:"comment",next:"@comment"}},{regex:"\\/\\/.*$",action:{token:"comment"}}],expression:[{regex:'"""',action:{token:"string",next:"@stringVerbatim"}},{regex:`"${o('""')}`,action:{token:"string",next:"@stringLiteral"}},{regex:g,action:{token:"number"}},{regex:i,action:{cases:{"@keywords":{token:"keyword"},"@namedLiterals":{token:"keyword"},"@default":{token:"identifier"}}}},{regex:`@${i}`,action:{token:"tag"}},{regex:`#${r}`,action:{token:"directive"}}]}};e.conf=l,e.language=k,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/vb-Dyb2648j",["exports"],(function(e){"use strict";const n={comments:{lineComment:"'",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"],["addhandler","end addhandler"],["class","end class"],["enum","end enum"],["event","end event"],["function","end function"],["get","end get"],["if","end if"],["interface","end interface"],["module","end module"],["namespace","end namespace"],["operator","end operator"],["property","end property"],["raiseevent","end raiseevent"],["removehandler","end removehandler"],["select","end select"],["set","end set"],["structure","end structure"],["sub","end sub"],["synclock","end synclock"],["try","end try"],["while","end while"],["with","end with"],["using","end using"],["do","loop"],["for","next"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"<",close:">",notIn:["string","comment"]}],folding:{markers:{start:new RegExp("^\\s*#Region\\b"),end:new RegExp("^\\s*#End Region\\b")}}},t={defaultToken:"",tokenPostfix:".vb",ignoreCase:!0,brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.angle",open:"<",close:">"},{token:"keyword.tag-addhandler",open:"addhandler",close:"end addhandler"},{token:"keyword.tag-class",open:"class",close:"end class"},{token:"keyword.tag-enum",open:"enum",close:"end enum"},{token:"keyword.tag-event",open:"event",close:"end event"},{token:"keyword.tag-function",open:"function",close:"end function"},{token:"keyword.tag-get",open:"get",close:"end get"},{token:"keyword.tag-if",open:"if",close:"end if"},{token:"keyword.tag-interface",open:"interface",close:"end interface"},{token:"keyword.tag-module",open:"module",close:"end module"},{token:"keyword.tag-namespace",open:"namespace",close:"end namespace"},{token:"keyword.tag-operator",open:"operator",close:"end operator"},{token:"keyword.tag-property",open:"property",close:"end property"},{token:"keyword.tag-raiseevent",open:"raiseevent",close:"end raiseevent"},{token:"keyword.tag-removehandler",open:"removehandler",close:"end removehandler"},{token:"keyword.tag-select",open:"select",close:"end select"},{token:"keyword.tag-set",open:"set",close:"end set"},{token:"keyword.tag-structure",open:"structure",close:"end structure"},{token:"keyword.tag-sub",open:"sub",close:"end sub"},{token:"keyword.tag-synclock",open:"synclock",close:"end synclock"},{token:"keyword.tag-try",open:"try",close:"end try"},{token:"keyword.tag-while",open:"while",close:"end while"},{token:"keyword.tag-with",open:"with",close:"end with"},{token:"keyword.tag-using",open:"using",close:"end using"},{token:"keyword.tag-do",open:"do",close:"loop"},{token:"keyword.tag-for",open:"for",close:"next"}],keywords:["AddHandler","AddressOf","Alias","And","AndAlso","As","Async","Boolean","ByRef","Byte","ByVal","Call","Case","Catch","CBool","CByte","CChar","CDate","CDbl","CDec","Char","CInt","Class","CLng","CObj","Const","Continue","CSByte","CShort","CSng","CStr","CType","CUInt","CULng","CUShort","Date","Decimal","Declare","Default","Delegate","Dim","DirectCast","Do","Double","Each","Else","ElseIf","End","EndIf","Enum","Erase","Error","Event","Exit","False","Finally","For","Friend","Function","Get","GetType","GetXMLNamespace","Global","GoSub","GoTo","Handles","If","Implements","Imports","In","Inherits","Integer","Interface","Is","IsNot","Let","Lib","Like","Long","Loop","Me","Mod","Module","MustInherit","MustOverride","MyBase","MyClass","NameOf","Namespace","Narrowing","New","Next","Not","Nothing","NotInheritable","NotOverridable","Object","Of","On","Operator","Option","Optional","Or","OrElse","Out","Overloads","Overridable","Overrides","ParamArray","Partial","Private","Property","Protected","Public","RaiseEvent","ReadOnly","ReDim","RemoveHandler","Resume","Return","SByte","Select","Set","Shadows","Shared","Short","Single","Static","Step","Stop","String","Structure","Sub","SyncLock","Then","Throw","To","True","Try","TryCast","TypeOf","UInteger","ULong","UShort","Using","Variant","Wend","When","While","Widening","With","WithEvents","WriteOnly","Xor"],tagwords:["If","Sub","Select","Try","Class","Enum","Function","Get","Interface","Module","Namespace","Operator","Set","Structure","Using","While","With","Do","Loop","For","Next","Property","Continue","AddHandler","RemoveHandler","Event","RaiseEvent","SyncLock"],symbols:/[=><!~?;\.,:&|+\-*\/\^%]+/,integersuffix:/U?[DI%L&S@]?/,floatsuffix:/[R#F!]?/,tokenizer:{root:[{include:"@whitespace"},[/next(?!\w)/,{token:"keyword.tag-for"}],[/loop(?!\w)/,{token:"keyword.tag-do"}],[/end\s+(?!for|do)(addhandler|class|enum|event|function|get|if|interface|module|namespace|operator|property|raiseevent|removehandler|select|set|structure|sub|synclock|try|while|with|using)/,{token:"keyword.tag-$1"}],[/[a-zA-Z_]\w*/,{cases:{"@tagwords":{token:"keyword.tag-$0"},"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/^\s*#\w+/,"keyword"],[/\d*\d+e([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+(e[\-+]?\d+)?(@floatsuffix)/,"number.float"],[/&H[0-9a-f]+(@integersuffix)/,"number.hex"],[/&0[0-7]+(@integersuffix)/,"number.octal"],[/\d+(@integersuffix)/,"number"],[/#.*#/,"number"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/["\u201c\u201d]/,{token:"string.quote",next:"@string"}]],whitespace:[[/[ \t\r\n]+/,""],[/(\'|REM(?!\w)).*$/,"comment"]],string:[[/[^"\u201c\u201d]+/,"string"],[/["\u201c\u201d]{2}/,"string.escape"],[/["\u201c\u201d]C?/,{token:"string.quote",next:"@pop"}]]}};e.conf=n,e.language=t,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -1,298 +0,0 @@
1
- define("vs/wgsl-BhLXMOR0",["exports"],(function(a){"use strict";const s={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]};function e(b){let i=[];const o=b.split(/\t+|\r+|\n+| +/);for(let r=0;r<o.length;++r)o[r].length>0&&i.push(o[r]);return i}const c=e("true false"),m=e(`
2
- alias
3
- break
4
- case
5
- const
6
- const_assert
7
- continue
8
- continuing
9
- default
10
- diagnostic
11
- discard
12
- else
13
- enable
14
- fn
15
- for
16
- if
17
- let
18
- loop
19
- override
20
- requires
21
- return
22
- struct
23
- switch
24
- var
25
- while
26
- `),l=e(`
27
- NULL
28
- Self
29
- abstract
30
- active
31
- alignas
32
- alignof
33
- as
34
- asm
35
- asm_fragment
36
- async
37
- attribute
38
- auto
39
- await
40
- become
41
- binding_array
42
- cast
43
- catch
44
- class
45
- co_await
46
- co_return
47
- co_yield
48
- coherent
49
- column_major
50
- common
51
- compile
52
- compile_fragment
53
- concept
54
- const_cast
55
- consteval
56
- constexpr
57
- constinit
58
- crate
59
- debugger
60
- decltype
61
- delete
62
- demote
63
- demote_to_helper
64
- do
65
- dynamic_cast
66
- enum
67
- explicit
68
- export
69
- extends
70
- extern
71
- external
72
- fallthrough
73
- filter
74
- final
75
- finally
76
- friend
77
- from
78
- fxgroup
79
- get
80
- goto
81
- groupshared
82
- highp
83
- impl
84
- implements
85
- import
86
- inline
87
- instanceof
88
- interface
89
- layout
90
- lowp
91
- macro
92
- macro_rules
93
- match
94
- mediump
95
- meta
96
- mod
97
- module
98
- move
99
- mut
100
- mutable
101
- namespace
102
- new
103
- nil
104
- noexcept
105
- noinline
106
- nointerpolation
107
- noperspective
108
- null
109
- nullptr
110
- of
111
- operator
112
- package
113
- packoffset
114
- partition
115
- pass
116
- patch
117
- pixelfragment
118
- precise
119
- precision
120
- premerge
121
- priv
122
- protected
123
- pub
124
- public
125
- readonly
126
- ref
127
- regardless
128
- register
129
- reinterpret_cast
130
- require
131
- resource
132
- restrict
133
- self
134
- set
135
- shared
136
- sizeof
137
- smooth
138
- snorm
139
- static
140
- static_assert
141
- static_cast
142
- std
143
- subroutine
144
- super
145
- target
146
- template
147
- this
148
- thread_local
149
- throw
150
- trait
151
- try
152
- type
153
- typedef
154
- typeid
155
- typename
156
- typeof
157
- union
158
- unless
159
- unorm
160
- unsafe
161
- unsized
162
- use
163
- using
164
- varying
165
- virtual
166
- volatile
167
- wgsl
168
- where
169
- with
170
- writeonly
171
- yield
172
- `),u=e(`
173
- read write read_write
174
- function private workgroup uniform storage
175
- perspective linear flat
176
- center centroid sample
177
- vertex_index instance_index position front_facing frag_depth
178
- local_invocation_id local_invocation_index
179
- global_invocation_id workgroup_id num_workgroups
180
- sample_index sample_mask
181
- rgba8unorm
182
- rgba8snorm
183
- rgba8uint
184
- rgba8sint
185
- rgba16uint
186
- rgba16sint
187
- rgba16float
188
- r32uint
189
- r32sint
190
- r32float
191
- rg32uint
192
- rg32sint
193
- rg32float
194
- rgba32uint
195
- rgba32sint
196
- rgba32float
197
- bgra8unorm
198
- `),p=e(`
199
- bool
200
- f16
201
- f32
202
- i32
203
- sampler sampler_comparison
204
- texture_depth_2d
205
- texture_depth_2d_array
206
- texture_depth_cube
207
- texture_depth_cube_array
208
- texture_depth_multisampled_2d
209
- texture_external
210
- texture_external
211
- u32
212
- `),d=e(`
213
- array
214
- atomic
215
- mat2x2
216
- mat2x3
217
- mat2x4
218
- mat3x2
219
- mat3x3
220
- mat3x4
221
- mat4x2
222
- mat4x3
223
- mat4x4
224
- ptr
225
- texture_1d
226
- texture_2d
227
- texture_2d_array
228
- texture_3d
229
- texture_cube
230
- texture_cube_array
231
- texture_multisampled_2d
232
- texture_storage_1d
233
- texture_storage_2d
234
- texture_storage_2d_array
235
- texture_storage_3d
236
- vec2
237
- vec3
238
- vec4
239
- `),x=e(`
240
- vec2i vec3i vec4i
241
- vec2u vec3u vec4u
242
- vec2f vec3f vec4f
243
- vec2h vec3h vec4h
244
- mat2x2f mat2x3f mat2x4f
245
- mat3x2f mat3x3f mat3x4f
246
- mat4x2f mat4x3f mat4x4f
247
- mat2x2h mat2x3h mat2x4h
248
- mat3x2h mat3x3h mat3x4h
249
- mat4x2h mat4x3h mat4x4h
250
- `),f=e(`
251
- bitcast all any select arrayLength abs acos acosh asin asinh atan atanh atan2
252
- ceil clamp cos cosh countLeadingZeros countOneBits countTrailingZeros cross
253
- degrees determinant distance dot exp exp2 extractBits faceForward firstLeadingBit
254
- firstTrailingBit floor fma fract frexp inverseBits inverseSqrt ldexp length
255
- log log2 max min mix modf normalize pow quantizeToF16 radians reflect refract
256
- reverseBits round saturate sign sin sinh smoothstep sqrt step tan tanh transpose
257
- trunc dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine
258
- textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers
259
- textureNumLevels textureNumSamples textureSample textureSampleBias textureSampleCompare
260
- textureSampleCompareLevel textureSampleGrad textureSampleLevel textureSampleBaseClampToEdge
261
- textureStore atomicLoad atomicStore atomicAdd atomicSub atomicMax atomicMin
262
- atomicAnd atomicOr atomicXor atomicExchange atomicCompareExchangeWeak pack4x8snorm
263
- pack4x8unorm pack2x16snorm pack2x16unorm pack2x16float unpack4x8snorm unpack4x8unorm
264
- unpack2x16snorm unpack2x16unorm unpack2x16float storageBarrier workgroupBarrier
265
- workgroupUniformLoad
266
- `),_=e(`
267
- &
268
- &&
269
- ->
270
- /
271
- =
272
- ==
273
- !=
274
- >
275
- >=
276
- <
277
- <=
278
- %
279
- -
280
- --
281
- +
282
- ++
283
- |
284
- ||
285
- *
286
- <<
287
- >>
288
- +=
289
- -=
290
- *=
291
- /=
292
- %=
293
- &=
294
- |=
295
- ^=
296
- >>=
297
- <<=
298
- `),g=/enable|requires|diagnostic/,n=new RegExp("[_\\p{XID_Start}]\\p{XID_Continue}*","u"),t="variable.predefined",h={tokenPostfix:".wgsl",defaultToken:"invalid",unicode:!0,atoms:c,keywords:m,reserved:l,predeclared_enums:u,predeclared_types:p,predeclared_type_generators:d,predeclared_type_aliases:x,predeclared_intrinsics:f,operators:_,symbols:/[!%&*+\-\.\/:;<=>^|_~,]+/,tokenizer:{root:[[g,"keyword","@directive"],[n,{cases:{"@atoms":t,"@keywords":"keyword","@reserved":"invalid","@predeclared_enums":t,"@predeclared_types":t,"@predeclared_type_generators":t,"@predeclared_type_aliases":t,"@predeclared_intrinsics":t,"@default":"identifier"}}],{include:"@commentOrSpace"},{include:"@numbers"},[/[{}()\[\]]/,"@brackets"],["@","annotation","@attribute"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/./,"invalid"]],commentOrSpace:[[/\s+/,"white"],[/\/\*/,"comment","@blockComment"],[/\/\/.*$/,"comment"]],blockComment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],attribute:[{include:"@commentOrSpace"},[/\w+/,"annotation","@pop"]],directive:[{include:"@commentOrSpace"},[/[()]/,"@brackets"],[/,/,"delimiter"],[n,"meta.content"],[/;/,"delimiter","@pop"]],numbers:[[/0[fh]/,"number.float"],[/[1-9][0-9]*[fh]/,"number.float"],[/[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/,"number.float"],[/[0-9]+[eE][+-]?[0-9]+[fh]?/,"number.float"],[/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*(?:[pP][+-]?[0-9]+[fh]?)?/,"number.hex"],[/0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/,"number.hex"],[/0[xX][0-9a-fA-F]+[iu]?/,"number.hex"],[/[1-9][0-9]*[iu]?/,"number"],[/0[iu]?/,"number"]]}};a.conf=s,a.language=h,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/workers-BBttULjf",["exports","./editor-KLE6jdfb","./toggleHighContrast-qGX7E9o7"],(function(c,l,u){"use strict";function a(e,o){const r=globalThis.MonacoEnvironment;if(r?.createTrustedTypesPolicy)try{return r.createTrustedTypesPolicy(e,o)}catch(t){console.error(t);return}try{return globalThis.trustedTypes?.createPolicy(e,o)}catch(t){console.error(t);return}}let n;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?n=globalThis.workerttPolicy:n=a("defaultWorkerFactory",{createScriptURL:e=>e});function i(e){const o=e.label,r=globalThis.MonacoEnvironment;if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",o);if(typeof r.getWorkerUrl=="function"){const t=r.getWorkerUrl("workerMain.js",o);return new Worker(n?n.createScriptURL(t):t,{name:o,type:"module"})}}if(e.createWorker)return e.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function s(e){const o=Promise.resolve(i({label:e.label??"monaco-editor-worker",moduleId:e.moduleId,createWorker:e.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(e.createData),r));return l.editor.createWebWorker({worker:o,host:e.host,keepIdleModels:e.keepIdleModels})}c.createWebWorker=s}));
@@ -1 +0,0 @@
1
- define("vs/xml-cZjNDqDT",["exports","./editor-KLE6jdfb"],(function(e,t){"use strict";const n={comments:{blockComment:["<!--","-->"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:t.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:t.languages.IndentAction.Indent}}]},a={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/<!--/,{token:"comment",next:"@comment"}]],comment:[[/[^<\-]+/,"comment.content"],[/-->/,{token:"comment",next:"@pop"}],[/<!--/,"comment.content.invalid"],[/[<\-]/,"comment.content"]]}};e.conf=n,e.language=a,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -1 +0,0 @@
1
- define("vs/yaml-A1fOIdH6",["exports","./editor-KLE6jdfb"],(function(e,n){"use strict";const t={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:n.languages.IndentAction.Indent}}]},o={tokenPostfix:".yaml",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["true","True","TRUE","false","False","FALSE","null","Null","Null","~"],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/%[^ ]+.*$/,"meta.directive"],[/---/,"operators.directivesEnd"],[/\.{3}/,"operators.documentEnd"],[/[-?:](?= )/,"operators"],{include:"@anchor"},{include:"@tagHandle"},{include:"@flowCollections"},{include:"@blockStyle"},[/@numberInteger(?![ \t]*\S+)/,"number"],[/@numberFloat(?![ \t]*\S+)/,"number.float"],[/@numberOctal(?![ \t]*\S+)/,"number.octal"],[/@numberHex(?![ \t]*\S+)/,"number.hex"],[/@numberInfinity(?![ \t]*\S+)/,"number.infinity"],[/@numberNaN(?![ \t]*\S+)/,"number.nan"],[/@numberDate(?![ \t]*\S+)/,"number.date"],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,["type","white","operators","white"]],{include:"@flowScalars"},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":"keyword","@default":"string"}}]],object:[{include:"@whitespace"},{include:"@comment"},[/\}/,"@brackets","@pop"],[/,/,"delimiter.comma"],[/:(?= )/,"operators"],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,"type"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\},]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],array:[{include:"@whitespace"},{include:"@comment"},[/\]/,"@brackets","@pop"],[/,/,"delimiter.comma"],{include:"@flowCollections"},{include:"@flowScalars"},{include:"@tagHandle"},{include:"@anchor"},{include:"@flowNumber"},[/[^\],]+/,{cases:{"@keywords":"keyword","@default":"string"}}]],multiString:[[/^( +).+$/,"string","@multiStringContinued.$1"]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":"string","@default":{token:"@rematch",next:"@popall"}}}]],whitespace:[[/[ \t\r\n]+/,"white"]],comment:[[/#.*$/,"comment"]],flowCollections:[[/\[/,"@brackets","@array"],[/\{/,"@brackets","@object"]],flowScalars:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'[^']*'/,"string"],[/"/,"string","@doubleQuotedString"]],doubleQuotedString:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],blockStyle:[[/[>|][0-9]*[+-]?$/,"operators","@multiString"]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,"number"],[/@numberFloat(?=[ \t]*[,\]\}])/,"number.float"],[/@numberOctal(?=[ \t]*[,\]\}])/,"number.octal"],[/@numberHex(?=[ \t]*[,\]\}])/,"number.hex"],[/@numberInfinity(?=[ \t]*[,\]\}])/,"number.infinity"],[/@numberNaN(?=[ \t]*[,\]\}])/,"number.nan"],[/@numberDate(?=[ \t]*[,\]\}])/,"number.date"]],tagHandle:[[/\![^ ]*/,"tag"]],anchor:[[/[&*][^ ]+/,"namespace"]]}};e.conf=t,e.language=o,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CAPABILITY_TAGS = void 0;
4
- exports.defaultWebConfig = defaultWebConfig;
5
- exports.getWebConfigPath = getWebConfigPath;
6
- exports.loadWebConfig = loadWebConfig;
7
- exports.saveWebConfig = saveWebConfig;
8
- exports.toProviderConfigs = toProviderConfigs;
9
- /**
10
- * Muse Code 中文开发版 (Muse Code 中文开发版)
11
- * 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
12
- *
13
- * Web 控制台「系统配置」持久化模块:
14
- * - 自定义大模型(openai-compatible / ollama)列表与运行参数
15
- * - 落盘到 <FH_HOME>/web-config.json(原子写:tmp + rename)
16
- * - 读取缺失/损坏时回退默认值,不抛错,便于离线/首启
17
- */
18
- const fs_1 = require("fs");
19
- const path_1 = require("path");
20
- const config_1 = require("../shared/config");
21
- exports.CAPABILITY_TAGS = [
22
- 'code-gen',
23
- 'reasoning',
24
- 'long-context',
25
- 'vision',
26
- 'cheap',
27
- 'local',
28
- ];
29
- const DEFAULT_BASE_URL_OLLAMA = 'http://localhost:11434';
30
- function defaultWebConfig() {
31
- return {
32
- models: {
33
- providers: [],
34
- defaultStrategy: 'cost',
35
- budgetPerTaskUsd: 0.5,
36
- defaultModelId: null,
37
- },
38
- runtime: {
39
- maxConcurrency: 2,
40
- webhookUrl: '',
41
- temperature: 0.2,
42
- maxRetries: 3,
43
- workspaceDir: '',
44
- },
45
- security: {
46
- sandboxMode: 'workspace-write',
47
- requireApproval: true,
48
- },
49
- };
50
- }
51
- function getWebConfigPath() {
52
- return (0, path_1.join)((0, config_1.resolveHomeDir)(), 'web-config.json');
53
- }
54
- /** 读取配置,缺省/损坏回退默认(深合并,保证新增字段始终存在) */
55
- function loadWebConfig() {
56
- const def = defaultWebConfig();
57
- const file = getWebConfigPath();
58
- if (!(0, fs_1.existsSync)(file))
59
- return def;
60
- try {
61
- const raw = JSON.parse((0, fs_1.readFileSync)(file, 'utf8'));
62
- return mergeConfig(def, raw);
63
- }
64
- catch {
65
- return def;
66
- }
67
- }
68
- /** 深合并用户配置到默认骨架,避免缺字段导致的运行期 undefined */
69
- function mergeConfig(def, raw) {
70
- const models = (raw.models ?? {});
71
- const runtime = (raw.runtime ?? {});
72
- const security = (raw.security ?? {});
73
- const validTags = (arr) => {
74
- if (!Array.isArray(arr))
75
- return [];
76
- return arr.filter((t) => exports.CAPABILITY_TAGS.includes(t));
77
- };
78
- const providers = Array.isArray(models.providers)
79
- ? models.providers
80
- .filter((p) => !!p && typeof p === 'object')
81
- .map((p) => ({
82
- id: String(p.id ?? ''),
83
- name: String(p.name ?? ''),
84
- type: (p.type === 'ollama' ? 'ollama' : 'openai-compatible'),
85
- baseURL: String(p.baseURL ?? ''),
86
- model: String(p.model ?? ''),
87
- apiKey: String(p.apiKey ?? ''),
88
- tags: validTags(p.tags),
89
- costPer1k: Number(p.costPer1k ?? 0) || 0,
90
- enabled: p.enabled !== false,
91
- isDefault: p.isDefault === true,
92
- }))
93
- : [];
94
- return {
95
- models: {
96
- providers,
97
- defaultStrategy: (models.defaultStrategy ?? def.models.defaultStrategy),
98
- budgetPerTaskUsd: Number(models.budgetPerTaskUsd ?? def.models.budgetPerTaskUsd) || 0,
99
- defaultModelId: models.defaultModelId != null ? String(models.defaultModelId) : null,
100
- },
101
- runtime: {
102
- maxConcurrency: clampInt(runtime.maxConcurrency, 1, 16, def.runtime.maxConcurrency),
103
- webhookUrl: String(runtime.webhookUrl ?? ''),
104
- temperature: typeof runtime.temperature === 'number' ? runtime.temperature : def.runtime.temperature,
105
- maxRetries: clampInt(runtime.maxRetries, 0, 10, def.runtime.maxRetries),
106
- workspaceDir: typeof runtime.workspaceDir === 'string' ? runtime.workspaceDir : (def.runtime.workspaceDir ?? ''),
107
- },
108
- security: {
109
- sandboxMode: (security.sandboxMode ?? def.security.sandboxMode),
110
- requireApproval: security.requireApproval !== false,
111
- },
112
- };
113
- }
114
- function clampInt(v, min, max, fallback) {
115
- const n = Number(v);
116
- if (!Number.isFinite(n))
117
- return fallback;
118
- return Math.min(max, Math.max(min, Math.floor(n)));
119
- }
120
- /** 原子落盘(tmp + rename),避免半写损坏 */
121
- function saveWebConfig(cfg) {
122
- const file = getWebConfigPath();
123
- (0, fs_1.mkdirSync)((0, config_1.resolveHomeDir)(), { recursive: true });
124
- const tmp = file + '.tmp';
125
- (0, fs_1.writeFileSync)(tmp, JSON.stringify(cfg, null, 2), 'utf8');
126
- (0, fs_1.renameSync)(tmp, file);
127
- }
128
- /** 将自定义模型规整为 ProviderConfig(供注入 FH_PROVIDERS) */
129
- function toProviderConfigs(cfg) {
130
- return cfg.models.providers
131
- .filter((m) => m.enabled && m.model)
132
- .map((m) => ({
133
- id: m.id || m.model,
134
- type: m.type,
135
- baseURL: m.baseURL ||
136
- (m.type === 'ollama' ? DEFAULT_BASE_URL_OLLAMA : ''),
137
- model: m.model,
138
- apiKey: m.apiKey || undefined,
139
- tags: m.tags.length > 0 ? m.tags : ['code-gen', 'reasoning'],
140
- costPer1k: m.costPer1k || 0,
141
- }));
142
- }
143
- //# sourceMappingURL=web-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-config.js","sourceRoot":"","sources":["../../src/web/web-config.ts"],"names":[],"mappings":"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"}