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
@@ -19,6 +19,8 @@
19
19
 
20
20
  import { BaseTool } from './baseTool.js';
21
21
  import { getMemoryService, PLAN_TITLE_PREFIX } from '../services/memoryService.js';
22
+ import { MemoryIndexer } from '../services/embeddings/indexers/memoryIndexer.js';
23
+ import { ReminisceIndexer } from '../services/embeddings/indexers/reminisceIndexer.js';
22
24
 
23
25
  /**
24
26
  * True if the given memory title is a "working plan" — those are
@@ -402,7 +404,7 @@ BEST PRACTICES:
402
404
  */
403
405
  customValidateParameters(params) {
404
406
  const errors = [];
405
- const validActions = ['add', 'update', 'append', 'delete', 'list', 'read', 'search', 'stats', 'reminisce'];
407
+ const validActions = ['add', 'update', 'append', 'delete', 'list', 'read', 'search', 'semantic-search', 'backfill-embeddings', 'reminisce-backfill-embeddings', 'forget-stale', 'publish-to-team', 'search-team', 'unpublish-from-team', 'stats', 'reminisce'];
406
408
 
407
409
  // Normalize to the canonical actions[] shape and validate every action.
408
410
  // Accepts both the canonical plural `{actions: [{type, ...}]}` and the
@@ -450,6 +452,33 @@ BEST PRACTICES:
450
452
  case 'search':
451
453
  if (!a.query) errors.push(`${tag}query is required for search`);
452
454
  break;
455
+ case 'semantic-search':
456
+ if (!a.query) errors.push(`${tag}query is required for semantic-search`);
457
+ if (a.topK != null && (!Number.isInteger(a.topK) || a.topK <= 0)) {
458
+ errors.push(`${tag}topK must be a positive integer when provided`);
459
+ }
460
+ break;
461
+ case 'forget-stale':
462
+ if (a.ageDays != null && (!Number.isFinite(a.ageDays) || a.ageDays <= 0)) {
463
+ errors.push(`${tag}ageDays must be a positive number when provided`);
464
+ }
465
+ break;
466
+ case 'publish-to-team':
467
+ if (!a.id) errors.push(`${tag}id is required for publish-to-team (the memory id to publish)`);
468
+ if (!a.teamId) errors.push(`${tag}teamId is required for publish-to-team`);
469
+ break;
470
+ case 'search-team':
471
+ if (!a.teamId) errors.push(`${tag}teamId is required for search-team`);
472
+ if (!a.query) errors.push(`${tag}query is required for search-team`);
473
+ if (a.topK != null && (!Number.isInteger(a.topK) || a.topK <= 0)) {
474
+ errors.push(`${tag}topK must be a positive integer when provided`);
475
+ }
476
+ break;
477
+ case 'unpublish-from-team':
478
+ if (!a.id) errors.push(`${tag}id is required for unpublish-from-team`);
479
+ if (!a.teamId) errors.push(`${tag}teamId is required for unpublish-from-team`);
480
+ break;
481
+ // backfill-embeddings has no required params (re-indexes everything).
453
482
  }
454
483
  // Length limits (per-action).
455
484
  if (a.title && a.title.length > 200) errors.push(`${tag}title cannot exceed 200 characters`);
@@ -565,9 +594,16 @@ BEST PRACTICES:
565
594
  case 'delete': return await this._executeDelete(memoryService, agentId, legacyParams);
566
595
  case 'list': return await this._executeList(memoryService, agentId, legacyParams);
567
596
  case 'read': return await this._executeRead(memoryService, agentId, legacyParams);
568
- case 'search': return await this._executeSearch(memoryService, agentId, legacyParams);
569
- case 'stats': return await this._executeStats(memoryService, agentId);
570
- case 'reminisce': return await this._executeReminisce(agentId, legacyParams, context);
597
+ case 'search': return await this._executeSearch(memoryService, agentId, legacyParams);
598
+ case 'semantic-search': return await this._executeSemanticSearch(memoryService, agentId, legacyParams);
599
+ case 'backfill-embeddings': return await this._executeBackfillEmbeddings(memoryService, agentId);
600
+ case 'reminisce-backfill-embeddings': return await this._executeReminisceBackfill(agentId, context);
601
+ case 'forget-stale': return await this._executeForgetStale(memoryService, agentId, legacyParams);
602
+ case 'publish-to-team': return await this._executePublishToTeam(memoryService, agentId, legacyParams);
603
+ case 'search-team': return await this._executeSearchTeam(agentId, legacyParams);
604
+ case 'unpublish-from-team': return await this._executeUnpublishFromTeam(agentId, legacyParams);
605
+ case 'stats': return await this._executeStats(memoryService, agentId);
606
+ case 'reminisce': return await this._executeReminisce(agentId, legacyParams, context);
571
607
  default:
