onbuzz 4.8.2 → 4.9.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/bin/cli.js +27 -1
- package/bin/composio-cli.js +431 -0
- package/package.json +1 -1
- package/scripts/build-onboarding-doc.cjs +805 -0
- package/scripts/composio-bench/README.md +151 -0
- package/scripts/memory-bench/bench.mjs +576 -0
- package/scripts/memory-bench/live-after-2026-05-21T16-20-52-767Z.json +150 -0
- package/scripts/memory-bench/live-after-2026-05-21T16-37-17-147Z.json +795 -0
- package/scripts/memory-bench/live-after-final-2026-05-21T17-16-02-947Z.json +766 -0
- package/scripts/memory-bench/live-after-v2-2026-05-21T16-52-26-833Z.json +890 -0
- package/scripts/memory-bench/live-after-v3-2026-05-21T17-05-40-622Z.json +955 -0
- package/scripts/memory-bench/live-probe-v2.mjs +412 -0
- package/scripts/memory-bench/live-probe.mjs +387 -0
- package/scripts/memory-bench/live-smoke-2026-05-21T16-22-35-945Z.json +36 -0
- package/scripts/memory-bench/live-smoke2-2026-05-21T16-24-14-095Z.json +36 -0
- package/scripts/memory-bench/live-smoke3-2026-05-21T16-26-54-093Z.json +123 -0
- package/scripts/memory-bench/live-v2-baseline-2026-05-23T22-43-20-757Z.json +628 -0
- package/scripts/memory-bench/live-v2-directive-2026-05-23T21-32-41-369Z.json +628 -0
- package/scripts/memory-bench/live-v2-smoke-2026-05-23T20-06-37-325Z.json +34 -0
- package/scripts/memory-bench/live-v2-smoke-2026-05-23T20-12-48-199Z.json +38 -0
- package/scripts/memory-bench/results-baseline-2026-05-19T11-23-12-245Z.json +39 -0
- package/scripts/memory-bench/results-baseline-2026-05-19T11-30-28-763Z.json +1024 -0
- package/scripts/memory-bench/results-baseline-2026-05-19T11-34-19-299Z.json +1007 -0
- package/scripts/memory-bench/results-baseline-2026-05-19T11-44-18-054Z.json +1432 -0
- package/scripts/memory-bench/results-nudge-combined-2026-05-19T12-00-37-465Z.json +1413 -0
- package/scripts/memory-bench/results-nudge-directive-2026-05-19T11-36-52-963Z.json +210 -0
- package/scripts/memory-bench/results-nudge-directive-2026-05-19T11-49-55-790Z.json +1464 -0
- package/scripts/memory-bench/results-nudge-echo-catalog-2026-05-19T11-39-01-829Z.json +232 -0
- package/scripts/memory-bench/results-nudge-echo-catalog-2026-05-19T11-55-12-705Z.json +1397 -0
- package/scripts/memory-bench/scenarios-v2.mjs +123 -0
- package/scripts/memory-bench/scenarios.mjs +178 -0
- package/scripts/office-bench/generate-samples.mjs +180 -0
- package/scripts/op-posture-bench/bench.mjs +397 -0
- package/scripts/op-posture-bench/probe.mjs +87 -0
- package/scripts/op-posture-bench/results-2026-05-18T20-29-13-941Z.json +57 -0
- package/scripts/op-posture-bench/results-2026-05-18T20-38-36-400Z.json +3071 -0
- package/scripts/op-posture-bench/scenarios.mjs +60 -0
- package/scripts/op-posture-bench/variants.mjs +68 -0
- package/scripts/stub-bench/bench.mjs +439 -0
- package/scripts/stub-bench/fixture/auth.js +41 -0
- package/scripts/stub-bench/results-2026-05-19T10-33-27-045Z.json +99 -0
- package/scripts/stub-bench/results-2026-05-19T10-35-08-240Z.json +920 -0
- package/scripts/stub-bench/results-2026-05-19T10-40-12-166Z.json +463 -0
- package/src/__tests__/composioCliFlags.test.js +239 -0
- package/src/core/__tests__/agentScheduler.codebaseKnowledge.test.js +65 -0
- package/src/core/__tests__/agentScheduler.memoryInjection.test.js +78 -0
- package/src/core/agentPool.js +10 -0
- package/src/core/agentScheduler.js +91 -0
- package/src/index.js +19 -3
- package/src/interfaces/__tests__/bulkAgentRoute.test.js +290 -0
- package/src/interfaces/__tests__/composioRoutes.test.js +318 -0
- package/src/interfaces/webServer.js +346 -2
- package/src/interfaces/webServer.js.bak +7047 -0
- package/src/services/__tests__/codeMapStubRenderer.test.js +207 -0
- package/src/services/__tests__/codebaseKnowledgeService.test.js +427 -0
- package/src/services/__tests__/compactionRetry.test.js +42 -42
- package/src/services/__tests__/composioService.test.js +332 -0
- package/src/services/__tests__/memoryService.appendAndCatalog.test.js +139 -0
- package/src/services/apiKeyManager.js +33 -0
- package/src/services/codeMapStubRenderer.js +142 -0
- package/src/services/codebaseKnowledgeService.js +430 -0
- package/src/services/composioService.js +378 -0
- package/src/services/memoryService.js +98 -0
- package/src/tools/__tests__/baseTool.test.js +62 -0
- package/src/tools/__tests__/codeMapTool.pluralCanonical.test.js +83 -0
- package/src/tools/__tests__/composioTool.test.js +268 -0
- package/src/tools/__tests__/memoryTool.pluralCanonical.test.js +189 -0
- package/src/tools/__tests__/memoryTool.test.js +1 -1
- package/src/tools/__tests__/officeTool.test.js +403 -0
- package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +24 -25
- package/src/tools/__tests__/singularToolReverseForgive.test.js +97 -0
- package/src/tools/__tests__/taskManagerTool.discipline.test.js +137 -0
- package/src/tools/__tests__/taskManagerTool.transition.test.js +236 -0
- package/src/tools/__tests__/toolShapeForgiveness.test.js +260 -0
- package/src/tools/baseTool.js +28 -1
- package/src/tools/codeMapTool.js +1673 -1521
- package/src/tools/composioTool.js +307 -0
- package/src/tools/fileContentReplaceTool.js +893 -840
- package/src/tools/fileSystemTool.js +1372 -1314
- package/src/tools/fileTreeTool.js +7 -0
- package/src/tools/memoryTool.js +217 -81
- package/src/tools/office/officeDoc.js +425 -0
- package/src/tools/office/officePres.js +360 -0
- package/src/tools/office/officeSheet.js +350 -0
- package/src/tools/officeTool.js +313 -0
- package/src/tools/openaiFunctionSchemas.js +40 -50
- package/src/tools/platformControlTool.js +5 -0
- package/src/tools/seekTool.js +36 -1
- package/src/tools/skillsTool.js +10 -0
- package/src/tools/taskManagerTool.js +149 -14
- package/src/tools/terminalTool.js +23 -1
- package/src/tools/visionTool.js +7 -0
- package/src/tools/visualEditorTool.js +7 -0
- package/src/tools/whatsappTool.js +7 -0
- package/src/utilities/authCache.js +47 -6
- package/src/utilities/authCache.js.backup-1779570472481 +121 -0
- package/src/utilities/constants.js +19 -11
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/1c-BoCdC5pC.js +1 -0
- package/web-ui/build/static/abap-D7A92M1K.js +1 -0
- package/web-ui/build/static/abnf-DIcpJ99N.js +1 -0
- package/web-ui/build/static/abnf-d4I9yABN.js +1 -0
- package/web-ui/build/static/accesslog-D_Ksv5Fi.js +1 -0
- package/web-ui/build/static/actionscript-CMJI1an7.js +1 -0
- package/web-ui/build/static/actionscript-CNcWu4a1.js +1 -0
- package/web-ui/build/static/ada-BIqOBKro.js +1 -0
- package/web-ui/build/static/ada-BaTkJMdz.js +1 -0
- package/web-ui/build/static/agda-DmRdGgvt.js +1 -0
- package/web-ui/build/static/al-g8BvIfOt.js +1 -0
- package/web-ui/build/static/angelscript-BGxc0B7l.js +1 -0
- package/web-ui/build/static/antlr4-Da7ff6-m.js +1 -0
- package/web-ui/build/static/apache-Bibp-dVJ.js +1 -0
- package/web-ui/build/static/apacheconf-VzeL8tYb.js +1 -0
- package/web-ui/build/static/apex-DUaOCea3.js +1 -0
- package/web-ui/build/static/apl-BpwvFE2V.js +1 -0
- package/web-ui/build/static/applescript-5YKSWwV1.js +1 -0
- package/web-ui/build/static/applescript-BHqj5bpe.js +1 -0
- package/web-ui/build/static/aql-B0Wx_3hH.js +1 -0
- package/web-ui/build/static/arcade-CR8KkII1.js +1 -0
- package/web-ui/build/static/arduino-CYx5u85C.js +1 -0
- package/web-ui/build/static/arduino-ClVU2zro.js +1 -0
- package/web-ui/build/static/arff-kutIH4CC.js +1 -0
- package/web-ui/build/static/armasm-DBm1lGrc.js +1 -0
- package/web-ui/build/static/asciidoc-Cl02VMGf.js +1 -0
- package/web-ui/build/static/asciidoc-MMFYRqre.js +1 -0
- package/web-ui/build/static/asm6502-DPVMGaHn.js +1 -0
- package/web-ui/build/static/asmatmel-Dz4vtZ11.js +1 -0
- package/web-ui/build/static/aspectj-BZidGBlr.js +1 -0
- package/web-ui/build/static/aspnet-C2mo9iee.js +1 -0
- package/web-ui/build/static/autohotkey-Bx83oFMW.js +1 -0
- package/web-ui/build/static/autohotkey-DciFl6K5.js +1 -0
- package/web-ui/build/static/autoit-TVKWI5bu.js +1 -0
- package/web-ui/build/static/autoit-oORW7mrd.js +1 -0
- package/web-ui/build/static/avisynth-D_5uOtxP.js +1 -0
- package/web-ui/build/static/avrasm-D22JmbLm.js +1 -0
- package/web-ui/build/static/avro-idl-CtTuANGZ.js +1 -0
- package/web-ui/build/static/awk-Bnez22eR.js +1 -0
- package/web-ui/build/static/axapta-eqcr7C2-.js +1 -0
- package/web-ui/build/static/bash-D3XWHCZZ.js +1 -0
- package/web-ui/build/static/bash-px0MqVxE.js +1 -0
- package/web-ui/build/static/basic-BWOdgKLg.js +1 -0
- package/web-ui/build/static/basic-C7PK4wVg.js +1 -0
- package/web-ui/build/static/batch-CFeuSY9D.js +1 -0
- package/web-ui/build/static/bbcode-CRC0UNOS.js +1 -0
- package/web-ui/build/static/bicep-C18w8d6Z.js +1 -0
- package/web-ui/build/static/birb-DPiF4fwX.js +1 -0
- package/web-ui/build/static/bison-C1RWPaLl.js +1 -0
- package/web-ui/build/static/bnf-BelSXhsr.js +1 -0
- package/web-ui/build/static/bnf-D_m4SZuc.js +1 -0
- package/web-ui/build/static/brainfuck-Ci7P0POq.js +1 -0
- package/web-ui/build/static/brainfuck-DIrW6_96.js +1 -0
- package/web-ui/build/static/brightscript-4XgpA0OQ.js +1 -0
- package/web-ui/build/static/bro-4kAMStb2.js +1 -0
- package/web-ui/build/static/bsl-CleVjH1I.js +1 -0
- package/web-ui/build/static/c-Ct3AAwH6.js +1 -0
- package/web-ui/build/static/c-EiJrAzIQ.js +1 -0
- package/web-ui/build/static/c-like-B361rHmz.js +1 -0
- package/web-ui/build/static/cal-BZ3Pr4JI.js +1 -0
- package/web-ui/build/static/capnproto-LmwOdJJp.js +1 -0
- package/web-ui/build/static/ceylon-CKAfIFzx.js +1 -0
- package/web-ui/build/static/cfscript-Cms4z16U.js +1 -0
- package/web-ui/build/static/chaiscript-DKxRiUyN.js +1 -0
- package/web-ui/build/static/cil-C6rGhwce.js +1 -0
- package/web-ui/build/static/clean-DmpXs6RN.js +1 -0
- package/web-ui/build/static/clojure-DRYxiF9s.js +1 -0
- package/web-ui/build/static/clojure-DTjXEJCq.js +1 -0
- package/web-ui/build/static/clojure-repl-C1qlAUnK.js +1 -0
- package/web-ui/build/static/cmake-DtUokafC.js +1 -0
- package/web-ui/build/static/cmake-_WqF1fG8.js +1 -0
- package/web-ui/build/static/cobol-D2Q0IMuT.js +1 -0
- package/web-ui/build/static/coffeescript-MRThzdTU.js +1 -0
- package/web-ui/build/static/coffeescript-OHOpkJvb.js +1 -0
- package/web-ui/build/static/concurnas-CVGat9IA.js +1 -0
- package/web-ui/build/static/coq-CB_bM4lt.js +1 -0
- package/web-ui/build/static/coq-WNK38Cqz.js +1 -0
- package/web-ui/build/static/cos-CNa5GVxa.js +1 -0
- package/web-ui/build/static/cpp-D-9lHx0_.js +1 -0
- package/web-ui/build/static/cpp-DRvL1yaA.js +1 -0
- package/web-ui/build/static/crmsh-evnPMxnd.js +1 -0
- package/web-ui/build/static/crystal-RGhNrgnC.js +1 -0
- package/web-ui/build/static/crystal-yrBjXjEh.js +1 -0
- package/web-ui/build/static/csharp-Dr7sLtl1.js +1 -0
- package/web-ui/build/static/csharp-zNVQxjuC.js +1 -0
- package/web-ui/build/static/cshtml-CoiK-7Bu.js +1 -0
- package/web-ui/build/static/csp-Bhgq86EB.js +1 -0
- package/web-ui/build/static/csp-C20UcGAL.js +1 -0
- package/web-ui/build/static/css-D1vlrRV2.js +1 -0
- package/web-ui/build/static/css-extras-DVSAYMbv.js +1 -0
- package/web-ui/build/static/csv-BgR9D8jG.js +1 -0
- package/web-ui/build/static/cypher-Dxehyj6Y.js +1 -0
- package/web-ui/build/static/d-B-Se39n2.js +1 -0
- package/web-ui/build/static/d-Cr4d56op.js +1 -0
- package/web-ui/build/static/dart-BBqlOFkR.js +1 -0
- package/web-ui/build/static/dart-GRD7MWem.js +1 -0
- package/web-ui/build/static/dataweave-BK-Tahkw.js +1 -0
- package/web-ui/build/static/dax-pTr9GVoe.js +1 -0
- package/web-ui/build/static/delphi-CbwSNmp4.js +1 -0
- package/web-ui/build/static/dhall-CuFqRXr6.js +1 -0
- package/web-ui/build/static/diff-CK8Fq88e.js +1 -0
- package/web-ui/build/static/diff-CWbUTU-C.js +1 -0
- package/web-ui/build/static/django-DWaEPdP6.js +1 -0
- package/web-ui/build/static/django-TkEFpAOO.js +1 -0
- package/web-ui/build/static/dns-DKpFJlA0.js +1 -0
- package/web-ui/build/static/dns-zone-file-BIsmZEMf.js +1 -0
- package/web-ui/build/static/docker-DUavAYf7.js +1 -0
- package/web-ui/build/static/dockerfile-YnavjTIo.js +1 -0
- package/web-ui/build/static/dos-Dv3Qr-Oo.js +1 -0
- package/web-ui/build/static/dot-BtIPbx7t.js +1 -0
- package/web-ui/build/static/dsconfig-CEgd9-kI.js +1 -0
- package/web-ui/build/static/dts-BztZn8T6.js +1 -0
- package/web-ui/build/static/dust-B-527Hc0.js +1 -0
- package/web-ui/build/static/ebnf-CH_nnNi5.js +1 -0
- package/web-ui/build/static/ebnf-CuBjcj0j.js +1 -0
- package/web-ui/build/static/editorconfig-CA9KaQ0w.js +1 -0
- package/web-ui/build/static/eiffel-DVYJwwQw.js +1 -0
- package/web-ui/build/static/ejs-C2LKgDYE.js +1 -0
- package/web-ui/build/static/elixir-DVXGkbnw.js +1 -0
- package/web-ui/build/static/elixir-meJ_qqx4.js +1 -0
- package/web-ui/build/static/elm-C5sYS5Cb.js +1 -0
- package/web-ui/build/static/elm-Dj443pWY.js +1 -0
- package/web-ui/build/static/erb-CAj5yksQ.js +1 -0
- package/web-ui/build/static/erb-CcUB2tMd.js +1 -0
- package/web-ui/build/static/erlang-JusKooAX.js +1 -0
- package/web-ui/build/static/erlang-repl-wYgxDX5h.js +1 -0
- package/web-ui/build/static/erlang-sn-PsrSf.js +1 -0
- package/web-ui/build/static/etlua-ChDwUxz6.js +1 -0
- package/web-ui/build/static/excel-BJux1m2h.js +1 -0
- package/web-ui/build/static/excel-formula-i5ByFxAu.js +1 -0
- package/web-ui/build/static/factor-CTutAp6r.js +1 -0
- package/web-ui/build/static/false-DQz_zYVV.js +1 -0
- package/web-ui/build/static/firestore-security-rules-DRGBNXh2.js +1 -0
- package/web-ui/build/static/fix-DeSUhixI.js +1 -0
- package/web-ui/build/static/flix-BKTJVua_.js +1 -0
- package/web-ui/build/static/flow-BpcZsNuo.js +1 -0
- package/web-ui/build/static/fortran-BZIKfBPW.js +1 -0
- package/web-ui/build/static/fortran-BdezWEh5.js +1 -0
- package/web-ui/build/static/fsharp-1Gpt8wZo.js +1 -0
- package/web-ui/build/static/fsharp-CMyiqXUW.js +1 -0
- package/web-ui/build/static/ftl-D9bBJMhV.js +1 -0
- package/web-ui/build/static/gams-DL57wTHN.js +1 -0
- package/web-ui/build/static/gap-DN4Uo9cF.js +1 -0
- package/web-ui/build/static/gauss-DTa1H0QR.js +1 -0
- package/web-ui/build/static/gcode-U5GhqE37.js +1 -0
- package/web-ui/build/static/gcode-s-E37fb4.js +1 -0
- package/web-ui/build/static/gdscript-DkjgGcDv.js +1 -0
- package/web-ui/build/static/gedcom-BbjSSId3.js +1 -0
- package/web-ui/build/static/gherkin-BwIzGx7J.js +1 -0
- package/web-ui/build/static/gherkin-C97W_9I9.js +1 -0
- package/web-ui/build/static/git-DO8dnOip.js +1 -0
- package/web-ui/build/static/glsl-B_4UD4-O.js +1 -0
- package/web-ui/build/static/glsl-CGSjLy2x.js +1 -0
- package/web-ui/build/static/gml-BiITg8HI.js +1 -0
- package/web-ui/build/static/gml-DInGU66p.js +1 -0
- package/web-ui/build/static/gn--m2IH4i3.js +1 -0
- package/web-ui/build/static/go-DOK7GAd-.js +1 -0
- package/web-ui/build/static/go-bof0B9jK.js +1 -0
- package/web-ui/build/static/go-module-CPIVqmnL.js +1 -0
- package/web-ui/build/static/golo-jgy07E43.js +1 -0
- package/web-ui/build/static/gradle-BISOF0nH.js +1 -0
- package/web-ui/build/static/graphql-FqlbDLTL.js +1 -0
- package/web-ui/build/static/groovy-BM0ZyW4a.js +1 -0
- package/web-ui/build/static/groovy-oUdbfbZY.js +1 -0
- package/web-ui/build/static/haml-C8Qg-VO5.js +1 -0
- package/web-ui/build/static/haml-Dse28pB_.js +1 -0
- package/web-ui/build/static/handlebars-CWT7WazY.js +1 -0
- package/web-ui/build/static/handlebars-Ow3joqOm.js +1 -0
- package/web-ui/build/static/haskell-BfraeRhd.js +1 -0
- package/web-ui/build/static/haskell-EhcU7sbn.js +1 -0
- package/web-ui/build/static/haxe-B8tUoExu.js +1 -0
- package/web-ui/build/static/haxe-D9WQHhTh.js +1 -0
- package/web-ui/build/static/hcl-CG3GCouf.js +1 -0
- package/web-ui/build/static/hlsl-CSWRMQ3m.js +1 -0
- package/web-ui/build/static/hoon-Cj0JdbFY.js +1 -0
- package/web-ui/build/static/hpkp-CmjdXbgl.js +1 -0
- package/web-ui/build/static/hsp-VaFZ7Rlv.js +1 -0
- package/web-ui/build/static/hsts-CkJ6UPzY.js +1 -0
- package/web-ui/build/static/htmlbars-pfHjYqd2.js +1 -0
- package/web-ui/build/static/http-2LA-qivJ.js +1 -0
- package/web-ui/build/static/http-CQ_5JSsj.js +1 -0
- package/web-ui/build/static/hy-C-Dll2MQ.js +1 -0
- package/web-ui/build/static/ichigojam-DecRewwq.js +1 -0
- package/web-ui/build/static/icon-CdnU9zPA.js +1 -0
- package/web-ui/build/static/icu-message-format-CUQtjk6Q.js +1 -0
- package/web-ui/build/static/idris-CRMftLq6.js +1 -0
- package/web-ui/build/static/iecst-CXhHqz1P.js +1 -0
- package/web-ui/build/static/ignore-_emqIx7v.js +1 -0
- package/web-ui/build/static/index-BBHrMvg7.js +1216 -0
- package/web-ui/build/static/index-ChkZR_aE.js +13 -0
- package/web-ui/build/static/index-DU4GNSOf.js +1 -0
- package/web-ui/build/static/index-_z8JjNrI.css +1 -0
- package/web-ui/build/static/inform7-CbqlFoFE.js +1 -0
- package/web-ui/build/static/inform7-TxZViMJ9.js +1 -0
- package/web-ui/build/static/ini-D1sHtm5e.js +1 -0
- package/web-ui/build/static/ini-DnqB7pfX.js +1 -0
- package/web-ui/build/static/io-MnQK1mM-.js +1 -0
- package/web-ui/build/static/irpf90-BRaAenqx.js +1 -0
- package/web-ui/build/static/isbl-kubGT4rM.js +1 -0
- package/web-ui/build/static/j-BIz9wT9q.js +1 -0
- package/web-ui/build/static/java-CbQmsHSK.js +1 -0
- package/web-ui/build/static/java-v1B9fNL2.js +1 -0
- package/web-ui/build/static/javadoc-TB1OtWS7.js +1 -0
- package/web-ui/build/static/javadoclike-BBQPwDAU.js +1 -0
- package/web-ui/build/static/javascript-DzNVL5l_.js +1 -0
- package/web-ui/build/static/javastacktrace-BduOgG1e.js +1 -0
- package/web-ui/build/static/jboss-cli-BcqzI366.js +1 -0
- package/web-ui/build/static/jexl-Boyapidr.js +1 -0
- package/web-ui/build/static/jolie-hEbkNpsb.js +1 -0
- package/web-ui/build/static/jq-ZyEE6oGU.js +1 -0
- package/web-ui/build/static/js-extras-CXOzvlL7.js +1 -0
- package/web-ui/build/static/js-templates-CkHsm5px.js +1 -0
- package/web-ui/build/static/jsdoc-Uk3hj8z2.js +1 -0
- package/web-ui/build/static/json-BFi9igjd.js +1 -0
- package/web-ui/build/static/json-LI9wtNaG.js +1 -0
- package/web-ui/build/static/json5-PwjNByuN.js +1 -0
- package/web-ui/build/static/jsonp-DpfGuNSW.js +1 -0
- package/web-ui/build/static/jsstacktrace-DhOP2AhS.js +1 -0
- package/web-ui/build/static/jsx-DmWoDk8F.js +1 -0
- package/web-ui/build/static/julia-DBC5h81N.js +1 -0
- package/web-ui/build/static/julia-Dh9sV3LX.js +1 -0
- package/web-ui/build/static/julia-repl-BYyDp1f4.js +1 -0
- package/web-ui/build/static/keepalived-BTxjrZMV.js +1 -0
- package/web-ui/build/static/keyman-IYiyCDCU.js +1 -0
- package/web-ui/build/static/kotlin-C0PBuzvy.js +1 -0
- package/web-ui/build/static/kotlin-LWYZUK_T.js +1 -0
- package/web-ui/build/static/kumir-CQIbnv9I.js +1 -0
- package/web-ui/build/static/kusto-DA7pQ-Rb.js +1 -0
- package/web-ui/build/static/lasso-CrHySbnC.js +1 -0
- package/web-ui/build/static/latex-CLSOFXG4.js +1 -0
- package/web-ui/build/static/latex-DYknD4Dx.js +1 -0
- package/web-ui/build/static/latte-4QvZcKVw.js +1 -0
- package/web-ui/build/static/ldif-Dr96BfRx.js +1 -0
- package/web-ui/build/static/leaf-C9qL2Qde.js +1 -0
- package/web-ui/build/static/less-DpoID9ZJ.js +1 -0
- package/web-ui/build/static/less-wO8QO0XW.js +1 -0
- package/web-ui/build/static/lilypond-CNp4Kb1P.js +1 -0
- package/web-ui/build/static/liquid-DLULQdgV.js +1 -0
- package/web-ui/build/static/lisp-CrVo-Llt.js +1 -0
- package/web-ui/build/static/lisp-QIAoXzmW.js +1 -0
- package/web-ui/build/static/livecodeserver-DrehOgbf.js +1 -0
- package/web-ui/build/static/livescript-Cm2Yp34x.js +1 -0
- package/web-ui/build/static/livescript-mVYzlrko.js +1 -0
- package/web-ui/build/static/llvm-D6KsQJjh.js +1 -0
- package/web-ui/build/static/llvm-DhIp1o-1.js +1 -0
- package/web-ui/build/static/log-Sj3ocpgB.js +1 -0
- package/web-ui/build/static/lolcode-BSeGnWYG.js +1 -0
- package/web-ui/build/static/lsl-DwgUIp0U.js +1 -0
- package/web-ui/build/static/lua-B7Ot0Oou.js +1 -0
- package/web-ui/build/static/lua-zydwn5-S.js +1 -0
- package/web-ui/build/static/magma-Dgfy2Qny.js +1 -0
- package/web-ui/build/static/makefile-CSjtzdcw.js +1 -0
- package/web-ui/build/static/makefile-DrnEneus.js +1 -0
- package/web-ui/build/static/markdown-D9Ke3tYA.js +1 -0
- package/web-ui/build/static/markdown-DmwKuI2Y.js +1 -0
- package/web-ui/build/static/markup-templating-CikqfHT9.js +1 -0
- package/web-ui/build/static/mathematica-OC0imzI5.js +1 -0
- package/web-ui/build/static/matlab-BlPcqzRw.js +1 -0
- package/web-ui/build/static/matlab-C1iteCkE.js +1 -0
- package/web-ui/build/static/maxima-DecbOh0Y.js +1 -0
- package/web-ui/build/static/maxscript-80cPuIOA.js +1 -0
- package/web-ui/build/static/mel-NI7ysGX2.js +1 -0
- package/web-ui/build/static/mel-r03p1eJo.js +1 -0
- package/web-ui/build/static/mercury-BdNZw6ZU.js +1 -0
- package/web-ui/build/static/mermaid-C1LB7zMJ.js +1 -0
- package/web-ui/build/static/mipsasm-BnZ0cdht.js +1 -0
- package/web-ui/build/static/mizar-BGPNX3WQ.js +1 -0
- package/web-ui/build/static/mizar-CswPcmcG.js +1 -0
- package/web-ui/build/static/mojolicious-rRtgy8Or.js +1 -0
- package/web-ui/build/static/mongodb-CJU0oeix.js +1 -0
- package/web-ui/build/static/monkey-Bj0HaV5-.js +1 -0
- package/web-ui/build/static/monkey-JRYuMIYc.js +1 -0
- package/web-ui/build/static/moonscript-i7e8bkxZ.js +1 -0
- package/web-ui/build/static/moonscript-ldoM156V.js +1 -0
- package/web-ui/build/static/n1ql-C0xs8qWA.js +1 -0
- package/web-ui/build/static/n1ql-DlC-GlVq.js +1 -0
- package/web-ui/build/static/n4js-mIwtIanO.js +1 -0
- package/web-ui/build/static/nand2tetris-hdl-mfHIYPZD.js +1 -0
- package/web-ui/build/static/naniscript-DiDayxx1.js +1 -0
- package/web-ui/build/static/nasm-7uf2nfNC.js +1 -0
- package/web-ui/build/static/neon-BKgOgIAL.js +1 -0
- package/web-ui/build/static/nevod-BlujoQ5k.js +1 -0
- package/web-ui/build/static/nginx-Bb57ubp_.js +1 -0
- package/web-ui/build/static/nginx-DmLU0URp.js +1 -0
- package/web-ui/build/static/nim-CmnPRTHF.js +1 -0
- package/web-ui/build/static/nim-DOReB32c.js +1 -0
- package/web-ui/build/static/nix-BDMn1sgi.js +1 -0
- package/web-ui/build/static/nix-LTHuFEfQ.js +1 -0
- package/web-ui/build/static/node-repl-dxwu8SWp.js +1 -0
- package/web-ui/build/static/nsis-CKD0KqBT.js +1 -0
- package/web-ui/build/static/nsis-IlSwBUak.js +1 -0
- package/web-ui/build/static/objectivec-D4Lo30HV.js +1 -0
- package/web-ui/build/static/objectivec-zmGGqvoM.js +1 -0
- package/web-ui/build/static/ocaml-2uzfqAr8.js +1 -0
- package/web-ui/build/static/ocaml-wF6lV9H4.js +1 -0
- package/web-ui/build/static/opencl-B82Xjnw5.js +1 -0
- package/web-ui/build/static/openqasm-VzVaHpAP.js +1 -0
- package/web-ui/build/static/openscad-B-qK1VfW.js +1 -0
- package/web-ui/build/static/oxygene-BNTVgbsA.js +1 -0
- package/web-ui/build/static/oz-5ZfXBXQY.js +1 -0
- package/web-ui/build/static/parigp-S8JhoJoz.js +1 -0
- package/web-ui/build/static/parser-BZPtbLcv.js +1 -0
- package/web-ui/build/static/parser3-BZRLDHuv.js +1 -0
- package/web-ui/build/static/pascal-GKzqT2Ku.js +1 -0
- package/web-ui/build/static/pascaligo-DnbFz_mr.js +1 -0
- package/web-ui/build/static/pcaxis-DiRsos26.js +1 -0
- package/web-ui/build/static/peoplecode-CMDLbqGB.js +1 -0
- package/web-ui/build/static/perl-BOnBAciC.js +1 -0
- package/web-ui/build/static/perl-fMVLgVTb.js +1 -0
- package/web-ui/build/static/pf-z6xsHHPS.js +1 -0
- package/web-ui/build/static/pgsql-5jHAyGJf.js +1 -0
- package/web-ui/build/static/php-CbG6Jq36.js +1 -0
- package/web-ui/build/static/php-D9yyh70o.js +1 -0
- package/web-ui/build/static/php-extras-CQKSwnMo.js +1 -0
- package/web-ui/build/static/php-template-Ch4UQhUx.js +1 -0
- package/web-ui/build/static/phpdoc-Be7TYcGQ.js +1 -0
- package/web-ui/build/static/plaintext-BsYjBqDy.js +1 -0
- package/web-ui/build/static/plsql-Dc4ePipN.js +1 -0
- package/web-ui/build/static/pony-Cen7DtWb.js +1 -0
- package/web-ui/build/static/powerquery-BIOJ1eUE.js +1 -0
- package/web-ui/build/static/powershell-CbEjJpj7.js +1 -0
- package/web-ui/build/static/powershell-DlceT0ds.js +1 -0
- package/web-ui/build/static/processing-C9GaKPU-.js +1 -0
- package/web-ui/build/static/processing-CTPA3QIV.js +1 -0
- package/web-ui/build/static/profile-CHjz016L.js +1 -0
- package/web-ui/build/static/prolog-BK0g5F4c.js +1 -0
- package/web-ui/build/static/prolog-DrrwUODp.js +1 -0
- package/web-ui/build/static/promql-DftRCUlR.js +1 -0
- package/web-ui/build/static/properties-B122hwLT.js +1 -0
- package/web-ui/build/static/properties-C0m3XIaN.js +1 -0
- package/web-ui/build/static/protobuf-CanIoKel.js +1 -0
- package/web-ui/build/static/protobuf-WvDgzNtD.js +1 -0
- package/web-ui/build/static/psl-JsKwhg_r.js +1 -0
- package/web-ui/build/static/pug-DoQaiAyU.js +1 -0
- package/web-ui/build/static/puppet-CoRftQQB.js +1 -0
- package/web-ui/build/static/puppet-DHgjsvQ8.js +1 -0
- package/web-ui/build/static/pure-BgZIQeOr.js +1 -0
- package/web-ui/build/static/purebasic-BRYfIFBb.js +1 -0
- package/web-ui/build/static/purebasic-DxXSa8gN.js +1 -0
- package/web-ui/build/static/purescript-ChvJvUnk.js +1 -0
- package/web-ui/build/static/python-DqhW0V3z.js +1 -0
- package/web-ui/build/static/python-Dz2FyIQx.js +1 -0
- package/web-ui/build/static/python-repl-Cl3mEb2H.js +1 -0
- package/web-ui/build/static/q-Bg4mQWXp.js +1 -0
- package/web-ui/build/static/q-DwaQK_1p.js +1 -0
- package/web-ui/build/static/qml-D1-fdJvp.js +1 -0
- package/web-ui/build/static/qml-DFsoiY0T.js +1 -0
- package/web-ui/build/static/qore-DdEtFSV5.js +1 -0
- package/web-ui/build/static/qsharp-B_A0OUBX.js +1 -0
- package/web-ui/build/static/r-C3M2HrKx.js +1 -0
- package/web-ui/build/static/r-_EUAt74Q.js +1 -0
- package/web-ui/build/static/racket-B3uAs3VE.js +1 -0
- package/web-ui/build/static/reason-CyAzPvNW.js +1 -0
- package/web-ui/build/static/reasonml-iEzx6ejF.js +1 -0
- package/web-ui/build/static/regex-suWqSnRa.js +1 -0
- package/web-ui/build/static/rego-QeDW60Lx.js +1 -0
- package/web-ui/build/static/renpy-03fEqIYK.js +1 -0
- package/web-ui/build/static/rest-BRJIE-UZ.js +1 -0
- package/web-ui/build/static/rib-DOI_C8C9.js +1 -0
- package/web-ui/build/static/rip-BaEBdknp.js +1 -0
- package/web-ui/build/static/roboconf-DC8IQe4Z.js +1 -0
- package/web-ui/build/static/roboconf-jTu2wKoD.js +1 -0
- package/web-ui/build/static/robotframework-BFp2sQG2.js +1 -0
- package/web-ui/build/static/routeros-Br-GCWs7.js +1 -0
- package/web-ui/build/static/rsl-BpWeUJqw.js +1 -0
- package/web-ui/build/static/ruby-C3nnVoGq.js +1 -0
- package/web-ui/build/static/ruby-DD90V5PL.js +1 -0
- package/web-ui/build/static/ruleslanguage-BflyDdqj.js +1 -0
- package/web-ui/build/static/rust-DtiFFJtC.js +1 -0
- package/web-ui/build/static/rust-uJHZCfXQ.js +1 -0
- package/web-ui/build/static/sas-DUr8rIBf.js +1 -0
- package/web-ui/build/static/sas-POH3vAEy.js +1 -0
- package/web-ui/build/static/sass-D1oLbZQ0.js +1 -0
- package/web-ui/build/static/scala-CDtrRn0l.js +1 -0
- package/web-ui/build/static/scala-VCIKIldH.js +1 -0
- package/web-ui/build/static/scheme-CAWHx2Oj.js +1 -0
- package/web-ui/build/static/scheme-DzKv24tn.js +1 -0
- package/web-ui/build/static/scilab-DuxpEvzV.js +1 -0
- package/web-ui/build/static/scss-BKd4Y-UF.js +1 -0
- package/web-ui/build/static/scss-BpqUKxry.js +1 -0
- package/web-ui/build/static/shell-session-CglnRr2l.js +1 -0
- package/web-ui/build/static/shell-u-Y3PKLQ.js +1 -0
- package/web-ui/build/static/smali-D308KWif.js +1 -0
- package/web-ui/build/static/smali-DYT-jHPu.js +1 -0
- package/web-ui/build/static/smalltalk-BLYA-Ag1.js +1 -0
- package/web-ui/build/static/smalltalk-BdMVmgN0.js +1 -0
- package/web-ui/build/static/smarty-DUYgBrje.js +1 -0
- package/web-ui/build/static/sml-EEhIaAvM.js +1 -0
- package/web-ui/build/static/sml-bQ27koeV.js +1 -0
- package/web-ui/build/static/solidity-U7x7-dFr.js +1 -0
- package/web-ui/build/static/solution-file-Cr03jaqW.js +1 -0
- package/web-ui/build/static/soy-lnGOhaRM.js +1 -0
- package/web-ui/build/static/sparql-BRm44B1P.js +1 -0
- package/web-ui/build/static/splunk-spl-DdrdBOQJ.js +1 -0
- package/web-ui/build/static/sqf-CDtvZjid.js +1 -0
- package/web-ui/build/static/sqf-wr3PtKhW.js +1 -0
- package/web-ui/build/static/sql-B1-8AkNe.js +1 -0
- package/web-ui/build/static/sql-zWEK1lPB.js +1 -0
- package/web-ui/build/static/sql_more-Ck0DuSs3.js +1 -0
- package/web-ui/build/static/squirrel-CfQEIe5h.js +1 -0
- package/web-ui/build/static/stan-BM1Wilpj.js +1 -0
- package/web-ui/build/static/stan-DFPCSU1l.js +1 -0
- package/web-ui/build/static/stata-BJ-qKfEg.js +1 -0
- package/web-ui/build/static/step21-fPKcuR3s.js +1 -0
- package/web-ui/build/static/stylus-BhqK2C03.js +1 -0
- package/web-ui/build/static/stylus-BxloRYSO.js +1 -0
- package/web-ui/build/static/subunit-CueM7bOY.js +1 -0
- package/web-ui/build/static/swift-CPgZZ0ja.js +1 -0
- package/web-ui/build/static/swift-CsEMsJ7g.js +1 -0
- package/web-ui/build/static/systemd-B1Wwkby4.js +1 -0
- package/web-ui/build/static/t4-cs-CL3Ca0dW.js +1 -0
- package/web-ui/build/static/t4-templating-BoV5iKxA.js +1 -0
- package/web-ui/build/static/t4-vb-BKXXzk5n.js +1 -0
- package/web-ui/build/static/taggerscript-aJQMdfVb.js +1 -0
- package/web-ui/build/static/tap-BBfQFbbW.js +1 -0
- package/web-ui/build/static/tap-CmCrAtSH.js +1 -0
- package/web-ui/build/static/tcl-B8xfoxf8.js +1 -0
- package/web-ui/build/static/tcl-CPzoU-PX.js +1 -0
- package/web-ui/build/static/textile-B99mXtsV.js +1 -0
- package/web-ui/build/static/thrift-Cd40Ii7J.js +1 -0
- package/web-ui/build/static/toml-DV5wxyQS.js +1 -0
- package/web-ui/build/static/tp-o2VorAT6.js +1 -0
- package/web-ui/build/static/tremor-Cs0K_i4_.js +1 -0
- package/web-ui/build/static/tsx-KG-mQur8.js +1 -0
- package/web-ui/build/static/tt2-M3GHOvjN.js +1 -0
- package/web-ui/build/static/turtle-D6o0UODZ.js +1 -0
- package/web-ui/build/static/twig-D7LOxPkH.js +1 -0
- package/web-ui/build/static/twig-SHSTj-jA.js +1 -0
- package/web-ui/build/static/typescript-BeIk_BLV.js +1 -0
- package/web-ui/build/static/typescript-Btz-ypJW.js +1 -0
- package/web-ui/build/static/typoscript-7jDBTKMM.js +1 -0
- package/web-ui/build/static/unrealscript-f2f2MAJa.js +1 -0
- package/web-ui/build/static/uorazor-c5VZAS6K.js +1 -0
- package/web-ui/build/static/uri-DY2cDkq-.js +1 -0
- package/web-ui/build/static/v-6ffK7TKq.js +1 -0
- package/web-ui/build/static/vala-BgOkjEeg.js +1 -0
- package/web-ui/build/static/vala-BvuDZGU_.js +1 -0
- package/web-ui/build/static/vbnet-Bdh9clH3.js +1 -0
- package/web-ui/build/static/vbnet-CDpcSndL.js +1 -0
- package/web-ui/build/static/vbscript-dH3gn1bx.js +1 -0
- package/web-ui/build/static/vbscript-html-a_tIfb0-.js +1 -0
- package/web-ui/build/static/velocity-DGDKyukB.js +1 -0
- package/web-ui/build/static/verilog-CtJaE20M.js +1 -0
- package/web-ui/build/static/verilog-CvdiugJe.js +1 -0
- package/web-ui/build/static/vhdl-CN1nxPYJ.js +1 -0
- package/web-ui/build/static/vhdl-JtjHb_oM.js +1 -0
- package/web-ui/build/static/vim-DBRKYGcU.js +1 -0
- package/web-ui/build/static/vim-DQiU261H.js +1 -0
- package/web-ui/build/static/visual-basic-D_daebxW.js +1 -0
- package/web-ui/build/static/warpscript-B4PIoyZp.js +1 -0
- package/web-ui/build/static/wasm-D6_O5K2p.js +1 -0
- package/web-ui/build/static/web-idl-D7BDrII0.js +1 -0
- package/web-ui/build/static/wiki-D-bqO098.js +1 -0
- package/web-ui/build/static/wolfram-NnogXigM.js +1 -0
- package/web-ui/build/static/wren-DwgJaCDU.js +1 -0
- package/web-ui/build/static/x86asm-B9-C3MH5.js +1 -0
- package/web-ui/build/static/xeora-wudvnBkY.js +1 -0
- package/web-ui/build/static/xl-BeBZDETk.js +1 -0
- package/web-ui/build/static/xml-DgNmhWin.js +1 -0
- package/web-ui/build/static/xml-doc-B2RShOT5.js +1 -0
- package/web-ui/build/static/xojo-C0HF7CVl.js +1 -0
- package/web-ui/build/static/xquery-CMss7jIw.js +1 -0
- package/web-ui/build/static/xquery-Dy1YImWg.js +1 -0
- package/web-ui/build/static/yaml--7oDAAKr.js +1 -0
- package/web-ui/build/static/yaml-1-HThDJz.js +1 -0
- package/web-ui/build/static/yang-CxleyLxS.js +1 -0
- package/web-ui/build/static/zephir-B7LMkND2.js +1 -0
- package/web-ui/build/static/zig-DST87v3k.js +1 -0
- package/web-ui/build/static/1c-DGpIT7i5.js +0 -1
- package/web-ui/build/static/abap-5wFDdWLh.js +0 -1
- package/web-ui/build/static/abnf-BP1dpNSE.js +0 -1
- package/web-ui/build/static/abnf-DBEIAl8g.js +0 -1
- package/web-ui/build/static/accesslog-CWSM_T5E.js +0 -1
- package/web-ui/build/static/actionscript-DONkco1J.js +0 -1
- package/web-ui/build/static/actionscript-FqBYk5er.js +0 -1
- package/web-ui/build/static/ada-C2JLRIaM.js +0 -1
- package/web-ui/build/static/ada-gKiygTRK.js +0 -1
- package/web-ui/build/static/agda-CkSODqK2.js +0 -1
- package/web-ui/build/static/al-BJ_YR6p7.js +0 -1
- package/web-ui/build/static/angelscript-Dg2byMGg.js +0 -1
- package/web-ui/build/static/antlr4-BnpyaFNr.js +0 -1
- package/web-ui/build/static/apache-Dffxsd7O.js +0 -1
- package/web-ui/build/static/apacheconf-DLitjtWj.js +0 -1
- package/web-ui/build/static/apex-Drr_IvU2.js +0 -1
- package/web-ui/build/static/apl-CF6qxmXG.js +0 -1
- package/web-ui/build/static/applescript-CjOlw3b_.js +0 -1
- package/web-ui/build/static/applescript-DjkSl1Ry.js +0 -1
- package/web-ui/build/static/aql-KwVmK1gP.js +0 -1
- package/web-ui/build/static/arcade-CENSXx0R.js +0 -1
- package/web-ui/build/static/arduino-B3Ta9Fll.js +0 -1
- package/web-ui/build/static/arduino-CzcsaB9_.js +0 -1
- package/web-ui/build/static/arff-CMJSVt_O.js +0 -1
- package/web-ui/build/static/armasm-0zSgSPB4.js +0 -1
- package/web-ui/build/static/asciidoc-B8K5ctWq.js +0 -1
- package/web-ui/build/static/asciidoc-bk2Sg6b6.js +0 -1
- package/web-ui/build/static/asm6502-ji6zm4FQ.js +0 -1
- package/web-ui/build/static/asmatmel-DJqObM4Y.js +0 -1
- package/web-ui/build/static/aspectj-DqQKI7J5.js +0 -1
- package/web-ui/build/static/aspnet-9cenTxW7.js +0 -1
- package/web-ui/build/static/autohotkey-C6EhiZvl.js +0 -1
- package/web-ui/build/static/autohotkey-sTGJOvMM.js +0 -1
- package/web-ui/build/static/autoit-B0Im8iQ1.js +0 -1
- package/web-ui/build/static/autoit-CO6pUD0H.js +0 -1
- package/web-ui/build/static/avisynth-OvOHTfj5.js +0 -1
- package/web-ui/build/static/avrasm-BLWZ5Mye.js +0 -1
- package/web-ui/build/static/avro-idl-BB2ODvnw.js +0 -1
- package/web-ui/build/static/awk-_jhMabQ0.js +0 -1
- package/web-ui/build/static/axapta-DdBRgoYy.js +0 -1
- package/web-ui/build/static/bash-CsaRGXBQ.js +0 -1
- package/web-ui/build/static/bash-CxLFkwAC.js +0 -1
- package/web-ui/build/static/basic-BJyy7JJE.js +0 -1
- package/web-ui/build/static/basic-CrMb-gv0.js +0 -1
- package/web-ui/build/static/batch-BvcykMe5.js +0 -1
- package/web-ui/build/static/bbcode-EOBuY5Y6.js +0 -1
- package/web-ui/build/static/bicep-QkDJBA34.js +0 -1
- package/web-ui/build/static/birb-TAOxKurn.js +0 -1
- package/web-ui/build/static/bison-BEK6cnad.js +0 -1
- package/web-ui/build/static/bnf-DfEODxsr.js +0 -1
- package/web-ui/build/static/bnf-DhbMjsuA.js +0 -1
- package/web-ui/build/static/brainfuck-BoVocOa7.js +0 -1
- package/web-ui/build/static/brainfuck-DDC5QXPK.js +0 -1
- package/web-ui/build/static/brightscript-DNN598w2.js +0 -1
- package/web-ui/build/static/bro-Cn_jjZ8P.js +0 -1
- package/web-ui/build/static/bsl-CMCN75Gu.js +0 -1
- package/web-ui/build/static/c-DbOGQnEJ.js +0 -1
- package/web-ui/build/static/c-kggwYFsy.js +0 -1
- package/web-ui/build/static/c-like-BIsuUvof.js +0 -1
- package/web-ui/build/static/cal-DpgMsBZE.js +0 -1
- package/web-ui/build/static/capnproto-C1AHYI-M.js +0 -1
- package/web-ui/build/static/ceylon-pvJffDe1.js +0 -1
- package/web-ui/build/static/cfscript-C1qylu52.js +0 -1
- package/web-ui/build/static/chaiscript-D417WKRI.js +0 -1
- package/web-ui/build/static/cil-CjbZHbcY.js +0 -1
- package/web-ui/build/static/clean-Dvc6R-F2.js +0 -1
- package/web-ui/build/static/clojure-CSVRQPMQ.js +0 -1
- package/web-ui/build/static/clojure-ig1Vkg7X.js +0 -1
- package/web-ui/build/static/clojure-repl-C1uyEabk.js +0 -1
- package/web-ui/build/static/cmake-DSbVcAB3.js +0 -1
- package/web-ui/build/static/cmake-Zp8kPwnH.js +0 -1
- package/web-ui/build/static/cobol-OsZSiK_P.js +0 -1
- package/web-ui/build/static/coffeescript-D8r0416S.js +0 -1
- package/web-ui/build/static/coffeescript-DCpgClxh.js +0 -1
- package/web-ui/build/static/concurnas-DKnsxUOc.js +0 -1
- package/web-ui/build/static/coq-BQFlywVI.js +0 -1
- package/web-ui/build/static/coq-BvS9mQB2.js +0 -1
- package/web-ui/build/static/cos-D3ze2791.js +0 -1
- package/web-ui/build/static/cpp-Bw-cV3P1.js +0 -1
- package/web-ui/build/static/cpp-vi1p7XpB.js +0 -1
- package/web-ui/build/static/crmsh-BClnJTeQ.js +0 -1
- package/web-ui/build/static/crystal-DGzOUYZq.js +0 -1
- package/web-ui/build/static/crystal-DMzk6EvA.js +0 -1
- package/web-ui/build/static/csharp-BTom8s2X.js +0 -1
- package/web-ui/build/static/csharp-Cp2V3jfR.js +0 -1
- package/web-ui/build/static/cshtml-Dmtt9Kto.js +0 -1
- package/web-ui/build/static/csp-WPVsLe9_.js +0 -1
- package/web-ui/build/static/csp-qddj5fu_.js +0 -1
- package/web-ui/build/static/css-B0FAm7kj.js +0 -1
- package/web-ui/build/static/css-extras-Bx3pvjiG.js +0 -1
- package/web-ui/build/static/csv-CH-edgS5.js +0 -1
- package/web-ui/build/static/cypher-c3G8Leew.js +0 -1
- package/web-ui/build/static/d-BMDSy22_.js +0 -1
- package/web-ui/build/static/d-BdH4oW8-.js +0 -1
- package/web-ui/build/static/dart-C-r72q-O.js +0 -1
- package/web-ui/build/static/dart-CwpBMrKa.js +0 -1
- package/web-ui/build/static/dataweave-BPvqdt4k.js +0 -1
- package/web-ui/build/static/dax-Eyy6ixcN.js +0 -1
- package/web-ui/build/static/delphi-DhEbPj_5.js +0 -1
- package/web-ui/build/static/dhall-Ct1L8sN1.js +0 -1
- package/web-ui/build/static/diff-CSTqCgwn.js +0 -1
- package/web-ui/build/static/diff-Da97B5vW.js +0 -1
- package/web-ui/build/static/django-DGit_lCg.js +0 -1
- package/web-ui/build/static/django-DPgqFB8k.js +0 -1
- package/web-ui/build/static/dns-DUyXuZ-a.js +0 -1
- package/web-ui/build/static/dns-zone-file-D79MDxVG.js +0 -1
- package/web-ui/build/static/docker-DTiy4o38.js +0 -1
- package/web-ui/build/static/dockerfile-CvwPP8wE.js +0 -1
- package/web-ui/build/static/dos-CaIUWxvb.js +0 -1
- package/web-ui/build/static/dot-D3504w6Y.js +0 -1
- package/web-ui/build/static/dsconfig-Smy1eeX_.js +0 -1
- package/web-ui/build/static/dts-DyTYSXZj.js +0 -1
- package/web-ui/build/static/dust-CrJyi6qA.js +0 -1
- package/web-ui/build/static/ebnf-C8nqfkBH.js +0 -1
- package/web-ui/build/static/ebnf-Cuh5Vh2-.js +0 -1
- package/web-ui/build/static/editorconfig-C7pTGl6n.js +0 -1
- package/web-ui/build/static/eiffel-C75MSJCA.js +0 -1
- package/web-ui/build/static/ejs-Dyo7DF5w.js +0 -1
- package/web-ui/build/static/elixir-D4yJefOc.js +0 -1
- package/web-ui/build/static/elixir-DKRow2SJ.js +0 -1
- package/web-ui/build/static/elm-CgbdDlkT.js +0 -1
- package/web-ui/build/static/elm-D3N-UgU0.js +0 -1
- package/web-ui/build/static/erb-BsITh8qW.js +0 -1
- package/web-ui/build/static/erb-lY_LyKyS.js +0 -1
- package/web-ui/build/static/erlang-BCnPiYmB.js +0 -1
- package/web-ui/build/static/erlang-JEghiPXc.js +0 -1
- package/web-ui/build/static/erlang-repl-DzU97ugC.js +0 -1
- package/web-ui/build/static/etlua-CsBo8cJa.js +0 -1
- package/web-ui/build/static/excel-formula-C2piiCYa.js +0 -1
- package/web-ui/build/static/excel-kqNypwQD.js +0 -1
- package/web-ui/build/static/factor-DZTOhkyU.js +0 -1
- package/web-ui/build/static/false-yLjhfaSw.js +0 -1
- package/web-ui/build/static/firestore-security-rules-oaQNoH8l.js +0 -1
- package/web-ui/build/static/fix-C9IfnTuS.js +0 -1
- package/web-ui/build/static/flix-EmJ_JhPo.js +0 -1
- package/web-ui/build/static/flow-DCUl7IAQ.js +0 -1
- package/web-ui/build/static/fortran-DvyxJmFN.js +0 -1
- package/web-ui/build/static/fortran-EEP9R3S5.js +0 -1
- package/web-ui/build/static/fsharp-D_98s3RX.js +0 -1
- package/web-ui/build/static/fsharp-Dt9jOO5G.js +0 -1
- package/web-ui/build/static/ftl-C8gMHWLo.js +0 -1
- package/web-ui/build/static/gams-BHxVPb4z.js +0 -1
- package/web-ui/build/static/gap-DFtyHk-q.js +0 -1
- package/web-ui/build/static/gauss-BwhJWUcg.js +0 -1
- package/web-ui/build/static/gcode-BvmXwp09.js +0 -1
- package/web-ui/build/static/gcode-gWcD6Vc7.js +0 -1
- package/web-ui/build/static/gdscript-btHoX8RE.js +0 -1
- package/web-ui/build/static/gedcom-MgPs9iqh.js +0 -1
- package/web-ui/build/static/gherkin-B9c_Q16A.js +0 -1
- package/web-ui/build/static/gherkin-BvOgkK6h.js +0 -1
- package/web-ui/build/static/git-D9XWOVcQ.js +0 -1
- package/web-ui/build/static/glsl-CshBHxHY.js +0 -1
- package/web-ui/build/static/glsl-fNRUMTDr.js +0 -1
- package/web-ui/build/static/gml-B78deHK8.js +0 -1
- package/web-ui/build/static/gml-Cj7d2u8O.js +0 -1
- package/web-ui/build/static/gn-CJLD-mF1.js +0 -1
- package/web-ui/build/static/go-CT93BEkL.js +0 -1
- package/web-ui/build/static/go-CTTlNuQO.js +0 -1
- package/web-ui/build/static/go-module-BgnXboUE.js +0 -1
- package/web-ui/build/static/golo-2S5tXS-l.js +0 -1
- package/web-ui/build/static/gradle-8W8DCcWJ.js +0 -1
- package/web-ui/build/static/graphql-DZfp6FNU.js +0 -1
- package/web-ui/build/static/groovy-BfsyMb3X.js +0 -1
- package/web-ui/build/static/groovy-Dxov7ENz.js +0 -1
- package/web-ui/build/static/haml-BlUFsdVV.js +0 -1
- package/web-ui/build/static/haml-CjVj6vvW.js +0 -1
- package/web-ui/build/static/handlebars-DxrQFkyA.js +0 -1
- package/web-ui/build/static/handlebars-FE6fotYl.js +0 -1
- package/web-ui/build/static/haskell-B6z0RCD_.js +0 -1
- package/web-ui/build/static/haskell-JBFmJTRy.js +0 -1
- package/web-ui/build/static/haxe-BtMZMi-_.js +0 -1
- package/web-ui/build/static/haxe-C1J8n-fH.js +0 -1
- package/web-ui/build/static/hcl-DJP-bFWE.js +0 -1
- package/web-ui/build/static/hlsl-DrGjhs1b.js +0 -1
- package/web-ui/build/static/hoon-Cg-ZhqIT.js +0 -1
- package/web-ui/build/static/hpkp-D07vgmoZ.js +0 -1
- package/web-ui/build/static/hsp-CsypPWoA.js +0 -1
- package/web-ui/build/static/hsts-B6DMRxvP.js +0 -1
- package/web-ui/build/static/htmlbars-BI7_Hw4e.js +0 -1
- package/web-ui/build/static/http-90ihEi4s.js +0 -1
- package/web-ui/build/static/http-Dp4QXj9E.js +0 -1
- package/web-ui/build/static/hy-BMgKvP4K.js +0 -1
- package/web-ui/build/static/ichigojam-D6wKvJDb.js +0 -1
- package/web-ui/build/static/icon-CrgkmCwl.js +0 -1
- package/web-ui/build/static/icu-message-format-Bi2JxCXs.js +0 -1
- package/web-ui/build/static/idris-DbUsyZt5.js +0 -1
- package/web-ui/build/static/iecst-CQZ9t8fW.js +0 -1
- package/web-ui/build/static/ignore-BaFgtNMs.js +0 -1
- package/web-ui/build/static/index-DEWSWosh.css +0 -1
- package/web-ui/build/static/index-Di1bjCFA.js +0 -13
- package/web-ui/build/static/index-otR_WSsL.js +0 -1
- package/web-ui/build/static/index-whZPU4as.js +0 -1183
- package/web-ui/build/static/inform7-ClyX1Gro.js +0 -1
- package/web-ui/build/static/inform7-tZHBS5XP.js +0 -1
- package/web-ui/build/static/ini-BrP5JNYL.js +0 -1
- package/web-ui/build/static/ini-CVkrAhwV.js +0 -1
- package/web-ui/build/static/io-BJ1Y6Bdc.js +0 -1
- package/web-ui/build/static/irpf90-fjjcKS_8.js +0 -1
- package/web-ui/build/static/isbl-ClpvfUIz.js +0 -1
- package/web-ui/build/static/j-CICW77xS.js +0 -1
- package/web-ui/build/static/java-B9DFK-0E.js +0 -1
- package/web-ui/build/static/java-BL_6rYko.js +0 -1
- package/web-ui/build/static/javadoc-Cc4HKpKK.js +0 -1
- package/web-ui/build/static/javadoclike-CgNkUDOm.js +0 -1
- package/web-ui/build/static/javascript-CM40ZECq.js +0 -1
- package/web-ui/build/static/javastacktrace-BHSqXfG5.js +0 -1
- package/web-ui/build/static/jboss-cli-Bv5NhVSZ.js +0 -1
- package/web-ui/build/static/jexl--Ohk_keA.js +0 -1
- package/web-ui/build/static/jolie-DMTN5Vdf.js +0 -1
- package/web-ui/build/static/jq-nXRLldXX.js +0 -1
- package/web-ui/build/static/js-extras-eLwv3frs.js +0 -1
- package/web-ui/build/static/js-templates-Ca0owlrg.js +0 -1
- package/web-ui/build/static/jsdoc-KERXp0da.js +0 -1
- package/web-ui/build/static/json-BTjLaRsy.js +0 -1
- package/web-ui/build/static/json-p7pU0qdW.js +0 -1
- package/web-ui/build/static/json5-Cxjy1udc.js +0 -1
- package/web-ui/build/static/jsonp-CO52H7Gy.js +0 -1
- package/web-ui/build/static/jsstacktrace-8YKfoyJP.js +0 -1
- package/web-ui/build/static/jsx-Ct_05KbM.js +0 -1
- package/web-ui/build/static/julia-23I1ubCE.js +0 -1
- package/web-ui/build/static/julia-d8rVGed_.js +0 -1
- package/web-ui/build/static/julia-repl-mwnHedW_.js +0 -1
- package/web-ui/build/static/keepalived-E85Rx_fF.js +0 -1
- package/web-ui/build/static/keyman-aWd3QUDq.js +0 -1
- package/web-ui/build/static/kotlin-Cu370hQq.js +0 -1
- package/web-ui/build/static/kotlin-DoJ2WnmZ.js +0 -1
- package/web-ui/build/static/kumir-oiOgqcQO.js +0 -1
- package/web-ui/build/static/kusto-Bp-B02K5.js +0 -1
- package/web-ui/build/static/lasso-BxoQVwOO.js +0 -1
- package/web-ui/build/static/latex-CANm5vsX.js +0 -1
- package/web-ui/build/static/latex-PMroeNch.js +0 -1
- package/web-ui/build/static/latte-2ErU_2XF.js +0 -1
- package/web-ui/build/static/ldif-ChPn_F7o.js +0 -1
- package/web-ui/build/static/leaf-UkCugDgG.js +0 -1
- package/web-ui/build/static/less-CCH5RA89.js +0 -1
- package/web-ui/build/static/less-CGZbVU1g.js +0 -1
- package/web-ui/build/static/lilypond-BoyM37sv.js +0 -1
- package/web-ui/build/static/liquid-DGJVpRBi.js +0 -1
- package/web-ui/build/static/lisp-93nne61u.js +0 -1
- package/web-ui/build/static/lisp-DYjIRsXz.js +0 -1
- package/web-ui/build/static/livecodeserver-CfNaxIE4.js +0 -1
- package/web-ui/build/static/livescript-C8kDlQkz.js +0 -1
- package/web-ui/build/static/livescript-CoarnRHq.js +0 -1
- package/web-ui/build/static/llvm-CBVyNmAh.js +0 -1
- package/web-ui/build/static/llvm-DGxq8a7u.js +0 -1
- package/web-ui/build/static/log-BivgwFql.js +0 -1
- package/web-ui/build/static/lolcode-l5sK2cZz.js +0 -1
- package/web-ui/build/static/lsl-Xm44xLRQ.js +0 -1
- package/web-ui/build/static/lua-CGvrzfKp.js +0 -1
- package/web-ui/build/static/lua-nHwXeY4c.js +0 -1
- package/web-ui/build/static/magma-DmNItmna.js +0 -1
- package/web-ui/build/static/makefile-CKJNNHGb.js +0 -1
- package/web-ui/build/static/makefile-DI6y5Qml.js +0 -1
- package/web-ui/build/static/markdown-BgpbxKd-.js +0 -1
- package/web-ui/build/static/markdown-CvcxA4yk.js +0 -1
- package/web-ui/build/static/markup-templating-DijqesiA.js +0 -1
- package/web-ui/build/static/mathematica-Cxll1Q10.js +0 -1
- package/web-ui/build/static/matlab-BJo2T1A-.js +0 -1
- package/web-ui/build/static/matlab-C6DlZX4l.js +0 -1
- package/web-ui/build/static/maxima-DJXO4sbL.js +0 -1
- package/web-ui/build/static/maxscript-DdLpUYBs.js +0 -1
- package/web-ui/build/static/mel-BIpfnSyZ.js +0 -1
- package/web-ui/build/static/mel-BYcTUZJW.js +0 -1
- package/web-ui/build/static/mercury-C_LSpbD8.js +0 -1
- package/web-ui/build/static/mermaid-D9yBWnrT.js +0 -1
- package/web-ui/build/static/mipsasm-nR_K2Ue-.js +0 -1
- package/web-ui/build/static/mizar-BeLUPncD.js +0 -1
- package/web-ui/build/static/mizar-BesIbZd9.js +0 -1
- package/web-ui/build/static/mojolicious-cBx3OWa-.js +0 -1
- package/web-ui/build/static/mongodb-DTWKy9ac.js +0 -1
- package/web-ui/build/static/monkey-B72bZC3c.js +0 -1
- package/web-ui/build/static/monkey-G9XELYPQ.js +0 -1
- package/web-ui/build/static/moonscript-BXYVQiqj.js +0 -1
- package/web-ui/build/static/moonscript-sDd-5knz.js +0 -1
- package/web-ui/build/static/n1ql-0vKSfFAO.js +0 -1
- package/web-ui/build/static/n1ql-C9_BSZfz.js +0 -1
- package/web-ui/build/static/n4js-B7Ct8dds.js +0 -1
- package/web-ui/build/static/nand2tetris-hdl-p9gpphTM.js +0 -1
- package/web-ui/build/static/naniscript-6ZVr8Aug.js +0 -1
- package/web-ui/build/static/nasm-Ca73yTUt.js +0 -1
- package/web-ui/build/static/neon-DNP49oyX.js +0 -1
- package/web-ui/build/static/nevod-Qhgt7Bce.js +0 -1
- package/web-ui/build/static/nginx-D5e7lu62.js +0 -1
- package/web-ui/build/static/nginx-DobnyESB.js +0 -1
- package/web-ui/build/static/nim-BPBivUOV.js +0 -1
- package/web-ui/build/static/nim-Baoug1Wa.js +0 -1
- package/web-ui/build/static/nix-CSPTQs5y.js +0 -1
- package/web-ui/build/static/nix-Dk4eNw49.js +0 -1
- package/web-ui/build/static/node-repl-NJNL8VFR.js +0 -1
- package/web-ui/build/static/nsis-BZ0oMzEw.js +0 -1
- package/web-ui/build/static/nsis-CKPCjtCU.js +0 -1
- package/web-ui/build/static/objectivec-BkfIRhhV.js +0 -1
- package/web-ui/build/static/objectivec-CnQgqhbJ.js +0 -1
- package/web-ui/build/static/ocaml-9rGNzRrK.js +0 -1
- package/web-ui/build/static/ocaml-CTolCqxL.js +0 -1
- package/web-ui/build/static/opencl-9Q3vRDxv.js +0 -1
- package/web-ui/build/static/openqasm-D2QiuFBp.js +0 -1
- package/web-ui/build/static/openscad-C3HyuzpB.js +0 -1
- package/web-ui/build/static/oxygene-4gi-VYy_.js +0 -1
- package/web-ui/build/static/oz-BGDEB-1A.js +0 -1
- package/web-ui/build/static/parigp-CfZzp1uE.js +0 -1
- package/web-ui/build/static/parser-UbGteTcy.js +0 -1
- package/web-ui/build/static/parser3-C-Jx-fy7.js +0 -1
- package/web-ui/build/static/pascal-D1_R0gW-.js +0 -1
- package/web-ui/build/static/pascaligo-B8C-98Np.js +0 -1
- package/web-ui/build/static/pcaxis-TGnlUKNs.js +0 -1
- package/web-ui/build/static/peoplecode-C5Vf1AH0.js +0 -1
- package/web-ui/build/static/perl-CBp1N62T.js +0 -1
- package/web-ui/build/static/perl-Z59j904t.js +0 -1
- package/web-ui/build/static/pf-Cq8B_xwQ.js +0 -1
- package/web-ui/build/static/pgsql-ofJbUHkL.js +0 -1
- package/web-ui/build/static/php-OlH7HLQJ.js +0 -1
- package/web-ui/build/static/php-extras-GqtrxLuk.js +0 -1
- package/web-ui/build/static/php-r09kMDOB.js +0 -1
- package/web-ui/build/static/php-template-18uT97Qo.js +0 -1
- package/web-ui/build/static/phpdoc-9tRFvup9.js +0 -1
- package/web-ui/build/static/plaintext-DsYT6Mu-.js +0 -1
- package/web-ui/build/static/plsql-RhWQNJVb.js +0 -1
- package/web-ui/build/static/pony-DD6JMLYI.js +0 -1
- package/web-ui/build/static/powerquery-CALow-bt.js +0 -1
- package/web-ui/build/static/powershell-C2QvIuKF.js +0 -1
- package/web-ui/build/static/powershell-yrbJEhCh.js +0 -1
- package/web-ui/build/static/processing-1T5w_Q03.js +0 -1
- package/web-ui/build/static/processing-DBim_dO-.js +0 -1
- package/web-ui/build/static/profile-Cdloh8mZ.js +0 -1
- package/web-ui/build/static/prolog-DRSsNnns.js +0 -1
- package/web-ui/build/static/prolog-D_ajweDr.js +0 -1
- package/web-ui/build/static/promql-BRuwn6Bn.js +0 -1
- package/web-ui/build/static/properties-D5Wyl4X4.js +0 -1
- package/web-ui/build/static/properties-kn4fl1bl.js +0 -1
- package/web-ui/build/static/protobuf-BMO76zWi.js +0 -1
- package/web-ui/build/static/protobuf-CTUCF-U-.js +0 -1
- package/web-ui/build/static/psl-CiqYdQbY.js +0 -1
- package/web-ui/build/static/pug-BLE2Qayj.js +0 -1
- package/web-ui/build/static/puppet-CFKLWXft.js +0 -1
- package/web-ui/build/static/puppet-DQci0Dl5.js +0 -1
- package/web-ui/build/static/pure-D2h_GynV.js +0 -1
- package/web-ui/build/static/purebasic-BF8MVw8V.js +0 -1
- package/web-ui/build/static/purebasic-BTtHiCkh.js +0 -1
- package/web-ui/build/static/purescript-D1ZSh-sH.js +0 -1
- package/web-ui/build/static/python-Cp9_Vdhb.js +0 -1
- package/web-ui/build/static/python-DdgNw8IW.js +0 -1
- package/web-ui/build/static/python-repl-DvK89VMC.js +0 -1
- package/web-ui/build/static/q-COaIgwhT.js +0 -1
- package/web-ui/build/static/q-Cm0dQkW8.js +0 -1
- package/web-ui/build/static/qml-BpsOqqJM.js +0 -1
- package/web-ui/build/static/qml-BziQXlU4.js +0 -1
- package/web-ui/build/static/qore-Cutz6g-2.js +0 -1
- package/web-ui/build/static/qsharp-B16619X1.js +0 -1
- package/web-ui/build/static/r-CFUIj5Hd.js +0 -1
- package/web-ui/build/static/r-CPrwCi5w.js +0 -1
- package/web-ui/build/static/racket-Bh08DFXF.js +0 -1
- package/web-ui/build/static/reason-BxjDq4e-.js +0 -1
- package/web-ui/build/static/reasonml-Ds5SsGP8.js +0 -1
- package/web-ui/build/static/regex-DhBIDIMI.js +0 -1
- package/web-ui/build/static/rego-DCwxZXcB.js +0 -1
- package/web-ui/build/static/renpy-C2fuQfqb.js +0 -1
- package/web-ui/build/static/rest-C52ZpxWQ.js +0 -1
- package/web-ui/build/static/rib-Cbl2Mzyj.js +0 -1
- package/web-ui/build/static/rip-BTOu5ZIE.js +0 -1
- package/web-ui/build/static/roboconf-3Oi2wuVk.js +0 -1
- package/web-ui/build/static/roboconf-ndLZLE39.js +0 -1
- package/web-ui/build/static/robotframework-BzHXiIj1.js +0 -1
- package/web-ui/build/static/routeros-CkpPoqx-.js +0 -1
- package/web-ui/build/static/rsl-C0bwOQ38.js +0 -1
- package/web-ui/build/static/ruby-C_hIhtuQ.js +0 -1
- package/web-ui/build/static/ruby-DvKfZPzj.js +0 -1
- package/web-ui/build/static/ruleslanguage-CbZJlddz.js +0 -1
- package/web-ui/build/static/rust-BFPIhB-X.js +0 -1
- package/web-ui/build/static/rust-sBpUq-qE.js +0 -1
- package/web-ui/build/static/sas-BCXvYN9x.js +0 -1
- package/web-ui/build/static/sas-D7GAsTY3.js +0 -1
- package/web-ui/build/static/sass-BdaErGMN.js +0 -1
- package/web-ui/build/static/scala-Cj81oCl9.js +0 -1
- package/web-ui/build/static/scala-CvbksfY6.js +0 -1
- package/web-ui/build/static/scheme-BM5ZqKnl.js +0 -1
- package/web-ui/build/static/scheme-BPvlu9Tk.js +0 -1
- package/web-ui/build/static/scilab-CJanLKQN.js +0 -1
- package/web-ui/build/static/scss-C53YF_7f.js +0 -1
- package/web-ui/build/static/scss-DPp8UZbr.js +0 -1
- package/web-ui/build/static/shell-CC9bQXMe.js +0 -1
- package/web-ui/build/static/shell-session-CuR3fbf-.js +0 -1
- package/web-ui/build/static/smali-CUgLls3D.js +0 -1
- package/web-ui/build/static/smali-YODSX8qt.js +0 -1
- package/web-ui/build/static/smalltalk-BMJQ4bbs.js +0 -1
- package/web-ui/build/static/smalltalk-BVGY3CTl.js +0 -1
- package/web-ui/build/static/smarty-C9aNt4-p.js +0 -1
- package/web-ui/build/static/sml-C3BIHhfq.js +0 -1
- package/web-ui/build/static/sml-DTipyRmY.js +0 -1
- package/web-ui/build/static/solidity-1yuPUqoC.js +0 -1
- package/web-ui/build/static/solution-file-BgzK4GOU.js +0 -1
- package/web-ui/build/static/soy-CFJXRvqc.js +0 -1
- package/web-ui/build/static/sparql-CAosYMpl.js +0 -1
- package/web-ui/build/static/splunk-spl-DkINtWr8.js +0 -1
- package/web-ui/build/static/sqf-DbrWIS2M.js +0 -1
- package/web-ui/build/static/sqf-nq8Q9J2W.js +0 -1
- package/web-ui/build/static/sql-9bwClhZQ.js +0 -1
- package/web-ui/build/static/sql-CqPkY-lX.js +0 -1
- package/web-ui/build/static/sql_more-CsY5ts77.js +0 -1
- package/web-ui/build/static/squirrel-BuqtzRBD.js +0 -1
- package/web-ui/build/static/stan-BNxBSglc.js +0 -1
- package/web-ui/build/static/stan-CZVMc34l.js +0 -1
- package/web-ui/build/static/stata-DKnVdHCd.js +0 -1
- package/web-ui/build/static/step21-Cu_TaBGF.js +0 -1
- package/web-ui/build/static/stylus-BS7-OJew.js +0 -1
- package/web-ui/build/static/stylus-DtFrp1Nk.js +0 -1
- package/web-ui/build/static/subunit-DDCoWkkc.js +0 -1
- package/web-ui/build/static/swift-BaguUZbl.js +0 -1
- package/web-ui/build/static/swift-mwBsb8Bx.js +0 -1
- package/web-ui/build/static/systemd-D6PpyDKk.js +0 -1
- package/web-ui/build/static/t4-cs-Cem8g4Ck.js +0 -1
- package/web-ui/build/static/t4-templating-BZo-HjmD.js +0 -1
- package/web-ui/build/static/t4-vb-B4oVnKa4.js +0 -1
- package/web-ui/build/static/taggerscript-DweAZ5pw.js +0 -1
- package/web-ui/build/static/tap-DpuvKHHF.js +0 -1
- package/web-ui/build/static/tap-hUKmJObZ.js +0 -1
- package/web-ui/build/static/tcl-BUvhAi7u.js +0 -1
- package/web-ui/build/static/tcl-Dsck63d8.js +0 -1
- package/web-ui/build/static/textile-CgKbqJ-j.js +0 -1
- package/web-ui/build/static/thrift-B5H6rApp.js +0 -1
- package/web-ui/build/static/toml-DggTpfOo.js +0 -1
- package/web-ui/build/static/tp-CazB2P2X.js +0 -1
- package/web-ui/build/static/tremor-B1jy7S5p.js +0 -1
- package/web-ui/build/static/tsx-BqF2lVDi.js +0 -1
- package/web-ui/build/static/tt2-BNoNXpEe.js +0 -1
- package/web-ui/build/static/turtle-B0evd5mn.js +0 -1
- package/web-ui/build/static/twig-B5A7nMdv.js +0 -1
- package/web-ui/build/static/twig-DZnLWvh8.js +0 -1
- package/web-ui/build/static/typescript-Bbe_P093.js +0 -1
- package/web-ui/build/static/typescript-BfhvmSSG.js +0 -1
- package/web-ui/build/static/typoscript-BjuZEIgw.js +0 -1
- package/web-ui/build/static/unrealscript-C3iUCFRi.js +0 -1
- package/web-ui/build/static/uorazor-CbZXwzIj.js +0 -1
- package/web-ui/build/static/uri-xMPSnp6m.js +0 -1
- package/web-ui/build/static/v-BKcGo5I6.js +0 -1
- package/web-ui/build/static/vala-BRoBE4am.js +0 -1
- package/web-ui/build/static/vala-B__Iyrma.js +0 -1
- package/web-ui/build/static/vbnet-DBxlMRvN.js +0 -1
- package/web-ui/build/static/vbnet-DjAXt5BE.js +0 -1
- package/web-ui/build/static/vbscript-BNA4oANi.js +0 -1
- package/web-ui/build/static/vbscript-html-o8ckLPKG.js +0 -1
- package/web-ui/build/static/velocity-D7sc5ggA.js +0 -1
- package/web-ui/build/static/verilog-BWJfMIng.js +0 -1
- package/web-ui/build/static/verilog-jW2GPC--.js +0 -1
- package/web-ui/build/static/vhdl-BIVlXRPa.js +0 -1
- package/web-ui/build/static/vhdl-BeqdhhxD.js +0 -1
- package/web-ui/build/static/vim-712lI4-g.js +0 -1
- package/web-ui/build/static/vim-DMROTzr0.js +0 -1
- package/web-ui/build/static/visual-basic-CQfbM-ta.js +0 -1
- package/web-ui/build/static/warpscript-DFAvCXFQ.js +0 -1
- package/web-ui/build/static/wasm-CiYoxBl0.js +0 -1
- package/web-ui/build/static/web-idl-DoCkPK8y.js +0 -1
- package/web-ui/build/static/wiki-bvz0AGzB.js +0 -1
- package/web-ui/build/static/wolfram-fBuyFEgU.js +0 -1
- package/web-ui/build/static/wren-DvATFxjF.js +0 -1
- package/web-ui/build/static/x86asm-r4bPbUR_.js +0 -1
- package/web-ui/build/static/xeora-B6iOnDJY.js +0 -1
- package/web-ui/build/static/xl-Ce6B5slc.js +0 -1
- package/web-ui/build/static/xml-DNjyPmhQ.js +0 -1
- package/web-ui/build/static/xml-doc-DydogmZD.js +0 -1
- package/web-ui/build/static/xojo-DCQLltvr.js +0 -1
- package/web-ui/build/static/xquery-C-fAnA0H.js +0 -1
- package/web-ui/build/static/xquery-CNeqzhLO.js +0 -1
- package/web-ui/build/static/yaml-BsVaGsk5.js +0 -1
- package/web-ui/build/static/yaml-kVZvwv_C.js +0 -1
- package/web-ui/build/static/yang-B_gq9JEq.js +0 -1
- package/web-ui/build/static/zephir-ECIXgXhX.js +0 -1
- package/web-ui/build/static/zig-DY325EKG.js +0 -1
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `loxia composio` CLI — flag parsing + subcommand wiring.
|
|
3
|
+
*
|
|
4
|
+
* The CLI uses HTTP against the running server, so a full end-to-end
|
|
5
|
+
* test would need to boot a real server. Instead we unit-test the
|
|
6
|
+
* pieces that don't need a live server:
|
|
7
|
+
* - parseFlags: --json, --user, --args, --open, --help, positional
|
|
8
|
+
* - subcommand handlers: with a stubbed http.request, verify they
|
|
9
|
+
* hit the right URL with the right body and exit codes
|
|
10
|
+
*
|
|
11
|
+
* This catches the regressions that actually matter (broken arg parser,
|
|
12
|
+
* wrong path, missing JSON body) without paying the bootstrap cost.
|
|
13
|
+
*/
|
|
14
|
+
import { describe, test, expect, beforeEach, afterEach, jest } from '@jest/globals';
|
|
15
|
+
import { _internal } from '../../bin/composio-cli.js';
|
|
16
|
+
|
|
17
|
+
const { parseFlags, statusDot } = _internal;
|
|
18
|
+
|
|
19
|
+
describe('parseFlags', () => {
|
|
20
|
+
test('captures positional args in order', () => {
|
|
21
|
+
const f = parseFlags(['connect', 'github']);
|
|
22
|
+
expect(f.positional).toEqual(['connect', 'github']);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('--json sets the flag', () => {
|
|
26
|
+
expect(parseFlags(['toolkits', '--json']).json).toBe(true);
|
|
27
|
+
expect(parseFlags(['toolkits']).json).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('--user accepts both --user X and --user=X', () => {
|
|
31
|
+
expect(parseFlags(['status', '--user', 'agent-42']).user).toBe('agent-42');
|
|
32
|
+
expect(parseFlags(['status', '--user=agent-42']).user).toBe('agent-42');
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test('--args captures the JSON string for exec', () => {
|
|
36
|
+
const f = parseFlags(['exec', 'github', 'X', '--args', '{"per_page":3}']);
|
|
37
|
+
expect(f.args).toBe('{"per_page":3}');
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test('--open is captured as boolean', () => {
|
|
41
|
+
expect(parseFlags(['connect', 'github', '--open']).open).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('--help and -h both set help', () => {
|
|
45
|
+
expect(parseFlags(['--help']).help).toBe(true);
|
|
46
|
+
expect(parseFlags(['-h']).help).toBe(true);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('unrecognised flags fall through to positional', () => {
|
|
50
|
+
// We don't whitelist; unknown flags survive in positional so the
|
|
51
|
+
// caller can decide what to do. (Defensive — protects against typos
|
|
52
|
+
// becoming silent no-ops.)
|
|
53
|
+
const f = parseFlags(['exec', 'gh', 'X', '--unknown']);
|
|
54
|
+
expect(f.positional).toContain('--unknown');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
describe('statusDot', () => {
|
|
59
|
+
test('returns a coloured/raw character per status', () => {
|
|
60
|
+
// We don't assert on the exact ANSI codes (depends on TTY), but
|
|
61
|
+
// every variant produces a non-empty string.
|
|
62
|
+
for (const s of ['ACTIVE', 'INITIATED', 'FAILED', 'NOT_CONNECTED', null]) {
|
|
63
|
+
const dot = statusDot(s);
|
|
64
|
+
expect(typeof dot).toBe('string');
|
|
65
|
+
expect(dot.length).toBeGreaterThan(0);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
/* ---------------- Subcommand handlers (stubbed http) ---------------- */
|
|
71
|
+
|
|
72
|
+
function makeDeps(routes) {
|
|
73
|
+
// Each route entry: { match: regex|string, method, response }
|
|
74
|
+
const http = {
|
|
75
|
+
request: jest.fn((url, opts, cb) => {
|
|
76
|
+
const u = new URL(url);
|
|
77
|
+
const route = routes.find(r => {
|
|
78
|
+
const m = r.match instanceof RegExp ? r.match.test(u.pathname) : u.pathname === r.match;
|
|
79
|
+
return m && (!r.method || r.method === opts.method);
|
|
80
|
+
});
|
|
81
|
+
const body = route ? route.response : { success: false, error: `unmatched ${opts.method} ${u.pathname}` };
|
|
82
|
+
const res = {
|
|
83
|
+
statusCode: route ? (route.status || 200) : 404,
|
|
84
|
+
on(evt, fn) {
|
|
85
|
+
if (evt === 'data') fn(JSON.stringify(body));
|
|
86
|
+
if (evt === 'end') fn();
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
setImmediate(() => cb(res));
|
|
90
|
+
return { on: () => {}, write: () => {}, end: () => {}, setTimeout: () => {}, destroy: () => {} };
|
|
91
|
+
}),
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
http,
|
|
95
|
+
backend: { host: '127.0.0.1', port: 12345 },
|
|
96
|
+
args: [],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
describe('cmdToolkits', () => {
|
|
101
|
+
test('hits GET /api/composio/toolkits and prints rows', async () => {
|
|
102
|
+
const deps = makeDeps([{ match: '/api/composio/toolkits', method: 'GET', response: { success: true, toolkits: [{ slug: 'github', name: 'GitHub' }] } }]);
|
|
103
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
104
|
+
try {
|
|
105
|
+
await _internal.cmdToolkits(deps, { json: false, positional: ['toolkits'] });
|
|
106
|
+
expect(deps.http.request).toHaveBeenCalled();
|
|
107
|
+
const calls = logSpy.mock.calls.flat().join('\n');
|
|
108
|
+
expect(calls).toMatch(/github/);
|
|
109
|
+
expect(calls).toMatch(/GitHub/);
|
|
110
|
+
} finally {
|
|
111
|
+
logSpy.mockRestore();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
test('--json emits the raw response', async () => {
|
|
116
|
+
const deps = makeDeps([{ match: '/api/composio/toolkits', method: 'GET', response: { success: true, toolkits: [] } }]);
|
|
117
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
118
|
+
try {
|
|
119
|
+
await _internal.cmdToolkits(deps, { json: true, positional: ['toolkits'] });
|
|
120
|
+
const out = logSpy.mock.calls.flat().join('\n');
|
|
121
|
+
expect(out).toMatch(/"success": true/);
|
|
122
|
+
} finally {
|
|
123
|
+
logSpy.mockRestore();
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
describe('cmdConnections', () => {
|
|
129
|
+
test('forwards userId in the query string', async () => {
|
|
130
|
+
const deps = makeDeps([{
|
|
131
|
+
match: /^\/api\/composio\/connections/,
|
|
132
|
+
method: 'GET',
|
|
133
|
+
response: { success: true, connections: [{ id: 'conn-1', toolkitSlug: 'github', status: 'ACTIVE' }] },
|
|
134
|
+
}]);
|
|
135
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
136
|
+
try {
|
|
137
|
+
await _internal.cmdConnections(deps, { json: false, user: 'agent-99', positional: ['connections'] });
|
|
138
|
+
const url = deps.http.request.mock.calls[0][0];
|
|
139
|
+
expect(url).toMatch(/userId=agent-99/);
|
|
140
|
+
} finally {
|
|
141
|
+
logSpy.mockRestore();
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
describe('cmdConnect', () => {
|
|
147
|
+
test('POSTs to /api/composio/connect with body { toolkitSlug, userId }', async () => {
|
|
148
|
+
const deps = makeDeps([{
|
|
149
|
+
match: '/api/composio/connect',
|
|
150
|
+
method: 'POST',
|
|
151
|
+
response: { success: true, connectLink: 'https://connect.composio.dev/link/x', connectionId: 'conn-1' },
|
|
152
|
+
}]);
|
|
153
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
154
|
+
try {
|
|
155
|
+
await _internal.cmdConnect(deps, { json: false, positional: ['connect', 'github'], user: 'operator' });
|
|
156
|
+
// Verify the body was JSON.stringified into write() — we get the
|
|
157
|
+
// call args via deps.http.request itself (we wrote {} body above
|
|
158
|
+
// but the real write happens on the returned req object).
|
|
159
|
+
const out = logSpy.mock.calls.flat().join('\n');
|
|
160
|
+
expect(out).toMatch(/Connect github/);
|
|
161
|
+
expect(out).toMatch(/connect\.composio\.dev/);
|
|
162
|
+
} finally {
|
|
163
|
+
logSpy.mockRestore();
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
describe('cmdDisconnect', () => {
|
|
169
|
+
test('routes UUID-style id to DELETE by-id', async () => {
|
|
170
|
+
const deps = makeDeps([{
|
|
171
|
+
match: /^\/api\/composio\/connections\/conn-abc-def-123-456/,
|
|
172
|
+
method: 'DELETE',
|
|
173
|
+
response: { success: true },
|
|
174
|
+
}]);
|
|
175
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
176
|
+
try {
|
|
177
|
+
await _internal.cmdDisconnect(deps, { json: false, positional: ['disconnect', 'conn-abc-def-123-456'] });
|
|
178
|
+
const url = deps.http.request.mock.calls[0][0];
|
|
179
|
+
expect(url).toMatch(/conn-abc-def-123-456/);
|
|
180
|
+
} finally {
|
|
181
|
+
logSpy.mockRestore();
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
test('routes short slug to DELETE by-toolkit', async () => {
|
|
186
|
+
const deps = makeDeps([{
|
|
187
|
+
match: /^\/api\/composio\/connections\/by-toolkit/,
|
|
188
|
+
method: 'DELETE',
|
|
189
|
+
response: { success: true },
|
|
190
|
+
}]);
|
|
191
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
192
|
+
try {
|
|
193
|
+
await _internal.cmdDisconnect(deps, { json: false, positional: ['disconnect', 'github'], user: 'operator' });
|
|
194
|
+
const url = deps.http.request.mock.calls[0][0];
|
|
195
|
+
expect(url).toMatch(/by-toolkit/);
|
|
196
|
+
} finally {
|
|
197
|
+
logSpy.mockRestore();
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
describe('cmdExec', () => {
|
|
203
|
+
test('parses --args as JSON and forwards', async () => {
|
|
204
|
+
const deps = makeDeps([{
|
|
205
|
+
match: '/api/composio/execute',
|
|
206
|
+
method: 'POST',
|
|
207
|
+
response: { success: true, output: { ok: 1 } },
|
|
208
|
+
}]);
|
|
209
|
+
const logSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
|
210
|
+
try {
|
|
211
|
+
await _internal.cmdExec(deps, {
|
|
212
|
+
json: false,
|
|
213
|
+
positional: ['exec', 'github', 'X'],
|
|
214
|
+
args: '{"per_page":3}',
|
|
215
|
+
user: 'operator',
|
|
216
|
+
});
|
|
217
|
+
const out = logSpy.mock.calls.flat().join('\n');
|
|
218
|
+
expect(out).toMatch(/X/);
|
|
219
|
+
expect(out).toMatch(/ok/);
|
|
220
|
+
} finally {
|
|
221
|
+
logSpy.mockRestore();
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
test('invalid --args JSON exits with helpful error', async () => {
|
|
226
|
+
const deps = makeDeps([]);
|
|
227
|
+
const errSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
228
|
+
const exitSpy = jest.spyOn(process, 'exit').mockImplementation(() => { throw new Error('__exit__'); });
|
|
229
|
+
try {
|
|
230
|
+
await expect(_internal.cmdExec(deps, {
|
|
231
|
+
json: false, positional: ['exec', 'gh', 'X'], args: '{not-json',
|
|
232
|
+
})).rejects.toThrow('__exit__');
|
|
233
|
+
expect(errSpy.mock.calls.flat().join('\n')).toMatch(/Invalid --args/);
|
|
234
|
+
} finally {
|
|
235
|
+
errSpy.mockRestore();
|
|
236
|
+
exitSpy.mockRestore();
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
});
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract tests for the `## CODEBASE KNOWLEDGE` injection in
|
|
3
|
+
* agentScheduler. Like the sibling tests for task-list and operating-
|
|
4
|
+
* posture, we source-grep rather than instantiating the heavy
|
|
5
|
+
* scheduler graph — the contract is: the injection block exists, sits
|
|
6
|
+
* in the right place, sources from the singleton service, and is
|
|
7
|
+
* wrapped in a graceful-degrade try/catch.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, test, expect } from '@jest/globals';
|
|
10
|
+
import { readFileSync } from 'fs';
|
|
11
|
+
import { fileURLToPath } from 'url';
|
|
12
|
+
import { dirname, join } from 'path';
|
|
13
|
+
|
|
14
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
const SRC = readFileSync(join(__dirname, '../agentScheduler.js'), 'utf-8');
|
|
16
|
+
|
|
17
|
+
describe('agentScheduler — CODEBASE KNOWLEDGE injection', () => {
|
|
18
|
+
test('source contains the injection block', () => {
|
|
19
|
+
expect(SRC).toMatch(/Auto-inject CODEBASE KNOWLEDGE/);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test('injection sources from codebaseKnowledgeService singleton', () => {
|
|
23
|
+
expect(SRC).toMatch(/codebaseKnowledgeService/);
|
|
24
|
+
expect(SRC).toMatch(/getCodebaseKnowledgeService/);
|
|
25
|
+
expect(SRC).toMatch(/buildIndexBlock\(agentId\)/);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
test('injection follows the CURRENT TASK LIST block (stable ordering for prompt cache)', () => {
|
|
29
|
+
const taskIdx = SRC.indexOf('CURRENT TASK LIST');
|
|
30
|
+
const cbIdx = SRC.indexOf('CODEBASE KNOWLEDGE');
|
|
31
|
+
expect(taskIdx).toBeGreaterThan(-1);
|
|
32
|
+
expect(cbIdx).toBeGreaterThan(-1);
|
|
33
|
+
expect(cbIdx).toBeGreaterThan(taskIdx);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('graceful degrade: wrapped in try/catch with a `continuing without` warning', () => {
|
|
37
|
+
const block = SRC.slice(
|
|
38
|
+
SRC.indexOf('Auto-inject CODEBASE KNOWLEDGE'),
|
|
39
|
+
SRC.indexOf('Check if streaming is enabled'),
|
|
40
|
+
);
|
|
41
|
+
expect(block).toMatch(/try\s*\{/);
|
|
42
|
+
expect(block).toMatch(/catch\s*\(/);
|
|
43
|
+
expect(block).toMatch(/continuing without/);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test('REGRESSION: injection is GATED on the agent having code-map in capabilities', () => {
|
|
47
|
+
// Non-coder agents (chat-only, marketing agents, etc.) must not
|
|
48
|
+
// pay the per-turn service-lookup cost. The cache is only
|
|
49
|
+
// populated by code-map results — agents without code-map have
|
|
50
|
+
// nothing to surface.
|
|
51
|
+
const block = SRC.slice(
|
|
52
|
+
SRC.indexOf('Auto-inject CODEBASE KNOWLEDGE'),
|
|
53
|
+
SRC.indexOf('Check if streaming is enabled'),
|
|
54
|
+
);
|
|
55
|
+
// Must check capabilities for 'code-map' before doing anything.
|
|
56
|
+
expect(block).toMatch(/agent\.capabilities/);
|
|
57
|
+
expect(block).toMatch(/includes\(['"]code-map['"]\)/);
|
|
58
|
+
// The whole try-block should sit INSIDE that conditional, not
|
|
59
|
+
// outside it (otherwise the gate doesn't actually skip the work).
|
|
60
|
+
const guardIdx = block.indexOf('includes(\'code-map\')');
|
|
61
|
+
const tryIdx = block.indexOf('try {');
|
|
62
|
+
expect(guardIdx).toBeGreaterThan(-1);
|
|
63
|
+
expect(tryIdx).toBeGreaterThan(guardIdx);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract tests for the `## AGENT MEMORY` catalog injection and
|
|
3
|
+
* post-compaction nudge inside agentScheduler. We source-grep — the
|
|
4
|
+
* contracts are:
|
|
5
|
+
* - The catalog injection block exists, is gated on the `memory`
|
|
6
|
+
* capability, calls memoryService.getCatalog, lists `id title`
|
|
7
|
+
* compactly, and is wrapped in try/catch.
|
|
8
|
+
* - The post-compaction nudge is a one-shot flag-driven block
|
|
9
|
+
* keyed off `_postCompactionNudgePending`, and the flag is set
|
|
10
|
+
* after the compaction step succeeds.
|
|
11
|
+
*/
|
|
12
|
+
import { describe, test, expect } from '@jest/globals';
|
|
13
|
+
import { readFileSync } from 'fs';
|
|
14
|
+
import { fileURLToPath } from 'url';
|
|
15
|
+
import { dirname, join } from 'path';
|
|
16
|
+
|
|
17
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
|
+
const SRC = readFileSync(join(__dirname, '../agentScheduler.js'), 'utf-8');
|
|
19
|
+
|
|
20
|
+
describe('agentScheduler — AGENT MEMORY catalog injection', () => {
|
|
21
|
+
test('source contains the AGENT MEMORY catalog injection header', () => {
|
|
22
|
+
expect(SRC).toMatch(/AGENT MEMORY \(catalog/);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test('injection sources from memoryService.getCatalog', () => {
|
|
26
|
+
expect(SRC).toMatch(/getMemoryService/);
|
|
27
|
+
expect(SRC).toMatch(/getCatalog\(agentId/);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('injection is gated on the `memory` capability', () => {
|
|
31
|
+
const start = SRC.indexOf('Auto-inject AGENT MEMORY');
|
|
32
|
+
const block = SRC.slice(start, start + 1500);
|
|
33
|
+
expect(block).toMatch(/capabilities\.includes\(['"]memory['"]\)/);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test('injection follows the CODEBASE KNOWLEDGE block (stable ordering for prompt cache)', () => {
|
|
37
|
+
const cbIdx = SRC.indexOf('Auto-inject CODEBASE KNOWLEDGE');
|
|
38
|
+
const memIdx = SRC.indexOf('Auto-inject AGENT MEMORY');
|
|
39
|
+
expect(cbIdx).toBeGreaterThan(-1);
|
|
40
|
+
expect(memIdx).toBeGreaterThan(-1);
|
|
41
|
+
expect(memIdx).toBeGreaterThan(cbIdx);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('graceful degrade: wrapped in try/catch', () => {
|
|
45
|
+
const start = SRC.indexOf('AGENT MEMORY');
|
|
46
|
+
const block = SRC.slice(Math.max(0, start - 600), start + 800);
|
|
47
|
+
expect(block).toMatch(/try\s*\{/);
|
|
48
|
+
expect(block).toMatch(/catch\s*\(/);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
describe('agentScheduler — POST-COMPACTION NUDGE', () => {
|
|
53
|
+
test('source contains the POST-COMPACTION NUDGE block', () => {
|
|
54
|
+
expect(SRC).toMatch(/POST-COMPACTION NUDGE/);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test('nudge is driven by the _postCompactionNudgePending flag (one-shot)', () => {
|
|
58
|
+
expect(SRC).toMatch(/_postCompactionNudgePending/);
|
|
59
|
+
const block = SRC.slice(
|
|
60
|
+
SRC.indexOf('POST-COMPACTION NUDGE') - 200,
|
|
61
|
+
SRC.indexOf('POST-COMPACTION NUDGE') + 600,
|
|
62
|
+
);
|
|
63
|
+
// The flag is consumed (set false) after emission.
|
|
64
|
+
expect(block).toMatch(/_postCompactionNudgePending\s*=\s*false/);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('the flag is set after the compaction step', () => {
|
|
68
|
+
// Look for a place that flips the flag to true (not false).
|
|
69
|
+
expect(SRC).toMatch(/_postCompactionNudgePending\s*=\s*true/);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
test('nudge references AGENT MEMORY so the agent knows where to look', () => {
|
|
73
|
+
const start = SRC.indexOf('POST-COMPACTION NUDGE');
|
|
74
|
+
const block = SRC.slice(start, start + 1200);
|
|
75
|
+
expect(block).toMatch(/AGENT MEMORY/);
|
|
76
|
+
expect(block).toMatch(/memory read/);
|
|
77
|
+
});
|
|
78
|
+
});
|
package/src/core/agentPool.js
CHANGED
|
@@ -889,6 +889,16 @@ class AgentPool {
|
|
|
889
889
|
}
|
|
890
890
|
}
|
|
891
891
|
|
|
892
|
+
// Clear codebase-knowledge cache for this agent — bytes live in
|
|
893
|
+
// the service's in-memory map; without this the per-agent entry
|
|
894
|
+
// would persist until the next process restart.
|
|
895
|
+
try {
|
|
896
|
+
const { getCodebaseKnowledgeService } = await import('../services/codebaseKnowledgeService.js');
|
|
897
|
+
getCodebaseKnowledgeService(this.logger).clear(agentId);
|
|
898
|
+
} catch (e) {
|
|
899
|
+
this.logger.debug?.('codebase-knowledge clear failed on agent delete', { agentId, error: e.message });
|
|
900
|
+
}
|
|
901
|
+
|
|
892
902
|
// Clean up visual editor instance
|
|
893
903
|
try {
|
|
894
904
|
const visualEditorBridge = getVisualEditorBridge();
|
|
@@ -1638,6 +1638,16 @@ class AgentScheduler {
|
|
|
1638
1638
|
// Update AgentPool with compacted messages — pass pre-compaction watermark
|
|
1639
1639
|
await this.agentPool.updateCompactedMessages(agentId, targetModel, compactionResult, preCompactionMessageCount);
|
|
1640
1640
|
|
|
1641
|
+
// Mark a one-shot post-compaction nudge for the next turn. The
|
|
1642
|
+
// agentScheduler reads this on the next prompt-build to emit a
|
|
1643
|
+
// "consult AGENT MEMORY for context that may have been summarized
|
|
1644
|
+
// away" reminder, then clears the flag. Best-effort — never
|
|
1645
|
+
// block the rest of the compaction completion.
|
|
1646
|
+
try {
|
|
1647
|
+
const agent = await this.agentPool.getAgent(agentId);
|
|
1648
|
+
if (agent) agent._postCompactionNudgePending = true;
|
|
1649
|
+
} catch (_) { /* swallow — non-essential */ }
|
|
1650
|
+
|
|
1641
1651
|
if (ENABLE_COMPACT_DEBUG) {
|
|
1642
1652
|
console.log('[COMPACT-COMPLETED]', {
|
|
1643
1653
|
agentId,
|
|
@@ -2147,6 +2157,87 @@ class AgentScheduler {
|
|
|
2147
2157
|
});
|
|
2148
2158
|
}
|
|
2149
2159
|
|
|
2160
|
+
// ── Auto-inject CODEBASE KNOWLEDGE index every turn ─────────────
|
|
2161
|
+
// Production observation (Monopoly mission, May 2026): 22 code-map
|
|
2162
|
+
// skeleton calls on the SAME file, 80% of those re-calls happened
|
|
2163
|
+
// while the original tool result was still in the agent's active
|
|
2164
|
+
// context — the agent simply didn't notice. A salient index at a
|
|
2165
|
+
// stable system-prompt location addresses this attention failure.
|
|
2166
|
+
// The index also survives compaction, addressing the 20% of
|
|
2167
|
+
// re-calls that occur after compaction. See
|
|
2168
|
+
// services/codebaseKnowledgeService.js for the full design.
|
|
2169
|
+
//
|
|
2170
|
+
// Capability gate: only runs for agents that have code-map in
|
|
2171
|
+
// their capabilities. The cache is only populated by code-map
|
|
2172
|
+
// calls today, so non-coder agents would never have anything to
|
|
2173
|
+
// surface — no point paying the per-turn lookup overhead.
|
|
2174
|
+
if (Array.isArray(agent.capabilities) && agent.capabilities.includes('code-map')) {
|
|
2175
|
+
try {
|
|
2176
|
+
const { getCodebaseKnowledgeService } = await import('../services/codebaseKnowledgeService.js');
|
|
2177
|
+
const ks = getCodebaseKnowledgeService(this.logger);
|
|
2178
|
+
const block = ks.buildIndexBlock(agentId);
|
|
2179
|
+
if (block) enhancedSystemPrompt = (enhancedSystemPrompt || '') + block;
|
|
2180
|
+
} catch (ksErr) {
|
|
2181
|
+
this.logger.warn(`Codebase-knowledge injection failed for agent ${agentId} (continuing without)`, {
|
|
2182
|
+
error: ksErr?.message,
|
|
2183
|
+
});
|
|
2184
|
+
}
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
// ── Auto-inject AGENT MEMORY catalog every turn ─────────────────
|
|
2188
|
+
// Compact list of memory IDs + titles (no contents) so the agent
|
|
2189
|
+
// KNOWS what's in its memory store without paying the prompt-token
|
|
2190
|
+
// cost of injecting full contents. Production observation
|
|
2191
|
+
// (Monopoly mission, 1556 messages): 0 memory operations all
|
|
2192
|
+
// session — the agent never consulted memories that existed.
|
|
2193
|
+
// Visibility-only injection: agent can call `memory read` if a
|
|
2194
|
+
// catalog entry looks relevant. Empirical wording verified safe
|
|
2195
|
+
// (no in-context-learning bait) by the same harness that caught
|
|
2196
|
+
// the codebase-knowledge regression earlier.
|
|
2197
|
+
//
|
|
2198
|
+
// Capability gate: only inject when the agent has memory in its
|
|
2199
|
+
// capability set — agents that can't read/write memory would just
|
|
2200
|
+
// be confused by the section.
|
|
2201
|
+
if (Array.isArray(agent.capabilities) && agent.capabilities.includes('memory')) {
|
|
2202
|
+
try {
|
|
2203
|
+
const { getMemoryService } = await import('../services/memoryService.js');
|
|
2204
|
+
const mem = getMemoryService(this.logger);
|
|
2205
|
+
await mem.initialize();
|
|
2206
|
+
const catalog = await mem.getCatalog(agentId, 20);
|
|
2207
|
+
if (catalog && catalog.entries && catalog.entries.length > 0) {
|
|
2208
|
+
const lines = ['', '## AGENT MEMORY (catalog — ids and titles only; use `memory read` for content)', ''];
|
|
2209
|
+
for (const e of catalog.entries) {
|
|
2210
|
+
const desc = e.description ? ` "${e.description}"` : '';
|
|
2211
|
+
lines.push(`- ${e.id} ${e.title}${desc}`);
|
|
2212
|
+
}
|
|
2213
|
+
if (catalog.total > catalog.entries.length) {
|
|
2214
|
+
lines.push(`- … ${catalog.total - catalog.entries.length} more (use \`memory list\` to see all)`);
|
|
2215
|
+
}
|
|
2216
|
+
enhancedSystemPrompt = (enhancedSystemPrompt || '') + lines.join('\n');
|
|
2217
|
+
}
|
|
2218
|
+
} catch (memErr) {
|
|
2219
|
+
this.logger.warn(`Memory catalog injection failed for agent ${agentId} (continuing without)`, {
|
|
2220
|
+
error: memErr?.message,
|
|
2221
|
+
});
|
|
2222
|
+
}
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2225
|
+
// ── Post-compaction nudge (one-shot) ────────────────────────────
|
|
2226
|
+
// When compaction has just run, the agent has lost a chunk of
|
|
2227
|
+
// recent history. This is the highest-value moment to consult
|
|
2228
|
+
// memory — older context may have been summarized away but
|
|
2229
|
+
// memories remain. Emit a single nudge then clear the flag.
|
|
2230
|
+
if (agent._postCompactionNudgePending) {
|
|
2231
|
+
const nudge = '\n\n## POST-COMPACTION NUDGE (one-time)\n\n' +
|
|
2232
|
+
'Compaction just summarized older messages. If your current work continues from before the compaction boundary, ' +
|
|
2233
|
+
'scan the `## AGENT MEMORY` catalog above — older context that was summarized may still be available as a memory ' +
|
|
2234
|
+
'you can `memory read` by id.';
|
|
2235
|
+
enhancedSystemPrompt = (enhancedSystemPrompt || '') + nudge;
|
|
2236
|
+
try {
|
|
2237
|
+
agent._postCompactionNudgePending = false;
|
|
2238
|
+
} catch (_) { /* read-only proxy edge case */ }
|
|
2239
|
+
}
|
|
2240
|
+
|
|
2150
2241
|
// Check if streaming is enabled - consider both agent config and user message preference
|
|
2151
2242
|
// Get the last user message to check for streaming preference
|
|
2152
2243
|
const lastUserMsg = [...conversationHistory].reverse().find(m => m.role === 'user');
|
package/src/index.js
CHANGED
|
@@ -25,7 +25,7 @@ import ErrorHandler from './services/errorHandler.js';
|
|
|
25
25
|
import BenchmarkService from './services/benchmarkService.js';
|
|
26
26
|
import ModelRouterService from './services/modelRouterService.js';
|
|
27
27
|
import ModelsService from './services/modelsService.js';
|
|
28
|
-
import ApiKeyManager from './services/apiKeyManager.js';
|
|
28
|
+
import ApiKeyManager, { registerApiKeyManager } from './services/apiKeyManager.js';
|
|
29
29
|
import { getCredentialVault } from './services/credentialVault.js';
|
|
30
30
|
import FileAttachmentService from './services/fileAttachmentService.js';
|
|
31
31
|
import { ToolsRegistry } from './tools/baseTool.js';
|
|
@@ -51,7 +51,9 @@ import PdfTool from './tools/pdfTool.js';
|
|
|
51
51
|
import HelpTool from './tools/helpTool.js';
|
|
52
52
|
import DocxTool from './tools/docxTool.js';
|
|
53
53
|
import ExcelTool from './tools/excelTool.js';
|
|
54
|
+
import OfficeTool from './tools/officeTool.js';
|
|
54
55
|
import MemoryTool from './tools/memoryTool.js';
|
|
56
|
+
import ComposioTool from './tools/composioTool.js';
|
|
55
57
|
import SkillsTool from './tools/skillsTool.js';
|
|
56
58
|
import VisionTool from './tools/visionTool.js';
|
|
57
59
|
import UserPromptTool from './tools/userPromptTool.js';
|
|
@@ -275,6 +277,9 @@ class LoxiaApplication {
|
|
|
275
277
|
// API Key Manager
|
|
276
278
|
this.apiKeyManager = new ApiKeyManager(this.logger);
|
|
277
279
|
await this.apiKeyManager.initialize(); // Load persisted keys
|
|
280
|
+
// Register the singleton so cross-cutting services (composioService,
|
|
281
|
+
// etc.) can resolve vendor keys without explicit injection.
|
|
282
|
+
registerApiKeyManager(this.apiKeyManager);
|
|
278
283
|
|
|
279
284
|
// Credential Vault for secure website credential management
|
|
280
285
|
this.credentialVault = getCredentialVault(this.logger);
|
|
@@ -486,17 +491,28 @@ class LoxiaApplication {
|
|
|
486
491
|
// Register Help Tool (two-layer tool description system)
|
|
487
492
|
await this.toolsRegistry.registerTool(HelpTool);
|
|
488
493
|
|
|
489
|
-
// Register Document (DOCX) Tool
|
|
494
|
+
// Register Document (DOCX) Tool — legacy; superseded by OfficeTool.
|
|
495
|
+
// Kept for one release cycle so existing agent configs that reference
|
|
496
|
+
// toolId "doc" continue to work.
|
|
490
497
|
await this.toolsRegistry.registerTool(DocxTool);
|
|
491
498
|
|
|
492
|
-
// Register Spreadsheet (Excel) Tool
|
|
499
|
+
// Register Spreadsheet (Excel) Tool — legacy; superseded by OfficeTool.
|
|
493
500
|
await this.toolsRegistry.registerTool(ExcelTool);
|
|
494
501
|
|
|
502
|
+
// Register Office Tool — consolidated doc/sheet/pres surface
|
|
503
|
+
// (Word + Excel + PowerPoint create/read).
|
|
504
|
+
await this.toolsRegistry.registerTool(OfficeTool);
|
|
505
|
+
|
|
495
506
|
// Register Memory Tool
|
|
496
507
|
await this.toolsRegistry.registerTool(MemoryTool);
|
|
497
508
|
await this.toolsRegistry.registerTool(SkillsTool);
|
|
498
509
|
await this.toolsRegistry.registerTool(VisionTool);
|
|
499
510
|
|
|
511
|
+
// Register Composio integration tool (off by default — agents
|
|
512
|
+
// must have the `composio` capability AND the operator must set
|
|
513
|
+
// COMPOSIO_API_KEY for it to do anything).
|
|
514
|
+
await this.toolsRegistry.registerTool(ComposioTool);
|
|
515
|
+
|
|
500
516
|
// Register User Prompt Tool
|
|
501
517
|
await this.toolsRegistry.registerTool(UserPromptTool);
|
|
502
518
|
|