onbuzz 4.0.2 → 4.2.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 (982) hide show
  1. package/package.json +1 -1
  2. package/scripts/audit-report.js +164 -0
  3. package/src/core/__tests__/agentPoolToolConfig.test.js +191 -0
  4. package/src/core/__tests__/agentPoolWakeOnMessage.test.js +315 -0
  5. package/src/core/__tests__/agentScheduler.emptyResponseDiagnostics.test.js +191 -0
  6. package/src/core/__tests__/agentScheduler.modeTransitions.test.js +233 -0
  7. package/src/core/__tests__/agentScheduler.taskLifecycleInstruction.test.js +78 -0
  8. package/src/core/__tests__/agentScheduler.test.js +31 -13
  9. package/src/core/__tests__/messageProcessor.test.js +42 -0
  10. package/src/core/agentPool.js +127 -25
  11. package/src/core/agentScheduler.js +330 -151
  12. package/src/core/messageProcessor.js +19 -1
  13. package/src/interfaces/__tests__/galleryRoutes.test.js +311 -0
  14. package/src/interfaces/webServer.js +183 -2
  15. package/src/services/__tests__/agentActivityService.test.js +83 -0
  16. package/src/services/__tests__/aiService.reasoningTokens.test.js +66 -0
  17. package/src/services/__tests__/aiService.stream.test.js +301 -0
  18. package/src/services/__tests__/conversationQuery.reasoning.test.js +102 -0
  19. package/src/services/__tests__/conversationQuery.test.js +723 -0
  20. package/src/services/__tests__/toolCallBridgeContract.test.js +129 -0
  21. package/src/services/agentActivityService.js +25 -4
  22. package/src/services/aiService.js +180 -91
  23. package/src/services/conversationQuery.js +803 -0
  24. package/src/tools/__tests__/agentCommunicationTool.test.js +114 -0
  25. package/src/tools/__tests__/baseTool.getEffectiveConfig.test.js +77 -0
  26. package/src/tools/__tests__/baseTool.test.js +471 -420
  27. package/src/tools/__tests__/filesystemTool.test.js +98 -0
  28. package/src/tools/__tests__/memoryTool.reminisce.test.js +363 -0
  29. package/src/tools/__tests__/memoryTool.test.js +2 -2
  30. package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +84 -0
  31. package/src/tools/__tests__/taskManagerTool.lifecycleGuidance.test.js +71 -0
  32. package/src/tools/__tests__/terminalTool.test.js +64 -0
  33. package/src/tools/__tests__/webTool.perAgentConfig.test.js +94 -0
  34. package/src/tools/agentCommunicationTool.js +33 -22
  35. package/src/tools/baseTool.js +980 -899
  36. package/src/tools/fileSystemTool.js +76 -2
  37. package/src/tools/memoryTool.js +270 -4
  38. package/src/tools/openaiFunctionSchemas.js +62 -7
  39. package/src/tools/taskManagerTool.js +21 -4
  40. package/src/tools/terminalTool.js +62 -2
  41. package/src/tools/webTool.js +65 -1
  42. package/src/utilities/__tests__/auditReport.test.js +328 -0
  43. package/src/utilities/__tests__/modeTransitionReasons.test.js +105 -0
  44. package/src/utilities/auditReport.js +331 -0
  45. package/src/utilities/modeTransitionReasons.js +101 -0
  46. package/web-ui/build/index.html +2 -2
  47. package/web-ui/build/static/1c-C_9olPfq.js +1 -0
  48. package/web-ui/build/static/abap--DeFI1OC.js +1 -0
  49. package/web-ui/build/static/abnf-5HzSmxRy.js +1 -0
  50. package/web-ui/build/static/abnf-IG-O3NHT.js +1 -0
  51. package/web-ui/build/static/accesslog-qO_3I5IJ.js +1 -0
  52. package/web-ui/build/static/actionscript-DbFc2Uxo.js +1 -0
  53. package/web-ui/build/static/actionscript-jU7xUh7w.js +1 -0
  54. package/web-ui/build/static/ada-DBOzyNDe.js +1 -0
  55. package/web-ui/build/static/ada-F0QwXh2e.js +1 -0
  56. package/web-ui/build/static/agda-Drhr_GYC.js +1 -0
  57. package/web-ui/build/static/al-bEatcrqU.js +1 -0
  58. package/web-ui/build/static/angelscript-Bp0mqasc.js +1 -0
  59. package/web-ui/build/static/antlr4-BCvixOqW.js +1 -0
  60. package/web-ui/build/static/apache-zSeWcGFf.js +1 -0
  61. package/web-ui/build/static/apacheconf-CEDX0qIZ.js +1 -0
  62. package/web-ui/build/static/apex-BHlvjPxZ.js +1 -0
  63. package/web-ui/build/static/apl-S86eLVnh.js +1 -0
  64. package/web-ui/build/static/applescript-D15JiHTt.js +1 -0
  65. package/web-ui/build/static/applescript-D6g2nIGs.js +1 -0
  66. package/web-ui/build/static/aql-C4SWmhk2.js +1 -0
  67. package/web-ui/build/static/arcade-DrwRCCCh.js +1 -0
  68. package/web-ui/build/static/arduino-Blsw4-hb.js +1 -0
  69. package/web-ui/build/static/arduino-s6CYn6L3.js +1 -0
  70. package/web-ui/build/static/arff-DnrfdsTx.js +1 -0
  71. package/web-ui/build/static/armasm-C2WK9q2y.js +1 -0
  72. package/web-ui/build/static/asciidoc-BiY2pDol.js +1 -0
  73. package/web-ui/build/static/asciidoc-DG128-Q1.js +1 -0
  74. package/web-ui/build/static/asm6502-BEAW0Cck.js +1 -0
  75. package/web-ui/build/static/asmatmel-C4v7boSu.js +1 -0
  76. package/web-ui/build/static/aspectj-Bfek529B.js +1 -0
  77. package/web-ui/build/static/aspnet-8K2PeLn2.js +1 -0
  78. package/web-ui/build/static/autohotkey-BHw78HYu.js +1 -0
  79. package/web-ui/build/static/autohotkey-C5DDQtDL.js +1 -0
  80. package/web-ui/build/static/autoit-CgsSmQkF.js +1 -0
  81. package/web-ui/build/static/autoit-DZ7IS_9i.js +1 -0
  82. package/web-ui/build/static/avisynth-B20WuEUg.js +1 -0
  83. package/web-ui/build/static/avrasm-C7TrcWBg.js +1 -0
  84. package/web-ui/build/static/avro-idl-CfDy8XWE.js +1 -0
  85. package/web-ui/build/static/awk-cjY-7p5o.js +1 -0
  86. package/web-ui/build/static/axapta-Bu9INQG2.js +1 -0
  87. package/web-ui/build/static/bash-B998wxy_.js +1 -0
  88. package/web-ui/build/static/bash-LE6roX2s.js +1 -0
  89. package/web-ui/build/static/basic-Cd6-vDdH.js +1 -0
  90. package/web-ui/build/static/basic-mfY-ovnp.js +1 -0
  91. package/web-ui/build/static/batch-DxVy2cwv.js +1 -0
  92. package/web-ui/build/static/bbcode-Ct3Yu8De.js +1 -0
  93. package/web-ui/build/static/bicep-CexPoMEW.js +1 -0
  94. package/web-ui/build/static/birb-CH1RMpPI.js +1 -0
  95. package/web-ui/build/static/bison-XQFuPB_Q.js +1 -0
  96. package/web-ui/build/static/bnf-CIDGmY3l.js +1 -0
  97. package/web-ui/build/static/bnf-DjN_FU2s.js +1 -0
  98. package/web-ui/build/static/brainfuck-Cu_hvayi.js +1 -0
  99. package/web-ui/build/static/brainfuck-eRbe4_qo.js +1 -0
  100. package/web-ui/build/static/brightscript-Cdq0ttTN.js +1 -0
  101. package/web-ui/build/static/bro-D3aio8LS.js +1 -0
  102. package/web-ui/build/static/bsl-DFEwVZ2J.js +1 -0
  103. package/web-ui/build/static/c-D6RK1vhn.js +1 -0
  104. package/web-ui/build/static/c-DUcBA02q.js +1 -0
  105. package/web-ui/build/static/c-like-BApJDFwD.js +1 -0
  106. package/web-ui/build/static/cal-Ckv8Qnpw.js +1 -0
  107. package/web-ui/build/static/capnproto-DCoblEyS.js +1 -0
  108. package/web-ui/build/static/ceylon-DM-zZDWY.js +1 -0
  109. package/web-ui/build/static/cfscript-CMoOAgUK.js +1 -0
  110. package/web-ui/build/static/chaiscript-B3Vl3wGb.js +1 -0
  111. package/web-ui/build/static/cil-ChEi_uFO.js +1 -0
  112. package/web-ui/build/static/clean-BtA08oDV.js +1 -0
  113. package/web-ui/build/static/clojure-CWMlf7lJ.js +1 -0
  114. package/web-ui/build/static/clojure-Vur8C4jr.js +1 -0
  115. package/web-ui/build/static/clojure-repl-BsfGHdYy.js +1 -0
  116. package/web-ui/build/static/cmake-Csgl_IVr.js +1 -0
  117. package/web-ui/build/static/cmake-DFMKvwxy.js +1 -0
  118. package/web-ui/build/static/cobol-XhlGrCrW.js +1 -0
  119. package/web-ui/build/static/coffeescript-DYldGW35.js +1 -0
  120. package/web-ui/build/static/coffeescript-DvbNKwrC.js +1 -0
  121. package/web-ui/build/static/concurnas-DjALqCYn.js +1 -0
  122. package/web-ui/build/static/coq-D9QGJI6g.js +1 -0
  123. package/web-ui/build/static/coq-fAZpoc7i.js +1 -0
  124. package/web-ui/build/static/cos-GgM7WWVZ.js +1 -0
  125. package/web-ui/build/static/cpp-Cgt5qqfd.js +1 -0
  126. package/web-ui/build/static/cpp-DxVcOuBe.js +1 -0
  127. package/web-ui/build/static/crmsh-BlZWnzbY.js +1 -0
  128. package/web-ui/build/static/crystal--H7HLAQf.js +1 -0
  129. package/web-ui/build/static/crystal-DWm0bbUT.js +1 -0
  130. package/web-ui/build/static/csharp-8dr-wktE.js +1 -0
  131. package/web-ui/build/static/csharp-DFuHLPFe.js +1 -0
  132. package/web-ui/build/static/cshtml-C-L4_dy2.js +1 -0
  133. package/web-ui/build/static/csp-CJ6qbecO.js +1 -0
  134. package/web-ui/build/static/csp-DswTy-5u.js +1 -0
  135. package/web-ui/build/static/css-DdRPdKXQ.js +1 -0
  136. package/web-ui/build/static/css-extras-DMwOZFrB.js +1 -0
  137. package/web-ui/build/static/csv-BiWlhIMC.js +1 -0
  138. package/web-ui/build/static/cypher-ByNaJKO8.js +1 -0
  139. package/web-ui/build/static/d-BR89VlK-.js +1 -0
  140. package/web-ui/build/static/d-KlWvBc4w.js +1 -0
  141. package/web-ui/build/static/dart-BIsk7m6o.js +1 -0
  142. package/web-ui/build/static/dart-BnyP1Rjp.js +1 -0
  143. package/web-ui/build/static/dataweave-CH_Q2gWX.js +1 -0
  144. package/web-ui/build/static/dax-wulX9uc-.js +1 -0
  145. package/web-ui/build/static/delphi-CFowdk_A.js +1 -0
  146. package/web-ui/build/static/dhall-BfCOemEp.js +1 -0
  147. package/web-ui/build/static/diff-DQD2zPaG.js +1 -0
  148. package/web-ui/build/static/diff-DZoEdrYM.js +1 -0
  149. package/web-ui/build/static/django-B0j973Kw.js +1 -0
  150. package/web-ui/build/static/django-CYScL320.js +1 -0
  151. package/web-ui/build/static/dns-DoECkAgz.js +1 -0
  152. package/web-ui/build/static/dns-zone-file-CuoIcXgj.js +1 -0
  153. package/web-ui/build/static/docker-C2nfXTBG.js +1 -0
  154. package/web-ui/build/static/dockerfile-DBalxIH7.js +1 -0
  155. package/web-ui/build/static/dos-GNL9IdmL.js +1 -0
  156. package/web-ui/build/static/dot-rKuRS-PS.js +1 -0
  157. package/web-ui/build/static/dsconfig-CKmenTFr.js +1 -0
  158. package/web-ui/build/static/dts-AxT2qjQU.js +1 -0
  159. package/web-ui/build/static/dust-DpqHWPC4.js +1 -0
  160. package/web-ui/build/static/ebnf-CONEMpLp.js +1 -0
  161. package/web-ui/build/static/ebnf-DRWcOs8R.js +1 -0
  162. package/web-ui/build/static/editorconfig-lmLHmECZ.js +1 -0
  163. package/web-ui/build/static/eiffel-B39e31fw.js +1 -0
  164. package/web-ui/build/static/ejs-DtJwpVdo.js +1 -0
  165. package/web-ui/build/static/elixir-BH4JTqa9.js +1 -0
  166. package/web-ui/build/static/elixir-aH1DLjYD.js +1 -0
  167. package/web-ui/build/static/elm-BcCGkSrW.js +1 -0
  168. package/web-ui/build/static/elm-CCrB1JbX.js +1 -0
  169. package/web-ui/build/static/erb-CcumI1K3.js +1 -0
  170. package/web-ui/build/static/erb-_HK77hx-.js +1 -0
  171. package/web-ui/build/static/erlang-B1qxMZZp.js +1 -0
  172. package/web-ui/build/static/erlang-CCM_ejO_.js +1 -0
  173. package/web-ui/build/static/erlang-repl-D1zC2Zf6.js +1 -0
  174. package/web-ui/build/static/etlua-HJMRx9x7.js +1 -0
  175. package/web-ui/build/static/excel-DqXCKUKa.js +1 -0
  176. package/web-ui/build/static/excel-formula-oNw1T5Gi.js +1 -0
  177. package/web-ui/build/static/factor-BrTp5FZH.js +1 -0
  178. package/web-ui/build/static/false-CAVqV3ok.js +1 -0
  179. package/web-ui/build/static/firestore-security-rules-CxTofGT0.js +1 -0
  180. package/web-ui/build/static/fix-BMooo7-3.js +1 -0
  181. package/web-ui/build/static/flix-DR5Pi_4n.js +1 -0
  182. package/web-ui/build/static/flow-BoCWpUCW.js +1 -0
  183. package/web-ui/build/static/fortran-B9JI5ahV.js +1 -0
  184. package/web-ui/build/static/fortran-LXg81aOn.js +1 -0
  185. package/web-ui/build/static/fsharp-BqcGG-SM.js +1 -0
  186. package/web-ui/build/static/fsharp-Dj5YVL_h.js +1 -0
  187. package/web-ui/build/static/ftl-kuY7uFR8.js +1 -0
  188. package/web-ui/build/static/gams-CzihHKqE.js +1 -0
  189. package/web-ui/build/static/gap-BbS0A-Wl.js +1 -0
  190. package/web-ui/build/static/gauss-BauwG_O4.js +1 -0
  191. package/web-ui/build/static/gcode-VY1OKBcC.js +1 -0
  192. package/web-ui/build/static/gcode-lapsLgV5.js +1 -0
  193. package/web-ui/build/static/gdscript-1UIYB8m0.js +1 -0
  194. package/web-ui/build/static/gedcom-Bhrxt1LM.js +1 -0
  195. package/web-ui/build/static/gherkin-BsUD3vJB.js +1 -0
  196. package/web-ui/build/static/gherkin-hj_asmFX.js +1 -0
  197. package/web-ui/build/static/git-DXIrRKzR.js +1 -0
  198. package/web-ui/build/static/glsl-Bww3i9-P.js +1 -0
  199. package/web-ui/build/static/glsl-tW4hvcaQ.js +1 -0
  200. package/web-ui/build/static/gml-BIqshajA.js +1 -0
  201. package/web-ui/build/static/gml-CQqc9F-B.js +1 -0
  202. package/web-ui/build/static/gn-CBgpy8B9.js +1 -0
  203. package/web-ui/build/static/go-CEUAUIgn.js +1 -0
  204. package/web-ui/build/static/go-DPEd33Yn.js +1 -0
  205. package/web-ui/build/static/go-module-BVPbZOg5.js +1 -0
  206. package/web-ui/build/static/golo-CqB3OATq.js +1 -0
  207. package/web-ui/build/static/gradle-Djj_6FTv.js +1 -0
  208. package/web-ui/build/static/graphql-ymSYYmmE.js +1 -0
  209. package/web-ui/build/static/groovy-BLoXi1Ew.js +1 -0
  210. package/web-ui/build/static/groovy-D8ua3DVO.js +1 -0
  211. package/web-ui/build/static/haml-DKlxHs26.js +1 -0
  212. package/web-ui/build/static/haml-S_iUNysn.js +1 -0
  213. package/web-ui/build/static/handlebars-B7tcAMGB.js +1 -0
  214. package/web-ui/build/static/handlebars-CV-zB05N.js +1 -0
  215. package/web-ui/build/static/haskell-CMxCwdZX.js +1 -0
  216. package/web-ui/build/static/haskell-Dis6rGJ5.js +1 -0
  217. package/web-ui/build/static/haxe-C76IK5YN.js +1 -0
  218. package/web-ui/build/static/haxe-hbmD2uei.js +1 -0
  219. package/web-ui/build/static/hcl-BPI_t80W.js +1 -0
  220. package/web-ui/build/static/hlsl-BmeH3MXM.js +1 -0
  221. package/web-ui/build/static/hoon-BYLX7KiR.js +1 -0
  222. package/web-ui/build/static/hpkp-CFV1lvIV.js +1 -0
  223. package/web-ui/build/static/hsp-_VXPtQPw.js +1 -0
  224. package/web-ui/build/static/hsts-DzmFog1b.js +1 -0
  225. package/web-ui/build/static/htmlbars-uX8JubPS.js +1 -0
  226. package/web-ui/build/static/http-BTDAHgkv.js +1 -0
  227. package/web-ui/build/static/http-Ba1gTHCW.js +1 -0
  228. package/web-ui/build/static/hy-G7MK4TLb.js +1 -0
  229. package/web-ui/build/static/ichigojam-BKKN56jZ.js +1 -0
  230. package/web-ui/build/static/icon-nrqdEYwB.js +1 -0
  231. package/web-ui/build/static/icu-message-format-Bjone7XH.js +1 -0
  232. package/web-ui/build/static/idris-CKkY_0op.js +1 -0
  233. package/web-ui/build/static/iecst-EV3ZvBDC.js +1 -0
  234. package/web-ui/build/static/ignore-LJIbInke.js +1 -0
  235. package/web-ui/build/static/index-C1x426Pt.js +734 -0
  236. package/web-ui/build/static/index-CTzeYMwr.js +13 -0
  237. package/web-ui/build/static/index-CUBjz1OL.css +1 -0
  238. package/web-ui/build/static/index-DnVIkRiR.js +1 -0
  239. package/web-ui/build/static/inform7-BiW6HbUl.js +1 -0
  240. package/web-ui/build/static/inform7-DT-x6SRD.js +1 -0
  241. package/web-ui/build/static/ini-BbnHjAtW.js +1 -0
  242. package/web-ui/build/static/ini-DuNY7Iqz.js +1 -0
  243. package/web-ui/build/static/io-BquAtlCB.js +1 -0
  244. package/web-ui/build/static/irpf90-CZELNeJl.js +1 -0
  245. package/web-ui/build/static/isbl-DhOgOzai.js +1 -0
  246. package/web-ui/build/static/j-r8D3BrBj.js +1 -0
  247. package/web-ui/build/static/java-MjQ5EBN5.js +1 -0
  248. package/web-ui/build/static/java-c3Jyc0B6.js +1 -0
  249. package/web-ui/build/static/javadoc-CfNFziRD.js +1 -0
  250. package/web-ui/build/static/javadoclike-BUcJZQAh.js +1 -0
  251. package/web-ui/build/static/javascript-CL_4g6j3.js +1 -0
  252. package/web-ui/build/static/javastacktrace-4P_J-58S.js +1 -0
  253. package/web-ui/build/static/jboss-cli-DUfK88hO.js +1 -0
  254. package/web-ui/build/static/jexl-DsSijmcs.js +1 -0
  255. package/web-ui/build/static/jolie-DjtNIZB4.js +1 -0
  256. package/web-ui/build/static/jq-BXdSm79y.js +1 -0
  257. package/web-ui/build/static/js-extras-B-C7ngCD.js +1 -0
  258. package/web-ui/build/static/js-templates-CmPAiwFC.js +1 -0
  259. package/web-ui/build/static/jsdoc-CkiXOOMV.js +1 -0
  260. package/web-ui/build/static/json-Bmvhezfj.js +1 -0
  261. package/web-ui/build/static/json-HPR8wBiw.js +1 -0
  262. package/web-ui/build/static/json5-Chcg9nnQ.js +1 -0
  263. package/web-ui/build/static/jsonp-C3KWcfzJ.js +1 -0
  264. package/web-ui/build/static/jsstacktrace-D1jRFy-S.js +1 -0
  265. package/web-ui/build/static/jsx-COtCqQ_9.js +1 -0
  266. package/web-ui/build/static/julia-BVvfw2TB.js +1 -0
  267. package/web-ui/build/static/julia-Ddalvdoa.js +1 -0
  268. package/web-ui/build/static/julia-repl-Bc-uwnIZ.js +1 -0
  269. package/web-ui/build/static/keepalived-CJ9ZYuQx.js +1 -0
  270. package/web-ui/build/static/keyman-BHea-dB6.js +1 -0
  271. package/web-ui/build/static/kotlin-DWOyCb_2.js +1 -0
  272. package/web-ui/build/static/kotlin-fvMiFIS3.js +1 -0
  273. package/web-ui/build/static/kumir-DaNls7gN.js +1 -0
  274. package/web-ui/build/static/kusto-DKweJuKl.js +1 -0
  275. package/web-ui/build/static/lasso-BB9dUrv_.js +1 -0
  276. package/web-ui/build/static/latex-C7U5RUQQ.js +1 -0
  277. package/web-ui/build/static/latex-CXM3EEy0.js +1 -0
  278. package/web-ui/build/static/latte-B4pEA635.js +1 -0
  279. package/web-ui/build/static/ldif-D3wYig10.js +1 -0
  280. package/web-ui/build/static/leaf-uFkjT9sR.js +1 -0
  281. package/web-ui/build/static/less-CbUH4jBX.js +1 -0
  282. package/web-ui/build/static/less-DEGyfeZn.js +1 -0
  283. package/web-ui/build/static/lilypond-UuoBjShK.js +1 -0
  284. package/web-ui/build/static/liquid-DB3a9n7S.js +1 -0
  285. package/web-ui/build/static/lisp-BDbj7Kd2.js +1 -0
  286. package/web-ui/build/static/lisp-D3T0YOb1.js +1 -0
  287. package/web-ui/build/static/livecodeserver-CkZMVLmr.js +1 -0
  288. package/web-ui/build/static/livescript-CJbtbTfA.js +1 -0
  289. package/web-ui/build/static/livescript-CdWg1xgf.js +1 -0
  290. package/web-ui/build/static/llvm-8hpjZ6qF.js +1 -0
  291. package/web-ui/build/static/llvm-DPpuma6i.js +1 -0
  292. package/web-ui/build/static/log-DwsLgecp.js +1 -0
  293. package/web-ui/build/static/lolcode-D3tkyiVB.js +1 -0
  294. package/web-ui/build/static/lsl-BBM4ZYza.js +1 -0
  295. package/web-ui/build/static/lua-DT0su8pZ.js +1 -0
  296. package/web-ui/build/static/lua-DqZXmUwn.js +1 -0
  297. package/web-ui/build/static/magma-DGW0-GCr.js +1 -0
  298. package/web-ui/build/static/makefile-C_K7AaVw.js +1 -0
  299. package/web-ui/build/static/makefile-CarddjPJ.js +1 -0
  300. package/web-ui/build/static/markdown-3dq-8I9T.js +1 -0
  301. package/web-ui/build/static/markdown-c4VYoNo2.js +1 -0
  302. package/web-ui/build/static/markup-templating-BBX0gWS5.js +1 -0
  303. package/web-ui/build/static/mathematica-n-aqoCbO.js +1 -0
  304. package/web-ui/build/static/matlab-B_kYC-A2.js +1 -0
  305. package/web-ui/build/static/matlab-CQP2D_0j.js +1 -0
  306. package/web-ui/build/static/maxima-piaAhCcP.js +1 -0
  307. package/web-ui/build/static/maxscript-CkxNZR1a.js +1 -0
  308. package/web-ui/build/static/mel-BXbrV0aU.js +1 -0
  309. package/web-ui/build/static/mel-CBSpVZcl.js +1 -0
  310. package/web-ui/build/static/mercury-CffeC87B.js +1 -0
  311. package/web-ui/build/static/mermaid-DAZcfksM.js +1 -0
  312. package/web-ui/build/static/mipsasm-DvOPoNgz.js +1 -0
  313. package/web-ui/build/static/mizar-C2ki99qc.js +1 -0
  314. package/web-ui/build/static/mizar-C5AXRrsD.js +1 -0
  315. package/web-ui/build/static/mojolicious-DklqV-uP.js +1 -0
  316. package/web-ui/build/static/mongodb-BbuSPlN0.js +1 -0
  317. package/web-ui/build/static/monkey-CJBb2-mV.js +1 -0
  318. package/web-ui/build/static/monkey-DgERCZQd.js +1 -0
  319. package/web-ui/build/static/moonscript-BovBU9jW.js +1 -0
  320. package/web-ui/build/static/moonscript-lPqbcjjy.js +1 -0
  321. package/web-ui/build/static/n1ql-CjVXW0Z0.js +1 -0
  322. package/web-ui/build/static/n1ql-DkfG2dTH.js +1 -0
  323. package/web-ui/build/static/n4js-6L9QW_kw.js +1 -0
  324. package/web-ui/build/static/nand2tetris-hdl-CqohGHfB.js +1 -0
  325. package/web-ui/build/static/naniscript-CIvQ6y1b.js +1 -0
  326. package/web-ui/build/static/nasm-CQbJbZZf.js +1 -0
  327. package/web-ui/build/static/neon-Cz41RJxQ.js +1 -0
  328. package/web-ui/build/static/nevod-WPRJ2Q9j.js +1 -0
  329. package/web-ui/build/static/nginx-BL2wPbD-.js +1 -0
  330. package/web-ui/build/static/nginx-DsqC_gQT.js +1 -0
  331. package/web-ui/build/static/nim-7qnwzYm_.js +1 -0
  332. package/web-ui/build/static/nim-D6iDo5H6.js +1 -0
  333. package/web-ui/build/static/nix-BQSsaH-G.js +1 -0
  334. package/web-ui/build/static/nix-DgwCtjpD.js +1 -0
  335. package/web-ui/build/static/node-repl-Cb4w8DbD.js +1 -0
  336. package/web-ui/build/static/nsis-CiXZWrqR.js +1 -0
  337. package/web-ui/build/static/nsis-CuwGI5px.js +1 -0
  338. package/web-ui/build/static/objectivec-DZXCqQ1J.js +1 -0
  339. package/web-ui/build/static/objectivec-GNGh-wiY.js +1 -0
  340. package/web-ui/build/static/ocaml-BPg_ANkr.js +1 -0
  341. package/web-ui/build/static/ocaml-DRUpaN8p.js +1 -0
  342. package/web-ui/build/static/opencl-CazTs_sf.js +1 -0
  343. package/web-ui/build/static/openqasm-DHuuXGjm.js +1 -0
  344. package/web-ui/build/static/openscad-YbvBFeLc.js +1 -0
  345. package/web-ui/build/static/oxygene-DDzgbCaQ.js +1 -0
  346. package/web-ui/build/static/oz-BRDBLIjx.js +1 -0
  347. package/web-ui/build/static/parigp-BbApdos7.js +1 -0
  348. package/web-ui/build/static/parser-CbVH4ySK.js +1 -0
  349. package/web-ui/build/static/parser3-BIkvuuuE.js +1 -0
  350. package/web-ui/build/static/pascal-oS7U_3sO.js +1 -0
  351. package/web-ui/build/static/pascaligo-57DdFj76.js +1 -0
  352. package/web-ui/build/static/pcaxis-V-Euf0DV.js +1 -0
  353. package/web-ui/build/static/peoplecode-DjyRW5V8.js +1 -0
  354. package/web-ui/build/static/perl-BEQWvjeP.js +1 -0
  355. package/web-ui/build/static/perl-CiDHRorC.js +1 -0
  356. package/web-ui/build/static/pf-S5x_U1LC.js +1 -0
  357. package/web-ui/build/static/pgsql-DwHZC-iy.js +1 -0
  358. package/web-ui/build/static/php-7enmlb-I.js +1 -0
  359. package/web-ui/build/static/php-extras-BhRDMlXE.js +1 -0
  360. package/web-ui/build/static/php-kIwfq-Jj.js +1 -0
  361. package/web-ui/build/static/php-template-M2RrZc1R.js +1 -0
  362. package/web-ui/build/static/phpdoc-HUeiWlkw.js +1 -0
  363. package/web-ui/build/static/plaintext-CPt25ow_.js +1 -0
  364. package/web-ui/build/static/plsql-BvoRAbdz.js +1 -0
  365. package/web-ui/build/static/pony-BVuhxk7D.js +1 -0
  366. package/web-ui/build/static/powerquery-rnRfiL3F.js +1 -0
  367. package/web-ui/build/static/powershell-BQR2-qjF.js +1 -0
  368. package/web-ui/build/static/powershell-S_XnLato.js +1 -0
  369. package/web-ui/build/static/processing-B-8pt1gx.js +1 -0
  370. package/web-ui/build/static/processing-ozS1KPr7.js +1 -0
  371. package/web-ui/build/static/profile-DOjTmxRs.js +1 -0
  372. package/web-ui/build/static/prolog-BaaxuI5L.js +1 -0
  373. package/web-ui/build/static/prolog-D90dFqfr.js +1 -0
  374. package/web-ui/build/static/promql-BuyoLqtl.js +1 -0
  375. package/web-ui/build/static/properties-C0pMastm.js +1 -0
  376. package/web-ui/build/static/properties-k7bXYQao.js +1 -0
  377. package/web-ui/build/static/protobuf-ChaO1q7B.js +1 -0
  378. package/web-ui/build/static/protobuf-DAGxv01T.js +1 -0
  379. package/web-ui/build/static/psl-BpYOLBqn.js +1 -0
  380. package/web-ui/build/static/pug-BUlJA4UD.js +1 -0
  381. package/web-ui/build/static/puppet-8l--PVpO.js +1 -0
  382. package/web-ui/build/static/puppet-BJDN84xr.js +1 -0
  383. package/web-ui/build/static/pure-DhqjQg1a.js +1 -0
  384. package/web-ui/build/static/purebasic-BHnSz9Yh.js +1 -0
  385. package/web-ui/build/static/purebasic-CeiLO2aV.js +1 -0
  386. package/web-ui/build/static/purescript-BaXXPnKS.js +1 -0
  387. package/web-ui/build/static/python-BXdJ4yqN.js +1 -0
  388. package/web-ui/build/static/python-Cef5Vfx2.js +1 -0
  389. package/web-ui/build/static/python-repl-CRpJP363.js +1 -0
  390. package/web-ui/build/static/q-C6Ov0g11.js +1 -0
  391. package/web-ui/build/static/q-D3tQMiHa.js +1 -0
  392. package/web-ui/build/static/qml-BYofTHXZ.js +1 -0
  393. package/web-ui/build/static/qml-DTxi8T37.js +1 -0
  394. package/web-ui/build/static/qore-Ny7MVtbP.js +1 -0
  395. package/web-ui/build/static/qsharp-Cy_rqHs2.js +1 -0
  396. package/web-ui/build/static/r-BtNaz7Jx.js +1 -0
  397. package/web-ui/build/static/r-DkF7wq0g.js +1 -0
  398. package/web-ui/build/static/racket-C5r8oFZa.js +1 -0
  399. package/web-ui/build/static/reason-BURRGL8T.js +1 -0
  400. package/web-ui/build/static/reasonml-ZPKVqo38.js +1 -0
  401. package/web-ui/build/static/regex-DgaaAttu.js +1 -0
  402. package/web-ui/build/static/rego-CtwYq-qp.js +1 -0
  403. package/web-ui/build/static/renpy-OueysuHf.js +1 -0
  404. package/web-ui/build/static/rest-Co13hzuk.js +1 -0
  405. package/web-ui/build/static/rib-CvGWooaO.js +1 -0
  406. package/web-ui/build/static/rip-5glwZfvx.js +1 -0
  407. package/web-ui/build/static/roboconf-B9R_ZXBj.js +1 -0
  408. package/web-ui/build/static/roboconf-Gf0nTNKt.js +1 -0
  409. package/web-ui/build/static/robotframework-C2axWAv1.js +1 -0
  410. package/web-ui/build/static/routeros-CE_Iedbm.js +1 -0
  411. package/web-ui/build/static/rsl-2QjczbcI.js +1 -0
  412. package/web-ui/build/static/ruby-5q7nApRB.js +1 -0
  413. package/web-ui/build/static/ruby-BUTeEeQo.js +1 -0
  414. package/web-ui/build/static/ruleslanguage-vxFl2T6e.js +1 -0
  415. package/web-ui/build/static/rust-BMuquF4q.js +1 -0
  416. package/web-ui/build/static/rust-CcZQo8qE.js +1 -0
  417. package/web-ui/build/static/sas-B3kZio_a.js +1 -0
  418. package/web-ui/build/static/sas-Bbv6Pcs_.js +1 -0
  419. package/web-ui/build/static/sass-C0q0q-U-.js +1 -0
  420. package/web-ui/build/static/scala-B5vW0oUX.js +1 -0
  421. package/web-ui/build/static/scala-CyVnVDED.js +1 -0
  422. package/web-ui/build/static/scheme-C9JOo4R_.js +1 -0
  423. package/web-ui/build/static/scheme-W2233tzx.js +1 -0
  424. package/web-ui/build/static/scilab-D2Bvw6Ov.js +1 -0
  425. package/web-ui/build/static/scss-CTlab4AI.js +1 -0
  426. package/web-ui/build/static/scss-DZ5g2Z9m.js +1 -0
  427. package/web-ui/build/static/shell-bYpiB--U.js +1 -0
  428. package/web-ui/build/static/shell-session-C4jzoNup.js +1 -0
  429. package/web-ui/build/static/smali-9ucoTzDl.js +1 -0
  430. package/web-ui/build/static/smali-BnluPxDD.js +1 -0
  431. package/web-ui/build/static/smalltalk-CAMGWItN.js +1 -0
  432. package/web-ui/build/static/smalltalk-DNxg0Og_.js +1 -0
  433. package/web-ui/build/static/smarty-YxNaCRZt.js +1 -0
  434. package/web-ui/build/static/sml-CZbvurr2.js +1 -0
  435. package/web-ui/build/static/sml-DGs_TRXx.js +1 -0
  436. package/web-ui/build/static/solidity-CEsviKxI.js +1 -0
  437. package/web-ui/build/static/solution-file-D0Yvaoet.js +1 -0
  438. package/web-ui/build/static/soy-BmVAPY7I.js +1 -0
  439. package/web-ui/build/static/sparql-D8d4i2J8.js +1 -0
  440. package/web-ui/build/static/splunk-spl-CcgWj5Im.js +1 -0
  441. package/web-ui/build/static/sqf-Cd4tBlXZ.js +1 -0
  442. package/web-ui/build/static/sqf-DC8e-wlP.js +1 -0
  443. package/web-ui/build/static/sql-D5KtfAwl.js +1 -0
  444. package/web-ui/build/static/sql-DX4iGc5J.js +1 -0
  445. package/web-ui/build/static/sql_more-9ztUFh5U.js +1 -0
  446. package/web-ui/build/static/squirrel-CiVV01fQ.js +1 -0
  447. package/web-ui/build/static/stan-DCrPYtdq.js +1 -0
  448. package/web-ui/build/static/stan-LL9ScTUT.js +1 -0
  449. package/web-ui/build/static/stata-n-r5-RvF.js +1 -0
  450. package/web-ui/build/static/step21-B2hxGG1E.js +1 -0
  451. package/web-ui/build/static/stylus-D-1wq2uN.js +1 -0
  452. package/web-ui/build/static/stylus-Dr-w1AjW.js +1 -0
  453. package/web-ui/build/static/subunit-DRCyiRHI.js +1 -0
  454. package/web-ui/build/static/swift-B2ZIuBjB.js +1 -0
  455. package/web-ui/build/static/swift-CnRpp8ao.js +1 -0
  456. package/web-ui/build/static/systemd-LPN-yj3b.js +1 -0
  457. package/web-ui/build/static/t4-cs-CXJSMlet.js +1 -0
  458. package/web-ui/build/static/t4-templating-Ciw3keAZ.js +1 -0
  459. package/web-ui/build/static/t4-vb-CXe99AWF.js +1 -0
  460. package/web-ui/build/static/taggerscript-Bm830ZwV.js +1 -0
  461. package/web-ui/build/static/tap-B0WwYGVt.js +1 -0
  462. package/web-ui/build/static/tap-Dw_cgj6K.js +1 -0
  463. package/web-ui/build/static/tcl-Di4JhH4s.js +1 -0
  464. package/web-ui/build/static/tcl-cIeBNf2V.js +1 -0
  465. package/web-ui/build/static/textile-DgMdCAz5.js +1 -0
  466. package/web-ui/build/static/thrift-zY2WxYMk.js +1 -0
  467. package/web-ui/build/static/toml-BtXdKizf.js +1 -0
  468. package/web-ui/build/static/tp-DxY0K8UF.js +1 -0
  469. package/web-ui/build/static/tremor-890wqxvH.js +1 -0
  470. package/web-ui/build/static/tsx-92ElsKxL.js +1 -0
  471. package/web-ui/build/static/tt2-DqcvjDKh.js +1 -0
  472. package/web-ui/build/static/turtle-BZikMsiD.js +1 -0
  473. package/web-ui/build/static/twig-BlxkEMdw.js +1 -0
  474. package/web-ui/build/static/twig-CfsoMGnv.js +1 -0
  475. package/web-ui/build/static/typescript-3xS8yDgH.js +1 -0
  476. package/web-ui/build/static/typescript-Dx0zHssr.js +1 -0
  477. package/web-ui/build/static/typoscript-BdFwMGCV.js +1 -0
  478. package/web-ui/build/static/unrealscript-DJzoqp3G.js +1 -0
  479. package/web-ui/build/static/uorazor-CQO8Ynpw.js +1 -0
  480. package/web-ui/build/static/uri-BUBBJdel.js +1 -0
  481. package/web-ui/build/static/v-XU798JEc.js +1 -0
  482. package/web-ui/build/static/vala-DsH-Nomr.js +1 -0
  483. package/web-ui/build/static/vala-gCVw4o0d.js +1 -0
  484. package/web-ui/build/static/vbnet-BHw8cZ4s.js +1 -0
  485. package/web-ui/build/static/vbnet-DPa2ddOk.js +1 -0
  486. package/web-ui/build/static/vbscript-html-CNADYJ1-.js +1 -0
  487. package/web-ui/build/static/vbscript-ztRmIppj.js +1 -0
  488. package/web-ui/build/static/velocity-DVfeN53w.js +1 -0
  489. package/web-ui/build/static/verilog-C9VDLRl9.js +1 -0
  490. package/web-ui/build/static/verilog-Dsmt_WJW.js +1 -0
  491. package/web-ui/build/static/vhdl-DbylNGny.js +1 -0
  492. package/web-ui/build/static/vhdl-wNJe3yKK.js +1 -0
  493. package/web-ui/build/static/vim-6PLlVaq_.js +1 -0
  494. package/web-ui/build/static/vim-BJpkTTe-.js +1 -0
  495. package/web-ui/build/static/visual-basic-GY3wXjJ3.js +1 -0
  496. package/web-ui/build/static/warpscript-DUb9z3yI.js +1 -0
  497. package/web-ui/build/static/wasm-Dey0RlHH.js +1 -0
  498. package/web-ui/build/static/web-idl-qAF1RqaI.js +1 -0
  499. package/web-ui/build/static/wiki-Dh3Vjtce.js +1 -0
  500. package/web-ui/build/static/wolfram-BrQcRMlt.js +1 -0
  501. package/web-ui/build/static/wren-Cu3Mzln6.js +1 -0
  502. package/web-ui/build/static/x86asm-DD5mhaEi.js +1 -0
  503. package/web-ui/build/static/xeora-DKRZ6hlr.js +1 -0
  504. package/web-ui/build/static/xl-BL8R8sAx.js +1 -0
  505. package/web-ui/build/static/xml-doc-BSpNJbEM.js +1 -0
  506. package/web-ui/build/static/xml-i5BJyEQ7.js +1 -0
  507. package/web-ui/build/static/xojo-r2ieNAyP.js +1 -0
  508. package/web-ui/build/static/xquery-BtAK8Dvl.js +1 -0
  509. package/web-ui/build/static/xquery-CM4Q_TX7.js +1 -0
  510. package/web-ui/build/static/yaml-Mm8ArZA3.js +1 -0
  511. package/web-ui/build/static/yaml-r-QeuY00.js +1 -0
  512. package/web-ui/build/static/yang-qcKR-Y23.js +1 -0
  513. package/web-ui/build/static/zephir-8ApHtH7c.js +1 -0
  514. package/web-ui/build/static/zig-BanqOd9_.js +1 -0
  515. package/web-ui/build/static/1c-alYWzgyM.js +0 -1
  516. package/web-ui/build/static/abap-MNX4MGQu.js +0 -1
  517. package/web-ui/build/static/abnf-PB6umZUe.js +0 -1
  518. package/web-ui/build/static/abnf-lLelqyRq.js +0 -1
  519. package/web-ui/build/static/accesslog-ECfnNf6M.js +0 -1
  520. package/web-ui/build/static/actionscript-48Mv-P2G.js +0 -1
  521. package/web-ui/build/static/actionscript-CmFMkWAF.js +0 -1
  522. package/web-ui/build/static/ada-D0nj2830.js +0 -1
  523. package/web-ui/build/static/ada-DC68kRrL.js +0 -1
  524. package/web-ui/build/static/agda-CjnuTEYG.js +0 -1
  525. package/web-ui/build/static/al-DICLGfy9.js +0 -1
  526. package/web-ui/build/static/angelscript-D7H0wknj.js +0 -1
  527. package/web-ui/build/static/antlr4-C_KsZIwI.js +0 -1
  528. package/web-ui/build/static/apache-Cfj2o0TW.js +0 -1
  529. package/web-ui/build/static/apacheconf-D5jQXqP_.js +0 -1
  530. package/web-ui/build/static/apex-G2rOb7vm.js +0 -1
  531. package/web-ui/build/static/apl-CE_aKOLQ.js +0 -1
  532. package/web-ui/build/static/applescript-BffXi9IZ.js +0 -1
  533. package/web-ui/build/static/applescript-CshVa-pZ.js +0 -1
  534. package/web-ui/build/static/aql-F9xr2xIN.js +0 -1
  535. package/web-ui/build/static/arcade-29Re4fPy.js +0 -1
  536. package/web-ui/build/static/arduino-BGsZiYrf.js +0 -1
  537. package/web-ui/build/static/arduino-HiqNS--s.js +0 -1
  538. package/web-ui/build/static/arff-jPcJv_eJ.js +0 -1
  539. package/web-ui/build/static/armasm-DDockn0p.js +0 -1
  540. package/web-ui/build/static/asciidoc-BW3nh79M.js +0 -1
  541. package/web-ui/build/static/asciidoc-Dxit6U7t.js +0 -1
  542. package/web-ui/build/static/asm6502-eTpxnsNy.js +0 -1
  543. package/web-ui/build/static/asmatmel-BHeErmNQ.js +0 -1
  544. package/web-ui/build/static/aspectj-CX6x53Aw.js +0 -1
  545. package/web-ui/build/static/aspnet-BFDGvlyU.js +0 -1
  546. package/web-ui/build/static/autohotkey-CRNZnW-g.js +0 -1
  547. package/web-ui/build/static/autohotkey-DhdXEUbC.js +0 -1
  548. package/web-ui/build/static/autoit-BrCU_LoC.js +0 -1
  549. package/web-ui/build/static/autoit-CNY5ZLoO.js +0 -1
  550. package/web-ui/build/static/avisynth-CvpX-vR-.js +0 -1
  551. package/web-ui/build/static/avrasm-Ch0VgbnW.js +0 -1
  552. package/web-ui/build/static/avro-idl-DVNgaXeA.js +0 -1
  553. package/web-ui/build/static/awk-DBbMErBm.js +0 -1
  554. package/web-ui/build/static/axapta-BZMCBJyd.js +0 -1
  555. package/web-ui/build/static/bash-B7W9_l_H.js +0 -1
  556. package/web-ui/build/static/bash-nUxPXV93.js +0 -1
  557. package/web-ui/build/static/basic-CncKWTdb.js +0 -1
  558. package/web-ui/build/static/basic-t050Yfrj.js +0 -1
  559. package/web-ui/build/static/batch-DzppEDD6.js +0 -1
  560. package/web-ui/build/static/bbcode-Cxa6xUCC.js +0 -1
  561. package/web-ui/build/static/bicep-CNfRbyLD.js +0 -1
  562. package/web-ui/build/static/birb-BQn3C4qH.js +0 -1
  563. package/web-ui/build/static/bison-CG1ITN82.js +0 -1
  564. package/web-ui/build/static/bnf-BH6EqVfg.js +0 -1
  565. package/web-ui/build/static/bnf-DOOI4ziA.js +0 -1
  566. package/web-ui/build/static/brainfuck-CuvanNT4.js +0 -1
  567. package/web-ui/build/static/brainfuck-DEN53aXA.js +0 -1
  568. package/web-ui/build/static/brightscript-C_qPLhPu.js +0 -1
  569. package/web-ui/build/static/bro-DE4fdxVn.js +0 -1
  570. package/web-ui/build/static/bsl-DhilRMN1.js +0 -1
  571. package/web-ui/build/static/c-DJMkv9RR.js +0 -1
  572. package/web-ui/build/static/c-HH0eyrSO.js +0 -1
  573. package/web-ui/build/static/c-like-CievvBLp.js +0 -1
  574. package/web-ui/build/static/cal-BBz3_HT0.js +0 -1
  575. package/web-ui/build/static/capnproto-BOgD9Wf3.js +0 -1
  576. package/web-ui/build/static/ceylon-MWYZBIMt.js +0 -1
  577. package/web-ui/build/static/cfscript-BiVuxt5i.js +0 -1
  578. package/web-ui/build/static/chaiscript-CPx7l6f-.js +0 -1
  579. package/web-ui/build/static/cil-3DGkdNym.js +0 -1
  580. package/web-ui/build/static/clean-Bxi-hwbJ.js +0 -1
  581. package/web-ui/build/static/clojure-BBMLjTS9.js +0 -1
  582. package/web-ui/build/static/clojure-RPrwnP3x.js +0 -1
  583. package/web-ui/build/static/clojure-repl-BE9VGIhP.js +0 -1
  584. package/web-ui/build/static/cmake-BMeSZbTq.js +0 -1
  585. package/web-ui/build/static/cmake-CLVNptnB.js +0 -1
  586. package/web-ui/build/static/cobol-f-w6Mj2H.js +0 -1
  587. package/web-ui/build/static/coffeescript-CESbl4tN.js +0 -1
  588. package/web-ui/build/static/coffeescript-DmOzsrDS.js +0 -1
  589. package/web-ui/build/static/concurnas-DxQ9U571.js +0 -1
  590. package/web-ui/build/static/coq-4Wu7fuDB.js +0 -1
  591. package/web-ui/build/static/coq-BERQ-1c4.js +0 -1
  592. package/web-ui/build/static/cos-SsvxAn6O.js +0 -1
  593. package/web-ui/build/static/cpp-BkY4KhJS.js +0 -1
  594. package/web-ui/build/static/cpp-CGkeKbAD.js +0 -1
  595. package/web-ui/build/static/crmsh-BL32bNK1.js +0 -1
  596. package/web-ui/build/static/crystal-C4e562-w.js +0 -1
  597. package/web-ui/build/static/crystal-Hu8WDm2E.js +0 -1
  598. package/web-ui/build/static/csharp-DvnJhHBw.js +0 -1
  599. package/web-ui/build/static/csharp-DxFH-E_J.js +0 -1
  600. package/web-ui/build/static/cshtml-BkimeLw1.js +0 -1
  601. package/web-ui/build/static/csp-CDNmbLWI.js +0 -1
  602. package/web-ui/build/static/csp-DXmobqdr.js +0 -1
  603. package/web-ui/build/static/css-VRUoX-cu.js +0 -1
  604. package/web-ui/build/static/css-extras-Dcz-5Gz_.js +0 -1
  605. package/web-ui/build/static/csv-Cy-vj0dX.js +0 -1
  606. package/web-ui/build/static/cypher-CyiGMZEd.js +0 -1
  607. package/web-ui/build/static/d-50yhKzqs.js +0 -1
  608. package/web-ui/build/static/d-CtQcHe9N.js +0 -1
  609. package/web-ui/build/static/dart-Dj05IVm2.js +0 -1
  610. package/web-ui/build/static/dart-kumEUEig.js +0 -1
  611. package/web-ui/build/static/dataweave-CyaTPvHl.js +0 -1
  612. package/web-ui/build/static/dax-BYZEUwTe.js +0 -1
  613. package/web-ui/build/static/delphi-Hrkf0_Zm.js +0 -1
  614. package/web-ui/build/static/dhall-ZfXZcVvQ.js +0 -1
  615. package/web-ui/build/static/diff-B681Qorw.js +0 -1
  616. package/web-ui/build/static/diff-C85U1vU3.js +0 -1
  617. package/web-ui/build/static/django-BbqkMAd3.js +0 -1
  618. package/web-ui/build/static/django-ebEm7IW1.js +0 -1
  619. package/web-ui/build/static/dns-CIKOn0cx.js +0 -1
  620. package/web-ui/build/static/dns-zone-file-Cgfj303q.js +0 -1
  621. package/web-ui/build/static/docker-DezZesK-.js +0 -1
  622. package/web-ui/build/static/dockerfile-HOIJDSPT.js +0 -1
  623. package/web-ui/build/static/dos-Bv0IPgh2.js +0 -1
  624. package/web-ui/build/static/dot-BiJIuPYL.js +0 -1
  625. package/web-ui/build/static/dsconfig-DCPRv9km.js +0 -1
  626. package/web-ui/build/static/dts-CXMbX7gl.js +0 -1
  627. package/web-ui/build/static/dust-Mjmn5ftw.js +0 -1
  628. package/web-ui/build/static/ebnf-469W3R_o.js +0 -1
  629. package/web-ui/build/static/ebnf-Bs6Ftm9u.js +0 -1
  630. package/web-ui/build/static/editorconfig-C4dD8cK_.js +0 -1
  631. package/web-ui/build/static/eiffel-D78uHdvn.js +0 -1
  632. package/web-ui/build/static/ejs-CUydrtqr.js +0 -1
  633. package/web-ui/build/static/elixir-BIxlPrSO.js +0 -1
  634. package/web-ui/build/static/elixir-CLS7rDXm.js +0 -1
  635. package/web-ui/build/static/elm-CdXXWPN7.js +0 -1
  636. package/web-ui/build/static/elm-DT7wSSPo.js +0 -1
  637. package/web-ui/build/static/erb-8Xeo3WFF.js +0 -1
  638. package/web-ui/build/static/erb-DROzrB_O.js +0 -1
  639. package/web-ui/build/static/erlang-DbMlkDTN.js +0 -1
  640. package/web-ui/build/static/erlang-DoF730hs.js +0 -1
  641. package/web-ui/build/static/erlang-repl-B7enXvga.js +0 -1
  642. package/web-ui/build/static/etlua-CehWhSD3.js +0 -1
  643. package/web-ui/build/static/excel-DHmOIegb.js +0 -1
  644. package/web-ui/build/static/excel-formula-DdeWF1_w.js +0 -1
  645. package/web-ui/build/static/factor-DBMZ3xT3.js +0 -1
  646. package/web-ui/build/static/false-AxZ_vqH0.js +0 -1
  647. package/web-ui/build/static/firestore-security-rules-BChGByFG.js +0 -1
  648. package/web-ui/build/static/fix-Cc-mOcI9.js +0 -1
  649. package/web-ui/build/static/flix-CBpO-hKP.js +0 -1
  650. package/web-ui/build/static/flow-FI5Ahl__.js +0 -1
  651. package/web-ui/build/static/fortran-C-jW3mxU.js +0 -1
  652. package/web-ui/build/static/fortran-zFBKdQax.js +0 -1
  653. package/web-ui/build/static/fsharp-Qu8P7ZfJ.js +0 -1
  654. package/web-ui/build/static/fsharp-gJT07_u6.js +0 -1
  655. package/web-ui/build/static/ftl-DcmD2jIl.js +0 -1
  656. package/web-ui/build/static/gams-BAhsVwik.js +0 -1
  657. package/web-ui/build/static/gap-DtjJMac5.js +0 -1
  658. package/web-ui/build/static/gauss-DLNJrvWH.js +0 -1
  659. package/web-ui/build/static/gcode-CbChIRHG.js +0 -1
  660. package/web-ui/build/static/gcode-lgPukEuS.js +0 -1
  661. package/web-ui/build/static/gdscript-ChdqKkXx.js +0 -1
  662. package/web-ui/build/static/gedcom-B3RAxWnR.js +0 -1
  663. package/web-ui/build/static/gherkin-BwKe4UMd.js +0 -1
  664. package/web-ui/build/static/gherkin-D1Q4xoY6.js +0 -1
  665. package/web-ui/build/static/git-CwA8K3Cg.js +0 -1
  666. package/web-ui/build/static/glsl-B_AtY5k6.js +0 -1
  667. package/web-ui/build/static/glsl-BgXyZa9x.js +0 -1
  668. package/web-ui/build/static/gml-O2ebFipB.js +0 -1
  669. package/web-ui/build/static/gml-xLusiP_j.js +0 -1
  670. package/web-ui/build/static/gn-T-uGKQLr.js +0 -1
  671. package/web-ui/build/static/go-B9spniuU.js +0 -1
  672. package/web-ui/build/static/go-DTwlbvuB.js +0 -1
  673. package/web-ui/build/static/go-module-DWCbGNjZ.js +0 -1
  674. package/web-ui/build/static/golo-Dp3ZC9Ry.js +0 -1
  675. package/web-ui/build/static/gradle-DxnYLs2J.js +0 -1
  676. package/web-ui/build/static/graphql-8stFQb3o.js +0 -1
  677. package/web-ui/build/static/groovy-Dbpy85Rs.js +0 -1
  678. package/web-ui/build/static/groovy-zimUQS73.js +0 -1
  679. package/web-ui/build/static/haml-B5gJAH_w.js +0 -1
  680. package/web-ui/build/static/haml-CXW3L0QY.js +0 -1
  681. package/web-ui/build/static/handlebars-BW92WxdN.js +0 -1
  682. package/web-ui/build/static/handlebars-DNysemQE.js +0 -1
  683. package/web-ui/build/static/haskell-BCP5M1h6.js +0 -1
  684. package/web-ui/build/static/haskell-BvSwVdJS.js +0 -1
  685. package/web-ui/build/static/haxe-BBVHLa1y.js +0 -1
  686. package/web-ui/build/static/haxe-DHK7XQB_.js +0 -1
  687. package/web-ui/build/static/hcl-CW0_ZJVS.js +0 -1
  688. package/web-ui/build/static/hlsl-DAH7B5KM.js +0 -1
  689. package/web-ui/build/static/hoon-CXY0i4p4.js +0 -1
  690. package/web-ui/build/static/hpkp-RL8DG2Fy.js +0 -1
  691. package/web-ui/build/static/hsp-DMAT8yb3.js +0 -1
  692. package/web-ui/build/static/hsts-SOCNnT21.js +0 -1
  693. package/web-ui/build/static/htmlbars-Bsrm5Qs8.js +0 -1
  694. package/web-ui/build/static/http-CYjIQwPj.js +0 -1
  695. package/web-ui/build/static/http-Hu8W9pON.js +0 -1
  696. package/web-ui/build/static/hy-CDbyyAxf.js +0 -1
  697. package/web-ui/build/static/ichigojam-CpPBjr7T.js +0 -1
  698. package/web-ui/build/static/icon-UI22EXz2.js +0 -1
  699. package/web-ui/build/static/icu-message-format-DAU066Wq.js +0 -1
  700. package/web-ui/build/static/idris-BuMEL37s.js +0 -1
  701. package/web-ui/build/static/iecst-CEqwKb_G.js +0 -1
  702. package/web-ui/build/static/ignore-CcCxTW7I.js +0 -1
  703. package/web-ui/build/static/index-C9Fa_kgD.css +0 -1
  704. package/web-ui/build/static/index-DexoK8pu.js +0 -834
  705. package/web-ui/build/static/index-DgeaGxMy.js +0 -13
  706. package/web-ui/build/static/index-RM91zq9j.js +0 -1
  707. package/web-ui/build/static/inform7-BdnukB1N.js +0 -1
  708. package/web-ui/build/static/inform7-Chkw-Df3.js +0 -1
  709. package/web-ui/build/static/ini--KUo0NJD.js +0 -1
  710. package/web-ui/build/static/ini-eo_rWFNv.js +0 -1
  711. package/web-ui/build/static/io-CWDVYxeI.js +0 -1
  712. package/web-ui/build/static/irpf90-CWFfmPjK.js +0 -1
  713. package/web-ui/build/static/isbl-BNkdk_dr.js +0 -1
  714. package/web-ui/build/static/j-Bg02P4UL.js +0 -1
  715. package/web-ui/build/static/java-BIDWcDHj.js +0 -1
  716. package/web-ui/build/static/java-D4bhM1sC.js +0 -1
  717. package/web-ui/build/static/javadoc-DxxfkSj4.js +0 -1
  718. package/web-ui/build/static/javadoclike-C3v2LXMS.js +0 -1
  719. package/web-ui/build/static/javascript-CSu6Pvd7.js +0 -1
  720. package/web-ui/build/static/javastacktrace-C50AqeNg.js +0 -1
  721. package/web-ui/build/static/jboss-cli-D4aAEeAL.js +0 -1
  722. package/web-ui/build/static/jexl-F8wyoUqO.js +0 -1
  723. package/web-ui/build/static/jolie-CdEDMXNQ.js +0 -1
  724. package/web-ui/build/static/jq-D95l3yQ0.js +0 -1
  725. package/web-ui/build/static/js-extras-55OlT8yf.js +0 -1
  726. package/web-ui/build/static/js-templates-4m7AkoaU.js +0 -1
  727. package/web-ui/build/static/jsdoc-BC6Ab1D0.js +0 -1
  728. package/web-ui/build/static/json-BHS2wD8g.js +0 -1
  729. package/web-ui/build/static/json-CPEJ9diH.js +0 -1
  730. package/web-ui/build/static/json5-EDQFzkuf.js +0 -1
  731. package/web-ui/build/static/jsonp-Cn_lpjaf.js +0 -1
  732. package/web-ui/build/static/jsstacktrace-pqdhqbKV.js +0 -1
  733. package/web-ui/build/static/jsx-Cop--oM_.js +0 -1
  734. package/web-ui/build/static/julia-B728rR99.js +0 -1
  735. package/web-ui/build/static/julia-Cq6vOawm.js +0 -1
  736. package/web-ui/build/static/julia-repl-BfOfjY_7.js +0 -1
  737. package/web-ui/build/static/keepalived-6ZwoBjFL.js +0 -1
  738. package/web-ui/build/static/keyman-DmOLCkH_.js +0 -1
  739. package/web-ui/build/static/kotlin-Bt385M6s.js +0 -1
  740. package/web-ui/build/static/kotlin-DsTE9me6.js +0 -1
  741. package/web-ui/build/static/kumir-DGpgb_2O.js +0 -1
  742. package/web-ui/build/static/kusto-Bb1U0J5m.js +0 -1
  743. package/web-ui/build/static/lasso-B4Rh4fa1.js +0 -1
  744. package/web-ui/build/static/latex-BlKwUVQO.js +0 -1
  745. package/web-ui/build/static/latex-D4EkT2Sx.js +0 -1
  746. package/web-ui/build/static/latte-8APUTRqH.js +0 -1
  747. package/web-ui/build/static/ldif-C1AH3r9Q.js +0 -1
  748. package/web-ui/build/static/leaf-DgHqqnCU.js +0 -1
  749. package/web-ui/build/static/less-BmLC9UX9.js +0 -1
  750. package/web-ui/build/static/less-D7wanA1u.js +0 -1
  751. package/web-ui/build/static/lilypond-CPpwdP3M.js +0 -1
  752. package/web-ui/build/static/liquid-C9g89s0-.js +0 -1
  753. package/web-ui/build/static/lisp-Ck1UA6zq.js +0 -1
  754. package/web-ui/build/static/lisp-tlR-SVFU.js +0 -1
  755. package/web-ui/build/static/livecodeserver-CfcVUDKK.js +0 -1
  756. package/web-ui/build/static/livescript-BPfp_PIe.js +0 -1
  757. package/web-ui/build/static/livescript-BVClM17E.js +0 -1
  758. package/web-ui/build/static/llvm-1CmNV1WZ.js +0 -1
  759. package/web-ui/build/static/llvm-DzaT3xf4.js +0 -1
  760. package/web-ui/build/static/log-x35sd55_.js +0 -1
  761. package/web-ui/build/static/lolcode-DfGz4a2C.js +0 -1
  762. package/web-ui/build/static/lsl-BJ13xzsn.js +0 -1
  763. package/web-ui/build/static/lua-DHTiU4iK.js +0 -1
  764. package/web-ui/build/static/lua-DttbbyOa.js +0 -1
  765. package/web-ui/build/static/magma-CM6u6Urv.js +0 -1
  766. package/web-ui/build/static/makefile--_TmwP5m.js +0 -1
  767. package/web-ui/build/static/makefile-DoB_xjMl.js +0 -1
  768. package/web-ui/build/static/markdown-BnyhT66e.js +0 -1
  769. package/web-ui/build/static/markdown-DvTREwgd.js +0 -1
  770. package/web-ui/build/static/markup-templating-yOvzgP3Z.js +0 -1
  771. package/web-ui/build/static/mathematica-BtY5tmVE.js +0 -1
  772. package/web-ui/build/static/matlab-DK98sDbn.js +0 -1
  773. package/web-ui/build/static/matlab-sBcSHRlC.js +0 -1
  774. package/web-ui/build/static/maxima-DMUOymL4.js +0 -1
  775. package/web-ui/build/static/maxscript-DaIC7eX6.js +0 -1
  776. package/web-ui/build/static/mel-BuONpgVc.js +0 -1
  777. package/web-ui/build/static/mel-Ckh0frDB.js +0 -1
  778. package/web-ui/build/static/mercury-CDFt4KAe.js +0 -1
  779. package/web-ui/build/static/mermaid-BqSA7Pr5.js +0 -1
  780. package/web-ui/build/static/mipsasm-Dj6mne2g.js +0 -1
  781. package/web-ui/build/static/mizar-CIQIQU-V.js +0 -1
  782. package/web-ui/build/static/mizar-CLTLHCGu.js +0 -1
  783. package/web-ui/build/static/mojolicious-DxjS7wDV.js +0 -1
  784. package/web-ui/build/static/mongodb-BAEipI91.js +0 -1
  785. package/web-ui/build/static/monkey-BBGnwc6s.js +0 -1
  786. package/web-ui/build/static/monkey-CvxTCuiS.js +0 -1
  787. package/web-ui/build/static/moonscript-CqDVk1K9.js +0 -1
  788. package/web-ui/build/static/moonscript-DJyxvZQc.js +0 -1
  789. package/web-ui/build/static/n1ql-AFWwB4Xn.js +0 -1
  790. package/web-ui/build/static/n1ql-VuVk9_MG.js +0 -1
  791. package/web-ui/build/static/n4js-BH6hpdgG.js +0 -1
  792. package/web-ui/build/static/nand2tetris-hdl-kVewh9V1.js +0 -1
  793. package/web-ui/build/static/naniscript-B_oQ4TiW.js +0 -1
  794. package/web-ui/build/static/nasm-B1_bJvcz.js +0 -1
  795. package/web-ui/build/static/neon-CbXfhQIm.js +0 -1
  796. package/web-ui/build/static/nevod-5Fv5cPWk.js +0 -1
  797. package/web-ui/build/static/nginx-BfifkBy-.js +0 -1
  798. package/web-ui/build/static/nginx-D9toNO0V.js +0 -1
  799. package/web-ui/build/static/nim-BFN2inD1.js +0 -1
  800. package/web-ui/build/static/nim-do_UhCvy.js +0 -1
  801. package/web-ui/build/static/nix-D6RLwwOZ.js +0 -1
  802. package/web-ui/build/static/nix-djoKaPeE.js +0 -1
  803. package/web-ui/build/static/node-repl-DDbffQSR.js +0 -1
  804. package/web-ui/build/static/nsis-BiO6b68i.js +0 -1
  805. package/web-ui/build/static/nsis-CHzeu7js.js +0 -1
  806. package/web-ui/build/static/objectivec-B7vXzYuT.js +0 -1
  807. package/web-ui/build/static/objectivec-BLn212SY.js +0 -1
  808. package/web-ui/build/static/ocaml-BvpR0Yig.js +0 -1
  809. package/web-ui/build/static/ocaml-DWZF00Ti.js +0 -1
  810. package/web-ui/build/static/opencl-C2K2Ctu5.js +0 -1
  811. package/web-ui/build/static/openqasm-Cbtnnn3m.js +0 -1
  812. package/web-ui/build/static/openscad-CEPC0-yW.js +0 -1
  813. package/web-ui/build/static/oxygene-KfcdTXi0.js +0 -1
  814. package/web-ui/build/static/oz-B-azwNjQ.js +0 -1
  815. package/web-ui/build/static/parigp-IWtYGphS.js +0 -1
  816. package/web-ui/build/static/parser-CUCdnJ6l.js +0 -1
  817. package/web-ui/build/static/parser3--a7jm4Uq.js +0 -1
  818. package/web-ui/build/static/pascal-BbezKExl.js +0 -1
  819. package/web-ui/build/static/pascaligo-Bd8IN8hq.js +0 -1
  820. package/web-ui/build/static/pcaxis-CfT0dd7B.js +0 -1
  821. package/web-ui/build/static/peoplecode-Dq29i2LW.js +0 -1
  822. package/web-ui/build/static/perl-BZLc5sMP.js +0 -1
  823. package/web-ui/build/static/perl-JJmLLJne.js +0 -1
  824. package/web-ui/build/static/pf-seOENy0q.js +0 -1
  825. package/web-ui/build/static/pgsql-BtkzXwKY.js +0 -1
  826. package/web-ui/build/static/php-8b9a1w98.js +0 -1
  827. package/web-ui/build/static/php-extras-5D00a1Fm.js +0 -1
  828. package/web-ui/build/static/php-imFv4WXA.js +0 -1
  829. package/web-ui/build/static/php-template-CI-0RdMu.js +0 -1
  830. package/web-ui/build/static/phpdoc-DdcPBfc-.js +0 -1
  831. package/web-ui/build/static/plaintext-Ca1WAvT6.js +0 -1
  832. package/web-ui/build/static/plsql-CZV7QAnN.js +0 -1
  833. package/web-ui/build/static/pony-DiomUkGt.js +0 -1
  834. package/web-ui/build/static/powerquery-CKXX2_O_.js +0 -1
  835. package/web-ui/build/static/powershell-2Ctsosr0.js +0 -1
  836. package/web-ui/build/static/powershell-DVPkgaB6.js +0 -1
  837. package/web-ui/build/static/processing-BAuxATGX.js +0 -1
  838. package/web-ui/build/static/processing-DBzyjRsf.js +0 -1
  839. package/web-ui/build/static/profile-Cq2gkRUb.js +0 -1
  840. package/web-ui/build/static/prolog-ByKO_5p_.js +0 -1
  841. package/web-ui/build/static/prolog-CDCLze6j.js +0 -1
  842. package/web-ui/build/static/promql-BYOPu10L.js +0 -1
  843. package/web-ui/build/static/properties-kP8T8mqV.js +0 -1
  844. package/web-ui/build/static/properties-zdANIr61.js +0 -1
  845. package/web-ui/build/static/protobuf-DhAYlNOg.js +0 -1
  846. package/web-ui/build/static/protobuf-a1lLQN1f.js +0 -1
  847. package/web-ui/build/static/psl-DpP1u6wu.js +0 -1
  848. package/web-ui/build/static/pug-BobY0hsa.js +0 -1
  849. package/web-ui/build/static/puppet-CDimLnep.js +0 -1
  850. package/web-ui/build/static/puppet-D7DLS3gG.js +0 -1
  851. package/web-ui/build/static/pure-4QGsilHw.js +0 -1
  852. package/web-ui/build/static/purebasic-D0wI4z6w.js +0 -1
  853. package/web-ui/build/static/purebasic-Du_RxI7h.js +0 -1
  854. package/web-ui/build/static/purescript-CM92Fn9c.js +0 -1
  855. package/web-ui/build/static/python-Bvcn81x2.js +0 -1
  856. package/web-ui/build/static/python-CkfwrdRF.js +0 -1
  857. package/web-ui/build/static/python-repl-C48-EfyF.js +0 -1
  858. package/web-ui/build/static/q-B2-zP3za.js +0 -1
  859. package/web-ui/build/static/q-KuKa9s_e.js +0 -1
  860. package/web-ui/build/static/qml-D8j38-Sx.js +0 -1
  861. package/web-ui/build/static/qml-DTP6fbZN.js +0 -1
  862. package/web-ui/build/static/qore-DY-n97IK.js +0 -1
  863. package/web-ui/build/static/qsharp-Mn8hUKww.js +0 -1
  864. package/web-ui/build/static/r-BBPYkuMA.js +0 -1
  865. package/web-ui/build/static/r-CheuVCRq.js +0 -1
  866. package/web-ui/build/static/racket-2UxWXIqI.js +0 -1
  867. package/web-ui/build/static/reason-CudKWaht.js +0 -1
  868. package/web-ui/build/static/reasonml-BDZgwPxq.js +0 -1
  869. package/web-ui/build/static/regex-DpKrn61Z.js +0 -1
  870. package/web-ui/build/static/rego-CS2iMzor.js +0 -1
  871. package/web-ui/build/static/renpy-0CbyBFae.js +0 -1
  872. package/web-ui/build/static/rest-Ckpz2bGS.js +0 -1
  873. package/web-ui/build/static/rib-g77eioCq.js +0 -1
  874. package/web-ui/build/static/rip-L-KlpyJn.js +0 -1
  875. package/web-ui/build/static/roboconf-BkNeb0Yn.js +0 -1
  876. package/web-ui/build/static/roboconf-CE-yfGxs.js +0 -1
  877. package/web-ui/build/static/robotframework-ZhLv32cH.js +0 -1
  878. package/web-ui/build/static/routeros-C_1I4hFK.js +0 -1
  879. package/web-ui/build/static/rsl-CxEYmrJa.js +0 -1
  880. package/web-ui/build/static/ruby-Cgxmv3hM.js +0 -1
  881. package/web-ui/build/static/ruby-Cs4qnUzE.js +0 -1
  882. package/web-ui/build/static/ruleslanguage-DPK5B1Dg.js +0 -1
  883. package/web-ui/build/static/rust-BbVN6hMu.js +0 -1
  884. package/web-ui/build/static/rust-C6MrX2UK.js +0 -1
  885. package/web-ui/build/static/sas-CGov9per.js +0 -1
  886. package/web-ui/build/static/sas-Cp88q4DD.js +0 -1
  887. package/web-ui/build/static/sass-COOJqQer.js +0 -1
  888. package/web-ui/build/static/scala-BvOmMtdv.js +0 -1
  889. package/web-ui/build/static/scala-D5gnz3xs.js +0 -1
  890. package/web-ui/build/static/scheme-CNBfxsvv.js +0 -1
  891. package/web-ui/build/static/scheme-DiKuURfA.js +0 -1
  892. package/web-ui/build/static/scilab-vGKouaTh.js +0 -1
  893. package/web-ui/build/static/scss-B4PKgroe.js +0 -1
  894. package/web-ui/build/static/scss-BvRxfJ1U.js +0 -1
  895. package/web-ui/build/static/shell-B5TooOs0.js +0 -1
  896. package/web-ui/build/static/shell-session-TNT_ahRW.js +0 -1
  897. package/web-ui/build/static/smali-CiIXEKzG.js +0 -1
  898. package/web-ui/build/static/smali-EGdSXgM9.js +0 -1
  899. package/web-ui/build/static/smalltalk-DVAXFBVS.js +0 -1
  900. package/web-ui/build/static/smalltalk-Dfy8hlRv.js +0 -1
  901. package/web-ui/build/static/smarty-Rc2y-rm6.js +0 -1
  902. package/web-ui/build/static/sml-BoYe_d8x.js +0 -1
  903. package/web-ui/build/static/sml-CaIv1GsI.js +0 -1
  904. package/web-ui/build/static/solidity-Dem-6tsD.js +0 -1
  905. package/web-ui/build/static/solution-file-DfDjJASp.js +0 -1
  906. package/web-ui/build/static/soy-CkrJH5eW.js +0 -1
  907. package/web-ui/build/static/sparql-Dvg1P5oN.js +0 -1
  908. package/web-ui/build/static/splunk-spl-rB2pJQdl.js +0 -1
  909. package/web-ui/build/static/sqf-Cj_KV-kC.js +0 -1
  910. package/web-ui/build/static/sqf-DA_tj5Fb.js +0 -1
  911. package/web-ui/build/static/sql-CYDE0gzH.js +0 -1
  912. package/web-ui/build/static/sql-D8byAq-B.js +0 -1
  913. package/web-ui/build/static/sql_more-bMORpicj.js +0 -1
  914. package/web-ui/build/static/squirrel-rgwbGN0q.js +0 -1
  915. package/web-ui/build/static/stan-C-OYiHTu.js +0 -1
  916. package/web-ui/build/static/stan-CT8cMsn7.js +0 -1
  917. package/web-ui/build/static/stata-BJwZeN-z.js +0 -1
  918. package/web-ui/build/static/step21-WP26kxkW.js +0 -1
  919. package/web-ui/build/static/stylus-Cw9up-Iv.js +0 -1
  920. package/web-ui/build/static/stylus-CyFEQpH2.js +0 -1
  921. package/web-ui/build/static/subunit-B2XhtaLx.js +0 -1
  922. package/web-ui/build/static/swift-Bpyyuvtg.js +0 -1
  923. package/web-ui/build/static/swift-D-jiKNlA.js +0 -1
  924. package/web-ui/build/static/systemd-DE3AeWrd.js +0 -1
  925. package/web-ui/build/static/t4-cs-BSG7rkB_.js +0 -1
  926. package/web-ui/build/static/t4-templating-Cy7LuqAv.js +0 -1
  927. package/web-ui/build/static/t4-vb-ZLfMjXrh.js +0 -1
  928. package/web-ui/build/static/taggerscript-q2zFfkel.js +0 -1
  929. package/web-ui/build/static/tap-CzjhWyhf.js +0 -1
  930. package/web-ui/build/static/tap-ttXfPums.js +0 -1
  931. package/web-ui/build/static/tcl-6ta1XDva.js +0 -1
  932. package/web-ui/build/static/tcl-Cvx4AN_Q.js +0 -1
  933. package/web-ui/build/static/textile-zWm4gRbJ.js +0 -1
  934. package/web-ui/build/static/thrift-Crj4hRsm.js +0 -1
  935. package/web-ui/build/static/toml-hVfLOJr-.js +0 -1
  936. package/web-ui/build/static/tp-D5aJh4yF.js +0 -1
  937. package/web-ui/build/static/tremor-B9gWC4v1.js +0 -1
  938. package/web-ui/build/static/tsx-DtNWBAJO.js +0 -1
  939. package/web-ui/build/static/tt2-eH1L7Bpm.js +0 -1
  940. package/web-ui/build/static/turtle-BYCk4r6f.js +0 -1
  941. package/web-ui/build/static/twig-BQ-dq4no.js +0 -1
  942. package/web-ui/build/static/twig-n3AiXKyV.js +0 -1
  943. package/web-ui/build/static/typescript-CPQ0vD90.js +0 -1
  944. package/web-ui/build/static/typescript-juxiNWRf.js +0 -1
  945. package/web-ui/build/static/typoscript-C5h9SqFN.js +0 -1
  946. package/web-ui/build/static/unrealscript-9ht7jiai.js +0 -1
  947. package/web-ui/build/static/uorazor-36B6okgA.js +0 -1
  948. package/web-ui/build/static/uri-DEwrtmz_.js +0 -1
  949. package/web-ui/build/static/v-CvhXAFWo.js +0 -1
  950. package/web-ui/build/static/vala-CU_jVQ3c.js +0 -1
  951. package/web-ui/build/static/vala-H_yoFBZf.js +0 -1
  952. package/web-ui/build/static/vbnet-BNI0Gy5q.js +0 -1
  953. package/web-ui/build/static/vbnet-D-4O1Hpc.js +0 -1
  954. package/web-ui/build/static/vbscript-1zyalaSG.js +0 -1
  955. package/web-ui/build/static/vbscript-html-ea5_TYi7.js +0 -1
  956. package/web-ui/build/static/velocity-BlEdS1Un.js +0 -1
  957. package/web-ui/build/static/verilog-BGSIJuDJ.js +0 -1
  958. package/web-ui/build/static/verilog-C1vff5Z3.js +0 -1
  959. package/web-ui/build/static/vhdl-5H4C8O-_.js +0 -1
  960. package/web-ui/build/static/vhdl-DHiBEhsE.js +0 -1
  961. package/web-ui/build/static/vim-Bd1MNlxj.js +0 -1
  962. package/web-ui/build/static/vim-DBP2ZsgQ.js +0 -1
  963. package/web-ui/build/static/visual-basic-DI34-9vJ.js +0 -1
  964. package/web-ui/build/static/warpscript-DBQ-KbS6.js +0 -1
  965. package/web-ui/build/static/wasm-CY5W57_Y.js +0 -1
  966. package/web-ui/build/static/web-idl-CF9xaLpZ.js +0 -1
  967. package/web-ui/build/static/wiki-xfSWwdeC.js +0 -1
  968. package/web-ui/build/static/wolfram-DZ6ghwRH.js +0 -1
  969. package/web-ui/build/static/wren-qULNE4ZV.js +0 -1
  970. package/web-ui/build/static/x86asm-DD2-d5-3.js +0 -1
  971. package/web-ui/build/static/xeora-CMja58lL.js +0 -1
  972. package/web-ui/build/static/xl-DKZpXGv8.js +0 -1
  973. package/web-ui/build/static/xml-Xf5ErmV_.js +0 -1
  974. package/web-ui/build/static/xml-doc-Bl_99SZE.js +0 -1
  975. package/web-ui/build/static/xojo-PwcPgmIF.js +0 -1
  976. package/web-ui/build/static/xquery-BshbqrZe.js +0 -1
  977. package/web-ui/build/static/xquery-DY2-GgvB.js +0 -1
  978. package/web-ui/build/static/yaml-9mp-mYjQ.js +0 -1
  979. package/web-ui/build/static/yaml-BnH4Y8-L.js +0 -1
  980. package/web-ui/build/static/yang-CRK7RS7V.js +0 -1
  981. package/web-ui/build/static/zephir-B560hCdS.js +0 -1
  982. package/web-ui/build/static/zig-CBG6H3iO.js +0 -1
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Cross-repo contract test: the inline-JSON format that
3
+ * autopilot-backend's tool-call bridge produces MUST be extractable by
4
+ * this CLI's TagParser.
5
+ *
6
+ * The test reproduces the exact output of the backend's
7
+ * `formatToolCallInlineBlock` (from autopilot-backend/services/toolCallBridge.js)
8
+ * as a literal template string here, then feeds it to
9
+ * `TagParser.extractToolCommands` + `normalizeToolCommand` and asserts
10
+ * the extraction produces a valid tool invocation.
11
+ *
12
+ * Why the literal template: the backend and CLI are separate repos, so we
13
+ * can't share code. The only way to lock a cross-repo contract is to
14
+ * write the expected format on BOTH sides and test both ends against it.
15
+ * Backend: `services/__tests__/toolCallBridge.test.js` verifies
16
+ * `formatToolCallInlineBlock` produces this exact string. CLI: this file
17
+ * verifies TagParser extracts tools from the same string. If either
18
+ * side's format drifts, the other repo's test breaks. Works because both
19
+ * repos are in the same workspace — deploys happen together.
20
+ *
21
+ * The template MUST stay in lockstep with backend's formatter. Any
22
+ * change there requires a corresponding change here.
23
+ */
24
+
25
+ import { describe, test, expect } from '@jest/globals';
26
+ import TagParser from '../../utilities/tagParser.js';
27
+
28
+ /**
29
+ * Reproduce the backend's `formatToolCallInlineBlock` output byte-for-byte.
30
+ * Must stay identical to what `autopilot-backend/services/toolCallBridge.js`
31
+ * emits — the single wire contract between provider tool_calls and the
32
+ * CLI's inline-JSON tool extraction.
33
+ */
34
+ function bridgeOutput({ name, args }) {
35
+ const params = args ? JSON.parse(args) : {};
36
+ const paramSummary = Object.entries(params)
37
+ .map(([k, v]) => `${k}: ${typeof v === 'string' ? v : JSON.stringify(v)}`)
38
+ .join(', ')
39
+ .slice(0, 120);
40
+ return `\n**Calling ${name}** — ${paramSummary || 'no params'}…\n\n` +
41
+ '```json\n' +
42
+ JSON.stringify({ toolId: name, parameters: params }, null, 2) +
43
+ '\n```\n';
44
+ }
45
+
46
+ const parser = new TagParser();
47
+
48
+ describe('cross-repo contract: backend bridge output → CLI TagParser extraction', () => {
49
+ test('single tool call with string params extracts correctly', () => {
50
+ const bridged = bridgeOutput({
51
+ name: 'filesystem',
52
+ args: '{"action":"read","path":"/etc/hosts"}',
53
+ });
54
+ // Prefix with some assistant prose — real responses combine both.
55
+ const content = 'Let me check that file.' + bridged;
56
+
57
+ const commands = parser.extractToolCommands(content);
58
+ expect(commands.length).toBeGreaterThan(0);
59
+
60
+ const normalized = parser.normalizeToolCommand(commands[0]);
61
+ expect(normalized.toolId).toBe('filesystem');
62
+ // Parameters may land either flat on the command (unwrapped by
63
+ // tagParser) or inside a `parameters` object — either is fine as
64
+ // long as the agent has access to them. Verify at least one path.
65
+ const params = normalized.parameters || normalized;
66
+ expect(params.action).toBe('read');
67
+ expect(params.path).toBe('/etc/hosts');
68
+ });
69
+
70
+ test('multiple tool calls in the same content extract as separate commands in order', () => {
71
+ const content =
72
+ 'I will run two commands.' +
73
+ bridgeOutput({ name: 'filesystem', args: '{"path":"/a"}' }) +
74
+ ' Then: ' +
75
+ bridgeOutput({ name: 'terminal', args: '{"cmd":"ls"}' });
76
+
77
+ const commands = parser.extractToolCommands(content);
78
+ expect(commands.length).toBeGreaterThanOrEqual(2);
79
+ // The parser may order by appearance; at minimum both tool ids are
80
+ // present.
81
+ const toolIds = commands.map(c => parser.normalizeToolCommand(c).toolId);
82
+ expect(toolIds).toContain('filesystem');
83
+ expect(toolIds).toContain('terminal');
84
+ });
85
+
86
+ test('tool call with nested object params extracts with structure preserved', () => {
87
+ const bridged = bridgeOutput({
88
+ name: 'taskmanager',
89
+ args: JSON.stringify({
90
+ action: 'sync',
91
+ tasks: [
92
+ { title: 'Task 1', priority: 'high' },
93
+ { title: 'Task 2', priority: 'medium' },
94
+ ],
95
+ }),
96
+ });
97
+ const commands = parser.extractToolCommands(bridged);
98
+ expect(commands.length).toBeGreaterThan(0);
99
+ const normalized = parser.normalizeToolCommand(commands[0]);
100
+ expect(normalized.toolId).toBe('taskmanager');
101
+ const params = normalized.parameters || normalized;
102
+ expect(params.action).toBe('sync');
103
+ expect(Array.isArray(params.tasks)).toBe(true);
104
+ expect(params.tasks).toHaveLength(2);
105
+ expect(params.tasks[0].title).toBe('Task 1');
106
+ });
107
+
108
+ test('bridge output with no params (empty args object) extracts toolId correctly', () => {
109
+ const bridged = bridgeOutput({ name: 'jobdone', args: '{}' });
110
+ const commands = parser.extractToolCommands(bridged);
111
+ expect(commands.length).toBeGreaterThan(0);
112
+ const normalized = parser.normalizeToolCommand(commands[0]);
113
+ expect(normalized.toolId).toBe('jobdone');
114
+ });
115
+
116
+ test('bridge output surrounded by assistant prose does not trip the extractor', () => {
117
+ const content =
118
+ "I'll analyze this step by step. First, I need to check the file.\n\n" +
119
+ bridgeOutput({ name: 'filesystem', args: '{"path":"/x","action":"stat"}' }) +
120
+ "\n\nAfter I see the metadata I'll decide next steps.";
121
+
122
+ const commands = parser.extractToolCommands(content);
123
+ expect(commands.length).toBeGreaterThan(0);
124
+ const normalized = parser.normalizeToolCommand(commands[0]);
125
+ expect(normalized.toolId).toBe('filesystem');
126
+ const params = normalized.parameters || normalized;
127
+ expect(params.path).toBe('/x');
128
+ });
129
+ });
@@ -164,8 +164,18 @@ export function shouldAgentBeActive(agent) {
164
164
  };
