onbuzz 4.7.2 → 4.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/grounding-bench/bench.mjs +300 -0
- package/scripts/grounding-bench/cases.js +173 -0
- package/scripts/grounding-bench/imageBuilder.js +119 -0
- package/src/core/__tests__/agentScheduler.nativePromptPick.test.js +319 -0
- package/src/core/__tests__/agentScheduler.test.js +74 -0
- package/src/core/agentPool.js +12 -0
- package/src/core/agentScheduler.js +233 -7
- package/src/index.js +36 -0
- package/src/interfaces/webServer.js +42 -0
- package/src/services/__tests__/memoryService.test.js +521 -450
- package/src/services/__tests__/modelRouterNaming.test.js +111 -0
- package/src/services/__tests__/modelRouterService.test.js +477 -388
- package/src/services/aiService.js +136 -1
- package/src/services/grounding/GroundingModel.js +116 -0
- package/src/services/grounding/KimiAdapter.js +427 -0
- package/src/services/grounding/MockAdapter.js +125 -0
- package/src/services/grounding/__tests__/KimiAdapter.test.js +475 -0
- package/src/services/grounding/__tests__/MockAdapter.test.js +66 -0
- package/src/services/grounding/__tests__/groundingMetrics.test.js +156 -0
- package/src/services/grounding/__tests__/registry.test.js +122 -0
- package/src/services/grounding/constants.js +121 -0
- package/src/services/grounding/groundingMetrics.js +121 -0
- package/src/services/grounding/index.js +53 -0
- package/src/services/grounding/registry.js +125 -0
- package/src/services/grounding/types.js +108 -0
- package/src/services/memoryService.js +559 -521
- package/src/services/modelRouterService.js +433 -364
- package/src/services/tokenCountingService.js +2 -2
- package/src/tools/__tests__/agentCommunicationTool.test.js +752 -717
- package/src/tools/__tests__/baseTool.test.js +164 -0
- package/src/tools/__tests__/codeMapTool.test.js +388 -0
- package/src/tools/__tests__/foundryWebSearchTool.test.js +252 -0
- package/src/tools/__tests__/memoryTool.reminisce.test.js +364 -363
- package/src/tools/__tests__/memoryTool.test.js +391 -297
- package/src/tools/__tests__/parserHelpers.test.js +233 -0
- package/src/tools/__tests__/webTool.e2e.test.js +13 -1
- package/src/tools/agentCommunicationTool.js +1399 -1385
- package/src/tools/baseTool.js +102 -5
- package/src/tools/codeMapTool.js +794 -130
- package/src/tools/desktop/DesktopTool.js +638 -0
- package/src/tools/desktop/__tests__/DesktopTool.e2e.test.js +306 -0
- package/src/tools/desktop/__tests__/DesktopTool.test.js +507 -0
- package/src/tools/desktop/__tests__/osCapabilities.test.js +106 -0
- package/src/tools/desktop/__tests__/osController.test.js +364 -0
- package/src/tools/desktop/osCapabilities.js +248 -0
- package/src/tools/desktop/osController.js +491 -0
- package/src/tools/foundryWebSearchTool.js +273 -0
- package/src/tools/memoryTool.js +892 -820
- package/src/tools/openaiFunctionSchemas.js +14 -0
- package/src/tools/parserHelpers.js +296 -0
- package/src/tools/skillsTool.js +282 -277
- package/src/utilities/__tests__/planInjection.test.js +125 -0
- package/src/utilities/__tests__/tagParser.test.js +943 -887
- package/src/utilities/constants.js +19 -1
- package/src/utilities/planInjection.js +103 -0
- package/src/utilities/tagParser.js +918 -896
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/1c-DGpIT7i5.js +1 -0
- package/web-ui/build/static/abap-5wFDdWLh.js +1 -0
- package/web-ui/build/static/abnf-BP1dpNSE.js +1 -0
- package/web-ui/build/static/abnf-DBEIAl8g.js +1 -0
- package/web-ui/build/static/accesslog-CWSM_T5E.js +1 -0
- package/web-ui/build/static/actionscript-DONkco1J.js +1 -0
- package/web-ui/build/static/actionscript-FqBYk5er.js +1 -0
- package/web-ui/build/static/ada-C2JLRIaM.js +1 -0
- package/web-ui/build/static/ada-gKiygTRK.js +1 -0
- package/web-ui/build/static/agda-CkSODqK2.js +1 -0
- package/web-ui/build/static/al-BJ_YR6p7.js +1 -0
- package/web-ui/build/static/angelscript-Dg2byMGg.js +1 -0
- package/web-ui/build/static/antlr4-BnpyaFNr.js +1 -0
- package/web-ui/build/static/apache-Dffxsd7O.js +1 -0
- package/web-ui/build/static/apacheconf-DLitjtWj.js +1 -0
- package/web-ui/build/static/apex-Drr_IvU2.js +1 -0
- package/web-ui/build/static/apl-CF6qxmXG.js +1 -0
- package/web-ui/build/static/applescript-CjOlw3b_.js +1 -0
- package/web-ui/build/static/applescript-DjkSl1Ry.js +1 -0
- package/web-ui/build/static/aql-KwVmK1gP.js +1 -0
- package/web-ui/build/static/arcade-CENSXx0R.js +1 -0
- package/web-ui/build/static/arduino-B3Ta9Fll.js +1 -0
- package/web-ui/build/static/arduino-CzcsaB9_.js +1 -0
- package/web-ui/build/static/arff-CMJSVt_O.js +1 -0
- package/web-ui/build/static/armasm-0zSgSPB4.js +1 -0
- package/web-ui/build/static/asciidoc-B8K5ctWq.js +1 -0
- package/web-ui/build/static/asciidoc-bk2Sg6b6.js +1 -0
- package/web-ui/build/static/asm6502-ji6zm4FQ.js +1 -0
- package/web-ui/build/static/asmatmel-DJqObM4Y.js +1 -0
- package/web-ui/build/static/aspectj-DqQKI7J5.js +1 -0
- package/web-ui/build/static/aspnet-9cenTxW7.js +1 -0
- package/web-ui/build/static/autohotkey-C6EhiZvl.js +1 -0
- package/web-ui/build/static/autohotkey-sTGJOvMM.js +1 -0
- package/web-ui/build/static/autoit-B0Im8iQ1.js +1 -0
- package/web-ui/build/static/autoit-CO6pUD0H.js +1 -0
- package/web-ui/build/static/avisynth-OvOHTfj5.js +1 -0
- package/web-ui/build/static/avrasm-BLWZ5Mye.js +1 -0
- package/web-ui/build/static/avro-idl-BB2ODvnw.js +1 -0
- package/web-ui/build/static/awk-_jhMabQ0.js +1 -0
- package/web-ui/build/static/axapta-DdBRgoYy.js +1 -0
- package/web-ui/build/static/bash-CsaRGXBQ.js +1 -0
- package/web-ui/build/static/bash-CxLFkwAC.js +1 -0
- package/web-ui/build/static/basic-BJyy7JJE.js +1 -0
- package/web-ui/build/static/basic-CrMb-gv0.js +1 -0
- package/web-ui/build/static/batch-BvcykMe5.js +1 -0
- package/web-ui/build/static/bbcode-EOBuY5Y6.js +1 -0
- package/web-ui/build/static/bicep-QkDJBA34.js +1 -0
- package/web-ui/build/static/birb-TAOxKurn.js +1 -0
- package/web-ui/build/static/bison-BEK6cnad.js +1 -0
- package/web-ui/build/static/bnf-DfEODxsr.js +1 -0
- package/web-ui/build/static/bnf-DhbMjsuA.js +1 -0
- package/web-ui/build/static/brainfuck-BoVocOa7.js +1 -0
- package/web-ui/build/static/brainfuck-DDC5QXPK.js +1 -0
- package/web-ui/build/static/brightscript-DNN598w2.js +1 -0
- package/web-ui/build/static/bro-Cn_jjZ8P.js +1 -0
- package/web-ui/build/static/bsl-CMCN75Gu.js +1 -0
- package/web-ui/build/static/c-DbOGQnEJ.js +1 -0
- package/web-ui/build/static/c-kggwYFsy.js +1 -0
- package/web-ui/build/static/c-like-BIsuUvof.js +1 -0
- package/web-ui/build/static/cal-DpgMsBZE.js +1 -0
- package/web-ui/build/static/capnproto-C1AHYI-M.js +1 -0
- package/web-ui/build/static/ceylon-pvJffDe1.js +1 -0
- package/web-ui/build/static/cfscript-C1qylu52.js +1 -0
- package/web-ui/build/static/chaiscript-D417WKRI.js +1 -0
- package/web-ui/build/static/cil-CjbZHbcY.js +1 -0
- package/web-ui/build/static/clean-Dvc6R-F2.js +1 -0
- package/web-ui/build/static/clojure-CSVRQPMQ.js +1 -0
- package/web-ui/build/static/clojure-ig1Vkg7X.js +1 -0
- package/web-ui/build/static/clojure-repl-C1uyEabk.js +1 -0
- package/web-ui/build/static/cmake-DSbVcAB3.js +1 -0
- package/web-ui/build/static/cmake-Zp8kPwnH.js +1 -0
- package/web-ui/build/static/cobol-OsZSiK_P.js +1 -0
- package/web-ui/build/static/coffeescript-D8r0416S.js +1 -0
- package/web-ui/build/static/coffeescript-DCpgClxh.js +1 -0
- package/web-ui/build/static/concurnas-DKnsxUOc.js +1 -0
- package/web-ui/build/static/coq-BQFlywVI.js +1 -0
- package/web-ui/build/static/coq-BvS9mQB2.js +1 -0
- package/web-ui/build/static/cos-D3ze2791.js +1 -0
- package/web-ui/build/static/cpp-Bw-cV3P1.js +1 -0
- package/web-ui/build/static/cpp-vi1p7XpB.js +1 -0
- package/web-ui/build/static/crmsh-BClnJTeQ.js +1 -0
- package/web-ui/build/static/crystal-DGzOUYZq.js +1 -0
- package/web-ui/build/static/crystal-DMzk6EvA.js +1 -0
- package/web-ui/build/static/csharp-BTom8s2X.js +1 -0
- package/web-ui/build/static/csharp-Cp2V3jfR.js +1 -0
- package/web-ui/build/static/cshtml-Dmtt9Kto.js +1 -0
- package/web-ui/build/static/csp-WPVsLe9_.js +1 -0
- package/web-ui/build/static/csp-qddj5fu_.js +1 -0
- package/web-ui/build/static/css-B0FAm7kj.js +1 -0
- package/web-ui/build/static/css-extras-Bx3pvjiG.js +1 -0
- package/web-ui/build/static/csv-CH-edgS5.js +1 -0
- package/web-ui/build/static/cypher-c3G8Leew.js +1 -0
- package/web-ui/build/static/d-BMDSy22_.js +1 -0
- package/web-ui/build/static/d-BdH4oW8-.js +1 -0
- package/web-ui/build/static/dart-C-r72q-O.js +1 -0
- package/web-ui/build/static/dart-CwpBMrKa.js +1 -0
- package/web-ui/build/static/dataweave-BPvqdt4k.js +1 -0
- package/web-ui/build/static/dax-Eyy6ixcN.js +1 -0
- package/web-ui/build/static/delphi-DhEbPj_5.js +1 -0
- package/web-ui/build/static/dhall-Ct1L8sN1.js +1 -0
- package/web-ui/build/static/diff-CSTqCgwn.js +1 -0
- package/web-ui/build/static/diff-Da97B5vW.js +1 -0
- package/web-ui/build/static/django-DGit_lCg.js +1 -0
- package/web-ui/build/static/django-DPgqFB8k.js +1 -0
- package/web-ui/build/static/dns-DUyXuZ-a.js +1 -0
- package/web-ui/build/static/dns-zone-file-D79MDxVG.js +1 -0
- package/web-ui/build/static/docker-DTiy4o38.js +1 -0
- package/web-ui/build/static/dockerfile-CvwPP8wE.js +1 -0
- package/web-ui/build/static/dos-CaIUWxvb.js +1 -0
- package/web-ui/build/static/dot-D3504w6Y.js +1 -0
- package/web-ui/build/static/dsconfig-Smy1eeX_.js +1 -0
- package/web-ui/build/static/dts-DyTYSXZj.js +1 -0
- package/web-ui/build/static/dust-CrJyi6qA.js +1 -0
- package/web-ui/build/static/ebnf-C8nqfkBH.js +1 -0
- package/web-ui/build/static/ebnf-Cuh5Vh2-.js +1 -0
- package/web-ui/build/static/editorconfig-C7pTGl6n.js +1 -0
- package/web-ui/build/static/eiffel-C75MSJCA.js +1 -0
- package/web-ui/build/static/ejs-Dyo7DF5w.js +1 -0
- package/web-ui/build/static/elixir-D4yJefOc.js +1 -0
- package/web-ui/build/static/elixir-DKRow2SJ.js +1 -0
- package/web-ui/build/static/elm-CgbdDlkT.js +1 -0
- package/web-ui/build/static/elm-D3N-UgU0.js +1 -0
- package/web-ui/build/static/erb-BsITh8qW.js +1 -0
- package/web-ui/build/static/erb-lY_LyKyS.js +1 -0
- package/web-ui/build/static/erlang-BCnPiYmB.js +1 -0
- package/web-ui/build/static/erlang-JEghiPXc.js +1 -0
- package/web-ui/build/static/erlang-repl-DzU97ugC.js +1 -0
- package/web-ui/build/static/etlua-CsBo8cJa.js +1 -0
- package/web-ui/build/static/excel-formula-C2piiCYa.js +1 -0
- package/web-ui/build/static/excel-kqNypwQD.js +1 -0
- package/web-ui/build/static/factor-DZTOhkyU.js +1 -0
- package/web-ui/build/static/false-yLjhfaSw.js +1 -0
- package/web-ui/build/static/firestore-security-rules-oaQNoH8l.js +1 -0
- package/web-ui/build/static/fix-C9IfnTuS.js +1 -0
- package/web-ui/build/static/flix-EmJ_JhPo.js +1 -0
- package/web-ui/build/static/flow-DCUl7IAQ.js +1 -0
- package/web-ui/build/static/fortran-DvyxJmFN.js +1 -0
- package/web-ui/build/static/fortran-EEP9R3S5.js +1 -0
- package/web-ui/build/static/fsharp-D_98s3RX.js +1 -0
- package/web-ui/build/static/fsharp-Dt9jOO5G.js +1 -0
- package/web-ui/build/static/ftl-C8gMHWLo.js +1 -0
- package/web-ui/build/static/gams-BHxVPb4z.js +1 -0
- package/web-ui/build/static/gap-DFtyHk-q.js +1 -0
- package/web-ui/build/static/gauss-BwhJWUcg.js +1 -0
- package/web-ui/build/static/gcode-BvmXwp09.js +1 -0
- package/web-ui/build/static/gcode-gWcD6Vc7.js +1 -0
- package/web-ui/build/static/gdscript-btHoX8RE.js +1 -0
- package/web-ui/build/static/gedcom-MgPs9iqh.js +1 -0
- package/web-ui/build/static/gherkin-B9c_Q16A.js +1 -0
- package/web-ui/build/static/gherkin-BvOgkK6h.js +1 -0
- package/web-ui/build/static/git-D9XWOVcQ.js +1 -0
- package/web-ui/build/static/glsl-CshBHxHY.js +1 -0
- package/web-ui/build/static/glsl-fNRUMTDr.js +1 -0
- package/web-ui/build/static/gml-B78deHK8.js +1 -0
- package/web-ui/build/static/gml-Cj7d2u8O.js +1 -0
- package/web-ui/build/static/gn-CJLD-mF1.js +1 -0
- package/web-ui/build/static/go-CT93BEkL.js +1 -0
- package/web-ui/build/static/go-CTTlNuQO.js +1 -0
- package/web-ui/build/static/go-module-BgnXboUE.js +1 -0
- package/web-ui/build/static/golo-2S5tXS-l.js +1 -0
- package/web-ui/build/static/gradle-8W8DCcWJ.js +1 -0
- package/web-ui/build/static/graphql-DZfp6FNU.js +1 -0
- package/web-ui/build/static/groovy-BfsyMb3X.js +1 -0
- package/web-ui/build/static/groovy-Dxov7ENz.js +1 -0
- package/web-ui/build/static/haml-BlUFsdVV.js +1 -0
- package/web-ui/build/static/haml-CjVj6vvW.js +1 -0
- package/web-ui/build/static/handlebars-DxrQFkyA.js +1 -0
- package/web-ui/build/static/handlebars-FE6fotYl.js +1 -0
- package/web-ui/build/static/haskell-B6z0RCD_.js +1 -0
- package/web-ui/build/static/haskell-JBFmJTRy.js +1 -0
- package/web-ui/build/static/haxe-BtMZMi-_.js +1 -0
- package/web-ui/build/static/haxe-C1J8n-fH.js +1 -0
- package/web-ui/build/static/hcl-DJP-bFWE.js +1 -0
- package/web-ui/build/static/hlsl-DrGjhs1b.js +1 -0
- package/web-ui/build/static/hoon-Cg-ZhqIT.js +1 -0
- package/web-ui/build/static/hpkp-D07vgmoZ.js +1 -0
- package/web-ui/build/static/hsp-CsypPWoA.js +1 -0
- package/web-ui/build/static/hsts-B6DMRxvP.js +1 -0
- package/web-ui/build/static/htmlbars-BI7_Hw4e.js +1 -0
- package/web-ui/build/static/http-90ihEi4s.js +1 -0
- package/web-ui/build/static/http-Dp4QXj9E.js +1 -0
- package/web-ui/build/static/hy-BMgKvP4K.js +1 -0
- package/web-ui/build/static/ichigojam-D6wKvJDb.js +1 -0
- package/web-ui/build/static/icon-CrgkmCwl.js +1 -0
- package/web-ui/build/static/icu-message-format-Bi2JxCXs.js +1 -0
- package/web-ui/build/static/idris-DbUsyZt5.js +1 -0
- package/web-ui/build/static/iecst-CQZ9t8fW.js +1 -0
- package/web-ui/build/static/ignore-BaFgtNMs.js +1 -0
- package/web-ui/build/static/index-DEWSWosh.css +1 -0
- package/web-ui/build/static/index-Di1bjCFA.js +13 -0
- package/web-ui/build/static/index-otR_WSsL.js +1 -0
- package/web-ui/build/static/index-whZPU4as.js +1183 -0
- package/web-ui/build/static/inform7-ClyX1Gro.js +1 -0
- package/web-ui/build/static/inform7-tZHBS5XP.js +1 -0
- package/web-ui/build/static/ini-BrP5JNYL.js +1 -0
- package/web-ui/build/static/ini-CVkrAhwV.js +1 -0
- package/web-ui/build/static/io-BJ1Y6Bdc.js +1 -0
- package/web-ui/build/static/irpf90-fjjcKS_8.js +1 -0
- package/web-ui/build/static/isbl-ClpvfUIz.js +1 -0
- package/web-ui/build/static/j-CICW77xS.js +1 -0
- package/web-ui/build/static/java-B9DFK-0E.js +1 -0
- package/web-ui/build/static/java-BL_6rYko.js +1 -0
- package/web-ui/build/static/javadoc-Cc4HKpKK.js +1 -0
- package/web-ui/build/static/javadoclike-CgNkUDOm.js +1 -0
- package/web-ui/build/static/javascript-CM40ZECq.js +1 -0
- package/web-ui/build/static/javastacktrace-BHSqXfG5.js +1 -0
- package/web-ui/build/static/jboss-cli-Bv5NhVSZ.js +1 -0
- package/web-ui/build/static/jexl--Ohk_keA.js +1 -0
- package/web-ui/build/static/jolie-DMTN5Vdf.js +1 -0
- package/web-ui/build/static/jq-nXRLldXX.js +1 -0
- package/web-ui/build/static/js-extras-eLwv3frs.js +1 -0
- package/web-ui/build/static/js-templates-Ca0owlrg.js +1 -0
- package/web-ui/build/static/jsdoc-KERXp0da.js +1 -0
- package/web-ui/build/static/json-BTjLaRsy.js +1 -0
- package/web-ui/build/static/json-p7pU0qdW.js +1 -0
- package/web-ui/build/static/json5-Cxjy1udc.js +1 -0
- package/web-ui/build/static/jsonp-CO52H7Gy.js +1 -0
- package/web-ui/build/static/jsstacktrace-8YKfoyJP.js +1 -0
- package/web-ui/build/static/jsx-Ct_05KbM.js +1 -0
- package/web-ui/build/static/julia-23I1ubCE.js +1 -0
- package/web-ui/build/static/julia-d8rVGed_.js +1 -0
- package/web-ui/build/static/julia-repl-mwnHedW_.js +1 -0
- package/web-ui/build/static/keepalived-E85Rx_fF.js +1 -0
- package/web-ui/build/static/keyman-aWd3QUDq.js +1 -0
- package/web-ui/build/static/kotlin-Cu370hQq.js +1 -0
- package/web-ui/build/static/kotlin-DoJ2WnmZ.js +1 -0
- package/web-ui/build/static/kumir-oiOgqcQO.js +1 -0
- package/web-ui/build/static/kusto-Bp-B02K5.js +1 -0
- package/web-ui/build/static/lasso-BxoQVwOO.js +1 -0
- package/web-ui/build/static/latex-CANm5vsX.js +1 -0
- package/web-ui/build/static/latex-PMroeNch.js +1 -0
- package/web-ui/build/static/latte-2ErU_2XF.js +1 -0
- package/web-ui/build/static/ldif-ChPn_F7o.js +1 -0
- package/web-ui/build/static/leaf-UkCugDgG.js +1 -0
- package/web-ui/build/static/less-CCH5RA89.js +1 -0
- package/web-ui/build/static/less-CGZbVU1g.js +1 -0
- package/web-ui/build/static/lilypond-BoyM37sv.js +1 -0
- package/web-ui/build/static/liquid-DGJVpRBi.js +1 -0
- package/web-ui/build/static/lisp-93nne61u.js +1 -0
- package/web-ui/build/static/lisp-DYjIRsXz.js +1 -0
- package/web-ui/build/static/livecodeserver-CfNaxIE4.js +1 -0
- package/web-ui/build/static/livescript-C8kDlQkz.js +1 -0
- package/web-ui/build/static/livescript-CoarnRHq.js +1 -0
- package/web-ui/build/static/llvm-CBVyNmAh.js +1 -0
- package/web-ui/build/static/llvm-DGxq8a7u.js +1 -0
- package/web-ui/build/static/log-BivgwFql.js +1 -0
- package/web-ui/build/static/lolcode-l5sK2cZz.js +1 -0
- package/web-ui/build/static/lsl-Xm44xLRQ.js +1 -0
- package/web-ui/build/static/lua-CGvrzfKp.js +1 -0
- package/web-ui/build/static/lua-nHwXeY4c.js +1 -0
- package/web-ui/build/static/magma-DmNItmna.js +1 -0
- package/web-ui/build/static/makefile-CKJNNHGb.js +1 -0
- package/web-ui/build/static/makefile-DI6y5Qml.js +1 -0
- package/web-ui/build/static/markdown-BgpbxKd-.js +1 -0
- package/web-ui/build/static/markdown-CvcxA4yk.js +1 -0
- package/web-ui/build/static/markup-templating-DijqesiA.js +1 -0
- package/web-ui/build/static/mathematica-Cxll1Q10.js +1 -0
- package/web-ui/build/static/matlab-BJo2T1A-.js +1 -0
- package/web-ui/build/static/matlab-C6DlZX4l.js +1 -0
- package/web-ui/build/static/maxima-DJXO4sbL.js +1 -0
- package/web-ui/build/static/maxscript-DdLpUYBs.js +1 -0
- package/web-ui/build/static/mel-BIpfnSyZ.js +1 -0
- package/web-ui/build/static/mel-BYcTUZJW.js +1 -0
- package/web-ui/build/static/mercury-C_LSpbD8.js +1 -0
- package/web-ui/build/static/mermaid-D9yBWnrT.js +1 -0
- package/web-ui/build/static/mipsasm-nR_K2Ue-.js +1 -0
- package/web-ui/build/static/mizar-BeLUPncD.js +1 -0
- package/web-ui/build/static/mizar-BesIbZd9.js +1 -0
- package/web-ui/build/static/mojolicious-cBx3OWa-.js +1 -0
- package/web-ui/build/static/mongodb-DTWKy9ac.js +1 -0
- package/web-ui/build/static/monkey-B72bZC3c.js +1 -0
- package/web-ui/build/static/monkey-G9XELYPQ.js +1 -0
- package/web-ui/build/static/moonscript-BXYVQiqj.js +1 -0
- package/web-ui/build/static/moonscript-sDd-5knz.js +1 -0
- package/web-ui/build/static/n1ql-0vKSfFAO.js +1 -0
- package/web-ui/build/static/n1ql-C9_BSZfz.js +1 -0
- package/web-ui/build/static/n4js-B7Ct8dds.js +1 -0
- package/web-ui/build/static/nand2tetris-hdl-p9gpphTM.js +1 -0
- package/web-ui/build/static/naniscript-6ZVr8Aug.js +1 -0
- package/web-ui/build/static/nasm-Ca73yTUt.js +1 -0
- package/web-ui/build/static/neon-DNP49oyX.js +1 -0
- package/web-ui/build/static/nevod-Qhgt7Bce.js +1 -0
- package/web-ui/build/static/nginx-D5e7lu62.js +1 -0
- package/web-ui/build/static/nginx-DobnyESB.js +1 -0
- package/web-ui/build/static/nim-BPBivUOV.js +1 -0
- package/web-ui/build/static/nim-Baoug1Wa.js +1 -0
- package/web-ui/build/static/nix-CSPTQs5y.js +1 -0
- package/web-ui/build/static/nix-Dk4eNw49.js +1 -0
- package/web-ui/build/static/node-repl-NJNL8VFR.js +1 -0
- package/web-ui/build/static/nsis-BZ0oMzEw.js +1 -0
- package/web-ui/build/static/nsis-CKPCjtCU.js +1 -0
- package/web-ui/build/static/objectivec-BkfIRhhV.js +1 -0
- package/web-ui/build/static/objectivec-CnQgqhbJ.js +1 -0
- package/web-ui/build/static/ocaml-9rGNzRrK.js +1 -0
- package/web-ui/build/static/ocaml-CTolCqxL.js +1 -0
- package/web-ui/build/static/opencl-9Q3vRDxv.js +1 -0
- package/web-ui/build/static/openqasm-D2QiuFBp.js +1 -0
- package/web-ui/build/static/openscad-C3HyuzpB.js +1 -0
- package/web-ui/build/static/oxygene-4gi-VYy_.js +1 -0
- package/web-ui/build/static/oz-BGDEB-1A.js +1 -0
- package/web-ui/build/static/parigp-CfZzp1uE.js +1 -0
- package/web-ui/build/static/parser-UbGteTcy.js +1 -0
- package/web-ui/build/static/parser3-C-Jx-fy7.js +1 -0
- package/web-ui/build/static/pascal-D1_R0gW-.js +1 -0
- package/web-ui/build/static/pascaligo-B8C-98Np.js +1 -0
- package/web-ui/build/static/pcaxis-TGnlUKNs.js +1 -0
- package/web-ui/build/static/peoplecode-C5Vf1AH0.js +1 -0
- package/web-ui/build/static/perl-CBp1N62T.js +1 -0
- package/web-ui/build/static/perl-Z59j904t.js +1 -0
- package/web-ui/build/static/pf-Cq8B_xwQ.js +1 -0
- package/web-ui/build/static/pgsql-ofJbUHkL.js +1 -0
- package/web-ui/build/static/php-OlH7HLQJ.js +1 -0
- package/web-ui/build/static/php-extras-GqtrxLuk.js +1 -0
- package/web-ui/build/static/php-r09kMDOB.js +1 -0
- package/web-ui/build/static/php-template-18uT97Qo.js +1 -0
- package/web-ui/build/static/phpdoc-9tRFvup9.js +1 -0
- package/web-ui/build/static/plaintext-DsYT6Mu-.js +1 -0
- package/web-ui/build/static/plsql-RhWQNJVb.js +1 -0
- package/web-ui/build/static/pony-DD6JMLYI.js +1 -0
- package/web-ui/build/static/powerquery-CALow-bt.js +1 -0
- package/web-ui/build/static/powershell-C2QvIuKF.js +1 -0
- package/web-ui/build/static/powershell-yrbJEhCh.js +1 -0
- package/web-ui/build/static/processing-1T5w_Q03.js +1 -0
- package/web-ui/build/static/processing-DBim_dO-.js +1 -0
- package/web-ui/build/static/profile-Cdloh8mZ.js +1 -0
- package/web-ui/build/static/prolog-DRSsNnns.js +1 -0
- package/web-ui/build/static/prolog-D_ajweDr.js +1 -0
- package/web-ui/build/static/promql-BRuwn6Bn.js +1 -0
- package/web-ui/build/static/properties-D5Wyl4X4.js +1 -0
- package/web-ui/build/static/properties-kn4fl1bl.js +1 -0
- package/web-ui/build/static/protobuf-BMO76zWi.js +1 -0
- package/web-ui/build/static/protobuf-CTUCF-U-.js +1 -0
- package/web-ui/build/static/psl-CiqYdQbY.js +1 -0
- package/web-ui/build/static/pug-BLE2Qayj.js +1 -0
- package/web-ui/build/static/puppet-CFKLWXft.js +1 -0
- package/web-ui/build/static/puppet-DQci0Dl5.js +1 -0
- package/web-ui/build/static/pure-D2h_GynV.js +1 -0
- package/web-ui/build/static/purebasic-BF8MVw8V.js +1 -0
- package/web-ui/build/static/purebasic-BTtHiCkh.js +1 -0
- package/web-ui/build/static/purescript-D1ZSh-sH.js +1 -0
- package/web-ui/build/static/python-Cp9_Vdhb.js +1 -0
- package/web-ui/build/static/python-DdgNw8IW.js +1 -0
- package/web-ui/build/static/python-repl-DvK89VMC.js +1 -0
- package/web-ui/build/static/q-COaIgwhT.js +1 -0
- package/web-ui/build/static/q-Cm0dQkW8.js +1 -0
- package/web-ui/build/static/qml-BpsOqqJM.js +1 -0
- package/web-ui/build/static/qml-BziQXlU4.js +1 -0
- package/web-ui/build/static/qore-Cutz6g-2.js +1 -0
- package/web-ui/build/static/qsharp-B16619X1.js +1 -0
- package/web-ui/build/static/r-CFUIj5Hd.js +1 -0
- package/web-ui/build/static/r-CPrwCi5w.js +1 -0
- package/web-ui/build/static/racket-Bh08DFXF.js +1 -0
- package/web-ui/build/static/reason-BxjDq4e-.js +1 -0
- package/web-ui/build/static/reasonml-Ds5SsGP8.js +1 -0
- package/web-ui/build/static/regex-DhBIDIMI.js +1 -0
- package/web-ui/build/static/rego-DCwxZXcB.js +1 -0
- package/web-ui/build/static/renpy-C2fuQfqb.js +1 -0
- package/web-ui/build/static/rest-C52ZpxWQ.js +1 -0
- package/web-ui/build/static/rib-Cbl2Mzyj.js +1 -0
- package/web-ui/build/static/rip-BTOu5ZIE.js +1 -0
- package/web-ui/build/static/roboconf-3Oi2wuVk.js +1 -0
- package/web-ui/build/static/roboconf-ndLZLE39.js +1 -0
- package/web-ui/build/static/robotframework-BzHXiIj1.js +1 -0
- package/web-ui/build/static/routeros-CkpPoqx-.js +1 -0
- package/web-ui/build/static/rsl-C0bwOQ38.js +1 -0
- package/web-ui/build/static/ruby-C_hIhtuQ.js +1 -0
- package/web-ui/build/static/ruby-DvKfZPzj.js +1 -0
- package/web-ui/build/static/ruleslanguage-CbZJlddz.js +1 -0
- package/web-ui/build/static/rust-BFPIhB-X.js +1 -0
- package/web-ui/build/static/rust-sBpUq-qE.js +1 -0
- package/web-ui/build/static/sas-BCXvYN9x.js +1 -0
- package/web-ui/build/static/sas-D7GAsTY3.js +1 -0
- package/web-ui/build/static/sass-BdaErGMN.js +1 -0
- package/web-ui/build/static/scala-Cj81oCl9.js +1 -0
- package/web-ui/build/static/scala-CvbksfY6.js +1 -0
- package/web-ui/build/static/scheme-BM5ZqKnl.js +1 -0
- package/web-ui/build/static/scheme-BPvlu9Tk.js +1 -0
- package/web-ui/build/static/scilab-CJanLKQN.js +1 -0
- package/web-ui/build/static/scss-C53YF_7f.js +1 -0
- package/web-ui/build/static/scss-DPp8UZbr.js +1 -0
- package/web-ui/build/static/shell-CC9bQXMe.js +1 -0
- package/web-ui/build/static/shell-session-CuR3fbf-.js +1 -0
- package/web-ui/build/static/smali-CUgLls3D.js +1 -0
- package/web-ui/build/static/smali-YODSX8qt.js +1 -0
- package/web-ui/build/static/smalltalk-BMJQ4bbs.js +1 -0
- package/web-ui/build/static/smalltalk-BVGY3CTl.js +1 -0
- package/web-ui/build/static/smarty-C9aNt4-p.js +1 -0
- package/web-ui/build/static/sml-C3BIHhfq.js +1 -0
- package/web-ui/build/static/sml-DTipyRmY.js +1 -0
- package/web-ui/build/static/solidity-1yuPUqoC.js +1 -0
- package/web-ui/build/static/solution-file-BgzK4GOU.js +1 -0
- package/web-ui/build/static/soy-CFJXRvqc.js +1 -0
- package/web-ui/build/static/sparql-CAosYMpl.js +1 -0
- package/web-ui/build/static/splunk-spl-DkINtWr8.js +1 -0
- package/web-ui/build/static/sqf-DbrWIS2M.js +1 -0
- package/web-ui/build/static/sqf-nq8Q9J2W.js +1 -0
- package/web-ui/build/static/sql-9bwClhZQ.js +1 -0
- package/web-ui/build/static/sql-CqPkY-lX.js +1 -0
- package/web-ui/build/static/sql_more-CsY5ts77.js +1 -0
- package/web-ui/build/static/squirrel-BuqtzRBD.js +1 -0
- package/web-ui/build/static/stan-BNxBSglc.js +1 -0
- package/web-ui/build/static/stan-CZVMc34l.js +1 -0
- package/web-ui/build/static/stata-DKnVdHCd.js +1 -0
- package/web-ui/build/static/step21-Cu_TaBGF.js +1 -0
- package/web-ui/build/static/stylus-BS7-OJew.js +1 -0
- package/web-ui/build/static/stylus-DtFrp1Nk.js +1 -0
- package/web-ui/build/static/subunit-DDCoWkkc.js +1 -0
- package/web-ui/build/static/swift-BaguUZbl.js +1 -0
- package/web-ui/build/static/swift-mwBsb8Bx.js +1 -0
- package/web-ui/build/static/systemd-D6PpyDKk.js +1 -0
- package/web-ui/build/static/t4-cs-Cem8g4Ck.js +1 -0
- package/web-ui/build/static/t4-templating-BZo-HjmD.js +1 -0
- package/web-ui/build/static/t4-vb-B4oVnKa4.js +1 -0
- package/web-ui/build/static/taggerscript-DweAZ5pw.js +1 -0
- package/web-ui/build/static/tap-DpuvKHHF.js +1 -0
- package/web-ui/build/static/tap-hUKmJObZ.js +1 -0
- package/web-ui/build/static/tcl-BUvhAi7u.js +1 -0
- package/web-ui/build/static/tcl-Dsck63d8.js +1 -0
- package/web-ui/build/static/textile-CgKbqJ-j.js +1 -0
- package/web-ui/build/static/thrift-B5H6rApp.js +1 -0
- package/web-ui/build/static/toml-DggTpfOo.js +1 -0
- package/web-ui/build/static/tp-CazB2P2X.js +1 -0
- package/web-ui/build/static/tremor-B1jy7S5p.js +1 -0
- package/web-ui/build/static/tsx-BqF2lVDi.js +1 -0
- package/web-ui/build/static/tt2-BNoNXpEe.js +1 -0
- package/web-ui/build/static/turtle-B0evd5mn.js +1 -0
- package/web-ui/build/static/twig-B5A7nMdv.js +1 -0
- package/web-ui/build/static/twig-DZnLWvh8.js +1 -0
- package/web-ui/build/static/typescript-Bbe_P093.js +1 -0
- package/web-ui/build/static/typescript-BfhvmSSG.js +1 -0
- package/web-ui/build/static/typoscript-BjuZEIgw.js +1 -0
- package/web-ui/build/static/unrealscript-C3iUCFRi.js +1 -0
- package/web-ui/build/static/uorazor-CbZXwzIj.js +1 -0
- package/web-ui/build/static/uri-xMPSnp6m.js +1 -0
- package/web-ui/build/static/v-BKcGo5I6.js +1 -0
- package/web-ui/build/static/vala-BRoBE4am.js +1 -0
- package/web-ui/build/static/vala-B__Iyrma.js +1 -0
- package/web-ui/build/static/vbnet-DBxlMRvN.js +1 -0
- package/web-ui/build/static/vbnet-DjAXt5BE.js +1 -0
- package/web-ui/build/static/vbscript-BNA4oANi.js +1 -0
- package/web-ui/build/static/vbscript-html-o8ckLPKG.js +1 -0
- package/web-ui/build/static/velocity-D7sc5ggA.js +1 -0
- package/web-ui/build/static/verilog-BWJfMIng.js +1 -0
- package/web-ui/build/static/verilog-jW2GPC--.js +1 -0
- package/web-ui/build/static/vhdl-BIVlXRPa.js +1 -0
- package/web-ui/build/static/vhdl-BeqdhhxD.js +1 -0
- package/web-ui/build/static/vim-712lI4-g.js +1 -0
- package/web-ui/build/static/vim-DMROTzr0.js +1 -0
- package/web-ui/build/static/visual-basic-CQfbM-ta.js +1 -0
- package/web-ui/build/static/warpscript-DFAvCXFQ.js +1 -0
- package/web-ui/build/static/wasm-CiYoxBl0.js +1 -0
- package/web-ui/build/static/web-idl-DoCkPK8y.js +1 -0
- package/web-ui/build/static/wiki-bvz0AGzB.js +1 -0
- package/web-ui/build/static/wolfram-fBuyFEgU.js +1 -0
- package/web-ui/build/static/wren-DvATFxjF.js +1 -0
- package/web-ui/build/static/x86asm-r4bPbUR_.js +1 -0
- package/web-ui/build/static/xeora-B6iOnDJY.js +1 -0
- package/web-ui/build/static/xl-Ce6B5slc.js +1 -0
- package/web-ui/build/static/xml-DNjyPmhQ.js +1 -0
- package/web-ui/build/static/xml-doc-DydogmZD.js +1 -0
- package/web-ui/build/static/xojo-DCQLltvr.js +1 -0
- package/web-ui/build/static/xquery-C-fAnA0H.js +1 -0
- package/web-ui/build/static/xquery-CNeqzhLO.js +1 -0
- package/web-ui/build/static/yaml-BsVaGsk5.js +1 -0
- package/web-ui/build/static/yaml-kVZvwv_C.js +1 -0
- package/web-ui/build/static/yang-B_gq9JEq.js +1 -0
- package/web-ui/build/static/zephir-ECIXgXhX.js +1 -0
- package/web-ui/build/static/zig-DY325EKG.js +1 -0
- package/web-ui/build/static/1c-BLo2-5GS.js +0 -1
- package/web-ui/build/static/abap-BjUneMMr.js +0 -1
- package/web-ui/build/static/abnf-CZTz-l7P.js +0 -1
- package/web-ui/build/static/abnf-ITJ5mkBo.js +0 -1
- package/web-ui/build/static/accesslog-Dj78lZOU.js +0 -1
- package/web-ui/build/static/actionscript-Chivtu59.js +0 -1
- package/web-ui/build/static/actionscript-CrvMFXnx.js +0 -1
- package/web-ui/build/static/ada-DdJtyoYe.js +0 -1
- package/web-ui/build/static/ada-GIvogaLi.js +0 -1
- package/web-ui/build/static/agda-DbPp4fQi.js +0 -1
- package/web-ui/build/static/al-BZ24KwRS.js +0 -1
- package/web-ui/build/static/angelscript-DzsFypYt.js +0 -1
- package/web-ui/build/static/antlr4-3qb4rD3S.js +0 -1
- package/web-ui/build/static/apache-DF0P5ZRm.js +0 -1
- package/web-ui/build/static/apacheconf-C8KuNf9c.js +0 -1
- package/web-ui/build/static/apex-CPV-DeVE.js +0 -1
- package/web-ui/build/static/apl-C60bVxxW.js +0 -1
- package/web-ui/build/static/applescript-uz0i0tu1.js +0 -1
- package/web-ui/build/static/applescript-xcPRUBia.js +0 -1
- package/web-ui/build/static/aql-CRh4IGkA.js +0 -1
- package/web-ui/build/static/arcade-CmLedeqc.js +0 -1
- package/web-ui/build/static/arduino-3pr1BvXB.js +0 -1
- package/web-ui/build/static/arduino-C2BejAip.js +0 -1
- package/web-ui/build/static/arff-DE6Wr9MU.js +0 -1
- package/web-ui/build/static/armasm-DXodTfP4.js +0 -1
- package/web-ui/build/static/asciidoc-BU2BDFme.js +0 -1
- package/web-ui/build/static/asciidoc-CgvtvdeC.js +0 -1
- package/web-ui/build/static/asm6502-BMuYCKmP.js +0 -1
- package/web-ui/build/static/asmatmel-Dwxzg4kq.js +0 -1
- package/web-ui/build/static/aspectj-XZIldIRI.js +0 -1
- package/web-ui/build/static/aspnet-UxY2bZ9O.js +0 -1
- package/web-ui/build/static/autohotkey-BdZoQT7s.js +0 -1
- package/web-ui/build/static/autohotkey-DLWs6p8o.js +0 -1
- package/web-ui/build/static/autoit-CxcZx_kh.js +0 -1
- package/web-ui/build/static/autoit-HY_BHh1p.js +0 -1
- package/web-ui/build/static/avisynth-4Q4be9zq.js +0 -1
- package/web-ui/build/static/avrasm-CFqVJML2.js +0 -1
- package/web-ui/build/static/avro-idl-DVTV2YZm.js +0 -1
- package/web-ui/build/static/awk-C1Udi4As.js +0 -1
- package/web-ui/build/static/axapta-B9lexIDC.js +0 -1
- package/web-ui/build/static/bash-DDZrx0R1.js +0 -1
- package/web-ui/build/static/bash-Uuijyc_K.js +0 -1
- package/web-ui/build/static/basic-B29QFWwp.js +0 -1
- package/web-ui/build/static/basic-DKDOc42O.js +0 -1
- package/web-ui/build/static/batch-CA3q9wRr.js +0 -1
- package/web-ui/build/static/bbcode-DkUDcqrp.js +0 -1
- package/web-ui/build/static/bicep-AHSQiVgQ.js +0 -1
- package/web-ui/build/static/birb-BsAnN1j3.js +0 -1
- package/web-ui/build/static/bison-BIq5-ZXo.js +0 -1
- package/web-ui/build/static/bnf-BexLm6hz.js +0 -1
- package/web-ui/build/static/bnf-Dm46EM5S.js +0 -1
- package/web-ui/build/static/brainfuck-CBG8MHhD.js +0 -1
- package/web-ui/build/static/brainfuck-DrHuUFVv.js +0 -1
- package/web-ui/build/static/brightscript-CoQ7s_l3.js +0 -1
- package/web-ui/build/static/bro-Cz5RmvoK.js +0 -1
- package/web-ui/build/static/bsl-C9wXomkX.js +0 -1
- package/web-ui/build/static/c-BZFEFWwC.js +0 -1
- package/web-ui/build/static/c-CfFWLEL7.js +0 -1
- package/web-ui/build/static/c-like-CvIii1QP.js +0 -1
- package/web-ui/build/static/cal-be-Dz3GC.js +0 -1
- package/web-ui/build/static/capnproto-Bcaxak1e.js +0 -1
- package/web-ui/build/static/ceylon-QH_iQXnW.js +0 -1
- package/web-ui/build/static/cfscript-BRgBlxCO.js +0 -1
- package/web-ui/build/static/chaiscript-DSBx5kyN.js +0 -1
- package/web-ui/build/static/cil-C90LIbge.js +0 -1
- package/web-ui/build/static/clean-D2X3fSKw.js +0 -1
- package/web-ui/build/static/clojure-CvKE0e-3.js +0 -1
- package/web-ui/build/static/clojure-Cy3Zg4vZ.js +0 -1
- package/web-ui/build/static/clojure-repl-D0kONHv2.js +0 -1
- package/web-ui/build/static/cmake-DIDVe3n_.js +0 -1
- package/web-ui/build/static/cmake-DPijEs9c.js +0 -1
- package/web-ui/build/static/cobol-BPEjLjGY.js +0 -1
- package/web-ui/build/static/coffeescript-CoSx9MQU.js +0 -1
- package/web-ui/build/static/coffeescript-L5CBXrnP.js +0 -1
- package/web-ui/build/static/concurnas-q5sXhVU4.js +0 -1
- package/web-ui/build/static/coq-BAEq82zI.js +0 -1
- package/web-ui/build/static/coq-BBgtQZwi.js +0 -1
- package/web-ui/build/static/cos-9FdwfBC5.js +0 -1
- package/web-ui/build/static/cpp-CYt8UYn2.js +0 -1
- package/web-ui/build/static/cpp-CZ2lOXlm.js +0 -1
- package/web-ui/build/static/crmsh-C_TZWkES.js +0 -1
- package/web-ui/build/static/crystal-BDf_0NDz.js +0 -1
- package/web-ui/build/static/crystal-BrTR9dGT.js +0 -1
- package/web-ui/build/static/csharp-BSBrba50.js +0 -1
- package/web-ui/build/static/csharp-Cerqyqbn.js +0 -1
- package/web-ui/build/static/cshtml-heNA_ya5.js +0 -1
- package/web-ui/build/static/csp-CJprtNTl.js +0 -1
- package/web-ui/build/static/csp-CyYfNNga.js +0 -1
- package/web-ui/build/static/css-ClMfqSLF.js +0 -1
- package/web-ui/build/static/css-extras-BRU-Fmfk.js +0 -1
- package/web-ui/build/static/csv-VxPQSCnT.js +0 -1
- package/web-ui/build/static/cypher-COR7lVoB.js +0 -1
- package/web-ui/build/static/d-CjJIoaqU.js +0 -1
- package/web-ui/build/static/d-DrTea74c.js +0 -1
- package/web-ui/build/static/dart-Dx1CtbrO.js +0 -1
- package/web-ui/build/static/dart-Kqlt_5Iy.js +0 -1
- package/web-ui/build/static/dataweave-DpoRPYaa.js +0 -1
- package/web-ui/build/static/dax-BdRNDjXh.js +0 -1
- package/web-ui/build/static/delphi-C6ZfxFVF.js +0 -1
- package/web-ui/build/static/dhall-DZrga6Gc.js +0 -1
- package/web-ui/build/static/diff-BuMvzPYe.js +0 -1
- package/web-ui/build/static/diff-DZYXzKCb.js +0 -1
- package/web-ui/build/static/django-D_vRowuc.js +0 -1
- package/web-ui/build/static/django-NYcglI2i.js +0 -1
- package/web-ui/build/static/dns-Cd7tDS1i.js +0 -1
- package/web-ui/build/static/dns-zone-file-C3-2vwxy.js +0 -1
- package/web-ui/build/static/docker-DQ7ZFefk.js +0 -1
- package/web-ui/build/static/dockerfile-BpU0w0F-.js +0 -1
- package/web-ui/build/static/dos-B1_ZGbVG.js +0 -1
- package/web-ui/build/static/dot-BGB_tXU7.js +0 -1
- package/web-ui/build/static/dsconfig-BbDxyV_e.js +0 -1
- package/web-ui/build/static/dts-BfjOjY8l.js +0 -1
- package/web-ui/build/static/dust-BdwQ-7T_.js +0 -1
- package/web-ui/build/static/ebnf-BQTMmaYU.js +0 -1
- package/web-ui/build/static/ebnf-BwwBWilG.js +0 -1
- package/web-ui/build/static/editorconfig-DWS4VSOM.js +0 -1
- package/web-ui/build/static/eiffel-DVvlc0AI.js +0 -1
- package/web-ui/build/static/ejs-DsD496m-.js +0 -1
- package/web-ui/build/static/elixir-CLxuo9eh.js +0 -1
- package/web-ui/build/static/elixir-Cnyg3Ezx.js +0 -1
- package/web-ui/build/static/elm-CMAIkLMI.js +0 -1
- package/web-ui/build/static/elm-DZBnlwPV.js +0 -1
- package/web-ui/build/static/erb-B5xezjly.js +0 -1
- package/web-ui/build/static/erb-CJr8Ab4S.js +0 -1
- package/web-ui/build/static/erlang-BKy_rMFs.js +0 -1
- package/web-ui/build/static/erlang-DtaEL15_.js +0 -1
- package/web-ui/build/static/erlang-repl-CC5OZ0oZ.js +0 -1
- package/web-ui/build/static/etlua-1AfbSbi_.js +0 -1
- package/web-ui/build/static/excel-AEWYaJMN.js +0 -1
- package/web-ui/build/static/excel-formula-DXCH31eV.js +0 -1
- package/web-ui/build/static/factor-BvZsNxRC.js +0 -1
- package/web-ui/build/static/false-Y69sPjTa.js +0 -1
- package/web-ui/build/static/firestore-security-rules-BAYXaIU_.js +0 -1
- package/web-ui/build/static/fix-D7wVox5L.js +0 -1
- package/web-ui/build/static/flix-xYG3kZl-.js +0 -1
- package/web-ui/build/static/flow-zBPh0c8a.js +0 -1
- package/web-ui/build/static/fortran-C7OgAOwk.js +0 -1
- package/web-ui/build/static/fortran-D7HqnRra.js +0 -1
- package/web-ui/build/static/fsharp-Dz8jq_YD.js +0 -1
- package/web-ui/build/static/fsharp-wem8e879.js +0 -1
- package/web-ui/build/static/ftl-BNZhFjQT.js +0 -1
- package/web-ui/build/static/gams-C0WL3JTk.js +0 -1
- package/web-ui/build/static/gap-C3QTJPj2.js +0 -1
- package/web-ui/build/static/gauss-HDeDt6Js.js +0 -1
- package/web-ui/build/static/gcode-B6xVa-Q4.js +0 -1
- package/web-ui/build/static/gcode-KfjFk59Y.js +0 -1
- package/web-ui/build/static/gdscript-CZWTW6OT.js +0 -1
- package/web-ui/build/static/gedcom-DGTBZtDe.js +0 -1
- package/web-ui/build/static/gherkin-BM2fti5q.js +0 -1
- package/web-ui/build/static/gherkin-BsD-keLP.js +0 -1
- package/web-ui/build/static/git-CwXnrvg5.js +0 -1
- package/web-ui/build/static/glsl-CEL-DKdu.js +0 -1
- package/web-ui/build/static/glsl-DClg1hhL.js +0 -1
- package/web-ui/build/static/gml-BuyC2nUx.js +0 -1
- package/web-ui/build/static/gml-CaV0fexF.js +0 -1
- package/web-ui/build/static/gn-RZ4XHU09.js +0 -1
- package/web-ui/build/static/go-2fZP5dFL.js +0 -1
- package/web-ui/build/static/go-B-2r4QAR.js +0 -1
- package/web-ui/build/static/go-module-DSWZUUGo.js +0 -1
- package/web-ui/build/static/golo-BLZaLyU5.js +0 -1
- package/web-ui/build/static/gradle--RLe7WtU.js +0 -1
- package/web-ui/build/static/graphql-Dersm5rs.js +0 -1
- package/web-ui/build/static/groovy-BhCtzyFe.js +0 -1
- package/web-ui/build/static/groovy-CvbHavu3.js +0 -1
- package/web-ui/build/static/haml-CQhB89Xl.js +0 -1
- package/web-ui/build/static/haml-CemWzAX2.js +0 -1
- package/web-ui/build/static/handlebars-B39jLKjQ.js +0 -1
- package/web-ui/build/static/handlebars-Cl4dI91M.js +0 -1
- package/web-ui/build/static/haskell-CO9Ug-Kw.js +0 -1
- package/web-ui/build/static/haskell-EXme4CFR.js +0 -1
- package/web-ui/build/static/haxe-BDkCyqBy.js +0 -1
- package/web-ui/build/static/haxe-ahczQlFA.js +0 -1
- package/web-ui/build/static/hcl-liOTbdHr.js +0 -1
- package/web-ui/build/static/hlsl-Bnkb1zrP.js +0 -1
- package/web-ui/build/static/hoon-DCXHuTNp.js +0 -1
- package/web-ui/build/static/hpkp-CPJOGDF_.js +0 -1
- package/web-ui/build/static/hsp-BdeT0enM.js +0 -1
- package/web-ui/build/static/hsts-BoIN2VGK.js +0 -1
- package/web-ui/build/static/htmlbars-B5Ruf2zT.js +0 -1
- package/web-ui/build/static/http-BacVzmeC.js +0 -1
- package/web-ui/build/static/http-DifjpER4.js +0 -1
- package/web-ui/build/static/hy-DQ-M6mjk.js +0 -1
- package/web-ui/build/static/ichigojam-CcVrpthd.js +0 -1
- package/web-ui/build/static/icon-B4N1Fnx2.js +0 -1
- package/web-ui/build/static/icu-message-format-aDIl6Oaf.js +0 -1
- package/web-ui/build/static/idris-DKvV6i27.js +0 -1
- package/web-ui/build/static/iecst-zqZH79Dw.js +0 -1
- package/web-ui/build/static/ignore-BBbP-u2O.js +0 -1
- package/web-ui/build/static/index-CkhVK4lF.js +0 -1164
- package/web-ui/build/static/index-Cm1gK3R7.css +0 -1
- package/web-ui/build/static/index-D9JNKR2k.js +0 -13
- package/web-ui/build/static/index-DqZhvIWG.js +0 -1
- package/web-ui/build/static/inform7-BwvEArfL.js +0 -1
- package/web-ui/build/static/inform7-YkPDg57k.js +0 -1
- package/web-ui/build/static/ini-DU4drXRb.js +0 -1
- package/web-ui/build/static/ini-OhDTn0L5.js +0 -1
- package/web-ui/build/static/io-4thQGR-r.js +0 -1
- package/web-ui/build/static/irpf90-BnhmotbX.js +0 -1
- package/web-ui/build/static/isbl-BKcWS-M5.js +0 -1
- package/web-ui/build/static/j-Bw6CUCl9.js +0 -1
- package/web-ui/build/static/java-8IzvJ-mZ.js +0 -1
- package/web-ui/build/static/java-_jaQp1m2.js +0 -1
- package/web-ui/build/static/javadoc-D6KaHkhq.js +0 -1
- package/web-ui/build/static/javadoclike-B-DnR3Tl.js +0 -1
- package/web-ui/build/static/javascript-CfOOSye9.js +0 -1
- package/web-ui/build/static/javastacktrace-DHyDfhlB.js +0 -1
- package/web-ui/build/static/jboss-cli-zEH5UaRS.js +0 -1
- package/web-ui/build/static/jexl-CRpgdJ2f.js +0 -1
- package/web-ui/build/static/jolie-C5S16-nE.js +0 -1
- package/web-ui/build/static/jq-Dy-2LJZM.js +0 -1
- package/web-ui/build/static/js-extras-CNfXr3kE.js +0 -1
- package/web-ui/build/static/js-templates-DCJ1syUw.js +0 -1
- package/web-ui/build/static/jsdoc-BamyoRCh.js +0 -1
- package/web-ui/build/static/json-Buz-eeND.js +0 -1
- package/web-ui/build/static/json-D4xr_AK1.js +0 -1
- package/web-ui/build/static/json5-CS3uAaJP.js +0 -1
- package/web-ui/build/static/jsonp-CmEAdOcH.js +0 -1
- package/web-ui/build/static/jsstacktrace-D35jXpCN.js +0 -1
- package/web-ui/build/static/jsx-DRMEK-Qn.js +0 -1
- package/web-ui/build/static/julia-BgYJV7ho.js +0 -1
- package/web-ui/build/static/julia-CRsGDmxp.js +0 -1
- package/web-ui/build/static/julia-repl-D0vTZKUn.js +0 -1
- package/web-ui/build/static/keepalived-BlhBatvM.js +0 -1
- package/web-ui/build/static/keyman-B_-J66sg.js +0 -1
- package/web-ui/build/static/kotlin-B7HqYBGK.js +0 -1
- package/web-ui/build/static/kotlin-CszxhoS4.js +0 -1
- package/web-ui/build/static/kumir-B_wpMfXS.js +0 -1
- package/web-ui/build/static/kusto-BrHkOiE1.js +0 -1
- package/web-ui/build/static/lasso-xizuiq1s.js +0 -1
- package/web-ui/build/static/latex-62pryLTa.js +0 -1
- package/web-ui/build/static/latex-D7Tnbs2l.js +0 -1
- package/web-ui/build/static/latte-B_8xJj-y.js +0 -1
- package/web-ui/build/static/ldif-B69eIciC.js +0 -1
- package/web-ui/build/static/leaf-DPnh4k7N.js +0 -1
- package/web-ui/build/static/less-Bg3xuki-.js +0 -1
- package/web-ui/build/static/less-Cm-zhk4i.js +0 -1
- package/web-ui/build/static/lilypond-BFSXmrKQ.js +0 -1
- package/web-ui/build/static/liquid-D_jMXN_8.js +0 -1
- package/web-ui/build/static/lisp-CDWjXhWU.js +0 -1
- package/web-ui/build/static/lisp-DAu9fWrQ.js +0 -1
- package/web-ui/build/static/livecodeserver-BNgd6rBu.js +0 -1
- package/web-ui/build/static/livescript-C6sYNsdz.js +0 -1
- package/web-ui/build/static/livescript-CMOawYYt.js +0 -1
- package/web-ui/build/static/llvm-Yx2vcmJw.js +0 -1
- package/web-ui/build/static/llvm-w4vVb6qs.js +0 -1
- package/web-ui/build/static/log-CqhluDSP.js +0 -1
- package/web-ui/build/static/lolcode-Ck0rxP3x.js +0 -1
- package/web-ui/build/static/lsl-BwPX-Qjm.js +0 -1
- package/web-ui/build/static/lua-4H_Ijh4D.js +0 -1
- package/web-ui/build/static/lua-dDdlvQ6u.js +0 -1
- package/web-ui/build/static/magma-2nRRraug.js +0 -1
- package/web-ui/build/static/makefile-C887R9mV.js +0 -1
- package/web-ui/build/static/makefile-hlNtZePL.js +0 -1
- package/web-ui/build/static/markdown-DCALPnuW.js +0 -1
- package/web-ui/build/static/markdown-DGM_Z5tW.js +0 -1
- package/web-ui/build/static/markup-templating-PAvYDmBZ.js +0 -1
- package/web-ui/build/static/mathematica-CGL-Gomp.js +0 -1
- package/web-ui/build/static/matlab-C46ZZzlH.js +0 -1
- package/web-ui/build/static/matlab-WUgx8roJ.js +0 -1
- package/web-ui/build/static/maxima-Dd_TIy4H.js +0 -1
- package/web-ui/build/static/maxscript-f8SP9Ybn.js +0 -1
- package/web-ui/build/static/mel-6l2ZAh7F.js +0 -1
- package/web-ui/build/static/mel-BYdNMJzZ.js +0 -1
- package/web-ui/build/static/mercury-CdHf1buq.js +0 -1
- package/web-ui/build/static/mermaid-IRgUMtb1.js +0 -1
- package/web-ui/build/static/mipsasm-CRPpDKP4.js +0 -1
- package/web-ui/build/static/mizar-B4DBCLSi.js +0 -1
- package/web-ui/build/static/mizar-DiuZyDh7.js +0 -1
- package/web-ui/build/static/mojolicious-ChuQv8wb.js +0 -1
- package/web-ui/build/static/mongodb-CE5Epj0T.js +0 -1
- package/web-ui/build/static/monkey-BAz4pIwb.js +0 -1
- package/web-ui/build/static/monkey-i_g3gMkJ.js +0 -1
- package/web-ui/build/static/moonscript-BNaNpboV.js +0 -1
- package/web-ui/build/static/moonscript-uHlQVjxf.js +0 -1
- package/web-ui/build/static/n1ql-CBDLma2D.js +0 -1
- package/web-ui/build/static/n1ql-u4YLlLfk.js +0 -1
- package/web-ui/build/static/n4js-IVFjZEMP.js +0 -1
- package/web-ui/build/static/nand2tetris-hdl-Ba72aD32.js +0 -1
- package/web-ui/build/static/naniscript-CjMhybrb.js +0 -1
- package/web-ui/build/static/nasm-DjKhk70h.js +0 -1
- package/web-ui/build/static/neon-JEhMoh8P.js +0 -1
- package/web-ui/build/static/nevod-6tgpQVCA.js +0 -1
- package/web-ui/build/static/nginx-C6NwXcw_.js +0 -1
- package/web-ui/build/static/nginx-CquSTZbP.js +0 -1
- package/web-ui/build/static/nim-0bOOYxfL.js +0 -1
- package/web-ui/build/static/nim-aCQGMs_4.js +0 -1
- package/web-ui/build/static/nix-BV4kRCY_.js +0 -1
- package/web-ui/build/static/nix-FvSL2V8j.js +0 -1
- package/web-ui/build/static/node-repl-GtjTvb93.js +0 -1
- package/web-ui/build/static/nsis-DsftItKH.js +0 -1
- package/web-ui/build/static/nsis-pu7O80Pq.js +0 -1
- package/web-ui/build/static/objectivec-Bx7Bj0U_.js +0 -1
- package/web-ui/build/static/objectivec-GtO6Znp9.js +0 -1
- package/web-ui/build/static/ocaml-B71sR3qa.js +0 -1
- package/web-ui/build/static/ocaml-BlhoK75p.js +0 -1
- package/web-ui/build/static/opencl-40JZ6XXw.js +0 -1
- package/web-ui/build/static/openqasm-cDL6l7w3.js +0 -1
- package/web-ui/build/static/openscad-BQ0gNGv9.js +0 -1
- package/web-ui/build/static/oxygene-1fX2ftBa.js +0 -1
- package/web-ui/build/static/oz-Cgq2yQZq.js +0 -1
- package/web-ui/build/static/parigp-DfRO3DxU.js +0 -1
- package/web-ui/build/static/parser-hZcHrq-n.js +0 -1
- package/web-ui/build/static/parser3-Cf2p4Ryg.js +0 -1
- package/web-ui/build/static/pascal-C6tg_yvS.js +0 -1
- package/web-ui/build/static/pascaligo-9U9PdOS6.js +0 -1
- package/web-ui/build/static/pcaxis-B5EnEKrt.js +0 -1
- package/web-ui/build/static/peoplecode-Cf2sGzFJ.js +0 -1
- package/web-ui/build/static/perl-C9FNSHZx.js +0 -1
- package/web-ui/build/static/perl-uzSwl6wJ.js +0 -1
- package/web-ui/build/static/pf-C7Bjci1q.js +0 -1
- package/web-ui/build/static/pgsql-IBD1Cka7.js +0 -1
- package/web-ui/build/static/php-19XvqtTQ.js +0 -1
- package/web-ui/build/static/php-CUjVuQ1J.js +0 -1
- package/web-ui/build/static/php-extras-GWBU2Qbm.js +0 -1
- package/web-ui/build/static/php-template-Chtii014.js +0 -1
- package/web-ui/build/static/phpdoc-BLcJXgrV.js +0 -1
- package/web-ui/build/static/plaintext-BX3hHjdj.js +0 -1
- package/web-ui/build/static/plsql-tCcTmmsx.js +0 -1
- package/web-ui/build/static/pony-CKD16QkU.js +0 -1
- package/web-ui/build/static/powerquery-DXj7kqMe.js +0 -1
- package/web-ui/build/static/powershell-0jB2gvRR.js +0 -1
- package/web-ui/build/static/powershell-Ca6UjZV2.js +0 -1
- package/web-ui/build/static/processing-CPjwH4wc.js +0 -1
- package/web-ui/build/static/processing-ItKy7l8u.js +0 -1
- package/web-ui/build/static/profile-6N_Rzycx.js +0 -1
- package/web-ui/build/static/prolog-BV3TgLfG.js +0 -1
- package/web-ui/build/static/prolog-C5UoVyBz.js +0 -1
- package/web-ui/build/static/promql-CZot8Bw3.js +0 -1
- package/web-ui/build/static/properties-C_r_5f7N.js +0 -1
- package/web-ui/build/static/properties-qycKL1T0.js +0 -1
- package/web-ui/build/static/protobuf-BmdKEOw6.js +0 -1
- package/web-ui/build/static/protobuf-CxWC8PvT.js +0 -1
- package/web-ui/build/static/psl-CFSNRM7z.js +0 -1
- package/web-ui/build/static/pug-8dv12FtI.js +0 -1
- package/web-ui/build/static/puppet-CNjskGXn.js +0 -1
- package/web-ui/build/static/puppet-Cf6xZODN.js +0 -1
- package/web-ui/build/static/pure-exFir566.js +0 -1
- package/web-ui/build/static/purebasic-Bm6QaKku.js +0 -1
- package/web-ui/build/static/purebasic-lfzND9Qp.js +0 -1
- package/web-ui/build/static/purescript-D1xRYVQG.js +0 -1
- package/web-ui/build/static/python-DgkOjU0T.js +0 -1
- package/web-ui/build/static/python-o7BJVaX6.js +0 -1
- package/web-ui/build/static/python-repl-6SyonvH1.js +0 -1
- package/web-ui/build/static/q-CiQ2AFzU.js +0 -1
- package/web-ui/build/static/q-g7rEIWgm.js +0 -1
- package/web-ui/build/static/qml-ARc9Akfg.js +0 -1
- package/web-ui/build/static/qml-rVumxss_.js +0 -1
- package/web-ui/build/static/qore-CUXpqOSx.js +0 -1
- package/web-ui/build/static/qsharp-DMPNcgaz.js +0 -1
- package/web-ui/build/static/r-DCIo6joW.js +0 -1
- package/web-ui/build/static/r-nUBzz4LB.js +0 -1
- package/web-ui/build/static/racket--fPY_Q4o.js +0 -1
- package/web-ui/build/static/reason-CeVN9vJx.js +0 -1
- package/web-ui/build/static/reasonml-49SEasi3.js +0 -1
- package/web-ui/build/static/regex-BS97XMMk.js +0 -1
- package/web-ui/build/static/rego-Brc7DU11.js +0 -1
- package/web-ui/build/static/renpy-C2sPWAHv.js +0 -1
- package/web-ui/build/static/rest-DlZ7ycRe.js +0 -1
- package/web-ui/build/static/rib-C8WsA4on.js +0 -1
- package/web-ui/build/static/rip-dd9bS3Ar.js +0 -1
- package/web-ui/build/static/roboconf-CAEw-rS3.js +0 -1
- package/web-ui/build/static/roboconf-D0TfrLeu.js +0 -1
- package/web-ui/build/static/robotframework-CkgVY4bX.js +0 -1
- package/web-ui/build/static/routeros-DIek1v-Z.js +0 -1
- package/web-ui/build/static/rsl-DExhHtA1.js +0 -1
- package/web-ui/build/static/ruby-BjvzODgO.js +0 -1
- package/web-ui/build/static/ruby-Dflr1gcA.js +0 -1
- package/web-ui/build/static/ruleslanguage-BgzP6UBl.js +0 -1
- package/web-ui/build/static/rust-DxIro-GW.js +0 -1
- package/web-ui/build/static/rust-qWzP5Jcw.js +0 -1
- package/web-ui/build/static/sas-BrCJWU_w.js +0 -1
- package/web-ui/build/static/sas-itaOGZ-D.js +0 -1
- package/web-ui/build/static/sass-BTk1_hyU.js +0 -1
- package/web-ui/build/static/scala-DEtImhEo.js +0 -1
- package/web-ui/build/static/scala-DdZCH_nS.js +0 -1
- package/web-ui/build/static/scheme-CiOCQffl.js +0 -1
- package/web-ui/build/static/scheme-WaU-JPJX.js +0 -1
- package/web-ui/build/static/scilab-03tyg0ft.js +0 -1
- package/web-ui/build/static/scss-DXl2WSdH.js +0 -1
- package/web-ui/build/static/scss-movJ3vcX.js +0 -1
- package/web-ui/build/static/shell-DWmlNcrf.js +0 -1
- package/web-ui/build/static/shell-session-lHcfQbT0.js +0 -1
- package/web-ui/build/static/smali-7RKwn9RZ.js +0 -1
- package/web-ui/build/static/smali-TEMQ7bRM.js +0 -1
- package/web-ui/build/static/smalltalk-B_nVEfab.js +0 -1
- package/web-ui/build/static/smalltalk-BsA9wucb.js +0 -1
- package/web-ui/build/static/smarty-DSf4s_8v.js +0 -1
- package/web-ui/build/static/sml-BDO_Hmie.js +0 -1
- package/web-ui/build/static/sml-DKuy82zG.js +0 -1
- package/web-ui/build/static/solidity-jtWv6laA.js +0 -1
- package/web-ui/build/static/solution-file-DcfiquuJ.js +0 -1
- package/web-ui/build/static/soy-DmBVrDYd.js +0 -1
- package/web-ui/build/static/sparql-_JOxZ7fM.js +0 -1
- package/web-ui/build/static/splunk-spl-CHeBtp33.js +0 -1
- package/web-ui/build/static/sqf-9wI8rp5o.js +0 -1
- package/web-ui/build/static/sqf-BuKh30bG.js +0 -1
- package/web-ui/build/static/sql-ClFFHGMY.js +0 -1
- package/web-ui/build/static/sql-DVXtimpW.js +0 -1
- package/web-ui/build/static/sql_more-CNw-JJON.js +0 -1
- package/web-ui/build/static/squirrel-Bdi8LbT5.js +0 -1
- package/web-ui/build/static/stan-Brcz64A8.js +0 -1
- package/web-ui/build/static/stan-C9Q08Juk.js +0 -1
- package/web-ui/build/static/stata-ES8hryw_.js +0 -1
- package/web-ui/build/static/step21-Cfmoq4Lb.js +0 -1
- package/web-ui/build/static/stylus-DMKHLSvm.js +0 -1
- package/web-ui/build/static/stylus-Dcs8vyW2.js +0 -1
- package/web-ui/build/static/subunit-DRjv565H.js +0 -1
- package/web-ui/build/static/swift-0x_T9zx8.js +0 -1
- package/web-ui/build/static/swift-CUvpRg4a.js +0 -1
- package/web-ui/build/static/systemd-Dl8xGVv9.js +0 -1
- package/web-ui/build/static/t4-cs-DqvXuZwc.js +0 -1
- package/web-ui/build/static/t4-templating-DjN2N1uM.js +0 -1
- package/web-ui/build/static/t4-vb-CZQn9IVK.js +0 -1
- package/web-ui/build/static/taggerscript-CPCJkC2t.js +0 -1
- package/web-ui/build/static/tap-BPfuLhe7.js +0 -1
- package/web-ui/build/static/tap-CSdsd38Q.js +0 -1
- package/web-ui/build/static/tcl-4BqhAKLC.js +0 -1
- package/web-ui/build/static/tcl-Bh0Jg8jj.js +0 -1
- package/web-ui/build/static/textile-BiD4awlU.js +0 -1
- package/web-ui/build/static/thrift-Br1-10xh.js +0 -1
- package/web-ui/build/static/toml-QlLCqVpQ.js +0 -1
- package/web-ui/build/static/tp-B2Ef9EBz.js +0 -1
- package/web-ui/build/static/tremor-DuZdAfVr.js +0 -1
- package/web-ui/build/static/tsx-W3KEjccO.js +0 -1
- package/web-ui/build/static/tt2-D_tdF-56.js +0 -1
- package/web-ui/build/static/turtle-DxrQkFoq.js +0 -1
- package/web-ui/build/static/twig-DD44ApyU.js +0 -1
- package/web-ui/build/static/twig-vA3ZwAxn.js +0 -1
- package/web-ui/build/static/typescript-BfbcKNOu.js +0 -1
- package/web-ui/build/static/typescript-CvKtq1ix.js +0 -1
- package/web-ui/build/static/typoscript-BEu84JpE.js +0 -1
- package/web-ui/build/static/unrealscript-ohUNsJGM.js +0 -1
- package/web-ui/build/static/uorazor-BWer-chm.js +0 -1
- package/web-ui/build/static/uri-CPLTr_NY.js +0 -1
- package/web-ui/build/static/v-gAkMRmmI.js +0 -1
- package/web-ui/build/static/vala-Bktj5SNB.js +0 -1
- package/web-ui/build/static/vala-D1fDPFxI.js +0 -1
- package/web-ui/build/static/vbnet-Cn0g0ohh.js +0 -1
- package/web-ui/build/static/vbnet-TiYHF2WM.js +0 -1
- package/web-ui/build/static/vbscript-BUV-Kjvs.js +0 -1
- package/web-ui/build/static/vbscript-html-s1RgByjf.js +0 -1
- package/web-ui/build/static/velocity-DTy-TOwB.js +0 -1
- package/web-ui/build/static/verilog-4jk4MMXN.js +0 -1
- package/web-ui/build/static/verilog-aR4U-DJX.js +0 -1
- package/web-ui/build/static/vhdl-D72XnBZR.js +0 -1
- package/web-ui/build/static/vhdl-DFdtG28B.js +0 -1
- package/web-ui/build/static/vim-BMqsbQ-a.js +0 -1
- package/web-ui/build/static/vim-Cc3UuKOs.js +0 -1
- package/web-ui/build/static/visual-basic-CyC2kNGV.js +0 -1
- package/web-ui/build/static/warpscript-DpKFeISB.js +0 -1
- package/web-ui/build/static/wasm-SPljCkFH.js +0 -1
- package/web-ui/build/static/web-idl-Cie2yHU9.js +0 -1
- package/web-ui/build/static/wiki-BfYfwsBk.js +0 -1
- package/web-ui/build/static/wolfram-Dgi1K2gQ.js +0 -1
- package/web-ui/build/static/wren-CFQxgLld.js +0 -1
- package/web-ui/build/static/x86asm-CBIt2r64.js +0 -1
- package/web-ui/build/static/xeora-e5JHDF1T.js +0 -1
- package/web-ui/build/static/xl-CPZe-czl.js +0 -1
- package/web-ui/build/static/xml-BEuPuoS1.js +0 -1
- package/web-ui/build/static/xml-doc-DTOJGYE2.js +0 -1
- package/web-ui/build/static/xojo-ByMSKdYJ.js +0 -1
- package/web-ui/build/static/xquery--5iaD5oE.js +0 -1
- package/web-ui/build/static/xquery-DJp5PXZo.js +0 -1
- package/web-ui/build/static/yaml-CH8EnM9M.js +0 -1
- package/web-ui/build/static/yaml-mKr8oN1v.js +0 -1
- package/web-ui/build/static/yang-Nqdvm2mQ.js +0 -1
- package/web-ui/build/static/zephir-BJZaDzrW.js +0 -1
- package/web-ui/build/static/zig-DRkhvZLn.js +0 -1
|
@@ -364,6 +364,148 @@ describe('ToolsRegistry', () => {
|
|
|
364
364
|
expect(desc).toContain('HOW TO GET TOOL DOCUMENTATION');
|
|
365
365
|
});
|
|
366
366
|
|
|
367
|
+
describe('OPERATING POSTURE section', () => {
|
|
368
|
+
// Minimal fakes so the registry will accept these as memory/skills/taskmanager.
|
|
369
|
+
// BaseTool derives `this.id` from the class name (lowercased, with
|
|
370
|
+
// "Tool" stripped) — so the class must be named exactly *Tool* and
|
|
371
|
+
// the id is derived. We override `this.id` after super() to pin it
|
|
372
|
+
// independently of the class name, which keeps the test classes
|
|
373
|
+
// readable. validateTool() also requires parseParameters.
|
|
374
|
+
class FakeMemoryTool extends BaseTool {
|
|
375
|
+
constructor() { super(); this.id = 'memory'; }
|
|
376
|
+
getDescription() { return 'Memory tool stub'; }
|
|
377
|
+
parseParameters() { return {}; }
|
|
378
|
+
async execute() { return { ok: true }; }
|
|
379
|
+
}
|
|
380
|
+
class FakeSkillsTool extends BaseTool {
|
|
381
|
+
constructor() { super(); this.id = 'skills'; }
|
|
382
|
+
getDescription() { return 'Skills tool stub'; }
|
|
383
|
+
parseParameters() { return {}; }
|
|
384
|
+
async execute() { return { ok: true }; }
|
|
385
|
+
}
|
|
386
|
+
class FakeTaskManagerTool extends BaseTool {
|
|
387
|
+
constructor() { super(); this.id = 'taskmanager'; }
|
|
388
|
+
getDescription() { return 'TaskManager tool stub'; }
|
|
389
|
+
parseParameters() { return {}; }
|
|
390
|
+
async execute() { return { ok: true }; }
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
test('appears when memory tool is in capabilities (proactive memory nudge)', async () => {
|
|
394
|
+
await registry.registerTool(FakeMemoryTool);
|
|
395
|
+
const desc = registry.generateToolDescriptionsForPrompt(['memory']);
|
|
396
|
+
expect(desc).toContain('OPERATING POSTURE');
|
|
397
|
+
expect(desc).toMatch(/memory.*list/i);
|
|
398
|
+
// Plan/* should be cross-referenced here so agents writing a plan
|
|
399
|
+
// memory isn't an isolated tip buried in the memory tool's own desc.
|
|
400
|
+
expect(desc).toContain('plan/');
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
test('appears when skills tool is in capabilities (proactive skills nudge)', async () => {
|
|
404
|
+
await registry.registerTool(FakeSkillsTool);
|
|
405
|
+
const desc = registry.generateToolDescriptionsForPrompt(['skills']);
|
|
406
|
+
expect(desc).toContain('OPERATING POSTURE');
|
|
407
|
+
expect(desc).toMatch(/skills.*list/i);
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
test('does NOT appear when neither memory nor skills is in capabilities', async () => {
|
|
411
|
+
await registry.registerTool(TestTool);
|
|
412
|
+
const desc = registry.generateToolDescriptionsForPrompt(['test']);
|
|
413
|
+
expect(desc).not.toContain('OPERATING POSTURE');
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
test('distinguishes memory vs taskmanager when both are present (so agents know which to use)', async () => {
|
|
417
|
+
await registry.registerTool(FakeMemoryTool);
|
|
418
|
+
await registry.registerTool(FakeTaskManagerTool);
|
|
419
|
+
const desc = registry.generateToolDescriptionsForPrompt(['memory', 'taskmanager']);
|
|
420
|
+
expect(desc).toContain('OPERATING POSTURE');
|
|
421
|
+
expect(desc).toContain('persistent knowledge'); // memory
|
|
422
|
+
expect(desc).toContain('step-by-step'); // taskmanager
|
|
423
|
+
});
|
|
424
|
+
});
|
|
425
|
+
|
|
426
|
+
// ── Per-model prompt shape: skip text docs for tools with native schemas
|
|
427
|
+
// when the target uses the Responses API (codex / o-series / gpt-5-pro).
|
|
428
|
+
describe('apiType="responses" — trims duplication with native function schemas', () => {
|
|
429
|
+
class FakeMemoryTool extends BaseTool {
|
|
430
|
+
constructor() { super(); this.id = 'memory'; }
|
|
431
|
+
getDescription() { return 'Memory tool stub with LONG description that would normally take many tokens'; }
|
|
432
|
+
getSummary() { return 'Persistent memory'; }
|
|
433
|
+
parseParameters() { return {}; }
|
|
434
|
+
async execute() { return { ok: true }; }
|
|
435
|
+
}
|
|
436
|
+
class FakeTerminalTool extends BaseTool {
|
|
437
|
+
constructor() { super(); this.id = 'terminal'; }
|
|
438
|
+
getDescription() { return 'Terminal tool LONG description that would normally take many tokens'; }
|
|
439
|
+
getSummary() { return 'Shell access'; }
|
|
440
|
+
parseParameters() { return {}; }
|
|
441
|
+
async execute() { return { ok: true }; }
|
|
442
|
+
}
|
|
443
|
+
class FakeWebTool extends BaseTool {
|
|
444
|
+
// 'web' is NOT in OPENAI_FUNCTION_SCHEMAS — its text doc must always appear.
|
|
445
|
+
constructor() { super(); this.id = 'web'; }
|
|
446
|
+
getDescription() { return 'Web tool LONG description that would normally take many tokens'; }
|
|
447
|
+
getSummary() { return 'Browser automation'; }
|
|
448
|
+
parseParameters() { return {}; }
|
|
449
|
+
async execute() { return { ok: true }; }
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
test('omits text description for tools that have native function schemas (memory, terminal)', async () => {
|
|
453
|
+
await registry.registerTool(FakeMemoryTool);
|
|
454
|
+
await registry.registerTool(FakeTerminalTool);
|
|
455
|
+
|
|
456
|
+
const responsesDesc = registry.generateToolDescriptionsForPrompt(
|
|
457
|
+
['memory', 'terminal'],
|
|
458
|
+
{ apiType: 'responses' },
|
|
459
|
+
);
|
|
460
|
+
// Header still present + one-line pointer to structured schema.
|
|
461
|
+
expect(responsesDesc).toContain('AVAILABLE TOOLS');
|
|
462
|
+
expect(responsesDesc).toContain('see structured schema');
|
|
463
|
+
// The big multi-line text doc must NOT be repeated.
|
|
464
|
+
expect(responsesDesc).not.toContain('### MEMORY TOOL');
|
|
465
|
+
expect(responsesDesc).not.toContain('### TERMINAL TOOL');
|
|
466
|
+
expect(responsesDesc).not.toContain('LONG description that would normally take many tokens');
|
|
467
|
+
});
|
|
468
|
+
|
|
469
|
+
test('keeps text description for tools that do NOT have native function schemas (e.g. web)', async () => {
|
|
470
|
+
await registry.registerTool(FakeWebTool);
|
|
471
|
+
const responsesDesc = registry.generateToolDescriptionsForPrompt(
|
|
472
|
+
['web'],
|
|
473
|
+
{ apiType: 'responses' },
|
|
474
|
+
);
|
|
475
|
+
// 'web' has no native schema → text doc MUST be present.
|
|
476
|
+
expect(responsesDesc).toContain('### WEB TOOL');
|
|
477
|
+
expect(responsesDesc).toContain('LONG description that would normally take many tokens');
|
|
478
|
+
});
|
|
479
|
+
|
|
480
|
+
test('BACKWARD COMPAT: without apiType option, behaves exactly as before (full text for everything)', async () => {
|
|
481
|
+
await registry.registerTool(FakeMemoryTool);
|
|
482
|
+
await registry.registerTool(FakeTerminalTool);
|
|
483
|
+
|
|
484
|
+
const defaultDesc = registry.generateToolDescriptionsForPrompt(['memory', 'terminal']);
|
|
485
|
+
// No apiType → keep the heavy text docs as today.
|
|
486
|
+
expect(defaultDesc).toContain('### MEMORY TOOL');
|
|
487
|
+
expect(defaultDesc).toContain('### TERMINAL TOOL');
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
test('BACKWARD COMPAT: apiType="chat_completion" is equivalent to no apiType', async () => {
|
|
491
|
+
await registry.registerTool(FakeMemoryTool);
|
|
492
|
+
const a = registry.generateToolDescriptionsForPrompt(['memory'], { apiType: 'chat_completion' });
|
|
493
|
+
const b = registry.generateToolDescriptionsForPrompt(['memory']);
|
|
494
|
+
expect(a).toBe(b);
|
|
495
|
+
});
|
|
496
|
+
|
|
497
|
+
test('enhanceSystemPrompt forwards apiType option to the description builder', async () => {
|
|
498
|
+
await registry.registerTool(FakeMemoryTool);
|
|
499
|
+
const native = registry.enhanceSystemPrompt('Base.', ['memory'], { apiType: 'responses' });
|
|
500
|
+
const inline = registry.enhanceSystemPrompt('Base.', ['memory']);
|
|
501
|
+
// Native form is meaningfully shorter (we dropped the per-tool block).
|
|
502
|
+
expect(native.length).toBeLessThan(inline.length);
|
|
503
|
+
// Both still contain the section headers and the original base prompt.
|
|
504
|
+
expect(native).toContain('Base.');
|
|
505
|
+
expect(native).toContain('AVAILABLE TOOLS');
|
|
506
|
+
});
|
|
507
|
+
});
|
|
508
|
+
|
|
367
509
|
test('enhanceSystemPrompt appends tool docs', async () => {
|
|
368
510
|
await registry.registerTool(TestTool);
|
|
369
511
|
const enhanced = registry.enhanceSystemPrompt('Base prompt.', []);
|
|
@@ -419,6 +561,28 @@ describe('ToolsRegistry', () => {
|
|
|
419
561
|
expect(tools[0].iconName.length).toBeGreaterThan(0);
|
|
420
562
|
});
|
|
421
563
|
|
|
564
|
+
test('getAvailableToolsForUI prefers tool.name over description-parsed name', async () => {
|
|
565
|
+
// Regression: previously getAvailableToolsForUI ignored the explicit
|
|
566
|
+
// `this.name` set in every tool's constructor and tried to parse
|
|
567
|
+
// a name from "Foo Tool: …" prefixes in the description. When the
|
|
568
|
+
// description didn't follow that pattern OR had a colon elsewhere,
|
|
569
|
+
// the UI ended up rendering long sentences as the "name".
|
|
570
|
+
class NamedTool extends BaseTool {
|
|
571
|
+
constructor(...args) { super(...args); this.id = 'named'; this.name = 'Named Display'; }
|
|
572
|
+
getDescription() { return 'Some long description with a colon: that the old regex would eat'; }
|
|
573
|
+
parseParameters() { return {}; }
|
|
574
|
+
async execute() { return {}; }
|
|
575
|
+
}
|
|
576
|
+
await registry.registerTool(NamedTool);
|
|
577
|
+
const tools = registry.getAvailableToolsForUI();
|
|
578
|
+
const named = tools.find(t => t.id === 'named');
|
|
579
|
+
expect(named).toBeTruthy();
|
|
580
|
+
expect(named.name).toBe('Named Display');
|
|
581
|
+
// The description field still carries the readable first line —
|
|
582
|
+
// never the raw "name: " token alone.
|
|
583
|
+
expect(named.description.length).toBeGreaterThan(0);
|
|
584
|
+
});
|
|
585
|
+
|
|
422
586
|
test('_getToolCategory maps every known tool (no "Other") incl. video-gen', () => {
|
|
423
587
|
// Locks the "tools introduced to UI" alignment — a tool with no
|
|
424
588
|
// explicit category falls into "Other" and gets buried in dropdowns.
|
|
@@ -334,6 +334,298 @@ describe('CodeMapTool', () => {
|
|
|
334
334
|
expect(re).toContain('(.+/)?');
|
|
335
335
|
});
|
|
336
336
|
|
|
337
|
+
// ─────────────────────────────────────────────────────────────────
|
|
338
|
+
// Browser-JS / pre-ES-module patterns. Before this set of regexes,
|
|
339
|
+
// CodeMap on a vanilla client-side .js file produced an empty map
|
|
340
|
+
// because the parser only matched ESM exports + class methods.
|
|
341
|
+
// These tests pin the new patterns. Each test exercises ONE pattern
|
|
342
|
+
// in isolation so a future regression on any one of them surfaces
|
|
343
|
+
// a precise failure.
|
|
344
|
+
// ─────────────────────────────────────────────────────────────────
|
|
345
|
+
describe('_parseJS — browser-JS patterns', () => {
|
|
346
|
+
const opts = { publicOnly: false, withComments: false, includeImports: false };
|
|
347
|
+
const signatures = (entries) =>
|
|
348
|
+
entries.filter(e => e.kind === 'signature').map(e => e.text.trim());
|
|
349
|
+
|
|
350
|
+
test('top-level IIFE is captured', () => {
|
|
351
|
+
const entries = tool._parseJS([
|
|
352
|
+
'(function () {',
|
|
353
|
+
' var x = 1;',
|
|
354
|
+
'})();',
|
|
355
|
+
], opts);
|
|
356
|
+
expect(signatures(entries)).toContain('(function () {');
|
|
357
|
+
});
|
|
358
|
+
|
|
359
|
+
test('IIFE with leading ! or + prefix (Webpack-UMD style)', () => {
|
|
360
|
+
const entries = tool._parseJS([
|
|
361
|
+
'!function () { return 1; }();',
|
|
362
|
+
'+function () { return 2; }();',
|
|
363
|
+
], opts);
|
|
364
|
+
expect(signatures(entries)).toEqual(expect.arrayContaining([
|
|
365
|
+
'!function () { return 1; }();',
|
|
366
|
+
'+function () { return 2; }();',
|
|
367
|
+
]));
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
test('window.X = function — global assignment', () => {
|
|
371
|
+
const entries = tool._parseJS([
|
|
372
|
+
'window.MyApp = function () {',
|
|
373
|
+
' return 1;',
|
|
374
|
+
'};',
|
|
375
|
+
], opts);
|
|
376
|
+
expect(signatures(entries).join('\n')).toMatch(/window\.MyApp\s*=\s*function/);
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
test('globalThis.foo = () => — global arrow assignment', () => {
|
|
380
|
+
const entries = tool._parseJS([
|
|
381
|
+
'globalThis.greet = (name) => `hi ${name}`;',
|
|
382
|
+
], opts);
|
|
383
|
+
expect(signatures(entries).join('\n')).toMatch(/globalThis\.greet/);
|
|
384
|
+
});
|
|
385
|
+
|
|
386
|
+
test('Namespace.utils.foo = function — namespaced global assignment', () => {
|
|
387
|
+
const entries = tool._parseJS([
|
|
388
|
+
'MyApp.utils.formatDate = function (d) {',
|
|
389
|
+
' return d.toISOString();',
|
|
390
|
+
'};',
|
|
391
|
+
], opts);
|
|
392
|
+
expect(signatures(entries).join('\n')).toMatch(/MyApp\.utils\.formatDate/);
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
test('Foo.prototype.bar = function — prototype method', () => {
|
|
396
|
+
const entries = tool._parseJS([
|
|
397
|
+
'Foo.prototype.bar = function () {',
|
|
398
|
+
' return this.x;',
|
|
399
|
+
'};',
|
|
400
|
+
], opts);
|
|
401
|
+
expect(signatures(entries).join('\n')).toMatch(/Foo\.prototype\.bar/);
|
|
402
|
+
});
|
|
403
|
+
|
|
404
|
+
test('Foo.prototype.bar = () => — prototype arrow assignment', () => {
|
|
405
|
+
// (Real-world prototype-as-arrow is unusual but the regex
|
|
406
|
+
// covers it for completeness.)
|
|
407
|
+
const entries = tool._parseJS([
|
|
408
|
+
'Foo.prototype.bar = () => 42;',
|
|
409
|
+
], opts);
|
|
410
|
+
expect(signatures(entries).join('\n')).toMatch(/Foo\.prototype\.bar/);
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
test('jQuery $.fn.plugin = function — jQuery plugin pattern', () => {
|
|
414
|
+
const entries = tool._parseJS([
|
|
415
|
+
'$.fn.myPlugin = function (opts) {',
|
|
416
|
+
' return this.each(function () {});',
|
|
417
|
+
'};',
|
|
418
|
+
], opts);
|
|
419
|
+
expect(signatures(entries).join('\n')).toMatch(/\$\.fn\.myPlugin/);
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
test('jQuery.fn.plugin = function — full jQuery prefix', () => {
|
|
423
|
+
const entries = tool._parseJS([
|
|
424
|
+
'jQuery.fn.banner = function () { return this; };',
|
|
425
|
+
], opts);
|
|
426
|
+
expect(signatures(entries).join('\n')).toMatch(/jQuery\.fn\.banner/);
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
test('document.addEventListener("DOMContentLoaded", …) — page lifecycle', () => {
|
|
430
|
+
const entries = tool._parseJS([
|
|
431
|
+
'document.addEventListener("DOMContentLoaded", () => {',
|
|
432
|
+
' init();',
|
|
433
|
+
'});',
|
|
434
|
+
], opts);
|
|
435
|
+
expect(signatures(entries).join('\n')).toMatch(/document\.addEventListener/);
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
test('window.addEventListener("load", …) — page lifecycle (alt)', () => {
|
|
439
|
+
const entries = tool._parseJS([
|
|
440
|
+
'window.addEventListener("load", function () { boot(); });',
|
|
441
|
+
], opts);
|
|
442
|
+
expect(signatures(entries).join('\n')).toMatch(/window\.addEventListener/);
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
test('REGRESSION: a vanilla browser file (IIFE wrapping jQuery plugins) now produces a non-empty map', () => {
|
|
446
|
+
// This is the original failure case: pure client-side .js with
|
|
447
|
+
// none of the new patterns produced zero entries. Pre-fix this
|
|
448
|
+
// file's signatures.length would have been 0; post-fix it's > 0.
|
|
449
|
+
const entries = tool._parseJS([
|
|
450
|
+
'(function ($) {',
|
|
451
|
+
' $.fn.tooltip = function (options) {',
|
|
452
|
+
' return this.each(function () {});',
|
|
453
|
+
' };',
|
|
454
|
+
' $.fn.popover = function (options) {',
|
|
455
|
+
' return this.each(function () {});',
|
|
456
|
+
' };',
|
|
457
|
+
'})(jQuery);',
|
|
458
|
+
], opts);
|
|
459
|
+
expect(signatures(entries).length).toBeGreaterThanOrEqual(3);
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
test('REGRESSION: file unaffected by changes — modern ESM still matches', () => {
|
|
463
|
+
// Make sure adding the new regexes didn't regress the original
|
|
464
|
+
// matcher set.
|
|
465
|
+
const entries = tool._parseJS([
|
|
466
|
+
'export function hello() {}',
|
|
467
|
+
'export class Greeter {}',
|
|
468
|
+
'export const sum = (a, b) => a + b;',
|
|
469
|
+
], opts);
|
|
470
|
+
expect(signatures(entries).length).toBe(3);
|
|
471
|
+
});
|
|
472
|
+
});
|
|
473
|
+
|
|
474
|
+
// ─────────────────────────────────────────────────────────────────
|
|
475
|
+
// C / C++ — _parseC. Same approach as the JS path; we lock the
|
|
476
|
+
// patterns the regex needs to handle on real-world C/CPP files so
|
|
477
|
+
// a future refactor (e.g. swapping for tree-sitter) has explicit
|
|
478
|
+
// behavior to preserve.
|
|
479
|
+
// ─────────────────────────────────────────────────────────────────
|
|
480
|
+
describe('_parseC — C/C++ skeleton extraction', () => {
|
|
481
|
+
const opts = { publicOnly: false, withComments: false, includeImports: true };
|
|
482
|
+
const sig = (lines) => tool._parseC(lines, opts).filter(e => e.kind === 'signature').map(e => e.text.trim());
|
|
483
|
+
const imp = (lines) => tool._parseC(lines, opts).filter(e => e.kind === 'import').map(e => e.text.trim());
|
|
484
|
+
|
|
485
|
+
test('#include with angle brackets and quotes', () => {
|
|
486
|
+
const lines = [
|
|
487
|
+
'#include <stdio.h>',
|
|
488
|
+
'#include "myheader.h"',
|
|
489
|
+
];
|
|
490
|
+
expect(imp(lines)).toEqual([
|
|
491
|
+
'#include <stdio.h>',
|
|
492
|
+
'#include "myheader.h"',
|
|
493
|
+
]);
|
|
494
|
+
});
|
|
495
|
+
|
|
496
|
+
test('#define captured as signature', () => {
|
|
497
|
+
expect(sig(['#define MAX_BUF 1024', '#define PI 3.14'])).toEqual([
|
|
498
|
+
'#define MAX_BUF 1024',
|
|
499
|
+
'#define PI 3.14',
|
|
500
|
+
]);
|
|
501
|
+
});
|
|
502
|
+
|
|
503
|
+
test('class / struct / union / enum / namespace headers', () => {
|
|
504
|
+
const lines = [
|
|
505
|
+
'class Foo {',
|
|
506
|
+
'};',
|
|
507
|
+
'struct Bar {',
|
|
508
|
+
'};',
|
|
509
|
+
'union Baz { int a; };',
|
|
510
|
+
'enum class Color { RED, GREEN };',
|
|
511
|
+
'namespace loxia {',
|
|
512
|
+
'}',
|
|
513
|
+
];
|
|
514
|
+
const found = sig(lines).join('\n');
|
|
515
|
+
expect(found).toMatch(/class Foo/);
|
|
516
|
+
expect(found).toMatch(/struct Bar/);
|
|
517
|
+
expect(found).toMatch(/union Baz/);
|
|
518
|
+
expect(found).toMatch(/enum class Color/);
|
|
519
|
+
expect(found).toMatch(/namespace loxia/);
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
test('typedef and using alias', () => {
|
|
523
|
+
const lines = [
|
|
524
|
+
'typedef unsigned long u64;',
|
|
525
|
+
'using IntList = std::vector<int>;',
|
|
526
|
+
];
|
|
527
|
+
const found = sig(lines).join('\n');
|
|
528
|
+
expect(found).toMatch(/typedef unsigned long u64/);
|
|
529
|
+
expect(found).toMatch(/using IntList/);
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
test('free function definition with simple return type', () => {
|
|
533
|
+
const lines = [
|
|
534
|
+
'int add(int a, int b) {',
|
|
535
|
+
' return a + b;',
|
|
536
|
+
'}',
|
|
537
|
+
];
|
|
538
|
+
expect(sig(lines).join('\n')).toMatch(/int add\(int a, int b\)/);
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
test('static + inline + const-qualified function definitions', () => {
|
|
542
|
+
const lines = [
|
|
543
|
+
'static inline int square(int x) { return x * x; }',
|
|
544
|
+
'const char* greet(const char* name) {',
|
|
545
|
+
' return name;',
|
|
546
|
+
'}',
|
|
547
|
+
];
|
|
548
|
+
const found = sig(lines).join('\n');
|
|
549
|
+
expect(found).toMatch(/static inline int square/);
|
|
550
|
+
expect(found).toMatch(/const char\* greet/);
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
test('method, constructor, and destructor', () => {
|
|
554
|
+
const lines = [
|
|
555
|
+
'Foo::Foo(int x) : x_(x) {',
|
|
556
|
+
'}',
|
|
557
|
+
'Foo::~Foo() {',
|
|
558
|
+
'}',
|
|
559
|
+
'int Foo::compute(int n) const {',
|
|
560
|
+
' return n * x_;',
|
|
561
|
+
'}',
|
|
562
|
+
];
|
|
563
|
+
const found = sig(lines).join('\n');
|
|
564
|
+
expect(found).toMatch(/Foo::Foo\(int x\)/);
|
|
565
|
+
expect(found).toMatch(/Foo::~Foo\(\)/);
|
|
566
|
+
expect(found).toMatch(/int Foo::compute/);
|
|
567
|
+
});
|
|
568
|
+
|
|
569
|
+
test('REGRESSION: function CALLS are NOT misidentified as definitions', () => {
|
|
570
|
+
// Without the call-rejection heuristic, the regex would happily
|
|
571
|
+
// grab `printf("hi");` as a signature. Lock that it doesn't.
|
|
572
|
+
const lines = [
|
|
573
|
+
'int main(void) {',
|
|
574
|
+
' printf("hi");',
|
|
575
|
+
' foo();',
|
|
576
|
+
' return 0;',
|
|
577
|
+
'}',
|
|
578
|
+
];
|
|
579
|
+
// Only main(void) should be a signature; printf/foo are calls.
|
|
580
|
+
const found = sig(lines);
|
|
581
|
+
expect(found).toEqual(['int main(void) {']);
|
|
582
|
+
});
|
|
583
|
+
|
|
584
|
+
test('REGRESSION: a tiny realistic C file produces a useful skeleton', () => {
|
|
585
|
+
const lines = [
|
|
586
|
+
'#include <stdio.h>',
|
|
587
|
+
'',
|
|
588
|
+
'#define BUF_SIZE 256',
|
|
589
|
+
'',
|
|
590
|
+
'typedef struct {',
|
|
591
|
+
' int x;',
|
|
592
|
+
' int y;',
|
|
593
|
+
'} Point;',
|
|
594
|
+
'',
|
|
595
|
+
'static int distance_sq(Point p) {',
|
|
596
|
+
' return p.x * p.x + p.y * p.y;',
|
|
597
|
+
'}',
|
|
598
|
+
'',
|
|
599
|
+
'int main(int argc, char** argv) {',
|
|
600
|
+
' Point p = { 3, 4 };',
|
|
601
|
+
' printf("d² = %d\\n", distance_sq(p));',
|
|
602
|
+
' return 0;',
|
|
603
|
+
'}',
|
|
604
|
+
];
|
|
605
|
+
const all = tool._parseC(lines, opts);
|
|
606
|
+
// Includes count as imports; the rest are signatures.
|
|
607
|
+
const imports = all.filter(e => e.kind === 'import').map(e => e.text.trim());
|
|
608
|
+
const signatures = all.filter(e => e.kind === 'signature').map(e => e.text.trim());
|
|
609
|
+
expect(imports).toEqual(['#include <stdio.h>']);
|
|
610
|
+
expect(signatures).toEqual(expect.arrayContaining([
|
|
611
|
+
'#define BUF_SIZE 256',
|
|
612
|
+
'static int distance_sq(Point p) {',
|
|
613
|
+
'int main(int argc, char** argv) {',
|
|
614
|
+
]));
|
|
615
|
+
});
|
|
616
|
+
});
|
|
617
|
+
|
|
618
|
+
test('_langOf detects C/C++ files', () => {
|
|
619
|
+
expect(tool._langOf('foo.c')).toBe('c');
|
|
620
|
+
expect(tool._langOf('foo.h')).toBe('c');
|
|
621
|
+
expect(tool._langOf('foo.cpp')).toBe('c');
|
|
622
|
+
expect(tool._langOf('foo.cxx')).toBe('c');
|
|
623
|
+
expect(tool._langOf('foo.hpp')).toBe('c');
|
|
624
|
+
expect(tool._langOf('foo.cc')).toBe('c');
|
|
625
|
+
expect(tool._langOf('app.js')).toBe('js'); // sanity
|
|
626
|
+
expect(tool._langOf('script.py')).toBe('python'); // sanity
|
|
627
|
+
});
|
|
628
|
+
|
|
337
629
|
test('execute skeleton on unsupported file type throws', async () => {
|
|
338
630
|
mockFsPromises.stat.mockResolvedValue({
|
|
339
631
|
isFile: () => true,
|
|
@@ -345,4 +637,100 @@ describe('CodeMapTool', () => {
|
|
|
345
637
|
context
|
|
346
638
|
)).rejects.toThrow('Unsupported file type');
|
|
347
639
|
});
|
|
640
|
+
|
|
641
|
+
// ─────────────────────────────────────────────────────────────────
|
|
642
|
+
// Regex-free parser regressions — these cases are exactly the
|
|
643
|
+
// kind of pattern that brittle regex would silently mis-classify.
|
|
644
|
+
// They lock down the new string-utility implementation against
|
|
645
|
+
// the most common false-positive risks.
|
|
646
|
+
// ─────────────────────────────────────────────────────────────────
|
|
647
|
+
describe('REGRESSION: no-regex parsers — false-positive guards', () => {
|
|
648
|
+
const opts = { publicOnly: false, withComments: false, includeImports: true };
|
|
649
|
+
|
|
650
|
+
// JS
|
|
651
|
+
test('JS: `class` keyword does NOT match `classroom = …`', () => {
|
|
652
|
+
const entries = tool._parseJS(['classroom = 1;'], opts);
|
|
653
|
+
// No signature should be emitted — `classroom` is a plain var, not a class.
|
|
654
|
+
expect(entries.filter(e => e.kind === 'signature').length).toBe(0);
|
|
655
|
+
});
|
|
656
|
+
test('JS: string literal containing `class` does NOT push a class frame', () => {
|
|
657
|
+
// Pre-fix the original regex `(stripped.match(/\{/g) || []).length` could
|
|
658
|
+
// be tripped by content inside strings if not pre-masked. The no-regex
|
|
659
|
+
// implementation masks strings before counting braces.
|
|
660
|
+
const entries = tool._parseJS([
|
|
661
|
+
'const x = "class Foo {";',
|
|
662
|
+
], opts);
|
|
663
|
+
// Only the `const` line should produce something; no class signature.
|
|
664
|
+
const sigs = entries.filter(e => e.kind === 'signature').map(e => e.text);
|
|
665
|
+
expect(sigs.some(s => s.startsWith('class '))).toBe(false);
|
|
666
|
+
});
|
|
667
|
+
test('JS: `// foo` and `/* foo */` line/block comments still suppress signatures', () => {
|
|
668
|
+
const entries = tool._parseJS([
|
|
669
|
+
'// export function fake() {}',
|
|
670
|
+
'/* export function alsoFake() {} */',
|
|
671
|
+
'export function real() {}',
|
|
672
|
+
], opts);
|
|
673
|
+
const sigs = entries.filter(e => e.kind === 'signature').map(e => e.text.trim());
|
|
674
|
+
expect(sigs).toEqual(['export function real() {}']);
|
|
675
|
+
});
|
|
676
|
+
test('JS: `require` as a substring inside another identifier is NOT an import', () => {
|
|
677
|
+
// E.g. `prerequires = []` or `xrequireY()` — neither should be classified
|
|
678
|
+
// as an import line by the require-call detector.
|
|
679
|
+
const entries = tool._parseJS([
|
|
680
|
+
'const xrequireY = makeIt();',
|
|
681
|
+
], opts);
|
|
682
|
+
expect(entries.filter(e => e.kind === 'import').length).toBe(0);
|
|
683
|
+
});
|
|
684
|
+
test('JS: `==` after a global LHS does NOT trigger an assignment match', () => {
|
|
685
|
+
const entries = tool._parseJS([
|
|
686
|
+
'window.foo == bar;',
|
|
687
|
+
], opts);
|
|
688
|
+
expect(entries.filter(e => e.kind === 'signature').length).toBe(0);
|
|
689
|
+
});
|
|
690
|
+
|
|
691
|
+
// C
|
|
692
|
+
test('C: `class` inside a string literal does NOT push a class signature', () => {
|
|
693
|
+
const entries = tool._parseC([
|
|
694
|
+
'const char* msg = "class is a keyword in C++";',
|
|
695
|
+
], opts);
|
|
696
|
+
// The C parser is line-based and doesn't deeply track string state;
|
|
697
|
+
// this asserts the realistic case where the assignment isn't a class.
|
|
698
|
+
// The line shouldn't surface as a "class …" signature.
|
|
699
|
+
const sigs = entries.filter(e => e.kind === 'signature').map(e => e.text);
|
|
700
|
+
expect(sigs.some(s => s.trim().startsWith('class '))).toBe(false);
|
|
701
|
+
});
|
|
702
|
+
test('C: bare function CALL `foo(x, y);` is NOT a definition', () => {
|
|
703
|
+
const entries = tool._parseC([' foo(1, 2);'], opts);
|
|
704
|
+
expect(entries.filter(e => e.kind === 'signature').length).toBe(0);
|
|
705
|
+
});
|
|
706
|
+
|
|
707
|
+
// Python
|
|
708
|
+
test('Python: `class` keyword does NOT match `classroom = 1`', () => {
|
|
709
|
+
const entries = tool._parsePython(['classroom = 1'], opts);
|
|
710
|
+
// It's a top-level data assignment, NOT a class signature.
|
|
711
|
+
const sigs = entries.filter(e => e.kind === 'signature').map(e => e.text);
|
|
712
|
+
expect(sigs.length).toBe(0);
|
|
713
|
+
const datas = entries.filter(e => e.kind === 'data');
|
|
714
|
+
expect(datas.length).toBe(1);
|
|
715
|
+
});
|
|
716
|
+
test('Python: `def` keyword on a line where it is NOT the leading token (e.g. `nodef(x):`) is not a function', () => {
|
|
717
|
+
// The word-boundary check in startsWithKeyword catches this case.
|
|
718
|
+
const entries = tool._parsePython(['nodef(x):'], opts);
|
|
719
|
+
expect(entries.filter(e => e.kind === 'signature').length).toBe(0);
|
|
720
|
+
});
|
|
721
|
+
test('Python: relative import `from . import foo` is captured', () => {
|
|
722
|
+
const entries = tool._parsePython(['from . import foo'], opts);
|
|
723
|
+
expect(entries.filter(e => e.kind === 'import').length).toBe(1);
|
|
724
|
+
});
|
|
725
|
+
test('Python: docstring closes correctly on a one-liner', () => {
|
|
726
|
+
const entries = tool._parsePython([
|
|
727
|
+
'def hello():',
|
|
728
|
+
' """One-liner docstring."""',
|
|
729
|
+
' return 1',
|
|
730
|
+
], { ...opts, withComments: true });
|
|
731
|
+
const kinds = entries.map(e => e.kind);
|
|
732
|
+
expect(kinds).toContain('signature');
|
|
733
|
+
expect(kinds).toContain('comment');
|
|
734
|
+
});
|
|
735
|
+
});
|
|
348
736
|
});
|