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.
- package/package.json +1 -1
- package/scripts/audit-report.js +164 -0
- package/src/core/__tests__/agentPoolToolConfig.test.js +191 -0
- package/src/core/__tests__/agentPoolWakeOnMessage.test.js +315 -0
- package/src/core/__tests__/agentScheduler.emptyResponseDiagnostics.test.js +191 -0
- package/src/core/__tests__/agentScheduler.modeTransitions.test.js +233 -0
- package/src/core/__tests__/agentScheduler.taskLifecycleInstruction.test.js +78 -0
- package/src/core/__tests__/agentScheduler.test.js +31 -13
- package/src/core/__tests__/messageProcessor.test.js +42 -0
- package/src/core/agentPool.js +127 -25
- package/src/core/agentScheduler.js +330 -151
- package/src/core/messageProcessor.js +19 -1
- package/src/interfaces/__tests__/galleryRoutes.test.js +311 -0
- package/src/interfaces/webServer.js +183 -2
- package/src/services/__tests__/agentActivityService.test.js +83 -0
- package/src/services/__tests__/aiService.reasoningTokens.test.js +66 -0
- package/src/services/__tests__/aiService.stream.test.js +301 -0
- package/src/services/__tests__/conversationQuery.reasoning.test.js +102 -0
- package/src/services/__tests__/conversationQuery.test.js +723 -0
- package/src/services/__tests__/toolCallBridgeContract.test.js +129 -0
- package/src/services/agentActivityService.js +25 -4
- package/src/services/aiService.js +180 -91
- package/src/services/conversationQuery.js +803 -0
- package/src/tools/__tests__/agentCommunicationTool.test.js +114 -0
- package/src/tools/__tests__/baseTool.getEffectiveConfig.test.js +77 -0
- package/src/tools/__tests__/baseTool.test.js +471 -420
- package/src/tools/__tests__/filesystemTool.test.js +98 -0
- package/src/tools/__tests__/memoryTool.reminisce.test.js +363 -0
- package/src/tools/__tests__/memoryTool.test.js +2 -2
- package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +84 -0
- package/src/tools/__tests__/taskManagerTool.lifecycleGuidance.test.js +71 -0
- package/src/tools/__tests__/terminalTool.test.js +64 -0
- package/src/tools/__tests__/webTool.perAgentConfig.test.js +94 -0
- package/src/tools/agentCommunicationTool.js +33 -22
- package/src/tools/baseTool.js +980 -899
- package/src/tools/fileSystemTool.js +76 -2
- package/src/tools/memoryTool.js +270 -4
- package/src/tools/openaiFunctionSchemas.js +62 -7
- package/src/tools/taskManagerTool.js +21 -4
- package/src/tools/terminalTool.js +62 -2
- package/src/tools/webTool.js +65 -1
- package/src/utilities/__tests__/auditReport.test.js +328 -0
- package/src/utilities/__tests__/modeTransitionReasons.test.js +105 -0
- package/src/utilities/auditReport.js +331 -0
- package/src/utilities/modeTransitionReasons.js +101 -0
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/1c-C_9olPfq.js +1 -0
- package/web-ui/build/static/abap--DeFI1OC.js +1 -0
- package/web-ui/build/static/abnf-5HzSmxRy.js +1 -0
- package/web-ui/build/static/abnf-IG-O3NHT.js +1 -0
- package/web-ui/build/static/accesslog-qO_3I5IJ.js +1 -0
- package/web-ui/build/static/actionscript-DbFc2Uxo.js +1 -0
- package/web-ui/build/static/actionscript-jU7xUh7w.js +1 -0
- package/web-ui/build/static/ada-DBOzyNDe.js +1 -0
- package/web-ui/build/static/ada-F0QwXh2e.js +1 -0
- package/web-ui/build/static/agda-Drhr_GYC.js +1 -0
- package/web-ui/build/static/al-bEatcrqU.js +1 -0
- package/web-ui/build/static/angelscript-Bp0mqasc.js +1 -0
- package/web-ui/build/static/antlr4-BCvixOqW.js +1 -0
- package/web-ui/build/static/apache-zSeWcGFf.js +1 -0
- package/web-ui/build/static/apacheconf-CEDX0qIZ.js +1 -0
- package/web-ui/build/static/apex-BHlvjPxZ.js +1 -0
- package/web-ui/build/static/apl-S86eLVnh.js +1 -0
- package/web-ui/build/static/applescript-D15JiHTt.js +1 -0
- package/web-ui/build/static/applescript-D6g2nIGs.js +1 -0
- package/web-ui/build/static/aql-C4SWmhk2.js +1 -0
- package/web-ui/build/static/arcade-DrwRCCCh.js +1 -0
- package/web-ui/build/static/arduino-Blsw4-hb.js +1 -0
- package/web-ui/build/static/arduino-s6CYn6L3.js +1 -0
- package/web-ui/build/static/arff-DnrfdsTx.js +1 -0
- package/web-ui/build/static/armasm-C2WK9q2y.js +1 -0
- package/web-ui/build/static/asciidoc-BiY2pDol.js +1 -0
- package/web-ui/build/static/asciidoc-DG128-Q1.js +1 -0
- package/web-ui/build/static/asm6502-BEAW0Cck.js +1 -0
- package/web-ui/build/static/asmatmel-C4v7boSu.js +1 -0
- package/web-ui/build/static/aspectj-Bfek529B.js +1 -0
- package/web-ui/build/static/aspnet-8K2PeLn2.js +1 -0
- package/web-ui/build/static/autohotkey-BHw78HYu.js +1 -0
- package/web-ui/build/static/autohotkey-C5DDQtDL.js +1 -0
- package/web-ui/build/static/autoit-CgsSmQkF.js +1 -0
- package/web-ui/build/static/autoit-DZ7IS_9i.js +1 -0
- package/web-ui/build/static/avisynth-B20WuEUg.js +1 -0
- package/web-ui/build/static/avrasm-C7TrcWBg.js +1 -0
- package/web-ui/build/static/avro-idl-CfDy8XWE.js +1 -0
- package/web-ui/build/static/awk-cjY-7p5o.js +1 -0
- package/web-ui/build/static/axapta-Bu9INQG2.js +1 -0
- package/web-ui/build/static/bash-B998wxy_.js +1 -0
- package/web-ui/build/static/bash-LE6roX2s.js +1 -0
- package/web-ui/build/static/basic-Cd6-vDdH.js +1 -0
- package/web-ui/build/static/basic-mfY-ovnp.js +1 -0
- package/web-ui/build/static/batch-DxVy2cwv.js +1 -0
- package/web-ui/build/static/bbcode-Ct3Yu8De.js +1 -0
- package/web-ui/build/static/bicep-CexPoMEW.js +1 -0
- package/web-ui/build/static/birb-CH1RMpPI.js +1 -0
- package/web-ui/build/static/bison-XQFuPB_Q.js +1 -0
- package/web-ui/build/static/bnf-CIDGmY3l.js +1 -0
- package/web-ui/build/static/bnf-DjN_FU2s.js +1 -0
- package/web-ui/build/static/brainfuck-Cu_hvayi.js +1 -0
- package/web-ui/build/static/brainfuck-eRbe4_qo.js +1 -0
- package/web-ui/build/static/brightscript-Cdq0ttTN.js +1 -0
- package/web-ui/build/static/bro-D3aio8LS.js +1 -0
- package/web-ui/build/static/bsl-DFEwVZ2J.js +1 -0
- package/web-ui/build/static/c-D6RK1vhn.js +1 -0
- package/web-ui/build/static/c-DUcBA02q.js +1 -0
- package/web-ui/build/static/c-like-BApJDFwD.js +1 -0
- package/web-ui/build/static/cal-Ckv8Qnpw.js +1 -0
- package/web-ui/build/static/capnproto-DCoblEyS.js +1 -0
- package/web-ui/build/static/ceylon-DM-zZDWY.js +1 -0
- package/web-ui/build/static/cfscript-CMoOAgUK.js +1 -0
- package/web-ui/build/static/chaiscript-B3Vl3wGb.js +1 -0
- package/web-ui/build/static/cil-ChEi_uFO.js +1 -0
- package/web-ui/build/static/clean-BtA08oDV.js +1 -0
- package/web-ui/build/static/clojure-CWMlf7lJ.js +1 -0
- package/web-ui/build/static/clojure-Vur8C4jr.js +1 -0
- package/web-ui/build/static/clojure-repl-BsfGHdYy.js +1 -0
- package/web-ui/build/static/cmake-Csgl_IVr.js +1 -0
- package/web-ui/build/static/cmake-DFMKvwxy.js +1 -0
- package/web-ui/build/static/cobol-XhlGrCrW.js +1 -0
- package/web-ui/build/static/coffeescript-DYldGW35.js +1 -0
- package/web-ui/build/static/coffeescript-DvbNKwrC.js +1 -0
- package/web-ui/build/static/concurnas-DjALqCYn.js +1 -0
- package/web-ui/build/static/coq-D9QGJI6g.js +1 -0
- package/web-ui/build/static/coq-fAZpoc7i.js +1 -0
- package/web-ui/build/static/cos-GgM7WWVZ.js +1 -0
- package/web-ui/build/static/cpp-Cgt5qqfd.js +1 -0
- package/web-ui/build/static/cpp-DxVcOuBe.js +1 -0
- package/web-ui/build/static/crmsh-BlZWnzbY.js +1 -0
- package/web-ui/build/static/crystal--H7HLAQf.js +1 -0
- package/web-ui/build/static/crystal-DWm0bbUT.js +1 -0
- package/web-ui/build/static/csharp-8dr-wktE.js +1 -0
- package/web-ui/build/static/csharp-DFuHLPFe.js +1 -0
- package/web-ui/build/static/cshtml-C-L4_dy2.js +1 -0
- package/web-ui/build/static/csp-CJ6qbecO.js +1 -0
- package/web-ui/build/static/csp-DswTy-5u.js +1 -0
- package/web-ui/build/static/css-DdRPdKXQ.js +1 -0
- package/web-ui/build/static/css-extras-DMwOZFrB.js +1 -0
- package/web-ui/build/static/csv-BiWlhIMC.js +1 -0
- package/web-ui/build/static/cypher-ByNaJKO8.js +1 -0
- package/web-ui/build/static/d-BR89VlK-.js +1 -0
- package/web-ui/build/static/d-KlWvBc4w.js +1 -0
- package/web-ui/build/static/dart-BIsk7m6o.js +1 -0
- package/web-ui/build/static/dart-BnyP1Rjp.js +1 -0
- package/web-ui/build/static/dataweave-CH_Q2gWX.js +1 -0
- package/web-ui/build/static/dax-wulX9uc-.js +1 -0
- package/web-ui/build/static/delphi-CFowdk_A.js +1 -0
- package/web-ui/build/static/dhall-BfCOemEp.js +1 -0
- package/web-ui/build/static/diff-DQD2zPaG.js +1 -0
- package/web-ui/build/static/diff-DZoEdrYM.js +1 -0
- package/web-ui/build/static/django-B0j973Kw.js +1 -0
- package/web-ui/build/static/django-CYScL320.js +1 -0
- package/web-ui/build/static/dns-DoECkAgz.js +1 -0
- package/web-ui/build/static/dns-zone-file-CuoIcXgj.js +1 -0
- package/web-ui/build/static/docker-C2nfXTBG.js +1 -0
- package/web-ui/build/static/dockerfile-DBalxIH7.js +1 -0
- package/web-ui/build/static/dos-GNL9IdmL.js +1 -0
- package/web-ui/build/static/dot-rKuRS-PS.js +1 -0
- package/web-ui/build/static/dsconfig-CKmenTFr.js +1 -0
- package/web-ui/build/static/dts-AxT2qjQU.js +1 -0
- package/web-ui/build/static/dust-DpqHWPC4.js +1 -0
- package/web-ui/build/static/ebnf-CONEMpLp.js +1 -0
- package/web-ui/build/static/ebnf-DRWcOs8R.js +1 -0
- package/web-ui/build/static/editorconfig-lmLHmECZ.js +1 -0
- package/web-ui/build/static/eiffel-B39e31fw.js +1 -0
- package/web-ui/build/static/ejs-DtJwpVdo.js +1 -0
- package/web-ui/build/static/elixir-BH4JTqa9.js +1 -0
- package/web-ui/build/static/elixir-aH1DLjYD.js +1 -0
- package/web-ui/build/static/elm-BcCGkSrW.js +1 -0
- package/web-ui/build/static/elm-CCrB1JbX.js +1 -0
- package/web-ui/build/static/erb-CcumI1K3.js +1 -0
- package/web-ui/build/static/erb-_HK77hx-.js +1 -0
- package/web-ui/build/static/erlang-B1qxMZZp.js +1 -0
- package/web-ui/build/static/erlang-CCM_ejO_.js +1 -0
- package/web-ui/build/static/erlang-repl-D1zC2Zf6.js +1 -0
- package/web-ui/build/static/etlua-HJMRx9x7.js +1 -0
- package/web-ui/build/static/excel-DqXCKUKa.js +1 -0
- package/web-ui/build/static/excel-formula-oNw1T5Gi.js +1 -0
- package/web-ui/build/static/factor-BrTp5FZH.js +1 -0
- package/web-ui/build/static/false-CAVqV3ok.js +1 -0
- package/web-ui/build/static/firestore-security-rules-CxTofGT0.js +1 -0
- package/web-ui/build/static/fix-BMooo7-3.js +1 -0
- package/web-ui/build/static/flix-DR5Pi_4n.js +1 -0
- package/web-ui/build/static/flow-BoCWpUCW.js +1 -0
- package/web-ui/build/static/fortran-B9JI5ahV.js +1 -0
- package/web-ui/build/static/fortran-LXg81aOn.js +1 -0
- package/web-ui/build/static/fsharp-BqcGG-SM.js +1 -0
- package/web-ui/build/static/fsharp-Dj5YVL_h.js +1 -0
- package/web-ui/build/static/ftl-kuY7uFR8.js +1 -0
- package/web-ui/build/static/gams-CzihHKqE.js +1 -0
- package/web-ui/build/static/gap-BbS0A-Wl.js +1 -0
- package/web-ui/build/static/gauss-BauwG_O4.js +1 -0
- package/web-ui/build/static/gcode-VY1OKBcC.js +1 -0
- package/web-ui/build/static/gcode-lapsLgV5.js +1 -0
- package/web-ui/build/static/gdscript-1UIYB8m0.js +1 -0
- package/web-ui/build/static/gedcom-Bhrxt1LM.js +1 -0
- package/web-ui/build/static/gherkin-BsUD3vJB.js +1 -0
- package/web-ui/build/static/gherkin-hj_asmFX.js +1 -0
- package/web-ui/build/static/git-DXIrRKzR.js +1 -0
- package/web-ui/build/static/glsl-Bww3i9-P.js +1 -0
- package/web-ui/build/static/glsl-tW4hvcaQ.js +1 -0
- package/web-ui/build/static/gml-BIqshajA.js +1 -0
- package/web-ui/build/static/gml-CQqc9F-B.js +1 -0
- package/web-ui/build/static/gn-CBgpy8B9.js +1 -0
- package/web-ui/build/static/go-CEUAUIgn.js +1 -0
- package/web-ui/build/static/go-DPEd33Yn.js +1 -0
- package/web-ui/build/static/go-module-BVPbZOg5.js +1 -0
- package/web-ui/build/static/golo-CqB3OATq.js +1 -0
- package/web-ui/build/static/gradle-Djj_6FTv.js +1 -0
- package/web-ui/build/static/graphql-ymSYYmmE.js +1 -0
- package/web-ui/build/static/groovy-BLoXi1Ew.js +1 -0
- package/web-ui/build/static/groovy-D8ua3DVO.js +1 -0
- package/web-ui/build/static/haml-DKlxHs26.js +1 -0
- package/web-ui/build/static/haml-S_iUNysn.js +1 -0
- package/web-ui/build/static/handlebars-B7tcAMGB.js +1 -0
- package/web-ui/build/static/handlebars-CV-zB05N.js +1 -0
- package/web-ui/build/static/haskell-CMxCwdZX.js +1 -0
- package/web-ui/build/static/haskell-Dis6rGJ5.js +1 -0
- package/web-ui/build/static/haxe-C76IK5YN.js +1 -0
- package/web-ui/build/static/haxe-hbmD2uei.js +1 -0
- package/web-ui/build/static/hcl-BPI_t80W.js +1 -0
- package/web-ui/build/static/hlsl-BmeH3MXM.js +1 -0
- package/web-ui/build/static/hoon-BYLX7KiR.js +1 -0
- package/web-ui/build/static/hpkp-CFV1lvIV.js +1 -0
- package/web-ui/build/static/hsp-_VXPtQPw.js +1 -0
- package/web-ui/build/static/hsts-DzmFog1b.js +1 -0
- package/web-ui/build/static/htmlbars-uX8JubPS.js +1 -0
- package/web-ui/build/static/http-BTDAHgkv.js +1 -0
- package/web-ui/build/static/http-Ba1gTHCW.js +1 -0
- package/web-ui/build/static/hy-G7MK4TLb.js +1 -0
- package/web-ui/build/static/ichigojam-BKKN56jZ.js +1 -0
- package/web-ui/build/static/icon-nrqdEYwB.js +1 -0
- package/web-ui/build/static/icu-message-format-Bjone7XH.js +1 -0
- package/web-ui/build/static/idris-CKkY_0op.js +1 -0
- package/web-ui/build/static/iecst-EV3ZvBDC.js +1 -0
- package/web-ui/build/static/ignore-LJIbInke.js +1 -0
- package/web-ui/build/static/index-C1x426Pt.js +734 -0
- package/web-ui/build/static/index-CTzeYMwr.js +13 -0
- package/web-ui/build/static/index-CUBjz1OL.css +1 -0
- package/web-ui/build/static/index-DnVIkRiR.js +1 -0
- package/web-ui/build/static/inform7-BiW6HbUl.js +1 -0
- package/web-ui/build/static/inform7-DT-x6SRD.js +1 -0
- package/web-ui/build/static/ini-BbnHjAtW.js +1 -0
- package/web-ui/build/static/ini-DuNY7Iqz.js +1 -0
- package/web-ui/build/static/io-BquAtlCB.js +1 -0
- package/web-ui/build/static/irpf90-CZELNeJl.js +1 -0
- package/web-ui/build/static/isbl-DhOgOzai.js +1 -0
- package/web-ui/build/static/j-r8D3BrBj.js +1 -0
- package/web-ui/build/static/java-MjQ5EBN5.js +1 -0
- package/web-ui/build/static/java-c3Jyc0B6.js +1 -0
- package/web-ui/build/static/javadoc-CfNFziRD.js +1 -0
- package/web-ui/build/static/javadoclike-BUcJZQAh.js +1 -0
- package/web-ui/build/static/javascript-CL_4g6j3.js +1 -0
- package/web-ui/build/static/javastacktrace-4P_J-58S.js +1 -0
- package/web-ui/build/static/jboss-cli-DUfK88hO.js +1 -0
- package/web-ui/build/static/jexl-DsSijmcs.js +1 -0
- package/web-ui/build/static/jolie-DjtNIZB4.js +1 -0
- package/web-ui/build/static/jq-BXdSm79y.js +1 -0
- package/web-ui/build/static/js-extras-B-C7ngCD.js +1 -0
- package/web-ui/build/static/js-templates-CmPAiwFC.js +1 -0
- package/web-ui/build/static/jsdoc-CkiXOOMV.js +1 -0
- package/web-ui/build/static/json-Bmvhezfj.js +1 -0
- package/web-ui/build/static/json-HPR8wBiw.js +1 -0
- package/web-ui/build/static/json5-Chcg9nnQ.js +1 -0
- package/web-ui/build/static/jsonp-C3KWcfzJ.js +1 -0
- package/web-ui/build/static/jsstacktrace-D1jRFy-S.js +1 -0
- package/web-ui/build/static/jsx-COtCqQ_9.js +1 -0
- package/web-ui/build/static/julia-BVvfw2TB.js +1 -0
- package/web-ui/build/static/julia-Ddalvdoa.js +1 -0
- package/web-ui/build/static/julia-repl-Bc-uwnIZ.js +1 -0
- package/web-ui/build/static/keepalived-CJ9ZYuQx.js +1 -0
- package/web-ui/build/static/keyman-BHea-dB6.js +1 -0
- package/web-ui/build/static/kotlin-DWOyCb_2.js +1 -0
- package/web-ui/build/static/kotlin-fvMiFIS3.js +1 -0
- package/web-ui/build/static/kumir-DaNls7gN.js +1 -0
- package/web-ui/build/static/kusto-DKweJuKl.js +1 -0
- package/web-ui/build/static/lasso-BB9dUrv_.js +1 -0
- package/web-ui/build/static/latex-C7U5RUQQ.js +1 -0
- package/web-ui/build/static/latex-CXM3EEy0.js +1 -0
- package/web-ui/build/static/latte-B4pEA635.js +1 -0
- package/web-ui/build/static/ldif-D3wYig10.js +1 -0
- package/web-ui/build/static/leaf-uFkjT9sR.js +1 -0
- package/web-ui/build/static/less-CbUH4jBX.js +1 -0
- package/web-ui/build/static/less-DEGyfeZn.js +1 -0
- package/web-ui/build/static/lilypond-UuoBjShK.js +1 -0
- package/web-ui/build/static/liquid-DB3a9n7S.js +1 -0
- package/web-ui/build/static/lisp-BDbj7Kd2.js +1 -0
- package/web-ui/build/static/lisp-D3T0YOb1.js +1 -0
- package/web-ui/build/static/livecodeserver-CkZMVLmr.js +1 -0
- package/web-ui/build/static/livescript-CJbtbTfA.js +1 -0
- package/web-ui/build/static/livescript-CdWg1xgf.js +1 -0
- package/web-ui/build/static/llvm-8hpjZ6qF.js +1 -0
- package/web-ui/build/static/llvm-DPpuma6i.js +1 -0
- package/web-ui/build/static/log-DwsLgecp.js +1 -0
- package/web-ui/build/static/lolcode-D3tkyiVB.js +1 -0
- package/web-ui/build/static/lsl-BBM4ZYza.js +1 -0
- package/web-ui/build/static/lua-DT0su8pZ.js +1 -0
- package/web-ui/build/static/lua-DqZXmUwn.js +1 -0
- package/web-ui/build/static/magma-DGW0-GCr.js +1 -0
- package/web-ui/build/static/makefile-C_K7AaVw.js +1 -0
- package/web-ui/build/static/makefile-CarddjPJ.js +1 -0
- package/web-ui/build/static/markdown-3dq-8I9T.js +1 -0
- package/web-ui/build/static/markdown-c4VYoNo2.js +1 -0
- package/web-ui/build/static/markup-templating-BBX0gWS5.js +1 -0
- package/web-ui/build/static/mathematica-n-aqoCbO.js +1 -0
- package/web-ui/build/static/matlab-B_kYC-A2.js +1 -0
- package/web-ui/build/static/matlab-CQP2D_0j.js +1 -0
- package/web-ui/build/static/maxima-piaAhCcP.js +1 -0
- package/web-ui/build/static/maxscript-CkxNZR1a.js +1 -0
- package/web-ui/build/static/mel-BXbrV0aU.js +1 -0
- package/web-ui/build/static/mel-CBSpVZcl.js +1 -0
- package/web-ui/build/static/mercury-CffeC87B.js +1 -0
- package/web-ui/build/static/mermaid-DAZcfksM.js +1 -0
- package/web-ui/build/static/mipsasm-DvOPoNgz.js +1 -0
- package/web-ui/build/static/mizar-C2ki99qc.js +1 -0
- package/web-ui/build/static/mizar-C5AXRrsD.js +1 -0
- package/web-ui/build/static/mojolicious-DklqV-uP.js +1 -0
- package/web-ui/build/static/mongodb-BbuSPlN0.js +1 -0
- package/web-ui/build/static/monkey-CJBb2-mV.js +1 -0
- package/web-ui/build/static/monkey-DgERCZQd.js +1 -0
- package/web-ui/build/static/moonscript-BovBU9jW.js +1 -0
- package/web-ui/build/static/moonscript-lPqbcjjy.js +1 -0
- package/web-ui/build/static/n1ql-CjVXW0Z0.js +1 -0
- package/web-ui/build/static/n1ql-DkfG2dTH.js +1 -0
- package/web-ui/build/static/n4js-6L9QW_kw.js +1 -0
- package/web-ui/build/static/nand2tetris-hdl-CqohGHfB.js +1 -0
- package/web-ui/build/static/naniscript-CIvQ6y1b.js +1 -0
- package/web-ui/build/static/nasm-CQbJbZZf.js +1 -0
- package/web-ui/build/static/neon-Cz41RJxQ.js +1 -0
- package/web-ui/build/static/nevod-WPRJ2Q9j.js +1 -0
- package/web-ui/build/static/nginx-BL2wPbD-.js +1 -0
- package/web-ui/build/static/nginx-DsqC_gQT.js +1 -0
- package/web-ui/build/static/nim-7qnwzYm_.js +1 -0
- package/web-ui/build/static/nim-D6iDo5H6.js +1 -0
- package/web-ui/build/static/nix-BQSsaH-G.js +1 -0
- package/web-ui/build/static/nix-DgwCtjpD.js +1 -0
- package/web-ui/build/static/node-repl-Cb4w8DbD.js +1 -0
- package/web-ui/build/static/nsis-CiXZWrqR.js +1 -0
- package/web-ui/build/static/nsis-CuwGI5px.js +1 -0
- package/web-ui/build/static/objectivec-DZXCqQ1J.js +1 -0
- package/web-ui/build/static/objectivec-GNGh-wiY.js +1 -0
- package/web-ui/build/static/ocaml-BPg_ANkr.js +1 -0
- package/web-ui/build/static/ocaml-DRUpaN8p.js +1 -0
- package/web-ui/build/static/opencl-CazTs_sf.js +1 -0
- package/web-ui/build/static/openqasm-DHuuXGjm.js +1 -0
- package/web-ui/build/static/openscad-YbvBFeLc.js +1 -0
- package/web-ui/build/static/oxygene-DDzgbCaQ.js +1 -0
- package/web-ui/build/static/oz-BRDBLIjx.js +1 -0
- package/web-ui/build/static/parigp-BbApdos7.js +1 -0
- package/web-ui/build/static/parser-CbVH4ySK.js +1 -0
- package/web-ui/build/static/parser3-BIkvuuuE.js +1 -0
- package/web-ui/build/static/pascal-oS7U_3sO.js +1 -0
- package/web-ui/build/static/pascaligo-57DdFj76.js +1 -0
- package/web-ui/build/static/pcaxis-V-Euf0DV.js +1 -0
- package/web-ui/build/static/peoplecode-DjyRW5V8.js +1 -0
- package/web-ui/build/static/perl-BEQWvjeP.js +1 -0
- package/web-ui/build/static/perl-CiDHRorC.js +1 -0
- package/web-ui/build/static/pf-S5x_U1LC.js +1 -0
- package/web-ui/build/static/pgsql-DwHZC-iy.js +1 -0
- package/web-ui/build/static/php-7enmlb-I.js +1 -0
- package/web-ui/build/static/php-extras-BhRDMlXE.js +1 -0
- package/web-ui/build/static/php-kIwfq-Jj.js +1 -0
- package/web-ui/build/static/php-template-M2RrZc1R.js +1 -0
- package/web-ui/build/static/phpdoc-HUeiWlkw.js +1 -0
- package/web-ui/build/static/plaintext-CPt25ow_.js +1 -0
- package/web-ui/build/static/plsql-BvoRAbdz.js +1 -0
- package/web-ui/build/static/pony-BVuhxk7D.js +1 -0
- package/web-ui/build/static/powerquery-rnRfiL3F.js +1 -0
- package/web-ui/build/static/powershell-BQR2-qjF.js +1 -0
- package/web-ui/build/static/powershell-S_XnLato.js +1 -0
- package/web-ui/build/static/processing-B-8pt1gx.js +1 -0
- package/web-ui/build/static/processing-ozS1KPr7.js +1 -0
- package/web-ui/build/static/profile-DOjTmxRs.js +1 -0
- package/web-ui/build/static/prolog-BaaxuI5L.js +1 -0
- package/web-ui/build/static/prolog-D90dFqfr.js +1 -0
- package/web-ui/build/static/promql-BuyoLqtl.js +1 -0
- package/web-ui/build/static/properties-C0pMastm.js +1 -0
- package/web-ui/build/static/properties-k7bXYQao.js +1 -0
- package/web-ui/build/static/protobuf-ChaO1q7B.js +1 -0
- package/web-ui/build/static/protobuf-DAGxv01T.js +1 -0
- package/web-ui/build/static/psl-BpYOLBqn.js +1 -0
- package/web-ui/build/static/pug-BUlJA4UD.js +1 -0
- package/web-ui/build/static/puppet-8l--PVpO.js +1 -0
- package/web-ui/build/static/puppet-BJDN84xr.js +1 -0
- package/web-ui/build/static/pure-DhqjQg1a.js +1 -0
- package/web-ui/build/static/purebasic-BHnSz9Yh.js +1 -0
- package/web-ui/build/static/purebasic-CeiLO2aV.js +1 -0
- package/web-ui/build/static/purescript-BaXXPnKS.js +1 -0
- package/web-ui/build/static/python-BXdJ4yqN.js +1 -0
- package/web-ui/build/static/python-Cef5Vfx2.js +1 -0
- package/web-ui/build/static/python-repl-CRpJP363.js +1 -0
- package/web-ui/build/static/q-C6Ov0g11.js +1 -0
- package/web-ui/build/static/q-D3tQMiHa.js +1 -0
- package/web-ui/build/static/qml-BYofTHXZ.js +1 -0
- package/web-ui/build/static/qml-DTxi8T37.js +1 -0
- package/web-ui/build/static/qore-Ny7MVtbP.js +1 -0
- package/web-ui/build/static/qsharp-Cy_rqHs2.js +1 -0
- package/web-ui/build/static/r-BtNaz7Jx.js +1 -0
- package/web-ui/build/static/r-DkF7wq0g.js +1 -0
- package/web-ui/build/static/racket-C5r8oFZa.js +1 -0
- package/web-ui/build/static/reason-BURRGL8T.js +1 -0
- package/web-ui/build/static/reasonml-ZPKVqo38.js +1 -0
- package/web-ui/build/static/regex-DgaaAttu.js +1 -0
- package/web-ui/build/static/rego-CtwYq-qp.js +1 -0
- package/web-ui/build/static/renpy-OueysuHf.js +1 -0
- package/web-ui/build/static/rest-Co13hzuk.js +1 -0
- package/web-ui/build/static/rib-CvGWooaO.js +1 -0
- package/web-ui/build/static/rip-5glwZfvx.js +1 -0
- package/web-ui/build/static/roboconf-B9R_ZXBj.js +1 -0
- package/web-ui/build/static/roboconf-Gf0nTNKt.js +1 -0
- package/web-ui/build/static/robotframework-C2axWAv1.js +1 -0
- package/web-ui/build/static/routeros-CE_Iedbm.js +1 -0
- package/web-ui/build/static/rsl-2QjczbcI.js +1 -0
- package/web-ui/build/static/ruby-5q7nApRB.js +1 -0
- package/web-ui/build/static/ruby-BUTeEeQo.js +1 -0
- package/web-ui/build/static/ruleslanguage-vxFl2T6e.js +1 -0
- package/web-ui/build/static/rust-BMuquF4q.js +1 -0
- package/web-ui/build/static/rust-CcZQo8qE.js +1 -0
- package/web-ui/build/static/sas-B3kZio_a.js +1 -0
- package/web-ui/build/static/sas-Bbv6Pcs_.js +1 -0
- package/web-ui/build/static/sass-C0q0q-U-.js +1 -0
- package/web-ui/build/static/scala-B5vW0oUX.js +1 -0
- package/web-ui/build/static/scala-CyVnVDED.js +1 -0
- package/web-ui/build/static/scheme-C9JOo4R_.js +1 -0
- package/web-ui/build/static/scheme-W2233tzx.js +1 -0
- package/web-ui/build/static/scilab-D2Bvw6Ov.js +1 -0
- package/web-ui/build/static/scss-CTlab4AI.js +1 -0
- package/web-ui/build/static/scss-DZ5g2Z9m.js +1 -0
- package/web-ui/build/static/shell-bYpiB--U.js +1 -0
- package/web-ui/build/static/shell-session-C4jzoNup.js +1 -0
- package/web-ui/build/static/smali-9ucoTzDl.js +1 -0
- package/web-ui/build/static/smali-BnluPxDD.js +1 -0
- package/web-ui/build/static/smalltalk-CAMGWItN.js +1 -0
- package/web-ui/build/static/smalltalk-DNxg0Og_.js +1 -0
- package/web-ui/build/static/smarty-YxNaCRZt.js +1 -0
- package/web-ui/build/static/sml-CZbvurr2.js +1 -0
- package/web-ui/build/static/sml-DGs_TRXx.js +1 -0
- package/web-ui/build/static/solidity-CEsviKxI.js +1 -0
- package/web-ui/build/static/solution-file-D0Yvaoet.js +1 -0
- package/web-ui/build/static/soy-BmVAPY7I.js +1 -0
- package/web-ui/build/static/sparql-D8d4i2J8.js +1 -0
- package/web-ui/build/static/splunk-spl-CcgWj5Im.js +1 -0
- package/web-ui/build/static/sqf-Cd4tBlXZ.js +1 -0
- package/web-ui/build/static/sqf-DC8e-wlP.js +1 -0
- package/web-ui/build/static/sql-D5KtfAwl.js +1 -0
- package/web-ui/build/static/sql-DX4iGc5J.js +1 -0
- package/web-ui/build/static/sql_more-9ztUFh5U.js +1 -0
- package/web-ui/build/static/squirrel-CiVV01fQ.js +1 -0
- package/web-ui/build/static/stan-DCrPYtdq.js +1 -0
- package/web-ui/build/static/stan-LL9ScTUT.js +1 -0
- package/web-ui/build/static/stata-n-r5-RvF.js +1 -0
- package/web-ui/build/static/step21-B2hxGG1E.js +1 -0
- package/web-ui/build/static/stylus-D-1wq2uN.js +1 -0
- package/web-ui/build/static/stylus-Dr-w1AjW.js +1 -0
- package/web-ui/build/static/subunit-DRCyiRHI.js +1 -0
- package/web-ui/build/static/swift-B2ZIuBjB.js +1 -0
- package/web-ui/build/static/swift-CnRpp8ao.js +1 -0
- package/web-ui/build/static/systemd-LPN-yj3b.js +1 -0
- package/web-ui/build/static/t4-cs-CXJSMlet.js +1 -0
- package/web-ui/build/static/t4-templating-Ciw3keAZ.js +1 -0
- package/web-ui/build/static/t4-vb-CXe99AWF.js +1 -0
- package/web-ui/build/static/taggerscript-Bm830ZwV.js +1 -0
- package/web-ui/build/static/tap-B0WwYGVt.js +1 -0
- package/web-ui/build/static/tap-Dw_cgj6K.js +1 -0
- package/web-ui/build/static/tcl-Di4JhH4s.js +1 -0
- package/web-ui/build/static/tcl-cIeBNf2V.js +1 -0
- package/web-ui/build/static/textile-DgMdCAz5.js +1 -0
- package/web-ui/build/static/thrift-zY2WxYMk.js +1 -0
- package/web-ui/build/static/toml-BtXdKizf.js +1 -0
- package/web-ui/build/static/tp-DxY0K8UF.js +1 -0
- package/web-ui/build/static/tremor-890wqxvH.js +1 -0
- package/web-ui/build/static/tsx-92ElsKxL.js +1 -0
- package/web-ui/build/static/tt2-DqcvjDKh.js +1 -0
- package/web-ui/build/static/turtle-BZikMsiD.js +1 -0
- package/web-ui/build/static/twig-BlxkEMdw.js +1 -0
- package/web-ui/build/static/twig-CfsoMGnv.js +1 -0
- package/web-ui/build/static/typescript-3xS8yDgH.js +1 -0
- package/web-ui/build/static/typescript-Dx0zHssr.js +1 -0
- package/web-ui/build/static/typoscript-BdFwMGCV.js +1 -0
- package/web-ui/build/static/unrealscript-DJzoqp3G.js +1 -0
- package/web-ui/build/static/uorazor-CQO8Ynpw.js +1 -0
- package/web-ui/build/static/uri-BUBBJdel.js +1 -0
- package/web-ui/build/static/v-XU798JEc.js +1 -0
- package/web-ui/build/static/vala-DsH-Nomr.js +1 -0
- package/web-ui/build/static/vala-gCVw4o0d.js +1 -0
- package/web-ui/build/static/vbnet-BHw8cZ4s.js +1 -0
- package/web-ui/build/static/vbnet-DPa2ddOk.js +1 -0
- package/web-ui/build/static/vbscript-html-CNADYJ1-.js +1 -0
- package/web-ui/build/static/vbscript-ztRmIppj.js +1 -0
- package/web-ui/build/static/velocity-DVfeN53w.js +1 -0
- package/web-ui/build/static/verilog-C9VDLRl9.js +1 -0
- package/web-ui/build/static/verilog-Dsmt_WJW.js +1 -0
- package/web-ui/build/static/vhdl-DbylNGny.js +1 -0
- package/web-ui/build/static/vhdl-wNJe3yKK.js +1 -0
- package/web-ui/build/static/vim-6PLlVaq_.js +1 -0
- package/web-ui/build/static/vim-BJpkTTe-.js +1 -0
- package/web-ui/build/static/visual-basic-GY3wXjJ3.js +1 -0
- package/web-ui/build/static/warpscript-DUb9z3yI.js +1 -0
- package/web-ui/build/static/wasm-Dey0RlHH.js +1 -0
- package/web-ui/build/static/web-idl-qAF1RqaI.js +1 -0
- package/web-ui/build/static/wiki-Dh3Vjtce.js +1 -0
- package/web-ui/build/static/wolfram-BrQcRMlt.js +1 -0
- package/web-ui/build/static/wren-Cu3Mzln6.js +1 -0
- package/web-ui/build/static/x86asm-DD5mhaEi.js +1 -0
- package/web-ui/build/static/xeora-DKRZ6hlr.js +1 -0
- package/web-ui/build/static/xl-BL8R8sAx.js +1 -0
- package/web-ui/build/static/xml-doc-BSpNJbEM.js +1 -0
- package/web-ui/build/static/xml-i5BJyEQ7.js +1 -0
- package/web-ui/build/static/xojo-r2ieNAyP.js +1 -0
- package/web-ui/build/static/xquery-BtAK8Dvl.js +1 -0
- package/web-ui/build/static/xquery-CM4Q_TX7.js +1 -0
- package/web-ui/build/static/yaml-Mm8ArZA3.js +1 -0
- package/web-ui/build/static/yaml-r-QeuY00.js +1 -0
- package/web-ui/build/static/yang-qcKR-Y23.js +1 -0
- package/web-ui/build/static/zephir-8ApHtH7c.js +1 -0
- package/web-ui/build/static/zig-BanqOd9_.js +1 -0
- package/web-ui/build/static/1c-alYWzgyM.js +0 -1
- package/web-ui/build/static/abap-MNX4MGQu.js +0 -1
- package/web-ui/build/static/abnf-PB6umZUe.js +0 -1
- package/web-ui/build/static/abnf-lLelqyRq.js +0 -1
- package/web-ui/build/static/accesslog-ECfnNf6M.js +0 -1
- package/web-ui/build/static/actionscript-48Mv-P2G.js +0 -1
- package/web-ui/build/static/actionscript-CmFMkWAF.js +0 -1
- package/web-ui/build/static/ada-D0nj2830.js +0 -1
- package/web-ui/build/static/ada-DC68kRrL.js +0 -1
- package/web-ui/build/static/agda-CjnuTEYG.js +0 -1
- package/web-ui/build/static/al-DICLGfy9.js +0 -1
- package/web-ui/build/static/angelscript-D7H0wknj.js +0 -1
- package/web-ui/build/static/antlr4-C_KsZIwI.js +0 -1
- package/web-ui/build/static/apache-Cfj2o0TW.js +0 -1
- package/web-ui/build/static/apacheconf-D5jQXqP_.js +0 -1
- package/web-ui/build/static/apex-G2rOb7vm.js +0 -1
- package/web-ui/build/static/apl-CE_aKOLQ.js +0 -1
- package/web-ui/build/static/applescript-BffXi9IZ.js +0 -1
- package/web-ui/build/static/applescript-CshVa-pZ.js +0 -1
- package/web-ui/build/static/aql-F9xr2xIN.js +0 -1
- package/web-ui/build/static/arcade-29Re4fPy.js +0 -1
- package/web-ui/build/static/arduino-BGsZiYrf.js +0 -1
- package/web-ui/build/static/arduino-HiqNS--s.js +0 -1
- package/web-ui/build/static/arff-jPcJv_eJ.js +0 -1
- package/web-ui/build/static/armasm-DDockn0p.js +0 -1
- package/web-ui/build/static/asciidoc-BW3nh79M.js +0 -1
- package/web-ui/build/static/asciidoc-Dxit6U7t.js +0 -1
- package/web-ui/build/static/asm6502-eTpxnsNy.js +0 -1
- package/web-ui/build/static/asmatmel-BHeErmNQ.js +0 -1
- package/web-ui/build/static/aspectj-CX6x53Aw.js +0 -1
- package/web-ui/build/static/aspnet-BFDGvlyU.js +0 -1
- package/web-ui/build/static/autohotkey-CRNZnW-g.js +0 -1
- package/web-ui/build/static/autohotkey-DhdXEUbC.js +0 -1
- package/web-ui/build/static/autoit-BrCU_LoC.js +0 -1
- package/web-ui/build/static/autoit-CNY5ZLoO.js +0 -1
- package/web-ui/build/static/avisynth-CvpX-vR-.js +0 -1
- package/web-ui/build/static/avrasm-Ch0VgbnW.js +0 -1
- package/web-ui/build/static/avro-idl-DVNgaXeA.js +0 -1
- package/web-ui/build/static/awk-DBbMErBm.js +0 -1
- package/web-ui/build/static/axapta-BZMCBJyd.js +0 -1
- package/web-ui/build/static/bash-B7W9_l_H.js +0 -1
- package/web-ui/build/static/bash-nUxPXV93.js +0 -1
- package/web-ui/build/static/basic-CncKWTdb.js +0 -1
- package/web-ui/build/static/basic-t050Yfrj.js +0 -1
- package/web-ui/build/static/batch-DzppEDD6.js +0 -1
- package/web-ui/build/static/bbcode-Cxa6xUCC.js +0 -1
- package/web-ui/build/static/bicep-CNfRbyLD.js +0 -1
- package/web-ui/build/static/birb-BQn3C4qH.js +0 -1
- package/web-ui/build/static/bison-CG1ITN82.js +0 -1
- package/web-ui/build/static/bnf-BH6EqVfg.js +0 -1
- package/web-ui/build/static/bnf-DOOI4ziA.js +0 -1
- package/web-ui/build/static/brainfuck-CuvanNT4.js +0 -1
- package/web-ui/build/static/brainfuck-DEN53aXA.js +0 -1
- package/web-ui/build/static/brightscript-C_qPLhPu.js +0 -1
- package/web-ui/build/static/bro-DE4fdxVn.js +0 -1
- package/web-ui/build/static/bsl-DhilRMN1.js +0 -1
- package/web-ui/build/static/c-DJMkv9RR.js +0 -1
- package/web-ui/build/static/c-HH0eyrSO.js +0 -1
- package/web-ui/build/static/c-like-CievvBLp.js +0 -1
- package/web-ui/build/static/cal-BBz3_HT0.js +0 -1
- package/web-ui/build/static/capnproto-BOgD9Wf3.js +0 -1
- package/web-ui/build/static/ceylon-MWYZBIMt.js +0 -1
- package/web-ui/build/static/cfscript-BiVuxt5i.js +0 -1
- package/web-ui/build/static/chaiscript-CPx7l6f-.js +0 -1
- package/web-ui/build/static/cil-3DGkdNym.js +0 -1
- package/web-ui/build/static/clean-Bxi-hwbJ.js +0 -1
- package/web-ui/build/static/clojure-BBMLjTS9.js +0 -1
- package/web-ui/build/static/clojure-RPrwnP3x.js +0 -1
- package/web-ui/build/static/clojure-repl-BE9VGIhP.js +0 -1
- package/web-ui/build/static/cmake-BMeSZbTq.js +0 -1
- package/web-ui/build/static/cmake-CLVNptnB.js +0 -1
- package/web-ui/build/static/cobol-f-w6Mj2H.js +0 -1
- package/web-ui/build/static/coffeescript-CESbl4tN.js +0 -1
- package/web-ui/build/static/coffeescript-DmOzsrDS.js +0 -1
- package/web-ui/build/static/concurnas-DxQ9U571.js +0 -1
- package/web-ui/build/static/coq-4Wu7fuDB.js +0 -1
- package/web-ui/build/static/coq-BERQ-1c4.js +0 -1
- package/web-ui/build/static/cos-SsvxAn6O.js +0 -1
- package/web-ui/build/static/cpp-BkY4KhJS.js +0 -1
- package/web-ui/build/static/cpp-CGkeKbAD.js +0 -1
- package/web-ui/build/static/crmsh-BL32bNK1.js +0 -1
- package/web-ui/build/static/crystal-C4e562-w.js +0 -1
- package/web-ui/build/static/crystal-Hu8WDm2E.js +0 -1
- package/web-ui/build/static/csharp-DvnJhHBw.js +0 -1
- package/web-ui/build/static/csharp-DxFH-E_J.js +0 -1
- package/web-ui/build/static/cshtml-BkimeLw1.js +0 -1
- package/web-ui/build/static/csp-CDNmbLWI.js +0 -1
- package/web-ui/build/static/csp-DXmobqdr.js +0 -1
- package/web-ui/build/static/css-VRUoX-cu.js +0 -1
- package/web-ui/build/static/css-extras-Dcz-5Gz_.js +0 -1
- package/web-ui/build/static/csv-Cy-vj0dX.js +0 -1
- package/web-ui/build/static/cypher-CyiGMZEd.js +0 -1
- package/web-ui/build/static/d-50yhKzqs.js +0 -1
- package/web-ui/build/static/d-CtQcHe9N.js +0 -1
- package/web-ui/build/static/dart-Dj05IVm2.js +0 -1
- package/web-ui/build/static/dart-kumEUEig.js +0 -1
- package/web-ui/build/static/dataweave-CyaTPvHl.js +0 -1
- package/web-ui/build/static/dax-BYZEUwTe.js +0 -1
- package/web-ui/build/static/delphi-Hrkf0_Zm.js +0 -1
- package/web-ui/build/static/dhall-ZfXZcVvQ.js +0 -1
- package/web-ui/build/static/diff-B681Qorw.js +0 -1
- package/web-ui/build/static/diff-C85U1vU3.js +0 -1
- package/web-ui/build/static/django-BbqkMAd3.js +0 -1
- package/web-ui/build/static/django-ebEm7IW1.js +0 -1
- package/web-ui/build/static/dns-CIKOn0cx.js +0 -1
- package/web-ui/build/static/dns-zone-file-Cgfj303q.js +0 -1
- package/web-ui/build/static/docker-DezZesK-.js +0 -1
- package/web-ui/build/static/dockerfile-HOIJDSPT.js +0 -1
- package/web-ui/build/static/dos-Bv0IPgh2.js +0 -1
- package/web-ui/build/static/dot-BiJIuPYL.js +0 -1
- package/web-ui/build/static/dsconfig-DCPRv9km.js +0 -1
- package/web-ui/build/static/dts-CXMbX7gl.js +0 -1
- package/web-ui/build/static/dust-Mjmn5ftw.js +0 -1
- package/web-ui/build/static/ebnf-469W3R_o.js +0 -1
- package/web-ui/build/static/ebnf-Bs6Ftm9u.js +0 -1
- package/web-ui/build/static/editorconfig-C4dD8cK_.js +0 -1
- package/web-ui/build/static/eiffel-D78uHdvn.js +0 -1
- package/web-ui/build/static/ejs-CUydrtqr.js +0 -1
- package/web-ui/build/static/elixir-BIxlPrSO.js +0 -1
- package/web-ui/build/static/elixir-CLS7rDXm.js +0 -1
- package/web-ui/build/static/elm-CdXXWPN7.js +0 -1
- package/web-ui/build/static/elm-DT7wSSPo.js +0 -1
- package/web-ui/build/static/erb-8Xeo3WFF.js +0 -1
- package/web-ui/build/static/erb-DROzrB_O.js +0 -1
- package/web-ui/build/static/erlang-DbMlkDTN.js +0 -1
- package/web-ui/build/static/erlang-DoF730hs.js +0 -1
- package/web-ui/build/static/erlang-repl-B7enXvga.js +0 -1
- package/web-ui/build/static/etlua-CehWhSD3.js +0 -1
- package/web-ui/build/static/excel-DHmOIegb.js +0 -1
- package/web-ui/build/static/excel-formula-DdeWF1_w.js +0 -1
- package/web-ui/build/static/factor-DBMZ3xT3.js +0 -1
- package/web-ui/build/static/false-AxZ_vqH0.js +0 -1
- package/web-ui/build/static/firestore-security-rules-BChGByFG.js +0 -1
- package/web-ui/build/static/fix-Cc-mOcI9.js +0 -1
- package/web-ui/build/static/flix-CBpO-hKP.js +0 -1
- package/web-ui/build/static/flow-FI5Ahl__.js +0 -1
- package/web-ui/build/static/fortran-C-jW3mxU.js +0 -1
- package/web-ui/build/static/fortran-zFBKdQax.js +0 -1
- package/web-ui/build/static/fsharp-Qu8P7ZfJ.js +0 -1
- package/web-ui/build/static/fsharp-gJT07_u6.js +0 -1
- package/web-ui/build/static/ftl-DcmD2jIl.js +0 -1
- package/web-ui/build/static/gams-BAhsVwik.js +0 -1
- package/web-ui/build/static/gap-DtjJMac5.js +0 -1
- package/web-ui/build/static/gauss-DLNJrvWH.js +0 -1
- package/web-ui/build/static/gcode-CbChIRHG.js +0 -1
- package/web-ui/build/static/gcode-lgPukEuS.js +0 -1
- package/web-ui/build/static/gdscript-ChdqKkXx.js +0 -1
- package/web-ui/build/static/gedcom-B3RAxWnR.js +0 -1
- package/web-ui/build/static/gherkin-BwKe4UMd.js +0 -1
- package/web-ui/build/static/gherkin-D1Q4xoY6.js +0 -1
- package/web-ui/build/static/git-CwA8K3Cg.js +0 -1
- package/web-ui/build/static/glsl-B_AtY5k6.js +0 -1
- package/web-ui/build/static/glsl-BgXyZa9x.js +0 -1
- package/web-ui/build/static/gml-O2ebFipB.js +0 -1
- package/web-ui/build/static/gml-xLusiP_j.js +0 -1
- package/web-ui/build/static/gn-T-uGKQLr.js +0 -1
- package/web-ui/build/static/go-B9spniuU.js +0 -1
- package/web-ui/build/static/go-DTwlbvuB.js +0 -1
- package/web-ui/build/static/go-module-DWCbGNjZ.js +0 -1
- package/web-ui/build/static/golo-Dp3ZC9Ry.js +0 -1
- package/web-ui/build/static/gradle-DxnYLs2J.js +0 -1
- package/web-ui/build/static/graphql-8stFQb3o.js +0 -1
- package/web-ui/build/static/groovy-Dbpy85Rs.js +0 -1
- package/web-ui/build/static/groovy-zimUQS73.js +0 -1
- package/web-ui/build/static/haml-B5gJAH_w.js +0 -1
- package/web-ui/build/static/haml-CXW3L0QY.js +0 -1
- package/web-ui/build/static/handlebars-BW92WxdN.js +0 -1
- package/web-ui/build/static/handlebars-DNysemQE.js +0 -1
- package/web-ui/build/static/haskell-BCP5M1h6.js +0 -1
- package/web-ui/build/static/haskell-BvSwVdJS.js +0 -1
- package/web-ui/build/static/haxe-BBVHLa1y.js +0 -1
- package/web-ui/build/static/haxe-DHK7XQB_.js +0 -1
- package/web-ui/build/static/hcl-CW0_ZJVS.js +0 -1
- package/web-ui/build/static/hlsl-DAH7B5KM.js +0 -1
- package/web-ui/build/static/hoon-CXY0i4p4.js +0 -1
- package/web-ui/build/static/hpkp-RL8DG2Fy.js +0 -1
- package/web-ui/build/static/hsp-DMAT8yb3.js +0 -1
- package/web-ui/build/static/hsts-SOCNnT21.js +0 -1
- package/web-ui/build/static/htmlbars-Bsrm5Qs8.js +0 -1
- package/web-ui/build/static/http-CYjIQwPj.js +0 -1
- package/web-ui/build/static/http-Hu8W9pON.js +0 -1
- package/web-ui/build/static/hy-CDbyyAxf.js +0 -1
- package/web-ui/build/static/ichigojam-CpPBjr7T.js +0 -1
- package/web-ui/build/static/icon-UI22EXz2.js +0 -1
- package/web-ui/build/static/icu-message-format-DAU066Wq.js +0 -1
- package/web-ui/build/static/idris-BuMEL37s.js +0 -1
- package/web-ui/build/static/iecst-CEqwKb_G.js +0 -1
- package/web-ui/build/static/ignore-CcCxTW7I.js +0 -1
- package/web-ui/build/static/index-C9Fa_kgD.css +0 -1
- package/web-ui/build/static/index-DexoK8pu.js +0 -834
- package/web-ui/build/static/index-DgeaGxMy.js +0 -13
- package/web-ui/build/static/index-RM91zq9j.js +0 -1
- package/web-ui/build/static/inform7-BdnukB1N.js +0 -1
- package/web-ui/build/static/inform7-Chkw-Df3.js +0 -1
- package/web-ui/build/static/ini--KUo0NJD.js +0 -1
- package/web-ui/build/static/ini-eo_rWFNv.js +0 -1
- package/web-ui/build/static/io-CWDVYxeI.js +0 -1
- package/web-ui/build/static/irpf90-CWFfmPjK.js +0 -1
- package/web-ui/build/static/isbl-BNkdk_dr.js +0 -1
- package/web-ui/build/static/j-Bg02P4UL.js +0 -1
- package/web-ui/build/static/java-BIDWcDHj.js +0 -1
- package/web-ui/build/static/java-D4bhM1sC.js +0 -1
- package/web-ui/build/static/javadoc-DxxfkSj4.js +0 -1
- package/web-ui/build/static/javadoclike-C3v2LXMS.js +0 -1
- package/web-ui/build/static/javascript-CSu6Pvd7.js +0 -1
- package/web-ui/build/static/javastacktrace-C50AqeNg.js +0 -1
- package/web-ui/build/static/jboss-cli-D4aAEeAL.js +0 -1
- package/web-ui/build/static/jexl-F8wyoUqO.js +0 -1
- package/web-ui/build/static/jolie-CdEDMXNQ.js +0 -1
- package/web-ui/build/static/jq-D95l3yQ0.js +0 -1
- package/web-ui/build/static/js-extras-55OlT8yf.js +0 -1
- package/web-ui/build/static/js-templates-4m7AkoaU.js +0 -1
- package/web-ui/build/static/jsdoc-BC6Ab1D0.js +0 -1
- package/web-ui/build/static/json-BHS2wD8g.js +0 -1
- package/web-ui/build/static/json-CPEJ9diH.js +0 -1
- package/web-ui/build/static/json5-EDQFzkuf.js +0 -1
- package/web-ui/build/static/jsonp-Cn_lpjaf.js +0 -1
- package/web-ui/build/static/jsstacktrace-pqdhqbKV.js +0 -1
- package/web-ui/build/static/jsx-Cop--oM_.js +0 -1
- package/web-ui/build/static/julia-B728rR99.js +0 -1
- package/web-ui/build/static/julia-Cq6vOawm.js +0 -1
- package/web-ui/build/static/julia-repl-BfOfjY_7.js +0 -1
- package/web-ui/build/static/keepalived-6ZwoBjFL.js +0 -1
- package/web-ui/build/static/keyman-DmOLCkH_.js +0 -1
- package/web-ui/build/static/kotlin-Bt385M6s.js +0 -1
- package/web-ui/build/static/kotlin-DsTE9me6.js +0 -1
- package/web-ui/build/static/kumir-DGpgb_2O.js +0 -1
- package/web-ui/build/static/kusto-Bb1U0J5m.js +0 -1
- package/web-ui/build/static/lasso-B4Rh4fa1.js +0 -1
- package/web-ui/build/static/latex-BlKwUVQO.js +0 -1
- package/web-ui/build/static/latex-D4EkT2Sx.js +0 -1
- package/web-ui/build/static/latte-8APUTRqH.js +0 -1
- package/web-ui/build/static/ldif-C1AH3r9Q.js +0 -1
- package/web-ui/build/static/leaf-DgHqqnCU.js +0 -1
- package/web-ui/build/static/less-BmLC9UX9.js +0 -1
- package/web-ui/build/static/less-D7wanA1u.js +0 -1
- package/web-ui/build/static/lilypond-CPpwdP3M.js +0 -1
- package/web-ui/build/static/liquid-C9g89s0-.js +0 -1
- package/web-ui/build/static/lisp-Ck1UA6zq.js +0 -1
- package/web-ui/build/static/lisp-tlR-SVFU.js +0 -1
- package/web-ui/build/static/livecodeserver-CfcVUDKK.js +0 -1
- package/web-ui/build/static/livescript-BPfp_PIe.js +0 -1
- package/web-ui/build/static/livescript-BVClM17E.js +0 -1
- package/web-ui/build/static/llvm-1CmNV1WZ.js +0 -1
- package/web-ui/build/static/llvm-DzaT3xf4.js +0 -1
- package/web-ui/build/static/log-x35sd55_.js +0 -1
- package/web-ui/build/static/lolcode-DfGz4a2C.js +0 -1
- package/web-ui/build/static/lsl-BJ13xzsn.js +0 -1
- package/web-ui/build/static/lua-DHTiU4iK.js +0 -1
- package/web-ui/build/static/lua-DttbbyOa.js +0 -1
- package/web-ui/build/static/magma-CM6u6Urv.js +0 -1
- package/web-ui/build/static/makefile--_TmwP5m.js +0 -1
- package/web-ui/build/static/makefile-DoB_xjMl.js +0 -1
- package/web-ui/build/static/markdown-BnyhT66e.js +0 -1
- package/web-ui/build/static/markdown-DvTREwgd.js +0 -1
- package/web-ui/build/static/markup-templating-yOvzgP3Z.js +0 -1
- package/web-ui/build/static/mathematica-BtY5tmVE.js +0 -1
- package/web-ui/build/static/matlab-DK98sDbn.js +0 -1
- package/web-ui/build/static/matlab-sBcSHRlC.js +0 -1
- package/web-ui/build/static/maxima-DMUOymL4.js +0 -1
- package/web-ui/build/static/maxscript-DaIC7eX6.js +0 -1
- package/web-ui/build/static/mel-BuONpgVc.js +0 -1
- package/web-ui/build/static/mel-Ckh0frDB.js +0 -1
- package/web-ui/build/static/mercury-CDFt4KAe.js +0 -1
- package/web-ui/build/static/mermaid-BqSA7Pr5.js +0 -1
- package/web-ui/build/static/mipsasm-Dj6mne2g.js +0 -1
- package/web-ui/build/static/mizar-CIQIQU-V.js +0 -1
- package/web-ui/build/static/mizar-CLTLHCGu.js +0 -1
- package/web-ui/build/static/mojolicious-DxjS7wDV.js +0 -1
- package/web-ui/build/static/mongodb-BAEipI91.js +0 -1
- package/web-ui/build/static/monkey-BBGnwc6s.js +0 -1
- package/web-ui/build/static/monkey-CvxTCuiS.js +0 -1
- package/web-ui/build/static/moonscript-CqDVk1K9.js +0 -1
- package/web-ui/build/static/moonscript-DJyxvZQc.js +0 -1
- package/web-ui/build/static/n1ql-AFWwB4Xn.js +0 -1
- package/web-ui/build/static/n1ql-VuVk9_MG.js +0 -1
- package/web-ui/build/static/n4js-BH6hpdgG.js +0 -1
- package/web-ui/build/static/nand2tetris-hdl-kVewh9V1.js +0 -1
- package/web-ui/build/static/naniscript-B_oQ4TiW.js +0 -1
- package/web-ui/build/static/nasm-B1_bJvcz.js +0 -1
- package/web-ui/build/static/neon-CbXfhQIm.js +0 -1
- package/web-ui/build/static/nevod-5Fv5cPWk.js +0 -1
- package/web-ui/build/static/nginx-BfifkBy-.js +0 -1
- package/web-ui/build/static/nginx-D9toNO0V.js +0 -1
- package/web-ui/build/static/nim-BFN2inD1.js +0 -1
- package/web-ui/build/static/nim-do_UhCvy.js +0 -1
- package/web-ui/build/static/nix-D6RLwwOZ.js +0 -1
- package/web-ui/build/static/nix-djoKaPeE.js +0 -1
- package/web-ui/build/static/node-repl-DDbffQSR.js +0 -1
- package/web-ui/build/static/nsis-BiO6b68i.js +0 -1
- package/web-ui/build/static/nsis-CHzeu7js.js +0 -1
- package/web-ui/build/static/objectivec-B7vXzYuT.js +0 -1
- package/web-ui/build/static/objectivec-BLn212SY.js +0 -1
- package/web-ui/build/static/ocaml-BvpR0Yig.js +0 -1
- package/web-ui/build/static/ocaml-DWZF00Ti.js +0 -1
- package/web-ui/build/static/opencl-C2K2Ctu5.js +0 -1
- package/web-ui/build/static/openqasm-Cbtnnn3m.js +0 -1
- package/web-ui/build/static/openscad-CEPC0-yW.js +0 -1
- package/web-ui/build/static/oxygene-KfcdTXi0.js +0 -1
- package/web-ui/build/static/oz-B-azwNjQ.js +0 -1
- package/web-ui/build/static/parigp-IWtYGphS.js +0 -1
- package/web-ui/build/static/parser-CUCdnJ6l.js +0 -1
- package/web-ui/build/static/parser3--a7jm4Uq.js +0 -1
- package/web-ui/build/static/pascal-BbezKExl.js +0 -1
- package/web-ui/build/static/pascaligo-Bd8IN8hq.js +0 -1
- package/web-ui/build/static/pcaxis-CfT0dd7B.js +0 -1
- package/web-ui/build/static/peoplecode-Dq29i2LW.js +0 -1
- package/web-ui/build/static/perl-BZLc5sMP.js +0 -1
- package/web-ui/build/static/perl-JJmLLJne.js +0 -1
- package/web-ui/build/static/pf-seOENy0q.js +0 -1
- package/web-ui/build/static/pgsql-BtkzXwKY.js +0 -1
- package/web-ui/build/static/php-8b9a1w98.js +0 -1
- package/web-ui/build/static/php-extras-5D00a1Fm.js +0 -1
- package/web-ui/build/static/php-imFv4WXA.js +0 -1
- package/web-ui/build/static/php-template-CI-0RdMu.js +0 -1
- package/web-ui/build/static/phpdoc-DdcPBfc-.js +0 -1
- package/web-ui/build/static/plaintext-Ca1WAvT6.js +0 -1
- package/web-ui/build/static/plsql-CZV7QAnN.js +0 -1
- package/web-ui/build/static/pony-DiomUkGt.js +0 -1
- package/web-ui/build/static/powerquery-CKXX2_O_.js +0 -1
- package/web-ui/build/static/powershell-2Ctsosr0.js +0 -1
- package/web-ui/build/static/powershell-DVPkgaB6.js +0 -1
- package/web-ui/build/static/processing-BAuxATGX.js +0 -1
- package/web-ui/build/static/processing-DBzyjRsf.js +0 -1
- package/web-ui/build/static/profile-Cq2gkRUb.js +0 -1
- package/web-ui/build/static/prolog-ByKO_5p_.js +0 -1
- package/web-ui/build/static/prolog-CDCLze6j.js +0 -1
- package/web-ui/build/static/promql-BYOPu10L.js +0 -1
- package/web-ui/build/static/properties-kP8T8mqV.js +0 -1
- package/web-ui/build/static/properties-zdANIr61.js +0 -1
- package/web-ui/build/static/protobuf-DhAYlNOg.js +0 -1
- package/web-ui/build/static/protobuf-a1lLQN1f.js +0 -1
- package/web-ui/build/static/psl-DpP1u6wu.js +0 -1
- package/web-ui/build/static/pug-BobY0hsa.js +0 -1
- package/web-ui/build/static/puppet-CDimLnep.js +0 -1
- package/web-ui/build/static/puppet-D7DLS3gG.js +0 -1
- package/web-ui/build/static/pure-4QGsilHw.js +0 -1
- package/web-ui/build/static/purebasic-D0wI4z6w.js +0 -1
- package/web-ui/build/static/purebasic-Du_RxI7h.js +0 -1
- package/web-ui/build/static/purescript-CM92Fn9c.js +0 -1
- package/web-ui/build/static/python-Bvcn81x2.js +0 -1
- package/web-ui/build/static/python-CkfwrdRF.js +0 -1
- package/web-ui/build/static/python-repl-C48-EfyF.js +0 -1
- package/web-ui/build/static/q-B2-zP3za.js +0 -1
- package/web-ui/build/static/q-KuKa9s_e.js +0 -1
- package/web-ui/build/static/qml-D8j38-Sx.js +0 -1
- package/web-ui/build/static/qml-DTP6fbZN.js +0 -1
- package/web-ui/build/static/qore-DY-n97IK.js +0 -1
- package/web-ui/build/static/qsharp-Mn8hUKww.js +0 -1
- package/web-ui/build/static/r-BBPYkuMA.js +0 -1
- package/web-ui/build/static/r-CheuVCRq.js +0 -1
- package/web-ui/build/static/racket-2UxWXIqI.js +0 -1
- package/web-ui/build/static/reason-CudKWaht.js +0 -1
- package/web-ui/build/static/reasonml-BDZgwPxq.js +0 -1
- package/web-ui/build/static/regex-DpKrn61Z.js +0 -1
- package/web-ui/build/static/rego-CS2iMzor.js +0 -1
- package/web-ui/build/static/renpy-0CbyBFae.js +0 -1
- package/web-ui/build/static/rest-Ckpz2bGS.js +0 -1
- package/web-ui/build/static/rib-g77eioCq.js +0 -1
- package/web-ui/build/static/rip-L-KlpyJn.js +0 -1
- package/web-ui/build/static/roboconf-BkNeb0Yn.js +0 -1
- package/web-ui/build/static/roboconf-CE-yfGxs.js +0 -1
- package/web-ui/build/static/robotframework-ZhLv32cH.js +0 -1
- package/web-ui/build/static/routeros-C_1I4hFK.js +0 -1
- package/web-ui/build/static/rsl-CxEYmrJa.js +0 -1
- package/web-ui/build/static/ruby-Cgxmv3hM.js +0 -1
- package/web-ui/build/static/ruby-Cs4qnUzE.js +0 -1
- package/web-ui/build/static/ruleslanguage-DPK5B1Dg.js +0 -1
- package/web-ui/build/static/rust-BbVN6hMu.js +0 -1
- package/web-ui/build/static/rust-C6MrX2UK.js +0 -1
- package/web-ui/build/static/sas-CGov9per.js +0 -1
- package/web-ui/build/static/sas-Cp88q4DD.js +0 -1
- package/web-ui/build/static/sass-COOJqQer.js +0 -1
- package/web-ui/build/static/scala-BvOmMtdv.js +0 -1
- package/web-ui/build/static/scala-D5gnz3xs.js +0 -1
- package/web-ui/build/static/scheme-CNBfxsvv.js +0 -1
- package/web-ui/build/static/scheme-DiKuURfA.js +0 -1
- package/web-ui/build/static/scilab-vGKouaTh.js +0 -1
- package/web-ui/build/static/scss-B4PKgroe.js +0 -1
- package/web-ui/build/static/scss-BvRxfJ1U.js +0 -1
- package/web-ui/build/static/shell-B5TooOs0.js +0 -1
- package/web-ui/build/static/shell-session-TNT_ahRW.js +0 -1
- package/web-ui/build/static/smali-CiIXEKzG.js +0 -1
- package/web-ui/build/static/smali-EGdSXgM9.js +0 -1
- package/web-ui/build/static/smalltalk-DVAXFBVS.js +0 -1
- package/web-ui/build/static/smalltalk-Dfy8hlRv.js +0 -1
- package/web-ui/build/static/smarty-Rc2y-rm6.js +0 -1
- package/web-ui/build/static/sml-BoYe_d8x.js +0 -1
- package/web-ui/build/static/sml-CaIv1GsI.js +0 -1
- package/web-ui/build/static/solidity-Dem-6tsD.js +0 -1
- package/web-ui/build/static/solution-file-DfDjJASp.js +0 -1
- package/web-ui/build/static/soy-CkrJH5eW.js +0 -1
- package/web-ui/build/static/sparql-Dvg1P5oN.js +0 -1
- package/web-ui/build/static/splunk-spl-rB2pJQdl.js +0 -1
- package/web-ui/build/static/sqf-Cj_KV-kC.js +0 -1
- package/web-ui/build/static/sqf-DA_tj5Fb.js +0 -1
- package/web-ui/build/static/sql-CYDE0gzH.js +0 -1
- package/web-ui/build/static/sql-D8byAq-B.js +0 -1
- package/web-ui/build/static/sql_more-bMORpicj.js +0 -1
- package/web-ui/build/static/squirrel-rgwbGN0q.js +0 -1
- package/web-ui/build/static/stan-C-OYiHTu.js +0 -1
- package/web-ui/build/static/stan-CT8cMsn7.js +0 -1
- package/web-ui/build/static/stata-BJwZeN-z.js +0 -1
- package/web-ui/build/static/step21-WP26kxkW.js +0 -1
- package/web-ui/build/static/stylus-Cw9up-Iv.js +0 -1
- package/web-ui/build/static/stylus-CyFEQpH2.js +0 -1
- package/web-ui/build/static/subunit-B2XhtaLx.js +0 -1
- package/web-ui/build/static/swift-Bpyyuvtg.js +0 -1
- package/web-ui/build/static/swift-D-jiKNlA.js +0 -1
- package/web-ui/build/static/systemd-DE3AeWrd.js +0 -1
- package/web-ui/build/static/t4-cs-BSG7rkB_.js +0 -1
- package/web-ui/build/static/t4-templating-Cy7LuqAv.js +0 -1
- package/web-ui/build/static/t4-vb-ZLfMjXrh.js +0 -1
- package/web-ui/build/static/taggerscript-q2zFfkel.js +0 -1
- package/web-ui/build/static/tap-CzjhWyhf.js +0 -1
- package/web-ui/build/static/tap-ttXfPums.js +0 -1
- package/web-ui/build/static/tcl-6ta1XDva.js +0 -1
- package/web-ui/build/static/tcl-Cvx4AN_Q.js +0 -1
- package/web-ui/build/static/textile-zWm4gRbJ.js +0 -1
- package/web-ui/build/static/thrift-Crj4hRsm.js +0 -1
- package/web-ui/build/static/toml-hVfLOJr-.js +0 -1
- package/web-ui/build/static/tp-D5aJh4yF.js +0 -1
- package/web-ui/build/static/tremor-B9gWC4v1.js +0 -1
- package/web-ui/build/static/tsx-DtNWBAJO.js +0 -1
- package/web-ui/build/static/tt2-eH1L7Bpm.js +0 -1
- package/web-ui/build/static/turtle-BYCk4r6f.js +0 -1
- package/web-ui/build/static/twig-BQ-dq4no.js +0 -1
- package/web-ui/build/static/twig-n3AiXKyV.js +0 -1
- package/web-ui/build/static/typescript-CPQ0vD90.js +0 -1
- package/web-ui/build/static/typescript-juxiNWRf.js +0 -1
- package/web-ui/build/static/typoscript-C5h9SqFN.js +0 -1
- package/web-ui/build/static/unrealscript-9ht7jiai.js +0 -1
- package/web-ui/build/static/uorazor-36B6okgA.js +0 -1
- package/web-ui/build/static/uri-DEwrtmz_.js +0 -1
- package/web-ui/build/static/v-CvhXAFWo.js +0 -1
- package/web-ui/build/static/vala-CU_jVQ3c.js +0 -1
- package/web-ui/build/static/vala-H_yoFBZf.js +0 -1
- package/web-ui/build/static/vbnet-BNI0Gy5q.js +0 -1
- package/web-ui/build/static/vbnet-D-4O1Hpc.js +0 -1
- package/web-ui/build/static/vbscript-1zyalaSG.js +0 -1
- package/web-ui/build/static/vbscript-html-ea5_TYi7.js +0 -1
- package/web-ui/build/static/velocity-BlEdS1Un.js +0 -1
- package/web-ui/build/static/verilog-BGSIJuDJ.js +0 -1
- package/web-ui/build/static/verilog-C1vff5Z3.js +0 -1
- package/web-ui/build/static/vhdl-5H4C8O-_.js +0 -1
- package/web-ui/build/static/vhdl-DHiBEhsE.js +0 -1
- package/web-ui/build/static/vim-Bd1MNlxj.js +0 -1
- package/web-ui/build/static/vim-DBP2ZsgQ.js +0 -1
- package/web-ui/build/static/visual-basic-DI34-9vJ.js +0 -1
- package/web-ui/build/static/warpscript-DBQ-KbS6.js +0 -1
- package/web-ui/build/static/wasm-CY5W57_Y.js +0 -1
- package/web-ui/build/static/web-idl-CF9xaLpZ.js +0 -1
- package/web-ui/build/static/wiki-xfSWwdeC.js +0 -1
- package/web-ui/build/static/wolfram-DZ6ghwRH.js +0 -1
- package/web-ui/build/static/wren-qULNE4ZV.js +0 -1
- package/web-ui/build/static/x86asm-DD2-d5-3.js +0 -1
- package/web-ui/build/static/xeora-CMja58lL.js +0 -1
- package/web-ui/build/static/xl-DKZpXGv8.js +0 -1
- package/web-ui/build/static/xml-Xf5ErmV_.js +0 -1
- package/web-ui/build/static/xml-doc-Bl_99SZE.js +0 -1
- package/web-ui/build/static/xojo-PwcPgmIF.js +0 -1
- package/web-ui/build/static/xquery-BshbqrZe.js +0 -1
- package/web-ui/build/static/xquery-DY2-GgvB.js +0 -1
- package/web-ui/build/static/yaml-9mp-mYjQ.js +0 -1
- package/web-ui/build/static/yaml-BnH4Y8-L.js +0 -1
- package/web-ui/build/static/yang-CRK7RS7V.js +0 -1
- package/web-ui/build/static/zephir-B560hCdS.js +0 -1
- package/web-ui/build/static/zig-CBG6H3iO.js +0 -1
|
@@ -421,6 +421,38 @@ SECURITY:
|
|
|
421
421
|
|
|
422
422
|
const { projectDir, agentId, directoryAccess } = context;
|
|
423
423
|
|
|
424
|
+
// Per-agent config overrides (agent.toolConfig.filesystem) merged
|
|
425
|
+
// with this tool's global defaults. Applied per-action at the top of
|
|
426
|
+
// the execute loop — every action that touches a file path is
|
|
427
|
+
// gated against the effective extension policy, and write/append
|
|
428
|
+
// payloads are size-gated against the effective maxFileSize.
|
|
429
|
+
const effectiveFs = this.getEffectiveConfig(context, {
|
|
430
|
+
allowedExtensions: this.allowedExtensions,
|
|
431
|
+
blockedExtensions: this.blockedExtensions,
|
|
432
|
+
maxFileSize: this.maxFileSize,
|
|
433
|
+
});
|
|
434
|
+
const effectiveBlockedExt = Array.isArray(effectiveFs.blockedExtensions)
|
|
435
|
+
? effectiveFs.blockedExtensions.map(e => String(e).toLowerCase())
|
|
436
|
+
: [];
|
|
437
|
+
const effectiveAllowedExt = (Array.isArray(effectiveFs.allowedExtensions) && effectiveFs.allowedExtensions.length > 0)
|
|
438
|
+
? effectiveFs.allowedExtensions.map(e => String(e).toLowerCase())
|
|
439
|
+
: null;
|
|
440
|
+
const effectiveMaxFileSize = (typeof effectiveFs.maxFileSize === 'number' && effectiveFs.maxFileSize > 0)
|
|
441
|
+
? effectiveFs.maxFileSize
|
|
442
|
+
: this.maxFileSize;
|
|
443
|
+
|
|
444
|
+
const _checkExt = (filePath) => {
|
|
445
|
+
if (!filePath) return null;
|
|
446
|
+
const ext = (filePath.match(/\.[^./\\]+$/)?.[0] || '').toLowerCase();
|
|
447
|
+
if (effectiveBlockedExt.includes(ext)) {
|
|
448
|
+
return `File extension ${ext || '(none)'} is blocked by agent policy: ${filePath}`;
|
|
449
|
+
}
|
|
450
|
+
if (effectiveAllowedExt && !effectiveAllowedExt.includes(ext)) {
|
|
451
|
+
return `File extension ${ext || '(none)'} is not in the agent's allowed list: ${filePath}`;
|
|
452
|
+
}
|
|
453
|
+
return null;
|
|
454
|
+
};
|
|
455
|
+
|
|
424
456
|
// Get directory access configuration from agent or create default
|
|
425
457
|
const accessConfig = directoryAccess ||
|
|
426
458
|
this.directoryAccessManager.createDirectoryAccess({
|
|
@@ -446,13 +478,47 @@ SECURITY:
|
|
|
446
478
|
|
|
447
479
|
for (const action of actions) {
|
|
448
480
|
try {
|
|
481
|
+
// Per-agent extension policy gate — runs BEFORE the action so
|
|
482
|
+
// disallowed file types never reach the filesystem layer. Terminal
|
|
483
|
+
// and web tools use the same short-circuit pattern.
|
|
484
|
+
const pathsToCheck = [action.filePath, action.outputPath].filter(Boolean);
|
|
485
|
+
for (const p of pathsToCheck) {
|
|
486
|
+
const err = _checkExt(p);
|
|
487
|
+
if (err) {
|
|
488
|
+
results.push({ success: false, action: action.type, error: err });
|
|
489
|
+
throw new Error('__skip');
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
// Per-agent maxFileSize gate for write/append — fires ONLY when
|
|
493
|
+
// the agent explicitly overrides maxFileSize via toolConfig. When
|
|
494
|
+
// the agent has no override, the existing `this.maxFileSize`
|
|
495
|
+
// check downstream handles it with its original error message,
|
|
496
|
+
// preserving backward compatibility. Read-side and stat-based
|
|
497
|
+
// size checks still use `this.maxFileSize` at deeper call sites.
|
|
498
|
+
const perAgentMaxFileSize = (typeof context?.toolConfig?.maxFileSize === 'number' && context.toolConfig.maxFileSize > 0)
|
|
499
|
+
? context.toolConfig.maxFileSize
|
|
500
|
+
: null;
|
|
501
|
+
if (perAgentMaxFileSize != null
|
|
502
|
+
&& (action.type === 'write' || action.type === 'append')
|
|
503
|
+
&& typeof action.content === 'string') {
|
|
504
|
+
const payloadBytes = Buffer.byteLength(action.content, 'utf8');
|
|
505
|
+
if (payloadBytes > perAgentMaxFileSize) {
|
|
506
|
+
results.push({
|
|
507
|
+
success: false,
|
|
508
|
+
action: action.type,
|
|
509
|
+
error: `Content too large: ${payloadBytes} bytes exceeds per-agent maxFileSize (${perAgentMaxFileSize})`,
|
|
510
|
+
});
|
|
511
|
+
throw new Error('__skip');
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
449
515
|
let result;
|
|
450
|
-
|
|
516
|
+
|
|
451
517
|
switch (action.type) {
|
|
452
518
|
case 'read':
|
|
453
519
|
result = await this.readFile(action.filePath, accessConfig, action.encoding);
|
|
454
520
|
break;
|
|
455
|
-
|
|
521
|
+
|
|
456
522
|
case 'write':
|
|
457
523
|
result = await this.writeFile(action.outputPath, action.content, accessConfig, {
|
|
458
524
|
encoding: action.encoding,
|
|
@@ -501,6 +567,14 @@ SECURITY:
|
|
|
501
567
|
this.addToHistory(action, result, context.agentId);
|
|
502
568
|
|
|
503
569
|
} catch (error) {
|
|
570
|
+
// Per-agent policy gate above uses "__skip" to signal that it
|
|
571
|
+
// already pushed a useful error onto results — don't double-log
|
|
572
|
+
// or double-push.
|
|
573
|
+
if (error.message === '__skip') {
|
|
574
|
+
this.addToHistory(action, results[results.length - 1], context.agentId);
|
|
575
|
+
continue;
|
|
576
|
+
}
|
|
577
|
+
|
|
504
578
|
// Log detailed error for debugging
|
|
505
579
|
console.error(`[FileSystemTool] Action '${action.type}' failed:`, {
|
|
506
580
|
action: action.type,
|
package/src/tools/memoryTool.js
CHANGED
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
|
|
20
20
|
import { BaseTool } from './baseTool.js';
|
|
21
21
|
import { getMemoryService } from '../services/memoryService.js';
|
|
22
|
+
import {
|
|
23
|
+
overview as convOverview,
|
|
24
|
+
range as convRange,
|
|
25
|
+
search as convSearch,
|
|
26
|
+
around as convAround,
|
|
27
|
+
byTool as convByTool,
|
|
28
|
+
read as convRead,
|
|
29
|
+
} from '../services/conversationQuery.js';
|
|
22
30
|
|
|
23
31
|
class MemoryTool extends BaseTool {
|
|
24
32
|
constructor(config = {}, logger = null) {
|
|
@@ -141,6 +149,124 @@ Level options:
|
|
|
141
149
|
}
|
|
142
150
|
\`\`\`
|
|
143
151
|
|
|
152
|
+
8. REMINISCE - Browse your own pre-compaction conversation archive (READ-ONLY)
|
|
153
|
+
|
|
154
|
+
This is separate from the other actions. It does NOT read memory entries —
|
|
155
|
+
it reads your full past conversation as stored on disk. Use it when you
|
|
156
|
+
recall a detail from earlier in the session (a user instruction, a tool
|
|
157
|
+
output, an earlier decision) that's no longer in your recent context
|
|
158
|
+
because compaction removed it. The archive is durable: every message you
|
|
159
|
+
and the user exchanged is still there, even if you can't see it now.
|
|
160
|
+
|
|
161
|
+
The stable pointer is \`messageId\`. You can bookmark one result (e.g. from
|
|
162
|
+
\`search\`) and use it later in \`around\` to pull the surrounding context.
|
|
163
|
+
messageIds never change, even as the conversation grows or compaction runs.
|
|
164
|
+
|
|
165
|
+
Sub-modes:
|
|
166
|
+
|
|
167
|
+
8a. overview — "where have I been"
|
|
168
|
+
\`\`\`json
|
|
169
|
+
{ "toolId": "memory", "action": "reminisce", "mode": "overview" }
|
|
170
|
+
\`\`\`
|
|
171
|
+
Returns: totalMessages, firstAt, lastAt, totalApproxTokens, and a sparse
|
|
172
|
+
timeline of ~20 evenly-spaced markers { at, role, messageId, snippet }.
|
|
173
|
+
|
|
174
|
+
8b. range — slice by index or timestamp
|
|
175
|
+
\`\`\`json
|
|
176
|
+
{
|
|
177
|
+
"toolId": "memory", "action": "reminisce", "mode": "range",
|
|
178
|
+
"offset": 0, "limit": 20,
|
|
179
|
+
"from": "2026-04-18T00:00:00Z", "to": "2026-04-18T12:00:00Z"
|
|
180
|
+
}
|
|
181
|
+
\`\`\`
|
|
182
|
+
Returns: { messages, total, offset, limit, hasMore }.
|
|
183
|
+
|
|
184
|
+
8c. search — substring across content + tool-call arguments
|
|
185
|
+
\`\`\`json
|
|
186
|
+
{
|
|
187
|
+
"toolId": "memory", "action": "reminisce", "mode": "search",
|
|
188
|
+
"query": "database schema", "role": "user", "maxResults": 10
|
|
189
|
+
}
|
|
190
|
+
\`\`\`
|
|
191
|
+
Returns: { matches [{ messageId, role, at, source, snippet, highlightRanges }],
|
|
192
|
+
total, hasMore, cursor }.
|
|
193
|
+
Pass \`cursor\` back verbatim to get the next page.
|
|
194
|
+
Note: search does NOT match tool results/outputs — only content and
|
|
195
|
+
tool-call arguments.
|
|
196
|
+
|
|
197
|
+
8d. around — N MESSAGES before + N MESSAGES after a bookmarked messageId
|
|
198
|
+
\`\`\`json
|
|
199
|
+
{
|
|
200
|
+
"toolId": "memory", "action": "reminisce", "mode": "around",
|
|
201
|
+
"messageId": "msg_abc", "before": 3, "after": 3
|
|
202
|
+
}
|
|
203
|
+
\`\`\`
|
|
204
|
+
\`before\` and \`after\` count MESSAGES (not lines, not characters).
|
|
205
|
+
Range: 0–20 each side. For a larger window, paginate with a new \`around\`
|
|
206
|
+
call anchored at the messageId of the last-returned entry.
|
|
207
|
+
Returns: { messages, center, targetFound }.
|
|
208
|
+
|
|
209
|
+
8e. byTool — list your past tool calls (optionally filtered)
|
|
210
|
+
\`\`\`json
|
|
211
|
+
{
|
|
212
|
+
"toolId": "memory", "action": "reminisce", "mode": "byTool",
|
|
213
|
+
"toolId": "terminal", "limit": 20
|
|
214
|
+
}
|
|
215
|
+
\`\`\`
|
|
216
|
+
Returns: { toolCalls [{ messageId, at, toolId, status, inputSnippet }],
|
|
217
|
+
total, hasMore, cursor }.
|
|
218
|
+
|
|
219
|
+
8f. read — open ONE message at sub-message granularity (lines OR chars)
|
|
220
|
+
\`\`\`json
|
|
221
|
+
// Read whole message (byte-capped at ~32 KB)
|
|
222
|
+
{ "toolId": "memory", "action": "reminisce", "mode": "read",
|
|
223
|
+
"messageId": "msg_abc" }
|
|
224
|
+
|
|
225
|
+
// Read lines 100–150 of a long message (stack trace, paste, etc.)
|
|
226
|
+
{ "toolId": "memory", "action": "reminisce", "mode": "read",
|
|
227
|
+
"messageId": "msg_abc", "lineFrom": 100, "lineTo": 150 }
|
|
228
|
+
|
|
229
|
+
// Read characters 5000–7000 (half-open range)
|
|
230
|
+
{ "toolId": "memory", "action": "reminisce", "mode": "read",
|
|
231
|
+
"messageId": "msg_abc", "contentFrom": 5000, "contentTo": 7000 }
|
|
232
|
+
\`\`\`
|
|
233
|
+
Use this when \`search\` found a hit inside a huge message and the snippet
|
|
234
|
+
isn't enough, OR when you want to page through a single long message
|
|
235
|
+
without pulling the whole thing into context.
|
|
236
|
+
|
|
237
|
+
Window selectors are mutually exclusive — if you pass both, LINES win.
|
|
238
|
+
Omit both selectors to read the whole message. Caps: 500 lines / 16 000
|
|
239
|
+
chars per call. If the message is larger, the response's
|
|
240
|
+
\`contentWindow.hasMoreAfter\` is true — call \`read\` again with the next
|
|
241
|
+
\`lineFrom\` or \`contentFrom\` to continue.
|
|
242
|
+
|
|
243
|
+
Returns:
|
|
244
|
+
\`\`\`
|
|
245
|
+
{
|
|
246
|
+
message: {
|
|
247
|
+
messageId, role, at, tokenCount, hasToolCalls, model,
|
|
248
|
+
content: "<requested slice>",
|
|
249
|
+
contentWindow: {
|
|
250
|
+
kind: "lines" | "chars" | "full",
|
|
251
|
+
lineFrom?, lineTo?, totalLines?, // kind="lines"
|
|
252
|
+
contentFrom?, contentTo?, // kind="chars"
|
|
253
|
+
totalContentLength,
|
|
254
|
+
hasMoreBefore, hasMoreAfter,
|
|
255
|
+
truncatedAtBytes // byte cap kicked in mid-window
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
targetFound, center
|
|
259
|
+
}
|
|
260
|
+
\`\`\`
|
|
261
|
+
|
|
262
|
+
All reminisce responses are byte-capped (~32 KB) to protect your context.
|
|
263
|
+
When a response is capped it includes \`truncatedByBytes > 0\`; fetch fewer
|
|
264
|
+
or narrower results.
|
|
265
|
+
|
|
266
|
+
Add \`"detail": "full"\` on range/around to receive full untruncated content
|
|
267
|
+
and the raw toolExecutions / contextReferences — use sparingly; it eats
|
|
268
|
+
tokens fast.
|
|
269
|
+
|
|
144
270
|
BEST PRACTICES:
|
|
145
271
|
- Use memories for important facts, preferences, or decisions that should persist
|
|
146
272
|
- Keep titles concise and searchable
|
|
@@ -148,6 +274,11 @@ BEST PRACTICES:
|
|
|
148
274
|
- Set expiration dates for time-sensitive information
|
|
149
275
|
- Use LIST with "titles" first, then READ specific memories as needed
|
|
150
276
|
- Avoid storing sensitive data (API keys, passwords) in memories
|
|
277
|
+
- For reminisce: start with \`overview\`, then \`search\` or \`range\` to find
|
|
278
|
+
the right messageId, then \`around\` for surrounding messages or \`read\`
|
|
279
|
+
to open a specific message (whole, by line range, or by char range).
|
|
280
|
+
Bookmark messageIds in memory entries via \`[reminisce:msg_xxx]\`
|
|
281
|
+
references for a durable pointer that survives compaction.
|
|
151
282
|
`;
|
|
152
283
|
}
|
|
153
284
|
|
|
@@ -218,7 +349,7 @@ BEST PRACTICES:
|
|
|
218
349
|
*/
|
|
219
350
|
customValidateParameters(params) {
|
|
220
351
|
const errors = [];
|
|
221
|
-
const validActions = ['add', 'update', 'delete', 'list', 'read', 'search', 'stats'];
|
|
352
|
+
const validActions = ['add', 'update', 'delete', 'list', 'read', 'search', 'stats', 'reminisce'];
|
|
222
353
|
|
|
223
354
|
if (!params.action) {
|
|
224
355
|
errors.push('action is required');
|
|
@@ -297,6 +428,8 @@ BEST PRACTICES:
|
|
|
297
428
|
return await this._executeSearch(memoryService, agentId, params);
|
|
298
429
|
case 'stats':
|
|
299
430
|
return await this._executeStats(memoryService, agentId);
|
|
431
|
+
case 'reminisce':
|
|
432
|
+
return await this._executeReminisce(agentId, params, context);
|
|
300
433
|
default:
|
|
301
434
|
throw new Error(`Unknown action: ${action}`);
|
|
302
435
|
}
|
|
@@ -468,12 +601,110 @@ BEST PRACTICES:
|
|
|
468
601
|
};
|
|
469
602
|
}
|
|
470
603
|
|
|
604
|
+
/**
|
|
605
|
+
* Execute REMINISCE action — read-only query over the agent's
|
|
606
|
+
* pre-compaction conversation archive (conversations.full.messages).
|
|
607
|
+
*
|
|
608
|
+
* Unlike the other memory actions, reminisce does NOT touch memoryService.
|
|
609
|
+
* It's a lens over a different dataset: the conversation history that
|
|
610
|
+
* stateManager preserves durably on disk regardless of compaction. The
|
|
611
|
+
* agent uses it to pull specific spans of past context back into the
|
|
612
|
+
* current turn when they've fallen out of the active context window.
|
|
613
|
+
*
|
|
614
|
+
* Pointer contract: `messageId` values returned here are stable across
|
|
615
|
+
* session growth and compaction — an agent can bookmark one now and
|
|
616
|
+
* resolve it in a much later turn (see services/conversationQuery.js).
|
|
617
|
+
*
|
|
618
|
+
* @param {string} agentId
|
|
619
|
+
* @param {Object} params
|
|
620
|
+
* @param {'overview'|'range'|'search'|'around'|'byTool'} params.mode
|
|
621
|
+
* @param {Object} context Must carry `agentPool` to fetch the agent's
|
|
622
|
+
* conversation. If missing, returns a clean
|
|
623
|
+
* failure (not a crash).
|
|
624
|
+
*/
|
|
625
|
+
async _executeReminisce(agentId, params, context) {
|
|
626
|
+
const mode = typeof params.mode === 'string' ? params.mode : '';
|
|
627
|
+
const validModes = ['overview', 'range', 'search', 'around', 'byTool', 'read'];
|
|
628
|
+
if (!validModes.includes(mode)) {
|
|
629
|
+
return {
|
|
630
|
+
success: false,
|
|
631
|
+
action: 'reminisce',
|
|
632
|
+
error: `mode must be one of: ${validModes.join(', ')}`,
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
const agentPool = context?.agentPool;
|
|
637
|
+
if (!agentPool?.getAgent) {
|
|
638
|
+
return {
|
|
639
|
+
success: false,
|
|
640
|
+
action: 'reminisce',
|
|
641
|
+
error: 'agentPool is not available on the tool context; cannot read conversation archive',
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
const agent = await agentPool.getAgent(agentId);
|
|
646
|
+
if (!agent) {
|
|
647
|
+
return {
|
|
648
|
+
success: false,
|
|
649
|
+
action: 'reminisce',
|
|
650
|
+
error: `Agent not found: ${agentId}`,
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
// Always read from conversations.full — the durable archive that
|
|
655
|
+
// survives every compaction pass. Never from per-model views.
|
|
656
|
+
const messages = agent?.conversations?.full?.messages;
|
|
657
|
+
if (!Array.isArray(messages)) {
|
|
658
|
+
return {
|
|
659
|
+
success: true,
|
|
660
|
+
action: 'reminisce',
|
|
661
|
+
mode,
|
|
662
|
+
result: { empty: true, message: 'No conversation archive found for this agent.' },
|
|
663
|
+
};
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
// Pass only the params relevant to each mode — conversationQuery's
|
|
667
|
+
// per-mode validators clamp/default the rest.
|
|
668
|
+
const modeParams = {
|
|
669
|
+
from: params.from, to: params.to,
|
|
670
|
+
offset: params.offset, limit: params.limit,
|
|
671
|
+
query: params.query, role: params.role,
|
|
672
|
+
maxResults: params.maxResults, cursor: params.cursor,
|
|
673
|
+
messageId: params.messageId, before: params.before, after: params.after,
|
|
674
|
+
toolId: params.toolId, detail: params.detail,
|
|
675
|
+
// read-only window selectors (sub-message granularity)
|
|
676
|
+
lineFrom: params.lineFrom, lineTo: params.lineTo,
|
|
677
|
+
contentFrom: params.contentFrom, contentTo: params.contentTo,
|
|
678
|
+
// Opt-in reasoning-content inclusion (default off — chain-of-thought
|
|
679
|
+
// text can be very long; agents ask for it only when they actually
|
|
680
|
+
// want to inspect what the model was thinking).
|
|
681
|
+
includeReasoning: !!params.includeReasoning,
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
let result;
|
|
685
|
+
switch (mode) {
|
|
686
|
+
case 'overview': result = convOverview(messages); break;
|
|
687
|
+
case 'range': result = convRange(messages, modeParams); break;
|
|
688
|
+
case 'search': result = convSearch(messages, modeParams); break;
|
|
689
|
+
case 'around': result = convAround(messages, modeParams); break;
|
|
690
|
+
case 'byTool': result = convByTool(messages, modeParams); break;
|
|
691
|
+
case 'read': result = convRead(messages, modeParams); break;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
return {
|
|
695
|
+
success: true,
|
|
696
|
+
action: 'reminisce',
|
|
697
|
+
mode,
|
|
698
|
+
result,
|
|
699
|
+
};
|
|
700
|
+
}
|
|
701
|
+
|
|
471
702
|
/**
|
|
472
703
|
* Get supported actions
|
|
473
704
|
* @returns {Array<string>}
|
|
474
705
|
*/
|
|
475
706
|
getSupportedActions() {
|
|
476
|
-
return ['add', 'update', 'delete', 'list', 'read', 'search', 'stats'];
|
|
707
|
+
return ['add', 'update', 'delete', 'list', 'read', 'search', 'stats', 'reminisce'];
|
|
477
708
|
}
|
|
478
709
|
|
|
479
710
|
/**
|
|
@@ -486,7 +717,7 @@ BEST PRACTICES:
|
|
|
486
717
|
properties: {
|
|
487
718
|
action: {
|
|
488
719
|
type: 'string',
|
|
489
|
-
enum: ['add', 'update', 'delete', 'list', 'read', 'search', 'stats'],
|
|
720
|
+
enum: ['add', 'update', 'delete', 'list', 'read', 'search', 'stats', 'reminisce'],
|
|
490
721
|
description: 'Action to perform'
|
|
491
722
|
},
|
|
492
723
|
id: {
|
|
@@ -522,7 +753,42 @@ BEST PRACTICES:
|
|
|
522
753
|
},
|
|
523
754
|
query: {
|
|
524
755
|
type: 'string',
|
|
525
|
-
description: 'Search query (required for search)'
|
|
756
|
+
description: 'Search query (required for memory search AND reminisce search)'
|
|
757
|
+
},
|
|
758
|
+
|
|
759
|
+
// ── reminisce-specific parameters ────────────────────────────────
|
|
760
|
+
// Required when action="reminisce"; ignored otherwise.
|
|
761
|
+
mode: {
|
|
762
|
+
type: 'string',
|
|
763
|
+
enum: ['overview', 'range', 'search', 'around', 'byTool', 'read'],
|
|
764
|
+
description: 'Reminisce sub-mode (required for action="reminisce")'
|
|
765
|
+
},
|
|
766
|
+
messageId: {
|
|
767
|
+
type: 'string',
|
|
768
|
+
description: 'Stable conversation-archive pointer. Required for reminisce around/read.'
|
|
769
|
+
},
|
|
770
|
+
from: { type: 'string', description: 'ISO timestamp lower bound (reminisce range)' },
|
|
771
|
+
to: { type: 'string', description: 'ISO timestamp upper bound (reminisce range)' },
|
|
772
|
+
offset: { type: 'integer', description: 'Pagination offset (reminisce range)' },
|
|
773
|
+
limit: { type: 'integer', description: 'Max entries (reminisce range/byTool), 1–100' },
|
|
774
|
+
maxResults: { type: 'integer', description: 'Max search matches (reminisce search), 1–50' },
|
|
775
|
+
role: {
|
|
776
|
+
type: 'string',
|
|
777
|
+
enum: ['user', 'assistant', 'system'],
|
|
778
|
+
description: 'Role filter for reminisce search'
|
|
779
|
+
},
|
|
780
|
+
cursor: { type: 'string', description: 'Opaque pagination cursor (reminisce search/byTool) — pass verbatim from a previous response' },
|
|
781
|
+
toolId: { type: 'string', description: 'Filter by toolId (reminisce byTool)' },
|
|
782
|
+
before: { type: 'integer', description: 'Messages BEFORE the target (reminisce around), 0–20' },
|
|
783
|
+
after: { type: 'integer', description: 'Messages AFTER the target (reminisce around), 0–20' },
|
|
784
|
+
lineFrom: { type: 'integer', description: 'First line (reminisce read), 1-indexed inclusive' },
|
|
785
|
+
lineTo: { type: 'integer', description: 'Last line (reminisce read), 1-indexed inclusive; window ≤ 500 lines' },
|
|
786
|
+
contentFrom: { type: 'integer', description: 'Char offset start (reminisce read), 0-indexed inclusive. Ignored if lineFrom is set.' },
|
|
787
|
+
contentTo: { type: 'integer', description: 'Char offset end (reminisce read), 0-indexed exclusive; window ≤ 16000 chars' },
|
|
788
|
+
detail: {
|
|
789
|
+
type: 'string',
|
|
790
|
+
enum: ['default', 'full'],
|
|
791
|
+
description: 'Reminisce return shape: "default" (truncated/slim) or "full" (everything)'
|
|
526
792
|
}
|
|
527
793
|
},
|
|
528
794
|
required: ['action']
|
|
@@ -222,27 +222,82 @@ export const OPENAI_FUNCTION_SCHEMAS = [
|
|
|
222
222
|
},
|
|
223
223
|
},
|
|
224
224
|
// Memory — flat params (no actions array). Field names mirror the tool's
|
|
225
|
-
// validate/execute sites in src/tools/memoryTool.js
|
|
226
|
-
//
|
|
225
|
+
// validate/execute sites in src/tools/memoryTool.js.
|
|
226
|
+
//
|
|
227
|
+
// Memory-entry actions (user-authored notes):
|
|
227
228
|
// add: {action, title, content, description?}
|
|
228
229
|
// update: {action, id, title?, content?, description?}
|
|
229
230
|
// delete|read: {action, id}
|
|
230
231
|
// list: {action, level?}
|
|
231
232
|
// search: {action, query, level?}
|
|
233
|
+
// stats: {action}
|
|
234
|
+
//
|
|
235
|
+
// Conversation-archive action (read-only browse of the agent's own past
|
|
236
|
+
// conversation — survives compaction; see src/services/conversationQuery.js):
|
|
237
|
+
// reminisce: {action, mode, ...mode-specific params}
|
|
238
|
+
// overview — {mode}
|
|
239
|
+
// range — {mode, from?, to?, offset?, limit?, detail?}
|
|
240
|
+
// search — {mode, query, role?, maxResults?, cursor?, detail?}
|
|
241
|
+
// around — {mode, messageId, before?, after?, detail?}
|
|
242
|
+
// byTool — {mode, toolId?, limit?, cursor?}
|
|
243
|
+
// read — {mode, messageId, lineFrom?/lineTo? OR contentFrom?/contentTo?, detail?}
|
|
232
244
|
{
|
|
233
245
|
type: 'function',
|
|
234
246
|
name: 'memory',
|
|
235
|
-
description: 'Store and retrieve persistent memories across sessions.',
|
|
247
|
+
description: 'Store and retrieve persistent memories across sessions, and browse your own pre-compaction conversation archive via the `reminisce` action.',
|
|
236
248
|
parameters: {
|
|
237
249
|
type: 'object',
|
|
238
250
|
properties: {
|
|
239
|
-
action: { type: 'string', enum: ['add', 'update', 'delete', 'read', 'list', 'search'] },
|
|
240
|
-
id: { type: 'string', description: 'Memory id. Required for: update, delete, read.' },
|
|
251
|
+
action: { type: 'string', enum: ['add', 'update', 'delete', 'read', 'list', 'search', 'stats', 'reminisce'] },
|
|
252
|
+
id: { type: 'string', description: 'Memory id. Required for: update, delete, read (of memory entries).' },
|
|
241
253
|
title: { type: 'string', description: 'Short title. Required for: add. Optional for: update.' },
|
|
242
254
|
content: { type: 'string', description: 'Full memory content. Required for: add. Optional for: update.' },
|
|
243
255
|
description: { type: 'string', description: 'Short summary. Optional for: add, update.' },
|
|
244
|
-
query: { type: 'string', description: 'Search query. Required for
|
|
245
|
-
level: { type: 'string', enum: ['titles', 'descriptions', 'full'], description: 'Detail level for list/search output.' },
|
|
256
|
+
query: { type: 'string', description: 'Search query. Required for memory search AND reminisce search.' },
|
|
257
|
+
level: { type: 'string', enum: ['titles', 'descriptions', 'full'], description: 'Detail level for memory list/search output.' },
|
|
258
|
+
|
|
259
|
+
// ── reminisce-specific params ─────────────────────────────────────
|
|
260
|
+
mode: {
|
|
261
|
+
type: 'string',
|
|
262
|
+
enum: ['overview', 'range', 'search', 'around', 'byTool', 'read'],
|
|
263
|
+
description: 'Reminisce sub-mode. Required when action="reminisce".',
|
|
264
|
+
},
|
|
265
|
+
messageId: {
|
|
266
|
+
type: 'string',
|
|
267
|
+
description: 'Stable pointer into the conversation archive. Required for reminisce around/read. Get messageIds from overview/search/range/byTool results.',
|
|
268
|
+
},
|
|
269
|
+
// range / search / byTool paging
|
|
270
|
+
from: { type: 'string', description: 'ISO timestamp lower bound (reminisce range).' },
|
|
271
|
+
to: { type: 'string', description: 'ISO timestamp upper bound (reminisce range).' },
|
|
272
|
+
offset: { type: 'integer', description: 'Pagination offset (reminisce range).' },
|
|
273
|
+
limit: { type: 'integer', description: 'Max entries returned (reminisce range/byTool). 1–100.' },
|
|
274
|
+
maxResults: { type: 'integer', description: 'Max search matches returned (reminisce search). 1–50.' },
|
|
275
|
+
role: {
|
|
276
|
+
type: 'string',
|
|
277
|
+
enum: ['user', 'assistant', 'system'],
|
|
278
|
+
description: 'Filter by message role (reminisce search).',
|
|
279
|
+
},
|
|
280
|
+
cursor: { type: 'string', description: 'Opaque pagination cursor from a previous reminisce search/byTool response. Pass verbatim to continue.' },
|
|
281
|
+
toolId: { type: 'string', description: 'Filter by toolId (reminisce byTool).' },
|
|
282
|
+
// around — MESSAGES on each side of the target
|
|
283
|
+
before: {
|
|
284
|
+
type: 'integer',
|
|
285
|
+
description: 'Number of MESSAGES before the target to include (reminisce around). 0–20.',
|
|
286
|
+
},
|
|
287
|
+
after: {
|
|
288
|
+
type: 'integer',
|
|
289
|
+
description: 'Number of MESSAGES after the target to include (reminisce around). 0–20.',
|
|
290
|
+
},
|
|
291
|
+
// read — sub-message window, mutually exclusive (lines win if both)
|
|
292
|
+
lineFrom: { type: 'integer', description: 'First line to read, 1-indexed inclusive (reminisce read).' },
|
|
293
|
+
lineTo: { type: 'integer', description: 'Last line to read, 1-indexed inclusive (reminisce read). Window capped at 500 lines.' },
|
|
294
|
+
contentFrom: { type: 'integer', description: 'First character offset (reminisce read, 0-indexed inclusive). Ignored if lineFrom is set.' },
|
|
295
|
+
contentTo: { type: 'integer', description: 'Last character offset (reminisce read, 0-indexed exclusive). Window capped at 16000 chars.' },
|
|
296
|
+
detail: {
|
|
297
|
+
type: 'string',
|
|
298
|
+
enum: ['default', 'full'],
|
|
299
|
+
description: 'Return shape: "default" truncates content and omits toolExecutions; "full" returns everything (eats tokens fast).',
|
|
300
|
+
},
|
|
246
301
|
},
|
|
247
302
|
required: ['action'],
|
|
248
303
|
},
|
|
@@ -257,10 +257,27 @@ Complete a task:
|
|
|
257
257
|
{"toolId": "taskmanager", "actions": [{"type": "complete", "taskId": "task-123"}]}
|
|
258
258
|
\`\`\`
|
|
259
259
|
|
|
260
|
-
WORKFLOW
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
260
|
+
RECOMMENDED WORKFLOW (read this before your first call)
|
|
261
|
+
|
|
262
|
+
Phase 1 — Plan (ONE call, at the start):
|
|
263
|
+
\`sync\` with the full list of planned tasks. All start "pending".
|
|
264
|
+
Don't issue \`create\` one-by-one — that's many calls where one would do.
|
|
265
|
+
|
|
266
|
+
Phase 2 — Execute (per step, repeating):
|
|
267
|
+
a. \`update\` { taskId, status: "in_progress" } — pick up the next task
|
|
268
|
+
b. do the actual work using other tools
|
|
269
|
+
c. \`update\` { taskId, status: "completed" } — finish it, move to the next
|
|
270
|
+
(the scheduler enforces at most one task in_progress at a time)
|
|
271
|
+
|
|
272
|
+
Phase 3 — Refine (as you discover new work):
|
|
273
|
+
- \`create\` a single new task, OR
|
|
274
|
+
- \`sync\` again with the restated full list when the plan materially changes.
|
|
275
|
+
\`sync\` is safe to call repeatedly — it matches by title and preserves
|
|
276
|
+
existing status on unchanged tasks. Don't \`sync\` every turn, though —
|
|
277
|
+
prefer targeted \`update\`/\`create\` unless the plan itself shifted.
|
|
278
|
+
|
|
279
|
+
Phase 4 — Finish:
|
|
280
|
+
When every task is "completed", call the \`jobdone\` tool.
|
|
264
281
|
|
|
265
282
|
**MANDATORY**: Complete tasks when finished or you'll loop forever!
|
|
266
283
|
|
|
@@ -423,9 +423,49 @@ After each invocation you will get a tool-result embedded in the following user
|
|
|
423
423
|
async execute(params, context) {
|
|
424
424
|
const { actions, timeout: customTimeout, async: forceAsync } = params;
|
|
425
425
|
const { agentId, projectDir, directoryAccess } = context;
|
|
426
|
-
|
|
426
|
+
|
|
427
|
+
// Per-agent terminal config overrides (agent.toolConfig.terminal).
|
|
428
|
+
// Falls back to this.config-level lists from constructor (global
|
|
429
|
+
// defaults). If neither is set, allowedCommands is null (=any) and
|
|
430
|
+
// blockedCommands is the class-default set from the constructor.
|
|
431
|
+
const effectiveConfig = this.getEffectiveConfig(context, {
|
|
432
|
+
allowedCommands: this.allowedCommands,
|
|
433
|
+
blockedCommands: this.blockedCommands,
|
|
434
|
+
maxBackgroundCommandsPerAgent: this.MAX_BACKGROUND_COMMANDS_PER_AGENT,
|
|
435
|
+
});
|
|
436
|
+
const allowedOverride = Array.isArray(effectiveConfig.allowedCommands)
|
|
437
|
+
? effectiveConfig.allowedCommands
|
|
438
|
+
: this.allowedCommands;
|
|
439
|
+
const blockedOverride = Array.isArray(effectiveConfig.blockedCommands)
|
|
440
|
+
? effectiveConfig.blockedCommands
|
|
441
|
+
: this.blockedCommands;
|
|
442
|
+
|
|
443
|
+
// Re-validate each run-command action against the per-agent rules.
|
|
444
|
+
// customValidateParameters() runs BEFORE execute and cannot see the
|
|
445
|
+
// context, so it only applies global rules. This pass catches
|
|
446
|
+
// commands that the per-agent overrides forbid.
|
|
447
|
+
for (const action of actions) {
|
|
448
|
+
if (action.type === 'run-command' && typeof action.command === 'string') {
|
|
449
|
+
if (this._matchesAny(action.command, blockedOverride)) {
|
|
450
|
+
return {
|
|
451
|
+
success: false,
|
|
452
|
+
error: `Command is blocked by agent policy: ${action.command}`,
|
|
453
|
+
actions: [],
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
if (allowedOverride && allowedOverride.length > 0
|
|
457
|
+
&& !this._matchesAny(action.command, allowedOverride, { prefix: true })) {
|
|
458
|
+
return {
|
|
459
|
+
success: false,
|
|
460
|
+
error: `Command is not in the agent's allowed list: ${action.command}`,
|
|
461
|
+
actions: [],
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
|
|
427
467
|
// Get directory access configuration from agent or create default
|
|
428
|
-
const accessConfig = directoryAccess ||
|
|
468
|
+
const accessConfig = directoryAccess ||
|
|
429
469
|
this.directoryAccessManager.createDirectoryAccess({
|
|
430
470
|
workingDirectory: projectDir || process.cwd(),
|
|
431
471
|
writeEnabledDirectories: [projectDir || process.cwd()],
|
|
@@ -1079,6 +1119,26 @@ After each invocation you will get a tool-result embedded in the following user
|
|
|
1079
1119
|
}
|
|
1080
1120
|
}
|
|
1081
1121
|
|
|
1122
|
+
/**
|
|
1123
|
+
* Test if a command matches ANY pattern in a list. Patterns match if:
|
|
1124
|
+
* - exact equality (case-insensitive), OR
|
|
1125
|
+
* - command starts with `${pattern} ` (the base command matches).
|
|
1126
|
+
*
|
|
1127
|
+
* Shared helper used by the per-agent config check in execute(). The
|
|
1128
|
+
* class-level isBlockedCommand/isAllowedCommand still exist for the
|
|
1129
|
+
* pre-execute validator pass.
|
|
1130
|
+
* @private
|
|
1131
|
+
*/
|
|
1132
|
+
_matchesAny(command, patterns, _opts = {}) {
|
|
1133
|
+
if (!Array.isArray(patterns) || patterns.length === 0) return false;
|
|
1134
|
+
const cmd = (command || '').toLowerCase().trim();
|
|
1135
|
+
const base = cmd.split(' ')[0];
|
|
1136
|
+
return patterns.some((p) => {
|
|
1137
|
+
const pat = (p || '').toLowerCase();
|
|
1138
|
+
return pat === cmd || pat === base || cmd.startsWith(pat + ' ');
|
|
1139
|
+
});
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1082
1142
|
/**
|
|
1083
1143
|
* Check if command is blocked for security
|
|
1084
1144
|
* @private
|