onbuzz 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (972) hide show
  1. package/package.json +1 -1
  2. package/scripts/audit-report.js +164 -0
  3. package/src/core/__tests__/agentScheduler.emptyResponseDiagnostics.test.js +191 -0
  4. package/src/core/__tests__/agentScheduler.modeTransitions.test.js +233 -0
  5. package/src/core/__tests__/agentScheduler.taskLifecycleInstruction.test.js +78 -0
  6. package/src/core/__tests__/agentScheduler.test.js +31 -13
  7. package/src/core/__tests__/messageProcessor.sourceHeader.test.js +195 -0
  8. package/src/core/agentPool.js +9 -0
  9. package/src/core/agentScheduler.js +302 -147
  10. package/src/core/messageProcessor.js +17 -0
  11. package/src/core/orchestrator.js +6 -2
  12. package/src/interfaces/webServer.js +69 -2
  13. package/src/services/__tests__/conversationQuery.test.js +723 -0
  14. package/src/services/__tests__/messageSource.channelFilter.coherence.test.js +101 -0
  15. package/src/services/__tests__/messageSource.test.js +376 -0
  16. package/src/services/conversationQuery.js +777 -0
  17. package/src/services/discordService.js +11 -2
  18. package/src/services/messageSource.js +318 -0
  19. package/src/services/telegramService.js +7 -1
  20. package/src/services/visualEditorServer.js +35 -7
  21. package/src/tools/__tests__/memoryTool.reminisce.test.js +330 -0
  22. package/src/tools/__tests__/memoryTool.test.js +2 -2
  23. package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +84 -0
  24. package/src/tools/__tests__/taskManagerTool.lifecycleGuidance.test.js +71 -0
  25. package/src/tools/__tests__/visualEditorTool.broadcast.test.js +41 -11
  26. package/src/tools/baseTool.js +14 -1
  27. package/src/tools/memoryTool.js +266 -4
  28. package/src/tools/openaiFunctionSchemas.js +62 -7
  29. package/src/tools/taskManagerTool.js +21 -4
  30. package/src/tools/visualEditorTool.js +86 -21
  31. package/src/utilities/__tests__/auditReport.test.js +328 -0
  32. package/src/utilities/__tests__/modeTransitionReasons.test.js +105 -0
  33. package/src/utilities/auditReport.js +331 -0
  34. package/src/utilities/modeTransitionReasons.js +101 -0
  35. package/src/utilities/tagParser.js +22 -3
  36. package/web-ui/build/index.html +2 -2
  37. package/web-ui/build/static/1c-D-8ReLUQ.js +1 -0
  38. package/web-ui/build/static/abap-NvrQD84d.js +1 -0
  39. package/web-ui/build/static/abnf-BxKbzF6d.js +1 -0
  40. package/web-ui/build/static/abnf-gQpmRWjd.js +1 -0
  41. package/web-ui/build/static/accesslog-BQLUo5Gi.js +1 -0
  42. package/web-ui/build/static/actionscript-3TeMZFpQ.js +1 -0
  43. package/web-ui/build/static/actionscript-w6DEnLr3.js +1 -0
  44. package/web-ui/build/static/ada-87XHdEXs.js +1 -0
  45. package/web-ui/build/static/ada-QztkYmC7.js +1 -0
  46. package/web-ui/build/static/agda-CUYeMLgB.js +1 -0
  47. package/web-ui/build/static/al-DrDn2-sA.js +1 -0
  48. package/web-ui/build/static/angelscript-D3Qw8kQa.js +1 -0
  49. package/web-ui/build/static/antlr4-CWEEpQ5q.js +1 -0
  50. package/web-ui/build/static/apache-Bme3xfdp.js +1 -0
  51. package/web-ui/build/static/apacheconf-BKOfs-cp.js +1 -0
  52. package/web-ui/build/static/apex-DswYOikL.js +1 -0
  53. package/web-ui/build/static/apl-CizhojF3.js +1 -0
  54. package/web-ui/build/static/applescript-D9M6q0r7.js +1 -0
  55. package/web-ui/build/static/applescript-DpP5T055.js +1 -0
  56. package/web-ui/build/static/aql-BqAlaha9.js +1 -0
  57. package/web-ui/build/static/arcade-DobNWm8j.js +1 -0
  58. package/web-ui/build/static/arduino-BeuGL09r.js +1 -0
  59. package/web-ui/build/static/arduino-BiF5cC7x.js +1 -0
  60. package/web-ui/build/static/arff-2H9PyLDr.js +1 -0
  61. package/web-ui/build/static/armasm-B6wc18B0.js +1 -0
  62. package/web-ui/build/static/asciidoc-DUF4xPDI.js +1 -0
  63. package/web-ui/build/static/asciidoc-TBH4m8SR.js +1 -0
  64. package/web-ui/build/static/asm6502-CzTI2B-y.js +1 -0
  65. package/web-ui/build/static/asmatmel-BYN0Xd3T.js +1 -0
  66. package/web-ui/build/static/aspectj-DXCMDgp7.js +1 -0
  67. package/web-ui/build/static/aspnet-lOvDpvP_.js +1 -0
  68. package/web-ui/build/static/autohotkey-CICk12uK.js +1 -0
  69. package/web-ui/build/static/autohotkey-DrG81PVL.js +1 -0
  70. package/web-ui/build/static/autoit-DFemtuhG.js +1 -0
  71. package/web-ui/build/static/autoit-D_K-jEWY.js +1 -0
  72. package/web-ui/build/static/avisynth-DOnmgjBO.js +1 -0
  73. package/web-ui/build/static/avrasm-rMDuGPFy.js +1 -0
  74. package/web-ui/build/static/avro-idl-CH5Xk5PQ.js +1 -0
  75. package/web-ui/build/static/awk-BvyFWX3C.js +1 -0
  76. package/web-ui/build/static/axapta-BWmF5MqT.js +1 -0
  77. package/web-ui/build/static/bash-Coyd2GnL.js +1 -0
  78. package/web-ui/build/static/bash-DSdj70Nv.js +1 -0
  79. package/web-ui/build/static/basic-CflyLZ31.js +1 -0
  80. package/web-ui/build/static/basic-Cs6QyVqS.js +1 -0
  81. package/web-ui/build/static/batch-DCDtzw83.js +1 -0
  82. package/web-ui/build/static/bbcode-MWdW7azN.js +1 -0
  83. package/web-ui/build/static/bicep-jQ4zhAw9.js +1 -0
  84. package/web-ui/build/static/birb-9f7Itiod.js +1 -0
  85. package/web-ui/build/static/bison-CIIUW5Cl.js +1 -0
  86. package/web-ui/build/static/bnf-B2w55bnT.js +1 -0
  87. package/web-ui/build/static/bnf-CUlbZGe7.js +1 -0
  88. package/web-ui/build/static/brainfuck-CaJZ1LRc.js +1 -0
  89. package/web-ui/build/static/brainfuck-eIkhMKej.js +1 -0
  90. package/web-ui/build/static/brightscript-BSLnJVmJ.js +1 -0
  91. package/web-ui/build/static/bro-YVCWDbPj.js +1 -0
  92. package/web-ui/build/static/bsl-Nm0_B_oa.js +1 -0
  93. package/web-ui/build/static/c-Dv7lr1UK.js +1 -0
  94. package/web-ui/build/static/c-like-C9IU26FO.js +1 -0
  95. package/web-ui/build/static/c-pfS3v02M.js +1 -0
  96. package/web-ui/build/static/cal-D4re7xDS.js +1 -0
  97. package/web-ui/build/static/capnproto-Dy75AQ6u.js +1 -0
  98. package/web-ui/build/static/ceylon-BNtjB2q0.js +1 -0
  99. package/web-ui/build/static/cfscript-8X2NpMn_.js +1 -0
  100. package/web-ui/build/static/chaiscript-CoXaTTY-.js +1 -0
  101. package/web-ui/build/static/cil-BluyliW6.js +1 -0
  102. package/web-ui/build/static/clean-Bj15gq3Q.js +1 -0
  103. package/web-ui/build/static/clojure-BH5xTDBp.js +1 -0
  104. package/web-ui/build/static/clojure-BqHsfJwr.js +1 -0
  105. package/web-ui/build/static/clojure-repl-B32b9bLV.js +1 -0
  106. package/web-ui/build/static/cmake-CyTE-1A0.js +1 -0
  107. package/web-ui/build/static/cmake-hiJ0lXa-.js +1 -0
  108. package/web-ui/build/static/cobol-BBnQUH8E.js +1 -0
  109. package/web-ui/build/static/coffeescript-BjrsNhLL.js +1 -0
  110. package/web-ui/build/static/coffeescript-C7WO1c8O.js +1 -0
  111. package/web-ui/build/static/concurnas-9EpupFAI.js +1 -0
  112. package/web-ui/build/static/coq-C-tt6nZE.js +1 -0
  113. package/web-ui/build/static/coq-CLCiqFzC.js +1 -0
  114. package/web-ui/build/static/cos-BQC1_Gov.js +1 -0
  115. package/web-ui/build/static/cpp-CH4XSTo7.js +1 -0
  116. package/web-ui/build/static/cpp-K8F2XScQ.js +1 -0
  117. package/web-ui/build/static/crmsh-DztNtPne.js +1 -0
  118. package/web-ui/build/static/crystal-kBqCeXtW.js +1 -0
  119. package/web-ui/build/static/crystal-sVG_HS9o.js +1 -0
  120. package/web-ui/build/static/csharp-4pb9Wc--.js +1 -0
  121. package/web-ui/build/static/csharp-D5QaxB-K.js +1 -0
  122. package/web-ui/build/static/cshtml-Cpytn-LL.js +1 -0
  123. package/web-ui/build/static/csp-BH6fPZVZ.js +1 -0
  124. package/web-ui/build/static/csp-WrjFExbk.js +1 -0
  125. package/web-ui/build/static/css-DJxZ20Kx.js +1 -0
  126. package/web-ui/build/static/css-extras-DwoO5sHq.js +1 -0
  127. package/web-ui/build/static/csv-DJb1XTwb.js +1 -0
  128. package/web-ui/build/static/cypher-CFN05H9J.js +1 -0
  129. package/web-ui/build/static/d-COFI-yfM.js +1 -0
  130. package/web-ui/build/static/d-DYHnLAnt.js +1 -0
  131. package/web-ui/build/static/dart-Bw35nKGj.js +1 -0
  132. package/web-ui/build/static/dart-C5gnqL08.js +1 -0
  133. package/web-ui/build/static/dataweave-DG_2euLu.js +1 -0
  134. package/web-ui/build/static/dax-BSpzdHUe.js +1 -0
  135. package/web-ui/build/static/delphi-Cl5NRXvZ.js +1 -0
  136. package/web-ui/build/static/dhall-CNefJtoo.js +1 -0
  137. package/web-ui/build/static/diff-DhqUs0Iy.js +1 -0
  138. package/web-ui/build/static/diff-KGSf4pWL.js +1 -0
  139. package/web-ui/build/static/django-5TgWQjd4.js +1 -0
  140. package/web-ui/build/static/django-DavZW8FP.js +1 -0
  141. package/web-ui/build/static/dns-CuF6RAET.js +1 -0
  142. package/web-ui/build/static/dns-zone-file-BcBMQ0BR.js +1 -0
  143. package/web-ui/build/static/docker-Dht8jS2j.js +1 -0
  144. package/web-ui/build/static/dockerfile-CjjL85ki.js +1 -0
  145. package/web-ui/build/static/dos-CVoaOHAQ.js +1 -0
  146. package/web-ui/build/static/dot-QcLwKXVK.js +1 -0
  147. package/web-ui/build/static/dsconfig-_1R6hLzq.js +1 -0
  148. package/web-ui/build/static/dts-B_Dzxmb6.js +1 -0
  149. package/web-ui/build/static/dust-xRpJXkxU.js +1 -0
  150. package/web-ui/build/static/ebnf-DPK9Hid-.js +1 -0
  151. package/web-ui/build/static/ebnf-OVlya1yQ.js +1 -0
  152. package/web-ui/build/static/editorconfig-CbCWWNal.js +1 -0
  153. package/web-ui/build/static/eiffel-CShmAG_u.js +1 -0
  154. package/web-ui/build/static/ejs-Dybq4vcI.js +1 -0
  155. package/web-ui/build/static/elixir-CzXoWmCJ.js +1 -0
  156. package/web-ui/build/static/elixir-DKVoqGbI.js +1 -0
  157. package/web-ui/build/static/elm-DfJge1Cy.js +1 -0
  158. package/web-ui/build/static/elm-wTttagz6.js +1 -0
  159. package/web-ui/build/static/erb-BqJOty-L.js +1 -0
  160. package/web-ui/build/static/erb-DEcQyddF.js +1 -0
  161. package/web-ui/build/static/erlang-DR0S8Dbq.js +1 -0
  162. package/web-ui/build/static/erlang-foLyt35P.js +1 -0
  163. package/web-ui/build/static/erlang-repl-KGaauP1D.js +1 -0
  164. package/web-ui/build/static/etlua-i5bjc318.js +1 -0
  165. package/web-ui/build/static/excel-Bxn-_4FK.js +1 -0
  166. package/web-ui/build/static/excel-formula-C3ittGUe.js +1 -0
  167. package/web-ui/build/static/factor-Cq9BFfPi.js +1 -0
  168. package/web-ui/build/static/false-Bq1Og8uV.js +1 -0
  169. package/web-ui/build/static/firestore-security-rules-BuWMvGkh.js +1 -0
  170. package/web-ui/build/static/fix-CJH3csBZ.js +1 -0
  171. package/web-ui/build/static/flix-DZVFkMZK.js +1 -0
  172. package/web-ui/build/static/flow-DGvt9eNT.js +1 -0
  173. package/web-ui/build/static/fortran-CRMIJaq3.js +1 -0
  174. package/web-ui/build/static/fortran-DYMWvRQk.js +1 -0
  175. package/web-ui/build/static/fsharp-DsngWUfx.js +1 -0
  176. package/web-ui/build/static/fsharp-iEMP2hGc.js +1 -0
  177. package/web-ui/build/static/ftl-6XZ6kVeO.js +1 -0
  178. package/web-ui/build/static/gams-BPxwyKlw.js +1 -0
  179. package/web-ui/build/static/gap-LiwKb7bd.js +1 -0
  180. package/web-ui/build/static/gauss-BMq9hJW2.js +1 -0
  181. package/web-ui/build/static/gcode-BhUKSjaC.js +1 -0
  182. package/web-ui/build/static/gcode-b-DQdN2W.js +1 -0
  183. package/web-ui/build/static/gdscript-DIZ0_yTx.js +1 -0
  184. package/web-ui/build/static/gedcom-B-Don8Su.js +1 -0
  185. package/web-ui/build/static/gherkin-BioIAP1n.js +1 -0
  186. package/web-ui/build/static/gherkin-Cly_guds.js +1 -0
  187. package/web-ui/build/static/git-CopW8z0r.js +1 -0
  188. package/web-ui/build/static/glsl-6ssjFzwf.js +1 -0
  189. package/web-ui/build/static/glsl-E_uyFQdl.js +1 -0
  190. package/web-ui/build/static/gml-CaO1S6wu.js +1 -0
  191. package/web-ui/build/static/gml-D9DYjC5y.js +1 -0
  192. package/web-ui/build/static/gn-B_qqVpR0.js +1 -0
  193. package/web-ui/build/static/go-DFaKy1Ay.js +1 -0
  194. package/web-ui/build/static/go-JLTG1uU-.js +1 -0
  195. package/web-ui/build/static/go-module-BGp5Ey97.js +1 -0
  196. package/web-ui/build/static/golo-BlbGqaMN.js +1 -0
  197. package/web-ui/build/static/gradle-wqmsj6uh.js +1 -0
  198. package/web-ui/build/static/graphql-7RIdAO4i.js +1 -0
  199. package/web-ui/build/static/groovy-3icIp5xU.js +1 -0
  200. package/web-ui/build/static/groovy-HPI8s9_9.js +1 -0
  201. package/web-ui/build/static/haml-CTkGGR02.js +1 -0
  202. package/web-ui/build/static/haml-Thxu3S1L.js +1 -0
  203. package/web-ui/build/static/handlebars-1DoYlhi8.js +1 -0
  204. package/web-ui/build/static/handlebars-i1BBTCzR.js +1 -0
  205. package/web-ui/build/static/haskell-A1VYHFSA.js +1 -0
  206. package/web-ui/build/static/haskell-C_DMih9U.js +1 -0
  207. package/web-ui/build/static/haxe-Cz5x4sAD.js +1 -0
  208. package/web-ui/build/static/haxe-DYRFmKkv.js +1 -0
  209. package/web-ui/build/static/hcl-BRcB2lym.js +1 -0
  210. package/web-ui/build/static/hlsl-DkyhfHB3.js +1 -0
  211. package/web-ui/build/static/hoon-Droh_30T.js +1 -0
  212. package/web-ui/build/static/hpkp-DTAbnc4g.js +1 -0
  213. package/web-ui/build/static/hsp-C0QnJZWI.js +1 -0
  214. package/web-ui/build/static/hsts-C21QOmcz.js +1 -0
  215. package/web-ui/build/static/htmlbars-Bjlkvm5m.js +1 -0
  216. package/web-ui/build/static/http-D0nJQkzK.js +1 -0
  217. package/web-ui/build/static/http-DRz4r8bD.js +1 -0
  218. package/web-ui/build/static/hy-BqiXsF4N.js +1 -0
  219. package/web-ui/build/static/ichigojam-BQi7PpBN.js +1 -0
  220. package/web-ui/build/static/icon-BufrPPND.js +1 -0
  221. package/web-ui/build/static/icu-message-format-BGFhE2gJ.js +1 -0
  222. package/web-ui/build/static/idris-CDCGxwUo.js +1 -0
  223. package/web-ui/build/static/iecst-CdwPGvCO.js +1 -0
  224. package/web-ui/build/static/ignore-CHdDzb39.js +1 -0
  225. package/web-ui/build/static/index-C9Fa_kgD.css +1 -0
  226. package/web-ui/build/static/index-D1KAbjnI.js +1 -0
  227. package/web-ui/build/static/index-DBYkW2lx.js +13 -0
  228. package/web-ui/build/static/index-DsoPopge.js +727 -0
  229. package/web-ui/build/static/inform7-Bpq3UO5w.js +1 -0
  230. package/web-ui/build/static/inform7-DmXu-aMH.js +1 -0
  231. package/web-ui/build/static/ini-DWUEQKxG.js +1 -0
  232. package/web-ui/build/static/ini-t3XdjCfA.js +1 -0
  233. package/web-ui/build/static/io-DfElp6yx.js +1 -0
  234. package/web-ui/build/static/irpf90-fx9_FB-t.js +1 -0
  235. package/web-ui/build/static/isbl-CcrRysr8.js +1 -0
  236. package/web-ui/build/static/j--Jx3nGHC.js +1 -0
  237. package/web-ui/build/static/java-OOMeJRRQ.js +1 -0
  238. package/web-ui/build/static/java-OTyqE2m1.js +1 -0
  239. package/web-ui/build/static/javadoc-CD-HiYEY.js +1 -0
  240. package/web-ui/build/static/javadoclike-CLv1_76Z.js +1 -0
  241. package/web-ui/build/static/javascript-C_j1lHAa.js +1 -0
  242. package/web-ui/build/static/javastacktrace-CIsSL13b.js +1 -0
  243. package/web-ui/build/static/jboss-cli-C9HktJFq.js +1 -0
  244. package/web-ui/build/static/jexl-Doro4Jcm.js +1 -0
  245. package/web-ui/build/static/jolie-C5wL2YdC.js +1 -0
  246. package/web-ui/build/static/jq-Bmi3HMEP.js +1 -0
  247. package/web-ui/build/static/js-extras-CQyLxL3s.js +1 -0
  248. package/web-ui/build/static/js-templates-DAigrjqA.js +1 -0
  249. package/web-ui/build/static/jsdoc-BJ_oa4xn.js +1 -0
  250. package/web-ui/build/static/json--C9O_45y.js +1 -0
  251. package/web-ui/build/static/json-CSGkCpU2.js +1 -0
  252. package/web-ui/build/static/json5-CcxKJla0.js +1 -0
  253. package/web-ui/build/static/jsonp-DjUgPOz0.js +1 -0
  254. package/web-ui/build/static/jsstacktrace-BpOw_ymZ.js +1 -0
  255. package/web-ui/build/static/jsx-otTTuJ8X.js +1 -0
  256. package/web-ui/build/static/julia-B1n4YHpM.js +1 -0
  257. package/web-ui/build/static/julia-bi12E6me.js +1 -0
  258. package/web-ui/build/static/julia-repl-DwzL74R7.js +1 -0
  259. package/web-ui/build/static/keepalived-cKzNWQWz.js +1 -0
  260. package/web-ui/build/static/keyman-BVOouxaa.js +1 -0
  261. package/web-ui/build/static/kotlin-BPuaNDRU.js +1 -0
  262. package/web-ui/build/static/kotlin-DvWwch7e.js +1 -0
  263. package/web-ui/build/static/kumir-DxiPnZla.js +1 -0
  264. package/web-ui/build/static/kusto-tc7F4iSM.js +1 -0
  265. package/web-ui/build/static/lasso-CuIxaW6G.js +1 -0
  266. package/web-ui/build/static/latex-DaVNZvfJ.js +1 -0
  267. package/web-ui/build/static/latex-Y-rAMd-m.js +1 -0
  268. package/web-ui/build/static/latte-BWApgl6V.js +1 -0
  269. package/web-ui/build/static/ldif-BjMOGnja.js +1 -0
  270. package/web-ui/build/static/leaf-BjXTc-gF.js +1 -0
  271. package/web-ui/build/static/less-BAoMgFHw.js +1 -0
  272. package/web-ui/build/static/less-BIXQ4mtM.js +1 -0
  273. package/web-ui/build/static/lilypond-B6avfRfg.js +1 -0
  274. package/web-ui/build/static/liquid-Bgux4iHZ.js +1 -0
  275. package/web-ui/build/static/lisp-DZwObPt9.js +1 -0
  276. package/web-ui/build/static/lisp-KuHBOL65.js +1 -0
  277. package/web-ui/build/static/livecodeserver-Cuv2a-Np.js +1 -0
  278. package/web-ui/build/static/livescript-B5joK5y1.js +1 -0
  279. package/web-ui/build/static/livescript-Cfl-5tRI.js +1 -0
  280. package/web-ui/build/static/llvm-Bq_MvIMt.js +1 -0
  281. package/web-ui/build/static/llvm-DDplxqNH.js +1 -0
  282. package/web-ui/build/static/log-C0UrUYNZ.js +1 -0
  283. package/web-ui/build/static/lolcode-Bpn0nZXI.js +1 -0
  284. package/web-ui/build/static/lsl-Baa3yssY.js +1 -0
  285. package/web-ui/build/static/lua-CmS7S4r8.js +1 -0
  286. package/web-ui/build/static/lua-CuTsqVUh.js +1 -0
  287. package/web-ui/build/static/magma-D80wNgLE.js +1 -0
  288. package/web-ui/build/static/makefile-BUfHdkgl.js +1 -0
  289. package/web-ui/build/static/makefile-DcdqPwtQ.js +1 -0
  290. package/web-ui/build/static/markdown-Dnk5E2xs.js +1 -0
  291. package/web-ui/build/static/markdown-dVGF22cZ.js +1 -0
  292. package/web-ui/build/static/markup-templating-DFEtKf2a.js +1 -0
  293. package/web-ui/build/static/mathematica-D6RpzMC4.js +1 -0
  294. package/web-ui/build/static/matlab-BNL791Vd.js +1 -0
  295. package/web-ui/build/static/matlab-CcJdErYu.js +1 -0
  296. package/web-ui/build/static/maxima-DtObzS0g.js +1 -0
  297. package/web-ui/build/static/maxscript-Boeo84Pc.js +1 -0
  298. package/web-ui/build/static/mel-CQDFYa9L.js +1 -0
  299. package/web-ui/build/static/mel-Dqbr8Ct3.js +1 -0
  300. package/web-ui/build/static/mercury-CtQIBvXV.js +1 -0
  301. package/web-ui/build/static/mermaid-Be11mdXJ.js +1 -0
  302. package/web-ui/build/static/mipsasm-Bzu7KAos.js +1 -0
  303. package/web-ui/build/static/mizar-CTwK6_XC.js +1 -0
  304. package/web-ui/build/static/mizar-DGSninkt.js +1 -0
  305. package/web-ui/build/static/mojolicious-B5J4ts83.js +1 -0
  306. package/web-ui/build/static/mongodb-Canys4Q-.js +1 -0
  307. package/web-ui/build/static/monkey-Bc8QeQKW.js +1 -0
  308. package/web-ui/build/static/monkey-BuakrB5T.js +1 -0
  309. package/web-ui/build/static/moonscript-CCCY-549.js +1 -0
  310. package/web-ui/build/static/moonscript-DgTN69ea.js +1 -0
  311. package/web-ui/build/static/n1ql-BeClvJbI.js +1 -0
  312. package/web-ui/build/static/n1ql-Bmrbwg5D.js +1 -0
  313. package/web-ui/build/static/n4js-BI7ajnA2.js +1 -0
  314. package/web-ui/build/static/nand2tetris-hdl-CTtO9tFK.js +1 -0
  315. package/web-ui/build/static/naniscript-ByLXiYB-.js +1 -0
  316. package/web-ui/build/static/nasm-DyRBXPTp.js +1 -0
  317. package/web-ui/build/static/neon-CuGxTU_0.js +1 -0
  318. package/web-ui/build/static/nevod-CWnxD5-I.js +1 -0
  319. package/web-ui/build/static/nginx-9_Wnc0a8.js +1 -0
  320. package/web-ui/build/static/nginx-YzYFF0YL.js +1 -0
  321. package/web-ui/build/static/nim-Dgg2r5_y.js +1 -0
  322. package/web-ui/build/static/nim-Dket4DOJ.js +1 -0
  323. package/web-ui/build/static/nix-CM2XsNVm.js +1 -0
  324. package/web-ui/build/static/nix-P756jRJz.js +1 -0
  325. package/web-ui/build/static/node-repl-BRadhyOu.js +1 -0
  326. package/web-ui/build/static/nsis-4AzWWTt3.js +1 -0
  327. package/web-ui/build/static/nsis-DawN0fp-.js +1 -0
  328. package/web-ui/build/static/objectivec-BHy8WXYe.js +1 -0
  329. package/web-ui/build/static/objectivec-CVvJfvIh.js +1 -0
  330. package/web-ui/build/static/ocaml-BXmkRrGk.js +1 -0
  331. package/web-ui/build/static/ocaml-D9blGtF-.js +1 -0
  332. package/web-ui/build/static/opencl-CrP8B7-Y.js +1 -0
  333. package/web-ui/build/static/openqasm-BF_FGc9C.js +1 -0
  334. package/web-ui/build/static/openscad-BX0LeVCC.js +1 -0
  335. package/web-ui/build/static/oxygene-Dv7-kaO-.js +1 -0
  336. package/web-ui/build/static/oz-DMw40m1E.js +1 -0
  337. package/web-ui/build/static/parigp-C6qS_vHR.js +1 -0
  338. package/web-ui/build/static/parser-CIccHpfs.js +1 -0
  339. package/web-ui/build/static/parser3-DY65kzTx.js +1 -0
  340. package/web-ui/build/static/pascal-Bd8OdL32.js +1 -0
  341. package/web-ui/build/static/pascaligo-Czv0M1Ke.js +1 -0
  342. package/web-ui/build/static/pcaxis-Ct9Xzb0v.js +1 -0
  343. package/web-ui/build/static/peoplecode-Qs_52P9e.js +1 -0
  344. package/web-ui/build/static/perl-C7ZXixEj.js +1 -0
  345. package/web-ui/build/static/perl-jarWhwwS.js +1 -0
  346. package/web-ui/build/static/pf-CUIEZmhu.js +1 -0
  347. package/web-ui/build/static/pgsql-Cd9Vguu1.js +1 -0
  348. package/web-ui/build/static/php-BkEHU_F0.js +1 -0
  349. package/web-ui/build/static/php-DgxitXwB.js +1 -0
  350. package/web-ui/build/static/php-extras-DZ4cqJZr.js +1 -0
  351. package/web-ui/build/static/php-template-CmDsJimC.js +1 -0
  352. package/web-ui/build/static/phpdoc-BuzuEwXH.js +1 -0
  353. package/web-ui/build/static/plaintext-B9rbdHym.js +1 -0
  354. package/web-ui/build/static/plsql-BsUyjIMQ.js +1 -0
  355. package/web-ui/build/static/pony-DByqIe1z.js +1 -0
  356. package/web-ui/build/static/powerquery-1VSf_dLA.js +1 -0
  357. package/web-ui/build/static/powershell-CBYqkmKw.js +1 -0
  358. package/web-ui/build/static/powershell-TsgmSwr2.js +1 -0
  359. package/web-ui/build/static/processing-C7SmsDmp.js +1 -0
  360. package/web-ui/build/static/processing-DdvVbwBS.js +1 -0
  361. package/web-ui/build/static/profile-CrLgDepu.js +1 -0
  362. package/web-ui/build/static/prolog-1ezqlvDI.js +1 -0
  363. package/web-ui/build/static/prolog-BBYyok9G.js +1 -0
  364. package/web-ui/build/static/promql-CWatQOpO.js +1 -0
  365. package/web-ui/build/static/properties-BJQxP8JR.js +1 -0
  366. package/web-ui/build/static/properties-CfR17w8n.js +1 -0
  367. package/web-ui/build/static/protobuf-Cfo3A4gN.js +1 -0
  368. package/web-ui/build/static/protobuf-DjV26D7V.js +1 -0
  369. package/web-ui/build/static/psl-DHNAOSYZ.js +1 -0
  370. package/web-ui/build/static/pug-DnizfuFH.js +1 -0
  371. package/web-ui/build/static/puppet-BCcVNhLH.js +1 -0
  372. package/web-ui/build/static/puppet-BmSRwm0u.js +1 -0
  373. package/web-ui/build/static/pure-l1UGfReS.js +1 -0
  374. package/web-ui/build/static/purebasic-Cm1PR5lC.js +1 -0
  375. package/web-ui/build/static/purebasic-Dxq0YRkO.js +1 -0
  376. package/web-ui/build/static/purescript-CpKroRLn.js +1 -0
  377. package/web-ui/build/static/python-C0PwNTef.js +1 -0
  378. package/web-ui/build/static/python-Cr-3O1IE.js +1 -0
  379. package/web-ui/build/static/python-repl-B1P7p6JA.js +1 -0
  380. package/web-ui/build/static/q-CL79K_i7.js +1 -0
  381. package/web-ui/build/static/q-DLSzzmR3.js +1 -0
  382. package/web-ui/build/static/qml-BeN40LEp.js +1 -0
  383. package/web-ui/build/static/qml-DIjR5p31.js +1 -0
  384. package/web-ui/build/static/qore-CrnBG9xB.js +1 -0
  385. package/web-ui/build/static/qsharp-B8sPnj52.js +1 -0
  386. package/web-ui/build/static/r-UubkOviq.js +1 -0
  387. package/web-ui/build/static/r-lT3ysYih.js +1 -0
  388. package/web-ui/build/static/racket-Czw_1lqD.js +1 -0
  389. package/web-ui/build/static/reason-D-_rWPty.js +1 -0
  390. package/web-ui/build/static/reasonml-BZkHaGWN.js +1 -0
  391. package/web-ui/build/static/regex-BjeMZDQs.js +1 -0
  392. package/web-ui/build/static/rego-OYluSFFo.js +1 -0
  393. package/web-ui/build/static/renpy-D1X5nAoT.js +1 -0
  394. package/web-ui/build/static/rest-DnlQgDnx.js +1 -0
  395. package/web-ui/build/static/rib-DtDxwFfu.js +1 -0
  396. package/web-ui/build/static/rip-D8vOYwVd.js +1 -0
  397. package/web-ui/build/static/roboconf-DtEUhHis.js +1 -0
  398. package/web-ui/build/static/roboconf-w-iqpst4.js +1 -0
  399. package/web-ui/build/static/robotframework-M9UnAH02.js +1 -0
  400. package/web-ui/build/static/routeros-CX0gciU5.js +1 -0
  401. package/web-ui/build/static/rsl-CZOvPQbk.js +1 -0
  402. package/web-ui/build/static/ruby-BEwdhTtL.js +1 -0
  403. package/web-ui/build/static/ruby-dlRf3rgu.js +1 -0
  404. package/web-ui/build/static/ruleslanguage-CKX7tlpI.js +1 -0
  405. package/web-ui/build/static/rust-7xat0n1g.js +1 -0
  406. package/web-ui/build/static/rust-DCpdcw_7.js +1 -0
  407. package/web-ui/build/static/sas-B9K83LkK.js +1 -0
  408. package/web-ui/build/static/sas-ijKPjRom.js +1 -0
  409. package/web-ui/build/static/sass-ByZaOmQh.js +1 -0
  410. package/web-ui/build/static/scala-B6tUDsIS.js +1 -0
  411. package/web-ui/build/static/scala-BZ4NRThT.js +1 -0
  412. package/web-ui/build/static/scheme-BmDQeIVd.js +1 -0
  413. package/web-ui/build/static/scheme-DIrkVtyr.js +1 -0
  414. package/web-ui/build/static/scilab-BUTG2a1V.js +1 -0
  415. package/web-ui/build/static/scss-CC2Rr7DZ.js +1 -0
  416. package/web-ui/build/static/scss-CG0LtoLt.js +1 -0
  417. package/web-ui/build/static/shell-DEPni1su.js +1 -0
  418. package/web-ui/build/static/shell-session-DxlJbQBl.js +1 -0
  419. package/web-ui/build/static/smali-C5QEAhGK.js +1 -0
  420. package/web-ui/build/static/smali-RgOjDrpG.js +1 -0
  421. package/web-ui/build/static/smalltalk-CCLKnQXy.js +1 -0
  422. package/web-ui/build/static/smalltalk-D2pTtTF6.js +1 -0
  423. package/web-ui/build/static/smarty-D5pb-235.js +1 -0
  424. package/web-ui/build/static/sml-CtXZ7rhO.js +1 -0
  425. package/web-ui/build/static/sml-DgsaUoao.js +1 -0
  426. package/web-ui/build/static/solidity-DLDSX1RV.js +1 -0
  427. package/web-ui/build/static/solution-file-BaDc2_E-.js +1 -0
  428. package/web-ui/build/static/soy-x9k9lQq1.js +1 -0
  429. package/web-ui/build/static/sparql-CEyFkY2d.js +1 -0
  430. package/web-ui/build/static/splunk-spl-Cnoeez_o.js +1 -0
  431. package/web-ui/build/static/sqf-BiFuoaL6.js +1 -0
  432. package/web-ui/build/static/sqf-IC3wZMuh.js +1 -0
  433. package/web-ui/build/static/sql-B0kmmGOU.js +1 -0
  434. package/web-ui/build/static/sql-CUJr2cg-.js +1 -0
  435. package/web-ui/build/static/sql_more-CWl75_kq.js +1 -0
  436. package/web-ui/build/static/squirrel-CcEHntJJ.js +1 -0
  437. package/web-ui/build/static/stan-5fBmEp2c.js +1 -0
  438. package/web-ui/build/static/stan-CAB7l4xW.js +1 -0
  439. package/web-ui/build/static/stata-Cg3Bl6d7.js +1 -0
  440. package/web-ui/build/static/step21-CZGJgHPf.js +1 -0
  441. package/web-ui/build/static/stylus-BO533InK.js +1 -0
  442. package/web-ui/build/static/stylus-DNWkkgmm.js +1 -0
  443. package/web-ui/build/static/subunit-BFopBokb.js +1 -0
  444. package/web-ui/build/static/swift-CalO-wab.js +1 -0
  445. package/web-ui/build/static/swift-mePvo3P4.js +1 -0
  446. package/web-ui/build/static/systemd-bKGRJ9Ha.js +1 -0
  447. package/web-ui/build/static/t4-cs-D7xxs1lK.js +1 -0
  448. package/web-ui/build/static/t4-templating-_11pVeD-.js +1 -0
  449. package/web-ui/build/static/t4-vb-CprOaKdB.js +1 -0
  450. package/web-ui/build/static/taggerscript-CEpPw-UD.js +1 -0
  451. package/web-ui/build/static/tap-CFFYSmjs.js +1 -0
  452. package/web-ui/build/static/tap-Dy3jliYv.js +1 -0
  453. package/web-ui/build/static/tcl-Bw3AVuiY.js +1 -0
  454. package/web-ui/build/static/tcl-CD50d_-j.js +1 -0
  455. package/web-ui/build/static/textile-CSeSEGjy.js +1 -0
  456. package/web-ui/build/static/thrift-00VB402i.js +1 -0
  457. package/web-ui/build/static/toml-DuFNkxHe.js +1 -0
  458. package/web-ui/build/static/tp-4CeaWqyI.js +1 -0
  459. package/web-ui/build/static/tremor-BnerOgTY.js +1 -0
  460. package/web-ui/build/static/tsx-XiNhF1ao.js +1 -0
  461. package/web-ui/build/static/tt2-CM6FV9KO.js +1 -0
  462. package/web-ui/build/static/turtle-JxpiTJEQ.js +1 -0
  463. package/web-ui/build/static/twig-C16bJf43.js +1 -0
  464. package/web-ui/build/static/twig-DQ-0wCvQ.js +1 -0
  465. package/web-ui/build/static/typescript-ILNg_Uvt.js +1 -0
  466. package/web-ui/build/static/typescript-chBpZOex.js +1 -0
  467. package/web-ui/build/static/typoscript-D2-lUjQX.js +1 -0
  468. package/web-ui/build/static/unrealscript-CwOA8REe.js +1 -0
  469. package/web-ui/build/static/uorazor-Dh1SAWKw.js +1 -0
  470. package/web-ui/build/static/uri-BF1wAQOC.js +1 -0
  471. package/web-ui/build/static/v-DUq5Mxzu.js +1 -0
  472. package/web-ui/build/static/vala-BYNy6zW2.js +1 -0
  473. package/web-ui/build/static/vala-CqGfs9Kv.js +1 -0
  474. package/web-ui/build/static/vbnet-BxH9jvRi.js +1 -0
  475. package/web-ui/build/static/vbnet-CJxJGhMO.js +1 -0
  476. package/web-ui/build/static/vbscript-OQ6kMcDV.js +1 -0
  477. package/web-ui/build/static/vbscript-html-CZ-QJ4ch.js +1 -0
  478. package/web-ui/build/static/velocity-B59YHwoP.js +1 -0
  479. package/web-ui/build/static/verilog--uW8iUzt.js +1 -0
  480. package/web-ui/build/static/verilog-DAQz3Gcl.js +1 -0
  481. package/web-ui/build/static/vhdl-5FrGi5Wx.js +1 -0
  482. package/web-ui/build/static/vhdl-C25AEZ8g.js +1 -0
  483. package/web-ui/build/static/vim-CW6uewUP.js +1 -0
  484. package/web-ui/build/static/vim-f3zGsJk1.js +1 -0
  485. package/web-ui/build/static/visual-basic-CoOTQEUn.js +1 -0
  486. package/web-ui/build/static/warpscript-DGouvP9I.js +1 -0
  487. package/web-ui/build/static/wasm-BZeW0TNm.js +1 -0
  488. package/web-ui/build/static/web-idl-Bw1mV_A4.js +1 -0
  489. package/web-ui/build/static/wiki-CZG2B_w1.js +1 -0
  490. package/web-ui/build/static/wolfram-CiMIUpaO.js +1 -0
  491. package/web-ui/build/static/wren-Bh9Sv_02.js +1 -0
  492. package/web-ui/build/static/x86asm-BhoPGTpG.js +1 -0
  493. package/web-ui/build/static/xeora-C5CM7V9L.js +1 -0
  494. package/web-ui/build/static/xl-WCHINiXA.js +1 -0
  495. package/web-ui/build/static/xml-DPAIpwAO.js +1 -0
  496. package/web-ui/build/static/xml-doc-CJxlhMe0.js +1 -0
  497. package/web-ui/build/static/xojo-BW0Z0CzB.js +1 -0
  498. package/web-ui/build/static/xquery-CwiBIiph.js +1 -0
  499. package/web-ui/build/static/xquery-De9QIea7.js +1 -0
  500. package/web-ui/build/static/yaml-CKzSgstB.js +1 -0
  501. package/web-ui/build/static/yaml-DIHBhXM_.js +1 -0
  502. package/web-ui/build/static/yang-Cn0PKttf.js +1 -0
  503. package/web-ui/build/static/zephir-CKVBh8TU.js +1 -0
  504. package/web-ui/build/static/zig-CetEB4NE.js +1 -0
  505. package/web-ui/build/static/1c-BbqxH6FC.js +0 -1
  506. package/web-ui/build/static/abap-UmHCZ0i1.js +0 -1
  507. package/web-ui/build/static/abnf-KQJciEU1.js +0 -1
  508. package/web-ui/build/static/abnf-wz9mo6UY.js +0 -1
  509. package/web-ui/build/static/accesslog-a-KjP-hj.js +0 -1
  510. package/web-ui/build/static/actionscript-C0kkFktE.js +0 -1
  511. package/web-ui/build/static/actionscript-CVfzNF7V.js +0 -1
  512. package/web-ui/build/static/ada-BtDccpCo.js +0 -1
  513. package/web-ui/build/static/ada-CsP-T950.js +0 -1
  514. package/web-ui/build/static/agda-DZ0Wv_k_.js +0 -1
  515. package/web-ui/build/static/al-Dieo4A36.js +0 -1
  516. package/web-ui/build/static/angelscript-Dxqs-qHl.js +0 -1
  517. package/web-ui/build/static/antlr4-2iwVxagJ.js +0 -1
  518. package/web-ui/build/static/apache-nHxOzinq.js +0 -1
  519. package/web-ui/build/static/apacheconf-DxkrSh6l.js +0 -1
  520. package/web-ui/build/static/apex-Broi_TKn.js +0 -1
  521. package/web-ui/build/static/apl-iAZYRZnE.js +0 -1
  522. package/web-ui/build/static/applescript-C-EKPlRf.js +0 -1
  523. package/web-ui/build/static/applescript-CVipha9P.js +0 -1
  524. package/web-ui/build/static/aql-Dn0E4LhK.js +0 -1
  525. package/web-ui/build/static/arcade-D5kIj1ez.js +0 -1
  526. package/web-ui/build/static/arduino-CydV4LN9.js +0 -1
  527. package/web-ui/build/static/arduino-DXaSwrry.js +0 -1
  528. package/web-ui/build/static/arff-yeDNnxkY.js +0 -1
  529. package/web-ui/build/static/armasm-DTu74JIo.js +0 -1
  530. package/web-ui/build/static/asciidoc-CLaqB1Gg.js +0 -1
  531. package/web-ui/build/static/asciidoc-DguUDHf5.js +0 -1
  532. package/web-ui/build/static/asm6502-C2c-H0Jh.js +0 -1
  533. package/web-ui/build/static/asmatmel-5xAyVq56.js +0 -1
  534. package/web-ui/build/static/aspectj-D5JvBRBv.js +0 -1
  535. package/web-ui/build/static/aspnet-DZfW9iG1.js +0 -1
  536. package/web-ui/build/static/autohotkey-3yT8W87y.js +0 -1
  537. package/web-ui/build/static/autohotkey-CxEWa3D5.js +0 -1
  538. package/web-ui/build/static/autoit-COt7rtxE.js +0 -1
  539. package/web-ui/build/static/autoit-DSva7SrP.js +0 -1
  540. package/web-ui/build/static/avisynth-DdpQ810f.js +0 -1
  541. package/web-ui/build/static/avrasm-BR0ncM-L.js +0 -1
  542. package/web-ui/build/static/avro-idl-DCISsbhh.js +0 -1
  543. package/web-ui/build/static/awk-Dd5HJDa0.js +0 -1
  544. package/web-ui/build/static/axapta-DWn0qUrW.js +0 -1
  545. package/web-ui/build/static/bash-B024Y1MV.js +0 -1
  546. package/web-ui/build/static/bash-qq4eTfOM.js +0 -1
  547. package/web-ui/build/static/basic-BWjvt39D.js +0 -1
  548. package/web-ui/build/static/basic-DVlMYdnX.js +0 -1
  549. package/web-ui/build/static/batch-Bb3dgg5p.js +0 -1
  550. package/web-ui/build/static/bbcode-DIclgs6t.js +0 -1
  551. package/web-ui/build/static/bicep-CXafPJf-.js +0 -1
  552. package/web-ui/build/static/birb-Btu8LQQE.js +0 -1
  553. package/web-ui/build/static/bison-CDXROKZw.js +0 -1
  554. package/web-ui/build/static/bnf-BB43qRSC.js +0 -1
  555. package/web-ui/build/static/bnf-ClpHUN6K.js +0 -1
  556. package/web-ui/build/static/brainfuck-BIgmc-EZ.js +0 -1
  557. package/web-ui/build/static/brainfuck-BJtPWa6l.js +0 -1
  558. package/web-ui/build/static/brightscript-9fU7OT4Y.js +0 -1
  559. package/web-ui/build/static/bro-DLftyzoO.js +0 -1
  560. package/web-ui/build/static/bsl-BWPnBSvd.js +0 -1
  561. package/web-ui/build/static/c-CD-936sv.js +0 -1
  562. package/web-ui/build/static/c-Do5sfWh2.js +0 -1
  563. package/web-ui/build/static/c-like-Cerk48hs.js +0 -1
  564. package/web-ui/build/static/cal-BfMsPDa0.js +0 -1
  565. package/web-ui/build/static/capnproto-mR83jTKG.js +0 -1
  566. package/web-ui/build/static/ceylon-Dt2cl-Ez.js +0 -1
  567. package/web-ui/build/static/cfscript-CFB-YYf8.js +0 -1
  568. package/web-ui/build/static/chaiscript-D3skeymm.js +0 -1
  569. package/web-ui/build/static/cil-DeczQ_ut.js +0 -1
  570. package/web-ui/build/static/clean-BXJPwGNL.js +0 -1
  571. package/web-ui/build/static/clojure-HHG1U7gj.js +0 -1
  572. package/web-ui/build/static/clojure-rEWdWYo_.js +0 -1
  573. package/web-ui/build/static/clojure-repl-CE4jr3K0.js +0 -1
  574. package/web-ui/build/static/cmake-DAzvKH16.js +0 -1
  575. package/web-ui/build/static/cmake-tD6uZl-y.js +0 -1
  576. package/web-ui/build/static/cobol-C2X6-bRz.js +0 -1
  577. package/web-ui/build/static/coffeescript-C9qjSh74.js +0 -1
  578. package/web-ui/build/static/coffeescript-DeHnRseX.js +0 -1
  579. package/web-ui/build/static/concurnas-DNuInYde.js +0 -1
  580. package/web-ui/build/static/coq-BQFo5XwN.js +0 -1
  581. package/web-ui/build/static/coq-Bmnum53S.js +0 -1
  582. package/web-ui/build/static/cos-D_0u-U2Y.js +0 -1
  583. package/web-ui/build/static/cpp-CoD9F6ol.js +0 -1
  584. package/web-ui/build/static/cpp-DB8R2f_c.js +0 -1
  585. package/web-ui/build/static/crmsh-DghD3B1u.js +0 -1
  586. package/web-ui/build/static/crystal-C63_SlFe.js +0 -1
  587. package/web-ui/build/static/crystal-GkhJSVpE.js +0 -1
  588. package/web-ui/build/static/csharp-Upa_qqR3.js +0 -1
  589. package/web-ui/build/static/csharp-kB8isYBD.js +0 -1
  590. package/web-ui/build/static/cshtml-BjeIyJW7.js +0 -1
  591. package/web-ui/build/static/csp-B9zvIPTA.js +0 -1
  592. package/web-ui/build/static/csp-hqOQW_KO.js +0 -1
  593. package/web-ui/build/static/css-BOqi7Sb8.js +0 -1
  594. package/web-ui/build/static/css-extras-NaDRDQYb.js +0 -1
  595. package/web-ui/build/static/csv-C7zNP0bV.js +0 -1
  596. package/web-ui/build/static/cypher-DzSGt09R.js +0 -1
  597. package/web-ui/build/static/d-DU9v7A7o.js +0 -1
  598. package/web-ui/build/static/d-YLgAiEhY.js +0 -1
  599. package/web-ui/build/static/dart-CLSlIEjd.js +0 -1
  600. package/web-ui/build/static/dart-Cv0y84fm.js +0 -1
  601. package/web-ui/build/static/dataweave-5zYOQCxv.js +0 -1
  602. package/web-ui/build/static/dax-C6xLX5GM.js +0 -1
  603. package/web-ui/build/static/delphi-D5HcUuVw.js +0 -1
  604. package/web-ui/build/static/dhall-C8OzwmzV.js +0 -1
  605. package/web-ui/build/static/diff-B030ZRbb.js +0 -1
  606. package/web-ui/build/static/diff-NCsBJCa7.js +0 -1
  607. package/web-ui/build/static/django-BeQDLTjX.js +0 -1
  608. package/web-ui/build/static/django-cC0WFEf1.js +0 -1
  609. package/web-ui/build/static/dns-CGMMfnr4.js +0 -1
  610. package/web-ui/build/static/dns-zone-file-908DrcaX.js +0 -1
  611. package/web-ui/build/static/docker-CE6F0WPR.js +0 -1
  612. package/web-ui/build/static/dockerfile-CUNa_EmN.js +0 -1
  613. package/web-ui/build/static/dos-CiM5tkPu.js +0 -1
  614. package/web-ui/build/static/dot-CZ0WLAzq.js +0 -1
  615. package/web-ui/build/static/dsconfig-Wo1ktU-F.js +0 -1
  616. package/web-ui/build/static/dts-BQJ7eIaM.js +0 -1
  617. package/web-ui/build/static/dust-DWnG4XQf.js +0 -1
  618. package/web-ui/build/static/ebnf-BqQRECjk.js +0 -1
  619. package/web-ui/build/static/ebnf-Cn_QHOpW.js +0 -1
  620. package/web-ui/build/static/editorconfig-CRE_lK21.js +0 -1
  621. package/web-ui/build/static/eiffel-h-dSP-Mu.js +0 -1
  622. package/web-ui/build/static/ejs-PVoVLwHk.js +0 -1
  623. package/web-ui/build/static/elixir-DVoAEVq_.js +0 -1
  624. package/web-ui/build/static/elixir-ZA65-L5t.js +0 -1
  625. package/web-ui/build/static/elm-ClRnxcFJ.js +0 -1
  626. package/web-ui/build/static/elm-Ttg_Dv8v.js +0 -1
  627. package/web-ui/build/static/erb-DCMJz1va.js +0 -1
  628. package/web-ui/build/static/erb-DDL7TB76.js +0 -1
  629. package/web-ui/build/static/erlang-01AtuMB8.js +0 -1
  630. package/web-ui/build/static/erlang-CLb6foRm.js +0 -1
  631. package/web-ui/build/static/erlang-repl-BwUG_X-H.js +0 -1
  632. package/web-ui/build/static/etlua-7jIebQwZ.js +0 -1
  633. package/web-ui/build/static/excel-BkKnPFBB.js +0 -1
  634. package/web-ui/build/static/excel-formula-dDd7nIUV.js +0 -1
  635. package/web-ui/build/static/factor-BLn5sqxN.js +0 -1
  636. package/web-ui/build/static/false-CNuRH4WA.js +0 -1
  637. package/web-ui/build/static/firestore-security-rules-Cr5e6oSH.js +0 -1
  638. package/web-ui/build/static/fix-NJ8G_1Tt.js +0 -1
  639. package/web-ui/build/static/flix-CBhTDcl9.js +0 -1
  640. package/web-ui/build/static/flow-DvgK1btf.js +0 -1
  641. package/web-ui/build/static/fortran-Bo-O9xtT.js +0 -1
  642. package/web-ui/build/static/fortran-Dj3v5L_m.js +0 -1
  643. package/web-ui/build/static/fsharp-5c6P8ZUH.js +0 -1
  644. package/web-ui/build/static/fsharp-C8bhnjfe.js +0 -1
  645. package/web-ui/build/static/ftl-8qE-2FJL.js +0 -1
  646. package/web-ui/build/static/gams-pbQRvKgr.js +0 -1
  647. package/web-ui/build/static/gap-CSFizYYs.js +0 -1
  648. package/web-ui/build/static/gauss-C0BsqEdj.js +0 -1
  649. package/web-ui/build/static/gcode-DMuLrnJF.js +0 -1
  650. package/web-ui/build/static/gcode-as5uEQOe.js +0 -1
  651. package/web-ui/build/static/gdscript-CSaSlSna.js +0 -1
  652. package/web-ui/build/static/gedcom-Cm86Ngut.js +0 -1
  653. package/web-ui/build/static/gherkin-C7FSJ6d3.js +0 -1
  654. package/web-ui/build/static/gherkin-C8wqlUqv.js +0 -1
  655. package/web-ui/build/static/git-DzPBmHlg.js +0 -1
  656. package/web-ui/build/static/glsl-D0_rPD58.js +0 -1
  657. package/web-ui/build/static/glsl-oUwWN2Xp.js +0 -1
  658. package/web-ui/build/static/gml-DNrWm4kb.js +0 -1
  659. package/web-ui/build/static/gml-JDXVyhBU.js +0 -1
  660. package/web-ui/build/static/gn-Bw-OsDH_.js +0 -1
  661. package/web-ui/build/static/go-B7Traa8J.js +0 -1
  662. package/web-ui/build/static/go-CaXFvYLQ.js +0 -1
  663. package/web-ui/build/static/go-module-BzKKnNxf.js +0 -1
  664. package/web-ui/build/static/golo-BokfRozl.js +0 -1
  665. package/web-ui/build/static/gradle-BBE_z74S.js +0 -1
  666. package/web-ui/build/static/graphql-DyqQ249q.js +0 -1
  667. package/web-ui/build/static/groovy-C9bdtULM.js +0 -1
  668. package/web-ui/build/static/groovy-CTYHYVKe.js +0 -1
  669. package/web-ui/build/static/haml--wzGI8rV.js +0 -1
  670. package/web-ui/build/static/haml-CP_fk9Du.js +0 -1
  671. package/web-ui/build/static/handlebars-BCN8I_fU.js +0 -1
  672. package/web-ui/build/static/handlebars-ClNs_EWN.js +0 -1
  673. package/web-ui/build/static/haskell-9-8FOmKL.js +0 -1
  674. package/web-ui/build/static/haskell-CeDcPoLF.js +0 -1
  675. package/web-ui/build/static/haxe-50b4_Uxu.js +0 -1
  676. package/web-ui/build/static/haxe-DV1jCpSQ.js +0 -1
  677. package/web-ui/build/static/hcl-BYAKEmjA.js +0 -1
  678. package/web-ui/build/static/hlsl-_V666kTg.js +0 -1
  679. package/web-ui/build/static/hoon-Xx5CPs_2.js +0 -1
  680. package/web-ui/build/static/hpkp-Dgu8ZS6s.js +0 -1
  681. package/web-ui/build/static/hsp-B0EcUcwP.js +0 -1
  682. package/web-ui/build/static/hsts-B1FQvgxb.js +0 -1
  683. package/web-ui/build/static/htmlbars-BGs3CWC2.js +0 -1
  684. package/web-ui/build/static/http-BvrKmZx0.js +0 -1
  685. package/web-ui/build/static/http-DUnWgTgI.js +0 -1
  686. package/web-ui/build/static/hy-StjWDayT.js +0 -1
  687. package/web-ui/build/static/ichigojam-Dla3EUZJ.js +0 -1
  688. package/web-ui/build/static/icon-CEA3F2cM.js +0 -1
  689. package/web-ui/build/static/icu-message-format-CIRX0H1E.js +0 -1
  690. package/web-ui/build/static/idris-z8g0EYLs.js +0 -1
  691. package/web-ui/build/static/iecst-D99vO-YV.js +0 -1
  692. package/web-ui/build/static/ignore-Bd9HTGo7.js +0 -1
  693. package/web-ui/build/static/index-9mcWHG2c.js +0 -13
  694. package/web-ui/build/static/index-BUtXAjd5.css +0 -1
  695. package/web-ui/build/static/index-CaMlGjdh.js +0 -834
  696. package/web-ui/build/static/index-D35injhb.js +0 -1
  697. package/web-ui/build/static/inform7-CKq2EPhg.js +0 -1
  698. package/web-ui/build/static/inform7-D-KIfWlv.js +0 -1
  699. package/web-ui/build/static/ini-CoFKaEFp.js +0 -1
  700. package/web-ui/build/static/ini-Cqh2VeO8.js +0 -1
  701. package/web-ui/build/static/io-A1ozJngc.js +0 -1
  702. package/web-ui/build/static/irpf90-DLGfrn4I.js +0 -1
  703. package/web-ui/build/static/isbl-dbyF-dLf.js +0 -1
  704. package/web-ui/build/static/j-ByhCpf6J.js +0 -1
  705. package/web-ui/build/static/java-DCbnRaHw.js +0 -1
  706. package/web-ui/build/static/java-LzFZofIb.js +0 -1
  707. package/web-ui/build/static/javadoc-CaKRZCNM.js +0 -1
  708. package/web-ui/build/static/javadoclike-CmvAiCvn.js +0 -1
  709. package/web-ui/build/static/javascript-Cpvfsh-z.js +0 -1
  710. package/web-ui/build/static/javastacktrace-CSUMoXqu.js +0 -1
  711. package/web-ui/build/static/jboss-cli-Cv0HXjqO.js +0 -1
  712. package/web-ui/build/static/jexl-CtUU8Pyc.js +0 -1
  713. package/web-ui/build/static/jolie-Ccbea_Ca.js +0 -1
  714. package/web-ui/build/static/jq-DQJKGqGL.js +0 -1
  715. package/web-ui/build/static/js-extras-BST2fo5a.js +0 -1
  716. package/web-ui/build/static/js-templates-T4aqrsni.js +0 -1
  717. package/web-ui/build/static/jsdoc-DZuHBRHT.js +0 -1
  718. package/web-ui/build/static/json-ByIlxtOm.js +0 -1
  719. package/web-ui/build/static/json-Dd-I2QR8.js +0 -1
  720. package/web-ui/build/static/json5-CIBARWXJ.js +0 -1
  721. package/web-ui/build/static/jsonp-Cs7yuq7_.js +0 -1
  722. package/web-ui/build/static/jsstacktrace-DrmYorp8.js +0 -1
  723. package/web-ui/build/static/jsx-Clb0obdm.js +0 -1
  724. package/web-ui/build/static/julia-BreTVWTb.js +0 -1
  725. package/web-ui/build/static/julia-qQfG7KSh.js +0 -1
  726. package/web-ui/build/static/julia-repl-wN09lKm6.js +0 -1
  727. package/web-ui/build/static/keepalived-DCyf_6ml.js +0 -1
  728. package/web-ui/build/static/keyman-B22SYHoa.js +0 -1
  729. package/web-ui/build/static/kotlin-DeVs-dNz.js +0 -1
  730. package/web-ui/build/static/kotlin-OMSaUY06.js +0 -1
  731. package/web-ui/build/static/kumir-Y-M6VOUG.js +0 -1
  732. package/web-ui/build/static/kusto-BnDldn0z.js +0 -1
  733. package/web-ui/build/static/lasso-BlUPIy-8.js +0 -1
  734. package/web-ui/build/static/latex-BGueNdTW.js +0 -1
  735. package/web-ui/build/static/latex-EZ8QNCjf.js +0 -1
  736. package/web-ui/build/static/latte-BkyPxQ_A.js +0 -1
  737. package/web-ui/build/static/ldif-BCIcpQI_.js +0 -1
  738. package/web-ui/build/static/leaf-BAG78wZj.js +0 -1
  739. package/web-ui/build/static/less-CFghh9Qx.js +0 -1
  740. package/web-ui/build/static/less-CbqfFGMD.js +0 -1
  741. package/web-ui/build/static/lilypond-BSpYx-1e.js +0 -1
  742. package/web-ui/build/static/liquid-CHhOmyTU.js +0 -1
  743. package/web-ui/build/static/lisp-QMm5BThy.js +0 -1
  744. package/web-ui/build/static/lisp-rizdk7e8.js +0 -1
  745. package/web-ui/build/static/livecodeserver-Bbh0nB2d.js +0 -1
  746. package/web-ui/build/static/livescript--QIhQOIm.js +0 -1
  747. package/web-ui/build/static/livescript-wYJ9C7MN.js +0 -1
  748. package/web-ui/build/static/llvm-qWkZ6M3-.js +0 -1
  749. package/web-ui/build/static/llvm-x8W93e2q.js +0 -1
  750. package/web-ui/build/static/log-D4PGnDHU.js +0 -1
  751. package/web-ui/build/static/lolcode-CHKS4ygP.js +0 -1
  752. package/web-ui/build/static/lsl-BEuQrHG7.js +0 -1
  753. package/web-ui/build/static/lua-Czrw1nZw.js +0 -1
  754. package/web-ui/build/static/lua-DUasTiYT.js +0 -1
  755. package/web-ui/build/static/magma-B16nUtxA.js +0 -1
  756. package/web-ui/build/static/makefile-BkqsEpVd.js +0 -1
  757. package/web-ui/build/static/makefile-DmoEDBJj.js +0 -1
  758. package/web-ui/build/static/markdown-FL-EZYmc.js +0 -1
  759. package/web-ui/build/static/markdown-N4YibSvf.js +0 -1
  760. package/web-ui/build/static/markup-templating-C1Q3BuB3.js +0 -1
  761. package/web-ui/build/static/mathematica-BZ50Ibwb.js +0 -1
  762. package/web-ui/build/static/matlab-CJFiUipn.js +0 -1
  763. package/web-ui/build/static/matlab-D-LwnpYW.js +0 -1
  764. package/web-ui/build/static/maxima-D1nKJHio.js +0 -1
  765. package/web-ui/build/static/maxscript-3ukqkynT.js +0 -1
  766. package/web-ui/build/static/mel-BpGPnIg7.js +0 -1
  767. package/web-ui/build/static/mel-DAIpK4k4.js +0 -1
  768. package/web-ui/build/static/mercury-BO6AXAJw.js +0 -1
  769. package/web-ui/build/static/mermaid-Cvu66kFB.js +0 -1
  770. package/web-ui/build/static/mipsasm-CP7z3_gg.js +0 -1
  771. package/web-ui/build/static/mizar-1tBmTbFY.js +0 -1
  772. package/web-ui/build/static/mizar-vPQKaBOY.js +0 -1
  773. package/web-ui/build/static/mojolicious-3wXNqu2Z.js +0 -1
  774. package/web-ui/build/static/mongodb-DkJ5x1x3.js +0 -1
  775. package/web-ui/build/static/monkey-DwU43sRn.js +0 -1
  776. package/web-ui/build/static/monkey-DzoqN4GB.js +0 -1
  777. package/web-ui/build/static/moonscript-CgTduPCr.js +0 -1
  778. package/web-ui/build/static/moonscript-Dzbt70Ke.js +0 -1
  779. package/web-ui/build/static/n1ql-BaVhxD8V.js +0 -1
  780. package/web-ui/build/static/n1ql-DUHSzjt3.js +0 -1
  781. package/web-ui/build/static/n4js-DZ7dW-NZ.js +0 -1
  782. package/web-ui/build/static/nand2tetris-hdl-C-ecDW8U.js +0 -1
  783. package/web-ui/build/static/naniscript-dzw8pH4q.js +0 -1
  784. package/web-ui/build/static/nasm-B0fCm10I.js +0 -1
  785. package/web-ui/build/static/neon-DRlFTieL.js +0 -1
  786. package/web-ui/build/static/nevod-BEzTxq7x.js +0 -1
  787. package/web-ui/build/static/nginx-BI0b7qBW.js +0 -1
  788. package/web-ui/build/static/nginx-BTbIqU-1.js +0 -1
  789. package/web-ui/build/static/nim-C1lYEnIA.js +0 -1
  790. package/web-ui/build/static/nim-mfWcJfe-.js +0 -1
  791. package/web-ui/build/static/nix-PO76YCUx.js +0 -1
  792. package/web-ui/build/static/nix-a-29l1yK.js +0 -1
  793. package/web-ui/build/static/node-repl-DDA8xtxU.js +0 -1
  794. package/web-ui/build/static/nsis-CLyYop70.js +0 -1
  795. package/web-ui/build/static/nsis-GiqT6oer.js +0 -1
  796. package/web-ui/build/static/objectivec-DF-fhcs7.js +0 -1
  797. package/web-ui/build/static/objectivec-DtXa6iKB.js +0 -1
  798. package/web-ui/build/static/ocaml-D4ptVFU5.js +0 -1
  799. package/web-ui/build/static/ocaml-DBtZVh9H.js +0 -1
  800. package/web-ui/build/static/opencl-0Z_Gtfzx.js +0 -1
  801. package/web-ui/build/static/openqasm-BafUOtKF.js +0 -1
  802. package/web-ui/build/static/openscad-DwQ7I7ze.js +0 -1
  803. package/web-ui/build/static/oxygene-Bt7r8sbX.js +0 -1
  804. package/web-ui/build/static/oz-Da-qnXiT.js +0 -1
  805. package/web-ui/build/static/parigp-D6mMgLkz.js +0 -1
  806. package/web-ui/build/static/parser-DUfGrzvv.js +0 -1
  807. package/web-ui/build/static/parser3-C4GwCqRM.js +0 -1
  808. package/web-ui/build/static/pascal-CKsIwy8z.js +0 -1
  809. package/web-ui/build/static/pascaligo-0Y00fNzu.js +0 -1
  810. package/web-ui/build/static/pcaxis-BFwUDXM-.js +0 -1
  811. package/web-ui/build/static/peoplecode-D8-HVebY.js +0 -1
  812. package/web-ui/build/static/perl-CoNeuMP2.js +0 -1
  813. package/web-ui/build/static/perl-Dk_kCckE.js +0 -1
  814. package/web-ui/build/static/pf-DWKdp2Z5.js +0 -1
  815. package/web-ui/build/static/pgsql-DQM_KLIL.js +0 -1
  816. package/web-ui/build/static/php-BLJ1RddK.js +0 -1
  817. package/web-ui/build/static/php-C4Q-EoBs.js +0 -1
  818. package/web-ui/build/static/php-extras-DH16mdyb.js +0 -1
  819. package/web-ui/build/static/php-template-Bgyau4h4.js +0 -1
  820. package/web-ui/build/static/phpdoc-CrGYZCs3.js +0 -1
  821. package/web-ui/build/static/plaintext--cxrnnIY.js +0 -1
  822. package/web-ui/build/static/plsql-DXxJ1j1M.js +0 -1
  823. package/web-ui/build/static/pony-Bk4QKmb5.js +0 -1
  824. package/web-ui/build/static/powerquery-BNY7Y_eg.js +0 -1
  825. package/web-ui/build/static/powershell-CjTGWZrY.js +0 -1
  826. package/web-ui/build/static/powershell-DKKBTrGN.js +0 -1
  827. package/web-ui/build/static/processing-CoCmNEON.js +0 -1
  828. package/web-ui/build/static/processing-dWxOKKau.js +0 -1
  829. package/web-ui/build/static/profile-DinHOW6q.js +0 -1
  830. package/web-ui/build/static/prolog-D8s2MxCR.js +0 -1
  831. package/web-ui/build/static/prolog-tfF0hJ7N.js +0 -1
  832. package/web-ui/build/static/promql-BbpNnYtf.js +0 -1
  833. package/web-ui/build/static/properties-BH5IGhCw.js +0 -1
  834. package/web-ui/build/static/properties-BtBGEFji.js +0 -1
  835. package/web-ui/build/static/protobuf-Bq57MNXu.js +0 -1
  836. package/web-ui/build/static/protobuf-FQ5v_34f.js +0 -1
  837. package/web-ui/build/static/psl-DH3KK34y.js +0 -1
  838. package/web-ui/build/static/pug-BH0-FqNN.js +0 -1
  839. package/web-ui/build/static/puppet-D6IQ0-e_.js +0 -1
  840. package/web-ui/build/static/puppet-DhDhkrHQ.js +0 -1
  841. package/web-ui/build/static/pure-D-zzqNXt.js +0 -1
  842. package/web-ui/build/static/purebasic-C3ZHqBxR.js +0 -1
  843. package/web-ui/build/static/purebasic-DTWXM0iu.js +0 -1
  844. package/web-ui/build/static/purescript-C9dMZi0f.js +0 -1
  845. package/web-ui/build/static/python-kp4UxaFP.js +0 -1
  846. package/web-ui/build/static/python-repl-Bugvu_dB.js +0 -1
  847. package/web-ui/build/static/python-vnX1mWhI.js +0 -1
  848. package/web-ui/build/static/q-BRREgX-f.js +0 -1
  849. package/web-ui/build/static/q-V3GLDm_n.js +0 -1
  850. package/web-ui/build/static/qml-DfQdRLrG.js +0 -1
  851. package/web-ui/build/static/qml-i0MLAsR_.js +0 -1
  852. package/web-ui/build/static/qore-CFRmreiI.js +0 -1
  853. package/web-ui/build/static/qsharp-BpxCSpMu.js +0 -1
  854. package/web-ui/build/static/r-BFhn56zx.js +0 -1
  855. package/web-ui/build/static/r-D19R1VlL.js +0 -1
  856. package/web-ui/build/static/racket-D6Do3XQN.js +0 -1
  857. package/web-ui/build/static/reason-BLxB_uYS.js +0 -1
  858. package/web-ui/build/static/reasonml-CR2O5QXc.js +0 -1
  859. package/web-ui/build/static/regex-ExQT3DD-.js +0 -1
  860. package/web-ui/build/static/rego-BG1H2Grq.js +0 -1
  861. package/web-ui/build/static/renpy-DPYPiSEa.js +0 -1
  862. package/web-ui/build/static/rest-BXeudWmA.js +0 -1
  863. package/web-ui/build/static/rib-B50qbZUa.js +0 -1
  864. package/web-ui/build/static/rip-Oy08VNTd.js +0 -1
  865. package/web-ui/build/static/roboconf-BJlNdB3f.js +0 -1
  866. package/web-ui/build/static/roboconf-BWCGa42W.js +0 -1
  867. package/web-ui/build/static/robotframework-CrL-sTEo.js +0 -1
  868. package/web-ui/build/static/routeros-BV_7BLfU.js +0 -1
  869. package/web-ui/build/static/rsl-3QUMrc7D.js +0 -1
  870. package/web-ui/build/static/ruby-CocpOjC3.js +0 -1
  871. package/web-ui/build/static/ruby-xGmQ173X.js +0 -1
  872. package/web-ui/build/static/ruleslanguage-Dvh9iMSY.js +0 -1
  873. package/web-ui/build/static/rust-BZNigb_r.js +0 -1
  874. package/web-ui/build/static/rust-DwNjoaBZ.js +0 -1
  875. package/web-ui/build/static/sas-BJAlmleu.js +0 -1
  876. package/web-ui/build/static/sas-DMbLpxbs.js +0 -1
  877. package/web-ui/build/static/sass-DqYzzuDm.js +0 -1
  878. package/web-ui/build/static/scala-Bh2FkhWY.js +0 -1
  879. package/web-ui/build/static/scala-CBjzCnx6.js +0 -1
  880. package/web-ui/build/static/scheme-D2RTBnn4.js +0 -1
  881. package/web-ui/build/static/scheme-YLsRQlUd.js +0 -1
  882. package/web-ui/build/static/scilab-CXvKl1CZ.js +0 -1
  883. package/web-ui/build/static/scss-BE2dzDGl.js +0 -1
  884. package/web-ui/build/static/scss-J1E3J7lz.js +0 -1
  885. package/web-ui/build/static/shell-AzmPYKrI.js +0 -1
  886. package/web-ui/build/static/shell-session-C5dCMLWG.js +0 -1
  887. package/web-ui/build/static/smali-C88i6nEO.js +0 -1
  888. package/web-ui/build/static/smali-Ddnoiqfy.js +0 -1
  889. package/web-ui/build/static/smalltalk-C72n_dxy.js +0 -1
  890. package/web-ui/build/static/smalltalk-CPfRSVZs.js +0 -1
  891. package/web-ui/build/static/smarty-Dypt4i8b.js +0 -1
  892. package/web-ui/build/static/sml-BGGb-k8a.js +0 -1
  893. package/web-ui/build/static/sml-BODNZSm_.js +0 -1
  894. package/web-ui/build/static/solidity-D6wtTexR.js +0 -1
  895. package/web-ui/build/static/solution-file-5lZW0oOE.js +0 -1
  896. package/web-ui/build/static/soy-y16jnIDo.js +0 -1
  897. package/web-ui/build/static/sparql-DrdB7SPu.js +0 -1
  898. package/web-ui/build/static/splunk-spl-Doyv_CQR.js +0 -1
  899. package/web-ui/build/static/sqf-BSSKLJcS.js +0 -1
  900. package/web-ui/build/static/sqf-C27vJSdk.js +0 -1
  901. package/web-ui/build/static/sql-BGAlidwo.js +0 -1
  902. package/web-ui/build/static/sql-D632T_PJ.js +0 -1
  903. package/web-ui/build/static/sql_more-DxYQWBWa.js +0 -1
  904. package/web-ui/build/static/squirrel-BtynEITS.js +0 -1
  905. package/web-ui/build/static/stan-_WgX5GWP.js +0 -1
  906. package/web-ui/build/static/stan-oF5qmMKy.js +0 -1
  907. package/web-ui/build/static/stata-wLOz3xoi.js +0 -1
  908. package/web-ui/build/static/step21-BbsA7W89.js +0 -1
  909. package/web-ui/build/static/stylus-DtfRtkyR.js +0 -1
  910. package/web-ui/build/static/stylus-vEf2q3jH.js +0 -1
  911. package/web-ui/build/static/subunit-BRaQkxqR.js +0 -1
  912. package/web-ui/build/static/swift-DT015mq6.js +0 -1
  913. package/web-ui/build/static/swift-Drl9Vhia.js +0 -1
  914. package/web-ui/build/static/systemd-DWH7nh0Q.js +0 -1
  915. package/web-ui/build/static/t4-cs-BqiTmoCX.js +0 -1
  916. package/web-ui/build/static/t4-templating-Bof0eAYR.js +0 -1
  917. package/web-ui/build/static/t4-vb-8nW7Q4TI.js +0 -1
  918. package/web-ui/build/static/taggerscript-Dmu4nEaQ.js +0 -1
  919. package/web-ui/build/static/tap-B19AuLWq.js +0 -1
  920. package/web-ui/build/static/tap-DOdxz1Vj.js +0 -1
  921. package/web-ui/build/static/tcl-BAqD74MG.js +0 -1
  922. package/web-ui/build/static/tcl-DOM7n3Vd.js +0 -1
  923. package/web-ui/build/static/textile-DFXg54i4.js +0 -1
  924. package/web-ui/build/static/thrift-BGDpLcp_.js +0 -1
  925. package/web-ui/build/static/toml-J8m0tgag.js +0 -1
  926. package/web-ui/build/static/tp-BQkDcUXJ.js +0 -1
  927. package/web-ui/build/static/tremor-hOnek1Vr.js +0 -1
  928. package/web-ui/build/static/tsx-dhyw01LJ.js +0 -1
  929. package/web-ui/build/static/tt2-BZlvT5MG.js +0 -1
  930. package/web-ui/build/static/turtle-CEGacgOB.js +0 -1
  931. package/web-ui/build/static/twig-C7j-eyaz.js +0 -1
  932. package/web-ui/build/static/twig-MQre7lvF.js +0 -1
  933. package/web-ui/build/static/typescript-Dq5ZmyEV.js +0 -1
  934. package/web-ui/build/static/typescript-qPtHjmzW.js +0 -1
  935. package/web-ui/build/static/typoscript-B0sirAiC.js +0 -1
  936. package/web-ui/build/static/unrealscript-D_kXyIkW.js +0 -1
  937. package/web-ui/build/static/uorazor-8wB8nSC0.js +0 -1
  938. package/web-ui/build/static/uri-CaeHYk3y.js +0 -1
  939. package/web-ui/build/static/v-CYZwlqI2.js +0 -1
  940. package/web-ui/build/static/vala-DDkZds8N.js +0 -1
  941. package/web-ui/build/static/vala-zKk5gtUp.js +0 -1
  942. package/web-ui/build/static/vbnet-DY8Bh7zr.js +0 -1
  943. package/web-ui/build/static/vbnet-Z7zud-Nk.js +0 -1
  944. package/web-ui/build/static/vbscript-0xsGTIri.js +0 -1
  945. package/web-ui/build/static/vbscript-html-CQJqQ_tQ.js +0 -1
  946. package/web-ui/build/static/velocity-Dqe4ZgAo.js +0 -1
  947. package/web-ui/build/static/verilog-B0uVsHQr.js +0 -1
  948. package/web-ui/build/static/verilog-DLybxDJj.js +0 -1
  949. package/web-ui/build/static/vhdl-CP0JnbrM.js +0 -1
  950. package/web-ui/build/static/vhdl-CRV0TYO8.js +0 -1
  951. package/web-ui/build/static/vim-06LYR_Gs.js +0 -1
  952. package/web-ui/build/static/vim-DGgQcHr4.js +0 -1
  953. package/web-ui/build/static/visual-basic-BUWV1u5S.js +0 -1
  954. package/web-ui/build/static/warpscript-DKb8tXBH.js +0 -1
  955. package/web-ui/build/static/wasm-8E-n1sJQ.js +0 -1
  956. package/web-ui/build/static/web-idl-Bynfh0Gg.js +0 -1
  957. package/web-ui/build/static/wiki-Ck0ehuwt.js +0 -1
  958. package/web-ui/build/static/wolfram-BE1k6uuJ.js +0 -1
  959. package/web-ui/build/static/wren-Ce_CEEnI.js +0 -1
  960. package/web-ui/build/static/x86asm-DZUKtGAe.js +0 -1
  961. package/web-ui/build/static/xeora-DvXhnkv6.js +0 -1
  962. package/web-ui/build/static/xl-B1lBPZU_.js +0 -1
  963. package/web-ui/build/static/xml-D3p5hl_7.js +0 -1
  964. package/web-ui/build/static/xml-doc-CF8VvGyG.js +0 -1
  965. package/web-ui/build/static/xojo-D-WnMFdK.js +0 -1
  966. package/web-ui/build/static/xquery-BNNLxmJw.js +0 -1
  967. package/web-ui/build/static/xquery-D-mYtMjU.js +0 -1
  968. package/web-ui/build/static/yaml-a5-6TRUw.js +0 -1
  969. package/web-ui/build/static/yaml-aH3GAAQN.js +0 -1
  970. package/web-ui/build/static/yang-B2qT8oVg.js +0 -1
  971. package/web-ui/build/static/zephir-yxlgFmpA.js +0 -1
  972. package/web-ui/build/static/zig-B_AoM5P0.js +0 -1
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Integration tests for the memoryTool `reminisce` action.
3
+ *
4
+ * Exercises the full path: tool.execute({action: 'reminisce', ...}) →
5
+ * _executeReminisce → agentPool.getAgent → conversationQuery.<mode> →
6
+ * shaped result. The per-mode semantics are unit-tested exhaustively in
7
+ * services/__tests__/conversationQuery.test.js; these tests focus on the
8
+ * wiring: action validation, context requirements, agent fetching, and
9
+ * error paths.
10
+ */
11
+
12
+ import { jest, describe, test, expect, beforeEach } from '@jest/globals';
13
+ import { createMockLogger } from '../../__test-utils__/mockFactories.js';
14
+
15
+ jest.unstable_mockModule('../../services/memoryService.js', () => ({
16
+ getMemoryService: jest.fn(() => ({
17
+ initialize: jest.fn().mockResolvedValue(undefined),
18
+ })),
19
+ }));
20
+
21
+ const { default: MemoryTool } = await import('../memoryTool.js');
22
+
23
+ function makeMessages(n) {
24
+ return Array.from({ length: n }, (_, i) => ({
25
+ id: `msg_${String(i).padStart(4, '0')}`,
26
+ role: i % 2 === 0 ? 'user' : 'assistant',
27
+ content: `message ${i}${i === 5 ? ' contains special keyword' : ''}`,
28
+ createdAt: new Date(Date.UTC(2026, 0, 1, 0, 0, i)).toISOString(),
29
+ tokenUsage: { totalTokens: 10 },
30
+ toolExecutions: i === 7 ? [{ toolId: 'terminal', input: 'ls -la' }] : [],
31
+ }));
32
+ }
33
+
34
+ function makeSetup({ messages = null, agentExists = true } = {}) {
35
+ const tool = new MemoryTool({}, createMockLogger());
36
+ const agent = agentExists ? {
37
+ id: 'agent-1',
38
+ conversations: messages ? { full: { messages } } : { full: { messages: makeMessages(20) } },
39
+ } : null;
40
+ const agentPool = {
41
+ getAgent: jest.fn().mockResolvedValue(agent),
42
+ };
43
+ const context = { agentId: 'agent-1', agentPool };
44
+ return { tool, agent, agentPool, context };
45
+ }
46
+
47
+ describe('memoryTool reminisce — wiring', () => {
48
+ let tool, context, agentPool;
49
+ beforeEach(() => {
50
+ ({ tool, context, agentPool } = makeSetup());
51
+ });
52
+
53
+ test('overview mode returns archive stats + timeline', async () => {
54
+ const out = await tool.execute({ action: 'reminisce', mode: 'overview' }, context);
55
+ expect(out.success).toBe(true);
56
+ expect(out.mode).toBe('overview');
57
+ expect(out.result.totalMessages).toBe(20);
58
+ expect(out.result.timeline.length).toBeGreaterThan(0);
59
+ expect(out.result.timeline[0].messageId).toBe('msg_0000');
60
+ });
61
+
62
+ test('range mode paginates', async () => {
63
+ const out = await tool.execute(
64
+ { action: 'reminisce', mode: 'range', offset: 5, limit: 3 },
65
+ context
66
+ );
67
+ expect(out.success).toBe(true);
68
+ expect(out.result.messages.length).toBe(3);
69
+ expect(out.result.messages[0].messageId).toBe('msg_0005');
70
+ });
71
+
72
+ test('search finds matches in content', async () => {
73
+ const out = await tool.execute(
74
+ { action: 'reminisce', mode: 'search', query: 'special keyword' },
75
+ context
76
+ );
77
+ expect(out.success).toBe(true);
78
+ expect(out.result.matches.length).toBeGreaterThan(0);
79
+ expect(out.result.matches[0].messageId).toBe('msg_0005');
80
+ });
81
+
82
+ test('around resolves a bookmarked messageId', async () => {
83
+ const out = await tool.execute(
84
+ { action: 'reminisce', mode: 'around', messageId: 'msg_0010', before: 2, after: 2 },
85
+ context
86
+ );
87
+ expect(out.success).toBe(true);
88
+ expect(out.result.targetFound).toBe(true);
89
+ expect(out.result.messages.map(m => m.messageId)).toContain('msg_0010');
90
+ });
91
+
92
+ test('byTool lists tool calls', async () => {
93
+ const out = await tool.execute(
94
+ { action: 'reminisce', mode: 'byTool' },
95
+ context
96
+ );
97
+ expect(out.success).toBe(true);
98
+ expect(out.result.toolCalls.length).toBe(1);
99
+ expect(out.result.toolCalls[0].toolId).toBe('terminal');
100
+ expect(out.result.toolCalls[0].messageId).toBe('msg_0007');
101
+ });
102
+
103
+ test('read returns the whole message when no window is specified', async () => {
104
+ const out = await tool.execute(
105
+ { action: 'reminisce', mode: 'read', messageId: 'msg_0005' },
106
+ context
107
+ );
108
+ expect(out.success).toBe(true);
109
+ expect(out.result.targetFound).toBe(true);
110
+ expect(out.result.message.messageId).toBe('msg_0005');
111
+ expect(out.result.message.contentWindow.kind).toBe('full');
112
+ expect(out.result.message.content).toContain('special keyword');
113
+ });
114
+
115
+ test('read with lineFrom/lineTo returns a line slice', async () => {
116
+ // Replace msg_0005 with a multi-line message so the slice is meaningful.
117
+ const bigContent = Array.from({ length: 50 }, (_, i) => `line ${i + 1}`).join('\n');
118
+ const localMessages = makeMessages(20);
119
+ localMessages[5] = { ...localMessages[5], content: bigContent };
120
+ const local = makeSetup({ messages: localMessages });
121
+
122
+ const out = await local.tool.execute(
123
+ { action: 'reminisce', mode: 'read', messageId: 'msg_0005',
124
+ lineFrom: 10, lineTo: 14 },
125
+ local.context
126
+ );
127
+ expect(out.result.message.contentWindow.kind).toBe('lines');
128
+ expect(out.result.message.contentWindow.totalLines).toBe(50);
129
+ const lines = out.result.message.content.split('\n');
130
+ expect(lines).toEqual(['line 10', 'line 11', 'line 12', 'line 13', 'line 14']);
131
+ });
132
+
133
+ test('read with contentFrom/contentTo returns a char slice', async () => {
134
+ const localMessages = makeMessages(20);
135
+ localMessages[5] = { ...localMessages[5], content: 'abcdefghijklmnopqrstuvwxyz' };
136
+ const local = makeSetup({ messages: localMessages });
137
+
138
+ const out = await local.tool.execute(
139
+ { action: 'reminisce', mode: 'read', messageId: 'msg_0005',
140
+ contentFrom: 5, contentTo: 10 },
141
+ local.context
142
+ );
143
+ expect(out.result.message.contentWindow.kind).toBe('chars');
144
+ expect(out.result.message.content).toBe('fghij');
145
+ });
146
+
147
+ test('read with unknown messageId returns targetFound=false (not a crash)', async () => {
148
+ const out = await tool.execute(
149
+ { action: 'reminisce', mode: 'read', messageId: 'msg_hallucinated' },
150
+ context
151
+ );
152
+ expect(out.success).toBe(true);
153
+ expect(out.result.targetFound).toBe(false);
154
+ expect(out.result.message).toBeNull();
155
+ });
156
+ });
157
+
158
+ describe('memoryTool reminisce — error paths', () => {
159
+ test('invalid mode returns a clean error', async () => {
160
+ const { tool, context } = makeSetup();
161
+ const out = await tool.execute({ action: 'reminisce', mode: 'bogus' }, context);
162
+ expect(out.success).toBe(false);
163
+ expect(out.error).toMatch(/mode must be one of/);
164
+ });
165
+
166
+ test('missing mode returns a clean error (not a crash)', async () => {
167
+ const { tool, context } = makeSetup();
168
+ const out = await tool.execute({ action: 'reminisce' }, context);
169
+ expect(out.success).toBe(false);
170
+ expect(out.error).toMatch(/mode must be one of/);
171
+ });
172
+
173
+ test('missing agentPool in context returns a clean error', async () => {
174
+ const { tool } = makeSetup();
175
+ const out = await tool.execute(
176
+ { action: 'reminisce', mode: 'overview' },
177
+ { agentId: 'agent-1' /* no agentPool */ }
178
+ );
179
+ expect(out.success).toBe(false);
180
+ expect(out.error).toMatch(/agentPool/);
181
+ });
182
+
183
+ test('agent not found returns a clean error', async () => {
184
+ const { tool, context } = makeSetup({ agentExists: false });
185
+ const out = await tool.execute({ action: 'reminisce', mode: 'overview' }, context);
186
+ expect(out.success).toBe(false);
187
+ expect(out.error).toMatch(/not found/);
188
+ });
189
+
190
+ test('agent with no conversation archive returns success with empty flag', async () => {
191
+ const tool = new MemoryTool({}, createMockLogger());
192
+ const agentPool = {
193
+ getAgent: jest.fn().mockResolvedValue({ id: 'a', conversations: {} }),
194
+ };
195
+ const out = await tool.execute(
196
+ { action: 'reminisce', mode: 'overview' },
197
+ { agentId: 'a', agentPool }
198
+ );
199
+ expect(out.success).toBe(true);
200
+ expect(out.result.empty).toBe(true);
201
+ });
202
+ });
203
+
204
+ describe('memoryTool reminisce — archive durability through compaction', () => {
205
+ /*
206
+ * Contract test: even after compaction writes to conversations[model],
207
+ * reminisce must still serve the pre-compaction messages from
208
+ * conversations.full. This simulates the durability invariant that the
209
+ * whole feature rests on.
210
+ */
211
+ test('reads conversations.full even when per-model compacted views exist', async () => {
212
+ const fullMessages = makeMessages(10);
213
+ const compactedMessages = [
214
+ { id: 'compacted_1', role: 'system', content: '[summary of 10 messages]',
215
+ createdAt: new Date().toISOString(), tokenUsage: { totalTokens: 200 } },
216
+ ];
217
+ const agent = {
218
+ id: 'a',
219
+ conversations: {
220
+ full: { messages: fullMessages },
221
+ 'gpt-5': { messages: compactedMessages }, // compacted view
222
+ 'claude-opus': { messages: compactedMessages }, // another compacted view
223
+ },
224
+ };
225
+ const tool = new MemoryTool({}, createMockLogger());
226
+ const context = { agentId: 'a', agentPool: { getAgent: () => Promise.resolve(agent) } };
227
+
228
+ const out = await tool.execute({ action: 'reminisce', mode: 'overview' }, context);
229
+ expect(out.success).toBe(true);
230
+ // totalMessages reflects the FULL archive, not the compacted view.
231
+ expect(out.result.totalMessages).toBe(10);
232
+ // A messageId from the original archive must still resolve via around.
233
+ const aroundOut = await tool.execute(
234
+ { action: 'reminisce', mode: 'around', messageId: 'msg_0005', before: 1, after: 1 },
235
+ context
236
+ );
237
+ expect(aroundOut.result.targetFound).toBe(true);
238
+ expect(aroundOut.result.messages.some(m => m.messageId === 'msg_0005')).toBe(true);
239
+ });
240
+
241
+ test('bookmark stability across simulated conversation growth', async () => {
242
+ // An agent bookmarks msg_0005 in turn 1. Conversation grows to 200
243
+ // messages over many turns. reminisce still resolves the bookmark.
244
+ const messages = makeMessages(20);
245
+ const bookmark = 'msg_0005';
246
+ const agent = { id: 'a', conversations: { full: { messages } } };
247
+ const tool = new MemoryTool({}, createMockLogger());
248
+ const context = { agentId: 'a', agentPool: { getAgent: () => Promise.resolve(agent) } };
249
+
250
+ // Simulate archive growth: append 180 more messages.
251
+ for (let i = 20; i < 200; i++) {
252
+ messages.push({
253
+ id: `msg_${String(i).padStart(4, '0')}`,
254
+ role: 'assistant',
255
+ content: `later message ${i}`,
256
+ createdAt: new Date(Date.UTC(2026, 0, 2, 0, 0, i)).toISOString(),
257
+ tokenUsage: { totalTokens: 10 },
258
+ toolExecutions: [],
259
+ });
260
+ }
261
+
262
+ const out = await tool.execute(
263
+ { action: 'reminisce', mode: 'around', messageId: bookmark, before: 2, after: 2 },
264
+ context
265
+ );
266
+ expect(out.result.targetFound).toBe(true);
267
+ expect(out.result.center).toBe(bookmark);
268
+ });
269
+ });
270
+
271
+ describe('memoryTool — reminisce registered as a valid action', () => {
272
+ test('getSupportedActions includes reminisce', () => {
273
+ const tool = new MemoryTool({}, createMockLogger());
274
+ expect(tool.getSupportedActions()).toContain('reminisce');
275
+ });
276
+
277
+ test('customValidateParameters accepts action=reminisce without error', () => {
278
+ const tool = new MemoryTool({}, createMockLogger());
279
+ const result = tool.customValidateParameters({ action: 'reminisce' });
280
+ expect(result.valid).toBe(true);
281
+ });
282
+
283
+ test('getParameterSchema enum includes reminisce', () => {
284
+ const tool = new MemoryTool({}, createMockLogger());
285
+ const schema = tool.getParameterSchema();
286
+ expect(schema.properties.action.enum).toContain('reminisce');
287
+ });
288
+
289
+ test('getParameterSchema advertises every reminisce-specific parameter', () => {
290
+ // Without this, the model invoking memory via OpenAI function calling
291
+ // can't know what fields are legal for action=reminisce and will either
292
+ // omit them or hallucinate wrong names. Locked tight.
293
+ const schema = new MemoryTool({}, createMockLogger()).getParameterSchema();
294
+ const props = schema.properties;
295
+ const required = [
296
+ 'mode', 'messageId',
297
+ 'from', 'to', 'offset', 'limit', 'maxResults', 'role', 'cursor', 'toolId',
298
+ 'before', 'after',
299
+ 'lineFrom', 'lineTo', 'contentFrom', 'contentTo',
300
+ 'detail',
301
+ ];
302
+ for (const field of required) {
303
+ expect(props[field]).toBeDefined();
304
+ expect(typeof props[field].description).toBe('string');
305
+ }
306
+ // mode enum must carry all six sub-modes
307
+ expect(props.mode.enum).toEqual(
308
+ expect.arrayContaining(['overview', 'range', 'search', 'around', 'byTool', 'read'])
309
+ );
310
+ });
311
+
312
+ test('getDescription teaches the agent about reminisce + pointer stability', () => {
313
+ const desc = new MemoryTool({}, createMockLogger()).getDescription();
314
+ expect(desc).toMatch(/REMINISCE/i);
315
+ expect(desc).toMatch(/messageId/);
316
+ // All six sub-modes should be present by name.
317
+ expect(desc).toMatch(/overview/);
318
+ expect(desc).toMatch(/search/);
319
+ expect(desc).toMatch(/around/);
320
+ expect(desc).toMatch(/byTool/);
321
+ expect(desc).toMatch(/\bread\b/);
322
+ // Documents that search scope excludes tool results.
323
+ expect(desc).toMatch(/does NOT match tool results|tool-call arguments/i);
324
+ // Around explicitly documents its unit = messages.
325
+ expect(desc).toMatch(/count MESSAGES/);
326
+ // Read documents sub-message granularity — lines AND chars.
327
+ expect(desc).toMatch(/lineFrom/);
328
+ expect(desc).toMatch(/contentFrom/);
329
+ });
330
+ });
@@ -56,9 +56,9 @@ describe('MemoryTool', () => {
56
56
  expect(desc).toContain('stats');
57
57
  });