165
165
  }
166
166
 
167
+ // Belt-and-suspenders: queued inbound work (user message, inter-agent
168
+ // ping, tool result) overrides delay/pause. Inbound enqueue paths clear
169
+ // delay/pause at arrival time via agentPool._wakeAgentForMessage, so in
170
+ // the happy path a delayed agent never has queued messages. This guard
171
+ // is a defensive second line: if anything bypasses the enqueue helpers
172
+ // (persisted state loaded mid-delay, direct mutation in legacy code,
173
+ // future paths) we still refuse to sideline an agent that has work to do.
174
+ const _queueStatus = getMessageQueueStatus(agent);
175
+ const _hasInboundWork = _queueStatus.hasUserMessages || _queueStatus.hasInterAgentMessages || _queueStatus.hasToolResults;
176
+
167
177
  // 3. Delay check
168
- if (isAgentDelayed(agent)) {
178
+ if (isAgentDelayed(agent) && !_hasInboundWork) {
169
179
  return {
170
180
  active: false,
171
181
  reason: AGENT_ACTIVITY_STATUS.AGENT_DELAYED,
@@ -174,7 +184,7 @@ export function shouldAgentBeActive(agent) {
174
184
  }
175
185
 
176
186
  // 4. Pause check
177
- if (isAgentPaused(agent)) {
187
+ if (isAgentPaused(agent) && !_hasInboundWork) {
178
188
  return {
179
189
  active: false,
180
190
  reason: AGENT_ACTIVITY_STATUS.AGENT_PAUSED,
@@ -359,14 +369,25 @@ export function shouldSkipIteration(agent) {
359
369
  return { skip: true, reason: 'Agent not found' };
360
370
  }
361
371
 
372
+ // Belt-and-suspenders: a queued inbound message is a stronger signal
373
+ // than any delay/pause. Inbound enqueue paths (addUserMessage,
374
+ // addInterAgentMessage, addToolResult) call agentPool._wakeAgentForMessage
375
+ // to clear delay/pause *before* queueing — so in the happy path we never
376
+ // reach this branch with a non-empty queue AND a live delay. But if
377
+ // anything bypassed that (direct state mutation in tests, future code
378
+ // paths, persisted state loaded mid-delay with pre-existing queue), we
379
+ // still refuse to skip.
380
+ const q = getMessageQueueStatus(agent);
381
+ const hasInbound = q.hasUserMessages || q.hasInterAgentMessages || q.hasToolResults;
382
+
362
383
  // Skip if delayed (but don't remove - delay will expire)
363
384
  // This is also used for WebTool auto-delay to allow browser operations to complete
364
- if (isAgentDelayed(agent)) {
385
+ if (isAgentDelayed(agent) && !hasInbound) {
365
386
  return { skip: true, reason: `Agent delayed until ${agent.delayEndTime}` };
366
387
  }
367
388
 
368
389
  // Skip if paused with expiration (but don't remove - pause will expire)
369
- if (agent.pausedUntil && new Date() < new Date(agent.pausedUntil)) {
390
+ if (agent.pausedUntil && new Date() < new Date(agent.pausedUntil) && !hasInbound) {
370
391
  return { skip: true, reason: `Agent paused until ${agent.pausedUntil}` };
371
392
  }
372
393
 
@@ -20,6 +20,138 @@ import {
20
20
  } from '../utilities/constants.js';
21
21
  import { getOllamaService, OLLAMA_MODEL_PREFIX } from './ollamaService.js';
22
22
 
23
+ /**
24
+ * Pull the reasoning-token count out of a usage object, checking every
25
+ * provider shape we've seen in the fleet:
26
+ * - OpenAI: usage.completion_tokens_details.reasoning_tokens
27
+ * - Some Azure: usage.reasoning_tokens (flattened)
28
+ * - Claude: usage.output_tokens_details.reasoning_tokens
29
+ * Returns null when no reasoning tokens are reported (non-reasoning model,
30
+ * or provider hasn't populated the field).
31
+ *
32
+ * Surfaced even for models that don't expose reasoning content text
33
+ * (OpenAI o-series, gpt-5-*-reasoning variants): the count alone is useful
34
+ * — it tells the operator "the model spent N tokens thinking" which
35
+ * explains slow turns and signal "depth of deliberation" at a glance.
36
+ *
37
+ * @param {Object|null|undefined} usage
38
+ * @returns {number|null}
39
+ * @private
40
+ */
41
+ /**
42
+ * Parse the SSE stream emitted by autopilot-backend's `/llm/chat` route
43
+ * into a final response object. This is the CLI half of the backend ↔
44
+ * CLI wire contract (backend emission is tested in autopilot-backend's
45
+ * `routes/__tests__/llm.chat.reasoning.test.js`).
46
+ *
47
+ * Accepts anything that returns chunks matching the ReadableStream
48
+ * default-reader protocol: an object with `.read()` returning
49
+ * `{ done, value: Uint8Array }`. Production callers pass
50
+ * `response.body.getReader()`; tests pass a fake reader constructed over
51
+ * a fixed set of byte chunks.
52
+ *
53
+ * Event shapes understood (must match backend's emission):
54
+ * { type: 'start', ...metadata } → ignored
55
+ * { type: 'chunk', content: string } → accumulated into `content`
56
+ * { type: 'reasoning_chunk', content: string } → accumulated into `reasoning`
57
+ * { type: 'done', content, reasoning?, usage, model, finishReason } → finalizes
58
+ * { type: 'error', error, code } → throws
59
+ *
60
+ * Callbacks (all optional) fire progressively:
61
+ * onChunk(content) — on each text chunk
62
+ * onReasoningChunk(content) — on each reasoning chunk
63
+ *
64
+ * @param {{ read(): Promise<{done: boolean, value: Uint8Array|undefined}> }} reader
65
+ * @param {Object} [opts]
66
+ * @param {Function} [opts.onChunk]
67
+ * @param {Function} [opts.onReasoningChunk]
68
+ * @param {string} [opts.fallbackModel] Used when the final `done` event lacks `model`.
69
+ * @returns {Promise<{
70
+ * content: string, reasoning: string, reasoningTokens: number|null,
71
+ * usage: Object|null, model: string, finishReason: string
72
+ * }>}
73
+ */
74
+ export async function _parseSSEResponseStream(reader, opts = {}) {
75
+ const { onChunk, onReasoningChunk, fallbackModel = null } = opts;
76
+ const decoder = new TextDecoder();
77
+ let fullContent = '';
78
+ let fullReasoning = '';
79
+ let finalData = null;
80
+ let lineBuffer = '';
81
+
82
+ const processLine = (line) => {
83
+ const trimmedLine = line.trim();
84
+ if (!trimmedLine.startsWith('data: ')) return;
85
+ const data = trimmedLine.slice(6).trim();
86
+ if (data === '[DONE]' || data.length === 0) return;
87
+
88
+ let parsed;
89
+ try { parsed = JSON.parse(data); }
90
+ catch { return; /* malformed SSE chunk — skip defensively */ }
91
+
92
+ if (parsed.type === 'chunk' && parsed.content) {
93
+ fullContent += parsed.content;
94
+ if (onChunk) onChunk(parsed.content);
95
+ } else if (parsed.type === 'reasoning_chunk' && parsed.content) {
96
+ fullReasoning += parsed.content;
97
+ if (onReasoningChunk) onReasoningChunk(parsed.content);
98
+ } else if (parsed.type === 'done') {
99
+ finalData = {
100
+ content: parsed.content || fullContent,
101
+ // Prefer the streamed accumulation; fall back to a batched `reasoning`
102
+ // field on the done event (rare but supported).
103
+ reasoning: fullReasoning || parsed.reasoning || '',
104
+ reasoningTokens: _extractReasoningTokens(parsed.usage),
105
+ usage: parsed.usage,
106
+ model: parsed.model || fallbackModel,
107
+ finishReason: parsed.finishReason || 'stop',
108
+ };
109
+ } else if (parsed.type === 'error') {
110
+ const error = new Error(parsed.error);
111
+ error.code = parsed.code;
112
+ throw error;
113
+ }
114
+ // Unknown event types (e.g. 'start') are silently ignored — forward
115
+ // compat for future backend event additions.
116
+ };
117
+
118
+ while (true) {
119
+ const { done, value } = await reader.read();
120
+ if (done) break;
121
+ lineBuffer += decoder.decode(value, { stream: true });
122
+ const parts = lineBuffer.split('\n');
123
+ lineBuffer = parts.pop() || ''; // last fragment may be incomplete
124
+ for (const line of parts) processLine(line);
125
+ }
126
+ // Flush any trailing unterminated line (streams that end without \n).
127
+ if (lineBuffer.trim().length > 0) processLine(lineBuffer);
128
+
129
+ if (finalData) return finalData;
130
+ // Stream ended without a `done` event — return what we accumulated.
131
+ return {
132
+ content: fullContent,
133
+ reasoning: fullReasoning,
134
+ reasoningTokens: null,
135
+ usage: null,
136
+ model: fallbackModel,
137
+ finishReason: 'stop',
138
+ };
139
+ }
140
+
141
+ export function _extractReasoningTokens(usage) {
142
+ if (!usage || typeof usage !== 'object') return null;
143
+ const candidates = [
144
+ usage.reasoning_tokens,
145
+ usage.completion_tokens_details?.reasoning_tokens,
146
+ usage.output_tokens_details?.reasoning_tokens,
147
+ usage.completionTokensDetails?.reasoningTokens,
148
+ ];
149
+ for (const c of candidates) {
150
+ if (typeof c === 'number' && Number.isFinite(c)) return c;
151
+ }
152
+ return null;
153
+ }
154
+
23
155
  class AIService {
24
156
  constructor(config, logger, budgetService, errorHandler) {
25
157
  this.config = config;
@@ -342,8 +474,20 @@ class AIService {
342
474
  // Track model reliability - mark as verified
343
475
  this.recordModelSuccess(model);
344
476
 
477
+ const msg = response.choices[0]?.message || {};
478
+ // Non-streaming reasoning: providers that surface content text put it
479
+ // on the message as `reasoning_content` (DeepSeek-R1, xAI reasoning)
480
+ // or `reasoning` (some OpenAI-compatible gateways) or `thinking`
481
+ // (Anthropic when surfaced through a compatible shape). Token count
482
+ // comes from usage regardless of content presence.
483
+ const reasoning = (typeof msg.reasoning_content === 'string' && msg.reasoning_content)
484
+ || (typeof msg.reasoning === 'string' && msg.reasoning)
485
+ || (typeof msg.thinking === 'string' && msg.thinking)
486
+ || '';
345
487
  return {
346
- content: response.choices[0]?.message?.content || '',
488
+ content: msg.content || '',
489
+ reasoning,
490
+ reasoningTokens: _extractReasoningTokens(response.usage),
347
491
  model: response.model,
348
492
  tokenUsage: response.usage,
349
493
  requestId,
@@ -591,6 +735,11 @@ class AIService {
591
735
 
592
736
  // Track accumulated content for partial return on abort
593
737
  let fullContent = '';
738
+ // Reasoning/thinking accumulator hoisted to outer scope so the catch
739
+ // block (user-abort path) can return any reasoning captured before the
740
+ // abort fired. Populated from 'reasoning_chunk' SSE events inside the
741
+ // try block.
742
+ let fullReasoning = '';
594
743
 
595
744
  try {
596
745
  const response = await fetch(backendUrl, {
@@ -698,101 +847,37 @@ class AIService {
698
847
  return fallbackResult;
699
848
  }
700
849
 
701
- // Process SSE stream with line buffering
702
- // SSE events can be split across read() calls, so we buffer incomplete lines
703
- const reader = response.body.getReader();
704
- const decoder = new TextDecoder();
705
- fullContent = ''; // Reset (declared outside try for catch block access)
850
+ // Parse the SSE stream via the shared helper — see `_parseSSEResponseStream`
851
+ // (exported for testability). The helper encodes the full backend
852
+ // contract: chunk/reasoning_chunk/done/error event shapes, line
853
+ // buffering across TCP frames, accumulation of reasoning, trailing-
854
+ // unterminated-line flush. Changing this contract means updating the
855
+ // helper AND the autopilot-backend tests that lock the emission side.
856
+ fullContent = ''; // Reset (declared outside try for catch block access)
857
+ fullReasoning = ''; // Same reason — hoisted for catch-block reuse.
706
858
  let finalData = null;
707
- let lineBuffer = ''; // Buffer for incomplete lines across chunks
708
-
709
- while (true) {
710
- const { done, value } = await reader.read();
711
-
712
- if (done) {
713
- break;
714
- }
715
-
716
- const text = decoder.decode(value, { stream: true });
717
- lineBuffer += text;
718
-
719
- // Split on newlines but keep the last fragment if it doesn't end with \n
720
- const parts = lineBuffer.split('\n');
721
- // The last element may be an incomplete line — keep it in the buffer
722
- lineBuffer = parts.pop() || '';
723
-
724
- for (const line of parts) {
725
- const trimmedLine = line.trim();
726
- if (trimmedLine.startsWith('data: ')) {
727
- const data = trimmedLine.slice(6).trim();
728
-
729
- if (data === '[DONE]') {
730
- continue;
731
- }
732
-
733
- try {
734
- const parsed = JSON.parse(data);
735
-
736
- if (parsed.type === 'chunk' && parsed.content) {
737
- fullContent += parsed.content;
738
- if (onChunk) {
739
- onChunk(parsed.content);
740
- }
741
- } else if (parsed.type === 'done') {
742
- finalData = {
743
- content: parsed.content || fullContent,
744
- usage: parsed.usage,
745
- model: parsed.model || payload.model,
746
- finishReason: parsed.finishReason || 'stop'
747
- };
748
- } else if (parsed.type === 'error') {
749
- const error = new Error(parsed.error);
750
- error.code = parsed.code;
751
- if (onError) {
752
- onError(error);
753
- }
754
- throw error;
755
- }
756
- } catch (parseError) {
757
- // Rethrow intentional backend error events (have .code from parsed.type === 'error')
758
- // but never rethrow JSON SyntaxErrors — those are just malformed SSE chunks
759
- if (parseError.code && !(parseError instanceof SyntaxError)) {
760
- throw parseError;
761
- }
762
- this.logger?.debug('Skipping unparseable SSE data', {
763
- requestId,
764
- dataPreview: data.substring(0, 120),
765
- error: parseError.message
766
- });
767
- continue;
768
- }
769
- }
770
- }
771
- }
772
-
773
- // Process any remaining buffered data (in case stream ended without trailing newline)
774
- if (lineBuffer.trim().startsWith('data: ')) {
775
- const data = lineBuffer.trim().slice(6).trim();
776
- if (data !== '[DONE]') {
777
- try {
778
- const parsed = JSON.parse(data);
779
- if (parsed.type === 'done') {
780
- finalData = {
781
- content: parsed.content || fullContent,
782
- usage: parsed.usage,
783
- model: parsed.model || payload.model,
784
- finishReason: parsed.finishReason || 'stop'
785
- };
786
- }
787
- } catch (e) {
788
- // Ignore parse errors on final buffer
789
- }
790
- }
859
+ try {
860
+ finalData = await _parseSSEResponseStream(response.body.getReader(), {
861
+ onChunk: (chunk) => {
862
+ fullContent += chunk;
863
+ if (onChunk) onChunk(chunk);
864
+ },
865
+ onReasoningChunk: (chunk) => {
866
+ fullReasoning += chunk;
867
+ if (options.onReasoningChunk) options.onReasoningChunk(chunk);
868
+ },
869
+ fallbackModel: payload.model,
870
+ });
871
+ } catch (streamError) {
872
+ // Backend `type: 'error'` events throw out of the helper with a .code.
873
+ // Route them through onError like the previous implementation did.
874
+ if (streamError?.code && onError) onError(streamError);
875
+ throw streamError;
791
876
  }
792
877
 
793
878
  // Final callback with complete data
794
879
  if (onDone) {
795
- onDone(finalData || { content: fullContent });
880
+ onDone(finalData || { content: fullContent, reasoning: fullReasoning, reasoningTokens: null });
796
881
  }
797
882
 
798
883
  // Clean up active request tracking on success
@@ -803,6 +888,8 @@ class AIService {
803
888
 
804
889
  return finalData || {
805
890
  content: fullContent,
891
+ reasoning: fullReasoning,
892
+ reasoningTokens: null,
806
893
  usage: null,
807
894
  model: payload.model,
808
895
  finishReason: 'stop'
@@ -833,6 +920,8 @@ class AIService {
833
920
  // Return partial content that was received before abort
834
921
  const abortResult = {
835
922
  content: fullContent || '', // Use accumulated content
923
+ reasoning: fullReasoning || '', // Preserve any reasoning captured before abort
924
+ reasoningTokens: null,
836
925
  usage: null,
837
926
  model: payload.model,
838
927
  finishReason: 'user_abort',