onbuzz 4.7.2 → 4.8.1

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 (994) hide show
  1. package/package.json +1 -1
  2. package/scripts/grounding-bench/bench.mjs +300 -0
  3. package/scripts/grounding-bench/cases.js +173 -0
  4. package/scripts/grounding-bench/imageBuilder.js +119 -0
  5. package/src/core/__tests__/agentScheduler.nativePromptPick.test.js +319 -0
  6. package/src/core/__tests__/agentScheduler.test.js +74 -0
  7. package/src/core/agentPool.js +12 -0
  8. package/src/core/agentScheduler.js +233 -7
  9. package/src/index.js +36 -0
  10. package/src/interfaces/webServer.js +42 -0
  11. package/src/services/__tests__/memoryService.test.js +521 -450
  12. package/src/services/__tests__/modelRouterNaming.test.js +111 -0
  13. package/src/services/__tests__/modelRouterService.test.js +477 -388
  14. package/src/services/aiService.js +136 -1
  15. package/src/services/grounding/GroundingModel.js +116 -0
  16. package/src/services/grounding/KimiAdapter.js +427 -0
  17. package/src/services/grounding/MockAdapter.js +125 -0
  18. package/src/services/grounding/__tests__/KimiAdapter.test.js +475 -0
  19. package/src/services/grounding/__tests__/MockAdapter.test.js +66 -0
  20. package/src/services/grounding/__tests__/groundingMetrics.test.js +156 -0
  21. package/src/services/grounding/__tests__/registry.test.js +122 -0
  22. package/src/services/grounding/constants.js +121 -0
  23. package/src/services/grounding/groundingMetrics.js +121 -0
  24. package/src/services/grounding/index.js +53 -0
  25. package/src/services/grounding/registry.js +125 -0
  26. package/src/services/grounding/types.js +108 -0
  27. package/src/services/memoryService.js +559 -521
  28. package/src/services/modelRouterService.js +433 -364
  29. package/src/services/tokenCountingService.js +2 -2
  30. package/src/tools/__tests__/agentCommunicationTool.test.js +752 -717
  31. package/src/tools/__tests__/baseTool.test.js +164 -0
  32. package/src/tools/__tests__/codeMapTool.test.js +388 -0
  33. package/src/tools/__tests__/foundryWebSearchTool.test.js +252 -0
  34. package/src/tools/__tests__/memoryTool.reminisce.test.js +364 -363
  35. package/src/tools/__tests__/memoryTool.test.js +391 -297
  36. package/src/tools/__tests__/parserHelpers.test.js +233 -0
  37. package/src/tools/__tests__/webTool.e2e.test.js +13 -1
  38. package/src/tools/agentCommunicationTool.js +1399 -1385
  39. package/src/tools/baseTool.js +102 -5
  40. package/src/tools/codeMapTool.js +794 -130
  41. package/src/tools/desktop/DesktopTool.js +638 -0
  42. package/src/tools/desktop/__tests__/DesktopTool.e2e.test.js +306 -0
  43. package/src/tools/desktop/__tests__/DesktopTool.test.js +507 -0
  44. package/src/tools/desktop/__tests__/osCapabilities.test.js +106 -0
  45. package/src/tools/desktop/__tests__/osController.test.js +364 -0
  46. package/src/tools/desktop/osCapabilities.js +248 -0
  47. package/src/tools/desktop/osController.js +491 -0
  48. package/src/tools/foundryWebSearchTool.js +273 -0
  49. package/src/tools/memoryTool.js +892 -820
  50. package/src/tools/openaiFunctionSchemas.js +14 -0
  51. package/src/tools/parserHelpers.js +296 -0
  52. package/src/tools/skillsTool.js +282 -277
  53. package/src/utilities/__tests__/planInjection.test.js +125 -0
  54. package/src/utilities/__tests__/tagParser.test.js +943 -887
  55. package/src/utilities/constants.js +19 -1
  56. package/src/utilities/planInjection.js +103 -0
  57. package/src/utilities/tagParser.js +918 -896
  58. package/web-ui/build/index.html +2 -2
  59. package/web-ui/build/static/1c-DGpIT7i5.js +1 -0
  60. package/web-ui/build/static/abap-5wFDdWLh.js +1 -0
  61. package/web-ui/build/static/abnf-BP1dpNSE.js +1 -0
  62. package/web-ui/build/static/abnf-DBEIAl8g.js +1 -0
  63. package/web-ui/build/static/accesslog-CWSM_T5E.js +1 -0
  64. package/web-ui/build/static/actionscript-DONkco1J.js +1 -0
  65. package/web-ui/build/static/actionscript-FqBYk5er.js +1 -0
  66. package/web-ui/build/static/ada-C2JLRIaM.js +1 -0
  67. package/web-ui/build/static/ada-gKiygTRK.js +1 -0
  68. package/web-ui/build/static/agda-CkSODqK2.js +1 -0
  69. package/web-ui/build/static/al-BJ_YR6p7.js +1 -0
  70. package/web-ui/build/static/angelscript-Dg2byMGg.js +1 -0
  71. package/web-ui/build/static/antlr4-BnpyaFNr.js +1 -0
  72. package/web-ui/build/static/apache-Dffxsd7O.js +1 -0
  73. package/web-ui/build/static/apacheconf-DLitjtWj.js +1 -0
  74. package/web-ui/build/static/apex-Drr_IvU2.js +1 -0
  75. package/web-ui/build/static/apl-CF6qxmXG.js +1 -0
  76. package/web-ui/build/static/applescript-CjOlw3b_.js +1 -0
  77. package/web-ui/build/static/applescript-DjkSl1Ry.js +1 -0
  78. package/web-ui/build/static/aql-KwVmK1gP.js +1 -0
  79. package/web-ui/build/static/arcade-CENSXx0R.js +1 -0
  80. package/web-ui/build/static/arduino-B3Ta9Fll.js +1 -0
  81. package/web-ui/build/static/arduino-CzcsaB9_.js +1 -0
  82. package/web-ui/build/static/arff-CMJSVt_O.js +1 -0
  83. package/web-ui/build/static/armasm-0zSgSPB4.js +1 -0
  84. package/web-ui/build/static/asciidoc-B8K5ctWq.js +1 -0
  85. package/web-ui/build/static/asciidoc-bk2Sg6b6.js +1 -0
  86. package/web-ui/build/static/asm6502-ji6zm4FQ.js +1 -0
  87. package/web-ui/build/static/asmatmel-DJqObM4Y.js +1 -0
  88. package/web-ui/build/static/aspectj-DqQKI7J5.js +1 -0
  89. package/web-ui/build/static/aspnet-9cenTxW7.js +1 -0
  90. package/web-ui/build/static/autohotkey-C6EhiZvl.js +1 -0
  91. package/web-ui/build/static/autohotkey-sTGJOvMM.js +1 -0
  92. package/web-ui/build/static/autoit-B0Im8iQ1.js +1 -0
  93. package/web-ui/build/static/autoit-CO6pUD0H.js +1 -0
  94. package/web-ui/build/static/avisynth-OvOHTfj5.js +1 -0
  95. package/web-ui/build/static/avrasm-BLWZ5Mye.js +1 -0
  96. package/web-ui/build/static/avro-idl-BB2ODvnw.js +1 -0
  97. package/web-ui/build/static/awk-_jhMabQ0.js +1 -0
  98. package/web-ui/build/static/axapta-DdBRgoYy.js +1 -0
  99. package/web-ui/build/static/bash-CsaRGXBQ.js +1 -0
  100. package/web-ui/build/static/bash-CxLFkwAC.js +1 -0
  101. package/web-ui/build/static/basic-BJyy7JJE.js +1 -0
  102. package/web-ui/build/static/basic-CrMb-gv0.js +1 -0
  103. package/web-ui/build/static/batch-BvcykMe5.js +1 -0
  104. package/web-ui/build/static/bbcode-EOBuY5Y6.js +1 -0
  105. package/web-ui/build/static/bicep-QkDJBA34.js +1 -0
  106. package/web-ui/build/static/birb-TAOxKurn.js +1 -0
  107. package/web-ui/build/static/bison-BEK6cnad.js +1 -0
  108. package/web-ui/build/static/bnf-DfEODxsr.js +1 -0
  109. package/web-ui/build/static/bnf-DhbMjsuA.js +1 -0
  110. package/web-ui/build/static/brainfuck-BoVocOa7.js +1 -0
  111. package/web-ui/build/static/brainfuck-DDC5QXPK.js +1 -0
  112. package/web-ui/build/static/brightscript-DNN598w2.js +1 -0
  113. package/web-ui/build/static/bro-Cn_jjZ8P.js +1 -0
  114. package/web-ui/build/static/bsl-CMCN75Gu.js +1 -0
  115. package/web-ui/build/static/c-DbOGQnEJ.js +1 -0
  116. package/web-ui/build/static/c-kggwYFsy.js +1 -0
  117. package/web-ui/build/static/c-like-BIsuUvof.js +1 -0
  118. package/web-ui/build/static/cal-DpgMsBZE.js +1 -0
  119. package/web-ui/build/static/capnproto-C1AHYI-M.js +1 -0
  120. package/web-ui/build/static/ceylon-pvJffDe1.js +1 -0
  121. package/web-ui/build/static/cfscript-C1qylu52.js +1 -0
  122. package/web-ui/build/static/chaiscript-D417WKRI.js +1 -0
  123. package/web-ui/build/static/cil-CjbZHbcY.js +1 -0
  124. package/web-ui/build/static/clean-Dvc6R-F2.js +1 -0
  125. package/web-ui/build/static/clojure-CSVRQPMQ.js +1 -0
  126. package/web-ui/build/static/clojure-ig1Vkg7X.js +1 -0
  127. package/web-ui/build/static/clojure-repl-C1uyEabk.js +1 -0
  128. package/web-ui/build/static/cmake-DSbVcAB3.js +1 -0
  129. package/web-ui/build/static/cmake-Zp8kPwnH.js +1 -0
  130. package/web-ui/build/static/cobol-OsZSiK_P.js +1 -0
  131. package/web-ui/build/static/coffeescript-D8r0416S.js +1 -0
  132. package/web-ui/build/static/coffeescript-DCpgClxh.js +1 -0
  133. package/web-ui/build/static/concurnas-DKnsxUOc.js +1 -0
  134. package/web-ui/build/static/coq-BQFlywVI.js +1 -0
  135. package/web-ui/build/static/coq-BvS9mQB2.js +1 -0
  136. package/web-ui/build/static/cos-D3ze2791.js +1 -0
  137. package/web-ui/build/static/cpp-Bw-cV3P1.js +1 -0
  138. package/web-ui/build/static/cpp-vi1p7XpB.js +1 -0
  139. package/web-ui/build/static/crmsh-BClnJTeQ.js +1 -0
  140. package/web-ui/build/static/crystal-DGzOUYZq.js +1 -0
  141. package/web-ui/build/static/crystal-DMzk6EvA.js +1 -0
  142. package/web-ui/build/static/csharp-BTom8s2X.js +1 -0
  143. package/web-ui/build/static/csharp-Cp2V3jfR.js +1 -0
  144. package/web-ui/build/static/cshtml-Dmtt9Kto.js +1 -0
  145. package/web-ui/build/static/csp-WPVsLe9_.js +1 -0
  146. package/web-ui/build/static/csp-qddj5fu_.js +1 -0
  147. package/web-ui/build/static/css-B0FAm7kj.js +1 -0
  148. package/web-ui/build/static/css-extras-Bx3pvjiG.js +1 -0
  149. package/web-ui/build/static/csv-CH-edgS5.js +1 -0
  150. package/web-ui/build/static/cypher-c3G8Leew.js +1 -0
  151. package/web-ui/build/static/d-BMDSy22_.js +1 -0
  152. package/web-ui/build/static/d-BdH4oW8-.js +1 -0
  153. package/web-ui/build/static/dart-C-r72q-O.js +1 -0
  154. package/web-ui/build/static/dart-CwpBMrKa.js +1 -0
  155. package/web-ui/build/static/dataweave-BPvqdt4k.js +1 -0
  156. package/web-ui/build/static/dax-Eyy6ixcN.js +1 -0
  157. package/web-ui/build/static/delphi-DhEbPj_5.js +1 -0
  158. package/web-ui/build/static/dhall-Ct1L8sN1.js +1 -0
  159. package/web-ui/build/static/diff-CSTqCgwn.js +1 -0
  160. package/web-ui/build/static/diff-Da97B5vW.js +1 -0
  161. package/web-ui/build/static/django-DGit_lCg.js +1 -0
  162. package/web-ui/build/static/django-DPgqFB8k.js +1 -0
  163. package/web-ui/build/static/dns-DUyXuZ-a.js +1 -0
  164. package/web-ui/build/static/dns-zone-file-D79MDxVG.js +1 -0
  165. package/web-ui/build/static/docker-DTiy4o38.js +1 -0
  166. package/web-ui/build/static/dockerfile-CvwPP8wE.js +1 -0
  167. package/web-ui/build/static/dos-CaIUWxvb.js +1 -0
  168. package/web-ui/build/static/dot-D3504w6Y.js +1 -0
  169. package/web-ui/build/static/dsconfig-Smy1eeX_.js +1 -0
  170. package/web-ui/build/static/dts-DyTYSXZj.js +1 -0
  171. package/web-ui/build/static/dust-CrJyi6qA.js +1 -0
  172. package/web-ui/build/static/ebnf-C8nqfkBH.js +1 -0
  173. package/web-ui/build/static/ebnf-Cuh5Vh2-.js +1 -0
  174. package/web-ui/build/static/editorconfig-C7pTGl6n.js +1 -0
  175. package/web-ui/build/static/eiffel-C75MSJCA.js +1 -0
  176. package/web-ui/build/static/ejs-Dyo7DF5w.js +1 -0
  177. package/web-ui/build/static/elixir-D4yJefOc.js +1 -0
  178. package/web-ui/build/static/elixir-DKRow2SJ.js +1 -0
  179. package/web-ui/build/static/elm-CgbdDlkT.js +1 -0
  180. package/web-ui/build/static/elm-D3N-UgU0.js +1 -0
  181. package/web-ui/build/static/erb-BsITh8qW.js +1 -0
  182. package/web-ui/build/static/erb-lY_LyKyS.js +1 -0
  183. package/web-ui/build/static/erlang-BCnPiYmB.js +1 -0
  184. package/web-ui/build/static/erlang-JEghiPXc.js +1 -0
  185. package/web-ui/build/static/erlang-repl-DzU97ugC.js +1 -0
  186. package/web-ui/build/static/etlua-CsBo8cJa.js +1 -0
  187. package/web-ui/build/static/excel-formula-C2piiCYa.js +1 -0
  188. package/web-ui/build/static/excel-kqNypwQD.js +1 -0
  189. package/web-ui/build/static/factor-DZTOhkyU.js +1 -0
  190. package/web-ui/build/static/false-yLjhfaSw.js +1 -0
  191. package/web-ui/build/static/firestore-security-rules-oaQNoH8l.js +1 -0
  192. package/web-ui/build/static/fix-C9IfnTuS.js +1 -0
  193. package/web-ui/build/static/flix-EmJ_JhPo.js +1 -0
  194. package/web-ui/build/static/flow-DCUl7IAQ.js +1 -0
  195. package/web-ui/build/static/fortran-DvyxJmFN.js +1 -0
  196. package/web-ui/build/static/fortran-EEP9R3S5.js +1 -0
  197. package/web-ui/build/static/fsharp-D_98s3RX.js +1 -0
  198. package/web-ui/build/static/fsharp-Dt9jOO5G.js +1 -0
  199. package/web-ui/build/static/ftl-C8gMHWLo.js +1 -0
  200. package/web-ui/build/static/gams-BHxVPb4z.js +1 -0
  201. package/web-ui/build/static/gap-DFtyHk-q.js +1 -0
  202. package/web-ui/build/static/gauss-BwhJWUcg.js +1 -0
  203. package/web-ui/build/static/gcode-BvmXwp09.js +1 -0
  204. package/web-ui/build/static/gcode-gWcD6Vc7.js +1 -0
  205. package/web-ui/build/static/gdscript-btHoX8RE.js +1 -0
  206. package/web-ui/build/static/gedcom-MgPs9iqh.js +1 -0
  207. package/web-ui/build/static/gherkin-B9c_Q16A.js +1 -0
  208. package/web-ui/build/static/gherkin-BvOgkK6h.js +1 -0
  209. package/web-ui/build/static/git-D9XWOVcQ.js +1 -0
  210. package/web-ui/build/static/glsl-CshBHxHY.js +1 -0
  211. package/web-ui/build/static/glsl-fNRUMTDr.js +1 -0
  212. package/web-ui/build/static/gml-B78deHK8.js +1 -0
  213. package/web-ui/build/static/gml-Cj7d2u8O.js +1 -0
  214. package/web-ui/build/static/gn-CJLD-mF1.js +1 -0
  215. package/web-ui/build/static/go-CT93BEkL.js +1 -0
  216. package/web-ui/build/static/go-CTTlNuQO.js +1 -0
  217. package/web-ui/build/static/go-module-BgnXboUE.js +1 -0
  218. package/web-ui/build/static/golo-2S5tXS-l.js +1 -0
  219. package/web-ui/build/static/gradle-8W8DCcWJ.js +1 -0
  220. package/web-ui/build/static/graphql-DZfp6FNU.js +1 -0
  221. package/web-ui/build/static/groovy-BfsyMb3X.js +1 -0
  222. package/web-ui/build/static/groovy-Dxov7ENz.js +1 -0
  223. package/web-ui/build/static/haml-BlUFsdVV.js +1 -0
  224. package/web-ui/build/static/haml-CjVj6vvW.js +1 -0
  225. package/web-ui/build/static/handlebars-DxrQFkyA.js +1 -0
  226. package/web-ui/build/static/handlebars-FE6fotYl.js +1 -0
  227. package/web-ui/build/static/haskell-B6z0RCD_.js +1 -0
  228. package/web-ui/build/static/haskell-JBFmJTRy.js +1 -0
  229. package/web-ui/build/static/haxe-BtMZMi-_.js +1 -0
  230. package/web-ui/build/static/haxe-C1J8n-fH.js +1 -0
  231. package/web-ui/build/static/hcl-DJP-bFWE.js +1 -0
  232. package/web-ui/build/static/hlsl-DrGjhs1b.js +1 -0
  233. package/web-ui/build/static/hoon-Cg-ZhqIT.js +1 -0
  234. package/web-ui/build/static/hpkp-D07vgmoZ.js +1 -0
  235. package/web-ui/build/static/hsp-CsypPWoA.js +1 -0
  236. package/web-ui/build/static/hsts-B6DMRxvP.js +1 -0
  237. package/web-ui/build/static/htmlbars-BI7_Hw4e.js +1 -0
  238. package/web-ui/build/static/http-90ihEi4s.js +1 -0
  239. package/web-ui/build/static/http-Dp4QXj9E.js +1 -0
  240. package/web-ui/build/static/hy-BMgKvP4K.js +1 -0
  241. package/web-ui/build/static/ichigojam-D6wKvJDb.js +1 -0
  242. package/web-ui/build/static/icon-CrgkmCwl.js +1 -0
  243. package/web-ui/build/static/icu-message-format-Bi2JxCXs.js +1 -0
  244. package/web-ui/build/static/idris-DbUsyZt5.js +1 -0
  245. package/web-ui/build/static/iecst-CQZ9t8fW.js +1 -0
  246. package/web-ui/build/static/ignore-BaFgtNMs.js +1 -0
  247. package/web-ui/build/static/index-DEWSWosh.css +1 -0
  248. package/web-ui/build/static/index-Di1bjCFA.js +13 -0
  249. package/web-ui/build/static/index-otR_WSsL.js +1 -0
  250. package/web-ui/build/static/index-whZPU4as.js +1183 -0
  251. package/web-ui/build/static/inform7-ClyX1Gro.js +1 -0
  252. package/web-ui/build/static/inform7-tZHBS5XP.js +1 -0
  253. package/web-ui/build/static/ini-BrP5JNYL.js +1 -0
  254. package/web-ui/build/static/ini-CVkrAhwV.js +1 -0
  255. package/web-ui/build/static/io-BJ1Y6Bdc.js +1 -0
  256. package/web-ui/build/static/irpf90-fjjcKS_8.js +1 -0
  257. package/web-ui/build/static/isbl-ClpvfUIz.js +1 -0
  258. package/web-ui/build/static/j-CICW77xS.js +1 -0
  259. package/web-ui/build/static/java-B9DFK-0E.js +1 -0
  260. package/web-ui/build/static/java-BL_6rYko.js +1 -0
  261. package/web-ui/build/static/javadoc-Cc4HKpKK.js +1 -0
  262. package/web-ui/build/static/javadoclike-CgNkUDOm.js +1 -0
  263. package/web-ui/build/static/javascript-CM40ZECq.js +1 -0
  264. package/web-ui/build/static/javastacktrace-BHSqXfG5.js +1 -0
  265. package/web-ui/build/static/jboss-cli-Bv5NhVSZ.js +1 -0
  266. package/web-ui/build/static/jexl--Ohk_keA.js +1 -0
  267. package/web-ui/build/static/jolie-DMTN5Vdf.js +1 -0
  268. package/web-ui/build/static/jq-nXRLldXX.js +1 -0
  269. package/web-ui/build/static/js-extras-eLwv3frs.js +1 -0
  270. package/web-ui/build/static/js-templates-Ca0owlrg.js +1 -0
  271. package/web-ui/build/static/jsdoc-KERXp0da.js +1 -0
  272. package/web-ui/build/static/json-BTjLaRsy.js +1 -0
  273. package/web-ui/build/static/json-p7pU0qdW.js +1 -0
  274. package/web-ui/build/static/json5-Cxjy1udc.js +1 -0
  275. package/web-ui/build/static/jsonp-CO52H7Gy.js +1 -0
  276. package/web-ui/build/static/jsstacktrace-8YKfoyJP.js +1 -0
  277. package/web-ui/build/static/jsx-Ct_05KbM.js +1 -0
  278. package/web-ui/build/static/julia-23I1ubCE.js +1 -0
  279. package/web-ui/build/static/julia-d8rVGed_.js +1 -0
  280. package/web-ui/build/static/julia-repl-mwnHedW_.js +1 -0
  281. package/web-ui/build/static/keepalived-E85Rx_fF.js +1 -0
  282. package/web-ui/build/static/keyman-aWd3QUDq.js +1 -0
  283. package/web-ui/build/static/kotlin-Cu370hQq.js +1 -0
  284. package/web-ui/build/static/kotlin-DoJ2WnmZ.js +1 -0
  285. package/web-ui/build/static/kumir-oiOgqcQO.js +1 -0
  286. package/web-ui/build/static/kusto-Bp-B02K5.js +1 -0
  287. package/web-ui/build/static/lasso-BxoQVwOO.js +1 -0
  288. package/web-ui/build/static/latex-CANm5vsX.js +1 -0
  289. package/web-ui/build/static/latex-PMroeNch.js +1 -0
  290. package/web-ui/build/static/latte-2ErU_2XF.js +1 -0
  291. package/web-ui/build/static/ldif-ChPn_F7o.js +1 -0
  292. package/web-ui/build/static/leaf-UkCugDgG.js +1 -0
  293. package/web-ui/build/static/less-CCH5RA89.js +1 -0
  294. package/web-ui/build/static/less-CGZbVU1g.js +1 -0
  295. package/web-ui/build/static/lilypond-BoyM37sv.js +1 -0
  296. package/web-ui/build/static/liquid-DGJVpRBi.js +1 -0
  297. package/web-ui/build/static/lisp-93nne61u.js +1 -0
  298. package/web-ui/build/static/lisp-DYjIRsXz.js +1 -0
  299. package/web-ui/build/static/livecodeserver-CfNaxIE4.js +1 -0
  300. package/web-ui/build/static/livescript-C8kDlQkz.js +1 -0
  301. package/web-ui/build/static/livescript-CoarnRHq.js +1 -0
  302. package/web-ui/build/static/llvm-CBVyNmAh.js +1 -0
  303. package/web-ui/build/static/llvm-DGxq8a7u.js +1 -0
  304. package/web-ui/build/static/log-BivgwFql.js +1 -0
  305. package/web-ui/build/static/lolcode-l5sK2cZz.js +1 -0
  306. package/web-ui/build/static/lsl-Xm44xLRQ.js +1 -0
  307. package/web-ui/build/static/lua-CGvrzfKp.js +1 -0
  308. package/web-ui/build/static/lua-nHwXeY4c.js +1 -0
  309. package/web-ui/build/static/magma-DmNItmna.js +1 -0
  310. package/web-ui/build/static/makefile-CKJNNHGb.js +1 -0
  311. package/web-ui/build/static/makefile-DI6y5Qml.js +1 -0
  312. package/web-ui/build/static/markdown-BgpbxKd-.js +1 -0
  313. package/web-ui/build/static/markdown-CvcxA4yk.js +1 -0
  314. package/web-ui/build/static/markup-templating-DijqesiA.js +1 -0
  315. package/web-ui/build/static/mathematica-Cxll1Q10.js +1 -0
  316. package/web-ui/build/static/matlab-BJo2T1A-.js +1 -0
  317. package/web-ui/build/static/matlab-C6DlZX4l.js +1 -0
  318. package/web-ui/build/static/maxima-DJXO4sbL.js +1 -0
  319. package/web-ui/build/static/maxscript-DdLpUYBs.js +1 -0
  320. package/web-ui/build/static/mel-BIpfnSyZ.js +1 -0
  321. package/web-ui/build/static/mel-BYcTUZJW.js +1 -0
  322. package/web-ui/build/static/mercury-C_LSpbD8.js +1 -0
  323. package/web-ui/build/static/mermaid-D9yBWnrT.js +1 -0
  324. package/web-ui/build/static/mipsasm-nR_K2Ue-.js +1 -0
  325. package/web-ui/build/static/mizar-BeLUPncD.js +1 -0
  326. package/web-ui/build/static/mizar-BesIbZd9.js +1 -0
  327. package/web-ui/build/static/mojolicious-cBx3OWa-.js +1 -0
  328. package/web-ui/build/static/mongodb-DTWKy9ac.js +1 -0
  329. package/web-ui/build/static/monkey-B72bZC3c.js +1 -0
  330. package/web-ui/build/static/monkey-G9XELYPQ.js +1 -0
  331. package/web-ui/build/static/moonscript-BXYVQiqj.js +1 -0
  332. package/web-ui/build/static/moonscript-sDd-5knz.js +1 -0
  333. package/web-ui/build/static/n1ql-0vKSfFAO.js +1 -0
  334. package/web-ui/build/static/n1ql-C9_BSZfz.js +1 -0
  335. package/web-ui/build/static/n4js-B7Ct8dds.js +1 -0
  336. package/web-ui/build/static/nand2tetris-hdl-p9gpphTM.js +1 -0
  337. package/web-ui/build/static/naniscript-6ZVr8Aug.js +1 -0
  338. package/web-ui/build/static/nasm-Ca73yTUt.js +1 -0
  339. package/web-ui/build/static/neon-DNP49oyX.js +1 -0
  340. package/web-ui/build/static/nevod-Qhgt7Bce.js +1 -0
  341. package/web-ui/build/static/nginx-D5e7lu62.js +1 -0
  342. package/web-ui/build/static/nginx-DobnyESB.js +1 -0
  343. package/web-ui/build/static/nim-BPBivUOV.js +1 -0
  344. package/web-ui/build/static/nim-Baoug1Wa.js +1 -0
  345. package/web-ui/build/static/nix-CSPTQs5y.js +1 -0
  346. package/web-ui/build/static/nix-Dk4eNw49.js +1 -0
  347. package/web-ui/build/static/node-repl-NJNL8VFR.js +1 -0
  348. package/web-ui/build/static/nsis-BZ0oMzEw.js +1 -0
  349. package/web-ui/build/static/nsis-CKPCjtCU.js +1 -0
  350. package/web-ui/build/static/objectivec-BkfIRhhV.js +1 -0
  351. package/web-ui/build/static/objectivec-CnQgqhbJ.js +1 -0
  352. package/web-ui/build/static/ocaml-9rGNzRrK.js +1 -0
  353. package/web-ui/build/static/ocaml-CTolCqxL.js +1 -0
  354. package/web-ui/build/static/opencl-9Q3vRDxv.js +1 -0
  355. package/web-ui/build/static/openqasm-D2QiuFBp.js +1 -0
  356. package/web-ui/build/static/openscad-C3HyuzpB.js +1 -0
  357. package/web-ui/build/static/oxygene-4gi-VYy_.js +1 -0
  358. package/web-ui/build/static/oz-BGDEB-1A.js +1 -0
  359. package/web-ui/build/static/parigp-CfZzp1uE.js +1 -0
  360. package/web-ui/build/static/parser-UbGteTcy.js +1 -0
  361. package/web-ui/build/static/parser3-C-Jx-fy7.js +1 -0
  362. package/web-ui/build/static/pascal-D1_R0gW-.js +1 -0
  363. package/web-ui/build/static/pascaligo-B8C-98Np.js +1 -0
  364. package/web-ui/build/static/pcaxis-TGnlUKNs.js +1 -0
  365. package/web-ui/build/static/peoplecode-C5Vf1AH0.js +1 -0
  366. package/web-ui/build/static/perl-CBp1N62T.js +1 -0
  367. package/web-ui/build/static/perl-Z59j904t.js +1 -0
  368. package/web-ui/build/static/pf-Cq8B_xwQ.js +1 -0
  369. package/web-ui/build/static/pgsql-ofJbUHkL.js +1 -0
  370. package/web-ui/build/static/php-OlH7HLQJ.js +1 -0
  371. package/web-ui/build/static/php-extras-GqtrxLuk.js +1 -0
  372. package/web-ui/build/static/php-r09kMDOB.js +1 -0
  373. package/web-ui/build/static/php-template-18uT97Qo.js +1 -0
  374. package/web-ui/build/static/phpdoc-9tRFvup9.js +1 -0
  375. package/web-ui/build/static/plaintext-DsYT6Mu-.js +1 -0
  376. package/web-ui/build/static/plsql-RhWQNJVb.js +1 -0
  377. package/web-ui/build/static/pony-DD6JMLYI.js +1 -0
  378. package/web-ui/build/static/powerquery-CALow-bt.js +1 -0
  379. package/web-ui/build/static/powershell-C2QvIuKF.js +1 -0
  380. package/web-ui/build/static/powershell-yrbJEhCh.js +1 -0
  381. package/web-ui/build/static/processing-1T5w_Q03.js +1 -0
  382. package/web-ui/build/static/processing-DBim_dO-.js +1 -0
  383. package/web-ui/build/static/profile-Cdloh8mZ.js +1 -0
  384. package/web-ui/build/static/prolog-DRSsNnns.js +1 -0
  385. package/web-ui/build/static/prolog-D_ajweDr.js +1 -0
  386. package/web-ui/build/static/promql-BRuwn6Bn.js +1 -0
  387. package/web-ui/build/static/properties-D5Wyl4X4.js +1 -0
  388. package/web-ui/build/static/properties-kn4fl1bl.js +1 -0
  389. package/web-ui/build/static/protobuf-BMO76zWi.js +1 -0
  390. package/web-ui/build/static/protobuf-CTUCF-U-.js +1 -0
  391. package/web-ui/build/static/psl-CiqYdQbY.js +1 -0
  392. package/web-ui/build/static/pug-BLE2Qayj.js +1 -0
  393. package/web-ui/build/static/puppet-CFKLWXft.js +1 -0
  394. package/web-ui/build/static/puppet-DQci0Dl5.js +1 -0
  395. package/web-ui/build/static/pure-D2h_GynV.js +1 -0
  396. package/web-ui/build/static/purebasic-BF8MVw8V.js +1 -0
  397. package/web-ui/build/static/purebasic-BTtHiCkh.js +1 -0
  398. package/web-ui/build/static/purescript-D1ZSh-sH.js +1 -0
  399. package/web-ui/build/static/python-Cp9_Vdhb.js +1 -0
  400. package/web-ui/build/static/python-DdgNw8IW.js +1 -0
  401. package/web-ui/build/static/python-repl-DvK89VMC.js +1 -0
  402. package/web-ui/build/static/q-COaIgwhT.js +1 -0
  403. package/web-ui/build/static/q-Cm0dQkW8.js +1 -0
  404. package/web-ui/build/static/qml-BpsOqqJM.js +1 -0
  405. package/web-ui/build/static/qml-BziQXlU4.js +1 -0
  406. package/web-ui/build/static/qore-Cutz6g-2.js +1 -0
  407. package/web-ui/build/static/qsharp-B16619X1.js +1 -0
  408. package/web-ui/build/static/r-CFUIj5Hd.js +1 -0
  409. package/web-ui/build/static/r-CPrwCi5w.js +1 -0
  410. package/web-ui/build/static/racket-Bh08DFXF.js +1 -0
  411. package/web-ui/build/static/reason-BxjDq4e-.js +1 -0
  412. package/web-ui/build/static/reasonml-Ds5SsGP8.js +1 -0
  413. package/web-ui/build/static/regex-DhBIDIMI.js +1 -0
  414. package/web-ui/build/static/rego-DCwxZXcB.js +1 -0
  415. package/web-ui/build/static/renpy-C2fuQfqb.js +1 -0
  416. package/web-ui/build/static/rest-C52ZpxWQ.js +1 -0
  417. package/web-ui/build/static/rib-Cbl2Mzyj.js +1 -0
  418. package/web-ui/build/static/rip-BTOu5ZIE.js +1 -0
  419. package/web-ui/build/static/roboconf-3Oi2wuVk.js +1 -0
  420. package/web-ui/build/static/roboconf-ndLZLE39.js +1 -0
  421. package/web-ui/build/static/robotframework-BzHXiIj1.js +1 -0
  422. package/web-ui/build/static/routeros-CkpPoqx-.js +1 -0
  423. package/web-ui/build/static/rsl-C0bwOQ38.js +1 -0
  424. package/web-ui/build/static/ruby-C_hIhtuQ.js +1 -0
  425. package/web-ui/build/static/ruby-DvKfZPzj.js +1 -0
  426. package/web-ui/build/static/ruleslanguage-CbZJlddz.js +1 -0
  427. package/web-ui/build/static/rust-BFPIhB-X.js +1 -0
  428. package/web-ui/build/static/rust-sBpUq-qE.js +1 -0
  429. package/web-ui/build/static/sas-BCXvYN9x.js +1 -0
  430. package/web-ui/build/static/sas-D7GAsTY3.js +1 -0
  431. package/web-ui/build/static/sass-BdaErGMN.js +1 -0
  432. package/web-ui/build/static/scala-Cj81oCl9.js +1 -0
  433. package/web-ui/build/static/scala-CvbksfY6.js +1 -0
  434. package/web-ui/build/static/scheme-BM5ZqKnl.js +1 -0
  435. package/web-ui/build/static/scheme-BPvlu9Tk.js +1 -0
  436. package/web-ui/build/static/scilab-CJanLKQN.js +1 -0
  437. package/web-ui/build/static/scss-C53YF_7f.js +1 -0
  438. package/web-ui/build/static/scss-DPp8UZbr.js +1 -0
  439. package/web-ui/build/static/shell-CC9bQXMe.js +1 -0
  440. package/web-ui/build/static/shell-session-CuR3fbf-.js +1 -0
  441. package/web-ui/build/static/smali-CUgLls3D.js +1 -0
  442. package/web-ui/build/static/smali-YODSX8qt.js +1 -0
  443. package/web-ui/build/static/smalltalk-BMJQ4bbs.js +1 -0
  444. package/web-ui/build/static/smalltalk-BVGY3CTl.js +1 -0
  445. package/web-ui/build/static/smarty-C9aNt4-p.js +1 -0
  446. package/web-ui/build/static/sml-C3BIHhfq.js +1 -0
  447. package/web-ui/build/static/sml-DTipyRmY.js +1 -0
  448. package/web-ui/build/static/solidity-1yuPUqoC.js +1 -0
  449. package/web-ui/build/static/solution-file-BgzK4GOU.js +1 -0
  450. package/web-ui/build/static/soy-CFJXRvqc.js +1 -0
  451. package/web-ui/build/static/sparql-CAosYMpl.js +1 -0
  452. package/web-ui/build/static/splunk-spl-DkINtWr8.js +1 -0
  453. package/web-ui/build/static/sqf-DbrWIS2M.js +1 -0
  454. package/web-ui/build/static/sqf-nq8Q9J2W.js +1 -0
  455. package/web-ui/build/static/sql-9bwClhZQ.js +1 -0
  456. package/web-ui/build/static/sql-CqPkY-lX.js +1 -0
  457. package/web-ui/build/static/sql_more-CsY5ts77.js +1 -0
  458. package/web-ui/build/static/squirrel-BuqtzRBD.js +1 -0
  459. package/web-ui/build/static/stan-BNxBSglc.js +1 -0
  460. package/web-ui/build/static/stan-CZVMc34l.js +1 -0
  461. package/web-ui/build/static/stata-DKnVdHCd.js +1 -0
  462. package/web-ui/build/static/step21-Cu_TaBGF.js +1 -0
  463. package/web-ui/build/static/stylus-BS7-OJew.js +1 -0
  464. package/web-ui/build/static/stylus-DtFrp1Nk.js +1 -0
  465. package/web-ui/build/static/subunit-DDCoWkkc.js +1 -0
  466. package/web-ui/build/static/swift-BaguUZbl.js +1 -0
  467. package/web-ui/build/static/swift-mwBsb8Bx.js +1 -0
  468. package/web-ui/build/static/systemd-D6PpyDKk.js +1 -0
  469. package/web-ui/build/static/t4-cs-Cem8g4Ck.js +1 -0
  470. package/web-ui/build/static/t4-templating-BZo-HjmD.js +1 -0
  471. package/web-ui/build/static/t4-vb-B4oVnKa4.js +1 -0
  472. package/web-ui/build/static/taggerscript-DweAZ5pw.js +1 -0
  473. package/web-ui/build/static/tap-DpuvKHHF.js +1 -0
  474. package/web-ui/build/static/tap-hUKmJObZ.js +1 -0
  475. package/web-ui/build/static/tcl-BUvhAi7u.js +1 -0
  476. package/web-ui/build/static/tcl-Dsck63d8.js +1 -0
  477. package/web-ui/build/static/textile-CgKbqJ-j.js +1 -0
  478. package/web-ui/build/static/thrift-B5H6rApp.js +1 -0
  479. package/web-ui/build/static/toml-DggTpfOo.js +1 -0
  480. package/web-ui/build/static/tp-CazB2P2X.js +1 -0
  481. package/web-ui/build/static/tremor-B1jy7S5p.js +1 -0
  482. package/web-ui/build/static/tsx-BqF2lVDi.js +1 -0
  483. package/web-ui/build/static/tt2-BNoNXpEe.js +1 -0
  484. package/web-ui/build/static/turtle-B0evd5mn.js +1 -0
  485. package/web-ui/build/static/twig-B5A7nMdv.js +1 -0
  486. package/web-ui/build/static/twig-DZnLWvh8.js +1 -0
  487. package/web-ui/build/static/typescript-Bbe_P093.js +1 -0
  488. package/web-ui/build/static/typescript-BfhvmSSG.js +1 -0
  489. package/web-ui/build/static/typoscript-BjuZEIgw.js +1 -0
  490. package/web-ui/build/static/unrealscript-C3iUCFRi.js +1 -0
  491. package/web-ui/build/static/uorazor-CbZXwzIj.js +1 -0
  492. package/web-ui/build/static/uri-xMPSnp6m.js +1 -0
  493. package/web-ui/build/static/v-BKcGo5I6.js +1 -0
  494. package/web-ui/build/static/vala-BRoBE4am.js +1 -0
  495. package/web-ui/build/static/vala-B__Iyrma.js +1 -0
  496. package/web-ui/build/static/vbnet-DBxlMRvN.js +1 -0
  497. package/web-ui/build/static/vbnet-DjAXt5BE.js +1 -0
  498. package/web-ui/build/static/vbscript-BNA4oANi.js +1 -0
  499. package/web-ui/build/static/vbscript-html-o8ckLPKG.js +1 -0
  500. package/web-ui/build/static/velocity-D7sc5ggA.js +1 -0
  501. package/web-ui/build/static/verilog-BWJfMIng.js +1 -0
  502. package/web-ui/build/static/verilog-jW2GPC--.js +1 -0
  503. package/web-ui/build/static/vhdl-BIVlXRPa.js +1 -0
  504. package/web-ui/build/static/vhdl-BeqdhhxD.js +1 -0
  505. package/web-ui/build/static/vim-712lI4-g.js +1 -0
  506. package/web-ui/build/static/vim-DMROTzr0.js +1 -0
  507. package/web-ui/build/static/visual-basic-CQfbM-ta.js +1 -0
  508. package/web-ui/build/static/warpscript-DFAvCXFQ.js +1 -0
  509. package/web-ui/build/static/wasm-CiYoxBl0.js +1 -0
  510. package/web-ui/build/static/web-idl-DoCkPK8y.js +1 -0
  511. package/web-ui/build/static/wiki-bvz0AGzB.js +1 -0
  512. package/web-ui/build/static/wolfram-fBuyFEgU.js +1 -0
  513. package/web-ui/build/static/wren-DvATFxjF.js +1 -0
  514. package/web-ui/build/static/x86asm-r4bPbUR_.js +1 -0
  515. package/web-ui/build/static/xeora-B6iOnDJY.js +1 -0
  516. package/web-ui/build/static/xl-Ce6B5slc.js +1 -0
  517. package/web-ui/build/static/xml-DNjyPmhQ.js +1 -0
  518. package/web-ui/build/static/xml-doc-DydogmZD.js +1 -0
  519. package/web-ui/build/static/xojo-DCQLltvr.js +1 -0
  520. package/web-ui/build/static/xquery-C-fAnA0H.js +1 -0
  521. package/web-ui/build/static/xquery-CNeqzhLO.js +1 -0
  522. package/web-ui/build/static/yaml-BsVaGsk5.js +1 -0
  523. package/web-ui/build/static/yaml-kVZvwv_C.js +1 -0
  524. package/web-ui/build/static/yang-B_gq9JEq.js +1 -0
  525. package/web-ui/build/static/zephir-ECIXgXhX.js +1 -0
  526. package/web-ui/build/static/zig-DY325EKG.js +1 -0
  527. package/web-ui/build/static/1c-BLo2-5GS.js +0 -1
  528. package/web-ui/build/static/abap-BjUneMMr.js +0 -1
  529. package/web-ui/build/static/abnf-CZTz-l7P.js +0 -1
  530. package/web-ui/build/static/abnf-ITJ5mkBo.js +0 -1
  531. package/web-ui/build/static/accesslog-Dj78lZOU.js +0 -1
  532. package/web-ui/build/static/actionscript-Chivtu59.js +0 -1
  533. package/web-ui/build/static/actionscript-CrvMFXnx.js +0 -1
  534. package/web-ui/build/static/ada-DdJtyoYe.js +0 -1
  535. package/web-ui/build/static/ada-GIvogaLi.js +0 -1
  536. package/web-ui/build/static/agda-DbPp4fQi.js +0 -1
  537. package/web-ui/build/static/al-BZ24KwRS.js +0 -1
  538. package/web-ui/build/static/angelscript-DzsFypYt.js +0 -1
  539. package/web-ui/build/static/antlr4-3qb4rD3S.js +0 -1
  540. package/web-ui/build/static/apache-DF0P5ZRm.js +0 -1
  541. package/web-ui/build/static/apacheconf-C8KuNf9c.js +0 -1
  542. package/web-ui/build/static/apex-CPV-DeVE.js +0 -1
  543. package/web-ui/build/static/apl-C60bVxxW.js +0 -1
  544. package/web-ui/build/static/applescript-uz0i0tu1.js +0 -1
  545. package/web-ui/build/static/applescript-xcPRUBia.js +0 -1
  546. package/web-ui/build/static/aql-CRh4IGkA.js +0 -1
  547. package/web-ui/build/static/arcade-CmLedeqc.js +0 -1
  548. package/web-ui/build/static/arduino-3pr1BvXB.js +0 -1
  549. package/web-ui/build/static/arduino-C2BejAip.js +0 -1
  550. package/web-ui/build/static/arff-DE6Wr9MU.js +0 -1
  551. package/web-ui/build/static/armasm-DXodTfP4.js +0 -1
  552. package/web-ui/build/static/asciidoc-BU2BDFme.js +0 -1
  553. package/web-ui/build/static/asciidoc-CgvtvdeC.js +0 -1
  554. package/web-ui/build/static/asm6502-BMuYCKmP.js +0 -1
  555. package/web-ui/build/static/asmatmel-Dwxzg4kq.js +0 -1
  556. package/web-ui/build/static/aspectj-XZIldIRI.js +0 -1
  557. package/web-ui/build/static/aspnet-UxY2bZ9O.js +0 -1
  558. package/web-ui/build/static/autohotkey-BdZoQT7s.js +0 -1
  559. package/web-ui/build/static/autohotkey-DLWs6p8o.js +0 -1
  560. package/web-ui/build/static/autoit-CxcZx_kh.js +0 -1
  561. package/web-ui/build/static/autoit-HY_BHh1p.js +0 -1
  562. package/web-ui/build/static/avisynth-4Q4be9zq.js +0 -1
  563. package/web-ui/build/static/avrasm-CFqVJML2.js +0 -1
  564. package/web-ui/build/static/avro-idl-DVTV2YZm.js +0 -1
  565. package/web-ui/build/static/awk-C1Udi4As.js +0 -1
  566. package/web-ui/build/static/axapta-B9lexIDC.js +0 -1
  567. package/web-ui/build/static/bash-DDZrx0R1.js +0 -1
  568. package/web-ui/build/static/bash-Uuijyc_K.js +0 -1
  569. package/web-ui/build/static/basic-B29QFWwp.js +0 -1
  570. package/web-ui/build/static/basic-DKDOc42O.js +0 -1
  571. package/web-ui/build/static/batch-CA3q9wRr.js +0 -1
  572. package/web-ui/build/static/bbcode-DkUDcqrp.js +0 -1
  573. package/web-ui/build/static/bicep-AHSQiVgQ.js +0 -1
  574. package/web-ui/build/static/birb-BsAnN1j3.js +0 -1
  575. package/web-ui/build/static/bison-BIq5-ZXo.js +0 -1
  576. package/web-ui/build/static/bnf-BexLm6hz.js +0 -1
  577. package/web-ui/build/static/bnf-Dm46EM5S.js +0 -1
  578. package/web-ui/build/static/brainfuck-CBG8MHhD.js +0 -1
  579. package/web-ui/build/static/brainfuck-DrHuUFVv.js +0 -1
  580. package/web-ui/build/static/brightscript-CoQ7s_l3.js +0 -1
  581. package/web-ui/build/static/bro-Cz5RmvoK.js +0 -1
  582. package/web-ui/build/static/bsl-C9wXomkX.js +0 -1
  583. package/web-ui/build/static/c-BZFEFWwC.js +0 -1
  584. package/web-ui/build/static/c-CfFWLEL7.js +0 -1
  585. package/web-ui/build/static/c-like-CvIii1QP.js +0 -1
  586. package/web-ui/build/static/cal-be-Dz3GC.js +0 -1
  587. package/web-ui/build/static/capnproto-Bcaxak1e.js +0 -1
  588. package/web-ui/build/static/ceylon-QH_iQXnW.js +0 -1
  589. package/web-ui/build/static/cfscript-BRgBlxCO.js +0 -1
  590. package/web-ui/build/static/chaiscript-DSBx5kyN.js +0 -1
  591. package/web-ui/build/static/cil-C90LIbge.js +0 -1
  592. package/web-ui/build/static/clean-D2X3fSKw.js +0 -1
  593. package/web-ui/build/static/clojure-CvKE0e-3.js +0 -1
  594. package/web-ui/build/static/clojure-Cy3Zg4vZ.js +0 -1
  595. package/web-ui/build/static/clojure-repl-D0kONHv2.js +0 -1
  596. package/web-ui/build/static/cmake-DIDVe3n_.js +0 -1
  597. package/web-ui/build/static/cmake-DPijEs9c.js +0 -1
  598. package/web-ui/build/static/cobol-BPEjLjGY.js +0 -1
  599. package/web-ui/build/static/coffeescript-CoSx9MQU.js +0 -1
  600. package/web-ui/build/static/coffeescript-L5CBXrnP.js +0 -1
  601. package/web-ui/build/static/concurnas-q5sXhVU4.js +0 -1
  602. package/web-ui/build/static/coq-BAEq82zI.js +0 -1
  603. package/web-ui/build/static/coq-BBgtQZwi.js +0 -1
  604. package/web-ui/build/static/cos-9FdwfBC5.js +0 -1
  605. package/web-ui/build/static/cpp-CYt8UYn2.js +0 -1
  606. package/web-ui/build/static/cpp-CZ2lOXlm.js +0 -1
  607. package/web-ui/build/static/crmsh-C_TZWkES.js +0 -1
  608. package/web-ui/build/static/crystal-BDf_0NDz.js +0 -1
  609. package/web-ui/build/static/crystal-BrTR9dGT.js +0 -1
  610. package/web-ui/build/static/csharp-BSBrba50.js +0 -1
  611. package/web-ui/build/static/csharp-Cerqyqbn.js +0 -1
  612. package/web-ui/build/static/cshtml-heNA_ya5.js +0 -1
  613. package/web-ui/build/static/csp-CJprtNTl.js +0 -1
  614. package/web-ui/build/static/csp-CyYfNNga.js +0 -1
  615. package/web-ui/build/static/css-ClMfqSLF.js +0 -1
  616. package/web-ui/build/static/css-extras-BRU-Fmfk.js +0 -1
  617. package/web-ui/build/static/csv-VxPQSCnT.js +0 -1
  618. package/web-ui/build/static/cypher-COR7lVoB.js +0 -1
  619. package/web-ui/build/static/d-CjJIoaqU.js +0 -1
  620. package/web-ui/build/static/d-DrTea74c.js +0 -1
  621. package/web-ui/build/static/dart-Dx1CtbrO.js +0 -1
  622. package/web-ui/build/static/dart-Kqlt_5Iy.js +0 -1
  623. package/web-ui/build/static/dataweave-DpoRPYaa.js +0 -1
  624. package/web-ui/build/static/dax-BdRNDjXh.js +0 -1
  625. package/web-ui/build/static/delphi-C6ZfxFVF.js +0 -1
  626. package/web-ui/build/static/dhall-DZrga6Gc.js +0 -1
  627. package/web-ui/build/static/diff-BuMvzPYe.js +0 -1
  628. package/web-ui/build/static/diff-DZYXzKCb.js +0 -1
  629. package/web-ui/build/static/django-D_vRowuc.js +0 -1
  630. package/web-ui/build/static/django-NYcglI2i.js +0 -1
  631. package/web-ui/build/static/dns-Cd7tDS1i.js +0 -1
  632. package/web-ui/build/static/dns-zone-file-C3-2vwxy.js +0 -1
  633. package/web-ui/build/static/docker-DQ7ZFefk.js +0 -1
  634. package/web-ui/build/static/dockerfile-BpU0w0F-.js +0 -1
  635. package/web-ui/build/static/dos-B1_ZGbVG.js +0 -1
  636. package/web-ui/build/static/dot-BGB_tXU7.js +0 -1
  637. package/web-ui/build/static/dsconfig-BbDxyV_e.js +0 -1
  638. package/web-ui/build/static/dts-BfjOjY8l.js +0 -1
  639. package/web-ui/build/static/dust-BdwQ-7T_.js +0 -1
  640. package/web-ui/build/static/ebnf-BQTMmaYU.js +0 -1
  641. package/web-ui/build/static/ebnf-BwwBWilG.js +0 -1
  642. package/web-ui/build/static/editorconfig-DWS4VSOM.js +0 -1
  643. package/web-ui/build/static/eiffel-DVvlc0AI.js +0 -1
  644. package/web-ui/build/static/ejs-DsD496m-.js +0 -1
  645. package/web-ui/build/static/elixir-CLxuo9eh.js +0 -1
  646. package/web-ui/build/static/elixir-Cnyg3Ezx.js +0 -1
  647. package/web-ui/build/static/elm-CMAIkLMI.js +0 -1
  648. package/web-ui/build/static/elm-DZBnlwPV.js +0 -1
  649. package/web-ui/build/static/erb-B5xezjly.js +0 -1
  650. package/web-ui/build/static/erb-CJr8Ab4S.js +0 -1
  651. package/web-ui/build/static/erlang-BKy_rMFs.js +0 -1
  652. package/web-ui/build/static/erlang-DtaEL15_.js +0 -1
  653. package/web-ui/build/static/erlang-repl-CC5OZ0oZ.js +0 -1
  654. package/web-ui/build/static/etlua-1AfbSbi_.js +0 -1
  655. package/web-ui/build/static/excel-AEWYaJMN.js +0 -1
  656. package/web-ui/build/static/excel-formula-DXCH31eV.js +0 -1
  657. package/web-ui/build/static/factor-BvZsNxRC.js +0 -1
  658. package/web-ui/build/static/false-Y69sPjTa.js +0 -1
  659. package/web-ui/build/static/firestore-security-rules-BAYXaIU_.js +0 -1
  660. package/web-ui/build/static/fix-D7wVox5L.js +0 -1
  661. package/web-ui/build/static/flix-xYG3kZl-.js +0 -1
  662. package/web-ui/build/static/flow-zBPh0c8a.js +0 -1
  663. package/web-ui/build/static/fortran-C7OgAOwk.js +0 -1
  664. package/web-ui/build/static/fortran-D7HqnRra.js +0 -1
  665. package/web-ui/build/static/fsharp-Dz8jq_YD.js +0 -1
  666. package/web-ui/build/static/fsharp-wem8e879.js +0 -1
  667. package/web-ui/build/static/ftl-BNZhFjQT.js +0 -1
  668. package/web-ui/build/static/gams-C0WL3JTk.js +0 -1
  669. package/web-ui/build/static/gap-C3QTJPj2.js +0 -1
  670. package/web-ui/build/static/gauss-HDeDt6Js.js +0 -1
  671. package/web-ui/build/static/gcode-B6xVa-Q4.js +0 -1
  672. package/web-ui/build/static/gcode-KfjFk59Y.js +0 -1
  673. package/web-ui/build/static/gdscript-CZWTW6OT.js +0 -1
  674. package/web-ui/build/static/gedcom-DGTBZtDe.js +0 -1
  675. package/web-ui/build/static/gherkin-BM2fti5q.js +0 -1
  676. package/web-ui/build/static/gherkin-BsD-keLP.js +0 -1
  677. package/web-ui/build/static/git-CwXnrvg5.js +0 -1
  678. package/web-ui/build/static/glsl-CEL-DKdu.js +0 -1
  679. package/web-ui/build/static/glsl-DClg1hhL.js +0 -1
  680. package/web-ui/build/static/gml-BuyC2nUx.js +0 -1
  681. package/web-ui/build/static/gml-CaV0fexF.js +0 -1
  682. package/web-ui/build/static/gn-RZ4XHU09.js +0 -1
  683. package/web-ui/build/static/go-2fZP5dFL.js +0 -1
  684. package/web-ui/build/static/go-B-2r4QAR.js +0 -1
  685. package/web-ui/build/static/go-module-DSWZUUGo.js +0 -1
  686. package/web-ui/build/static/golo-BLZaLyU5.js +0 -1
  687. package/web-ui/build/static/gradle--RLe7WtU.js +0 -1
  688. package/web-ui/build/static/graphql-Dersm5rs.js +0 -1
  689. package/web-ui/build/static/groovy-BhCtzyFe.js +0 -1
  690. package/web-ui/build/static/groovy-CvbHavu3.js +0 -1
  691. package/web-ui/build/static/haml-CQhB89Xl.js +0 -1
  692. package/web-ui/build/static/haml-CemWzAX2.js +0 -1
  693. package/web-ui/build/static/handlebars-B39jLKjQ.js +0 -1
  694. package/web-ui/build/static/handlebars-Cl4dI91M.js +0 -1
  695. package/web-ui/build/static/haskell-CO9Ug-Kw.js +0 -1
  696. package/web-ui/build/static/haskell-EXme4CFR.js +0 -1
  697. package/web-ui/build/static/haxe-BDkCyqBy.js +0 -1
  698. package/web-ui/build/static/haxe-ahczQlFA.js +0 -1
  699. package/web-ui/build/static/hcl-liOTbdHr.js +0 -1
  700. package/web-ui/build/static/hlsl-Bnkb1zrP.js +0 -1
  701. package/web-ui/build/static/hoon-DCXHuTNp.js +0 -1
  702. package/web-ui/build/static/hpkp-CPJOGDF_.js +0 -1
  703. package/web-ui/build/static/hsp-BdeT0enM.js +0 -1
  704. package/web-ui/build/static/hsts-BoIN2VGK.js +0 -1
  705. package/web-ui/build/static/htmlbars-B5Ruf2zT.js +0 -1
  706. package/web-ui/build/static/http-BacVzmeC.js +0 -1
  707. package/web-ui/build/static/http-DifjpER4.js +0 -1
  708. package/web-ui/build/static/hy-DQ-M6mjk.js +0 -1
  709. package/web-ui/build/static/ichigojam-CcVrpthd.js +0 -1
  710. package/web-ui/build/static/icon-B4N1Fnx2.js +0 -1
  711. package/web-ui/build/static/icu-message-format-aDIl6Oaf.js +0 -1
  712. package/web-ui/build/static/idris-DKvV6i27.js +0 -1
  713. package/web-ui/build/static/iecst-zqZH79Dw.js +0 -1
  714. package/web-ui/build/static/ignore-BBbP-u2O.js +0 -1
  715. package/web-ui/build/static/index-CkhVK4lF.js +0 -1164
  716. package/web-ui/build/static/index-Cm1gK3R7.css +0 -1
  717. package/web-ui/build/static/index-D9JNKR2k.js +0 -13
  718. package/web-ui/build/static/index-DqZhvIWG.js +0 -1
  719. package/web-ui/build/static/inform7-BwvEArfL.js +0 -1
  720. package/web-ui/build/static/inform7-YkPDg57k.js +0 -1
  721. package/web-ui/build/static/ini-DU4drXRb.js +0 -1
  722. package/web-ui/build/static/ini-OhDTn0L5.js +0 -1
  723. package/web-ui/build/static/io-4thQGR-r.js +0 -1
  724. package/web-ui/build/static/irpf90-BnhmotbX.js +0 -1
  725. package/web-ui/build/static/isbl-BKcWS-M5.js +0 -1
  726. package/web-ui/build/static/j-Bw6CUCl9.js +0 -1
  727. package/web-ui/build/static/java-8IzvJ-mZ.js +0 -1
  728. package/web-ui/build/static/java-_jaQp1m2.js +0 -1
  729. package/web-ui/build/static/javadoc-D6KaHkhq.js +0 -1
  730. package/web-ui/build/static/javadoclike-B-DnR3Tl.js +0 -1
  731. package/web-ui/build/static/javascript-CfOOSye9.js +0 -1
  732. package/web-ui/build/static/javastacktrace-DHyDfhlB.js +0 -1
  733. package/web-ui/build/static/jboss-cli-zEH5UaRS.js +0 -1
  734. package/web-ui/build/static/jexl-CRpgdJ2f.js +0 -1
  735. package/web-ui/build/static/jolie-C5S16-nE.js +0 -1
  736. package/web-ui/build/static/jq-Dy-2LJZM.js +0 -1
  737. package/web-ui/build/static/js-extras-CNfXr3kE.js +0 -1
  738. package/web-ui/build/static/js-templates-DCJ1syUw.js +0 -1
  739. package/web-ui/build/static/jsdoc-BamyoRCh.js +0 -1
  740. package/web-ui/build/static/json-Buz-eeND.js +0 -1
  741. package/web-ui/build/static/json-D4xr_AK1.js +0 -1
  742. package/web-ui/build/static/json5-CS3uAaJP.js +0 -1
  743. package/web-ui/build/static/jsonp-CmEAdOcH.js +0 -1
  744. package/web-ui/build/static/jsstacktrace-D35jXpCN.js +0 -1
  745. package/web-ui/build/static/jsx-DRMEK-Qn.js +0 -1
  746. package/web-ui/build/static/julia-BgYJV7ho.js +0 -1
  747. package/web-ui/build/static/julia-CRsGDmxp.js +0 -1
  748. package/web-ui/build/static/julia-repl-D0vTZKUn.js +0 -1
  749. package/web-ui/build/static/keepalived-BlhBatvM.js +0 -1
  750. package/web-ui/build/static/keyman-B_-J66sg.js +0 -1
  751. package/web-ui/build/static/kotlin-B7HqYBGK.js +0 -1
  752. package/web-ui/build/static/kotlin-CszxhoS4.js +0 -1
  753. package/web-ui/build/static/kumir-B_wpMfXS.js +0 -1
  754. package/web-ui/build/static/kusto-BrHkOiE1.js +0 -1
  755. package/web-ui/build/static/lasso-xizuiq1s.js +0 -1
  756. package/web-ui/build/static/latex-62pryLTa.js +0 -1
  757. package/web-ui/build/static/latex-D7Tnbs2l.js +0 -1
  758. package/web-ui/build/static/latte-B_8xJj-y.js +0 -1
  759. package/web-ui/build/static/ldif-B69eIciC.js +0 -1
  760. package/web-ui/build/static/leaf-DPnh4k7N.js +0 -1
  761. package/web-ui/build/static/less-Bg3xuki-.js +0 -1
  762. package/web-ui/build/static/less-Cm-zhk4i.js +0 -1
  763. package/web-ui/build/static/lilypond-BFSXmrKQ.js +0 -1
  764. package/web-ui/build/static/liquid-D_jMXN_8.js +0 -1
  765. package/web-ui/build/static/lisp-CDWjXhWU.js +0 -1
  766. package/web-ui/build/static/lisp-DAu9fWrQ.js +0 -1
  767. package/web-ui/build/static/livecodeserver-BNgd6rBu.js +0 -1
  768. package/web-ui/build/static/livescript-C6sYNsdz.js +0 -1
  769. package/web-ui/build/static/livescript-CMOawYYt.js +0 -1
  770. package/web-ui/build/static/llvm-Yx2vcmJw.js +0 -1
  771. package/web-ui/build/static/llvm-w4vVb6qs.js +0 -1
  772. package/web-ui/build/static/log-CqhluDSP.js +0 -1
  773. package/web-ui/build/static/lolcode-Ck0rxP3x.js +0 -1
  774. package/web-ui/build/static/lsl-BwPX-Qjm.js +0 -1
  775. package/web-ui/build/static/lua-4H_Ijh4D.js +0 -1
  776. package/web-ui/build/static/lua-dDdlvQ6u.js +0 -1
  777. package/web-ui/build/static/magma-2nRRraug.js +0 -1
  778. package/web-ui/build/static/makefile-C887R9mV.js +0 -1
  779. package/web-ui/build/static/makefile-hlNtZePL.js +0 -1
  780. package/web-ui/build/static/markdown-DCALPnuW.js +0 -1
  781. package/web-ui/build/static/markdown-DGM_Z5tW.js +0 -1
  782. package/web-ui/build/static/markup-templating-PAvYDmBZ.js +0 -1
  783. package/web-ui/build/static/mathematica-CGL-Gomp.js +0 -1
  784. package/web-ui/build/static/matlab-C46ZZzlH.js +0 -1
  785. package/web-ui/build/static/matlab-WUgx8roJ.js +0 -1
  786. package/web-ui/build/static/maxima-Dd_TIy4H.js +0 -1
  787. package/web-ui/build/static/maxscript-f8SP9Ybn.js +0 -1
  788. package/web-ui/build/static/mel-6l2ZAh7F.js +0 -1
  789. package/web-ui/build/static/mel-BYdNMJzZ.js +0 -1
  790. package/web-ui/build/static/mercury-CdHf1buq.js +0 -1
  791. package/web-ui/build/static/mermaid-IRgUMtb1.js +0 -1
  792. package/web-ui/build/static/mipsasm-CRPpDKP4.js +0 -1
  793. package/web-ui/build/static/mizar-B4DBCLSi.js +0 -1
  794. package/web-ui/build/static/mizar-DiuZyDh7.js +0 -1
  795. package/web-ui/build/static/mojolicious-ChuQv8wb.js +0 -1
  796. package/web-ui/build/static/mongodb-CE5Epj0T.js +0 -1
  797. package/web-ui/build/static/monkey-BAz4pIwb.js +0 -1
  798. package/web-ui/build/static/monkey-i_g3gMkJ.js +0 -1
  799. package/web-ui/build/static/moonscript-BNaNpboV.js +0 -1
  800. package/web-ui/build/static/moonscript-uHlQVjxf.js +0 -1
  801. package/web-ui/build/static/n1ql-CBDLma2D.js +0 -1
  802. package/web-ui/build/static/n1ql-u4YLlLfk.js +0 -1
  803. package/web-ui/build/static/n4js-IVFjZEMP.js +0 -1
  804. package/web-ui/build/static/nand2tetris-hdl-Ba72aD32.js +0 -1
  805. package/web-ui/build/static/naniscript-CjMhybrb.js +0 -1
  806. package/web-ui/build/static/nasm-DjKhk70h.js +0 -1
  807. package/web-ui/build/static/neon-JEhMoh8P.js +0 -1
  808. package/web-ui/build/static/nevod-6tgpQVCA.js +0 -1
  809. package/web-ui/build/static/nginx-C6NwXcw_.js +0 -1
  810. package/web-ui/build/static/nginx-CquSTZbP.js +0 -1
  811. package/web-ui/build/static/nim-0bOOYxfL.js +0 -1
  812. package/web-ui/build/static/nim-aCQGMs_4.js +0 -1
  813. package/web-ui/build/static/nix-BV4kRCY_.js +0 -1
  814. package/web-ui/build/static/nix-FvSL2V8j.js +0 -1
  815. package/web-ui/build/static/node-repl-GtjTvb93.js +0 -1
  816. package/web-ui/build/static/nsis-DsftItKH.js +0 -1
  817. package/web-ui/build/static/nsis-pu7O80Pq.js +0 -1
  818. package/web-ui/build/static/objectivec-Bx7Bj0U_.js +0 -1
  819. package/web-ui/build/static/objectivec-GtO6Znp9.js +0 -1
  820. package/web-ui/build/static/ocaml-B71sR3qa.js +0 -1
  821. package/web-ui/build/static/ocaml-BlhoK75p.js +0 -1
  822. package/web-ui/build/static/opencl-40JZ6XXw.js +0 -1
  823. package/web-ui/build/static/openqasm-cDL6l7w3.js +0 -1
  824. package/web-ui/build/static/openscad-BQ0gNGv9.js +0 -1
  825. package/web-ui/build/static/oxygene-1fX2ftBa.js +0 -1
  826. package/web-ui/build/static/oz-Cgq2yQZq.js +0 -1
  827. package/web-ui/build/static/parigp-DfRO3DxU.js +0 -1
  828. package/web-ui/build/static/parser-hZcHrq-n.js +0 -1
  829. package/web-ui/build/static/parser3-Cf2p4Ryg.js +0 -1
  830. package/web-ui/build/static/pascal-C6tg_yvS.js +0 -1
  831. package/web-ui/build/static/pascaligo-9U9PdOS6.js +0 -1
  832. package/web-ui/build/static/pcaxis-B5EnEKrt.js +0 -1
  833. package/web-ui/build/static/peoplecode-Cf2sGzFJ.js +0 -1
  834. package/web-ui/build/static/perl-C9FNSHZx.js +0 -1
  835. package/web-ui/build/static/perl-uzSwl6wJ.js +0 -1
  836. package/web-ui/build/static/pf-C7Bjci1q.js +0 -1
  837. package/web-ui/build/static/pgsql-IBD1Cka7.js +0 -1
  838. package/web-ui/build/static/php-19XvqtTQ.js +0 -1
  839. package/web-ui/build/static/php-CUjVuQ1J.js +0 -1
  840. package/web-ui/build/static/php-extras-GWBU2Qbm.js +0 -1
  841. package/web-ui/build/static/php-template-Chtii014.js +0 -1
  842. package/web-ui/build/static/phpdoc-BLcJXgrV.js +0 -1
  843. package/web-ui/build/static/plaintext-BX3hHjdj.js +0 -1
  844. package/web-ui/build/static/plsql-tCcTmmsx.js +0 -1
  845. package/web-ui/build/static/pony-CKD16QkU.js +0 -1
  846. package/web-ui/build/static/powerquery-DXj7kqMe.js +0 -1
  847. package/web-ui/build/static/powershell-0jB2gvRR.js +0 -1
  848. package/web-ui/build/static/powershell-Ca6UjZV2.js +0 -1
  849. package/web-ui/build/static/processing-CPjwH4wc.js +0 -1
  850. package/web-ui/build/static/processing-ItKy7l8u.js +0 -1
  851. package/web-ui/build/static/profile-6N_Rzycx.js +0 -1
  852. package/web-ui/build/static/prolog-BV3TgLfG.js +0 -1
  853. package/web-ui/build/static/prolog-C5UoVyBz.js +0 -1
  854. package/web-ui/build/static/promql-CZot8Bw3.js +0 -1
  855. package/web-ui/build/static/properties-C_r_5f7N.js +0 -1
  856. package/web-ui/build/static/properties-qycKL1T0.js +0 -1
  857. package/web-ui/build/static/protobuf-BmdKEOw6.js +0 -1
  858. package/web-ui/build/static/protobuf-CxWC8PvT.js +0 -1
  859. package/web-ui/build/static/psl-CFSNRM7z.js +0 -1
  860. package/web-ui/build/static/pug-8dv12FtI.js +0 -1
  861. package/web-ui/build/static/puppet-CNjskGXn.js +0 -1
  862. package/web-ui/build/static/puppet-Cf6xZODN.js +0 -1
  863. package/web-ui/build/static/pure-exFir566.js +0 -1
  864. package/web-ui/build/static/purebasic-Bm6QaKku.js +0 -1
  865. package/web-ui/build/static/purebasic-lfzND9Qp.js +0 -1
  866. package/web-ui/build/static/purescript-D1xRYVQG.js +0 -1
  867. package/web-ui/build/static/python-DgkOjU0T.js +0 -1
  868. package/web-ui/build/static/python-o7BJVaX6.js +0 -1
  869. package/web-ui/build/static/python-repl-6SyonvH1.js +0 -1
  870. package/web-ui/build/static/q-CiQ2AFzU.js +0 -1
  871. package/web-ui/build/static/q-g7rEIWgm.js +0 -1
  872. package/web-ui/build/static/qml-ARc9Akfg.js +0 -1
  873. package/web-ui/build/static/qml-rVumxss_.js +0 -1
  874. package/web-ui/build/static/qore-CUXpqOSx.js +0 -1
  875. package/web-ui/build/static/qsharp-DMPNcgaz.js +0 -1
  876. package/web-ui/build/static/r-DCIo6joW.js +0 -1
  877. package/web-ui/build/static/r-nUBzz4LB.js +0 -1
  878. package/web-ui/build/static/racket--fPY_Q4o.js +0 -1
  879. package/web-ui/build/static/reason-CeVN9vJx.js +0 -1
  880. package/web-ui/build/static/reasonml-49SEasi3.js +0 -1
  881. package/web-ui/build/static/regex-BS97XMMk.js +0 -1
  882. package/web-ui/build/static/rego-Brc7DU11.js +0 -1
  883. package/web-ui/build/static/renpy-C2sPWAHv.js +0 -1
  884. package/web-ui/build/static/rest-DlZ7ycRe.js +0 -1
  885. package/web-ui/build/static/rib-C8WsA4on.js +0 -1
  886. package/web-ui/build/static/rip-dd9bS3Ar.js +0 -1
  887. package/web-ui/build/static/roboconf-CAEw-rS3.js +0 -1
  888. package/web-ui/build/static/roboconf-D0TfrLeu.js +0 -1
  889. package/web-ui/build/static/robotframework-CkgVY4bX.js +0 -1
  890. package/web-ui/build/static/routeros-DIek1v-Z.js +0 -1
  891. package/web-ui/build/static/rsl-DExhHtA1.js +0 -1
  892. package/web-ui/build/static/ruby-BjvzODgO.js +0 -1
  893. package/web-ui/build/static/ruby-Dflr1gcA.js +0 -1
  894. package/web-ui/build/static/ruleslanguage-BgzP6UBl.js +0 -1
  895. package/web-ui/build/static/rust-DxIro-GW.js +0 -1
  896. package/web-ui/build/static/rust-qWzP5Jcw.js +0 -1
  897. package/web-ui/build/static/sas-BrCJWU_w.js +0 -1
  898. package/web-ui/build/static/sas-itaOGZ-D.js +0 -1
  899. package/web-ui/build/static/sass-BTk1_hyU.js +0 -1
  900. package/web-ui/build/static/scala-DEtImhEo.js +0 -1
  901. package/web-ui/build/static/scala-DdZCH_nS.js +0 -1
  902. package/web-ui/build/static/scheme-CiOCQffl.js +0 -1
  903. package/web-ui/build/static/scheme-WaU-JPJX.js +0 -1
  904. package/web-ui/build/static/scilab-03tyg0ft.js +0 -1
  905. package/web-ui/build/static/scss-DXl2WSdH.js +0 -1
  906. package/web-ui/build/static/scss-movJ3vcX.js +0 -1
  907. package/web-ui/build/static/shell-DWmlNcrf.js +0 -1
  908. package/web-ui/build/static/shell-session-lHcfQbT0.js +0 -1
  909. package/web-ui/build/static/smali-7RKwn9RZ.js +0 -1
  910. package/web-ui/build/static/smali-TEMQ7bRM.js +0 -1
  911. package/web-ui/build/static/smalltalk-B_nVEfab.js +0 -1
  912. package/web-ui/build/static/smalltalk-BsA9wucb.js +0 -1
  913. package/web-ui/build/static/smarty-DSf4s_8v.js +0 -1
  914. package/web-ui/build/static/sml-BDO_Hmie.js +0 -1
  915. package/web-ui/build/static/sml-DKuy82zG.js +0 -1
  916. package/web-ui/build/static/solidity-jtWv6laA.js +0 -1
  917. package/web-ui/build/static/solution-file-DcfiquuJ.js +0 -1
  918. package/web-ui/build/static/soy-DmBVrDYd.js +0 -1
  919. package/web-ui/build/static/sparql-_JOxZ7fM.js +0 -1
  920. package/web-ui/build/static/splunk-spl-CHeBtp33.js +0 -1
  921. package/web-ui/build/static/sqf-9wI8rp5o.js +0 -1
  922. package/web-ui/build/static/sqf-BuKh30bG.js +0 -1
  923. package/web-ui/build/static/sql-ClFFHGMY.js +0 -1
  924. package/web-ui/build/static/sql-DVXtimpW.js +0 -1
  925. package/web-ui/build/static/sql_more-CNw-JJON.js +0 -1
  926. package/web-ui/build/static/squirrel-Bdi8LbT5.js +0 -1
  927. package/web-ui/build/static/stan-Brcz64A8.js +0 -1
  928. package/web-ui/build/static/stan-C9Q08Juk.js +0 -1
  929. package/web-ui/build/static/stata-ES8hryw_.js +0 -1
  930. package/web-ui/build/static/step21-Cfmoq4Lb.js +0 -1
  931. package/web-ui/build/static/stylus-DMKHLSvm.js +0 -1
  932. package/web-ui/build/static/stylus-Dcs8vyW2.js +0 -1
  933. package/web-ui/build/static/subunit-DRjv565H.js +0 -1
  934. package/web-ui/build/static/swift-0x_T9zx8.js +0 -1
  935. package/web-ui/build/static/swift-CUvpRg4a.js +0 -1
  936. package/web-ui/build/static/systemd-Dl8xGVv9.js +0 -1
  937. package/web-ui/build/static/t4-cs-DqvXuZwc.js +0 -1
  938. package/web-ui/build/static/t4-templating-DjN2N1uM.js +0 -1
  939. package/web-ui/build/static/t4-vb-CZQn9IVK.js +0 -1
  940. package/web-ui/build/static/taggerscript-CPCJkC2t.js +0 -1
  941. package/web-ui/build/static/tap-BPfuLhe7.js +0 -1
  942. package/web-ui/build/static/tap-CSdsd38Q.js +0 -1
  943. package/web-ui/build/static/tcl-4BqhAKLC.js +0 -1
  944. package/web-ui/build/static/tcl-Bh0Jg8jj.js +0 -1
  945. package/web-ui/build/static/textile-BiD4awlU.js +0 -1
  946. package/web-ui/build/static/thrift-Br1-10xh.js +0 -1
  947. package/web-ui/build/static/toml-QlLCqVpQ.js +0 -1
  948. package/web-ui/build/static/tp-B2Ef9EBz.js +0 -1
  949. package/web-ui/build/static/tremor-DuZdAfVr.js +0 -1
  950. package/web-ui/build/static/tsx-W3KEjccO.js +0 -1
  951. package/web-ui/build/static/tt2-D_tdF-56.js +0 -1
  952. package/web-ui/build/static/turtle-DxrQkFoq.js +0 -1
  953. package/web-ui/build/static/twig-DD44ApyU.js +0 -1
  954. package/web-ui/build/static/twig-vA3ZwAxn.js +0 -1
  955. package/web-ui/build/static/typescript-BfbcKNOu.js +0 -1
  956. package/web-ui/build/static/typescript-CvKtq1ix.js +0 -1
  957. package/web-ui/build/static/typoscript-BEu84JpE.js +0 -1
  958. package/web-ui/build/static/unrealscript-ohUNsJGM.js +0 -1
  959. package/web-ui/build/static/uorazor-BWer-chm.js +0 -1
  960. package/web-ui/build/static/uri-CPLTr_NY.js +0 -1
  961. package/web-ui/build/static/v-gAkMRmmI.js +0 -1
  962. package/web-ui/build/static/vala-Bktj5SNB.js +0 -1
  963. package/web-ui/build/static/vala-D1fDPFxI.js +0 -1
  964. package/web-ui/build/static/vbnet-Cn0g0ohh.js +0 -1
  965. package/web-ui/build/static/vbnet-TiYHF2WM.js +0 -1
  966. package/web-ui/build/static/vbscript-BUV-Kjvs.js +0 -1
  967. package/web-ui/build/static/vbscript-html-s1RgByjf.js +0 -1
  968. package/web-ui/build/static/velocity-DTy-TOwB.js +0 -1
  969. package/web-ui/build/static/verilog-4jk4MMXN.js +0 -1
  970. package/web-ui/build/static/verilog-aR4U-DJX.js +0 -1
  971. package/web-ui/build/static/vhdl-D72XnBZR.js +0 -1
  972. package/web-ui/build/static/vhdl-DFdtG28B.js +0 -1
  973. package/web-ui/build/static/vim-BMqsbQ-a.js +0 -1
  974. package/web-ui/build/static/vim-Cc3UuKOs.js +0 -1
  975. package/web-ui/build/static/visual-basic-CyC2kNGV.js +0 -1
  976. package/web-ui/build/static/warpscript-DpKFeISB.js +0 -1
  977. package/web-ui/build/static/wasm-SPljCkFH.js +0 -1
  978. package/web-ui/build/static/web-idl-Cie2yHU9.js +0 -1
  979. package/web-ui/build/static/wiki-BfYfwsBk.js +0 -1
  980. package/web-ui/build/static/wolfram-Dgi1K2gQ.js +0 -1
  981. package/web-ui/build/static/wren-CFQxgLld.js +0 -1
  982. package/web-ui/build/static/x86asm-CBIt2r64.js +0 -1
  983. package/web-ui/build/static/xeora-e5JHDF1T.js +0 -1
  984. package/web-ui/build/static/xl-CPZe-czl.js +0 -1
  985. package/web-ui/build/static/xml-BEuPuoS1.js +0 -1
  986. package/web-ui/build/static/xml-doc-DTOJGYE2.js +0 -1
  987. package/web-ui/build/static/xojo-ByMSKdYJ.js +0 -1
  988. package/web-ui/build/static/xquery--5iaD5oE.js +0 -1
  989. package/web-ui/build/static/xquery-DJp5PXZo.js +0 -1
  990. package/web-ui/build/static/yaml-CH8EnM9M.js +0 -1
  991. package/web-ui/build/static/yaml-mKr8oN1v.js +0 -1
  992. package/web-ui/build/static/yang-Nqdvm2mQ.js +0 -1
  993. package/web-ui/build/static/zephir-BJZaDzrW.js +0 -1
  994. package/web-ui/build/static/zig-DRkhvZLn.js +0 -1