58
58
 
59
- test('getSupportedActions returns all 7 actions', () => {
59
+ test('getSupportedActions returns all 8 actions', () => {
60
60
  expect(tool.getSupportedActions()).toEqual(
61
- ['add', 'update', 'delete', 'list', 'read', 'search', 'stats']
61
+ ['add', 'update', 'delete', 'list', 'read', 'search', 'stats', 'reminisce']
62
62
  );
63
63
  });
64
64
 
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Contract test for the `memory` function's OpenAI schema — specifically
3
+ * that it advertises the `reminisce` action and its sub-mode params.
4
+ *
5
+ * Why this exists: the OpenAI function schema is what the model sees on
6
+ * the Chat Completions path. If `reminisce` is missing from the enum or
7
+ * the reminisce-specific params are absent, the model can't invoke it
8
+ * correctly regardless of what memoryTool's own validators say. This
9
+ * tripwire catches that class of drift without booting the full CLI.
10
+ */
11
+
12
+ import { describe, test, expect } from '@jest/globals';
13
+ import { OPENAI_FUNCTION_SCHEMAS } from '../openaiFunctionSchemas.js';
14
+
15
+ const memory = OPENAI_FUNCTION_SCHEMAS.find(s => s.name === 'memory');
16
+
17
+ describe('OPENAI_FUNCTION_SCHEMAS — memory function', () => {
18
+ test('memory function schema exists', () => {
19
+ expect(memory).toBeDefined();
20
+ expect(memory.type).toBe('function');
21
+ expect(memory.parameters?.type).toBe('object');
22
+ });
23
+
24
+ test('action enum includes reminisce', () => {
25
+ const actions = memory.parameters.properties.action.enum;
26
+ expect(actions).toContain('reminisce');
27
+ });
28
+
29
+ test('action enum covers every sanctioned action (incl. stats)', () => {
30
+ const actions = memory.parameters.properties.action.enum;
31
+ for (const a of ['add', 'update', 'delete', 'read', 'list', 'search', 'stats', 'reminisce']) {
32
+ expect(actions).toContain(a);
33
+ }
34
+ });
35
+
36
+ test('mode field is present and enumerates the six sub-modes', () => {
37
+ const mode = memory.parameters.properties.mode;
38
+ expect(mode).toBeDefined();
39
+ expect(mode.enum).toEqual(
40
+ expect.arrayContaining(['overview', 'range', 'search', 'around', 'byTool', 'read'])
41
+ );
42
+ });
43
+
44
+ test('every reminisce-specific parameter is documented in the schema', () => {
45
+ // The model can only pass what the schema advertises. If one of these
46
+ // is missing, the feature silently loses that capability on the Chat
47
+ // Completions path.
48
+ const required = [
49
+ 'mode',
50
+ 'messageId',
51
+ 'from', 'to',
52
+ 'offset', 'limit', 'maxResults',
53
+ 'role', 'cursor', 'toolId',
54
+ 'before', 'after',
55
+ 'lineFrom', 'lineTo', 'contentFrom', 'contentTo',
56
+ 'detail',
57
+ ];
58
+ for (const field of required) {
59
+ const prop = memory.parameters.properties[field];
60
+ expect(prop).toBeDefined();
61
+ expect(typeof prop.description).toBe('string');
62
+ expect(prop.description.length).toBeGreaterThan(0);
63
+ }
64
+ });
65
+
66
+ test('around before/after descriptions say MESSAGES (not chars/lines)', () => {
67
+ const before = memory.parameters.properties.before.description;
68
+ const after = memory.parameters.properties.after.description;
69
+ expect(before).toMatch(/MESSAGES/);
70
+ expect(after).toMatch(/MESSAGES/);
71
+ });
72
+
73
+ test('read line/char params describe their index convention and cap', () => {
74
+ const p = memory.parameters.properties;
75
+ expect(p.lineFrom.description).toMatch(/1-indexed/);
76
+ expect(p.lineTo.description).toMatch(/500 lines/);
77
+ expect(p.contentFrom.description).toMatch(/0-indexed/);
78
+ expect(p.contentTo.description).toMatch(/16000 chars|16 000 chars/);
79
+ });
80
+
81
+ test('top-level description mentions reminisce so the model knows the tool does both', () => {
82
+ expect(memory.description.toLowerCase()).toMatch(/reminisce|archive/);
83
+ });
84
+ });
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Contract test for the TaskManager tool's lifecycle guidance surface.
3
+ *
4
+ * The agent follows the workflow described in the tool's `getDescription()`
5
+ * output verbatim (it's part of the system prompt at every turn). If that
6
+ * text accidentally regresses — a "simplification" PR that flattens the
7
+ * four phases back into the old "list → work → complete" stub — the
8
+ * agent immediately reverts to creating tasks one-at-a-time at the start,
9
+ * burning tool calls and cluttering the transcript.
10
+ *
11
+ * These tests lock the lifecycle keywords into place. They're a tripwire,
12
+ * not a style guide: the exact wording can evolve, but all four phases
13
+ * must remain named, `sync` must be positioned as the first-call tool,
14
+ * and the `in_progress` → `completed` per-step pattern must be present.
15
+ *
16
+ * If someone legitimately reworks the description (different phase names,
17
+ * different order, etc.), they update this test AND confirm the agent
18
+ * instruction in agentScheduler.js is in lockstep.
19
+ */
20
+
21
+ import { describe, test, expect } from '@jest/globals';
22
+ import TaskManagerTool from '../taskManagerTool.js';
23
+
24
+ describe('TaskManagerTool.getDescription — lifecycle guidance contract', () => {
25
+ const desc = new TaskManagerTool({}).getDescription();
26
+ // Case-insensitive match for resilience against rephrasing.
27
+ const has = (needle) => expect(desc).toMatch(new RegExp(needle, 'i'));
28
+
29
+ test('names the four lifecycle phases', () => {
30
+ has('Phase 1 — Plan');
31
+ has('Phase 2 — Execute');
32
+ has('Phase 3 — Refine');
33
+ has('Phase 4 — Finish');
34
+ });
35
+
36
+ test('Phase 1 tells the agent to sync the whole plan in ONE call', () => {
37
+ // Plan phase must mention sync + "one call" concept + discourage per-task create at start.
38
+ has('sync');
39
+ has('ONE call');
40
+ // The exact wording that discourages per-task create is free to evolve;
41
+ // what matters is that "one-by-one" (or equivalent) and the word create
42
+ // both appear in the Plan phase area.
43
+ has('one-by-one|one at a time');
44
+ });
45
+
46
+ test('Phase 2 describes the in_progress → work → completed per-step pattern', () => {
47
+ has('in_progress');
48
+ has('completed');
49
+ has('one at a time|one task at a time|per step');
50
+ });
51
+
52
+ test('Phase 3 covers mid-flight refinement (both single-task create and resync)', () => {
53
+ has('create');
54
+ has('sync');
55
+ // warns against per-turn sync spam
56
+ has("Don't `sync` every turn");
57
+ });
58
+
59
+ test('Phase 4 points at jobdone when everything is completed', () => {
60
+ has('jobdone');
61
+ });
62
+
63
+ test('preserves the loop-forever warning (operational guard)', () => {
64
+ has('MANDATORY');
65
+ has('loop forever');
66
+ });
67
+
68
+ test('preserves memory-integration guidance (unrelated feature must survive)', () => {
69
+ has('memory:');
70
+ });
71
+ });
@@ -64,6 +64,16 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
64
64
  }
65
65
  });