572
608
  throw new Error(`Unknown memory action: ${type}`);
573
609
  }
@@ -592,6 +628,11 @@ BEST PRACTICES:
592
628
  expiration: params.expiration
593
629
  });
594
630
 
631
+ // Fire-and-forget index update. Best-effort by design — the indexer's
632
+ // public surface swallows errors and returns a result, but we don't
633
+ // even await it so memory writes never wait on the embedding service.
634
+ this._asyncIndexMemory(agentId, memory);
635
+
595
636
  return {
596
637
  success: true,
597
638
  action: 'add',
@@ -630,6 +671,9 @@ BEST PRACTICES:
630
671
  };
631
672
  }
632
673
 
674
+ // Re-index after content change. Fire-and-forget.
675
+ this._asyncIndexMemory(agentId, memory);
676
+
633
677
  return {
634
678
  success: true,
635
679
  action: 'update',
@@ -667,6 +711,9 @@ BEST PRACTICES:
667
711
  };
668
712
  }
669
713
 
714
+ // Re-index after content grew. Fire-and-forget.
715
+ this._asyncIndexMemory(agentId, memory);
716
+
670
717
  return {
671
718
  success: true,
672
719
  action: 'append',
@@ -696,6 +743,9 @@ BEST PRACTICES:
696
743
  };
697
744
  }
698
745
 
746
+ // Drop the corresponding vector from the index. Fire-and-forget.
747
+ this._asyncRemoveFromIndex(agentId, params.id);
748
+
699
749
  return {
700
750
  success: true,
701
751
  action: 'delete',
@@ -795,6 +845,577 @@ BEST PRACTICES:
795
845
  };
796
846
  }
797
847
 