@@ -60,6 +60,19 @@ class AgentScheduler {
60
60
  // Initialize ContextInjectionService for file attachments
61
61
  this.contextInjectionService = new ContextInjectionService({}, logger);
62
62
 
63
+ // Per-turn system-prompt rebuild cache for native-API models.
64
+ // Agents persist a `systemPrompt` baked at create-time for the
65
+ // chat-completion shape (text descriptions of every tool). When a
66
+ // turn targets a Responses-API model (Codex / o-series / gpt-5-pro),
67
+ // we want a TRIMMED prompt that omits text docs for tools whose
68
+ // structured schemas are sent in `tools:`. Rebuilding fresh each
69
+ // turn would be wasteful — agents typically stay on the same model
70
+ // for many turns — so we memoize per (agentId, modelName).
71
+ //
72
+ // Cleared on process restart and on agent updates that change the
73
+ // base prompt or capabilities (see `_invalidateNativePromptCache`).
74
+ this._nativePromptCache = new Map(); // `${agentId}|${modelName}` → string
75
+
63
76
  // Initialize FlowContextService for flow execution context
64
77
  this.flowContextService = new FlowContextService({}, logger);
65
78
 
@@ -578,10 +591,31 @@ class AgentScheduler {
578
591
 
579
592
  // Flip mode → CHAT (records transition + persists + broadcasts
580
593
  // agent_mode_changed with humanReason "Stopped by user.")
581
- await this._transitionMode(agentId, AGENT_MODES.CHAT, 'user-stop');
582
-
583
- // Clear stop request flag after mode is set (it has been honored).
584
- agent.stopRequested = false;
594
+ // CRITICAL: wrap in try/finally so the stopRequested flag ALWAYS
595
+ // clears, even if _transitionMode throws or the await is interrupted
596
+ // (process restart, OOM, etc.). Without this, a stop that fails
597
+ // mid-flight leaves stopRequested=true forever and the agent never
598
+ // schedules again — shouldAgentBeActive() permanently returns
599
+ // {active:false, reason:'stop-requested'}. We've seen this in
600
+ // production: agent in mode:CHAT but stopRequested:true, completely
601
+ // wedged with no way out short of manual state surgery.
602
+ try {
603
+ await this._transitionMode(agentId, AGENT_MODES.CHAT, 'user-stop');
604
+ } finally {
605
+ // Always clear, in-memory + persisted, so a partial stop never
606
+ // leaves the agent unable to recover. The mode transition is
607
+ // already idempotent — if it failed, the operator can retry stop.
608
+ agent.stopRequested = false;
609
+ try {
610
+ await this.agentPool.persistAgentState(agentId);
611
+ } catch (persistErr) {
612
+ // Persist failures during recovery shouldn't mask the stop;
613
+ // log and continue. The in-memory flag is cleared either way.
614
+ this.logger?.warn?.(
615
+ `Failed to persist cleared stopRequested for ${agentId} after stop: ${persistErr.message}`
616
+ );
617
+ }
618
+ }
585
619
 
586
620
  // Clean up session tracking.
587
621
  this.removeAgent(agentId, 'stopped-by-user');
@@ -1827,7 +1861,7 @@ class AgentScheduler {
1827
1861
 
1828
1862
  // Filter to only include models that are available (not router models)
1829
1863
  availableModels = allModels
1830
- .filter(model => model.id !== 'autopilot-model-router' && model.name !== 'autopilot-model-router');
1864
+ .filter(model => model.id !== 'model-router' && model.name !== 'model-router');
1831
1865
 
1832
1866
  this.logger.debug(`Available models for routing: ${availableModels.map(m => m.id || m.name).join(', ')}`);
1833
1867
  } catch (error) {
@@ -1898,8 +1932,17 @@ class AgentScheduler {
1898
1932
  // After compaction, retrieve messages from AgentPool (will use compacted if available)
1899
1933
  const messagesToSend = await this.agentPool.getMessagesForAI(agentId, targetModel);
1900
1934
 
1901
- // Inject TaskManager instructions for AGENT mode
1902
- let enhancedSystemPrompt = agent.systemPrompt;
1935
+ // ── Pick the right system-prompt shape for the target model ──
1936
+ // Default: use the agent's persisted `systemPrompt` (baked at
1937
+ // create-time with full text descriptions for every tool — the
1938
+ // chat-completion shape). For models that use the Responses API
1939
+ // (native function-calling), rebuild a trimmed version that
1940
+ // omits text docs for tools whose structured schemas we send in
1941
+ // `tools:`. Falls back to the persisted prompt whenever the
1942
+ // model's apiType is unknown OR the agent has no stored original
1943
+ // prompt — preserves existing behaviour for old agents and
1944
+ // unknown models. See `_pickSystemPromptForModel`.
1945
+ let enhancedSystemPrompt = await this._pickSystemPromptForModel(agent, targetModel);
1903
1946
  if (agent.mode === AGENT_MODES.AGENT) {
1904
1947
  const taskManagerInstruction = "\n\nIMPORTANT: You are in AGENT mode. The use of TaskManager tool is mandatory.\n\n" +
1905
1948
  "TASK LIFECYCLE (follow this, don't improvise):\n" +
@@ -2029,6 +2072,39 @@ class AgentScheduler {
2029
2072
  // Continue without flow context if service fails
2030
2073
  }
2031
2074
 
2075
+ // ── Auto-inject `plan/*` memories as AGENT WORKING PLAN ────
2076
+ // Appended AT THE END of the (already-extended) system prompt
2077
+ // so the stable prefix stays cache-friendly. Per-agent only in
2078
+ // this v1; team-shared follow-on is tracked in
2079
+ // src/utilities/planInjection.js as TODO Plan C.
2080
+ //
2081
+ // No throw: if the memory service is offline or returns
2082
+ // garbage, the agent should still get its turn — Dynamic
2083
+ // Routing's degrade-gracefully principle.
2084
+ try {
2085
+ const { getMemoryService } = await import('../services/memoryService.js');
2086
+ const memoryService = getMemoryService(this.logger);
2087
+ await memoryService.initialize();
2088
+ const planMemories = await memoryService.getPlanMemories(agentId);
2089
+ if (planMemories.length > 0) {
2090
+ const { buildPlanBlock } = await import('../utilities/planInjection.js');
2091
+ const { block, truncated } = buildPlanBlock(planMemories);
2092
+ if (block) {
2093
+ enhancedSystemPrompt = (enhancedSystemPrompt || '') + block;
2094
+ }
2095
+ if (truncated.length > 0) {
2096
+ this.logger.warn(`Plan injection truncated for agent ${agentId}`, {
2097
+ truncated,
2098
+ hint: 'Agent should summarize the listed plans on its next turn.',
2099
+ });
2100
+ }
2101
+ }
2102
+ } catch (planErr) {
2103
+ this.logger.warn(`Plan injection failed for agent ${agentId} (continuing without)`, {
2104
+ error: planErr?.message,
2105
+ });
2106
+ }
2107
+
2032
2108
  // Check if streaming is enabled - consider both agent config and user message preference
2033
2109
  // Get the last user message to check for streaming preference
2034
2110
  const lastUserMsg = [...conversationHistory].reverse().find(m => m.role === 'user');
@@ -2115,6 +2191,156 @@ class AgentScheduler {
2115
2191
  }
2116
2192
  }
2117
2193
 
2194
+ /**
2195
+ * Choose the right base system prompt for the target model.
2196
+ *
2197
+ * • If the model's catalog entry says it uses the Responses API
2198
+ * ('responses' in its api_type / capabilities) AND the agent has
2199
+ * an `originalSystemPrompt` we can rebuild from, return a
2200
+ * freshly-built prompt that omits text descriptions for tools
2201
+ * with native function schemas (see baseTool.js — those tools'
2202
+ * structured schemas in `tools:` are the canonical source for
2203
+ * these models, so the text docs are pure duplication).
2204
+ *
2205
+ * • Otherwise return the agent's persisted `systemPrompt` exactly
2206
+ * as it is today. This covers:
2207
+ * – chat-completion models (no native function calling)
2208
+ * – models we can't classify (modelsService offline / catalog
2209
+ * field missing) — fail safe to old behaviour
2210
+ * – very old agents persisted before `originalSystemPrompt`
2211
+ * was stored — fail safe to old behaviour
2212
+ *
2213
+ * Result is memoized per `(agentId, targetModel)` to avoid rebuilding
2214
+ * on every turn. The cache is invalidated whenever the agent's base
2215
+ * prompt or capabilities change (see `_invalidateNativePromptCache`).
2216
+ *
2217
+ * @private
2218
+ * @param {Object} agent - Agent record
2219
+ * @param {string} targetModel - Model name about to be called
2220
+ * @returns {Promise<string>} The prompt to use as the base
2221
+ */
2222
+ async _pickSystemPromptForModel(agent, targetModel) {
2223
+ // 1. Resolve the model's API type. Unknown → use persisted prompt.
2224
+ const apiType = this._resolveModelApiType(targetModel);
2225
+ if (apiType !== 'responses') return agent.systemPrompt;
2226
+
2227
+ // 2. Need the original (un-enhanced) prompt to rebuild from. Without
2228
+ // it we can't safely re-add the trimmed tool docs — fall back
2229
+ // to the persisted shape (which works for chat-completion and
2230
+ // is also accepted by Responses API, just with the duplication
2231
+ // cost). This is the back-compat path for legacy agents.
2232
+ if (!agent.originalSystemPrompt) return agent.systemPrompt;
2233
+
2234
+ // 3. Cache lookup.
2235
+ const cacheKey = `${agent.id}|${targetModel}`;
2236
+ const cached = this._nativePromptCache.get(cacheKey);
2237
+ if (cached) return cached;
2238
+
2239
+ // 4. Rebuild. The agentPool stores the toolsRegistry — reuse it so
2240
+ // we go through the exact same code path that built the original
2241
+ // prompt, just with apiType set. Skills index + the rest of the
2242
+ // augmentation must be reapplied; mirror what createAgent does.
2243
+ try {
2244
+ const registry = this.agentPool?.toolsRegistry;
2245
+ if (!registry) return agent.systemPrompt;
2246
+
2247
+ let rebuilt = registry.enhanceSystemPrompt(
2248
+ agent.originalSystemPrompt,
2249
+ agent.capabilities || [],
2250
+ { apiType: 'responses' },
2251
+ );
2252
+
2253
+ // Re-inject ASSIGNED SKILLS block if present (createAgent appends
2254
+ // this after enhanceSystemPrompt — see agentPool.js:108).
2255
+ if (Array.isArray(agent.skills) && agent.skills.length > 0) {
2256
+ try {
2257
+ const { getSkillsService } = await import('../services/skillsService.js');
2258
+ const skillsService = getSkillsService(this.logger);
2259
+ await skillsService.initialize();
2260
+ const summaries = await skillsService.getSkillSummaries(agent.skills);
2261
+ if (summaries.length > 0) {
2262
+ rebuilt += '\n\n## ASSIGNED SKILLS\n\n';
2263
+ rebuilt += 'Use the skills tool to browse and load skill content. Use "describe" to see sections, "read-section" to load specific parts.\n\n';
2264
+ for (const s of summaries) {
2265
+ const sections = s.sections?.length ? `\n Sections: ${s.sections.map(h => h.replace(/^#+\s*/, '')).join(', ')}` : '';
2266
+ rebuilt += `- **${s.name}** (${s.lineCount} lines): ${s.description}${sections}\n`;
2267
+ }
2268
+ }
2269
+ } catch (e) {
2270
+ this.logger?.debug?.('Failed to re-inject skills index for native prompt', { error: e.message });
2271
+ }
2272
+ }
2273
+
2274
+ this._nativePromptCache.set(cacheKey, rebuilt);
2275
+ this.logger?.debug?.('Built native-API system prompt', {
2276
+ agentId: agent.id,
2277
+ targetModel,
2278
+ originalLength: agent.systemPrompt?.length || 0,
2279
+ rebuiltLength: rebuilt.length,
2280
+ savedTokensApprox: Math.round(((agent.systemPrompt?.length || 0) - rebuilt.length) / 4),
2281
+ });
2282
+ return rebuilt;
2283
+ } catch (err) {
2284
+ // Anything goes wrong → fall back to old behaviour. Failing
2285
+ // closed (no prompt) would break the agent's turn; failing open
2286
+ // (use chat-completion shape) just keeps the duplication.
2287
+ this.logger?.warn?.('Native system-prompt rebuild failed — using persisted prompt', {
2288
+ agentId: agent.id,
2289
+ targetModel,
2290
+ error: err.message,
2291
+ });
2292
+ return agent.systemPrompt;
2293
+ }
2294
+ }
2295
+
2296
+ /**
2297
+ * Look up a model's API type from the catalog. Returns 'responses',
2298
+ * 'chat_completion', or undefined when unknown. The catalog exposes
2299
+ * `api_type` as an array and/or `capabilities.responses`/`capabilities.chatCompletion`
2300
+ * — mirror the backend's _inferRouting precedence so the CLI's
2301
+ * classification matches the backend's routing decision exactly.
2302
+ * @private
2303
+ */
2304
+ _resolveModelApiType(modelName) {
2305
+ try {
2306
+ if (!this.modelsService || typeof this.modelsService.getModels !== 'function') return undefined;
2307
+ const models = this.modelsService.getModels();
2308
+ const m = models.find(x => x.name === modelName);
2309
+ if (!m) return undefined;
2310
+
2311
+ const apiType = Array.isArray(m.api_type) ? m.api_type : (m.api_type ? [m.api_type] : []);
2312
+ const caps = m.capabilities || {};
2313
+
2314
+ // Mirrors backend services/llmServiceFactory.js _inferRouting:
2315
+ // responses if api_type contains 'responses' AND not 'chat_completion'
2316
+ // OR capabilities.responses === 'true' / chatCompletion === 'false'
2317
+ // OR explicit useResponsesApi flag
2318
+ if (apiType.includes('responses') && !apiType.includes('chat_completion')) return 'responses';
2319
+ if (caps.chatCompletion === 'false' && (caps.responses === 'true' || apiType.includes('responses'))) return 'responses';
2320
+ if (m.useResponsesApi) return 'responses';
2321
+ // Name-based fallback (last resort — only when catalog has no routing data)
2322
+ if (/codex/i.test(modelName) || /gpt.*-pro$/i.test(modelName)) return 'responses';
2323
+ return 'chat_completion';
2324
+ } catch (err) {
2325
+ // Defensive — never block the turn on a classification failure.
2326
+ this.logger?.debug?.('Model apiType resolution failed', { modelName, error: err.message });
2327
+ return undefined;
2328
+ }
2329
+ }
2330
+
2331
+ /**
2332
+ * Drop cached native prompts for an agent. Called by agentPool when
2333
+ * the base prompt or capabilities change so the next turn rebuilds.
2334
+ * Exposed so agentPool can call it without poking internal state.
2335
+ */
2336
+ _invalidateNativePromptCache(agentId) {
2337
+ for (const key of this._nativePromptCache.keys()) {
2338
+ if (key.startsWith(`${agentId}|`)) {
2339
+ this._nativePromptCache.delete(key);
2340
+ }
2341
+ }
2342
+ }
2343
+
2118
2344
  /**
2119
2345
  * Get AI response using streaming with WebSocket broadcast
2120
2346
  * @param {string} agentId - Agent ID
package/src/index.js CHANGED
@@ -45,6 +45,7 @@ import FileTreeTool from './tools/fileTreeTool.js';
45
45
  import FileContentReplaceTool from './tools/fileContentReplaceTool.js';
46
46
  import SeekTool from './tools/seekTool.js';
47
47
  import WebTool from './tools/webTool.js';
48
+ import FoundryWebSearchTool from './tools/foundryWebSearchTool.js';
48
49
  import VisualEditorTool from './tools/visualEditorTool.js';
49
50
  import PdfTool from './tools/pdfTool.js';
50
51
  import HelpTool from './tools/helpTool.js';
@@ -57,6 +58,7 @@ import UserPromptTool from './tools/userPromptTool.js';
57
58
  import CodeMapTool from './tools/codeMapTool.js';
58
59
  import WhatsAppTool from './tools/whatsappTool.js';
59
60
  import PlatformControlTool from './tools/platformControlTool.js';
61
+ import { DesktopTool } from './tools/desktop/DesktopTool.js';
60
62
  import ScheduleService from './services/scheduleService.js';
61
63
  import AsyncToolManager from './tools/asyncToolManager.js';
62
64
  import WebServer from './interfaces/webServer.js';
@@ -465,6 +467,16 @@ class LoxiaApplication {
465
467
  // Register Web Tool
466
468
  await this.toolsRegistry.registerTool(WebTool);
467
469
 
470
+ // Register Foundry Web Search Tool (grounded, with citations).
471
+ // Distinct from WebTool: WebTool drives a real browser (puppeteer)
472
+ // for raw results / authenticated sites; FoundryWebSearchTool
473
+ // calls /llm/web-search which uses Azure AI Foundry's
474
+ // web_search_preview tool — single round-trip, synthesized answer
475
+ // with citation URLs. See docs/FOUNDRY_WEB_SEARCH_PROVISIONING.md
476
+ // on the backend side; the tool returns a clear "not provisioned"
477
+ // error until that's done.
478
+ await this.toolsRegistry.registerTool(FoundryWebSearchTool);
479
+
468
480
  // Register Visual Editor Tool
469
481
  await this.toolsRegistry.registerTool(VisualEditorTool);
470
482
 
@@ -498,6 +510,13 @@ class LoxiaApplication {
498
510
  // (currently: scheduled tasks; per-agent permission, default DISABLED).
499
511
  await this.toolsRegistry.registerTool(PlatformControlTool);
500
512
 
513
+ // Register Desktop Tool — keyboard/mouse/screen/window control with
514
+ // visual grounding (Kimi K2.6 by default). Per-agent allowlist with
515
+ // an EMPTY default, so no agent can drive the desktop until the
516
+ // operator explicitly opts in via toolConfig.desktop.allowedActions.
517
+ // Global kill switch: LOXIA_DESKTOP_TOOL_DISABLED=1.
518
+ await this.toolsRegistry.registerTool(DesktopTool);
519
+
501
520
  // widget-module: remove this block if the module is deleted.
502
521
  // Registers the WidgetTool for agent-facing custom-UI rendering.
503
522
  // Honors LOXIA_DISABLE_WIDGETS=1 env flag for a zero-source kill switch.
@@ -599,6 +618,23 @@ class LoxiaApplication {
599
618
  videoTool.setAIService(this.aiService);
600
619
  this.logger.info('AIService set for Video Generation Tool');
601
620
  }
621
+
622
+ // Foundry web search — uses /llm/web-search backed by Azure AI
623
+ // Foundry + Grounding with Bing Search. Calls aiService.foundryWebSearch
624
+ // for the auth + URL plumbing.
625
+ const foundryWebTool = this.toolsRegistry.getTool('foundry_web_search');
626
+ if (foundryWebTool && typeof foundryWebTool.setAIService === 'function') {
627
+ foundryWebTool.setAIService(this.aiService);
628
+ this.logger.info('AIService set for Foundry Web Search Tool');
629
+ }
630
+
631
+ // Desktop tool — needs aiService for proxy-mode grounding auth
632
+ // (baseUrl + per-session Loxia key from apiKeyManager).
633
+ const desktopTool = this.toolsRegistry.getTool('desktop');
634
+ if (desktopTool && typeof desktopTool.setAIService === 'function') {
635
+ desktopTool.setAIService(this.aiService);
636
+ this.logger.info('AIService set for Desktop Tool');
637
+ }
602
638
  if (videoTool && typeof videoTool.setAgentPool === 'function') {
603
639
  videoTool.setAgentPool(this.agentPool);
604
640
  this.logger.info('AgentPool set for Video Generation Tool');
@@ -3505,6 +3505,48 @@ h2{color:#16a34a;margin-bottom:.5rem;} p{color:#666;}</style></head>
3505
3505
  }
3506
3506
  });
3507
3507
 
3508
+ // Clear a wedged stopRequested flag — recovery endpoint for agents
3509
+ // that got stuck mid-stop (process restart, transition throw, etc.).
3510
+ // Idempotent. Returns the resulting agent state. The scheduler bug
3511
+ // that left agents in this state is fixed (try/finally around
3512
+ // _transitionMode in stopAgentExecution), but this endpoint stays
3513
+ // because external systems can ALWAYS find new ways to wedge state
3514
+ // — having an explicit recovery surface is cheaper than restarting
3515
+ // the whole CLI.
3516
+ this.app.post('/api/agents/:agentId/clear-stop-flag', async (req, res) => {
3517
+ try {
3518
+ const { agentId } = req.params;
3519
+ const agentPool = this.orchestrator?.agentPool;
3520
+ if (!agentPool) {
3521
+ return res.status(503).json({ success: false, error: 'agentPool not ready' });
3522
+ }
3523
+ const agent = await agentPool.getAgent(agentId);
3524
+ if (!agent) {
3525
+ return res.status(404).json({ success: false, error: 'Agent not found' });
3526
+ }
3527
+ const wasSet = !!agent.stopRequested;
3528
+ agent.stopRequested = false;
3529
+ await agentPool.persistAgentState(agentId);
3530
+ this.logger.info(`Cleared stopRequested for ${agentId}`, { wasSet });
3531
+ res.json({
3532
+ success: true,
3533
+ wasSet,
3534
+ agent: {
3535
+ id: agent.id,
3536
+ name: agent.name,
3537
+ mode: agent.mode,
3538
+ stopRequested: agent.stopRequested,
3539
+ },
3540
+ });
3541
+ } catch (error) {
3542
+ this.logger.error('clear-stop-flag failed', {
3543
+ agentId: req.params.agentId,
3544
+ error: error.message,
3545
+ });
3546
+ res.status(500).json({ success: false, error: error.message });
3547
+ }
3548
+ });
3549
+
3508
3550
  // Get agent mode status
3509
3551
  this.app.get('/api/agents/:agentId/mode', async (req, res) => {
3510
3552
  try {