66
66
 
67
+ // ── Session targeting: always null so the webServer fan-out path runs ──
68
+ //
69
+ // The visual-editor open-editor / set-app-url broadcast is a UI-wide
70
+ // notification — we want every attached browser to hear it. `context.sessionId`
71
+ // here is the agent's scheduler session (e.g. 'scheduler-session'), which
72
+ // doesn't match any UI WebSocket connection. Passing `null` explicitly
73
+ // makes broadcastToSession take its "no session match, deliver to all
74
+ // connections" path — cleaner than accidentally landing there via a
75
+ // mismatched session string.
76
+
67
77
  // ── Path 1: through agentPool ────────────────────────────────────
68
78
  test('uses agentPool.messageProcessor.orchestrator.webServer when available', () => {
69
79
  const tool = makeTool();
@@ -82,7 +92,7 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
82
92
  tool._broadcastOpenEditor(context, sampleData);
83
93
 
84
94
  expect(broadcastToSession).toHaveBeenCalledTimes(1);
85
- expect(broadcastToSession).toHaveBeenCalledWith('session-A', {
95
+ expect(broadcastToSession).toHaveBeenCalledWith(null, {
86
96
  type: 'visual_editor_open',
87
97
  data: {
88
98
  agentId: 'agent-1',
@@ -92,10 +102,15 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
92
102
  });
93
103
  });
94
104
 
95
- test('falls back to "web-session" when sessionId is missing on agentPool path', () => {
105
+ test('ignores context.sessionId always broadcasts to all connections', () => {
106
+ // Regression guard: previously `sessionId || 'web-session'` was passed
107
+ // as the target. Either path effectively fell through to "all clients"
108
+ // via the webServer's fallback, but the intent wasn't explicit. Now
109
+ // we pass `null` no matter what.
96
110
  const tool = makeTool();
97
111
  const broadcastToSession = jest.fn();
98
112
  const context = {
113
+ sessionId: 'scheduler-session', // the scheduler's own session
99
114
  agentPool: {
100
115
  messageProcessor: {
101
116
  orchestrator: { webServer: { broadcastToSession } }
@@ -104,7 +119,8 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
104
119
  };
105
120
 
106
121
  tool._broadcastOpenEditor(context, sampleData);
107
- expect(broadcastToSession).toHaveBeenCalledWith('web-session', expect.any(Object));
122
+ const [targetSessionId] = broadcastToSession.mock.calls[0];
123
+ expect(targetSessionId).toBeNull();
108
124
  });
109
125
 
110
126
  // ── Path 2: direct orchestrator ──────────────────────────────────
@@ -117,7 +133,7 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
117
133
  };
118
134
 
119
135
  tool._broadcastOpenEditor(context, sampleData);
120
- expect(broadcastToSession).toHaveBeenCalledWith('session-B', expect.objectContaining({
136
+ expect(broadcastToSession).toHaveBeenCalledWith(null, expect.objectContaining({
121
137
  type: 'visual_editor_open'
122
138
  }));
123
139
  });
@@ -150,19 +166,19 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
150
166
  const context = { sessionId: 'session-D' };
151
167
  tool._broadcastOpenEditor(context, sampleData);
152
168
 
153
- expect(broadcastToSession).toHaveBeenCalledWith('session-D', expect.objectContaining({
169
+ expect(broadcastToSession).toHaveBeenCalledWith(null, expect.objectContaining({
154
170
  type: 'visual_editor_open',
155
171
  data: expect.objectContaining({ agentId: 'agent-1' })
156
172
  }));
157
173
  });
158
174
 
159
- test('global fallback also defaults sessionId to "web-session"', () => {
175
+ test('global fallback also uses null sessionId (UI-wide broadcast)', () => {
160
176
  const tool = makeTool();
161
177
  const broadcastToSession = jest.fn();
162
178
  global.loxiaWebServer = { broadcastToSession };
163
179
 
164
180
  tool._broadcastOpenEditor({}, sampleData);
165
- expect(broadcastToSession).toHaveBeenCalledWith('web-session', expect.any(Object));
181
+ expect(broadcastToSession).toHaveBeenCalledWith(null, expect.any(Object));
166
182
  });
167
183
 
168
184
  // ── No webServer at all → warn but don't throw ───────────────────
@@ -170,10 +186,24 @@ describe('VisualEditorTool._broadcastOpenEditor', () => {
170
186
  const tool = makeTool();
171
187
  const context = {}; // Nothing at all
172
188
 
173
- expect(() => tool._broadcastOpenEditor(context, sampleData)).not.toThrow();
174
- expect(tool.logger.warn).toHaveBeenCalledWith(
175
- expect.stringContaining('Could not broadcast open-editor')
176
- );
189
+ // Warn is emitted via console.warn (not this.logger) so the message
190
+ // surfaces even when the tool was constructed without a logger
191
+ // (historic registry behavior).
192
+ const consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation(() => {});
193
+ try {
194
+ expect(() => tool._broadcastOpenEditor(context, sampleData)).not.toThrow();
195
+ expect(consoleWarnSpy).toHaveBeenCalledWith(
196
+ expect.stringContaining('Could not broadcast open-editor'),
197
+ expect.objectContaining({
198
+ hasContext: true,
199
+ hasAgentPool: false,
200
+ hasOrchestrator: false,
201
+ hasGlobal: false,
202
+ })
203
+ );
204
+ } finally {
205
+ consoleWarnSpy.mockRestore();
206
+ }
177
207
  });
178
208
 
179
209
  test('handles partial agentPool object gracefully (no messageProcessor)', () => {
@@ -508,7 +508,20 @@ class ToolsRegistry {
508
508
  async registerTool(toolClass) {
509
509
  try {
510
510
  const tool = new toolClass();
511
-
511
+
512
+ // Propagate the registry's logger to the tool so the tool's own
513
+ // diagnostic output (`this.logger?.info(...)`, `this.logger?.warn(...)`,
514
+ // etc.) actually reaches the operator's console. Tools extending
515
+ // BaseTool default `this.logger = null` unless the class explicitly
516
+ // passes one to `super()` — and registration never supplied one,
517
+ // which silently swallowed every `this.logger?.…` call in every tool.
518
+ // This made debugging things like "why doesn't the visual-editor
519
+ // tool ever log [VisualEditorTool] lines?" impossible because the
520
+ // logs literally weren't being emitted.
521
+ if (this.logger && !tool.logger) {
522
+ tool.logger = this.logger;
523
+ }
524
+
512
525
  if (!(tool instanceof BaseTool)) {
513
526
  throw new Error(`Tool ${toolClass.name} must extend BaseTool`);
514
527
  }