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,777 @@
1
+ /**
2
+ * conversationQuery — pure query functions over a conversation archive.
3
+ *
4
+ * This is a STATELESS LENS over `conversations.full.messages[]`. It does not
5
+ * hold a copy of the data, does not persist anything, and does not do any
6
+ * I/O. Every exported function takes a messages array as input and returns
7
+ * a query result. Callers (memoryTool.reminisce) are responsible for
8
+ * fetching the array from wherever it lives (agentPool → in-memory agent
9
+ * object, which itself is sourced from stateManager's on-disk archive).
10
+ *
11
+ * The archive itself is the single source of truth; this module is its
12
+ * query surface.
13
+ *
14
+ * Stable-pointer contract
15
+ * -----------------------
16
+ * Returned entries ALWAYS surface `messageId` as the canonical pointer.
17
+ * `messageId` is immutable (assigned at message creation, never rewritten,
18
+ * never reassigned) and survives compaction because compaction only writes
19
+ * to `conversations[model].messages[]`, never mutates `conversations.full`.
20
+ * The agent is free to bookmark a `messageId` in turn 5 and resolve it in
21
+ * turn 500.
22
+ *
23
+ * Array indices are NOT surfaced to the agent — they're used only for
24
+ * intra-call pagination (offset/limit) and never handed out as long-term
25
+ * bookmarks.
26
+ *
27
+ * Size guardrails
28
+ * ---------------
29
+ * `capEntries(entries, maxBytes)` enforces a byte budget across any list
30
+ * of returned entries. Every mode funnels through it so no single query
31
+ * can blow out the agent's context window.
32
+ */
33
+
34
+ // ── Constants ────────────────────────────────────────────────────────────
35
+
36
+ /**
37
+ * Per-call response cap applied AFTER JSON serialization. 32 KB is ~8K
38
+ * tokens — a comfortable upper bound on what a single tool result should
39
+ * inject into the current conversation.
40
+ */
41
+ export const DEFAULT_MAX_BYTES = 32 * 1024;
42
+
43
+ /** Default messages-per-response for range/byTool. */
44
+ export const DEFAULT_LIMIT = 20;
45
+
46
+ /** Hard maximum to prevent abuse / accidents. */
47
+ export const HARD_MAX_LIMIT = 100;
48
+
49
+ /** Default search results. */
50
+ export const DEFAULT_MAX_RESULTS = 10;
51
+
52
+ /** Hard maximum search results. */
53
+ export const HARD_MAX_RESULTS = 50;
54
+
55
+ /** Around-context: messages before/after the target by default. */
56
+ export const DEFAULT_AROUND_BEFORE = 3;
57
+ export const DEFAULT_AROUND_AFTER = 3;
58
+
59
+ /** Maximum around-context window. */
60
+ export const HARD_MAX_AROUND = 20;
61
+
62
+ /** Overview timeline marker count (sparse checkpoints). */
63
+ export const OVERVIEW_TIMELINE_SIZE = 20;
64
+
65
+ /** Default content-truncation for slim entries. */
66
+ export const DEFAULT_CONTENT_TRUNCATE = 500;
67
+
68
+ /** Snippet length around a search hit. */
69
+ export const SEARCH_SNIPPET_CONTEXT = 60;
70
+
71
+ // ── Helpers (internal) ───────────────────────────────────────────────────
72
+
73
+ /**
74
+ * Extract a message's creation timestamp. Messages in the archive carry
75
+ * `createdAt` (per stateManager schema) but some older/synthetic ones use
76
+ * `timestamp`. Tolerant read, both supported.
77
+ * @private
78
+ */
79
+ function _messageAt(m) {
80
+ return m?.createdAt || m?.timestamp || null;
81
+ }
82
+
83
+ /**
84
+ * Message content as a searchable string. Messages store `content` as
85
+ * string in the normal path, but some older / array-form entries store it
86
+ * as `[{type:'text', text:'…'}]` — both normalized here.
87
+ * @private
88
+ */
89
+ function _contentString(m) {
90
+ const c = m?.content;
91
+ if (typeof c === 'string') return c;
92
+ if (Array.isArray(c)) {
93
+ return c.map(p => (typeof p === 'string' ? p : p?.text || '')).join('');
94
+ }
95
+ if (c == null) return '';
96
+ return String(c);
97
+ }
98
+
99
+ /**
100
+ * Flatten all tool-call inputs on a message into a single searchable
101
+ * string. Tool RESULTS are intentionally excluded — they'd be noisy and
102
+ * the user explicitly opted against including them in search scope.
103
+ * @private
104
+ */
105
+ function _toolArgsString(m) {
106
+ const execs = Array.isArray(m?.toolExecutions) ? m.toolExecutions : [];
107
+ if (execs.length === 0) return '';
108
+ return execs.map(e => {
109
+ if (!e) return '';
110
+ const parts = [];
111
+ if (e.toolId) parts.push(String(e.toolId));
112
+ if (e.input != null) {
113
+ try { parts.push(typeof e.input === 'string' ? e.input : JSON.stringify(e.input)); }
114
+ catch { parts.push(String(e.input)); }
115
+ }
116
+ return parts.join(' ');
117
+ }).join('\n');
118
+ }
119
+
120
+ /**
121
+ * Best-effort token count for a message. Uses stored tokenUsage when
122
+ * available (exact); falls back to a char-based estimate (chars/4) so the
123
+ * overview + slim entries always have a number to show.
124
+ * @private
125
+ */
126
+ function _tokenCountOf(m) {
127
+ const t = m?.tokenUsage;
128
+ if (t && typeof t.totalTokens === 'number') return t.totalTokens;
129
+ if (t && typeof t.total_tokens === 'number') return t.total_tokens;
130
+ const s = _contentString(m);
131
+ return Math.ceil(s.length / 4);
132
+ }
133
+
134
+ /**
135
+ * Check whether a message has at least one tool execution.
136
+ * @private
137
+ */
138
+ function _hasToolCalls(m) {
139
+ return Array.isArray(m?.toolExecutions) && m.toolExecutions.length > 0;
140
+ }
141
+
142
+ /**
143
+ * Truncate a content string to `max` chars with a trailing "(N more chars)"
144
+ * marker. Never touches messages with shorter content.
145
+ * @private
146
+ */
147
+ function _truncateContent(s, max = DEFAULT_CONTENT_TRUNCATE) {
148
+ if (typeof s !== 'string') return '';
149
+ if (s.length <= max) return s;
150
+ return s.slice(0, max) + `…(${s.length - max} more chars)`;
151
+ }
152
+
153
+ /**
154
+ * Shape a raw message into the slim default response entry. Hides index
155
+ * on purpose — only `messageId` and `at` are stable pointers.
156
+ * @private
157
+ */
158
+ function _slimMessage(m, detail = 'default') {
159
+ const base = {
160
+ messageId: m?.id || null,
161
+ role: m?.role || 'unknown',
162
+ at: _messageAt(m),
163
+ tokenCount: _tokenCountOf(m),
164
+ hasToolCalls: _hasToolCalls(m),
165
+ };
166
+ const content = _contentString(m);
167
+
168
+ if (detail === 'full') {
169
+ return {
170
+ ...base,
171
+ content,
172
+ toolExecutions: Array.isArray(m?.toolExecutions) ? m.toolExecutions : [],
173
+ contextReferences: Array.isArray(m?.contextReferences) ? m.contextReferences : [],
174
+ model: m?.metadata?.model || null,
175
+ };
176
+ }
177
+ return { ...base, content: _truncateContent(content) };
178
+ }
179
+
180
+ /**
181
+ * Clamp a number into [min, max]. Null/undefined/NaN uses `fallback`.
182
+ * @private
183
+ */
184
+ function _clamp(n, min, max, fallback) {
185
+ const v = Number.isFinite(n) ? n : fallback;
186
+ if (v < min) return min;
187
+ if (v > max) return max;
188
+ return v;
189
+ }
190
+
191
+ /**
192
+ * Try to parse an ISO-ish string; returns epoch ms or null.
193
+ * @private
194
+ */
195
+ function _isoToMs(s) {
196
+ if (typeof s !== 'string') return null;
197
+ const t = Date.parse(s);
198
+ return Number.isNaN(t) ? null : t;
199
+ }
200
+
201
+ /**
202
+ * Opaque cursor: base64(JSON). Agent never inspects it; it's passed back
203
+ * verbatim to continue pagination. Encoding is side-effect-free.
204
+ */
205
+ export function encodeCursor(obj) {
206
+ try {
207
+ const s = JSON.stringify(obj || {});
208
+ return Buffer.from(s, 'utf-8').toString('base64');
209
+ } catch {
210
+ return null;
211
+ }
212
+ }
213
+
214
+ export function decodeCursor(cursor) {
215
+ if (typeof cursor !== 'string' || cursor.length === 0) return null;
216
+ try {
217
+ const s = Buffer.from(cursor, 'base64').toString('utf-8');
218
+ const obj = JSON.parse(s);
219
+ return obj && typeof obj === 'object' ? obj : null;
220
+ } catch {
221
+ return null;
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Enforce a byte budget across an array of entries. Serializes the array,
227
+ * and if it exceeds `maxBytes`, drops trailing entries one at a time until
228
+ * it fits. Attaches a `_truncated` marker with the dropped count so
229
+ * callers can surface it. Returns { entries, truncatedCount }.
230
+ */
231
+ export function capEntries(entries, maxBytes = DEFAULT_MAX_BYTES) {
232
+ if (!Array.isArray(entries)) return { entries: [], truncatedCount: 0 };
233
+ const jsonSize = (arr) => Buffer.byteLength(JSON.stringify(arr), 'utf-8');
234
+ if (jsonSize(entries) <= maxBytes) return { entries, truncatedCount: 0 };
235
+ const trimmed = entries.slice();
236
+ let dropped = 0;
237
+ while (trimmed.length > 0 && jsonSize(trimmed) > maxBytes) {
238
+ trimmed.pop();
239
+ dropped++;
240
+ }
241
+ return { entries: trimmed, truncatedCount: dropped };
242
+ }
243
+
244
+ // ── Public: overview ─────────────────────────────────────────────────────
245
+
246
+ /**
247
+ * One-shot "where have I been." Returns archive-wide stats + a sparse
248
+ * timeline of ~20 markers evenly distributed across the archive so the
249
+ * agent can see the shape of its own history at a glance.
250
+ *
251
+ * Each timeline entry carries a `messageId` — those are the stable
252
+ * pointers the agent can use to dive in with `around` / `range`.
253
+ *
254
+ * @param {Array<Object>} messages
255
+ * @returns {{
256
+ * totalMessages: number,
257
+ * firstAt: string|null,
258
+ * lastAt: string|null,
259
+ * totalApproxTokens: number,
260
+ * timeline: Array<{ at: string|null, role: string, messageId: string|null, snippet: string }>
261
+ * }}
262
+ */
263
+ export function overview(messages) {
264
+ const list = Array.isArray(messages) ? messages : [];
265
+ const total = list.length;
266
+ if (total === 0) {
267
+ return {
268
+ totalMessages: 0,
269
+ firstAt: null,
270
+ lastAt: null,
271
+ totalApproxTokens: 0,
272
+ timeline: [],
273
+ };
274
+ }
275
+
276
+ const firstAt = _messageAt(list[0]);
277
+ const lastAt = _messageAt(list[total - 1]);
278
+ const totalApproxTokens = list.reduce((n, m) => n + _tokenCountOf(m), 0);
279
+
280
+ // Sparse timeline: pick up to OVERVIEW_TIMELINE_SIZE evenly-spaced markers.
281
+ const markers = [];
282
+ const size = Math.min(OVERVIEW_TIMELINE_SIZE, total);
283
+ for (let i = 0; i < size; i++) {
284
+ // Spread indices across [0, total-1] so first + last are always included.
285
+ const idx = size === 1 ? 0 : Math.round((i * (total - 1)) / (size - 1));
286
+ const m = list[idx];
287
+ markers.push({
288
+ at: _messageAt(m),
289
+ role: m?.role || 'unknown',
290
+ messageId: m?.id || null,
291
+ snippet: _truncateContent(_contentString(m), 80),
292
+ });
293
+ }
294
+
295
+ return {
296
+ totalMessages: total,
297
+ firstAt,
298
+ lastAt,
299
+ totalApproxTokens,
300
+ timeline: markers,
301
+ };
302
+ }
303
+
304
+ // ── Public: range ────────────────────────────────────────────────────────
305
+
306
+ /**
307
+ * Slice the archive by index (offset+limit) and/or timestamp (from/to).
308
+ * Both filters compose — a timestamp window is applied first, then
309
+ * offset/limit paginates within that window.
310
+ *
311
+ * @param {Array<Object>} messages
312
+ * @param {Object} params
313
+ * @param {string} [params.from] ISO timestamp lower bound (inclusive)
314
+ * @param {string} [params.to] ISO timestamp upper bound (inclusive)
315
+ * @param {number} [params.offset] 0-based offset within filtered window
316
+ * @param {number} [params.limit] Max entries returned (clamped to HARD_MAX_LIMIT)
317
+ * @param {'default'|'full'} [params.detail]
318
+ * @param {number} [params.maxBytes]
319
+ */
320
+ export function range(messages, params = {}) {
321
+ const list = Array.isArray(messages) ? messages : [];
322
+ const fromMs = _isoToMs(params.from);
323
+ const toMs = _isoToMs(params.to);
324
+ const offset = _clamp(params.offset, 0, Number.MAX_SAFE_INTEGER, 0);
325
+ const limit = _clamp(params.limit, 1, HARD_MAX_LIMIT, DEFAULT_LIMIT);
326
+ const detail = params.detail === 'full' ? 'full' : 'default';
327
+ const maxBytes = _clamp(params.maxBytes, 1024, 1024 * 1024, DEFAULT_MAX_BYTES);
328
+
329
+ // Apply timestamp filter first.
330
+ const windowed = list.filter(m => {
331
+ const t = _isoToMs(_messageAt(m));
332
+ if (t == null) return fromMs == null && toMs == null; // untimestamped: keep only with no filter
333
+ if (fromMs != null && t < fromMs) return false;
334
+ if (toMs != null && t > toMs) return false;
335
+ return true;
336
+ });
337
+
338
+ const total = windowed.length;
339
+ const sliced = windowed.slice(offset, offset + limit);
340
+ const shaped = sliced.map(m => _slimMessage(m, detail));
341
+ const { entries, truncatedCount } = capEntries(shaped, maxBytes);
342
+
343
+ return {
344
+ messages: entries,
345
+ total,
346
+ offset,
347
+ limit,
348
+ hasMore: offset + entries.length < total,
349
+ truncatedByBytes: truncatedCount,
350
+ };
351
+ }
352
+
353
+ // ── Public: search ───────────────────────────────────────────────────────
354
+
355
+ /**
356
+ * Substring search across message content + tool-call arguments. Case-
357
+ * insensitive. Returns slim match entries with `snippet` (a window around
358
+ * the first hit) and `highlightRanges` (offsets WITHIN the snippet).
359
+ *
360
+ * Scope: `content` + `toolExecutions[*].toolId + input`.
361
+ * Explicitly NOT searched: tool outputs/results, reasoning fields,
362
+ * metadata, context references.
363
+ */
364
+ export function search(messages, params = {}) {
365
+ const list = Array.isArray(messages) ? messages : [];
366
+ const raw = typeof params.query === 'string' ? params.query : '';
367
+ const q = raw.toLowerCase().trim();
368
+ if (q.length === 0) {
369
+ return { matches: [], total: 0, hasMore: false, cursor: null, truncatedByBytes: 0 };
370
+ }
371
+ const role = typeof params.role === 'string' ? params.role : null;
372
+ const maxResults = _clamp(params.maxResults, 1, HARD_MAX_RESULTS, DEFAULT_MAX_RESULTS);
373
+ const maxBytes = _clamp(params.maxBytes, 1024, 1024 * 1024, DEFAULT_MAX_BYTES);
374
+
375
+ // Cursor: `{ lastMessageId }` — skip forward past messages up to and
376
+ // including the one with that id. Agent opaquely passes it back.
377
+ const cursorObj = decodeCursor(params.cursor);
378
+ const lastMessageId = cursorObj?.lastMessageId || null;
379
+
380
+ // Locate cursor position (first index AFTER the cursor's lastMessageId).
381
+ let startIdx = 0;
382
+ if (lastMessageId) {
383
+ const i = list.findIndex(m => m?.id === lastMessageId);
384
+ startIdx = i >= 0 ? i + 1 : 0;
385
+ }
386
+
387
+ const matches = [];
388
+ let total = 0;
389
+ // ID of the LAST RETURNED match — cursor points at this so resumption
390
+ // picks up exactly where the previous page ended. NOT the "last match
391
+ // seen during counting"; that would cause resumption to skip results.
392
+ let lastReturnedHitId = null;
393
+
394
+ for (let i = startIdx; i < list.length; i++) {
395
+ const m = list[i];
396
+ if (role && m?.role !== role) continue;
397
+
398
+ const content = _contentString(m);
399
+ const toolArgs = _toolArgsString(m);
400
+
401
+ // Find first hit in either scope. We return the content snippet if the
402
+ // hit is in content; otherwise a tool-args snippet. This keeps the
403
+ // matched text proximate to what the agent searched for.
404
+ const contentIdx = content.toLowerCase().indexOf(q);
405
+ const toolIdx = contentIdx >= 0 ? -1 : toolArgs.toLowerCase().indexOf(q);
406
+ if (contentIdx < 0 && toolIdx < 0) continue;
407
+
408
+ total++;
409
+ if (matches.length >= maxResults) continue; // keep counting total but stop accumulating
410
+ // Only update cursor anchor for RETURNED matches.
411
+ lastReturnedHitId = m?.id || lastReturnedHitId;
412
+
413
+ const source = contentIdx >= 0 ? 'content' : 'tool_args';
414
+ const baseText = contentIdx >= 0 ? content : toolArgs;
415
+ const hitAt = contentIdx >= 0 ? contentIdx : toolIdx;
416
+
417
+ // Build snippet: SEARCH_SNIPPET_CONTEXT chars on each side of the hit.
418
+ const start = Math.max(0, hitAt - SEARCH_SNIPPET_CONTEXT);
419
+ const end = Math.min(baseText.length, hitAt + q.length + SEARCH_SNIPPET_CONTEXT);
420
+ let snippet = baseText.slice(start, end);
421
+ const relStart = hitAt - start;
422
+ // Mark truncation with ellipses so the agent knows the snippet is a window.
423
+ if (start > 0) snippet = '…' + snippet;
424
+ if (end < baseText.length) snippet = snippet + '…';
425
+ const highlightOffset = relStart + (start > 0 ? 1 : 0); // account for prepended ellipsis
426
+
427
+ matches.push({
428
+ messageId: m?.id || null,
429
+ role: m?.role || 'unknown',
430
+ at: _messageAt(m),
431
+ source, // where the hit landed: 'content' | 'tool_args'
432
+ snippet,
433
+ highlightRanges: [[highlightOffset, highlightOffset + q.length]],
434
+ });
435
+ }
436
+
437
+ const { entries, truncatedCount } = capEntries(matches, maxBytes);
438
+ const hasMore = matches.length < total; // more results exist beyond maxResults
439
+ const cursor = hasMore
440
+ ? encodeCursor({ lastMessageId: lastReturnedHitId, query: raw, role })
441
+ : null;
442
+
443
+ return {
444
+ matches: entries,
445
+ total,
446
+ hasMore,
447
+ cursor,
448
+ truncatedByBytes: truncatedCount,
449
+ };
450
+ }
451
+
452
+ // ── Public: around ───────────────────────────────────────────────────────
453
+
454
+ /**
455
+ * Fetch N messages before + N after a given `messageId`. Clamps against
456
+ * archive start / end. Returns `targetFound: false` when the id doesn't
457
+ * resolve (archive was pruned, or id was hallucinated by the agent).
458
+ */
459
+ export function around(messages, params = {}) {
460
+ const list = Array.isArray(messages) ? messages : [];
461
+ const messageId = typeof params.messageId === 'string' ? params.messageId : '';
462
+ const before = _clamp(params.before, 0, HARD_MAX_AROUND, DEFAULT_AROUND_BEFORE);
463
+ const after = _clamp(params.after, 0, HARD_MAX_AROUND, DEFAULT_AROUND_AFTER);
464
+ const detail = params.detail === 'full' ? 'full' : 'default';
465
+ const maxBytes = _clamp(params.maxBytes, 1024, 1024 * 1024, DEFAULT_MAX_BYTES);
466
+
467
+ const idx = messageId ? list.findIndex(m => m?.id === messageId) : -1;
468
+ if (idx < 0) {
469
+ return { messages: [], center: messageId || null, targetFound: false, truncatedByBytes: 0 };
470
+ }
471
+ const start = Math.max(0, idx - before);
472
+ const end = Math.min(list.length, idx + after + 1);
473
+ const shaped = list.slice(start, end).map(m => _slimMessage(m, detail));
474
+ const { entries, truncatedCount } = capEntries(shaped, maxBytes);
475
+
476
+ return {
477
+ messages: entries,
478
+ center: messageId,
479
+ targetFound: true,
480
+ truncatedByBytes: truncatedCount,
481
+ };
482
+ }
483
+
484
+ // ── Public: byTool ───────────────────────────────────────────────────────
485
+
486
+ /**
487
+ * Flatten every tool execution across the archive, optionally filtered by
488
+ * toolId. Each returned entry is ONE tool call — so a single message with
489
+ * three tool_calls yields three entries, each pointing back at the same
490
+ * `messageId` so the agent can `around` into the surrounding context.
491
+ */
492
+ export function byTool(messages, params = {}) {
493
+ const list = Array.isArray(messages) ? messages : [];
494
+ const toolId = typeof params.toolId === 'string' ? params.toolId : null;
495
+ const limit = _clamp(params.limit, 1, HARD_MAX_LIMIT, DEFAULT_LIMIT);
496
+ const maxBytes = _clamp(params.maxBytes, 1024, 1024 * 1024, DEFAULT_MAX_BYTES);
497
+
498
+ const cursorObj = decodeCursor(params.cursor);
499
+ const lastMessageId = cursorObj?.lastMessageId || null;
500
+
501
+ let startIdx = 0;
502
+ if (lastMessageId) {
503
+ const i = list.findIndex(m => m?.id === lastMessageId);
504
+ startIdx = i >= 0 ? i + 1 : 0;
505
+ }
506
+
507
+ const out = [];
508
+ let total = 0;
509
+ // ID of the message whose tool call was the LAST RETURNED entry. Cursor
510
+ // anchors here so resumption is gap-free. Same pattern as search().
511
+ let lastReturnedAnchor = null;
512
+
513
+ for (let i = startIdx; i < list.length; i++) {
514
+ const m = list[i];
515
+ const execs = Array.isArray(m?.toolExecutions) ? m.toolExecutions : [];
516
+ for (const e of execs) {
517
+ if (toolId && e?.toolId !== toolId) continue;
518
+ total++;
519
+ if (out.length >= limit) continue;
520
+ lastReturnedAnchor = m?.id || lastReturnedAnchor;
521
+
522
+ out.push({
523
+ messageId: m?.id || null,
524
+ at: _messageAt(m),
525
+ toolId: e?.toolId || null,
526
+ status: e?.status || null,
527
+ executionTime: typeof e?.executionTime === 'number' ? e.executionTime : null,
528
+ inputSnippet: _truncateContent(
529
+ typeof e?.input === 'string' ? e.input : _safeJsonStringify(e?.input),
530
+ 200
531
+ ),
532
+ // Outputs are explicitly NOT included (user decision — tool RESULTS
533
+ // excluded from reminisce to keep payloads clean).
534
+ });
535
+ }
536
+ }
537
+
538
+ const { entries, truncatedCount } = capEntries(out, maxBytes);
539
+ const hasMore = out.length < total;
540
+ const cursor = hasMore ? encodeCursor({ lastMessageId: lastReturnedAnchor, toolId }) : null;
541
+
542
+ return {
543
+ toolCalls: entries,
544
+ total,
545
+ hasMore,
546
+ cursor,
547
+ truncatedByBytes: truncatedCount,
548
+ };
549
+ }
550
+
551
+ function _safeJsonStringify(v) {
552
+ if (v == null) return '';
553
+ try { return JSON.stringify(v); }
554
+ catch { return String(v); }
555
+ }
556
+
557
+ // ── Public: read ─────────────────────────────────────────────────────────
558
+
559
+ /**
560
+ * Default char-window when the agent asks for a char range but leaves the
561
+ * upper bound open. Keeps the response bounded without forcing the agent
562
+ * to compute content length.
563
+ */
564
+ export const DEFAULT_READ_CHAR_WINDOW = 4000;
565
+
566
+ /** Max chars a single `read` call will return regardless of what the agent asks. */
567
+ export const HARD_MAX_READ_CHARS = 16000;
568
+
569
+ /**
570
+ * Default line-window when `lineFrom` is set without `lineTo`.
571
+ */
572
+ export const DEFAULT_READ_LINE_WINDOW = 80;
573
+
574
+ /** Max lines a single `read` call will return. */
575
+ export const HARD_MAX_READ_LINES = 500;
576
+
577
+ /**
578
+ * Read a single message, optionally windowed by LINES or CHARS.
579
+ *
580
+ * This is the sub-message granularity surface the other modes don't cover:
581
+ * - `around` moves at message granularity (N messages before/after).
582
+ * - `range` slices at message granularity (offset/limit).
583
+ * - `search` returns a fixed 120-char snippet around a hit.
584
+ * - `read` lets the agent pull a specific window INSIDE a single long
585
+ * message — lines 100–150 of a stack trace, chars 5000–7000 of a
586
+ * large paste, etc. — without yanking the whole thing into context.
587
+ *
588
+ * Window selectors are mutually exclusive:
589
+ * - `lineFrom` / `lineTo` : 1-indexed inclusive line range
590
+ * - `contentFrom` / `contentTo` : 0-indexed half-open char offsets
591
+ * - neither : return the whole content (still byte-capped)
592
+ *
593
+ * If both kinds are provided, `lineFrom`/`lineTo` win and the char fields
594
+ * are silently ignored (picking one prevents the agent from accidentally
595
+ * getting a wrong window when it passes both).
596
+ *
597
+ * Out-of-bounds selectors are clamped (never throw). The returned
598
+ * `contentWindow` descriptor tells the agent exactly what slice it got:
599
+ *
600
+ * contentWindow = {
601
+ * kind: 'full' | 'lines' | 'chars',
602
+ * lineFrom?, lineTo?, totalLines?, // when kind='lines'
603
+ * contentFrom?, contentTo?, // when kind='chars'
604
+ * totalContentLength, // always
605
+ * hasMoreBefore, hasMoreAfter, // did we omit content on either side?
606
+ * truncatedAtBytes: number|null, // if byte cap kicked in mid-window
607
+ * }
608
+ *
609
+ * @param {Array<Object>} messages
610
+ * @param {Object} params
611
+ * @param {string} params.messageId
612
+ * @param {number} [params.lineFrom] 1-indexed inclusive
613
+ * @param {number} [params.lineTo] 1-indexed inclusive
614
+ * @param {number} [params.contentFrom] 0-indexed char offset (inclusive)
615
+ * @param {number} [params.contentTo] 0-indexed char offset (exclusive)
616
+ * @param {'default'|'full'} [params.detail]
617
+ * @param {number} [params.maxBytes]
618
+ */
619
+ export function read(messages, params = {}) {
620
+ const list = Array.isArray(messages) ? messages : [];
621
+ const messageId = typeof params.messageId === 'string' ? params.messageId : '';
622
+ const detail = params.detail === 'full' ? 'full' : 'default';
623
+ const maxBytes = _clamp(params.maxBytes, 1024, 1024 * 1024, DEFAULT_MAX_BYTES);
624
+
625
+ const idx = messageId ? list.findIndex(m => m?.id === messageId) : -1;
626
+ if (idx < 0) {
627
+ return {
628
+ message: null,
629
+ targetFound: false,
630
+ center: messageId || null,
631
+ };
632
+ }
633
+ const m = list[idx];
634
+ const full = _contentString(m);
635
+ const totalContentLength = full.length;
636
+
637
+ // Resolve window kind. Lines take precedence over chars when both are
638
+ // provided (see doc above — prevents ambiguous requests).
639
+ const hasLineSelector = params.lineFrom != null || params.lineTo != null;
640
+ const hasCharSelector = !hasLineSelector && (params.contentFrom != null || params.contentTo != null);
641
+
642
+ let windowText, windowDescriptor;
643
+
644
+ if (hasLineSelector) {
645
+ // Line-based window. Split once, slice, rejoin.
646
+ const lines = full.split('\n');
647
+ const totalLines = lines.length;
648
+
649
+ const rawFrom = Number.isFinite(params.lineFrom) ? params.lineFrom : 1;
650
+ // `lineTo` defaults to from + DEFAULT_READ_LINE_WINDOW - 1 so a bare
651
+ // `lineFrom` request gets a sane window, not the rest of the message.
652
+ const rawTo = Number.isFinite(params.lineTo)
653
+ ? params.lineTo
654
+ : rawFrom + DEFAULT_READ_LINE_WINDOW - 1;
655
+
656
+ // Clamp to [1, totalLines]; guarantee from <= to.
657
+ let lineFrom = _clamp(rawFrom, 1, Math.max(1, totalLines), 1);
658
+ let lineTo = _clamp(rawTo, 1, Math.max(1, totalLines), totalLines);
659
+ if (lineFrom > lineTo) [lineFrom, lineTo] = [lineTo, lineFrom];
660
+
661
+ // Hard cap on window size.
662
+ if (lineTo - lineFrom + 1 > HARD_MAX_READ_LINES) {
663
+ lineTo = lineFrom + HARD_MAX_READ_LINES - 1;
664
+ }
665
+
666
+ windowText = lines.slice(lineFrom - 1, lineTo).join('\n');
667
+ windowDescriptor = {
668
+ kind: 'lines',
669
+ lineFrom, lineTo, totalLines,
670
+ totalContentLength,
671
+ hasMoreBefore: lineFrom > 1,
672
+ hasMoreAfter: lineTo < totalLines,
673
+ truncatedAtBytes: null,
674
+ };
675
+ } else if (hasCharSelector) {
676
+ const rawFrom = Number.isFinite(params.contentFrom) ? params.contentFrom : 0;
677
+ const rawTo = Number.isFinite(params.contentTo)
678
+ ? params.contentTo
679
+ : rawFrom + DEFAULT_READ_CHAR_WINDOW;
680
+
681
+ let contentFrom = _clamp(rawFrom, 0, Math.max(0, totalContentLength), 0);
682
+ let contentTo = _clamp(rawTo, 0, totalContentLength, totalContentLength);
683
+ if (contentFrom > contentTo) [contentFrom, contentTo] = [contentTo, contentFrom];
684
+
685
+ if (contentTo - contentFrom > HARD_MAX_READ_CHARS) {
686
+ contentTo = contentFrom + HARD_MAX_READ_CHARS;
687
+ }
688
+
689
+ windowText = full.slice(contentFrom, contentTo);
690
+ windowDescriptor = {
691
+ kind: 'chars',
692
+ contentFrom, contentTo, totalContentLength,
693
+ hasMoreBefore: contentFrom > 0,
694
+ hasMoreAfter: contentTo < totalContentLength,
695
+ truncatedAtBytes: null,
696
+ };
697
+ } else {
698
+ // No selector — whole content (byte cap below may still trim).
699
+ windowText = full;
700
+ windowDescriptor = {
701
+ kind: 'full', totalContentLength,
702
+ hasMoreBefore: false, hasMoreAfter: false,
703
+ truncatedAtBytes: null,
704
+ };
705
+ }
706
+
707
+ // Byte-cap enforcement: if the window's serialized size exceeds maxBytes,
708
+ // trim the content tail and record where we cut so the agent can
709
+ // continue with a follow-up read starting at truncatedAtBytes.
710
+ const shapedBase = {
711
+ messageId: m?.id || null,
712
+ role: m?.role || 'unknown',
713
+ at: _messageAt(m),
714
+ tokenCount: _tokenCountOf(m),
715
+ hasToolCalls: _hasToolCalls(m),
716
+ model: m?.metadata?.model || null,
717
+ };
718
+ const extras = detail === 'full' ? {
719
+ toolExecutions: Array.isArray(m?.toolExecutions) ? m.toolExecutions : [],
720
+ contextReferences: Array.isArray(m?.contextReferences) ? m.contextReferences : [],
721
+ } : {};
722
+
723
+ // Serialize incrementally: shell of the response minus content is a
724
+ // cheap lower bound on overhead; we give content the remaining budget.
725
+ const shell = { ...shapedBase, ...extras, contentWindow: windowDescriptor, content: '' };
726
+ const overhead = Buffer.byteLength(JSON.stringify(shell), 'utf-8');
727
+ const contentBudget = Math.max(0, maxBytes - overhead - 64 /* JSON punctuation slack */);
728
+
729
+ if (Buffer.byteLength(windowText, 'utf-8') > contentBudget) {
730
+ // Back off one character at a time (rare; tiny cost) until it fits.
731
+ // A binary trim is faster, but correctness first — this path runs at
732
+ // most once per read call.
733
+ let lo = 0, hi = windowText.length;
734
+ while (lo < hi) {
735
+ const mid = (lo + hi + 1) >>> 1;
736
+ if (Buffer.byteLength(windowText.slice(0, mid), 'utf-8') <= contentBudget) lo = mid;
737
+ else hi = mid - 1;
738
+ }
739
+ const truncated = lo;
740
+ windowText = windowText.slice(0, truncated);
741
+ windowDescriptor.truncatedAtBytes = Buffer.byteLength(windowText, 'utf-8');
742
+ windowDescriptor.hasMoreAfter = true; // more content exists past the cut
743
+ }
744
+
745
+ return {
746
+ message: {
747
+ ...shapedBase,
748
+ ...extras,
749
+ contentWindow: windowDescriptor,
750
+ content: windowText,
751
+ },
752
+ targetFound: true,
753
+ center: messageId,
754
+ };
755
+ }
756
+
757
+ export default {
758
+ overview,
759
+ range,
760
+ search,
761
+ around,
762
+ byTool,
763
+ read,
764
+ encodeCursor,
765
+ decodeCursor,
766
+ capEntries,
767
+ // Constants (for tests + tool description)
768
+ DEFAULT_MAX_BYTES,
769
+ DEFAULT_LIMIT,
770
+ HARD_MAX_LIMIT,
771
+ DEFAULT_MAX_RESULTS,
772
+ HARD_MAX_RESULTS,
773
+ DEFAULT_AROUND_BEFORE,
774
+ DEFAULT_AROUND_AFTER,
775
+ HARD_MAX_AROUND,
776
+ OVERVIEW_TIMELINE_SIZE,
777
+ };