848
+ /**
849
+ * Execute SEMANTIC-SEARCH action — embeddings-backed retrieval over
850
+ * the agent's memory. Falls back to substring search when embeddings
851
+ * are disabled, so the action is always safe to call regardless of
852
+ * configuration. Hybrid mode (semantic + substring via RRF) is the
853
+ * default — preserves exact-match precision while adding paraphrase
854
+ * recall.
855
+ *
856
+ * Params: { query, topK?=10, hybrid?=true }
857
+ */
858
+ async _executeSemanticSearch(memoryService, agentId, params) {
859
+ const topK = Number.isInteger(params.topK) && params.topK > 0 ? params.topK : 10;
860
+ const hybrid = params.hybrid !== false;
861
+
862
+ const indexer = this._getMemoryIndexer();
863
+ if (!indexer || !indexer.isEnabled) {
864
+ // Graceful fallback: when the user hasn't enabled embeddings yet,
865
+ // return substring results so the action is still useful (and the
866
+ // agent doesn't need to branch on config).
867
+ const results = await memoryService.searchMemories(agentId, params.query);
868
+ return {
869
+ success: true,
870
+ action: 'semantic-search',
871
+ mode: 'substring-fallback',
872
+ query: params.query,
873
+ results,
874
+ message: results.length === 0
875
+ ? `Embeddings disabled; substring search found no matches for "${params.query}"`
876
+ : `Embeddings disabled; substring search found ${results.length} memories`,
877
+ };
878
+ }
879
+
880
+ const { hits, error } = await indexer.search(agentId, params.query, { topK, hybrid });
881
+
882
+ // Hydrate hits → full memory objects via memoryService.readMemory.
883
+ // The indexer returns vector-store metadata (title/text) which is a
884
+ // snapshot — fetching live ensures we surface the current content
885
+ // (in case it was updated since the last index sync).
886
+ const hydrated = [];
887
+ for (const h of hits) {
888
+ // eslint-disable-next-line no-await-in-loop
889
+ const mem = await memoryService.readMemory(agentId, h.id);
890
+ if (mem) hydrated.push({ ...mem, score: h.score });
891
+ else hydrated.push({ id: h.id, score: h.score, missing: true, ...h.metadata });
892
+ }
893
+
894
+ return {
895
+ success: !error,
896
+ action: 'semantic-search',
897
+ mode: hybrid ? 'hybrid' : 'semantic',
898
+ query: params.query,
899
+ topK,
900
+ results: hydrated,
901
+ ...(error ? { error } : {}),
902
+ message: error
903
+ ? `Semantic search failed: ${error}`
904
+ : hydrated.length === 0
905
+ ? `No memories matched "${params.query}"`
906
+ : `Found ${hydrated.length} memories ranked by similarity to "${params.query}"`,
907
+ };
908
+ }
909
+
910
+ /**
911
+ * Execute BACKFILL-EMBEDDINGS action — drop the agent's memory index
912
+ * and rebuild it from scratch. Use after enabling embeddings for the
913
+ * first time, after switching providers/models, or whenever the index
914
+ * is suspected stale. Idempotent.
915
+ */
916
+ async _executeBackfillEmbeddings(memoryService, agentId) {
917
+ const indexer = this._getMemoryIndexer();
918
+ if (!indexer || !indexer.isEnabled) {
919
+ return {
920
+ success: false,
921
+ action: 'backfill-embeddings',
922
+ message: 'Embeddings are not enabled — nothing to backfill. Enable a provider in Settings → Embeddings first.',
923
+ };
924
+ }
925
+
926
+ // Pull every memory for this agent. memoryService.listMemories at
927
+ // 'full' detail returns the full content blob per memory.
928
+ const listing = await memoryService.listMemories(agentId, 'full');
929
+ // listMemories returns { count, grouped }. The 'full' shape gives
930
+ // us per-bucket arrays of memory objects. Flatten + filter.
931
+ const memories = [];
932
+ for (const bucket of Object.values(listing.grouped || {})) {
933
+ for (const m of bucket || []) if (m?.id) memories.push(m);
934
+ }
935
+
936
+ const result = await indexer.backfill(agentId, memories);
937
+ return {
938
+ success: result.ok !== false,
939
+ action: 'backfill-embeddings',
940
+ indexed: result.indexed || 0,
941
+ skipped: result.skipped || 0,
942
+ failed: result.failed || 0,
943
+ ...(result.error ? { error: result.error } : {}),
944
+ message: result.ok === false
945
+ ? `Backfill failed: ${result.reason || result.error || 'unknown'}`
946
+ : `Re-indexed ${result.indexed || 0} memories for agent ${agentId}` +
947
+ (result.skipped ? ` (skipped ${result.skipped} with no text)` : '') +
948
+ (result.failed ? ` (failed ${result.failed})` : ''),
949
+ };
950
+ }
951
+
952
+ /**
953
+ * Execute FORGET-STALE action — delete memories older than `ageDays`.
954
+ *
955
+ * FadeMem-style soft pruning (arXiv 2601.18642): unbounded memory
956
+ * growth is the real long-term problem. The right answer is graceful
957
+ * decay of unused old memories so the index stays signal-rich.
958
+ *
959
+ * Defaults are conservative — `ageDays=90`, plan/* memories skipped.
960
+ * Pass `dryRun: true` to preview what would be removed. The cascade
961
+ * to the vector index is automatic (memoryService.deleteMemory fires
962
+ * the indexer's deleteOne via _asyncRemoveFromIndex).
963
+ *
964
+ * Params: { ageDays?=90, dryRun?=false, includePlans?=false }
965
+ * @private
966
+ */
967
+ async _executeForgetStale(memoryService, agentId, params) {
968
+ const ageDays = Number.isFinite(params.ageDays) && params.ageDays > 0 ? params.ageDays : 90;
969
+ const dryRun = !!params.dryRun;
970
+ const includePlans = !!params.includePlans;
971
+ const cutoffMs = Date.now() - ageDays * 24 * 60 * 60 * 1000;
972
+
973
+ // Walk the full memory list. Use 'descriptions' detail — enough to
974
+ // decide what's stale without pulling huge content blobs.
975
+ const listing = await memoryService.listMemories(agentId, 'full');
976
+ const candidates = [];
977
+ for (const bucket of Object.values(listing.grouped || {})) {
978
+ for (const m of bucket || []) {
979
+ if (!m?.id || !m?.createdAt) continue;
980
+ const createdMs = Date.parse(m.createdAt);
981
+ if (!Number.isFinite(createdMs) || createdMs > cutoffMs) continue;
982
+ // Skip plan/* memories unless explicitly included — they're the
983
+ // agent's active working plan, not stale notes.
984
+ if (!includePlans && isPlanTitle(m.title)) continue;
985
+ candidates.push({
986
+ id: m.id,
987
+ title: m.title,
988
+ createdAt: m.createdAt,
989
+ ageDays: Math.round((Date.now() - createdMs) / (24 * 60 * 60 * 1000)),
990
+ });
991
+ }
992
+ }
993
+
994
+ if (dryRun) {
995
+ return {
996
+ success: true,
997
+ action: 'forget-stale',
998
+ dryRun: true,
999
+ thresholdDays: ageDays,
1000
+ candidates,
1001
+ count: candidates.length,
1002
+ message: candidates.length === 0
1003
+ ? `No memories older than ${ageDays} days.`
1004
+ : `Would forget ${candidates.length} memories older than ${ageDays} days. Pass dryRun:false to apply.`,
1005
+ };
1006
+ }
1007
+
1008
+ let forgotten = 0;
1009
+ let failed = 0;
1010
+ for (const c of candidates) {
1011
+ try {
1012
+ const ok = await memoryService.deleteMemory(agentId, c.id);
1013
+ if (ok) forgotten++;
1014
+ else failed++;
1015
+ } catch (err) {
1016
+ this.logger?.warn?.('[memoryTool] forget-stale: delete failed', { id: c.id, error: err?.message });
1017
+ failed++;
1018
+ }
1019
+ }
1020
+
1021
+ return {
1022
+ success: failed === 0,
1023
+ action: 'forget-stale',
1024
+ thresholdDays: ageDays,
1025
+ forgotten,
1026
+ failed,
1027
+ message: forgotten === 0 && failed === 0
1028
+ ? `No memories older than ${ageDays} days.`
1029
+ : `Forgot ${forgotten} memories older than ${ageDays} days` +
1030
+ (failed ? `, ${failed} deletions failed` : '') + '.',
1031
+ };
1032
+ }
1033
+
1034
+ // ──────────────────────────────────────────────────────────────────
1035
+ // Phase 6c — Team-pool memory (the explicit publish channel)
1036
+ //
1037
+ // Answers the design Q1: per-agent memory stays private by default;
1038
+ // teams are an explicit, ACL-gated sharing surface. Lit-aligned with
1039
+ // arXiv 2505.18279 "Collaborative Memory" (dual-tier private + shared
1040
+ // with read/write policies). Pattern matches Mem0's multi-level
1041
+ // scoping (user_id / agent_id / app_id) — we use Loxia's existing
1042
+ // Teams primitive as the natural sharing boundary.
1043
+ //
1044
+ // ACL: agent must be a member of the team. Membership is read from
1045
+ // stateManager.getTeam(teamId).memberAgentIds — the authoritative
1046
+ // source. We refuse rather than warn so accidental cross-team leaks
1047
+ // are impossible. The check is encapsulated in `_assertTeamMember`.
1048
+ // ──────────────────────────────────────────────────────────────────
1049
+
1050
+ /**
1051
+ * Allow callers to inject a StateManager so ACL lookups can resolve
1052
+ * team membership. Mirrors the platformControl pattern. Without it,
1053
+ * team-scoped actions all fail with a clean error rather than
1054
+ * defaulting open.
1055
+ */
1056
+ setStateManager(stateManager) {
1057
+ this.stateManager = stateManager;
1058
+ this.logger?.info?.(`[memory] StateManager ${stateManager ? 'attached' : 'detached'}`);
1059
+ }
1060
+
1061
+ /**
1062
+ * Read-only ACL: throws an Error with a user-facing message if the
1063
+ * agent isn't a member of the team. Use inside team-scoped handlers
1064
+ * to gate writes and reads alike.
1065
+ * @private
1066
+ */
1067
+ async _assertTeamMember(agentId, teamId) {
1068
+ if (!this.stateManager?.getTeam) {
1069
+ throw new Error('Team-scoped memory actions require a StateManager. None is attached.');
1070
+ }
1071
+ const team = await this.stateManager.getTeam(teamId);
1072
+ if (!team) {
1073
+ throw new Error(`Team not found: ${teamId}`);
1074
+ }
1075
+ const members = Array.isArray(team.memberAgentIds) ? team.memberAgentIds : [];
1076
+ if (!members.includes(agentId)) {
1077
+ throw new Error(
1078
+ `Access denied: agent ${agentId} is not a member of team ${teamId}. ` +
1079
+ `Ask a team admin to add you via platformcontrol.add-team-member.`,
1080
+ );
1081
+ }
1082
+ return team;
1083
+ }
1084
+
1085
+ /**
1086
+ * Publish an existing per-agent memory to a team's shared pool. The
1087
+ * memory itself stays in the agent's own pool — `publish` copies its
1088
+ * content into the team's vector index with `publishedBy` metadata.
1089
+ *
1090
+ * Params: { id, teamId }
1091
+ * @private
1092
+ */
1093
+ async _executePublishToTeam(memoryService, agentId, params) {
1094
+ const indexer = this._getMemoryIndexer();
1095
+ if (!indexer || !indexer.isEnabled) {
1096
+ return {
1097
+ success: false,
1098
+ action: 'publish-to-team',
1099
+ message: 'Embeddings are not enabled. Team-pool memory requires a configured embedding provider — enable one in Settings → Embeddings first.',
1100
+ };
1101
+ }
1102
+
1103
+ let team;
1104
+ try { team = await this._assertTeamMember(agentId, params.teamId); }
1105
+ catch (err) {
1106
+ return { success: false, action: 'publish-to-team', error: err.message };
1107
+ }
1108
+
1109
+ const memory = await memoryService.readMemory(agentId, params.id);
1110
+ if (!memory) {
1111
+ return {
1112
+ success: false,
1113
+ action: 'publish-to-team',
1114
+ error: `Memory not found in your pool: ${params.id}. publish-to-team copies an existing personal memory into the team pool.`,
1115
+ };
1116
+ }
1117
+
1118
+ const result = await indexer.publishToTeam(params.teamId, memory, agentId);
1119
+ return {
1120
+ success: result.indexed === true,
1121
+ action: 'publish-to-team',
1122
+ teamId: params.teamId,
1123
+ teamName: team?.name || params.teamId,
1124
+ memoryId: memory.id,
1125
+ ...(result.error ? { error: result.error } : {}),
1126
+ message: result.indexed
1127
+ ? `Published "${memory.title}" to team "${team?.name || params.teamId}".`
1128
+ : `Publish failed: ${result.reason || result.error || 'unknown'}`,
1129
+ };
1130
+ }
1131
+
1132
+ /**
1133
+ * Semantic (or hybrid) search over a team's shared memory pool.
1134
+ * Requires team membership — otherwise no read.
1135
+ *
1136
+ * Params: { teamId, query, topK?=10, hybrid?=true }
1137
+ * @private
1138
+ */
1139
+ async _executeSearchTeam(agentId, params) {
1140
+ const indexer = this._getMemoryIndexer();
1141
+ if (!indexer || !indexer.isEnabled) {
1142
+ return {
1143
+ success: false,
1144
+ action: 'search-team',
1145
+ message: 'Embeddings are not enabled. Team-pool memory requires a configured embedding provider.',
1146
+ };
1147
+ }
1148
+
1149
+ let team;
1150
+ try { team = await this._assertTeamMember(agentId, params.teamId); }
1151
+ catch (err) {
1152
+ return { success: false, action: 'search-team', error: err.message };
1153
+ }
1154
+
1155
+ const topK = Number.isInteger(params.topK) && params.topK > 0 ? params.topK : 10;
1156
+ const hybrid = params.hybrid !== false;
1157
+ const { hits, error } = await indexer.searchTeam(params.teamId, params.query, { topK, hybrid });
1158
+ return {
1159
+ success: !error,
1160
+ action: 'search-team',
1161
+ teamId: params.teamId,
1162
+ teamName: team?.name || params.teamId,
1163
+ query: params.query,
1164
+ mode: hybrid ? 'hybrid' : 'semantic',
1165
+ topK,
1166
+ results: hits,
1167
+ ...(error ? { error } : {}),
1168
+ message: error
1169
+ ? `Team search failed: ${error}`
1170
+ : hits.length === 0
1171
+ ? `No memories matched "${params.query}" in team "${team?.name || params.teamId}".`
1172
+ : `Found ${hits.length} team memories ranked by similarity to "${params.query}".`,
1173
+ };
1174
+ }
1175
+
1176
+ /**
1177
+ * Remove a memory from a team pool. Any team member can unpublish
1178
+ * (no per-author restriction at this layer — keeps the ACL surface
1179
+ * simple; if richer policies are needed later, layer them here).
1180
+ *
1181
+ * Params: { teamId, id }
1182
+ * @private
1183
+ */
1184
+ async _executeUnpublishFromTeam(agentId, params) {
1185
+ const indexer = this._getMemoryIndexer();
1186
+ if (!indexer || !indexer.isEnabled) {
1187
+ return {
1188
+ success: false,
1189
+ action: 'unpublish-from-team',
1190
+ message: 'Embeddings are not enabled. Team-pool memory requires a configured embedding provider.',
1191
+ };
1192
+ }
1193
+
1194
+ let team;
1195
+ try { team = await this._assertTeamMember(agentId, params.teamId); }
1196
+ catch (err) {
1197
+ return { success: false, action: 'unpublish-from-team', error: err.message };
1198
+ }
1199
+
1200
+ const result = await indexer.unpublishFromTeam(params.teamId, params.id);
1201
+ return {
1202
+ success: result.deleted === true,
1203
+ action: 'unpublish-from-team',
1204
+ teamId: params.teamId,
1205
+ teamName: team?.name || params.teamId,
1206
+ memoryId: params.id,
1207
+ ...(result.error ? { error: result.error } : {}),
1208
+ message: result.deleted
1209
+ ? `Removed memory ${params.id} from team "${team?.name || params.teamId}".`
1210
+ : `Unpublish failed: ${result.reason || result.error || 'unknown'}`,
1211
+ };
1212
+ }
1213
+
1214
+ /**
1215
+ * Lazy accessor for the per-tool MemoryIndexer.
1216
+ *
1217
+ * Why lazy: the EmbeddingService is attached to aiService AFTER
1218
+ * tools are constructed. Pulling it on first use lets us avoid
1219
+ * construction-time ordering pain.
1220
+ *
1221
+ * Returns null when no embedding service is available (cloud-only
1222
+ * deploys without local provider, brand-new installs, etc.). Callers
1223
+ * MUST check `indexer.isEnabled` before relying on it — the indexer
1224
+ * is a thin shim that itself checks the service's enabled flag.
1225
+ *
1226
+ * @private
1227
+ * @returns {import('../services/embeddings/indexers/memoryIndexer.js').MemoryIndexer | null}
1228
+ */
1229
+ _getMemoryIndexer() {
1230
+ if (this._memoryIndexer) return this._memoryIndexer;
1231
+ const svc = this.aiService?.getEmbeddingService?.();
1232
+ if (!svc) return null;
1233
+ this._memoryIndexer = new MemoryIndexer({ embeddingService: svc, logger: this.logger });
1234
+ return this._memoryIndexer;
1235
+ }
1236
+
1237
+ /**
1238
+ * Fire-and-forget memory index update. Errors are logged inside the
1239
+ * indexer; we additionally swallow any thrown error here so a runtime
1240
+ * surprise (broken provider, full disk) NEVER affects the memory write.
1241
+ * @private
1242
+ */
1243
+ _asyncIndexMemory(agentId, memory) {
1244
+ const indexer = this._getMemoryIndexer();
1245
+ if (!indexer || !indexer.isEnabled) return;
1246
+ // Don't await — the result is consumed only via the indexer's own
1247
+ // log. We bury the promise with .catch() so Node doesn't crash on
1248
+ // unhandled rejection if something exotic blows up.
1249
+ indexer.indexOne(agentId, memory).catch(err => {
1250
+ this.logger?.warn?.('[memoryTool] async index failed', { agentId, id: memory?.id, error: err?.message });
1251
+ });
1252
+ }
1253
+
1254
+ /**
1255
+ * Fire-and-forget removal from the index after a delete.
1256
+ * @private
1257
+ */
1258
+ _asyncRemoveFromIndex(agentId, memoryId) {
1259
+ const indexer = this._getMemoryIndexer();
1260
+ if (!indexer || !indexer.isEnabled) return;
1261
+ indexer.deleteOne(agentId, memoryId).catch(err => {
1262
+ this.logger?.warn?.('[memoryTool] async deleteFromIndex failed', { agentId, id: memoryId, error: err?.message });
1263
+ });
1264
+ }
1265
+
1266
+ /**
1267
+ * Lazy accessor for the per-tool ReminisceIndexer. Same lifetime model
1268
+ * as `_getMemoryIndexer`: cached on the tool instance after first use.
1269
+ * Returns null when the embedding service isn't attached.
1270
+ *
1271
+ * @private
1272
+ * @returns {import('../services/embeddings/indexers/reminisceIndexer.js').ReminisceIndexer | null}
1273
+ */
1274
+ _getReminisceIndexer() {
1275
+ if (this._reminisceIndexer) return this._reminisceIndexer;
1276
+ const svc = this.aiService?.getEmbeddingService?.();
1277
+ if (!svc) return null;
1278
+ this._reminisceIndexer = new ReminisceIndexer({ embeddingService: svc, logger: this.logger });
1279
+ return this._reminisceIndexer;
1280
+ }
1281
+
1282
+ /**
1283
+ * Reminisce semantic-search handler. Routes through the
1284
+ * ReminisceIndexer; falls back to the existing substring-based
1285
+ * `reminisce.search` when embeddings aren't configured.
1286
+ *
1287
+ * Params: { query, topK?=10, hybrid?=true }
1288
+ * @private
1289
+ */
1290
+ async _executeReminisceSemanticSearch(agentId, params, context) {
1291
+ const query = typeof params.query === 'string' ? params.query.trim() : '';
1292
+ if (!query) {
1293
+ return {
1294
+ success: false,
1295
+ action: 'reminisce',
1296
+ mode: 'semantic-search',
1297
+ error: 'query is required for reminisce semantic-search',
1298
+ };
1299
+ }
1300
+ const topK = Number.isInteger(params.topK) && params.topK > 0 ? params.topK : 10;
1301
+ const hybrid = params.hybrid !== false;
1302
+
1303
+ const indexer = this._getReminisceIndexer();
1304
+ if (!indexer || !indexer.isEnabled) {
1305
+ // Graceful fallback to the existing substring path so the action
1306
+ // remains useful when embeddings are off. Mirrors memoryTool's
1307
+ // semantic-search fallback shape for consistency.
1308
+ const fb = await this._executeReminisce(agentId, { ...params, mode: 'search' }, context);
1309
+ return {
1310
+ ...fb,
1311
+ mode: 'semantic-search',
1312
+ modeUsed: 'substring-fallback',
1313
+ message: 'Embeddings disabled; returned substring search results instead.',
1314
+ };
1315
+ }
1316
+
1317
+ // Run the vector search.
1318
+ const { hits, error } = await indexer.search(agentId, query, { topK, hybrid });
1319
+
1320
+ // Hydrate scored messageIds back to full messages from the archive,
1321
+ // so the agent sees `role`, `content`, `createdAt`, etc. — the same
1322
+ // shape it gets from `reminisce.search`.
1323
+ const agentPool = context?.agentPool;
1324
+ let messages = null;
1325
+ if (agentPool?.getAgent) {
1326
+ const agent = await agentPool.getAgent(agentId);
1327
+ messages = Array.isArray(agent?.conversations?.full?.messages) ? agent.conversations.full.messages : null;
1328
+ }
1329
+ const byId = new Map((messages || []).map(m => [m?.id, m]));
1330
+ const hydrated = hits.map(h => {
1331
+ const m = byId.get(h.messageId);
1332
+ const base = {
1333
+ messageId: h.messageId,
1334
+ score: h.score,
1335
+ chunkIndex: h.chunkIndex,
1336
+ // Default to the index-snapshot text when the live message has
1337
+ // gone missing (rare — only if archive was pruned).
1338
+ snippet: h.chunkText,
1339
+ };
1340
+ if (!m) return { ...base, missing: true };
1341
+ return {
1342
+ ...base,
1343
+ role: m.role || 'unknown',
1344
+ at: m.createdAt || m.timestamp || null,
1345
+ content: typeof m.content === 'string' ? m.content : '',
1346
+ };
1347
+ });
1348
+
1349
+ return {
1350
+ success: !error,
1351
+ action: 'reminisce',
1352
+ mode: 'semantic-search',
1353
+ modeUsed: hybrid ? 'hybrid' : 'semantic',
1354
+ query,
1355
+ topK,
1356
+ result: {
1357
+ hits: hydrated,
1358
+ ...(error ? { error } : {}),
1359
+ },
1360
+ message: error
1361
+ ? `Reminisce semantic search failed: ${error}`
1362
+ : hydrated.length === 0
1363
+ ? `No archived messages matched "${query}"`
1364
+ : `Found ${hydrated.length} archived messages ranked by similarity to "${query}"`,
1365
+ };
1366
+ }
1367
+
1368
+ /**
1369
+ * Drop the agent's reminisce index and rebuild from the full
1370
+ * conversation archive. Use after first enabling embeddings, or after
1371
+ * switching provider/model. Idempotent.
1372
+ *
1373
+ * NOTE: this is the canonical entry point for keeping reminisce
1374
+ * semantic-search current today. Auto-indexing on new archive writes
1375
+ * is a planned follow-up; until then, re-run this periodically (or
1376
+ * via a scheduled task) to pick up the latest messages.
1377
+ *
1378
+ * @private
1379
+ */
1380
+ async _executeReminisceBackfill(agentId, context) {
1381
+ const indexer = this._getReminisceIndexer();
1382
+ if (!indexer || !indexer.isEnabled) {
1383
+ return {
1384
+ success: false,
1385
+ action: 'reminisce-backfill-embeddings',
1386
+ message: 'Embeddings are not enabled — nothing to backfill. Enable a provider in Settings → Embeddings first.',
1387
+ };
1388
+ }
1389
+
1390
+ const agentPool = context?.agentPool;
1391
+ if (!agentPool?.getAgent) {
1392
+ return {
1393
+ success: false,
1394
+ action: 'reminisce-backfill-embeddings',
1395
+ error: 'agentPool is not available on the tool context; cannot read conversation archive',
1396
+ };
1397
+ }
1398
+ const agent = await agentPool.getAgent(agentId);
1399
+ const messages = Array.isArray(agent?.conversations?.full?.messages) ? agent.conversations.full.messages : [];
1400
+
1401
+ const result = await indexer.backfill(agentId, messages);
1402
+ return {
1403
+ success: result.ok !== false && !result.error,
1404
+ action: 'reminisce-backfill-embeddings',
1405
+ indexedMessages: result.indexedMessages || 0,
1406
+ indexedChunks: result.indexedChunks || 0,
1407
+ skipped: result.skipped || 0,
1408
+ failed: result.failed || 0,
1409
+ ...(result.error ? { error: result.error } : {}),
1410
+ message: result.ok === false
1411
+ ? `Reminisce backfill failed: ${result.reason || result.error || 'unknown'}`
1412
+ : `Re-indexed ${result.indexedMessages || 0} messages` +
1413
+ (result.indexedChunks ? ` (${result.indexedChunks} chunks)` : '') +
1414
+ (result.skipped ? `, skipped ${result.skipped}` : '') +
1415
+ (result.failed ? `, failed ${result.failed}` : ''),
1416
+ };
1417
+ }
1418
+
798
1419
  /**
799
1420
  * Execute STATS action
800
1421
  */
@@ -832,7 +1453,7 @@ BEST PRACTICES:
832
1453
  */
833
1454
  async _executeReminisce(agentId, params, context) {
834
1455
  const mode = typeof params.mode === 'string' ? params.mode : '';
835
- const validModes = ['overview', 'range', 'search', 'around', 'byTool', 'read'];
1456
+ const validModes = ['overview', 'range', 'search', 'semantic-search', 'around', 'byTool', 'read'];
836
1457
  if (!validModes.includes(mode)) {
837
1458
  return {
838
1459
  success: false,
@@ -841,6 +1462,14 @@ BEST PRACTICES:
841
1462
  };
842
1463
  }
843
1464
 
1465
+ // Semantic-search has a different shape than the other modes — it
1466
+ // routes through the ReminisceIndexer (vector store) rather than the
1467
+ // conversation-query helpers. Falls back to substring `search` when
1468
+ // embeddings are disabled so the action is always callable.
1469
+ if (mode === 'semantic-search') {
1470
+ return await this._executeReminisceSemanticSearch(agentId, params, context);
1471
+ }
1472
+
844
1473
  const agentPool = context?.agentPool;
845
1474
  if (!agentPool?.getAgent) {
846
1475
  return {