onbuzz 4.9.0 → 4.9.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 (1019) hide show
  1. package/package.json +1 -1
  2. package/scripts/verify/azure-custom-embeddings.mjs +152 -0
  3. package/scripts/verify/azure-embeddings.mjs +146 -0
  4. package/scripts/verify/composio-toolkits.mjs +453 -0
  5. package/scripts/verify/local-embeddings.mjs +171 -0
  6. package/scripts/verify/openai-embeddings.mjs +140 -0
  7. package/src/core/__tests__/agentScheduler.autoRecall.test.js +215 -0
  8. package/src/core/__tests__/agentScheduler.errorCategorisation.test.js +169 -0
  9. package/src/core/agentScheduler.js +182 -36
  10. package/src/index.js +63 -1
  11. package/src/interfaces/webServer.js +90 -0
  12. package/src/services/__tests__/aiService.core.test.js +420 -0
  13. package/src/services/__tests__/aiService.embed.test.js +172 -0
  14. package/src/services/__tests__/apiKeyManager.getEmbeddingApiKey.test.js +86 -0
  15. package/src/services/__tests__/composioService.test.js +429 -47
  16. package/src/services/__tests__/telegramService.test.js +91 -0
  17. package/src/services/aiService.js +137 -0
  18. package/src/services/apiKeyManager.js +28 -0
  19. package/src/services/composioService.js +375 -24
  20. package/src/services/embeddings/__tests__/autoRecall.test.js +237 -0
  21. package/src/services/embeddings/__tests__/azureCustomProvider.test.js +232 -0
  22. package/src/services/embeddings/__tests__/cloudProviders.test.js +339 -0
  23. package/src/services/embeddings/__tests__/embeddingService.test.js +417 -0
  24. package/src/services/embeddings/__tests__/embeddingsConfig.test.js +182 -0
  25. package/src/services/embeddings/__tests__/inMemoryJsonStore.test.js +207 -0
  26. package/src/services/embeddings/__tests__/localProvider.test.js +263 -0
  27. package/src/services/embeddings/__tests__/providerInterface.test.js +209 -0
  28. package/src/services/embeddings/autoRecall.js +219 -0
  29. package/src/services/embeddings/embeddingService.js +452 -0
  30. package/src/services/embeddings/embeddingsConfig.js +203 -0
  31. package/src/services/embeddings/indexers/__tests__/agentIndexer.test.js +232 -0
  32. package/src/services/embeddings/indexers/__tests__/composioIndexer.test.js +265 -0
  33. package/src/services/embeddings/indexers/__tests__/memoryIndexer.test.js +418 -0
  34. package/src/services/embeddings/indexers/__tests__/reminisceIndexer.test.js +357 -0
  35. package/src/services/embeddings/indexers/__tests__/skillsIndexer.test.js +145 -0
  36. package/src/services/embeddings/indexers/__tests__/taskIndexer.test.js +146 -0
  37. package/src/services/embeddings/indexers/agentIndexer.js +249 -0
  38. package/src/services/embeddings/indexers/composioIndexer.js +279 -0
  39. package/src/services/embeddings/indexers/memoryIndexer.js +358 -0
  40. package/src/services/embeddings/indexers/reminisceIndexer.js +370 -0
  41. package/src/services/embeddings/indexers/skillsIndexer.js +154 -0
  42. package/src/services/embeddings/indexers/taskIndexer.js +155 -0
  43. package/src/services/embeddings/providerInterface.js +206 -0
  44. package/src/services/embeddings/providers/azureCustomProvider.js +154 -0
  45. package/src/services/embeddings/providers/azureProvider.js +122 -0
  46. package/src/services/embeddings/providers/cloudHttpTransport.js +205 -0
  47. package/src/services/embeddings/providers/localProvider.js +287 -0
  48. package/src/services/embeddings/providers/openaiProvider.js +101 -0
  49. package/src/services/embeddings/utilities/__tests__/textChunker.test.js +217 -0
  50. package/src/services/embeddings/utilities/textChunker.js +290 -0
  51. package/src/services/embeddings/vectorStore/__tests__/scoring.test.js +189 -0
  52. package/src/services/embeddings/vectorStore/inMemoryJsonStore.js +356 -0
  53. package/src/services/embeddings/vectorStore/scoring.js +128 -0
  54. package/src/services/embeddings/vectorStore/storeContractTests.js +179 -0
  55. package/src/services/embeddings/vectorStore/storeInterface.js +91 -0
  56. package/src/services/telegramService.js +140 -1
  57. package/src/tools/__tests__/agentCommunicationTool.findAgent.test.js +226 -0
  58. package/src/tools/__tests__/agentCommunicationTool.test.js +17 -2
  59. package/src/tools/__tests__/baseTool.test.js +14 -10
  60. package/src/tools/__tests__/cloneDetectionTool.test.js +430 -0
  61. package/src/tools/__tests__/composioTool.findAction.test.js +448 -0
  62. package/src/tools/__tests__/composioTool.test.js +254 -23
  63. package/src/tools/__tests__/dependencyResolverTool.test.js +567 -0
  64. package/src/tools/__tests__/docxTool.test.js +449 -0
  65. package/src/tools/__tests__/excelTool.test.js +486 -0
  66. package/src/tools/__tests__/importAnalyzerTool.test.js +368 -0
  67. package/src/tools/__tests__/memoryTool.forgetStale.test.js +272 -0
  68. package/src/tools/__tests__/memoryTool.reminisceSemanticSearch.test.js +301 -0
  69. package/src/tools/__tests__/memoryTool.semanticSearch.test.js +405 -0
  70. package/src/tools/__tests__/memoryTool.teamPool.test.js +293 -0
  71. package/src/tools/__tests__/openaiFunctionSchemas.validity.test.js +268 -0
  72. package/src/tools/__tests__/pdfTool.test.js +457 -0
  73. package/src/tools/__tests__/skillsTool.search.test.js +164 -0
  74. package/src/tools/__tests__/taskManagerTool.search.test.js +143 -0
  75. package/src/tools/agentCommunicationTool.js +120 -5
  76. package/src/tools/composioTool.js +373 -63
  77. package/src/tools/memoryTool.js +634 -5
  78. package/src/tools/openaiFunctionSchemas.js +796 -6
  79. package/src/tools/skillsTool.js +123 -0
  80. package/src/tools/taskManagerTool.js +115 -2
  81. package/src/tools/webTool.js +28 -1
  82. package/src/utilities/toolConstants.js +3 -1
  83. package/web-ui/build/index.html +2 -2
  84. package/web-ui/build/static/1c-CTztA3Xo.js +1 -0
  85. package/web-ui/build/static/abap-BsUhLmBp.js +1 -0
  86. package/web-ui/build/static/abnf-CGKV2y5s.js +1 -0
  87. package/web-ui/build/static/abnf-vQPGuzu_.js +1 -0
  88. package/web-ui/build/static/accesslog-mUZocN9d.js +1 -0
  89. package/web-ui/build/static/actionscript-BmCHyr7v.js +1 -0
  90. package/web-ui/build/static/actionscript-Cc5vZvFE.js +1 -0
  91. package/web-ui/build/static/ada-BHR9NMNv.js +1 -0
  92. package/web-ui/build/static/ada-DnxQs2b9.js +1 -0
  93. package/web-ui/build/static/agda-CHEWVCEZ.js +1 -0
  94. package/web-ui/build/static/al-C0otNZjc.js +1 -0
  95. package/web-ui/build/static/angelscript-Co5e7ZdR.js +1 -0
  96. package/web-ui/build/static/antlr4-Dkky4AXR.js +1 -0
  97. package/web-ui/build/static/apache-BJkYIuV-.js +1 -0
  98. package/web-ui/build/static/apacheconf-XLif_lM5.js +1 -0
  99. package/web-ui/build/static/apex-DiKnugSK.js +1 -0
  100. package/web-ui/build/static/apl-R5OItFx8.js +1 -0
  101. package/web-ui/build/static/applescript-D8uiCoXI.js +1 -0
  102. package/web-ui/build/static/applescript-e5KOVzz4.js +1 -0
  103. package/web-ui/build/static/aql-Cvy5hwR1.js +1 -0
  104. package/web-ui/build/static/arcade-0iAjFk8w.js +1 -0
  105. package/web-ui/build/static/arduino-BJeuGqAT.js +1 -0
  106. package/web-ui/build/static/arduino-QJJjnM1j.js +1 -0
  107. package/web-ui/build/static/arff-C-i_E_-B.js +1 -0
  108. package/web-ui/build/static/armasm-ukFQKHGn.js +1 -0
  109. package/web-ui/build/static/asciidoc-B49qqHJJ.js +1 -0
  110. package/web-ui/build/static/asciidoc-Nkm1Ylrd.js +1 -0
  111. package/web-ui/build/static/asm6502-CMiM3nZs.js +1 -0
  112. package/web-ui/build/static/asmatmel-DG9XzIBf.js +1 -0
  113. package/web-ui/build/static/aspectj-DjRutrRk.js +1 -0
  114. package/web-ui/build/static/aspnet-DCNVRVi9.js +1 -0
  115. package/web-ui/build/static/autohotkey-C7eyvps0.js +1 -0
  116. package/web-ui/build/static/autohotkey-CiaZi-WO.js +1 -0
  117. package/web-ui/build/static/autoit-CaKUQkux.js +1 -0
  118. package/web-ui/build/static/autoit-D-CUHQgt.js +1 -0
  119. package/web-ui/build/static/avisynth-DFP3h4zu.js +1 -0
  120. package/web-ui/build/static/avrasm-BqvUj3fg.js +1 -0
  121. package/web-ui/build/static/avro-idl-D3l0ptuQ.js +1 -0
  122. package/web-ui/build/static/awk-BmDxAZFj.js +1 -0
  123. package/web-ui/build/static/axapta-B424jrgT.js +1 -0
  124. package/web-ui/build/static/bash-CgAffr8Z.js +1 -0
  125. package/web-ui/build/static/bash-D41aILLG.js +1 -0
  126. package/web-ui/build/static/basic-5DFTo35K.js +1 -0
  127. package/web-ui/build/static/basic-BONYG7D2.js +1 -0
  128. package/web-ui/build/static/batch-BnaDGMwS.js +1 -0
  129. package/web-ui/build/static/bbcode-Daujj4hU.js +1 -0
  130. package/web-ui/build/static/bicep-CXidcIK5.js +1 -0
  131. package/web-ui/build/static/birb-CcOzsnqB.js +1 -0
  132. package/web-ui/build/static/bison-rq0w5JFF.js +1 -0
  133. package/web-ui/build/static/bnf-C4uK1dK8.js +1 -0
  134. package/web-ui/build/static/bnf-CvXZ9crt.js +1 -0
  135. package/web-ui/build/static/brainfuck-B5Ezdg2y.js +1 -0
  136. package/web-ui/build/static/brainfuck-BZaTfZ97.js +1 -0
  137. package/web-ui/build/static/brightscript-D_2WBVxt.js +1 -0
  138. package/web-ui/build/static/bro-BD7GT6j_.js +1 -0
  139. package/web-ui/build/static/bsl-Bh-qcQ3w.js +1 -0
  140. package/web-ui/build/static/c-DNmZz1iT.js +1 -0
  141. package/web-ui/build/static/c-dUrSOcB2.js +1 -0
  142. package/web-ui/build/static/c-like-DfzKY8Uu.js +1 -0
  143. package/web-ui/build/static/cal-DgrFs4te.js +1 -0
  144. package/web-ui/build/static/capnproto-BxFR2k8w.js +1 -0
  145. package/web-ui/build/static/ceylon-B2Q7BIPM.js +1 -0
  146. package/web-ui/build/static/cfscript-DeaR8rww.js +1 -0
  147. package/web-ui/build/static/chaiscript-BeBIoz6b.js +1 -0
  148. package/web-ui/build/static/cil-YHiHOb4c.js +1 -0
  149. package/web-ui/build/static/clean-BgOl_0cN.js +1 -0
  150. package/web-ui/build/static/clojure-BlgOza7C.js +1 -0
  151. package/web-ui/build/static/clojure-PlKRYx3q.js +1 -0
  152. package/web-ui/build/static/clojure-repl-Dv2_THNB.js +1 -0
  153. package/web-ui/build/static/cmake-Ccf43gsy.js +1 -0
  154. package/web-ui/build/static/cmake-Dah_b5tK.js +1 -0
  155. package/web-ui/build/static/cobol-o9YRDzXA.js +1 -0
  156. package/web-ui/build/static/coffeescript-DTYLvxG9.js +1 -0
  157. package/web-ui/build/static/coffeescript-Dm4UcexP.js +1 -0
  158. package/web-ui/build/static/concurnas-1OxY7nFV.js +1 -0
  159. package/web-ui/build/static/coq-CvJBSoWT.js +1 -0
  160. package/web-ui/build/static/coq-DPZunybQ.js +1 -0
  161. package/web-ui/build/static/cos-BBstQgB4.js +1 -0
  162. package/web-ui/build/static/cpp-BR1pa5Wr.js +1 -0
  163. package/web-ui/build/static/cpp-C-_tTuKh.js +1 -0
  164. package/web-ui/build/static/crmsh-BIme7ihG.js +1 -0
  165. package/web-ui/build/static/crystal-C2hlJxaB.js +1 -0
  166. package/web-ui/build/static/crystal-Ca6D0fV7.js +1 -0
  167. package/web-ui/build/static/csharp-DGvdwvDH.js +1 -0
  168. package/web-ui/build/static/csharp-DbAjVltn.js +1 -0
  169. package/web-ui/build/static/cshtml-DVC84JPa.js +1 -0
  170. package/web-ui/build/static/csp-BawtG83z.js +1 -0
  171. package/web-ui/build/static/csp-BlaoxdTK.js +1 -0
  172. package/web-ui/build/static/css-52oqss7r.js +1 -0
  173. package/web-ui/build/static/css-extras-BoTVw2IW.js +1 -0
  174. package/web-ui/build/static/csv-nXBSv5kK.js +1 -0
  175. package/web-ui/build/static/cypher-WuesoPm2.js +1 -0
  176. package/web-ui/build/static/d-BmmTjwiV.js +1 -0
  177. package/web-ui/build/static/d-BwHf5A8R.js +1 -0
  178. package/web-ui/build/static/dart-BVZTRb8b.js +1 -0
  179. package/web-ui/build/static/dart-CbWzIBpX.js +1 -0
  180. package/web-ui/build/static/dataweave-qi_fpjJR.js +1 -0
  181. package/web-ui/build/static/dax-BpP02TD3.js +1 -0
  182. package/web-ui/build/static/delphi-TK0E0gLN.js +1 -0
  183. package/web-ui/build/static/dhall-jyNJwUbo.js +1 -0
  184. package/web-ui/build/static/diff-Dbu90HZq.js +1 -0
  185. package/web-ui/build/static/diff-Df6ezhAq.js +1 -0
  186. package/web-ui/build/static/django-BDy-xiWR.js +1 -0
  187. package/web-ui/build/static/django-CbmnWIX9.js +1 -0
  188. package/web-ui/build/static/dns-D_wmKRHl.js +1 -0
  189. package/web-ui/build/static/dns-zone-file-_1osc1Qk.js +1 -0
  190. package/web-ui/build/static/docker-D62hlkjX.js +1 -0
  191. package/web-ui/build/static/dockerfile-DQ080zHh.js +1 -0
  192. package/web-ui/build/static/dos-B5mA8Wna.js +1 -0
  193. package/web-ui/build/static/dot-D497WUfu.js +1 -0
  194. package/web-ui/build/static/dsconfig-dERMCQVk.js +1 -0
  195. package/web-ui/build/static/dts-DC3ujcbX.js +1 -0
  196. package/web-ui/build/static/dust-Bhm1VBQg.js +1 -0
  197. package/web-ui/build/static/ebnf-1lmwK0bv.js +1 -0
  198. package/web-ui/build/static/ebnf-qzzqKVXL.js +1 -0
  199. package/web-ui/build/static/editorconfig-CCe25wQr.js +1 -0
  200. package/web-ui/build/static/eiffel-BFOXbwEN.js +1 -0
  201. package/web-ui/build/static/ejs-D94vVkGZ.js +1 -0
  202. package/web-ui/build/static/elixir-B2W81YV0.js +1 -0
  203. package/web-ui/build/static/elixir-CD1szlP_.js +1 -0
  204. package/web-ui/build/static/elm-BUJhR-kM.js +1 -0
  205. package/web-ui/build/static/elm-DwLnLHSK.js +1 -0
  206. package/web-ui/build/static/erb-CcokD9Fu.js +1 -0
  207. package/web-ui/build/static/erb-lzhmSBEV.js +1 -0
  208. package/web-ui/build/static/erlang-C0jnu48-.js +1 -0
  209. package/web-ui/build/static/erlang-CrevXBnJ.js +1 -0
  210. package/web-ui/build/static/erlang-repl-CNY6yNoO.js +1 -0
  211. package/web-ui/build/static/etlua-BMO_ICdR.js +1 -0
  212. package/web-ui/build/static/excel-C5PbLrVC.js +1 -0
  213. package/web-ui/build/static/excel-formula-CX4pOnnV.js +1 -0
  214. package/web-ui/build/static/factor-bW3WUpa0.js +1 -0
  215. package/web-ui/build/static/false-CQx6Crbr.js +1 -0
  216. package/web-ui/build/static/firestore-security-rules-DT5oRNdf.js +1 -0
  217. package/web-ui/build/static/fix-C4IWe2LI.js +1 -0
  218. package/web-ui/build/static/flix-hi9-cLwA.js +1 -0
  219. package/web-ui/build/static/flow-CkX6DAhF.js +1 -0
  220. package/web-ui/build/static/fortran-C4rIX-2n.js +1 -0
  221. package/web-ui/build/static/fortran-Dvu3q_x_.js +1 -0
  222. package/web-ui/build/static/fsharp-Bwa1UrRI.js +1 -0
  223. package/web-ui/build/static/fsharp-CvadhLcA.js +1 -0
  224. package/web-ui/build/static/ftl-eFEI11YV.js +1 -0
  225. package/web-ui/build/static/gams-BxGx7deQ.js +1 -0
  226. package/web-ui/build/static/gap-Dcv7bqDd.js +1 -0
  227. package/web-ui/build/static/gauss-CcVoF4l8.js +1 -0
  228. package/web-ui/build/static/gcode-B1dc5sh5.js +1 -0
  229. package/web-ui/build/static/gcode-D5OxRG5t.js +1 -0
  230. package/web-ui/build/static/gdscript-CL-EA1wk.js +1 -0
  231. package/web-ui/build/static/gedcom-BbXrNsr0.js +1 -0
  232. package/web-ui/build/static/gherkin-B2wQMbT2.js +1 -0
  233. package/web-ui/build/static/gherkin-CnL4Y3j1.js +1 -0
  234. package/web-ui/build/static/git-DpdutSM5.js +1 -0
  235. package/web-ui/build/static/glsl-C7sgdZCA.js +1 -0
  236. package/web-ui/build/static/glsl-DVaNsn1Z.js +1 -0
  237. package/web-ui/build/static/gml-B_NppoA4.js +1 -0
  238. package/web-ui/build/static/gml-DFrn75UD.js +1 -0
  239. package/web-ui/build/static/gn-BhTU_aTW.js +1 -0
  240. package/web-ui/build/static/go-DKrUPrfb.js +1 -0
  241. package/web-ui/build/static/go-DLAYIsJl.js +1 -0
  242. package/web-ui/build/static/go-module-BXY6q1Ug.js +1 -0
  243. package/web-ui/build/static/golo-CKxjLRpC.js +1 -0
  244. package/web-ui/build/static/gradle-DN8lsmJj.js +1 -0
  245. package/web-ui/build/static/graphql-CMb_4vdm.js +1 -0
  246. package/web-ui/build/static/groovy-Bhi1VPv7.js +1 -0
  247. package/web-ui/build/static/groovy-D3X3r3EX.js +1 -0
  248. package/web-ui/build/static/haml-CvOCw9lL.js +1 -0
  249. package/web-ui/build/static/haml-DYs0wBJO.js +1 -0
  250. package/web-ui/build/static/handlebars-CLnuKGPm.js +1 -0
  251. package/web-ui/build/static/handlebars-CYGG_M1h.js +1 -0
  252. package/web-ui/build/static/haskell-0Ju0XclD.js +1 -0
  253. package/web-ui/build/static/haskell-CL5jUHSd.js +1 -0
  254. package/web-ui/build/static/haxe-BghRbBtK.js +1 -0
  255. package/web-ui/build/static/haxe-dfL7GzPv.js +1 -0
  256. package/web-ui/build/static/hcl-BZP2QME-.js +1 -0
  257. package/web-ui/build/static/hlsl-Djp0TiCX.js +1 -0
  258. package/web-ui/build/static/hoon-Df5gJVqA.js +1 -0
  259. package/web-ui/build/static/hpkp-Cy-hjB4V.js +1 -0
  260. package/web-ui/build/static/hsp-CntMIMs4.js +1 -0
  261. package/web-ui/build/static/hsts-BNBhETNx.js +1 -0
  262. package/web-ui/build/static/htmlbars-VCCYaDHA.js +1 -0
  263. package/web-ui/build/static/http-7DbskohZ.js +1 -0
  264. package/web-ui/build/static/http-BT5FYFAK.js +1 -0
  265. package/web-ui/build/static/hy-DuGSaK_b.js +1 -0
  266. package/web-ui/build/static/ichigojam-CjvnJmlr.js +1 -0
  267. package/web-ui/build/static/icon-BsBz6XP6.js +1 -0
  268. package/web-ui/build/static/icu-message-format-BEpv_nip.js +1 -0
  269. package/web-ui/build/static/idris-DiXQdMPU.js +1 -0
  270. package/web-ui/build/static/iecst-C9tYEzwP.js +1 -0
  271. package/web-ui/build/static/ignore-DNMpCRPN.js +1 -0
  272. package/web-ui/build/static/index-B-r71gxO.js +1 -0
  273. package/web-ui/build/static/index-CTtNXVAZ.js +1217 -0
  274. package/web-ui/build/static/index-DkBBEGYj.css +1 -0
  275. package/web-ui/build/static/index-PvzceRzr.js +13 -0
  276. package/web-ui/build/static/inform7-D38mj1Ty.js +1 -0
  277. package/web-ui/build/static/inform7-SwIRbrNQ.js +1 -0
  278. package/web-ui/build/static/ini-B9xO6J_m.js +1 -0
  279. package/web-ui/build/static/ini-zcp_esam.js +1 -0
  280. package/web-ui/build/static/io-C-Ay4jvg.js +1 -0
  281. package/web-ui/build/static/irpf90-BYnkitLq.js +1 -0
  282. package/web-ui/build/static/isbl-BYtdwd6v.js +1 -0
  283. package/web-ui/build/static/j-ByZQN5E4.js +1 -0
  284. package/web-ui/build/static/java-BNtb6JWL.js +1 -0
  285. package/web-ui/build/static/java-CQZL3scW.js +1 -0
  286. package/web-ui/build/static/javadoc-BciMZ8jg.js +1 -0
  287. package/web-ui/build/static/javadoclike-07BOTXmy.js +1 -0
  288. package/web-ui/build/static/javascript-CViZlg1q.js +1 -0
  289. package/web-ui/build/static/javastacktrace-bWyAK0up.js +1 -0
  290. package/web-ui/build/static/jboss-cli-hz5boSGB.js +1 -0
  291. package/web-ui/build/static/jexl-DdIINSXT.js +1 -0
  292. package/web-ui/build/static/jolie-CQnDX-f0.js +1 -0
  293. package/web-ui/build/static/jq-BzhF0CHG.js +1 -0
  294. package/web-ui/build/static/js-extras-jizEtT14.js +1 -0
  295. package/web-ui/build/static/js-templates-Dr1BqLAt.js +1 -0
  296. package/web-ui/build/static/jsdoc-CI-GPi6r.js +1 -0
  297. package/web-ui/build/static/json-2eDPxnHO.js +1 -0
  298. package/web-ui/build/static/json-BBqUMOAQ.js +1 -0
  299. package/web-ui/build/static/json5-CeIoln-Y.js +1 -0
  300. package/web-ui/build/static/jsonp-DWe9tbr2.js +1 -0
  301. package/web-ui/build/static/jsstacktrace-aE-go9tq.js +1 -0
  302. package/web-ui/build/static/jsx-BTXEPQYI.js +1 -0
  303. package/web-ui/build/static/julia-4VeOirXa.js +1 -0
  304. package/web-ui/build/static/julia-Da6yHEfz.js +1 -0
  305. package/web-ui/build/static/julia-repl-CFrizGkE.js +1 -0
  306. package/web-ui/build/static/keepalived-39SDM4j5.js +1 -0
  307. package/web-ui/build/static/keyman-DU5yOLYr.js +1 -0
  308. package/web-ui/build/static/kotlin-DJoqh3HG.js +1 -0
  309. package/web-ui/build/static/kotlin-DsKd3r_L.js +1 -0
  310. package/web-ui/build/static/kumir-CO96hby4.js +1 -0
  311. package/web-ui/build/static/kusto-DyuMf8l-.js +1 -0
  312. package/web-ui/build/static/lasso-BiPmQTXQ.js +1 -0
  313. package/web-ui/build/static/latex-Bd1ef5fi.js +1 -0
  314. package/web-ui/build/static/latex-DUrYkmWb.js +1 -0
  315. package/web-ui/build/static/latte-BSD-hpi5.js +1 -0
  316. package/web-ui/build/static/ldif-1ZMSg0qI.js +1 -0
  317. package/web-ui/build/static/leaf-Cg0eq01F.js +1 -0
  318. package/web-ui/build/static/less-BKcd1_xh.js +1 -0
  319. package/web-ui/build/static/less-SB5bcusC.js +1 -0
  320. package/web-ui/build/static/lilypond-BX_kuAqT.js +1 -0
  321. package/web-ui/build/static/liquid-C337T5bt.js +1 -0
  322. package/web-ui/build/static/lisp-B_bJRelF.js +1 -0
  323. package/web-ui/build/static/lisp-Du04Vdmx.js +1 -0
  324. package/web-ui/build/static/livecodeserver-BOkA9fV6.js +1 -0
  325. package/web-ui/build/static/livescript-DkMTCCBM.js +1 -0
  326. package/web-ui/build/static/livescript-rTaLq5oP.js +1 -0
  327. package/web-ui/build/static/llvm-BrBlvl5p.js +1 -0
  328. package/web-ui/build/static/llvm-DQbygw7z.js +1 -0
  329. package/web-ui/build/static/log-DoAzOt8c.js +1 -0
  330. package/web-ui/build/static/lolcode-DnB7KhRR.js +1 -0
  331. package/web-ui/build/static/lsl-DpzE7F5A.js +1 -0
  332. package/web-ui/build/static/lua-CIceROsO.js +1 -0
  333. package/web-ui/build/static/lua-DhnvJuMn.js +1 -0
  334. package/web-ui/build/static/magma-BwjzpKxi.js +1 -0
  335. package/web-ui/build/static/makefile-D10Y62dl.js +1 -0
  336. package/web-ui/build/static/makefile-esgkquGi.js +1 -0
  337. package/web-ui/build/static/markdown-B-Y7Y0Nn.js +1 -0
  338. package/web-ui/build/static/markdown-Cv3Onm-Q.js +1 -0
  339. package/web-ui/build/static/markup-templating-B1-9WWYa.js +1 -0
  340. package/web-ui/build/static/mathematica-gSyKdw2h.js +1 -0
  341. package/web-ui/build/static/matlab-6i1uXuBx.js +1 -0
  342. package/web-ui/build/static/matlab-CqcSZ1d9.js +1 -0
  343. package/web-ui/build/static/maxima-Bc-OnIOQ.js +1 -0
  344. package/web-ui/build/static/maxscript-Bce44o6c.js +1 -0
  345. package/web-ui/build/static/mel-0Jk3y-vw.js +1 -0
  346. package/web-ui/build/static/mel-DmA_8WPg.js +1 -0
  347. package/web-ui/build/static/mercury-DNdP1u-O.js +1 -0
  348. package/web-ui/build/static/mermaid-DrLkSIIb.js +1 -0
  349. package/web-ui/build/static/mipsasm-BIQVs3Ff.js +1 -0
  350. package/web-ui/build/static/mizar-BD5ZD_Rk.js +1 -0
  351. package/web-ui/build/static/mizar-DThX8Mdy.js +1 -0
  352. package/web-ui/build/static/mojolicious-Bra-ClwJ.js +1 -0
  353. package/web-ui/build/static/mongodb-DirByEEg.js +1 -0
  354. package/web-ui/build/static/monkey-C-Pvu43G.js +1 -0
  355. package/web-ui/build/static/monkey-n4IFmaA7.js +1 -0
  356. package/web-ui/build/static/moonscript-B1DM34lp.js +1 -0
  357. package/web-ui/build/static/moonscript-B82JBytX.js +1 -0
  358. package/web-ui/build/static/n1ql-C46iq3Hh.js +1 -0
  359. package/web-ui/build/static/n1ql-DOs3gJQo.js +1 -0
  360. package/web-ui/build/static/n4js-CPYgal3G.js +1 -0
  361. package/web-ui/build/static/nand2tetris-hdl-BhlUIq7M.js +1 -0
  362. package/web-ui/build/static/naniscript-D1YZXYcf.js +1 -0
  363. package/web-ui/build/static/nasm-2-TtCBo4.js +1 -0
  364. package/web-ui/build/static/neon-BzoXMDea.js +1 -0
  365. package/web-ui/build/static/nevod-DW_87wHj.js +1 -0
  366. package/web-ui/build/static/nginx-BgieYUhk.js +1 -0
  367. package/web-ui/build/static/nginx-DW0RVJbs.js +1 -0
  368. package/web-ui/build/static/nim-BbTa7YZN.js +1 -0
  369. package/web-ui/build/static/nim-VdXk3QT9.js +1 -0
  370. package/web-ui/build/static/nix-3tNNprEI.js +1 -0
  371. package/web-ui/build/static/nix-BDghlfzh.js +1 -0
  372. package/web-ui/build/static/node-repl-BBLv3tyt.js +1 -0
  373. package/web-ui/build/static/nsis-DxjfnSO8.js +1 -0
  374. package/web-ui/build/static/nsis-FY5xiiar.js +1 -0
  375. package/web-ui/build/static/objectivec-CXhf_sp_.js +1 -0
  376. package/web-ui/build/static/objectivec-DcRKjWcd.js +1 -0
  377. package/web-ui/build/static/ocaml-BLRL6Zro.js +1 -0
  378. package/web-ui/build/static/ocaml-C4S4QQtS.js +1 -0
  379. package/web-ui/build/static/opencl-ruEAYetM.js +1 -0
  380. package/web-ui/build/static/openqasm-D6r_FwIh.js +1 -0
  381. package/web-ui/build/static/openscad-BEPjoj_N.js +1 -0
  382. package/web-ui/build/static/oxygene-A61yc5Or.js +1 -0
  383. package/web-ui/build/static/oz-DICidCTs.js +1 -0
  384. package/web-ui/build/static/parigp-MjTNwy2s.js +1 -0
  385. package/web-ui/build/static/parser-DmI7lg_r.js +1 -0
  386. package/web-ui/build/static/parser3-Bv9kXAib.js +1 -0
  387. package/web-ui/build/static/pascal-B23PBLTj.js +1 -0
  388. package/web-ui/build/static/pascaligo-CPIJtX2C.js +1 -0
  389. package/web-ui/build/static/pcaxis-Bsj_6x8j.js +1 -0
  390. package/web-ui/build/static/peoplecode-VvQbMjsD.js +1 -0
  391. package/web-ui/build/static/perl-Cr6Y9-hl.js +1 -0
  392. package/web-ui/build/static/perl-D37oTJip.js +1 -0
  393. package/web-ui/build/static/pf-BKHaWcGm.js +1 -0
  394. package/web-ui/build/static/pgsql-ChusgWw2.js +1 -0
  395. package/web-ui/build/static/php-3Qr4hNV1.js +1 -0
  396. package/web-ui/build/static/php-CgxeEh4Y.js +1 -0
  397. package/web-ui/build/static/php-extras-DeLqwT6H.js +1 -0
  398. package/web-ui/build/static/php-template-DcOJxuIf.js +1 -0
  399. package/web-ui/build/static/phpdoc-amFph5Ax.js +1 -0
  400. package/web-ui/build/static/plaintext-mqBcO1hG.js +1 -0
  401. package/web-ui/build/static/plsql-ioyqfxP7.js +1 -0
  402. package/web-ui/build/static/pony-nxjy8Qot.js +1 -0
  403. package/web-ui/build/static/powerquery-Ci_Fxyg8.js +1 -0
  404. package/web-ui/build/static/powershell-CB_GgRqr.js +1 -0
  405. package/web-ui/build/static/powershell-au4fYIm7.js +1 -0
  406. package/web-ui/build/static/processing-Bkd3f-Wz.js +1 -0
  407. package/web-ui/build/static/processing-PgCPZm30.js +1 -0
  408. package/web-ui/build/static/profile-C2GBY6C9.js +1 -0
  409. package/web-ui/build/static/prolog-BRjYwjIO.js +1 -0
  410. package/web-ui/build/static/prolog-BheGlH8Q.js +1 -0
  411. package/web-ui/build/static/promql-CtCmTKys.js +1 -0
  412. package/web-ui/build/static/properties-BpLqVZha.js +1 -0
  413. package/web-ui/build/static/properties-UQxavHUY.js +1 -0
  414. package/web-ui/build/static/protobuf-BSuul6Uw.js +1 -0
  415. package/web-ui/build/static/protobuf-CLRi8VTE.js +1 -0
  416. package/web-ui/build/static/psl-CJsJilqO.js +1 -0
  417. package/web-ui/build/static/pug-5BY6sdv1.js +1 -0
  418. package/web-ui/build/static/puppet-DBg45gHV.js +1 -0
  419. package/web-ui/build/static/puppet-DPANCbOj.js +1 -0
  420. package/web-ui/build/static/pure-Cn4p-7Bj.js +1 -0
  421. package/web-ui/build/static/purebasic-CoXbIzZJ.js +1 -0
  422. package/web-ui/build/static/purebasic-DZ_eLoUV.js +1 -0
  423. package/web-ui/build/static/purescript-B98GoUb_.js +1 -0
  424. package/web-ui/build/static/python-B-Lm1OME.js +1 -0
  425. package/web-ui/build/static/python-C_ApFGS1.js +1 -0
  426. package/web-ui/build/static/python-repl-CJW5_RON.js +1 -0
  427. package/web-ui/build/static/q-BB2BYhxG.js +1 -0
  428. package/web-ui/build/static/q-DVqo_ScG.js +1 -0
  429. package/web-ui/build/static/qml-Co-8g096.js +1 -0
  430. package/web-ui/build/static/qml-Du0WFcoy.js +1 -0
  431. package/web-ui/build/static/qore-C6XBzy3U.js +1 -0
  432. package/web-ui/build/static/qsharp-BCMklAuq.js +1 -0
  433. package/web-ui/build/static/r-B5CGUQwN.js +1 -0
  434. package/web-ui/build/static/r-Dxhot-za.js +1 -0
  435. package/web-ui/build/static/racket-C0dCdrKh.js +1 -0
  436. package/web-ui/build/static/reason-DGJ1fFJs.js +1 -0
  437. package/web-ui/build/static/reasonml-gt_AvBg7.js +1 -0
  438. package/web-ui/build/static/regex-B5iNH8MZ.js +1 -0
  439. package/web-ui/build/static/rego-hfPajYet.js +1 -0
  440. package/web-ui/build/static/renpy-BkG5aM4I.js +1 -0
  441. package/web-ui/build/static/rest-C4uwtrF8.js +1 -0
  442. package/web-ui/build/static/rib-D32ew8Y7.js +1 -0
  443. package/web-ui/build/static/rip-BIEbWzxe.js +1 -0
  444. package/web-ui/build/static/roboconf-CMN8BoHf.js +1 -0
  445. package/web-ui/build/static/roboconf-GVMh3ioj.js +1 -0
  446. package/web-ui/build/static/robotframework-CUQybJQ9.js +1 -0
  447. package/web-ui/build/static/routeros-DUEdLmuc.js +1 -0
  448. package/web-ui/build/static/rsl-BsAePIwQ.js +1 -0
  449. package/web-ui/build/static/ruby-CZMMjJFw.js +1 -0
  450. package/web-ui/build/static/ruby-WOVZyoXO.js +1 -0
  451. package/web-ui/build/static/ruleslanguage-xV-HszUl.js +1 -0
  452. package/web-ui/build/static/rust-Da9GRxLz.js +1 -0
  453. package/web-ui/build/static/rust-uCND428m.js +1 -0
  454. package/web-ui/build/static/sas-BW15NPzf.js +1 -0
  455. package/web-ui/build/static/sas-DCx9gext.js +1 -0
  456. package/web-ui/build/static/sass-BMD7eETo.js +1 -0
  457. package/web-ui/build/static/scala-0wnxLTlF.js +1 -0
  458. package/web-ui/build/static/scala-D3Hk-q5-.js +1 -0
  459. package/web-ui/build/static/scheme-Ci9QOUcD.js +1 -0
  460. package/web-ui/build/static/scheme-CtqjB_HN.js +1 -0
  461. package/web-ui/build/static/scilab-CnITQd23.js +1 -0
  462. package/web-ui/build/static/scss-DCceV6xw.js +1 -0
  463. package/web-ui/build/static/scss-N5EuPQOS.js +1 -0
  464. package/web-ui/build/static/shell-BegJTton.js +1 -0
  465. package/web-ui/build/static/shell-session-BHBoosfJ.js +1 -0
  466. package/web-ui/build/static/smali-CoHePNQf.js +1 -0
  467. package/web-ui/build/static/smali-D64W1f0Y.js +1 -0
  468. package/web-ui/build/static/smalltalk-CagI-Ky8.js +1 -0
  469. package/web-ui/build/static/smalltalk-DHLuWDjp.js +1 -0
  470. package/web-ui/build/static/smarty-CSS2XBuu.js +1 -0
  471. package/web-ui/build/static/sml-D8Oyp9xr.js +1 -0
  472. package/web-ui/build/static/sml-DvC_VDmX.js +1 -0
  473. package/web-ui/build/static/solidity-DVkeulrL.js +1 -0
  474. package/web-ui/build/static/solution-file-Bd7qWzoo.js +1 -0
  475. package/web-ui/build/static/soy-BRSlVWf7.js +1 -0
  476. package/web-ui/build/static/sparql-DNnCQmqM.js +1 -0
  477. package/web-ui/build/static/splunk-spl-DXCDUv2Y.js +1 -0
  478. package/web-ui/build/static/sqf-C_IKzP5b.js +1 -0
  479. package/web-ui/build/static/sqf-DBqlUGoG.js +1 -0
  480. package/web-ui/build/static/sql-Dt3ZutCc.js +1 -0
  481. package/web-ui/build/static/sql-q0UMLqb7.js +1 -0
  482. package/web-ui/build/static/sql_more-DAuY5p3F.js +1 -0
  483. package/web-ui/build/static/squirrel-CgQZeaNT.js +1 -0
  484. package/web-ui/build/static/stan-D5kYsid7.js +1 -0
  485. package/web-ui/build/static/stan-JSHToKMA.js +1 -0
  486. package/web-ui/build/static/stata-DRVhVjVb.js +1 -0
  487. package/web-ui/build/static/step21-C7h5ssgs.js +1 -0
  488. package/web-ui/build/static/stylus-BXIDNFUe.js +1 -0
  489. package/web-ui/build/static/stylus-CyMBrStz.js +1 -0
  490. package/web-ui/build/static/subunit-Lbpuvy4t.js +1 -0
  491. package/web-ui/build/static/swift-BCxWOc8n.js +1 -0
  492. package/web-ui/build/static/swift-B_YEL6eF.js +1 -0
  493. package/web-ui/build/static/systemd-_zWfs8U5.js +1 -0
  494. package/web-ui/build/static/t4-cs-BCiVX6dp.js +1 -0
  495. package/web-ui/build/static/t4-templating-CDm61rWh.js +1 -0
  496. package/web-ui/build/static/t4-vb-OO2oZZrL.js +1 -0
  497. package/web-ui/build/static/taggerscript-CkXxiITO.js +1 -0
  498. package/web-ui/build/static/tap-C612JPhJ.js +1 -0
  499. package/web-ui/build/static/tap-J-zR66jL.js +1 -0
  500. package/web-ui/build/static/tcl-DIGan5K8.js +1 -0
  501. package/web-ui/build/static/tcl-SFVWFwbb.js +1 -0
  502. package/web-ui/build/static/textile-D0WxA5g8.js +1 -0
  503. package/web-ui/build/static/thrift-jboo4tJl.js +1 -0
  504. package/web-ui/build/static/toml-DIK32ROb.js +1 -0
  505. package/web-ui/build/static/tp-Bhs1iGD3.js +1 -0
  506. package/web-ui/build/static/tremor-4d_juLiN.js +1 -0
  507. package/web-ui/build/static/tsx-hEN3qQzd.js +1 -0
  508. package/web-ui/build/static/tt2-WU6EuPNO.js +1 -0
  509. package/web-ui/build/static/turtle-CUM3xwNI.js +1 -0
  510. package/web-ui/build/static/twig-B9JwTKv9.js +1 -0
  511. package/web-ui/build/static/twig-Crv6BtK7.js +1 -0
  512. package/web-ui/build/static/typescript-BmabW_ur.js +1 -0
  513. package/web-ui/build/static/typescript-oMKx2dph.js +1 -0
  514. package/web-ui/build/static/typoscript-X48MNTeK.js +1 -0
  515. package/web-ui/build/static/unrealscript-qnu9Ogmz.js +1 -0
  516. package/web-ui/build/static/uorazor-BicTvjGt.js +1 -0
  517. package/web-ui/build/static/uri-CyRoMB-u.js +1 -0
  518. package/web-ui/build/static/v-BDM6ZJR7.js +1 -0
  519. package/web-ui/build/static/vala-BWCf7DTx.js +1 -0
  520. package/web-ui/build/static/vala-COL5roWV.js +1 -0
  521. package/web-ui/build/static/vbnet-BHPgkiip.js +1 -0
  522. package/web-ui/build/static/vbnet-BadWmTKs.js +1 -0
  523. package/web-ui/build/static/vbscript-BfUpIAaV.js +1 -0
  524. package/web-ui/build/static/vbscript-html-BBR6zcvV.js +1 -0
  525. package/web-ui/build/static/velocity-k4gGPuiP.js +1 -0
  526. package/web-ui/build/static/verilog-BoNroxW8.js +1 -0
  527. package/web-ui/build/static/verilog-C7cplLIi.js +1 -0
  528. package/web-ui/build/static/vhdl-BrKkx69g.js +1 -0
  529. package/web-ui/build/static/vhdl-CWacsAXR.js +1 -0
  530. package/web-ui/build/static/vim-BcdueaEC.js +1 -0
  531. package/web-ui/build/static/vim-BwsUolG_.js +1 -0
  532. package/web-ui/build/static/visual-basic-DTXlX5HN.js +1 -0
  533. package/web-ui/build/static/warpscript-2w0_2KsB.js +1 -0
  534. package/web-ui/build/static/wasm-BPaXQO-A.js +1 -0
  535. package/web-ui/build/static/web-idl-BoCTFQod.js +1 -0
  536. package/web-ui/build/static/wiki-BkkCi9wm.js +1 -0
  537. package/web-ui/build/static/wolfram-CvRNTaAX.js +1 -0
  538. package/web-ui/build/static/wren-Bz8Smtz-.js +1 -0
  539. package/web-ui/build/static/x86asm-BM83B0N_.js +1 -0
  540. package/web-ui/build/static/xeora-BjuDukl7.js +1 -0
  541. package/web-ui/build/static/xl-ByiuKWwm.js +1 -0
  542. package/web-ui/build/static/xml-Dut2p53G.js +1 -0
  543. package/web-ui/build/static/xml-doc-CxgwiuaA.js +1 -0
  544. package/web-ui/build/static/xojo-CBqUB8JI.js +1 -0
  545. package/web-ui/build/static/xquery-D-agM4jx.js +1 -0
  546. package/web-ui/build/static/xquery-DL_eetrQ.js +1 -0
  547. package/web-ui/build/static/yaml-DZ7HVZSe.js +1 -0
  548. package/web-ui/build/static/yaml-DatJAv7_.js +1 -0
  549. package/web-ui/build/static/yang-D0nrKE-r.js +1 -0
  550. package/web-ui/build/static/zephir--M2g15-k.js +1 -0
  551. package/web-ui/build/static/zig-CK6rUH8E.js +1 -0
  552. package/web-ui/build/static/1c-BoCdC5pC.js +0 -1
  553. package/web-ui/build/static/abap-D7A92M1K.js +0 -1
  554. package/web-ui/build/static/abnf-DIcpJ99N.js +0 -1
  555. package/web-ui/build/static/abnf-d4I9yABN.js +0 -1
  556. package/web-ui/build/static/accesslog-D_Ksv5Fi.js +0 -1
  557. package/web-ui/build/static/actionscript-CMJI1an7.js +0 -1
  558. package/web-ui/build/static/actionscript-CNcWu4a1.js +0 -1
  559. package/web-ui/build/static/ada-BIqOBKro.js +0 -1
  560. package/web-ui/build/static/ada-BaTkJMdz.js +0 -1
  561. package/web-ui/build/static/agda-DmRdGgvt.js +0 -1
  562. package/web-ui/build/static/al-g8BvIfOt.js +0 -1
  563. package/web-ui/build/static/angelscript-BGxc0B7l.js +0 -1
  564. package/web-ui/build/static/antlr4-Da7ff6-m.js +0 -1
  565. package/web-ui/build/static/apache-Bibp-dVJ.js +0 -1
  566. package/web-ui/build/static/apacheconf-VzeL8tYb.js +0 -1
  567. package/web-ui/build/static/apex-DUaOCea3.js +0 -1
  568. package/web-ui/build/static/apl-BpwvFE2V.js +0 -1
  569. package/web-ui/build/static/applescript-5YKSWwV1.js +0 -1
  570. package/web-ui/build/static/applescript-BHqj5bpe.js +0 -1
  571. package/web-ui/build/static/aql-B0Wx_3hH.js +0 -1
  572. package/web-ui/build/static/arcade-CR8KkII1.js +0 -1
  573. package/web-ui/build/static/arduino-CYx5u85C.js +0 -1
  574. package/web-ui/build/static/arduino-ClVU2zro.js +0 -1
  575. package/web-ui/build/static/arff-kutIH4CC.js +0 -1
  576. package/web-ui/build/static/armasm-DBm1lGrc.js +0 -1
  577. package/web-ui/build/static/asciidoc-Cl02VMGf.js +0 -1
  578. package/web-ui/build/static/asciidoc-MMFYRqre.js +0 -1
  579. package/web-ui/build/static/asm6502-DPVMGaHn.js +0 -1
  580. package/web-ui/build/static/asmatmel-Dz4vtZ11.js +0 -1
  581. package/web-ui/build/static/aspectj-BZidGBlr.js +0 -1
  582. package/web-ui/build/static/aspnet-C2mo9iee.js +0 -1
  583. package/web-ui/build/static/autohotkey-Bx83oFMW.js +0 -1
  584. package/web-ui/build/static/autohotkey-DciFl6K5.js +0 -1
  585. package/web-ui/build/static/autoit-TVKWI5bu.js +0 -1
  586. package/web-ui/build/static/autoit-oORW7mrd.js +0 -1
  587. package/web-ui/build/static/avisynth-D_5uOtxP.js +0 -1
  588. package/web-ui/build/static/avrasm-D22JmbLm.js +0 -1
  589. package/web-ui/build/static/avro-idl-CtTuANGZ.js +0 -1
  590. package/web-ui/build/static/awk-Bnez22eR.js +0 -1
  591. package/web-ui/build/static/axapta-eqcr7C2-.js +0 -1
  592. package/web-ui/build/static/bash-D3XWHCZZ.js +0 -1
  593. package/web-ui/build/static/bash-px0MqVxE.js +0 -1
  594. package/web-ui/build/static/basic-BWOdgKLg.js +0 -1
  595. package/web-ui/build/static/basic-C7PK4wVg.js +0 -1
  596. package/web-ui/build/static/batch-CFeuSY9D.js +0 -1
  597. package/web-ui/build/static/bbcode-CRC0UNOS.js +0 -1
  598. package/web-ui/build/static/bicep-C18w8d6Z.js +0 -1
  599. package/web-ui/build/static/birb-DPiF4fwX.js +0 -1
  600. package/web-ui/build/static/bison-C1RWPaLl.js +0 -1
  601. package/web-ui/build/static/bnf-BelSXhsr.js +0 -1
  602. package/web-ui/build/static/bnf-D_m4SZuc.js +0 -1
  603. package/web-ui/build/static/brainfuck-Ci7P0POq.js +0 -1
  604. package/web-ui/build/static/brainfuck-DIrW6_96.js +0 -1
  605. package/web-ui/build/static/brightscript-4XgpA0OQ.js +0 -1
  606. package/web-ui/build/static/bro-4kAMStb2.js +0 -1
  607. package/web-ui/build/static/bsl-CleVjH1I.js +0 -1
  608. package/web-ui/build/static/c-Ct3AAwH6.js +0 -1
  609. package/web-ui/build/static/c-EiJrAzIQ.js +0 -1
  610. package/web-ui/build/static/c-like-B361rHmz.js +0 -1
  611. package/web-ui/build/static/cal-BZ3Pr4JI.js +0 -1
  612. package/web-ui/build/static/capnproto-LmwOdJJp.js +0 -1
  613. package/web-ui/build/static/ceylon-CKAfIFzx.js +0 -1
  614. package/web-ui/build/static/cfscript-Cms4z16U.js +0 -1
  615. package/web-ui/build/static/chaiscript-DKxRiUyN.js +0 -1
  616. package/web-ui/build/static/cil-C6rGhwce.js +0 -1
  617. package/web-ui/build/static/clean-DmpXs6RN.js +0 -1
  618. package/web-ui/build/static/clojure-DRYxiF9s.js +0 -1
  619. package/web-ui/build/static/clojure-DTjXEJCq.js +0 -1
  620. package/web-ui/build/static/clojure-repl-C1qlAUnK.js +0 -1
  621. package/web-ui/build/static/cmake-DtUokafC.js +0 -1
  622. package/web-ui/build/static/cmake-_WqF1fG8.js +0 -1
  623. package/web-ui/build/static/cobol-D2Q0IMuT.js +0 -1
  624. package/web-ui/build/static/coffeescript-MRThzdTU.js +0 -1
  625. package/web-ui/build/static/coffeescript-OHOpkJvb.js +0 -1
  626. package/web-ui/build/static/concurnas-CVGat9IA.js +0 -1
  627. package/web-ui/build/static/coq-CB_bM4lt.js +0 -1
  628. package/web-ui/build/static/coq-WNK38Cqz.js +0 -1
  629. package/web-ui/build/static/cos-CNa5GVxa.js +0 -1
  630. package/web-ui/build/static/cpp-D-9lHx0_.js +0 -1
  631. package/web-ui/build/static/cpp-DRvL1yaA.js +0 -1
  632. package/web-ui/build/static/crmsh-evnPMxnd.js +0 -1
  633. package/web-ui/build/static/crystal-RGhNrgnC.js +0 -1
  634. package/web-ui/build/static/crystal-yrBjXjEh.js +0 -1
  635. package/web-ui/build/static/csharp-Dr7sLtl1.js +0 -1
  636. package/web-ui/build/static/csharp-zNVQxjuC.js +0 -1
  637. package/web-ui/build/static/cshtml-CoiK-7Bu.js +0 -1
  638. package/web-ui/build/static/csp-Bhgq86EB.js +0 -1
  639. package/web-ui/build/static/csp-C20UcGAL.js +0 -1
  640. package/web-ui/build/static/css-D1vlrRV2.js +0 -1
  641. package/web-ui/build/static/css-extras-DVSAYMbv.js +0 -1
  642. package/web-ui/build/static/csv-BgR9D8jG.js +0 -1
  643. package/web-ui/build/static/cypher-Dxehyj6Y.js +0 -1
  644. package/web-ui/build/static/d-B-Se39n2.js +0 -1
  645. package/web-ui/build/static/d-Cr4d56op.js +0 -1
  646. package/web-ui/build/static/dart-BBqlOFkR.js +0 -1
  647. package/web-ui/build/static/dart-GRD7MWem.js +0 -1
  648. package/web-ui/build/static/dataweave-BK-Tahkw.js +0 -1
  649. package/web-ui/build/static/dax-pTr9GVoe.js +0 -1
  650. package/web-ui/build/static/delphi-CbwSNmp4.js +0 -1
  651. package/web-ui/build/static/dhall-CuFqRXr6.js +0 -1
  652. package/web-ui/build/static/diff-CK8Fq88e.js +0 -1
  653. package/web-ui/build/static/diff-CWbUTU-C.js +0 -1
  654. package/web-ui/build/static/django-DWaEPdP6.js +0 -1
  655. package/web-ui/build/static/django-TkEFpAOO.js +0 -1
  656. package/web-ui/build/static/dns-DKpFJlA0.js +0 -1
  657. package/web-ui/build/static/dns-zone-file-BIsmZEMf.js +0 -1
  658. package/web-ui/build/static/docker-DUavAYf7.js +0 -1
  659. package/web-ui/build/static/dockerfile-YnavjTIo.js +0 -1
  660. package/web-ui/build/static/dos-Dv3Qr-Oo.js +0 -1
  661. package/web-ui/build/static/dot-BtIPbx7t.js +0 -1
  662. package/web-ui/build/static/dsconfig-CEgd9-kI.js +0 -1
  663. package/web-ui/build/static/dts-BztZn8T6.js +0 -1
  664. package/web-ui/build/static/dust-B-527Hc0.js +0 -1
  665. package/web-ui/build/static/ebnf-CH_nnNi5.js +0 -1
  666. package/web-ui/build/static/ebnf-CuBjcj0j.js +0 -1
  667. package/web-ui/build/static/editorconfig-CA9KaQ0w.js +0 -1
  668. package/web-ui/build/static/eiffel-DVYJwwQw.js +0 -1
  669. package/web-ui/build/static/ejs-C2LKgDYE.js +0 -1
  670. package/web-ui/build/static/elixir-DVXGkbnw.js +0 -1
  671. package/web-ui/build/static/elixir-meJ_qqx4.js +0 -1
  672. package/web-ui/build/static/elm-C5sYS5Cb.js +0 -1
  673. package/web-ui/build/static/elm-Dj443pWY.js +0 -1
  674. package/web-ui/build/static/erb-CAj5yksQ.js +0 -1
  675. package/web-ui/build/static/erb-CcUB2tMd.js +0 -1
  676. package/web-ui/build/static/erlang-JusKooAX.js +0 -1
  677. package/web-ui/build/static/erlang-repl-wYgxDX5h.js +0 -1
  678. package/web-ui/build/static/erlang-sn-PsrSf.js +0 -1
  679. package/web-ui/build/static/etlua-ChDwUxz6.js +0 -1
  680. package/web-ui/build/static/excel-BJux1m2h.js +0 -1
  681. package/web-ui/build/static/excel-formula-i5ByFxAu.js +0 -1
  682. package/web-ui/build/static/factor-CTutAp6r.js +0 -1
  683. package/web-ui/build/static/false-DQz_zYVV.js +0 -1
  684. package/web-ui/build/static/firestore-security-rules-DRGBNXh2.js +0 -1
  685. package/web-ui/build/static/fix-DeSUhixI.js +0 -1
  686. package/web-ui/build/static/flix-BKTJVua_.js +0 -1
  687. package/web-ui/build/static/flow-BpcZsNuo.js +0 -1
  688. package/web-ui/build/static/fortran-BZIKfBPW.js +0 -1
  689. package/web-ui/build/static/fortran-BdezWEh5.js +0 -1
  690. package/web-ui/build/static/fsharp-1Gpt8wZo.js +0 -1
  691. package/web-ui/build/static/fsharp-CMyiqXUW.js +0 -1
  692. package/web-ui/build/static/ftl-D9bBJMhV.js +0 -1
  693. package/web-ui/build/static/gams-DL57wTHN.js +0 -1
  694. package/web-ui/build/static/gap-DN4Uo9cF.js +0 -1
  695. package/web-ui/build/static/gauss-DTa1H0QR.js +0 -1
  696. package/web-ui/build/static/gcode-U5GhqE37.js +0 -1
  697. package/web-ui/build/static/gcode-s-E37fb4.js +0 -1
  698. package/web-ui/build/static/gdscript-DkjgGcDv.js +0 -1
  699. package/web-ui/build/static/gedcom-BbjSSId3.js +0 -1
  700. package/web-ui/build/static/gherkin-BwIzGx7J.js +0 -1
  701. package/web-ui/build/static/gherkin-C97W_9I9.js +0 -1
  702. package/web-ui/build/static/git-DO8dnOip.js +0 -1
  703. package/web-ui/build/static/glsl-B_4UD4-O.js +0 -1
  704. package/web-ui/build/static/glsl-CGSjLy2x.js +0 -1
  705. package/web-ui/build/static/gml-BiITg8HI.js +0 -1
  706. package/web-ui/build/static/gml-DInGU66p.js +0 -1
  707. package/web-ui/build/static/gn--m2IH4i3.js +0 -1
  708. package/web-ui/build/static/go-DOK7GAd-.js +0 -1
  709. package/web-ui/build/static/go-bof0B9jK.js +0 -1
  710. package/web-ui/build/static/go-module-CPIVqmnL.js +0 -1
  711. package/web-ui/build/static/golo-jgy07E43.js +0 -1
  712. package/web-ui/build/static/gradle-BISOF0nH.js +0 -1
  713. package/web-ui/build/static/graphql-FqlbDLTL.js +0 -1
  714. package/web-ui/build/static/groovy-BM0ZyW4a.js +0 -1
  715. package/web-ui/build/static/groovy-oUdbfbZY.js +0 -1
  716. package/web-ui/build/static/haml-C8Qg-VO5.js +0 -1
  717. package/web-ui/build/static/haml-Dse28pB_.js +0 -1
  718. package/web-ui/build/static/handlebars-CWT7WazY.js +0 -1
  719. package/web-ui/build/static/handlebars-Ow3joqOm.js +0 -1
  720. package/web-ui/build/static/haskell-BfraeRhd.js +0 -1
  721. package/web-ui/build/static/haskell-EhcU7sbn.js +0 -1
  722. package/web-ui/build/static/haxe-B8tUoExu.js +0 -1
  723. package/web-ui/build/static/haxe-D9WQHhTh.js +0 -1
  724. package/web-ui/build/static/hcl-CG3GCouf.js +0 -1
  725. package/web-ui/build/static/hlsl-CSWRMQ3m.js +0 -1
  726. package/web-ui/build/static/hoon-Cj0JdbFY.js +0 -1
  727. package/web-ui/build/static/hpkp-CmjdXbgl.js +0 -1
  728. package/web-ui/build/static/hsp-VaFZ7Rlv.js +0 -1
  729. package/web-ui/build/static/hsts-CkJ6UPzY.js +0 -1
  730. package/web-ui/build/static/htmlbars-pfHjYqd2.js +0 -1
  731. package/web-ui/build/static/http-2LA-qivJ.js +0 -1
  732. package/web-ui/build/static/http-CQ_5JSsj.js +0 -1
  733. package/web-ui/build/static/hy-C-Dll2MQ.js +0 -1
  734. package/web-ui/build/static/ichigojam-DecRewwq.js +0 -1
  735. package/web-ui/build/static/icon-CdnU9zPA.js +0 -1
  736. package/web-ui/build/static/icu-message-format-CUQtjk6Q.js +0 -1
  737. package/web-ui/build/static/idris-CRMftLq6.js +0 -1
  738. package/web-ui/build/static/iecst-CXhHqz1P.js +0 -1
  739. package/web-ui/build/static/ignore-_emqIx7v.js +0 -1
  740. package/web-ui/build/static/index-BBHrMvg7.js +0 -1216
  741. package/web-ui/build/static/index-ChkZR_aE.js +0 -13
  742. package/web-ui/build/static/index-DU4GNSOf.js +0 -1
  743. package/web-ui/build/static/index-_z8JjNrI.css +0 -1
  744. package/web-ui/build/static/inform7-CbqlFoFE.js +0 -1
  745. package/web-ui/build/static/inform7-TxZViMJ9.js +0 -1
  746. package/web-ui/build/static/ini-D1sHtm5e.js +0 -1
  747. package/web-ui/build/static/ini-DnqB7pfX.js +0 -1
  748. package/web-ui/build/static/io-MnQK1mM-.js +0 -1
  749. package/web-ui/build/static/irpf90-BRaAenqx.js +0 -1
  750. package/web-ui/build/static/isbl-kubGT4rM.js +0 -1
  751. package/web-ui/build/static/j-BIz9wT9q.js +0 -1
  752. package/web-ui/build/static/java-CbQmsHSK.js +0 -1
  753. package/web-ui/build/static/java-v1B9fNL2.js +0 -1
  754. package/web-ui/build/static/javadoc-TB1OtWS7.js +0 -1
  755. package/web-ui/build/static/javadoclike-BBQPwDAU.js +0 -1
  756. package/web-ui/build/static/javascript-DzNVL5l_.js +0 -1
  757. package/web-ui/build/static/javastacktrace-BduOgG1e.js +0 -1
  758. package/web-ui/build/static/jboss-cli-BcqzI366.js +0 -1
  759. package/web-ui/build/static/jexl-Boyapidr.js +0 -1
  760. package/web-ui/build/static/jolie-hEbkNpsb.js +0 -1
  761. package/web-ui/build/static/jq-ZyEE6oGU.js +0 -1
  762. package/web-ui/build/static/js-extras-CXOzvlL7.js +0 -1
  763. package/web-ui/build/static/js-templates-CkHsm5px.js +0 -1
  764. package/web-ui/build/static/jsdoc-Uk3hj8z2.js +0 -1
  765. package/web-ui/build/static/json-BFi9igjd.js +0 -1
  766. package/web-ui/build/static/json-LI9wtNaG.js +0 -1
  767. package/web-ui/build/static/json5-PwjNByuN.js +0 -1
  768. package/web-ui/build/static/jsonp-DpfGuNSW.js +0 -1
  769. package/web-ui/build/static/jsstacktrace-DhOP2AhS.js +0 -1
  770. package/web-ui/build/static/jsx-DmWoDk8F.js +0 -1
  771. package/web-ui/build/static/julia-DBC5h81N.js +0 -1
  772. package/web-ui/build/static/julia-Dh9sV3LX.js +0 -1
  773. package/web-ui/build/static/julia-repl-BYyDp1f4.js +0 -1
  774. package/web-ui/build/static/keepalived-BTxjrZMV.js +0 -1
  775. package/web-ui/build/static/keyman-IYiyCDCU.js +0 -1
  776. package/web-ui/build/static/kotlin-C0PBuzvy.js +0 -1
  777. package/web-ui/build/static/kotlin-LWYZUK_T.js +0 -1
  778. package/web-ui/build/static/kumir-CQIbnv9I.js +0 -1
  779. package/web-ui/build/static/kusto-DA7pQ-Rb.js +0 -1
  780. package/web-ui/build/static/lasso-CrHySbnC.js +0 -1
  781. package/web-ui/build/static/latex-CLSOFXG4.js +0 -1
  782. package/web-ui/build/static/latex-DYknD4Dx.js +0 -1
  783. package/web-ui/build/static/latte-4QvZcKVw.js +0 -1
  784. package/web-ui/build/static/ldif-Dr96BfRx.js +0 -1
  785. package/web-ui/build/static/leaf-C9qL2Qde.js +0 -1
  786. package/web-ui/build/static/less-DpoID9ZJ.js +0 -1
  787. package/web-ui/build/static/less-wO8QO0XW.js +0 -1
  788. package/web-ui/build/static/lilypond-CNp4Kb1P.js +0 -1
  789. package/web-ui/build/static/liquid-DLULQdgV.js +0 -1
  790. package/web-ui/build/static/lisp-CrVo-Llt.js +0 -1
  791. package/web-ui/build/static/lisp-QIAoXzmW.js +0 -1
  792. package/web-ui/build/static/livecodeserver-DrehOgbf.js +0 -1
  793. package/web-ui/build/static/livescript-Cm2Yp34x.js +0 -1
  794. package/web-ui/build/static/livescript-mVYzlrko.js +0 -1
  795. package/web-ui/build/static/llvm-D6KsQJjh.js +0 -1
  796. package/web-ui/build/static/llvm-DhIp1o-1.js +0 -1
  797. package/web-ui/build/static/log-Sj3ocpgB.js +0 -1
  798. package/web-ui/build/static/lolcode-BSeGnWYG.js +0 -1
  799. package/web-ui/build/static/lsl-DwgUIp0U.js +0 -1
  800. package/web-ui/build/static/lua-B7Ot0Oou.js +0 -1
  801. package/web-ui/build/static/lua-zydwn5-S.js +0 -1
  802. package/web-ui/build/static/magma-Dgfy2Qny.js +0 -1
  803. package/web-ui/build/static/makefile-CSjtzdcw.js +0 -1
  804. package/web-ui/build/static/makefile-DrnEneus.js +0 -1
  805. package/web-ui/build/static/markdown-D9Ke3tYA.js +0 -1
  806. package/web-ui/build/static/markdown-DmwKuI2Y.js +0 -1
  807. package/web-ui/build/static/markup-templating-CikqfHT9.js +0 -1
  808. package/web-ui/build/static/mathematica-OC0imzI5.js +0 -1
  809. package/web-ui/build/static/matlab-BlPcqzRw.js +0 -1
  810. package/web-ui/build/static/matlab-C1iteCkE.js +0 -1
  811. package/web-ui/build/static/maxima-DecbOh0Y.js +0 -1
  812. package/web-ui/build/static/maxscript-80cPuIOA.js +0 -1
  813. package/web-ui/build/static/mel-NI7ysGX2.js +0 -1
  814. package/web-ui/build/static/mel-r03p1eJo.js +0 -1
  815. package/web-ui/build/static/mercury-BdNZw6ZU.js +0 -1
  816. package/web-ui/build/static/mermaid-C1LB7zMJ.js +0 -1
  817. package/web-ui/build/static/mipsasm-BnZ0cdht.js +0 -1
  818. package/web-ui/build/static/mizar-BGPNX3WQ.js +0 -1
  819. package/web-ui/build/static/mizar-CswPcmcG.js +0 -1
  820. package/web-ui/build/static/mojolicious-rRtgy8Or.js +0 -1
  821. package/web-ui/build/static/mongodb-CJU0oeix.js +0 -1
  822. package/web-ui/build/static/monkey-Bj0HaV5-.js +0 -1
  823. package/web-ui/build/static/monkey-JRYuMIYc.js +0 -1
  824. package/web-ui/build/static/moonscript-i7e8bkxZ.js +0 -1
  825. package/web-ui/build/static/moonscript-ldoM156V.js +0 -1
  826. package/web-ui/build/static/n1ql-C0xs8qWA.js +0 -1
  827. package/web-ui/build/static/n1ql-DlC-GlVq.js +0 -1
  828. package/web-ui/build/static/n4js-mIwtIanO.js +0 -1
  829. package/web-ui/build/static/nand2tetris-hdl-mfHIYPZD.js +0 -1
  830. package/web-ui/build/static/naniscript-DiDayxx1.js +0 -1
  831. package/web-ui/build/static/nasm-7uf2nfNC.js +0 -1
  832. package/web-ui/build/static/neon-BKgOgIAL.js +0 -1
  833. package/web-ui/build/static/nevod-BlujoQ5k.js +0 -1
  834. package/web-ui/build/static/nginx-Bb57ubp_.js +0 -1
  835. package/web-ui/build/static/nginx-DmLU0URp.js +0 -1
  836. package/web-ui/build/static/nim-CmnPRTHF.js +0 -1
  837. package/web-ui/build/static/nim-DOReB32c.js +0 -1
  838. package/web-ui/build/static/nix-BDMn1sgi.js +0 -1
  839. package/web-ui/build/static/nix-LTHuFEfQ.js +0 -1
  840. package/web-ui/build/static/node-repl-dxwu8SWp.js +0 -1
  841. package/web-ui/build/static/nsis-CKD0KqBT.js +0 -1
  842. package/web-ui/build/static/nsis-IlSwBUak.js +0 -1
  843. package/web-ui/build/static/objectivec-D4Lo30HV.js +0 -1
  844. package/web-ui/build/static/objectivec-zmGGqvoM.js +0 -1
  845. package/web-ui/build/static/ocaml-2uzfqAr8.js +0 -1
  846. package/web-ui/build/static/ocaml-wF6lV9H4.js +0 -1
  847. package/web-ui/build/static/opencl-B82Xjnw5.js +0 -1
  848. package/web-ui/build/static/openqasm-VzVaHpAP.js +0 -1
  849. package/web-ui/build/static/openscad-B-qK1VfW.js +0 -1
  850. package/web-ui/build/static/oxygene-BNTVgbsA.js +0 -1
  851. package/web-ui/build/static/oz-5ZfXBXQY.js +0 -1
  852. package/web-ui/build/static/parigp-S8JhoJoz.js +0 -1
  853. package/web-ui/build/static/parser-BZPtbLcv.js +0 -1
  854. package/web-ui/build/static/parser3-BZRLDHuv.js +0 -1
  855. package/web-ui/build/static/pascal-GKzqT2Ku.js +0 -1
  856. package/web-ui/build/static/pascaligo-DnbFz_mr.js +0 -1
  857. package/web-ui/build/static/pcaxis-DiRsos26.js +0 -1
  858. package/web-ui/build/static/peoplecode-CMDLbqGB.js +0 -1
  859. package/web-ui/build/static/perl-BOnBAciC.js +0 -1
  860. package/web-ui/build/static/perl-fMVLgVTb.js +0 -1
  861. package/web-ui/build/static/pf-z6xsHHPS.js +0 -1
  862. package/web-ui/build/static/pgsql-5jHAyGJf.js +0 -1
  863. package/web-ui/build/static/php-CbG6Jq36.js +0 -1
  864. package/web-ui/build/static/php-D9yyh70o.js +0 -1
  865. package/web-ui/build/static/php-extras-CQKSwnMo.js +0 -1
  866. package/web-ui/build/static/php-template-Ch4UQhUx.js +0 -1
  867. package/web-ui/build/static/phpdoc-Be7TYcGQ.js +0 -1
  868. package/web-ui/build/static/plaintext-BsYjBqDy.js +0 -1
  869. package/web-ui/build/static/plsql-Dc4ePipN.js +0 -1
  870. package/web-ui/build/static/pony-Cen7DtWb.js +0 -1
  871. package/web-ui/build/static/powerquery-BIOJ1eUE.js +0 -1
  872. package/web-ui/build/static/powershell-CbEjJpj7.js +0 -1
  873. package/web-ui/build/static/powershell-DlceT0ds.js +0 -1
  874. package/web-ui/build/static/processing-C9GaKPU-.js +0 -1
  875. package/web-ui/build/static/processing-CTPA3QIV.js +0 -1
  876. package/web-ui/build/static/profile-CHjz016L.js +0 -1
  877. package/web-ui/build/static/prolog-BK0g5F4c.js +0 -1
  878. package/web-ui/build/static/prolog-DrrwUODp.js +0 -1
  879. package/web-ui/build/static/promql-DftRCUlR.js +0 -1
  880. package/web-ui/build/static/properties-B122hwLT.js +0 -1
  881. package/web-ui/build/static/properties-C0m3XIaN.js +0 -1
  882. package/web-ui/build/static/protobuf-CanIoKel.js +0 -1
  883. package/web-ui/build/static/protobuf-WvDgzNtD.js +0 -1
  884. package/web-ui/build/static/psl-JsKwhg_r.js +0 -1
  885. package/web-ui/build/static/pug-DoQaiAyU.js +0 -1
  886. package/web-ui/build/static/puppet-CoRftQQB.js +0 -1
  887. package/web-ui/build/static/puppet-DHgjsvQ8.js +0 -1
  888. package/web-ui/build/static/pure-BgZIQeOr.js +0 -1
  889. package/web-ui/build/static/purebasic-BRYfIFBb.js +0 -1
  890. package/web-ui/build/static/purebasic-DxXSa8gN.js +0 -1
  891. package/web-ui/build/static/purescript-ChvJvUnk.js +0 -1
  892. package/web-ui/build/static/python-DqhW0V3z.js +0 -1
  893. package/web-ui/build/static/python-Dz2FyIQx.js +0 -1
  894. package/web-ui/build/static/python-repl-Cl3mEb2H.js +0 -1
  895. package/web-ui/build/static/q-Bg4mQWXp.js +0 -1
  896. package/web-ui/build/static/q-DwaQK_1p.js +0 -1
  897. package/web-ui/build/static/qml-D1-fdJvp.js +0 -1
  898. package/web-ui/build/static/qml-DFsoiY0T.js +0 -1
  899. package/web-ui/build/static/qore-DdEtFSV5.js +0 -1
  900. package/web-ui/build/static/qsharp-B_A0OUBX.js +0 -1
  901. package/web-ui/build/static/r-C3M2HrKx.js +0 -1
  902. package/web-ui/build/static/r-_EUAt74Q.js +0 -1
  903. package/web-ui/build/static/racket-B3uAs3VE.js +0 -1
  904. package/web-ui/build/static/reason-CyAzPvNW.js +0 -1
  905. package/web-ui/build/static/reasonml-iEzx6ejF.js +0 -1
  906. package/web-ui/build/static/regex-suWqSnRa.js +0 -1
  907. package/web-ui/build/static/rego-QeDW60Lx.js +0 -1
  908. package/web-ui/build/static/renpy-03fEqIYK.js +0 -1
  909. package/web-ui/build/static/rest-BRJIE-UZ.js +0 -1
  910. package/web-ui/build/static/rib-DOI_C8C9.js +0 -1
  911. package/web-ui/build/static/rip-BaEBdknp.js +0 -1
  912. package/web-ui/build/static/roboconf-DC8IQe4Z.js +0 -1
  913. package/web-ui/build/static/roboconf-jTu2wKoD.js +0 -1
  914. package/web-ui/build/static/robotframework-BFp2sQG2.js +0 -1
  915. package/web-ui/build/static/routeros-Br-GCWs7.js +0 -1
  916. package/web-ui/build/static/rsl-BpWeUJqw.js +0 -1
  917. package/web-ui/build/static/ruby-C3nnVoGq.js +0 -1
  918. package/web-ui/build/static/ruby-DD90V5PL.js +0 -1
  919. package/web-ui/build/static/ruleslanguage-BflyDdqj.js +0 -1
  920. package/web-ui/build/static/rust-DtiFFJtC.js +0 -1
  921. package/web-ui/build/static/rust-uJHZCfXQ.js +0 -1
  922. package/web-ui/build/static/sas-DUr8rIBf.js +0 -1
  923. package/web-ui/build/static/sas-POH3vAEy.js +0 -1
  924. package/web-ui/build/static/sass-D1oLbZQ0.js +0 -1
  925. package/web-ui/build/static/scala-CDtrRn0l.js +0 -1
  926. package/web-ui/build/static/scala-VCIKIldH.js +0 -1
  927. package/web-ui/build/static/scheme-CAWHx2Oj.js +0 -1
  928. package/web-ui/build/static/scheme-DzKv24tn.js +0 -1
  929. package/web-ui/build/static/scilab-DuxpEvzV.js +0 -1
  930. package/web-ui/build/static/scss-BKd4Y-UF.js +0 -1
  931. package/web-ui/build/static/scss-BpqUKxry.js +0 -1
  932. package/web-ui/build/static/shell-session-CglnRr2l.js +0 -1
  933. package/web-ui/build/static/shell-u-Y3PKLQ.js +0 -1
  934. package/web-ui/build/static/smali-D308KWif.js +0 -1
  935. package/web-ui/build/static/smali-DYT-jHPu.js +0 -1
  936. package/web-ui/build/static/smalltalk-BLYA-Ag1.js +0 -1
  937. package/web-ui/build/static/smalltalk-BdMVmgN0.js +0 -1
  938. package/web-ui/build/static/smarty-DUYgBrje.js +0 -1
  939. package/web-ui/build/static/sml-EEhIaAvM.js +0 -1
  940. package/web-ui/build/static/sml-bQ27koeV.js +0 -1
  941. package/web-ui/build/static/solidity-U7x7-dFr.js +0 -1
  942. package/web-ui/build/static/solution-file-Cr03jaqW.js +0 -1
  943. package/web-ui/build/static/soy-lnGOhaRM.js +0 -1
  944. package/web-ui/build/static/sparql-BRm44B1P.js +0 -1
  945. package/web-ui/build/static/splunk-spl-DdrdBOQJ.js +0 -1
  946. package/web-ui/build/static/sqf-CDtvZjid.js +0 -1
  947. package/web-ui/build/static/sqf-wr3PtKhW.js +0 -1
  948. package/web-ui/build/static/sql-B1-8AkNe.js +0 -1
  949. package/web-ui/build/static/sql-zWEK1lPB.js +0 -1
  950. package/web-ui/build/static/sql_more-Ck0DuSs3.js +0 -1
  951. package/web-ui/build/static/squirrel-CfQEIe5h.js +0 -1
  952. package/web-ui/build/static/stan-BM1Wilpj.js +0 -1
  953. package/web-ui/build/static/stan-DFPCSU1l.js +0 -1
  954. package/web-ui/build/static/stata-BJ-qKfEg.js +0 -1
  955. package/web-ui/build/static/step21-fPKcuR3s.js +0 -1
  956. package/web-ui/build/static/stylus-BhqK2C03.js +0 -1
  957. package/web-ui/build/static/stylus-BxloRYSO.js +0 -1
  958. package/web-ui/build/static/subunit-CueM7bOY.js +0 -1
  959. package/web-ui/build/static/swift-CPgZZ0ja.js +0 -1
  960. package/web-ui/build/static/swift-CsEMsJ7g.js +0 -1
  961. package/web-ui/build/static/systemd-B1Wwkby4.js +0 -1
  962. package/web-ui/build/static/t4-cs-CL3Ca0dW.js +0 -1
  963. package/web-ui/build/static/t4-templating-BoV5iKxA.js +0 -1
  964. package/web-ui/build/static/t4-vb-BKXXzk5n.js +0 -1
  965. package/web-ui/build/static/taggerscript-aJQMdfVb.js +0 -1
  966. package/web-ui/build/static/tap-BBfQFbbW.js +0 -1
  967. package/web-ui/build/static/tap-CmCrAtSH.js +0 -1
  968. package/web-ui/build/static/tcl-B8xfoxf8.js +0 -1
  969. package/web-ui/build/static/tcl-CPzoU-PX.js +0 -1
  970. package/web-ui/build/static/textile-B99mXtsV.js +0 -1
  971. package/web-ui/build/static/thrift-Cd40Ii7J.js +0 -1
  972. package/web-ui/build/static/toml-DV5wxyQS.js +0 -1
  973. package/web-ui/build/static/tp-o2VorAT6.js +0 -1
  974. package/web-ui/build/static/tremor-Cs0K_i4_.js +0 -1
  975. package/web-ui/build/static/tsx-KG-mQur8.js +0 -1
  976. package/web-ui/build/static/tt2-M3GHOvjN.js +0 -1
  977. package/web-ui/build/static/turtle-D6o0UODZ.js +0 -1
  978. package/web-ui/build/static/twig-D7LOxPkH.js +0 -1
  979. package/web-ui/build/static/twig-SHSTj-jA.js +0 -1
  980. package/web-ui/build/static/typescript-BeIk_BLV.js +0 -1
  981. package/web-ui/build/static/typescript-Btz-ypJW.js +0 -1
  982. package/web-ui/build/static/typoscript-7jDBTKMM.js +0 -1
  983. package/web-ui/build/static/unrealscript-f2f2MAJa.js +0 -1
  984. package/web-ui/build/static/uorazor-c5VZAS6K.js +0 -1
  985. package/web-ui/build/static/uri-DY2cDkq-.js +0 -1
  986. package/web-ui/build/static/v-6ffK7TKq.js +0 -1
  987. package/web-ui/build/static/vala-BgOkjEeg.js +0 -1
  988. package/web-ui/build/static/vala-BvuDZGU_.js +0 -1
  989. package/web-ui/build/static/vbnet-Bdh9clH3.js +0 -1
  990. package/web-ui/build/static/vbnet-CDpcSndL.js +0 -1
  991. package/web-ui/build/static/vbscript-dH3gn1bx.js +0 -1
  992. package/web-ui/build/static/vbscript-html-a_tIfb0-.js +0 -1
  993. package/web-ui/build/static/velocity-DGDKyukB.js +0 -1
  994. package/web-ui/build/static/verilog-CtJaE20M.js +0 -1
  995. package/web-ui/build/static/verilog-CvdiugJe.js +0 -1
  996. package/web-ui/build/static/vhdl-CN1nxPYJ.js +0 -1
  997. package/web-ui/build/static/vhdl-JtjHb_oM.js +0 -1
  998. package/web-ui/build/static/vim-DBRKYGcU.js +0 -1
  999. package/web-ui/build/static/vim-DQiU261H.js +0 -1
  1000. package/web-ui/build/static/visual-basic-D_daebxW.js +0 -1
  1001. package/web-ui/build/static/warpscript-B4PIoyZp.js +0 -1
  1002. package/web-ui/build/static/wasm-D6_O5K2p.js +0 -1
  1003. package/web-ui/build/static/web-idl-D7BDrII0.js +0 -1
  1004. package/web-ui/build/static/wiki-D-bqO098.js +0 -1
  1005. package/web-ui/build/static/wolfram-NnogXigM.js +0 -1
  1006. package/web-ui/build/static/wren-DwgJaCDU.js +0 -1
  1007. package/web-ui/build/static/x86asm-B9-C3MH5.js +0 -1
  1008. package/web-ui/build/static/xeora-wudvnBkY.js +0 -1
  1009. package/web-ui/build/static/xl-BeBZDETk.js +0 -1
  1010. package/web-ui/build/static/xml-DgNmhWin.js +0 -1
  1011. package/web-ui/build/static/xml-doc-B2RShOT5.js +0 -1
  1012. package/web-ui/build/static/xojo-C0HF7CVl.js +0 -1
  1013. package/web-ui/build/static/xquery-CMss7jIw.js +0 -1
  1014. package/web-ui/build/static/xquery-Dy1YImWg.js +0 -1
  1015. package/web-ui/build/static/yaml--7oDAAKr.js +0 -1
  1016. package/web-ui/build/static/yaml-1-HThDJz.js +0 -1
  1017. package/web-ui/build/static/yang-CxleyLxS.js +0 -1
  1018. package/web-ui/build/static/zephir-B7LMkND2.js +0 -1
  1019. package/web-ui/build/static/zig-DST87v3k.js +0 -1
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * openai-embeddings.mjs — real-network verifier for the direct-to-OpenAI
4
+ * (BYOK) provider (i.e. `provider: "openai"`).
5
+ *
6
+ * WHY THIS LIVES OUTSIDE JEST
7
+ *
8
+ * `openaiProvider.test.js` uses an injected `fetchImpl` and verifies
9
+ * request shape + parse logic. That doesn't tell you anything about:
10
+ * - Whether the OpenAI key actually has embeddings access.
11
+ * - Whether the live endpoint returns the dimensions our client expects.
12
+ * - Whether rate-limit / auth failures surface correctly.
13
+ *
14
+ * This script exercises the same code path the production runtime does,
15
+ * against api.openai.com (or a configured OpenAI-compat proxy URL).
16
+ *
17
+ * REQUIRED ENV
18
+ *
19
+ * LOXIA_OPENAI_API_KEY the OpenAI key (or proxy key for compat layers).
20
+ *
21
+ * OPTIONAL ENV
22
+ *
23
+ * LOXIA_OPENAI_URL override endpoint (for DeepInfra, Together,
24
+ * or other OpenAI-compat layers). Default:
25
+ * https://api.openai.com/v1/embeddings
26
+ * LOXIA_OPENAI_MODEL_ID default text-embedding-3-small
27
+ * LOXIA_OPENAI_DIMS declared dimensions (default 1536; use 3072 for
28
+ * text-embedding-3-large)
29
+ *
30
+ * RUN
31
+ *
32
+ * npm run verify:openai-embeddings
33
+ *
34
+ * Exit codes:
35
+ * 0 all checks passed
36
+ * 1 one or more checks failed
37
+ * 2 required env not set (intentional non-zero so CI can't silently
38
+ * skip the verification by forgetting the secret).
39
+ */
40
+
41
+ import { OpenAIEmbeddingProvider } from '../../src/services/embeddings/providers/openaiProvider.js';
42
+
43
+ const apiKey = process.env.LOXIA_OPENAI_API_KEY;
44
+ const url = process.env.LOXIA_OPENAI_URL || 'https://api.openai.com/v1/embeddings';
45
+ const modelId = process.env.LOXIA_OPENAI_MODEL_ID || 'text-embedding-3-small';
46
+ const dims = Number(process.env.LOXIA_OPENAI_DIMS || 1536);
47
+
48
+ console.log('OpenAI direct (BYOK) embeddings real-network verifier');
49
+ if (!apiKey) {
50
+ console.error('');
51
+ console.error('SKIP: required env vars not set.');
52
+ console.error(' LOXIA_OPENAI_API_KEY: MISSING');
53
+ console.error('');
54
+ console.error('CI must either configure this secret and re-run, or');
55
+ console.error('explicitly skip this step (and accept the coverage gap).');
56
+ process.exit(2);
57
+ }
58
+
59
+ console.log(`Endpoint: ${url}`);
60
+ console.log(`Model: ${modelId}`);
61
+ console.log(`Dimensions: ${dims}`);
62
+ console.log('');
63
+
64
+ const results = [];
65
+ let failures = 0;
66
+
67
+ function check(name, fn) {
68
+ return (async () => {
69
+ const t0 = Date.now();
70
+ try {
71
+ await fn();
72
+ const ms = Date.now() - t0;
73
+ results.push({ name, ok: true, ms });
74
+ console.log(` ✔ ${name} (${ms}ms)`);
75
+ } catch (err) {
76
+ failures++;
77
+ const ms = Date.now() - t0;
78
+ results.push({ name, ok: false, ms, err: err?.message });
79
+ console.error(` ✗ ${name} (${ms}ms)`);
80
+ console.error(` ${err?.stack || err}`);
81
+ }
82
+ })();
83
+ }
84
+
85
+ function dot(a, b) {
86
+ let s = 0;
87
+ for (let i = 0; i < a.length; i++) s += a[i] * b[i];
88
+ return s;
89
+ }
90
+
91
+ const provider = new OpenAIEmbeddingProvider({
92
+ getApiKey: () => apiKey,
93
+ url,
94
+ modelId,
95
+ dimensions: dims,
96
+ });
97
+
98
+ await check('single embedQuery returns Float32Array of declared dim', async () => {
99
+ const vec = await provider.embedQuery('hello world');
100
+ if (!(vec instanceof Float32Array)) throw new Error('not a Float32Array');
101
+ if (vec.length !== dims) {
102
+ throw new Error(`endpoint returned ${vec.length}d but client declared ${dims}d`);
103
+ }
104
+ let sum = 0;
105
+ for (let i = 0; i < vec.length; i++) sum += vec[i] * vec[i];
106
+ const mag = Math.sqrt(sum);
107
+ if (Math.abs(mag - 1) > 1e-3) throw new Error(`magnitude=${mag.toFixed(6)} (expected ≈1)`);
108
+ });
109
+
110
+ await check('batch embedDocuments returns one vector per input', async () => {
111
+ const inputs = ['retry logic', 'rate limiting', 'circuit breakers'];
112
+ const vecs = await provider.embedDocuments(inputs);
113
+ if (!Array.isArray(vecs)) throw new Error('not an array');
114
+ if (vecs.length !== inputs.length) throw new Error(`got ${vecs.length} vectors for ${inputs.length} inputs`);
115
+ for (let i = 0; i < vecs.length; i++) {
116
+ if (!(vecs[i] instanceof Float32Array)) throw new Error(`vec[${i}] not Float32Array`);
117
+ if (vecs[i].length !== dims) throw new Error(`vec[${i}].length=${vecs[i].length}, expected ${dims}`);
118
+ }
119
+ });
120
+
121
+ await check('cosine similarity is semantically meaningful', async () => {
122
+ const seed = await provider.embedQuery('how do I throttle rate-limited API requests?');
123
+ const paraphrase = await provider.embedQuery('handling rate limits in HTTP API clients');
124
+ const unrelated = await provider.embedQuery('recipe for chocolate chip cookies');
125
+ const sp = dot(seed, paraphrase);
126
+ const su = dot(seed, unrelated);
127
+ if (sp <= su) throw new Error(`paraphrase(${sp.toFixed(3)}) ≤ unrelated(${su.toFixed(3)})`);
128
+ if ((sp - su) <= 0.03) throw new Error(`gap=${(sp - su).toFixed(3)} too small (expected >0.03)`);
129
+ });
130
+
131
+ await check('provider.health reports ok', async () => {
132
+ const h = await provider.health();
133
+ if (!h.ok) throw new Error(`health.ok=${h.ok} (${h.reason || 'no reason'})`);
134
+ });
135
+
136
+ console.log('');
137
+ const passed = results.filter(r => r.ok).length;
138
+ const total = results.length;
139
+ console.log(`${failures === 0 ? 'PASS' : 'FAIL'}: ${passed}/${total} checks passed`);
140
+ process.exit(failures === 0 ? 0 : 1);
@@ -0,0 +1,215 @@
1
+ /**
2
+ * agentScheduler — auto-recall injection wiring (Phase 6d.2).
3
+ *
4
+ * The auto-recall primitive + the aiService.augmentSystemPrompt helper
5
+ * are tested elsewhere (autoRecall.test.js, aiService.embed.test.js).
6
+ * This suite pins the WIRING contract: the scheduler calls the helper
7
+ * with the right arguments under the right conditions, and never lets
8
+ * a failure block the turn.
9
+ *
10
+ * Pins:
11
+ * - Fires when memory capability is present AND lastUserMsg has content.
12
+ * - Skipped when memory capability is absent (no point).
13
+ * - Skipped when there's no user message (e.g. an agent-initiated turn).
14
+ * - Skipped when augmentSystemPrompt is undefined (older aiService builds).
15
+ * - Errors from augmentSystemPrompt are swallowed; the turn continues
16
+ * with the un-augmented prompt.
17
+ * - The augmented prompt is what reaches aiService.sendMessage.
18
+ *
19
+ * Strategy: build a minimal "scheduler-shaped" object with just the
20
+ * methods we need, then call into the same code path. Avoids dragging
21
+ * the full constructor + every dependency into the test.
22
+ */
23
+
24
+ import { describe, test, expect, jest, beforeEach } from '@jest/globals';
25
+
26
+ /**
27
+ * The auto-recall wiring lives inside _getAIResponse-adjacent code in
28
+ * agentScheduler. Rather than firing the whole scheduler, we extract
29
+ * the wiring into a tiny reusable helper here that mirrors EXACTLY the
30
+ * shape inserted in the scheduler. The contract is identical:
31
+ * if agent has 'memory' capability AND aiService.augmentSystemPrompt
32
+ * AND there's a non-empty lastUserMsg.content → call the helper.
33
+ *
34
+ * This is a "shape-match" test: it catches regressions on the gating
35
+ * logic + argument passing without coupling to the whole scheduler.
36
+ */
37
+ async function runAutoRecallStep({
38
+ agent,
39
+ conversationHistory,
40
+ aiService,
41
+ logger,
42
+ enhancedSystemPrompt,
43
+ }) {
44
+ const lastUserMsg = [...conversationHistory].reverse().find(m => m.role === 'user');
45
+ if (
46
+ Array.isArray(agent.capabilities) &&
47
+ agent.capabilities.includes('memory') &&
48
+ typeof aiService?.augmentSystemPrompt === 'function'
49
+ ) {
50
+ try {
51
+ const recentText = typeof lastUserMsg?.content === 'string' ? lastUserMsg.content : '';
52
+ if (recentText) {
53
+ enhancedSystemPrompt = await aiService.augmentSystemPrompt(
54
+ enhancedSystemPrompt, agent.id, recentText,
55
+ );
56
+ }
57
+ } catch (err) {
58
+ logger.warn?.(`Auto-recall injection failed for agent ${agent.id} (continuing without)`, {
59
+ error: err?.message,
60
+ });
61
+ }
62
+ }
63
+ return enhancedSystemPrompt;
64
+ }
65
+
66
+ function makeLogger() {
67
+ return { warn: jest.fn(), info: jest.fn(), error: jest.fn(), debug: jest.fn() };
68
+ }
69
+
70
+ describe('agentScheduler — auto-recall wiring (Phase 6d.2)', () => {
71
+ let aiService, logger;
72
+
73
+ beforeEach(() => {
74
+ aiService = {
75
+ augmentSystemPrompt: jest.fn(async (prompt) => prompt + '\n\n## RELEVANT CONTEXT (auto-recalled)\n\nmocked'),
76
+ };
77
+ logger = makeLogger();
78
+ });
79
+
80
+ test('fires when memory capability + user message + helper are all present', async () => {
81
+ const out = await runAutoRecallStep({
82
+ agent: { id: 'a1', capabilities: ['memory', 'terminal'] },
83
+ conversationHistory: [
84
+ { role: 'system', content: 'sys' },
85
+ { role: 'user', content: 'how do we throttle telegram?' },
86
+ ],
87
+ aiService, logger,
88
+ enhancedSystemPrompt: 'BASE',
89
+ });
90
+ expect(aiService.augmentSystemPrompt).toHaveBeenCalledTimes(1);
91
+ expect(aiService.augmentSystemPrompt).toHaveBeenCalledWith(
92
+ 'BASE',
93
+ 'a1',
94
+ 'how do we throttle telegram?',
95
+ );
96
+ expect(out).toContain('## RELEVANT CONTEXT (auto-recalled)');
97
+ });
98
+
99
+ test('uses the MOST RECENT user message (not an older one)', async () => {
100
+ await runAutoRecallStep({
101
+ agent: { id: 'a1', capabilities: ['memory'] },
102
+ conversationHistory: [
103
+ { role: 'user', content: 'first question' },
104
+ { role: 'assistant', content: 'first answer' },
105
+ { role: 'user', content: 'second question' },
106
+ { role: 'assistant', content: 'second answer' },
107
+ { role: 'user', content: 'latest question' },
108
+ ],
109
+ aiService, logger,
110
+ enhancedSystemPrompt: 'BASE',
111
+ });
112
+ expect(aiService.augmentSystemPrompt).toHaveBeenCalledWith(
113
+ 'BASE', 'a1', 'latest question',
114
+ );
115
+ });
116
+
117
+ test('skipped when agent lacks memory capability', async () => {
118
+ const out = await runAutoRecallStep({
119
+ agent: { id: 'a1', capabilities: ['terminal'] }, // no memory
120
+ conversationHistory: [{ role: 'user', content: 'hi' }],
121
+ aiService, logger,
122
+ enhancedSystemPrompt: 'BASE',
123
+ });
124
+ expect(aiService.augmentSystemPrompt).not.toHaveBeenCalled();
125
+ expect(out).toBe('BASE'); // unchanged
126
+ });
127
+
128
+ test('skipped when capabilities is missing or non-array', async () => {
129
+ for (const caps of [undefined, null, 'memory', 42]) {
130
+ aiService.augmentSystemPrompt.mockClear();
131
+ const out = await runAutoRecallStep({
132
+ agent: { id: 'a1', capabilities: caps },
133
+ conversationHistory: [{ role: 'user', content: 'hi' }],
134
+ aiService, logger,
135
+ enhancedSystemPrompt: 'BASE',
136
+ });
137
+ expect(aiService.augmentSystemPrompt).not.toHaveBeenCalled();
138
+ expect(out).toBe('BASE');
139
+ }
140
+ });
141
+
142
+ test('skipped when there is no user message at all', async () => {
143
+ const out = await runAutoRecallStep({
144
+ agent: { id: 'a1', capabilities: ['memory'] },
145
+ conversationHistory: [{ role: 'system', content: 'sys' }], // no user msg
146
+ aiService, logger,
147
+ enhancedSystemPrompt: 'BASE',
148
+ });
149
+ expect(aiService.augmentSystemPrompt).not.toHaveBeenCalled();
150
+ expect(out).toBe('BASE');
151
+ });
152
+
153
+ test('skipped when the latest user message has empty content', async () => {
154
+ const out = await runAutoRecallStep({
155
+ agent: { id: 'a1', capabilities: ['memory'] },
156
+ conversationHistory: [{ role: 'user', content: '' }],
157
+ aiService, logger,
158
+ enhancedSystemPrompt: 'BASE',
159
+ });
160
+ expect(aiService.augmentSystemPrompt).not.toHaveBeenCalled();
161
+ expect(out).toBe('BASE');
162
+ });
163
+
164
+ test('skipped when user message content is non-string (array form)', async () => {
165
+ // Some history entries have content as [{type:'text', text:'...'}]. The
166
+ // wiring intentionally requires plain string content — array form is
167
+ // handled by the embedding service\'s own packing if it gets there.
168
+ const out = await runAutoRecallStep({
169
+ agent: { id: 'a1', capabilities: ['memory'] },
170
+ conversationHistory: [{ role: 'user', content: [{ type: 'text', text: 'array form' }] }],
171
+ aiService, logger,
172
+ enhancedSystemPrompt: 'BASE',
173
+ });
174
+ expect(aiService.augmentSystemPrompt).not.toHaveBeenCalled();
175
+ expect(out).toBe('BASE');
176
+ });
177
+
178
+ test('older aiService without augmentSystemPrompt → no-op (forward-compat)', async () => {
179
+ const oldService = {}; // no augmentSystemPrompt at all
180
+ const out = await runAutoRecallStep({
181
+ agent: { id: 'a1', capabilities: ['memory'] },
182
+ conversationHistory: [{ role: 'user', content: 'hi' }],
183
+ aiService: oldService, logger,
184
+ enhancedSystemPrompt: 'BASE',
185
+ });
186
+ expect(out).toBe('BASE');
187
+ });
188
+
189
+ test('errors from augmentSystemPrompt are swallowed; turn continues with un-augmented prompt', async () => {
190
+ aiService.augmentSystemPrompt = jest.fn(async () => {
191
+ throw new Error('embedding service exploded');
192
+ });
193
+ const out = await runAutoRecallStep({
194
+ agent: { id: 'a1', capabilities: ['memory'] },
195
+ conversationHistory: [{ role: 'user', content: 'hi' }],
196
+ aiService, logger,
197
+ enhancedSystemPrompt: 'BASE',
198
+ });
199
+ expect(out).toBe('BASE');
200
+ expect(logger.warn).toHaveBeenCalled();
201
+ });
202
+
203
+ test('returned prompt is what aiService.augmentSystemPrompt produced', async () => {
204
+ aiService.augmentSystemPrompt = jest.fn(async () =>
205
+ 'BASE\n\n## RELEVANT CONTEXT (auto-recalled)\n\nremembered thing'
206
+ );
207
+ const out = await runAutoRecallStep({
208
+ agent: { id: 'a1', capabilities: ['memory'] },
209
+ conversationHistory: [{ role: 'user', content: 'q' }],
210
+ aiService, logger,
211
+ enhancedSystemPrompt: 'BASE',
212
+ });
213
+ expect(out).toBe('BASE\n\n## RELEVANT CONTEXT (auto-recalled)\n\nremembered thing');
214
+ });
215
+ });
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Tests for handleAIServiceFailure's error categorisation + broadcast policy.
3
+ *
4
+ * Behavioural contract:
5
+ * • PERSISTENT failures (auth, unknown) → broadcast `agent_error`
6
+ * so the UI banner / Telegram fanout reach the user.
7
+ * • TRANSIENT failures (rate-limit, provider-overload, gateway, network)
8
+ * → silent. They self-heal; broadcasting them every retry cycle was
9
+ * the source of the Telegram floods.
10
+ * • Token-limit → handled by the compaction path (early return),
11
+ * never broadcasts directly from this function.
12
+ *
13
+ * The classification regexes are the most likely source of regression —
14
+ * cover the named status codes (401/403/429/503/504/529) plus the common
15
+ * textual variants we saw in production logs.
16
+ */
17
+
18
+ import { jest, describe, test, expect, beforeEach } from '@jest/globals';
19
+ import { createMockLogger } from '../../__test-utils__/mockFactories.js';
20
+
21
+ const mockShouldAgentBeActive = jest.fn(() => ({ active: false, reason: 'idle' }));
22
+ const mockGetActiveAgents = jest.fn(() => []);
23
+ const mockShouldSkipIteration = jest.fn(() => false);
24
+ jest.unstable_mockModule('../../services/agentActivityService.js', () => ({
25
+ shouldAgentBeActive: mockShouldAgentBeActive,
26
+ getActiveAgents: mockGetActiveAgents,
27
+ shouldSkipIteration: mockShouldSkipIteration,
28
+ }));
29
+
30
+ const { default: AgentScheduler } = await import('../agentScheduler.js');
31
+
32
+ function makeScheduler() {
33
+ const logger = createMockLogger();
34
+ const agent = { id: 'a1', name: 'TestAgent', sessionId: 'sess-1' };
35
+ const agentPool = {
36
+ getAgent: jest.fn().mockResolvedValue(agent),
37
+ persistAgentState: jest.fn().mockResolvedValue(undefined),
38
+ addToolResult: jest.fn().mockResolvedValue(undefined),
39
+ };
40
+ const broadcasts = [];
41
+ const webSocketManager = {
42
+ broadcastToSession: jest.fn((sessionId, payload) => broadcasts.push({ sessionId, payload })),
43
+ };
44
+ const aiService = { abortRequest: jest.fn(), getActiveRequest: () => null };
45
+ const scheduler = new AgentScheduler(agentPool, {}, aiService, logger);
46
+ scheduler.webSocketManager = webSocketManager;
47
+ scheduler.broadcastAgentStateUpdate = jest.fn().mockResolvedValue(undefined);
48
+ scheduler.getAgentSession = jest.fn(() => 'sess-1');
49
+ return { scheduler, agentPool, broadcasts, agent };
50
+ }
51
+
52
+ const errorClasses = [
53
+ // -- TRANSIENT (no broadcast) --
54
+ { name: 'rate-limit text', msg: 'Rate limit exceeded', expectBroadcast: false, label: 'rate-limit' },
55
+ { name: 'rate-limit 429', msg: 'HTTP 429 Too Many Requests', expectBroadcast: false, label: 'rate-limit' },
56
+ { name: 'provider overload 529', msg: 'HTTP 529 Overloaded', expectBroadcast: false, label: 'provider-overload' },
57
+ { name: 'provider overload text', msg: 'The model is overloaded with requests', expectBroadcast: false, label: 'provider-overload' },
58
+ { name: 'server is busy', msg: 'Sorry, the server is busy. Please try again.', expectBroadcast: false, label: 'provider-overload' },
59
+ { name: 'capacity error', msg: 'Provider returned a capacity error', expectBroadcast: false, label: 'provider-overload' },
60
+ { name: 'gateway 503', msg: 'HTTP 503 Service Unavailable', expectBroadcast: false, label: 'gateway-error' },
61
+ { name: 'gateway 504', msg: '504 Gateway Timeout from upstream', expectBroadcast: false, label: 'gateway-error' },
62
+ { name: 'bad gateway', msg: 'Got a bad gateway response', expectBroadcast: false, label: 'gateway-error' },
63
+ { name: 'upstream', msg: 'Upstream connect error', expectBroadcast: false, label: 'gateway-error' },
64
+ { name: 'network ECONNREFUSED', msg: 'ECONNREFUSED 127.0.0.1', expectBroadcast: false, label: 'network-error' },
65
+ { name: 'network ETIMEDOUT', msg: 'connect ETIMEDOUT', expectBroadcast: false, label: 'network-error' },
66
+ { name: 'network ENOTFOUND', msg: 'getaddrinfo ENOTFOUND api.foo', expectBroadcast: false, label: 'network-error' },
67
+ { name: 'fetch failed', msg: 'fetch failed', expectBroadcast: false, label: 'network-error' },
68
+ // -- PERSISTENT (broadcast) --
69
+ { name: 'auth: API key', msg: 'Invalid API key provided', expectBroadcast: true, label: 'api-key-error' },
70
+ { name: 'auth: 401', msg: 'HTTP 401 Unauthorized', expectBroadcast: true, label: 'api-key-error' },
71
+ { name: 'auth: 403', msg: 'HTTP 403 Forbidden', expectBroadcast: true, label: 'api-key-error' },
72
+ { name: 'unknown: random 500', msg: 'Random 500 Internal Server Error from the AI', expectBroadcast: true, label: 'server-error' },
73
+ { name: 'unknown: weird shape', msg: 'Provider returned malformed JSON', expectBroadcast: true, label: 'server-error' },
74
+ ];
75
+
76
+ describe('handleAIServiceFailure: error categorisation', () => {
77
+ describe.each(errorClasses)('%s', (tc) => {
78
+ let scheduler, broadcasts;
79
+ beforeEach(() => {
80
+ jest.clearAllMocks();
81
+ ({ scheduler, broadcasts } = makeScheduler());
82
+ });
83
+
84
+ test(`"${tc.msg}" → broadcast=${tc.expectBroadcast}, state="${tc.label}"`, async () => {
85
+ await scheduler.handleAIServiceFailure('a1', new Error(tc.msg));
86
+
87
+ const agentErrorBroadcasts = broadcasts.filter(b => b.payload?.type === 'agent_error');
88
+ if (tc.expectBroadcast) {
89
+ expect(agentErrorBroadcasts.length).toBe(1);
90
+ expect(agentErrorBroadcasts[0].payload.data.error).toBe(tc.msg);
91
+ } else {
92
+ expect(agentErrorBroadcasts.length).toBe(0);
93
+ }
94
+ // Every branch must publish an agent-state hint so the UI shows the
95
+ // right pause reason; verify the label we expect.
96
+ expect(scheduler.broadcastAgentStateUpdate).toHaveBeenCalledWith('a1', tc.label);
97
+ });
98
+ });
99
+ });
100
+
101
+ describe('handleAIServiceFailure: gateway 503 takes the network delay, not the rate-limit delay', () => {
102
+ test('uses NETWORK_ERROR_DELAY_MS for 503 errors', async () => {
103
+ const { scheduler, agentPool, agent } = makeScheduler();
104
+ const beforeMs = Date.now();
105
+ await scheduler.handleAIServiceFailure('a1', new Error('HTTP 503 Service Unavailable'));
106
+
107
+ // delayEndTime is in agent.delayEndTime as ISO; should be ~30s out.
108
+ const elapsedMs = new Date(agent.delayEndTime).getTime() - beforeMs;
109
+ // Use a generous range to tolerate test-machine drift.
110
+ expect(elapsedMs).toBeGreaterThanOrEqual(20 * 1000);
111
+ expect(elapsedMs).toBeLessThanOrEqual(90 * 1000);
112
+ expect(agentPool.persistAgentState).toHaveBeenCalledWith('a1');
113
+ });
114
+ });
115
+
116
+ describe('handleAIServiceFailure: token-limit path early-returns without broadcasting', () => {
117
+ test('does not call broadcastToSession for token-limit errors', async () => {
118
+ const { scheduler, broadcasts } = makeScheduler();
119
+ // Stub the token-limit handler so we don't fall into its compaction logic.
120
+ scheduler.handleTokenLimitError = jest.fn().mockResolvedValue(undefined);
121
+ scheduler.isTokenLimitError = jest.fn().mockReturnValue(true);
122
+
123
+ await scheduler.handleAIServiceFailure('a1', new Error('Context length exceeded'));
124
+
125
+ expect(scheduler.handleTokenLimitError).toHaveBeenCalledWith('a1', expect.any(Object), expect.any(Error));
126
+ // Importantly: no agent_error broadcast from this path.
127
+ expect(broadcasts.filter(b => b.payload?.type === 'agent_error').length).toBe(0);
128
+ });
129
+ });
130
+
131
+ describe('isTokenLimitError: regex-free implementation preserves all original patterns', () => {
132
+ // The original implementation matched these literal substrings plus a
133
+ // `/maximum.*exceeded/` regex. The refactored version replaces the
134
+ // regex with a two-indexOf check. Cover both halves explicitly.
135
+ const positives = [
136
+ 'prompt is too long for this model',
137
+ 'too many tokens for the model',
138
+ 'context length exceeded the limit',
139
+ 'context window exceeded',
140
+ 'maximum context size reached',
141
+ 'token limit reached for this request',
142
+ 'max_tokens is set too high',
143
+ 'context_length_exceeded: request had 200000 tokens',
144
+ // The 'maximum.*exceeded' case — "maximum" appears before "exceeded".
145
+ 'maximum response limit exceeded for input',
146
+ 'maximum 100k context length exceeded by 5k tokens',
147
+ ];
148
+ const negatives = [
149
+ 'rate limit exceeded',
150
+ 'connection timed out',
151
+ 'maximum retries reached', // has "maximum" but no "exceeded" after it
152
+ 'something exceeded the maximum', // "exceeded" appears BEFORE "maximum" — old regex required maximum→exceeded order
153
+ 'random unrelated error',
154
+ ];
155
+
156
+ describe.each(positives)('positive: %s', (msg) => {
157
+ test('classifies as token-limit', () => {
158
+ const { scheduler } = makeScheduler();
159
+ expect(scheduler.isTokenLimitError(msg.toLowerCase())).toBe(true);
160
+ });
161
+ });
162
+
163
+ describe.each(negatives)('negative: %s', (msg) => {
164
+ test('does not classify as token-limit', () => {
165
+ const { scheduler } = makeScheduler();
166
+ expect(scheduler.isTokenLimitError(msg.toLowerCase())).toBe(false);
167
+ });
168
+ });
169
+ });