onbuzz 5.0.2 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/gen-brand-icons.mjs +21 -0
- package/scripts/recall-value-check.mjs +92 -0
- package/scripts/web-automation-experiment.mjs +112 -0
- package/src/core/__tests__/agentPool.deprecatedCapabilities.test.js +105 -0
- package/src/core/__tests__/agentScheduler.autoRecall.test.js +8 -10
- package/src/core/__tests__/agentScheduler.toolOutputOffload.test.js +96 -0
- package/src/core/__tests__/stateManager.test.js +25 -0
- package/src/core/__tests__/structuralPreview.test.js +87 -0
- package/src/core/__tests__/toolResultOffload.test.js +168 -0
- package/src/core/agentPool.js +63 -1
- package/src/core/agentScheduler.js +155 -10
- package/src/core/stateManager.js +3 -1
- package/src/core/structuralPreview.js +79 -0
- package/src/core/toolResultOffload.js +152 -0
- package/src/index.js +37 -11
- package/src/interfaces/__tests__/attachmentRoutes.test.js +118 -0
- package/src/interfaces/__tests__/memoryStatusRoutes.test.js +161 -0
- package/src/interfaces/__tests__/monitorRoutes.test.js +227 -0
- package/src/interfaces/__tests__/scheduleRoutes.test.js +223 -0
- package/src/interfaces/__tests__/transcribeProxy.test.js +85 -0
- package/src/interfaces/__tests__/transcribeRoute.test.js +127 -0
- package/src/interfaces/attachmentRoutes.js +56 -0
- package/src/interfaces/memoryStatusRoutes.js +78 -0
- package/src/interfaces/monitorRoutes.js +93 -0
- package/src/interfaces/scheduleRoutes.js +128 -0
- package/src/interfaces/transcribeProxy.js +72 -0
- package/src/interfaces/transcribeRoute.js +45 -0
- package/src/interfaces/webServer.js +68 -122
- package/src/services/__tests__/aiService.editImage.test.js +69 -0
- package/src/services/__tests__/aiService.embed.test.js +155 -0
- package/src/services/__tests__/fileAttachmentService.test.js +33 -0
- package/src/services/__tests__/memoryService.test.js +114 -1
- package/src/services/__tests__/recall.whatsMyName.e2e.test.js +151 -0
- package/src/services/__tests__/scheduleService.flow.test.js +574 -0
- package/src/services/__tests__/scheduleService.missedRuns.test.js +186 -0
- package/src/services/aiService.js +98 -3
- package/src/services/attachments/__tests__/attachmentContextBuilder.test.js +288 -0
- package/src/services/attachments/__tests__/attachmentIngestionService.test.js +184 -0
- package/src/services/attachments/__tests__/attachmentScope.test.js +26 -0
- package/src/services/attachments/__tests__/attachmentStrategy.test.js +85 -0
- package/src/services/attachments/attachmentContextBuilder.js +185 -0
- package/src/services/attachments/attachmentIngestionService.js +131 -0
- package/src/services/attachments/attachmentScope.js +22 -0
- package/src/services/attachments/attachmentStrategy.js +87 -0
- package/src/services/documents/__tests__/documentMemory.test.js +238 -0
- package/src/services/documents/__tests__/documentStore.test.js +507 -0
- package/src/services/documents/documentMemory.js +156 -0
- package/src/services/documents/documentStore.js +451 -0
- package/src/services/embeddings/__tests__/autoRecall.test.js +145 -0
- package/src/services/embeddings/__tests__/embeddingService.test.js +170 -25
- package/src/services/embeddings/__tests__/embeddingsConfig.test.js +34 -4
- package/src/services/embeddings/__tests__/inMemoryJsonStore.test.js +45 -0
- package/src/services/embeddings/autoRecall.js +46 -7
- package/src/services/embeddings/embeddingService.js +100 -0
- package/src/services/embeddings/embeddingsConfig.js +14 -4
- package/src/services/embeddings/indexers/__tests__/agentIndexer.test.js +1 -1
- package/src/services/embeddings/indexers/__tests__/composioIndexer.test.js +1 -1
- package/src/services/embeddings/indexers/__tests__/documentIndexer.test.js +211 -0
- package/src/services/embeddings/indexers/__tests__/memoryIndexer.test.js +1 -0
- package/src/services/embeddings/indexers/__tests__/reminisceIndexer.test.js +1 -0
- package/src/services/embeddings/indexers/__tests__/skillsIndexer.test.js +1 -1
- package/src/services/embeddings/indexers/__tests__/taskIndexer.test.js +1 -1
- package/src/services/embeddings/indexers/documentIndexer.js +206 -0
- package/src/services/embeddings/indexers/reminisceIndexer.js +1 -0
- package/src/services/embeddings/utilities/__tests__/decayingCounter.test.js +107 -0
- package/src/services/embeddings/utilities/__tests__/textChunker.test.js +40 -0
- package/src/services/embeddings/utilities/decayingCounter.js +70 -0
- package/src/services/embeddings/utilities/textChunker.js +13 -3
- package/src/services/embeddings/vectorStore/__tests__/scoring.retention.test.js +105 -0
- package/src/services/embeddings/vectorStore/__tests__/scoring.test.js +31 -0
- package/src/services/embeddings/vectorStore/inMemoryJsonStore.js +11 -3
- package/src/services/embeddings/vectorStore/scoring.js +86 -3
- package/src/services/fileAttachmentService.js +8 -3
- package/src/services/memoryService.js +95 -3
- package/src/services/scheduleService.js +172 -23
- package/src/services/vision/__tests__/visionAnalysisService.test.js +160 -0
- package/src/services/vision/visionAnalysisService.js +124 -0
- package/src/tools/__tests__/baseTool.test.js +3 -3
- package/src/tools/__tests__/imageTool.coverage.test.js +512 -0
- package/src/tools/__tests__/imageTool.edit.test.js +113 -0
- package/src/tools/__tests__/imageTool.validator.test.js +37 -0
- package/src/tools/__tests__/importAnalyzerTool.test.js +160 -0
- package/src/tools/__tests__/memoryTool.forgetStale.test.js +108 -1
- package/src/tools/__tests__/memoryTool.pluralCanonical.test.js +1 -0
- package/src/tools/__tests__/memoryTool.reminisce.test.js +1 -0
- package/src/tools/__tests__/memoryTool.reminisceSemanticSearch.test.js +1 -0
- package/src/tools/__tests__/memoryTool.semanticSearch.test.js +17 -0
- package/src/tools/__tests__/memoryTool.teamPool.test.js +1 -0
- package/src/tools/__tests__/memoryTool.test.js +1 -0
- package/src/tools/__tests__/openaiFunctionSchemas.validity.test.js +0 -17
- package/src/tools/__tests__/webTool.offload.test.js +233 -0
- package/src/tools/__tests__/webTool.recall.test.js +167 -0
- package/src/tools/__tests__/webTool.tabReuse.test.js +349 -0
- package/src/tools/baseTool.js +2 -4
- package/src/tools/imageTool.js +78 -27
- package/src/tools/importAnalysis/__tests__/callableChecker.edge.test.js +141 -0
- package/src/tools/importAnalysis/__tests__/callableChecker.test.js +356 -0
- package/src/tools/importAnalysis/callableChecker.js +599 -0
- package/src/tools/importAnalyzerTool.js +103 -3
- package/src/tools/memoryTool.js +72 -19
- package/src/tools/openaiFunctionSchemas.js +1039 -1103
- package/src/tools/webTool.js +425 -19
- package/src/utilities/__tests__/logger.test.js +96 -0
- package/src/utilities/__tests__/userProfileInjection.test.js +69 -0
- package/src/utilities/logger.js +72 -2
- package/src/utilities/toolConstants.js +385 -416
- package/src/utilities/userProfileInjection.js +79 -0
- package/web-ui/build/index.html +2 -2
- package/web-ui/build/static/1c-CcAT9yC0.js +2 -0
- package/web-ui/build/static/1c-CcAT9yC0.js.map +1 -0
- package/web-ui/build/static/abap-CklqIE_D.js +2 -0
- package/web-ui/build/static/abap-CklqIE_D.js.map +1 -0
- package/web-ui/build/static/abnf-DH9Xql6K.js +2 -0
- package/web-ui/build/static/abnf-DH9Xql6K.js.map +1 -0
- package/web-ui/build/static/abnf-DmVuiFmf.js +2 -0
- package/web-ui/build/static/abnf-DmVuiFmf.js.map +1 -0
- package/web-ui/build/static/accesslog-wsMIJvhq.js +2 -0
- package/web-ui/build/static/accesslog-wsMIJvhq.js.map +1 -0
- package/web-ui/build/static/actionscript-6Z1qVnZE.js +2 -0
- package/web-ui/build/static/actionscript-6Z1qVnZE.js.map +1 -0
- package/web-ui/build/static/actionscript-CDV_esqc.js +2 -0
- package/web-ui/build/static/actionscript-CDV_esqc.js.map +1 -0
- package/web-ui/build/static/ada-CPGf7bFw.js +2 -0
- package/web-ui/build/static/ada-CPGf7bFw.js.map +1 -0
- package/web-ui/build/static/ada-zAwy93bY.js +2 -0
- package/web-ui/build/static/ada-zAwy93bY.js.map +1 -0
- package/web-ui/build/static/agda-D4K6fA7S.js +2 -0
- package/web-ui/build/static/agda-D4K6fA7S.js.map +1 -0
- package/web-ui/build/static/al-DDL_R1Ni.js +2 -0
- package/web-ui/build/static/al-DDL_R1Ni.js.map +1 -0
- package/web-ui/build/static/angelscript-5y0tEMvz.js +2 -0
- package/web-ui/build/static/angelscript-5y0tEMvz.js.map +1 -0
- package/web-ui/build/static/antlr4-UHG9uh9z.js +2 -0
- package/web-ui/build/static/antlr4-UHG9uh9z.js.map +1 -0
- package/web-ui/build/static/apache-D8XA3V-d.js +2 -0
- package/web-ui/build/static/apache-D8XA3V-d.js.map +1 -0
- package/web-ui/build/static/apacheconf-CVYLtKLf.js +2 -0
- package/web-ui/build/static/apacheconf-CVYLtKLf.js.map +1 -0
- package/web-ui/build/static/apex-NZtrMMna.js +2 -0
- package/web-ui/build/static/apex-NZtrMMna.js.map +1 -0
- package/web-ui/build/static/apl-WEBKjqr-.js +2 -0
- package/web-ui/build/static/apl-WEBKjqr-.js.map +1 -0
- package/web-ui/build/static/applescript-CXeL_7_t.js +2 -0
- package/web-ui/build/static/applescript-CXeL_7_t.js.map +1 -0
- package/web-ui/build/static/applescript-M_TnR32f.js +2 -0
- package/web-ui/build/static/applescript-M_TnR32f.js.map +1 -0
- package/web-ui/build/static/aql-BD6P88kK.js +2 -0
- package/web-ui/build/static/aql-BD6P88kK.js.map +1 -0
- package/web-ui/build/static/arcade-MdaNu4j7.js +2 -0
- package/web-ui/build/static/arcade-MdaNu4j7.js.map +1 -0
- package/web-ui/build/static/arduino-DKv6GzJx.js +2 -0
- package/web-ui/build/static/arduino-DKv6GzJx.js.map +1 -0
- package/web-ui/build/static/arduino-uBxC-GO7.js +2 -0
- package/web-ui/build/static/arduino-uBxC-GO7.js.map +1 -0
- package/web-ui/build/static/arff-BDDUyAjp.js +2 -0
- package/web-ui/build/static/arff-BDDUyAjp.js.map +1 -0
- package/web-ui/build/static/armasm-BxZnxQ5T.js +2 -0
- package/web-ui/build/static/armasm-BxZnxQ5T.js.map +1 -0
- package/web-ui/build/static/asciidoc-DiBjy1M0.js +2 -0
- package/web-ui/build/static/asciidoc-DiBjy1M0.js.map +1 -0
- package/web-ui/build/static/asciidoc-DkxN40q5.js +2 -0
- package/web-ui/build/static/asciidoc-DkxN40q5.js.map +1 -0
- package/web-ui/build/static/asm6502-Cohh0bBr.js +2 -0
- package/web-ui/build/static/asm6502-Cohh0bBr.js.map +1 -0
- package/web-ui/build/static/asmatmel-nnA7cqnF.js +2 -0
- package/web-ui/build/static/asmatmel-nnA7cqnF.js.map +1 -0
- package/web-ui/build/static/aspectj-DiDmXltX.js +2 -0
- package/web-ui/build/static/aspectj-DiDmXltX.js.map +1 -0
- package/web-ui/build/static/aspnet-DnQFAE7o.js +2 -0
- package/web-ui/build/static/aspnet-DnQFAE7o.js.map +1 -0
- package/web-ui/build/static/autohotkey-B4rLe6FN.js +2 -0
- package/web-ui/build/static/autohotkey-B4rLe6FN.js.map +1 -0
- package/web-ui/build/static/autohotkey-UbpiO1Bq.js +2 -0
- package/web-ui/build/static/autohotkey-UbpiO1Bq.js.map +1 -0
- package/web-ui/build/static/autoit-B9NXV7xy.js +2 -0
- package/web-ui/build/static/autoit-B9NXV7xy.js.map +1 -0
- package/web-ui/build/static/autoit-ChZ5kNJU.js +2 -0
- package/web-ui/build/static/autoit-ChZ5kNJU.js.map +1 -0
- package/web-ui/build/static/avisynth-CMXGNT8_.js +2 -0
- package/web-ui/build/static/avisynth-CMXGNT8_.js.map +1 -0
- package/web-ui/build/static/avrasm-djuJXcT5.js +2 -0
- package/web-ui/build/static/avrasm-djuJXcT5.js.map +1 -0
- package/web-ui/build/static/avro-idl-CZIWkO1i.js +2 -0
- package/web-ui/build/static/avro-idl-CZIWkO1i.js.map +1 -0
- package/web-ui/build/static/awk-p0VrKozB.js +2 -0
- package/web-ui/build/static/awk-p0VrKozB.js.map +1 -0
- package/web-ui/build/static/axapta-MXRoL9dS.js +2 -0
- package/web-ui/build/static/axapta-MXRoL9dS.js.map +1 -0
- package/web-ui/build/static/bash-BMv_6c7q.js +2 -0
- package/web-ui/build/static/bash-BMv_6c7q.js.map +1 -0
- package/web-ui/build/static/bash-BhnovurP.js +2 -0
- package/web-ui/build/static/bash-BhnovurP.js.map +1 -0
- package/web-ui/build/static/basic-B1X6_7t0.js +2 -0
- package/web-ui/build/static/basic-B1X6_7t0.js.map +1 -0
- package/web-ui/build/static/basic-DhGnmAaB.js +2 -0
- package/web-ui/build/static/basic-DhGnmAaB.js.map +1 -0
- package/web-ui/build/static/batch-nd0lgrXA.js +2 -0
- package/web-ui/build/static/batch-nd0lgrXA.js.map +1 -0
- package/web-ui/build/static/bbcode-C68LTiV7.js +2 -0
- package/web-ui/build/static/bbcode-C68LTiV7.js.map +1 -0
- package/web-ui/build/static/bicep-CNWRkF3p.js +2 -0
- package/web-ui/build/static/bicep-CNWRkF3p.js.map +1 -0
- package/web-ui/build/static/birb-CUBCWppi.js +2 -0
- package/web-ui/build/static/birb-CUBCWppi.js.map +1 -0
- package/web-ui/build/static/bison-BSF7ULKN.js +2 -0
- package/web-ui/build/static/bison-BSF7ULKN.js.map +1 -0
- package/web-ui/build/static/bnf-CCyfNBj_.js +2 -0
- package/web-ui/build/static/bnf-CCyfNBj_.js.map +1 -0
- package/web-ui/build/static/bnf-wIrbjdP4.js +2 -0
- package/web-ui/build/static/bnf-wIrbjdP4.js.map +1 -0
- package/web-ui/build/static/brainfuck-CRgRtFtY.js +2 -0
- package/web-ui/build/static/brainfuck-CRgRtFtY.js.map +1 -0
- package/web-ui/build/static/brainfuck-ZnUO6SXb.js +2 -0
- package/web-ui/build/static/brainfuck-ZnUO6SXb.js.map +1 -0
- package/web-ui/build/static/brightscript-CVIWjdA6.js +2 -0
- package/web-ui/build/static/brightscript-CVIWjdA6.js.map +1 -0
- package/web-ui/build/static/bro-NIPnk3vU.js +2 -0
- package/web-ui/build/static/bro-NIPnk3vU.js.map +1 -0
- package/web-ui/build/static/bsl-BxBeGUoR.js +2 -0
- package/web-ui/build/static/bsl-BxBeGUoR.js.map +1 -0
- package/web-ui/build/static/c-DQ141WjM.js +2 -0
- package/web-ui/build/static/c-DQ141WjM.js.map +1 -0
- package/web-ui/build/static/c-FxP9AhwE.js +2 -0
- package/web-ui/build/static/c-FxP9AhwE.js.map +1 -0
- package/web-ui/build/static/c-like-CgQS9SIK.js +2 -0
- package/web-ui/build/static/c-like-CgQS9SIK.js.map +1 -0
- package/web-ui/build/static/cal-DXqETXwK.js +2 -0
- package/web-ui/build/static/cal-DXqETXwK.js.map +1 -0
- package/web-ui/build/static/capnproto-BByBRaqG.js +2 -0
- package/web-ui/build/static/capnproto-BByBRaqG.js.map +1 -0
- package/web-ui/build/static/ceylon-tS8nzBSY.js +2 -0
- package/web-ui/build/static/ceylon-tS8nzBSY.js.map +1 -0
- package/web-ui/build/static/cfscript-B19wNWQR.js +2 -0
- package/web-ui/build/static/cfscript-B19wNWQR.js.map +1 -0
- package/web-ui/build/static/chaiscript-B1kQVuGh.js +2 -0
- package/web-ui/build/static/chaiscript-B1kQVuGh.js.map +1 -0
- package/web-ui/build/static/cil-_20sf20K.js +2 -0
- package/web-ui/build/static/cil-_20sf20K.js.map +1 -0
- package/web-ui/build/static/clean-Cv7EPrV-.js +2 -0
- package/web-ui/build/static/clean-Cv7EPrV-.js.map +1 -0
- package/web-ui/build/static/clike-B4YZogPY.js +2 -0
- package/web-ui/build/static/clike-B4YZogPY.js.map +1 -0
- package/web-ui/build/static/clojure-CZM8gl5n.js +2 -0
- package/web-ui/build/static/clojure-CZM8gl5n.js.map +1 -0
- package/web-ui/build/static/clojure-Ctw_lkp-.js +2 -0
- package/web-ui/build/static/clojure-Ctw_lkp-.js.map +1 -0
- package/web-ui/build/static/clojure-repl-BLSvy4Pz.js +2 -0
- package/web-ui/build/static/clojure-repl-BLSvy4Pz.js.map +1 -0
- package/web-ui/build/static/cmake-CoCMNHta.js +2 -0
- package/web-ui/build/static/cmake-CoCMNHta.js.map +1 -0
- package/web-ui/build/static/cmake-D9GE-AbJ.js +2 -0
- package/web-ui/build/static/cmake-D9GE-AbJ.js.map +1 -0
- package/web-ui/build/static/cobol-Bv3XB9fm.js +2 -0
- package/web-ui/build/static/cobol-Bv3XB9fm.js.map +1 -0
- package/web-ui/build/static/coffeescript-BIlTtHO4.js +2 -0
- package/web-ui/build/static/coffeescript-BIlTtHO4.js.map +1 -0
- package/web-ui/build/static/coffeescript-BLPzoLFM.js +2 -0
- package/web-ui/build/static/coffeescript-BLPzoLFM.js.map +1 -0
- package/web-ui/build/static/concurnas-Chm8WQEN.js +2 -0
- package/web-ui/build/static/concurnas-Chm8WQEN.js.map +1 -0
- package/web-ui/build/static/coq-BkCmFrWF.js +2 -0
- package/web-ui/build/static/coq-BkCmFrWF.js.map +1 -0
- package/web-ui/build/static/coq-LcSKVZoE.js +2 -0
- package/web-ui/build/static/coq-LcSKVZoE.js.map +1 -0
- package/web-ui/build/static/cos-4EE8U4En.js +2 -0
- package/web-ui/build/static/cos-4EE8U4En.js.map +1 -0
- package/web-ui/build/static/cpp-BePsDIUb.js +2 -0
- package/web-ui/build/static/cpp-BePsDIUb.js.map +1 -0
- package/web-ui/build/static/cpp-HS_5scYl.js +2 -0
- package/web-ui/build/static/cpp-HS_5scYl.js.map +1 -0
- package/web-ui/build/static/crmsh-z4dvM3BK.js +2 -0
- package/web-ui/build/static/crmsh-z4dvM3BK.js.map +1 -0
- package/web-ui/build/static/crystal-BgdJ5OOx.js +2 -0
- package/web-ui/build/static/crystal-BgdJ5OOx.js.map +1 -0
- package/web-ui/build/static/crystal-BxoJqI3n.js +2 -0
- package/web-ui/build/static/crystal-BxoJqI3n.js.map +1 -0
- package/web-ui/build/static/csharp-BCxeyatn.js +2 -0
- package/web-ui/build/static/csharp-BCxeyatn.js.map +1 -0
- package/web-ui/build/static/csharp-BpQ_Gcoi.js +2 -0
- package/web-ui/build/static/csharp-BpQ_Gcoi.js.map +1 -0
- package/web-ui/build/static/cshtml-BUcUpqTD.js +2 -0
- package/web-ui/build/static/cshtml-BUcUpqTD.js.map +1 -0
- package/web-ui/build/static/csp-CseeYAsa.js +2 -0
- package/web-ui/build/static/csp-CseeYAsa.js.map +1 -0
- package/web-ui/build/static/csp-DAlQk-vS.js +2 -0
- package/web-ui/build/static/csp-DAlQk-vS.js.map +1 -0
- package/web-ui/build/static/css-BzQF5U2v.js +2 -0
- package/web-ui/build/static/css-BzQF5U2v.js.map +1 -0
- package/web-ui/build/static/css-CKGHM9ka.js +2 -0
- package/web-ui/build/static/css-CKGHM9ka.js.map +1 -0
- package/web-ui/build/static/css-extras-CO6ZXLNE.js +2 -0
- package/web-ui/build/static/css-extras-CO6ZXLNE.js.map +1 -0
- package/web-ui/build/static/csv-CapUVEXg.js +2 -0
- package/web-ui/build/static/csv-CapUVEXg.js.map +1 -0
- package/web-ui/build/static/cypher-BEZBQ1Pu.js +2 -0
- package/web-ui/build/static/cypher-BEZBQ1Pu.js.map +1 -0
- package/web-ui/build/static/d-CXGt7pEt.js +2 -0
- package/web-ui/build/static/d-CXGt7pEt.js.map +1 -0
- package/web-ui/build/static/d-DAjqUyav.js +2 -0
- package/web-ui/build/static/d-DAjqUyav.js.map +1 -0
- package/web-ui/build/static/dart-DtzbjjCV.js +2 -0
- package/web-ui/build/static/dart-DtzbjjCV.js.map +1 -0
- package/web-ui/build/static/dart-NUYlMbuB.js +2 -0
- package/web-ui/build/static/dart-NUYlMbuB.js.map +1 -0
- package/web-ui/build/static/dataweave-C9xc1tou.js +2 -0
- package/web-ui/build/static/dataweave-C9xc1tou.js.map +1 -0
- package/web-ui/build/static/dax-D6ojqcc2.js +2 -0
- package/web-ui/build/static/dax-D6ojqcc2.js.map +1 -0
- package/web-ui/build/static/delphi-CvERF9eG.js +2 -0
- package/web-ui/build/static/delphi-CvERF9eG.js.map +1 -0
- package/web-ui/build/static/dhall-CuxHTkyF.js +2 -0
- package/web-ui/build/static/dhall-CuxHTkyF.js.map +1 -0
- package/web-ui/build/static/diff-Bah5RGy9.js +2 -0
- package/web-ui/build/static/diff-Bah5RGy9.js.map +1 -0
- package/web-ui/build/static/diff-Dfph6LiO.js +2 -0
- package/web-ui/build/static/diff-Dfph6LiO.js.map +1 -0
- package/web-ui/build/static/django-CD9hC7kH.js +2 -0
- package/web-ui/build/static/django-CD9hC7kH.js.map +1 -0
- package/web-ui/build/static/django-DVUs1Gfo.js +2 -0
- package/web-ui/build/static/django-DVUs1Gfo.js.map +1 -0
- package/web-ui/build/static/dns-jD8I_Je2.js +2 -0
- package/web-ui/build/static/dns-jD8I_Je2.js.map +1 -0
- package/web-ui/build/static/dns-zone-file-DQ3TMymr.js +2 -0
- package/web-ui/build/static/dns-zone-file-DQ3TMymr.js.map +1 -0
- package/web-ui/build/static/docker-DLBxtmI6.js +2 -0
- package/web-ui/build/static/docker-DLBxtmI6.js.map +1 -0
- package/web-ui/build/static/dockerfile-DldQd9VH.js +2 -0
- package/web-ui/build/static/dockerfile-DldQd9VH.js.map +1 -0
- package/web-ui/build/static/dos-CsU8zvUY.js +2 -0
- package/web-ui/build/static/dos-CsU8zvUY.js.map +1 -0
- package/web-ui/build/static/dot-CPBEVp48.js +2 -0
- package/web-ui/build/static/dot-CPBEVp48.js.map +1 -0
- package/web-ui/build/static/dsconfig-Cj5XK8O9.js +2 -0
- package/web-ui/build/static/dsconfig-Cj5XK8O9.js.map +1 -0
- package/web-ui/build/static/dts-CNOkwsW3.js +2 -0
- package/web-ui/build/static/dts-CNOkwsW3.js.map +1 -0
- package/web-ui/build/static/dust-BX6GgpWl.js +2 -0
- package/web-ui/build/static/dust-BX6GgpWl.js.map +1 -0
- package/web-ui/build/static/ebnf-Bn1_8PXf.js +2 -0
- package/web-ui/build/static/ebnf-Bn1_8PXf.js.map +1 -0
- package/web-ui/build/static/ebnf-CtqpgvFN.js +2 -0
- package/web-ui/build/static/ebnf-CtqpgvFN.js.map +1 -0
- package/web-ui/build/static/editorconfig-DJfFvV_f.js +2 -0
- package/web-ui/build/static/editorconfig-DJfFvV_f.js.map +1 -0
- package/web-ui/build/static/eiffel-ChctrZWI.js +2 -0
- package/web-ui/build/static/eiffel-ChctrZWI.js.map +1 -0
- package/web-ui/build/static/ejs-AUmZem0H.js +2 -0
- package/web-ui/build/static/ejs-AUmZem0H.js.map +1 -0
- package/web-ui/build/static/elixir-C8cfh8ZS.js +2 -0
- package/web-ui/build/static/elixir-C8cfh8ZS.js.map +1 -0
- package/web-ui/build/static/elixir-nQeVF_wS.js +2 -0
- package/web-ui/build/static/elixir-nQeVF_wS.js.map +1 -0
- package/web-ui/build/static/elm-CGhZt2iw.js +2 -0
- package/web-ui/build/static/elm-CGhZt2iw.js.map +1 -0
- package/web-ui/build/static/elm-CdaVOv5P.js +2 -0
- package/web-ui/build/static/elm-CdaVOv5P.js.map +1 -0
- package/web-ui/build/static/erb-DBRouEhU.js +2 -0
- package/web-ui/build/static/erb-DBRouEhU.js.map +1 -0
- package/web-ui/build/static/erb-lyqnYHXu.js +2 -0
- package/web-ui/build/static/erb-lyqnYHXu.js.map +1 -0
- package/web-ui/build/static/erlang-C9XyxauP.js +2 -0
- package/web-ui/build/static/erlang-C9XyxauP.js.map +1 -0
- package/web-ui/build/static/erlang-CDhRCN6w.js +2 -0
- package/web-ui/build/static/erlang-CDhRCN6w.js.map +1 -0
- package/web-ui/build/static/erlang-repl-DcDrQeko.js +2 -0
- package/web-ui/build/static/erlang-repl-DcDrQeko.js.map +1 -0
- package/web-ui/build/static/etlua-BzqnSjsr.js +2 -0
- package/web-ui/build/static/etlua-BzqnSjsr.js.map +1 -0
- package/web-ui/build/static/excel-DTD9a4dj.js +2 -0
- package/web-ui/build/static/excel-DTD9a4dj.js.map +1 -0
- package/web-ui/build/static/excel-formula-B5TiNFlj.js +2 -0
- package/web-ui/build/static/excel-formula-B5TiNFlj.js.map +1 -0
- package/web-ui/build/static/factor-DG7VmfDQ.js +2 -0
- package/web-ui/build/static/factor-DG7VmfDQ.js.map +1 -0
- package/web-ui/build/static/false-BqBJQh8L.js +2 -0
- package/web-ui/build/static/false-BqBJQh8L.js.map +1 -0
- package/web-ui/build/static/firestore-security-rules-D3xkxV6V.js +2 -0
- package/web-ui/build/static/firestore-security-rules-D3xkxV6V.js.map +1 -0
- package/web-ui/build/static/fix-C2YwkKFG.js +2 -0
- package/web-ui/build/static/fix-C2YwkKFG.js.map +1 -0
- package/web-ui/build/static/flix-MLWj4St3.js +2 -0
- package/web-ui/build/static/flix-MLWj4St3.js.map +1 -0
- package/web-ui/build/static/flow-DzfAy6OH.js +2 -0
- package/web-ui/build/static/flow-DzfAy6OH.js.map +1 -0
- package/web-ui/build/static/fortran-BFdaw-Tm.js +2 -0
- package/web-ui/build/static/fortran-BFdaw-Tm.js.map +1 -0
- package/web-ui/build/static/fortran-D_t-ovV9.js +2 -0
- package/web-ui/build/static/fortran-D_t-ovV9.js.map +1 -0
- package/web-ui/build/static/fsharp-Dsn4EDaJ.js +2 -0
- package/web-ui/build/static/fsharp-Dsn4EDaJ.js.map +1 -0
- package/web-ui/build/static/fsharp-h1xStOLJ.js +2 -0
- package/web-ui/build/static/fsharp-h1xStOLJ.js.map +1 -0
- package/web-ui/build/static/ftl-BpRELCza.js +2 -0
- package/web-ui/build/static/ftl-BpRELCza.js.map +1 -0
- package/web-ui/build/static/gams-DBYPqnZ9.js +2 -0
- package/web-ui/build/static/gams-DBYPqnZ9.js.map +1 -0
- package/web-ui/build/static/gap-rQytr7ZG.js +2 -0
- package/web-ui/build/static/gap-rQytr7ZG.js.map +1 -0
- package/web-ui/build/static/gauss-ohbvVr_J.js +2 -0
- package/web-ui/build/static/gauss-ohbvVr_J.js.map +1 -0
- package/web-ui/build/static/gcode-D3hT8Ggl.js +2 -0
- package/web-ui/build/static/gcode-D3hT8Ggl.js.map +1 -0
- package/web-ui/build/static/gcode-YaTLfBKy.js +2 -0
- package/web-ui/build/static/gcode-YaTLfBKy.js.map +1 -0
- package/web-ui/build/static/gdscript-e0czbhRX.js +2 -0
- package/web-ui/build/static/gdscript-e0czbhRX.js.map +1 -0
- package/web-ui/build/static/gedcom-ihUBBkFE.js +2 -0
- package/web-ui/build/static/gedcom-ihUBBkFE.js.map +1 -0
- package/web-ui/build/static/gherkin-B067TNO6.js +2 -0
- package/web-ui/build/static/gherkin-B067TNO6.js.map +1 -0
- package/web-ui/build/static/gherkin-DmF-L6Ar.js +2 -0
- package/web-ui/build/static/gherkin-DmF-L6Ar.js.map +1 -0
- package/web-ui/build/static/git-biDx-iBi.js +2 -0
- package/web-ui/build/static/git-biDx-iBi.js.map +1 -0
- package/web-ui/build/static/glsl-CEmTQMki.js +2 -0
- package/web-ui/build/static/glsl-CEmTQMki.js.map +1 -0
- package/web-ui/build/static/glsl-x36bxI31.js +2 -0
- package/web-ui/build/static/glsl-x36bxI31.js.map +1 -0
- package/web-ui/build/static/gml-Csajwld_.js +2 -0
- package/web-ui/build/static/gml-Csajwld_.js.map +1 -0
- package/web-ui/build/static/gml-Pw07xrLY.js +2 -0
- package/web-ui/build/static/gml-Pw07xrLY.js.map +1 -0
- package/web-ui/build/static/gn-DO6q4giO.js +2 -0
- package/web-ui/build/static/gn-DO6q4giO.js.map +1 -0
- package/web-ui/build/static/go-Dsip94r-.js +2 -0
- package/web-ui/build/static/go-Dsip94r-.js.map +1 -0
- package/web-ui/build/static/go-IHDLa0ME.js +2 -0
- package/web-ui/build/static/go-IHDLa0ME.js.map +1 -0
- package/web-ui/build/static/go-module-6qtUjKJ3.js +2 -0
- package/web-ui/build/static/go-module-6qtUjKJ3.js.map +1 -0
- package/web-ui/build/static/golo-DgTkjclF.js +2 -0
- package/web-ui/build/static/golo-DgTkjclF.js.map +1 -0
- package/web-ui/build/static/gradle-CGKe39ZL.js +2 -0
- package/web-ui/build/static/gradle-CGKe39ZL.js.map +1 -0
- package/web-ui/build/static/graphql-Bm5SeUgH.js +2 -0
- package/web-ui/build/static/graphql-Bm5SeUgH.js.map +1 -0
- package/web-ui/build/static/groovy-DFIiOVir.js +2 -0
- package/web-ui/build/static/groovy-DFIiOVir.js.map +1 -0
- package/web-ui/build/static/groovy-DrjmrqGV.js +2 -0
- package/web-ui/build/static/groovy-DrjmrqGV.js.map +1 -0
- package/web-ui/build/static/haml-BGkgi1OU.js +2 -0
- package/web-ui/build/static/haml-BGkgi1OU.js.map +1 -0
- package/web-ui/build/static/haml-BYdVMbfT.js +2 -0
- package/web-ui/build/static/haml-BYdVMbfT.js.map +1 -0
- package/web-ui/build/static/handlebars-DsvPDbuP.js +2 -0
- package/web-ui/build/static/handlebars-DsvPDbuP.js.map +1 -0
- package/web-ui/build/static/handlebars-aODu9Htc.js +2 -0
- package/web-ui/build/static/handlebars-aODu9Htc.js.map +1 -0
- package/web-ui/build/static/haskell-DSRUE43z.js +2 -0
- package/web-ui/build/static/haskell-DSRUE43z.js.map +1 -0
- package/web-ui/build/static/haskell-DpLg1Yls.js +2 -0
- package/web-ui/build/static/haskell-DpLg1Yls.js.map +1 -0
- package/web-ui/build/static/haxe-BaIrYMIY.js +2 -0
- package/web-ui/build/static/haxe-BaIrYMIY.js.map +1 -0
- package/web-ui/build/static/haxe-D_aKTVDi.js +2 -0
- package/web-ui/build/static/haxe-D_aKTVDi.js.map +1 -0
- package/web-ui/build/static/hcl-BiFQOL4p.js +2 -0
- package/web-ui/build/static/hcl-BiFQOL4p.js.map +1 -0
- package/web-ui/build/static/hlsl-txpgJJGO.js +2 -0
- package/web-ui/build/static/hlsl-txpgJJGO.js.map +1 -0
- package/web-ui/build/static/hoon-QY01V-uY.js +2 -0
- package/web-ui/build/static/hoon-QY01V-uY.js.map +1 -0
- package/web-ui/build/static/hpkp-a_Uxrmvm.js +2 -0
- package/web-ui/build/static/hpkp-a_Uxrmvm.js.map +1 -0
- package/web-ui/build/static/hsp-C6loa4R-.js +2 -0
- package/web-ui/build/static/hsp-C6loa4R-.js.map +1 -0
- package/web-ui/build/static/hsts-Dr5ujI-L.js +2 -0
- package/web-ui/build/static/hsts-Dr5ujI-L.js.map +1 -0
- package/web-ui/build/static/htmlbars-DQMEq-Tg.js +2 -0
- package/web-ui/build/static/htmlbars-DQMEq-Tg.js.map +1 -0
- package/web-ui/build/static/http-C652NOKi.js +2 -0
- package/web-ui/build/static/http-C652NOKi.js.map +1 -0
- package/web-ui/build/static/http-D_L6CN_L.js +2 -0
- package/web-ui/build/static/http-D_L6CN_L.js.map +1 -0
- package/web-ui/build/static/hy-D0cSYrtO.js +2 -0
- package/web-ui/build/static/hy-D0cSYrtO.js.map +1 -0
- package/web-ui/build/static/ichigojam-WFQJUvan.js +2 -0
- package/web-ui/build/static/ichigojam-WFQJUvan.js.map +1 -0
- package/web-ui/build/static/icon-D9euGi_U.js +2 -0
- package/web-ui/build/static/icon-D9euGi_U.js.map +1 -0
- package/web-ui/build/static/icu-message-format-By-83igA.js +2 -0
- package/web-ui/build/static/icu-message-format-By-83igA.js.map +1 -0
- package/web-ui/build/static/idris-BF0roFyh.js +2 -0
- package/web-ui/build/static/idris-BF0roFyh.js.map +1 -0
- package/web-ui/build/static/iecst-CM8g9Fi8.js +2 -0
- package/web-ui/build/static/iecst-CM8g9Fi8.js.map +1 -0
- package/web-ui/build/static/ignore-CcICfcJp.js +2 -0
- package/web-ui/build/static/ignore-CcICfcJp.js.map +1 -0
- package/web-ui/build/static/index-BGy_02Lz.js +14 -0
- package/web-ui/build/static/index-BGy_02Lz.js.map +1 -0
- package/web-ui/build/static/index-BZ96dWlb.js +1247 -0
- package/web-ui/build/static/index-BZ96dWlb.js.map +1 -0
- package/web-ui/build/static/index-CRb74OSB.css +1 -0
- package/web-ui/build/static/index-DAxkIY2S.js +2 -0
- package/web-ui/build/static/index-DAxkIY2S.js.map +1 -0
- package/web-ui/build/static/inform7-DCYG94vf.js +2 -0
- package/web-ui/build/static/inform7-DCYG94vf.js.map +1 -0
- package/web-ui/build/static/inform7-DjqQoELc.js +2 -0
- package/web-ui/build/static/inform7-DjqQoELc.js.map +1 -0
- package/web-ui/build/static/ini-DCLzJbTA.js +2 -0
- package/web-ui/build/static/ini-DCLzJbTA.js.map +1 -0
- package/web-ui/build/static/ini-q52EK0O2.js +2 -0
- package/web-ui/build/static/ini-q52EK0O2.js.map +1 -0
- package/web-ui/build/static/io-CzVjw4Ov.js +2 -0
- package/web-ui/build/static/io-CzVjw4Ov.js.map +1 -0
- package/web-ui/build/static/irpf90-CAwGwFym.js +2 -0
- package/web-ui/build/static/irpf90-CAwGwFym.js.map +1 -0
- package/web-ui/build/static/isbl-XJ3oHO7r.js +2 -0
- package/web-ui/build/static/isbl-XJ3oHO7r.js.map +1 -0
- package/web-ui/build/static/j-6667Vv4c.js +2 -0
- package/web-ui/build/static/j-6667Vv4c.js.map +1 -0
- package/web-ui/build/static/java-DnukE5vL.js +2 -0
- package/web-ui/build/static/java-DnukE5vL.js.map +1 -0
- package/web-ui/build/static/java-a15mXk55.js +2 -0
- package/web-ui/build/static/java-a15mXk55.js.map +1 -0
- package/web-ui/build/static/javadoc-BCcsr-O1.js +2 -0
- package/web-ui/build/static/javadoc-BCcsr-O1.js.map +1 -0
- package/web-ui/build/static/javadoclike-B-PgU8Ap.js +2 -0
- package/web-ui/build/static/javadoclike-B-PgU8Ap.js.map +1 -0
- package/web-ui/build/static/javascript-Bbx7H35e.js +2 -0
- package/web-ui/build/static/javascript-Bbx7H35e.js.map +1 -0
- package/web-ui/build/static/javascript-DjnOZyfu.js +2 -0
- package/web-ui/build/static/javascript-DjnOZyfu.js.map +1 -0
- package/web-ui/build/static/javastacktrace-Ck7-d01v.js +2 -0
- package/web-ui/build/static/javastacktrace-Ck7-d01v.js.map +1 -0
- package/web-ui/build/static/jboss-cli-D94EboGJ.js +2 -0
- package/web-ui/build/static/jboss-cli-D94EboGJ.js.map +1 -0
- package/web-ui/build/static/jexl-B3SKVRZk.js +2 -0
- package/web-ui/build/static/jexl-B3SKVRZk.js.map +1 -0
- package/web-ui/build/static/jolie-CdLxaGa2.js +2 -0
- package/web-ui/build/static/jolie-CdLxaGa2.js.map +1 -0
- package/web-ui/build/static/jq-CasN9rDD.js +2 -0
- package/web-ui/build/static/jq-CasN9rDD.js.map +1 -0
- package/web-ui/build/static/js-extras-CEa82Vd5.js +2 -0
- package/web-ui/build/static/js-extras-CEa82Vd5.js.map +1 -0
- package/web-ui/build/static/js-templates-Bb6onSVY.js +2 -0
- package/web-ui/build/static/js-templates-Bb6onSVY.js.map +1 -0
- package/web-ui/build/static/jsdoc-DEoqMCcV.js +2 -0
- package/web-ui/build/static/jsdoc-DEoqMCcV.js.map +1 -0
- package/web-ui/build/static/json-BWO6h-33.js +2 -0
- package/web-ui/build/static/json-BWO6h-33.js.map +1 -0
- package/web-ui/build/static/json-BYpTfIVw.js +2 -0
- package/web-ui/build/static/json-BYpTfIVw.js.map +1 -0
- package/web-ui/build/static/json5-M0RqNiBf.js +2 -0
- package/web-ui/build/static/json5-M0RqNiBf.js.map +1 -0
- package/web-ui/build/static/jsonp-Bxvs0kvO.js +2 -0
- package/web-ui/build/static/jsonp-Bxvs0kvO.js.map +1 -0
- package/web-ui/build/static/jsstacktrace-F_GrGmfx.js +2 -0
- package/web-ui/build/static/jsstacktrace-F_GrGmfx.js.map +1 -0
- package/web-ui/build/static/jsx-CZEYHJ9r.js +2 -0
- package/web-ui/build/static/jsx-CZEYHJ9r.js.map +1 -0
- package/web-ui/build/static/julia-ClRIQjb7.js +2 -0
- package/web-ui/build/static/julia-ClRIQjb7.js.map +1 -0
- package/web-ui/build/static/julia-gbyEzxuw.js +2 -0
- package/web-ui/build/static/julia-gbyEzxuw.js.map +1 -0
- package/web-ui/build/static/julia-repl-CPyK5y7Z.js +2 -0
- package/web-ui/build/static/julia-repl-CPyK5y7Z.js.map +1 -0
- package/web-ui/build/static/keepalived-CN5o-TXp.js +2 -0
- package/web-ui/build/static/keepalived-CN5o-TXp.js.map +1 -0
- package/web-ui/build/static/keyman-DKRXs14F.js +2 -0
- package/web-ui/build/static/keyman-DKRXs14F.js.map +1 -0
- package/web-ui/build/static/kotlin-Cils76JN.js +2 -0
- package/web-ui/build/static/kotlin-Cils76JN.js.map +1 -0
- package/web-ui/build/static/kotlin-DZ_eAQjE.js +2 -0
- package/web-ui/build/static/kotlin-DZ_eAQjE.js.map +1 -0
- package/web-ui/build/static/kumir-DPmgpbTI.js +2 -0
- package/web-ui/build/static/kumir-DPmgpbTI.js.map +1 -0
- package/web-ui/build/static/kusto-SnZaHLS6.js +2 -0
- package/web-ui/build/static/kusto-SnZaHLS6.js.map +1 -0
- package/web-ui/build/static/lasso-CZphtpLe.js +2 -0
- package/web-ui/build/static/lasso-CZphtpLe.js.map +1 -0
- package/web-ui/build/static/latex-Bm3IPs5G.js +2 -0
- package/web-ui/build/static/latex-Bm3IPs5G.js.map +1 -0
- package/web-ui/build/static/latex-DvsDYwG1.js +2 -0
- package/web-ui/build/static/latex-DvsDYwG1.js.map +1 -0
- package/web-ui/build/static/latte-CHpxU1k7.js +2 -0
- package/web-ui/build/static/latte-CHpxU1k7.js.map +1 -0
- package/web-ui/build/static/ldif-C1-d9uq-.js +2 -0
- package/web-ui/build/static/ldif-C1-d9uq-.js.map +1 -0
- package/web-ui/build/static/leaf-L074LVRa.js +2 -0
- package/web-ui/build/static/leaf-L074LVRa.js.map +1 -0
- package/web-ui/build/static/less-CcsqycpY.js +2 -0
- package/web-ui/build/static/less-CcsqycpY.js.map +1 -0
- package/web-ui/build/static/less-DZSR7fcs.js +2 -0
- package/web-ui/build/static/less-DZSR7fcs.js.map +1 -0
- package/web-ui/build/static/lilypond-JWtSMmDx.js +2 -0
- package/web-ui/build/static/lilypond-JWtSMmDx.js.map +1 -0
- package/web-ui/build/static/liquid-VyDFGeP6.js +2 -0
- package/web-ui/build/static/liquid-VyDFGeP6.js.map +1 -0
- package/web-ui/build/static/lisp-BBi3PKi_.js +2 -0
- package/web-ui/build/static/lisp-BBi3PKi_.js.map +1 -0
- package/web-ui/build/static/lisp-hKuKldps.js +2 -0
- package/web-ui/build/static/lisp-hKuKldps.js.map +1 -0
- package/web-ui/build/static/livecodeserver-pOPvWsLP.js +2 -0
- package/web-ui/build/static/livecodeserver-pOPvWsLP.js.map +1 -0
- package/web-ui/build/static/livescript-B6c30hNS.js +2 -0
- package/web-ui/build/static/livescript-B6c30hNS.js.map +1 -0
- package/web-ui/build/static/livescript-bZTGJf38.js +2 -0
- package/web-ui/build/static/livescript-bZTGJf38.js.map +1 -0
- package/web-ui/build/static/llvm-C4YuB-0e.js +2 -0
- package/web-ui/build/static/llvm-C4YuB-0e.js.map +1 -0
- package/web-ui/build/static/llvm-DoTOagkk.js +2 -0
- package/web-ui/build/static/llvm-DoTOagkk.js.map +1 -0
- package/web-ui/build/static/log-DBcLNYMI.js +2 -0
- package/web-ui/build/static/log-DBcLNYMI.js.map +1 -0
- package/web-ui/build/static/lolcode-g9qn-LHy.js +2 -0
- package/web-ui/build/static/lolcode-g9qn-LHy.js.map +1 -0
- package/web-ui/build/static/lsl-CmMxkXAE.js +2 -0
- package/web-ui/build/static/lsl-CmMxkXAE.js.map +1 -0
- package/web-ui/build/static/lua-BOY92Qe1.js +2 -0
- package/web-ui/build/static/lua-BOY92Qe1.js.map +1 -0
- package/web-ui/build/static/lua-Df8P_1o4.js +2 -0
- package/web-ui/build/static/lua-Df8P_1o4.js.map +1 -0
- package/web-ui/build/static/magma-3qtheSsP.js +2 -0
- package/web-ui/build/static/magma-3qtheSsP.js.map +1 -0
- package/web-ui/build/static/makefile-ZU6Uwf_j.js +2 -0
- package/web-ui/build/static/makefile-ZU6Uwf_j.js.map +1 -0
- package/web-ui/build/static/makefile-nCnXvepn.js +2 -0
- package/web-ui/build/static/makefile-nCnXvepn.js.map +1 -0
- package/web-ui/build/static/markdown-BUAiOvBz.js +2 -0
- package/web-ui/build/static/markdown-BUAiOvBz.js.map +1 -0
- package/web-ui/build/static/markdown-Dp8kNn4t.js +2 -0
- package/web-ui/build/static/markdown-Dp8kNn4t.js.map +1 -0
- package/web-ui/build/static/markup-Cw-Q-osr.js +2 -0
- package/web-ui/build/static/markup-Cw-Q-osr.js.map +1 -0
- package/web-ui/build/static/markup-templating-IjTVkT30.js +2 -0
- package/web-ui/build/static/markup-templating-IjTVkT30.js.map +1 -0
- package/web-ui/build/static/mathematica-Jh6KImk5.js +2 -0
- package/web-ui/build/static/mathematica-Jh6KImk5.js.map +1 -0
- package/web-ui/build/static/matlab-B-slzE2C.js +2 -0
- package/web-ui/build/static/matlab-B-slzE2C.js.map +1 -0
- package/web-ui/build/static/matlab-CQUgyJTC.js +2 -0
- package/web-ui/build/static/matlab-CQUgyJTC.js.map +1 -0
- package/web-ui/build/static/maxima-51AazIp0.js +2 -0
- package/web-ui/build/static/maxima-51AazIp0.js.map +1 -0
- package/web-ui/build/static/maxscript-J-pBysdn.js +2 -0
- package/web-ui/build/static/maxscript-J-pBysdn.js.map +1 -0
- package/web-ui/build/static/mel-CSM_x_hw.js +2 -0
- package/web-ui/build/static/mel-CSM_x_hw.js.map +1 -0
- package/web-ui/build/static/mel-D5y7g_io.js +2 -0
- package/web-ui/build/static/mel-D5y7g_io.js.map +1 -0
- package/web-ui/build/static/mercury-BBEgNC6K.js +2 -0
- package/web-ui/build/static/mercury-BBEgNC6K.js.map +1 -0
- package/web-ui/build/static/mermaid-CxYdakMG.js +2 -0
- package/web-ui/build/static/mermaid-CxYdakMG.js.map +1 -0
- package/web-ui/build/static/mipsasm-CJR80JRT.js +2 -0
- package/web-ui/build/static/mipsasm-CJR80JRT.js.map +1 -0
- package/web-ui/build/static/mizar-BtS8C95O.js +2 -0
- package/web-ui/build/static/mizar-BtS8C95O.js.map +1 -0
- package/web-ui/build/static/mizar-CM9ca5KL.js +2 -0
- package/web-ui/build/static/mizar-CM9ca5KL.js.map +1 -0
- package/web-ui/build/static/mojolicious-bX9JUZx8.js +2 -0
- package/web-ui/build/static/mojolicious-bX9JUZx8.js.map +1 -0
- package/web-ui/build/static/mongodb-DR-bnyTw.js +2 -0
- package/web-ui/build/static/mongodb-DR-bnyTw.js.map +1 -0
- package/web-ui/build/static/monkey-Bq8netSZ.js +2 -0
- package/web-ui/build/static/monkey-Bq8netSZ.js.map +1 -0
- package/web-ui/build/static/monkey-CPpmuL9I.js +2 -0
- package/web-ui/build/static/monkey-CPpmuL9I.js.map +1 -0
- package/web-ui/build/static/moonscript-B9a73jsf.js +2 -0
- package/web-ui/build/static/moonscript-B9a73jsf.js.map +1 -0
- package/web-ui/build/static/moonscript-DmA2CttA.js +2 -0
- package/web-ui/build/static/moonscript-DmA2CttA.js.map +1 -0
- package/web-ui/build/static/n1ql-Bz2fg_jW.js +2 -0
- package/web-ui/build/static/n1ql-Bz2fg_jW.js.map +1 -0
- package/web-ui/build/static/n1ql-FUlIcRmf.js +2 -0
- package/web-ui/build/static/n1ql-FUlIcRmf.js.map +1 -0
- package/web-ui/build/static/n4js-Bp5wMqM0.js +2 -0
- package/web-ui/build/static/n4js-Bp5wMqM0.js.map +1 -0
- package/web-ui/build/static/nand2tetris-hdl-CJyH0LLR.js +2 -0
- package/web-ui/build/static/nand2tetris-hdl-CJyH0LLR.js.map +1 -0
- package/web-ui/build/static/naniscript-CLrgjhin.js +2 -0
- package/web-ui/build/static/naniscript-CLrgjhin.js.map +1 -0
- package/web-ui/build/static/nasm-Co7yC4q7.js +2 -0
- package/web-ui/build/static/nasm-Co7yC4q7.js.map +1 -0
- package/web-ui/build/static/neon-0JwCtEuE.js +2 -0
- package/web-ui/build/static/neon-0JwCtEuE.js.map +1 -0
- package/web-ui/build/static/nevod-h39mJZY1.js +2 -0
- package/web-ui/build/static/nevod-h39mJZY1.js.map +1 -0
- package/web-ui/build/static/nginx-7b1himo2.js +2 -0
- package/web-ui/build/static/nginx-7b1himo2.js.map +1 -0
- package/web-ui/build/static/nginx-9ndv5Khr.js +2 -0
- package/web-ui/build/static/nginx-9ndv5Khr.js.map +1 -0
- package/web-ui/build/static/nim-DJjX5wjI.js +2 -0
- package/web-ui/build/static/nim-DJjX5wjI.js.map +1 -0
- package/web-ui/build/static/nim-IAZUyPZK.js +2 -0
- package/web-ui/build/static/nim-IAZUyPZK.js.map +1 -0
- package/web-ui/build/static/nix--Ab_kIxO.js +2 -0
- package/web-ui/build/static/nix--Ab_kIxO.js.map +1 -0
- package/web-ui/build/static/nix-BN8GjRB6.js +2 -0
- package/web-ui/build/static/nix-BN8GjRB6.js.map +1 -0
- package/web-ui/build/static/node-repl-KD4UJWIP.js +2 -0
- package/web-ui/build/static/node-repl-KD4UJWIP.js.map +1 -0
- package/web-ui/build/static/nsis-BBcB8_jt.js +2 -0
- package/web-ui/build/static/nsis-BBcB8_jt.js.map +1 -0
- package/web-ui/build/static/nsis-CmKeAsGi.js +2 -0
- package/web-ui/build/static/nsis-CmKeAsGi.js.map +1 -0
- package/web-ui/build/static/objectivec-4uUb8xtC.js +2 -0
- package/web-ui/build/static/objectivec-4uUb8xtC.js.map +1 -0
- package/web-ui/build/static/objectivec-C5tfJ0Lo.js +2 -0
- package/web-ui/build/static/objectivec-C5tfJ0Lo.js.map +1 -0
- package/web-ui/build/static/ocaml-BBqBgC8n.js +2 -0
- package/web-ui/build/static/ocaml-BBqBgC8n.js.map +1 -0
- package/web-ui/build/static/ocaml-ByvmTd6_.js +2 -0
- package/web-ui/build/static/ocaml-ByvmTd6_.js.map +1 -0
- package/web-ui/build/static/opencl-BnSqAfLW.js +2 -0
- package/web-ui/build/static/opencl-BnSqAfLW.js.map +1 -0
- package/web-ui/build/static/openqasm-BweCwJ93.js +2 -0
- package/web-ui/build/static/openqasm-BweCwJ93.js.map +1 -0
- package/web-ui/build/static/openscad-D0pqHlcA.js +2 -0
- package/web-ui/build/static/openscad-D0pqHlcA.js.map +1 -0
- package/web-ui/build/static/oxygene-DuU6JTy8.js +2 -0
- package/web-ui/build/static/oxygene-DuU6JTy8.js.map +1 -0
- package/web-ui/build/static/oz-uqCxxbkq.js +2 -0
- package/web-ui/build/static/oz-uqCxxbkq.js.map +1 -0
- package/web-ui/build/static/parigp-nyeTu47g.js +2 -0
- package/web-ui/build/static/parigp-nyeTu47g.js.map +1 -0
- package/web-ui/build/static/parser-D9sNqruY.js +2 -0
- package/web-ui/build/static/parser-D9sNqruY.js.map +1 -0
- package/web-ui/build/static/parser3-BYPqq2AB.js +2 -0
- package/web-ui/build/static/parser3-BYPqq2AB.js.map +1 -0
- package/web-ui/build/static/pascal-D8D189xn.js +2 -0
- package/web-ui/build/static/pascal-D8D189xn.js.map +1 -0
- package/web-ui/build/static/pascaligo-6FdglaRL.js +2 -0
- package/web-ui/build/static/pascaligo-6FdglaRL.js.map +1 -0
- package/web-ui/build/static/pcaxis-DWbTM8Yd.js +2 -0
- package/web-ui/build/static/pcaxis-DWbTM8Yd.js.map +1 -0
- package/web-ui/build/static/peoplecode-D4dSYsFb.js +2 -0
- package/web-ui/build/static/peoplecode-D4dSYsFb.js.map +1 -0
- package/web-ui/build/static/perl-9jSnfdy_.js +2 -0
- package/web-ui/build/static/perl-9jSnfdy_.js.map +1 -0
- package/web-ui/build/static/perl-_HxUcdwU.js +2 -0
- package/web-ui/build/static/perl-_HxUcdwU.js.map +1 -0
- package/web-ui/build/static/pf-BHPCTJ6-.js +2 -0
- package/web-ui/build/static/pf-BHPCTJ6-.js.map +1 -0
- package/web-ui/build/static/pgsql-BgcBUjcR.js +2 -0
- package/web-ui/build/static/pgsql-BgcBUjcR.js.map +1 -0
- package/web-ui/build/static/php-CIcDdi6I.js +2 -0
- package/web-ui/build/static/php-CIcDdi6I.js.map +1 -0
- package/web-ui/build/static/php-CkM6rpyy.js +2 -0
- package/web-ui/build/static/php-CkM6rpyy.js.map +1 -0
- package/web-ui/build/static/php-extras-UjW-Vk61.js +2 -0
- package/web-ui/build/static/php-extras-UjW-Vk61.js.map +1 -0
- package/web-ui/build/static/php-template-B2dN2hwT.js +2 -0
- package/web-ui/build/static/php-template-B2dN2hwT.js.map +1 -0
- package/web-ui/build/static/phpdoc-DNdTX53A.js +2 -0
- package/web-ui/build/static/phpdoc-DNdTX53A.js.map +1 -0
- package/web-ui/build/static/plaintext-DUIFyiDe.js +2 -0
- package/web-ui/build/static/plaintext-DUIFyiDe.js.map +1 -0
- package/web-ui/build/static/plsql-DsQJ4072.js +2 -0
- package/web-ui/build/static/plsql-DsQJ4072.js.map +1 -0
- package/web-ui/build/static/pony-BU1fLYpU.js +2 -0
- package/web-ui/build/static/pony-BU1fLYpU.js.map +1 -0
- package/web-ui/build/static/powerquery-DJk6-TK4.js +2 -0
- package/web-ui/build/static/powerquery-DJk6-TK4.js.map +1 -0
- package/web-ui/build/static/powershell-BDNruhoF.js +2 -0
- package/web-ui/build/static/powershell-BDNruhoF.js.map +1 -0
- package/web-ui/build/static/powershell-BXU4DCs3.js +2 -0
- package/web-ui/build/static/powershell-BXU4DCs3.js.map +1 -0
- package/web-ui/build/static/processing-ChVpkQhX.js +2 -0
- package/web-ui/build/static/processing-ChVpkQhX.js.map +1 -0
- package/web-ui/build/static/processing-Cv7_hnPM.js +2 -0
- package/web-ui/build/static/processing-Cv7_hnPM.js.map +1 -0
- package/web-ui/build/static/profile-BVj1qJE_.js +2 -0
- package/web-ui/build/static/profile-BVj1qJE_.js.map +1 -0
- package/web-ui/build/static/prolog-CAVgwprX.js +2 -0
- package/web-ui/build/static/prolog-CAVgwprX.js.map +1 -0
- package/web-ui/build/static/prolog-Et2wujHo.js +2 -0
- package/web-ui/build/static/prolog-Et2wujHo.js.map +1 -0
- package/web-ui/build/static/promql-Cz4F77Ew.js +2 -0
- package/web-ui/build/static/promql-Cz4F77Ew.js.map +1 -0
- package/web-ui/build/static/properties-BShHENAN.js +2 -0
- package/web-ui/build/static/properties-BShHENAN.js.map +1 -0
- package/web-ui/build/static/properties-Dkqm0rKu.js +2 -0
- package/web-ui/build/static/properties-Dkqm0rKu.js.map +1 -0
- package/web-ui/build/static/protobuf-CVNe3e-W.js +2 -0
- package/web-ui/build/static/protobuf-CVNe3e-W.js.map +1 -0
- package/web-ui/build/static/protobuf-CqLETJaM.js +2 -0
- package/web-ui/build/static/protobuf-CqLETJaM.js.map +1 -0
- package/web-ui/build/static/psl-B_niOor2.js +2 -0
- package/web-ui/build/static/psl-B_niOor2.js.map +1 -0
- package/web-ui/build/static/pug-Dogq0W1q.js +2 -0
- package/web-ui/build/static/pug-Dogq0W1q.js.map +1 -0
- package/web-ui/build/static/puppet-CqIsZPpg.js +2 -0
- package/web-ui/build/static/puppet-CqIsZPpg.js.map +1 -0
- package/web-ui/build/static/puppet-DtUTgwBl.js +2 -0
- package/web-ui/build/static/puppet-DtUTgwBl.js.map +1 -0
- package/web-ui/build/static/pure-DLb-CZAQ.js +2 -0
- package/web-ui/build/static/pure-DLb-CZAQ.js.map +1 -0
- package/web-ui/build/static/purebasic-Ak-XvaaG.js +2 -0
- package/web-ui/build/static/purebasic-Ak-XvaaG.js.map +1 -0
- package/web-ui/build/static/purebasic-CwWD8ppC.js +2 -0
- package/web-ui/build/static/purebasic-CwWD8ppC.js.map +1 -0
- package/web-ui/build/static/purescript-pxRFtg50.js +2 -0
- package/web-ui/build/static/purescript-pxRFtg50.js.map +1 -0
- package/web-ui/build/static/python-BGpnbhdm.js +2 -0
- package/web-ui/build/static/python-BGpnbhdm.js.map +1 -0
- package/web-ui/build/static/python-apQya6Kp.js +2 -0
- package/web-ui/build/static/python-apQya6Kp.js.map +1 -0
- package/web-ui/build/static/python-repl-CAL1b1cv.js +2 -0
- package/web-ui/build/static/python-repl-CAL1b1cv.js.map +1 -0
- package/web-ui/build/static/q-CFgS2m0y.js +2 -0
- package/web-ui/build/static/q-CFgS2m0y.js.map +1 -0
- package/web-ui/build/static/q-CY5yFdRL.js +2 -0
- package/web-ui/build/static/q-CY5yFdRL.js.map +1 -0
- package/web-ui/build/static/qml-CjVZ6qeU.js +2 -0
- package/web-ui/build/static/qml-CjVZ6qeU.js.map +1 -0
- package/web-ui/build/static/qml-DF6taTRL.js +2 -0
- package/web-ui/build/static/qml-DF6taTRL.js.map +1 -0
- package/web-ui/build/static/qore-Cnvwnm4W.js +2 -0
- package/web-ui/build/static/qore-Cnvwnm4W.js.map +1 -0
- package/web-ui/build/static/qsharp-BLyqFiSH.js +2 -0
- package/web-ui/build/static/qsharp-BLyqFiSH.js.map +1 -0
- package/web-ui/build/static/r-CxJpNolP.js +2 -0
- package/web-ui/build/static/r-CxJpNolP.js.map +1 -0
- package/web-ui/build/static/r-_E6ue124.js +2 -0
- package/web-ui/build/static/r-_E6ue124.js.map +1 -0
- package/web-ui/build/static/racket-Bmyg-av4.js +2 -0
- package/web-ui/build/static/racket-Bmyg-av4.js.map +1 -0
- package/web-ui/build/static/reason-OKvRjmn_.js +2 -0
- package/web-ui/build/static/reason-OKvRjmn_.js.map +1 -0
- package/web-ui/build/static/reasonml-D0BNoEZO.js +2 -0
- package/web-ui/build/static/reasonml-D0BNoEZO.js.map +1 -0
- package/web-ui/build/static/regex-BeCVDeGQ.js +2 -0
- package/web-ui/build/static/regex-BeCVDeGQ.js.map +1 -0
- package/web-ui/build/static/rego-CY58V9z1.js +2 -0
- package/web-ui/build/static/rego-CY58V9z1.js.map +1 -0
- package/web-ui/build/static/renpy-Df5i3624.js +2 -0
- package/web-ui/build/static/renpy-Df5i3624.js.map +1 -0
- package/web-ui/build/static/rest-YD_Wjw2e.js +2 -0
- package/web-ui/build/static/rest-YD_Wjw2e.js.map +1 -0
- package/web-ui/build/static/rib-DuaunRKi.js +2 -0
- package/web-ui/build/static/rib-DuaunRKi.js.map +1 -0
- package/web-ui/build/static/rip-iDXJRLt0.js +2 -0
- package/web-ui/build/static/rip-iDXJRLt0.js.map +1 -0
- package/web-ui/build/static/roboconf-DqxR743C.js +2 -0
- package/web-ui/build/static/roboconf-DqxR743C.js.map +1 -0
- package/web-ui/build/static/roboconf-mZ8y2Wzl.js +2 -0
- package/web-ui/build/static/roboconf-mZ8y2Wzl.js.map +1 -0
- package/web-ui/build/static/robotframework-C-iaHN63.js +2 -0
- package/web-ui/build/static/robotframework-C-iaHN63.js.map +1 -0
- package/web-ui/build/static/routeros-DDsrh3MO.js +2 -0
- package/web-ui/build/static/routeros-DDsrh3MO.js.map +1 -0
- package/web-ui/build/static/rsl-BmjcGZip.js +2 -0
- package/web-ui/build/static/rsl-BmjcGZip.js.map +1 -0
- package/web-ui/build/static/ruby-D3NIGoto.js +2 -0
- package/web-ui/build/static/ruby-D3NIGoto.js.map +1 -0
- package/web-ui/build/static/ruby-XEKmj6hE.js +2 -0
- package/web-ui/build/static/ruby-XEKmj6hE.js.map +1 -0
- package/web-ui/build/static/ruleslanguage-CgdyQvDN.js +2 -0
- package/web-ui/build/static/ruleslanguage-CgdyQvDN.js.map +1 -0
- package/web-ui/build/static/rust-C768ZOk9.js +2 -0
- package/web-ui/build/static/rust-C768ZOk9.js.map +1 -0
- package/web-ui/build/static/rust-DNaBGts-.js +2 -0
- package/web-ui/build/static/rust-DNaBGts-.js.map +1 -0
- package/web-ui/build/static/sas-B72-BWtx.js +2 -0
- package/web-ui/build/static/sas-B72-BWtx.js.map +1 -0
- package/web-ui/build/static/sas-DzRXNPHa.js +2 -0
- package/web-ui/build/static/sas-DzRXNPHa.js.map +1 -0
- package/web-ui/build/static/sass-CNAvWcck.js +2 -0
- package/web-ui/build/static/sass-CNAvWcck.js.map +1 -0
- package/web-ui/build/static/scala-CXLhK1nY.js +2 -0
- package/web-ui/build/static/scala-CXLhK1nY.js.map +1 -0
- package/web-ui/build/static/scala-Vfzz66fM.js +2 -0
- package/web-ui/build/static/scala-Vfzz66fM.js.map +1 -0
- package/web-ui/build/static/scheme-BCW3xpmp.js +2 -0
- package/web-ui/build/static/scheme-BCW3xpmp.js.map +1 -0
- package/web-ui/build/static/scheme-BM0CYtaA.js +2 -0
- package/web-ui/build/static/scheme-BM0CYtaA.js.map +1 -0
- package/web-ui/build/static/scilab-DFkJbzYs.js +2 -0
- package/web-ui/build/static/scilab-DFkJbzYs.js.map +1 -0
- package/web-ui/build/static/scss-C7oXKXjN.js +2 -0
- package/web-ui/build/static/scss-C7oXKXjN.js.map +1 -0
- package/web-ui/build/static/scss-Z7bEZWZp.js +2 -0
- package/web-ui/build/static/scss-Z7bEZWZp.js.map +1 -0
- package/web-ui/build/static/shell-RewC1NA5.js +2 -0
- package/web-ui/build/static/shell-RewC1NA5.js.map +1 -0
- package/web-ui/build/static/shell-session-BVlqwXKH.js +2 -0
- package/web-ui/build/static/shell-session-BVlqwXKH.js.map +1 -0
- package/web-ui/build/static/smali-CKfLwCA4.js +2 -0
- package/web-ui/build/static/smali-CKfLwCA4.js.map +1 -0
- package/web-ui/build/static/smali-CQq-JKqJ.js +2 -0
- package/web-ui/build/static/smali-CQq-JKqJ.js.map +1 -0
- package/web-ui/build/static/smalltalk-BWZ7_SK7.js +2 -0
- package/web-ui/build/static/smalltalk-BWZ7_SK7.js.map +1 -0
- package/web-ui/build/static/smalltalk-COa9DYQI.js +2 -0
- package/web-ui/build/static/smalltalk-COa9DYQI.js.map +1 -0
- package/web-ui/build/static/smarty-DNZf8so0.js +2 -0
- package/web-ui/build/static/smarty-DNZf8so0.js.map +1 -0
- package/web-ui/build/static/sml-B45Z4gfL.js +2 -0
- package/web-ui/build/static/sml-B45Z4gfL.js.map +1 -0
- package/web-ui/build/static/sml-DWihHWqq.js +2 -0
- package/web-ui/build/static/sml-DWihHWqq.js.map +1 -0
- package/web-ui/build/static/solidity-CcykBrCn.js +2 -0
- package/web-ui/build/static/solidity-CcykBrCn.js.map +1 -0
- package/web-ui/build/static/solution-file-g19cduw8.js +2 -0
- package/web-ui/build/static/solution-file-g19cduw8.js.map +1 -0
- package/web-ui/build/static/soy-_Cs3psBg.js +2 -0
- package/web-ui/build/static/soy-_Cs3psBg.js.map +1 -0
- package/web-ui/build/static/sparql-9LIn88JO.js +2 -0
- package/web-ui/build/static/sparql-9LIn88JO.js.map +1 -0
- package/web-ui/build/static/splunk-spl-DxqEUZyC.js +2 -0
- package/web-ui/build/static/splunk-spl-DxqEUZyC.js.map +1 -0
- package/web-ui/build/static/sqf-BtpoGO2Z.js +2 -0
- package/web-ui/build/static/sqf-BtpoGO2Z.js.map +1 -0
- package/web-ui/build/static/sqf-D085K8Tg.js +2 -0
- package/web-ui/build/static/sqf-D085K8Tg.js.map +1 -0
- package/web-ui/build/static/sql-1s0SNG6w.js +2 -0
- package/web-ui/build/static/sql-1s0SNG6w.js.map +1 -0
- package/web-ui/build/static/sql-BI4-kN-2.js +2 -0
- package/web-ui/build/static/sql-BI4-kN-2.js.map +1 -0
- package/web-ui/build/static/sql_more-D5J4r8gb.js +2 -0
- package/web-ui/build/static/sql_more-D5J4r8gb.js.map +1 -0
- package/web-ui/build/static/squirrel-3h5imuMR.js +2 -0
- package/web-ui/build/static/squirrel-3h5imuMR.js.map +1 -0
- package/web-ui/build/static/stan-CEQLnqRD.js +2 -0
- package/web-ui/build/static/stan-CEQLnqRD.js.map +1 -0
- package/web-ui/build/static/stan-D0bEbTTz.js +2 -0
- package/web-ui/build/static/stan-D0bEbTTz.js.map +1 -0
- package/web-ui/build/static/stata-Dx_Kcib1.js +2 -0
- package/web-ui/build/static/stata-Dx_Kcib1.js.map +1 -0
- package/web-ui/build/static/step21-Nkgu91An.js +2 -0
- package/web-ui/build/static/step21-Nkgu91An.js.map +1 -0
- package/web-ui/build/static/stylus-8t2oO6n8.js +2 -0
- package/web-ui/build/static/stylus-8t2oO6n8.js.map +1 -0
- package/web-ui/build/static/stylus-Cg7VLHO-.js +2 -0
- package/web-ui/build/static/stylus-Cg7VLHO-.js.map +1 -0
- package/web-ui/build/static/subunit-DkYb3IUq.js +2 -0
- package/web-ui/build/static/subunit-DkYb3IUq.js.map +1 -0
- package/web-ui/build/static/swift-6FmWAmlf.js +2 -0
- package/web-ui/build/static/swift-6FmWAmlf.js.map +1 -0
- package/web-ui/build/static/swift-VBuNxUor.js +2 -0
- package/web-ui/build/static/swift-VBuNxUor.js.map +1 -0
- package/web-ui/build/static/systemd-DQHhfTLQ.js +2 -0
- package/web-ui/build/static/systemd-DQHhfTLQ.js.map +1 -0
- package/web-ui/build/static/t4-cs-Dxh-bkYi.js +2 -0
- package/web-ui/build/static/t4-cs-Dxh-bkYi.js.map +1 -0
- package/web-ui/build/static/t4-templating-n27asaAY.js +2 -0
- package/web-ui/build/static/t4-templating-n27asaAY.js.map +1 -0
- package/web-ui/build/static/t4-vb-CqhmZNfO.js +2 -0
- package/web-ui/build/static/t4-vb-CqhmZNfO.js.map +1 -0
- package/web-ui/build/static/taggerscript-EC2KHJ9j.js +2 -0
- package/web-ui/build/static/taggerscript-EC2KHJ9j.js.map +1 -0
- package/web-ui/build/static/tap-C2wu9oTu.js +2 -0
- package/web-ui/build/static/tap-C2wu9oTu.js.map +1 -0
- package/web-ui/build/static/tap-CcZFPTQF.js +2 -0
- package/web-ui/build/static/tap-CcZFPTQF.js.map +1 -0
- package/web-ui/build/static/tcl-7BG3WC98.js +2 -0
- package/web-ui/build/static/tcl-7BG3WC98.js.map +1 -0
- package/web-ui/build/static/tcl-TKRwJ5SH.js +2 -0
- package/web-ui/build/static/tcl-TKRwJ5SH.js.map +1 -0
- package/web-ui/build/static/textile-Cm1m6RvH.js +2 -0
- package/web-ui/build/static/textile-Cm1m6RvH.js.map +1 -0
- package/web-ui/build/static/thrift-B7lMTKse.js +2 -0
- package/web-ui/build/static/thrift-B7lMTKse.js.map +1 -0
- package/web-ui/build/static/toml-1GruOU_5.js +2 -0
- package/web-ui/build/static/toml-1GruOU_5.js.map +1 -0
- package/web-ui/build/static/tp-DlteH-g5.js +2 -0
- package/web-ui/build/static/tp-DlteH-g5.js.map +1 -0
- package/web-ui/build/static/tremor-CUIp-X9R.js +2 -0
- package/web-ui/build/static/tremor-CUIp-X9R.js.map +1 -0
- package/web-ui/build/static/tsx-D-F2iOR_.js +2 -0
- package/web-ui/build/static/tsx-D-F2iOR_.js.map +1 -0
- package/web-ui/build/static/tt2-DAZpNpB8.js +2 -0
- package/web-ui/build/static/tt2-DAZpNpB8.js.map +1 -0
- package/web-ui/build/static/turtle-BeZ6Z7O0.js +2 -0
- package/web-ui/build/static/turtle-BeZ6Z7O0.js.map +1 -0
- package/web-ui/build/static/twig-BuGd-xIP.js +2 -0
- package/web-ui/build/static/twig-BuGd-xIP.js.map +1 -0
- package/web-ui/build/static/twig-DCsh3Q98.js +2 -0
- package/web-ui/build/static/twig-DCsh3Q98.js.map +1 -0
- package/web-ui/build/static/typescript-ChHDq9oA.js +2 -0
- package/web-ui/build/static/typescript-ChHDq9oA.js.map +1 -0
- package/web-ui/build/static/typescript-D2dgarn7.js +2 -0
- package/web-ui/build/static/typescript-D2dgarn7.js.map +1 -0
- package/web-ui/build/static/typoscript-DCg7bjmJ.js +2 -0
- package/web-ui/build/static/typoscript-DCg7bjmJ.js.map +1 -0
- package/web-ui/build/static/unrealscript-Cuh9dt3o.js +2 -0
- package/web-ui/build/static/unrealscript-Cuh9dt3o.js.map +1 -0
- package/web-ui/build/static/uorazor-Cn5No7eY.js +2 -0
- package/web-ui/build/static/uorazor-Cn5No7eY.js.map +1 -0
- package/web-ui/build/static/uri-BTPo55nj.js +2 -0
- package/web-ui/build/static/uri-BTPo55nj.js.map +1 -0
- package/web-ui/build/static/v-Cges3NoP.js +2 -0
- package/web-ui/build/static/v-Cges3NoP.js.map +1 -0
- package/web-ui/build/static/vala-BWUZhSWM.js +2 -0
- package/web-ui/build/static/vala-BWUZhSWM.js.map +1 -0
- package/web-ui/build/static/vala-Df09KIHt.js +2 -0
- package/web-ui/build/static/vala-Df09KIHt.js.map +1 -0
- package/web-ui/build/static/vbnet-DHIPf9Pp.js +2 -0
- package/web-ui/build/static/vbnet-DHIPf9Pp.js.map +1 -0
- package/web-ui/build/static/vbnet-Dqv3C75f.js +2 -0
- package/web-ui/build/static/vbnet-Dqv3C75f.js.map +1 -0
- package/web-ui/build/static/vbscript-DD0J3LKb.js +2 -0
- package/web-ui/build/static/vbscript-DD0J3LKb.js.map +1 -0
- package/web-ui/build/static/vbscript-html-BlDWohsy.js +2 -0
- package/web-ui/build/static/vbscript-html-BlDWohsy.js.map +1 -0
- package/web-ui/build/static/velocity-DWpCEaFh.js +2 -0
- package/web-ui/build/static/velocity-DWpCEaFh.js.map +1 -0
- package/web-ui/build/static/verilog-1bpiSgtb.js +2 -0
- package/web-ui/build/static/verilog-1bpiSgtb.js.map +1 -0
- package/web-ui/build/static/verilog-B6OykTPP.js +2 -0
- package/web-ui/build/static/verilog-B6OykTPP.js.map +1 -0
- package/web-ui/build/static/vhdl-CcQETFha.js +2 -0
- package/web-ui/build/static/vhdl-CcQETFha.js.map +1 -0
- package/web-ui/build/static/vhdl-QBH9YLhl.js +2 -0
- package/web-ui/build/static/vhdl-QBH9YLhl.js.map +1 -0
- package/web-ui/build/static/vim-BLLhZRB6.js +2 -0
- package/web-ui/build/static/vim-BLLhZRB6.js.map +1 -0
- package/web-ui/build/static/vim-DE3ZHfWz.js +2 -0
- package/web-ui/build/static/vim-DE3ZHfWz.js.map +1 -0
- package/web-ui/build/static/visual-basic-D8LH0qGh.js +2 -0
- package/web-ui/build/static/visual-basic-D8LH0qGh.js.map +1 -0
- package/web-ui/build/static/warpscript-DtDs9hba.js +2 -0
- package/web-ui/build/static/warpscript-DtDs9hba.js.map +1 -0
- package/web-ui/build/static/wasm-DqmNochN.js +2 -0
- package/web-ui/build/static/wasm-DqmNochN.js.map +1 -0
- package/web-ui/build/static/web-idl-9SbEueuT.js +2 -0
- package/web-ui/build/static/web-idl-9SbEueuT.js.map +1 -0
- package/web-ui/build/static/wiki-4euoUpK0.js +2 -0
- package/web-ui/build/static/wiki-4euoUpK0.js.map +1 -0
- package/web-ui/build/static/wolfram-BjXIRgaM.js +2 -0
- package/web-ui/build/static/wolfram-BjXIRgaM.js.map +1 -0
- package/web-ui/build/static/wren-8kP0Rt9M.js +2 -0
- package/web-ui/build/static/wren-8kP0Rt9M.js.map +1 -0
- package/web-ui/build/static/x86asm-CK7XnCQK.js +2 -0
- package/web-ui/build/static/x86asm-CK7XnCQK.js.map +1 -0
- package/web-ui/build/static/xeora-BfEJLiJW.js +2 -0
- package/web-ui/build/static/xeora-BfEJLiJW.js.map +1 -0
- package/web-ui/build/static/xl-zRRwP26N.js +2 -0
- package/web-ui/build/static/xl-zRRwP26N.js.map +1 -0
- package/web-ui/build/static/xml-CMsYjbuQ.js +2 -0
- package/web-ui/build/static/xml-CMsYjbuQ.js.map +1 -0
- package/web-ui/build/static/xml-doc-DA6AZKgH.js +2 -0
- package/web-ui/build/static/xml-doc-DA6AZKgH.js.map +1 -0
- package/web-ui/build/static/xojo-CX7sQLtw.js +2 -0
- package/web-ui/build/static/xojo-CX7sQLtw.js.map +1 -0
- package/web-ui/build/static/xquery-CV6lbeNb.js +2 -0
- package/web-ui/build/static/xquery-CV6lbeNb.js.map +1 -0
- package/web-ui/build/static/xquery-D7MdKvtL.js +2 -0
- package/web-ui/build/static/xquery-D7MdKvtL.js.map +1 -0
- package/web-ui/build/static/yaml-DIeLTN2a.js +2 -0
- package/web-ui/build/static/yaml-DIeLTN2a.js.map +1 -0
- package/web-ui/build/static/yaml-SaN2fvzH.js +2 -0
- package/web-ui/build/static/yaml-SaN2fvzH.js.map +1 -0
- package/web-ui/build/static/yang-Bof6bWVy.js +2 -0
- package/web-ui/build/static/yang-Bof6bWVy.js.map +1 -0
- package/web-ui/build/static/zephir-BzB-8snk.js +2 -0
- package/web-ui/build/static/zephir-BzB-8snk.js.map +1 -0
- package/web-ui/build/static/zig-CVW20ae1.js +2 -0
- package/web-ui/build/static/zig-CVW20ae1.js.map +1 -0
- package/src/tools/__tests__/docxTool.test.js +0 -449
- package/src/tools/__tests__/excelTool.test.js +0 -486
- package/src/tools/docxTool.js +0 -623
- package/src/tools/excelTool.js +0 -636
- package/web-ui/build/static/1c-sgd6XOMh.js +0 -2
- package/web-ui/build/static/1c-sgd6XOMh.js.map +0 -1
- package/web-ui/build/static/abap-9Z7coMu4.js +0 -2
- package/web-ui/build/static/abap-9Z7coMu4.js.map +0 -1
- package/web-ui/build/static/abnf-DVIjmao7.js +0 -2
- package/web-ui/build/static/abnf-DVIjmao7.js.map +0 -1
- package/web-ui/build/static/abnf-DzYNS64y.js +0 -2
- package/web-ui/build/static/abnf-DzYNS64y.js.map +0 -1
- package/web-ui/build/static/accesslog-1FR0TGhT.js +0 -2
- package/web-ui/build/static/accesslog-1FR0TGhT.js.map +0 -1
- package/web-ui/build/static/actionscript-BoUPggbJ.js +0 -2
- package/web-ui/build/static/actionscript-BoUPggbJ.js.map +0 -1
- package/web-ui/build/static/actionscript-D-rNGIAg.js +0 -2
- package/web-ui/build/static/actionscript-D-rNGIAg.js.map +0 -1
- package/web-ui/build/static/ada-CmZtJGXV.js +0 -2
- package/web-ui/build/static/ada-CmZtJGXV.js.map +0 -1
- package/web-ui/build/static/ada-DCCye3Vh.js +0 -2
- package/web-ui/build/static/ada-DCCye3Vh.js.map +0 -1
- package/web-ui/build/static/agda-Wip9VH0a.js +0 -2
- package/web-ui/build/static/agda-Wip9VH0a.js.map +0 -1
- package/web-ui/build/static/al-1UNAGbtu.js +0 -2
- package/web-ui/build/static/al-1UNAGbtu.js.map +0 -1
- package/web-ui/build/static/angelscript-COVHqwAg.js +0 -2
- package/web-ui/build/static/angelscript-COVHqwAg.js.map +0 -1
- package/web-ui/build/static/antlr4-LDPj0qg6.js +0 -2
- package/web-ui/build/static/antlr4-LDPj0qg6.js.map +0 -1
- package/web-ui/build/static/apache-QR7cZivT.js +0 -2
- package/web-ui/build/static/apache-QR7cZivT.js.map +0 -1
- package/web-ui/build/static/apacheconf-DAxke2Px.js +0 -2
- package/web-ui/build/static/apacheconf-DAxke2Px.js.map +0 -1
- package/web-ui/build/static/apex-Bmj-xU5a.js +0 -2
- package/web-ui/build/static/apex-Bmj-xU5a.js.map +0 -1
- package/web-ui/build/static/apl-CS51YA48.js +0 -2
- package/web-ui/build/static/apl-CS51YA48.js.map +0 -1
- package/web-ui/build/static/applescript-BKZVsyVO.js +0 -2
- package/web-ui/build/static/applescript-BKZVsyVO.js.map +0 -1
- package/web-ui/build/static/applescript-CmqMovVQ.js +0 -2
- package/web-ui/build/static/applescript-CmqMovVQ.js.map +0 -1
- package/web-ui/build/static/aql-B1irht8n.js +0 -2
- package/web-ui/build/static/aql-B1irht8n.js.map +0 -1
- package/web-ui/build/static/arcade-DS5_Frh7.js +0 -2
- package/web-ui/build/static/arcade-DS5_Frh7.js.map +0 -1
- package/web-ui/build/static/arduino-B3HidO-K.js +0 -2
- package/web-ui/build/static/arduino-B3HidO-K.js.map +0 -1
- package/web-ui/build/static/arduino-DK3uUC-P.js +0 -2
- package/web-ui/build/static/arduino-DK3uUC-P.js.map +0 -1
- package/web-ui/build/static/arff-CZdb8xAz.js +0 -2
- package/web-ui/build/static/arff-CZdb8xAz.js.map +0 -1
- package/web-ui/build/static/armasm-Ck-TIZe8.js +0 -2
- package/web-ui/build/static/armasm-Ck-TIZe8.js.map +0 -1
- package/web-ui/build/static/asciidoc-DZmHlWDS.js +0 -2
- package/web-ui/build/static/asciidoc-DZmHlWDS.js.map +0 -1
- package/web-ui/build/static/asciidoc-VNJDdKPJ.js +0 -2
- package/web-ui/build/static/asciidoc-VNJDdKPJ.js.map +0 -1
- package/web-ui/build/static/asm6502-ChATpPX0.js +0 -2
- package/web-ui/build/static/asm6502-ChATpPX0.js.map +0 -1
- package/web-ui/build/static/asmatmel-BqXvVRBg.js +0 -2
- package/web-ui/build/static/asmatmel-BqXvVRBg.js.map +0 -1
- package/web-ui/build/static/aspectj-C35IW-28.js +0 -2
- package/web-ui/build/static/aspectj-C35IW-28.js.map +0 -1
- package/web-ui/build/static/aspnet-C9FIwZ0V.js +0 -2
- package/web-ui/build/static/aspnet-C9FIwZ0V.js.map +0 -1
- package/web-ui/build/static/autohotkey-BP5MK31C.js +0 -2
- package/web-ui/build/static/autohotkey-BP5MK31C.js.map +0 -1
- package/web-ui/build/static/autohotkey-CK8vf7ct.js +0 -2
- package/web-ui/build/static/autohotkey-CK8vf7ct.js.map +0 -1
- package/web-ui/build/static/autoit-B9_ujb0y.js +0 -2
- package/web-ui/build/static/autoit-B9_ujb0y.js.map +0 -1
- package/web-ui/build/static/autoit-wVzlUg_U.js +0 -2
- package/web-ui/build/static/autoit-wVzlUg_U.js.map +0 -1
- package/web-ui/build/static/avisynth-Bv8QU7rR.js +0 -2
- package/web-ui/build/static/avisynth-Bv8QU7rR.js.map +0 -1
- package/web-ui/build/static/avrasm-BxhSeDEE.js +0 -2
- package/web-ui/build/static/avrasm-BxhSeDEE.js.map +0 -1
- package/web-ui/build/static/avro-idl-Cv2Uy_DG.js +0 -2
- package/web-ui/build/static/avro-idl-Cv2Uy_DG.js.map +0 -1
- package/web-ui/build/static/awk-CGmu6-pb.js +0 -2
- package/web-ui/build/static/awk-CGmu6-pb.js.map +0 -1
- package/web-ui/build/static/axapta-B0mwj-xx.js +0 -2
- package/web-ui/build/static/axapta-B0mwj-xx.js.map +0 -1
- package/web-ui/build/static/bash-BMgYXRMt.js +0 -2
- package/web-ui/build/static/bash-BMgYXRMt.js.map +0 -1
- package/web-ui/build/static/bash-TyjG7yXe.js +0 -2
- package/web-ui/build/static/bash-TyjG7yXe.js.map +0 -1
- package/web-ui/build/static/basic-D74t_tpi.js +0 -2
- package/web-ui/build/static/basic-D74t_tpi.js.map +0 -1
- package/web-ui/build/static/basic-Db35QwlI.js +0 -2
- package/web-ui/build/static/basic-Db35QwlI.js.map +0 -1
- package/web-ui/build/static/batch-BlD49Azt.js +0 -2
- package/web-ui/build/static/batch-BlD49Azt.js.map +0 -1
- package/web-ui/build/static/bbcode-BSBticuk.js +0 -2
- package/web-ui/build/static/bbcode-BSBticuk.js.map +0 -1
- package/web-ui/build/static/bicep-BgnydEtF.js +0 -2
- package/web-ui/build/static/bicep-BgnydEtF.js.map +0 -1
- package/web-ui/build/static/birb-B-IYr3fx.js +0 -2
- package/web-ui/build/static/birb-B-IYr3fx.js.map +0 -1
- package/web-ui/build/static/bison-BSvmlGCE.js +0 -2
- package/web-ui/build/static/bison-BSvmlGCE.js.map +0 -1
- package/web-ui/build/static/bnf-Ci7ILIGJ.js +0 -2
- package/web-ui/build/static/bnf-Ci7ILIGJ.js.map +0 -1
- package/web-ui/build/static/bnf-xfhlWqWW.js +0 -2
- package/web-ui/build/static/bnf-xfhlWqWW.js.map +0 -1
- package/web-ui/build/static/brainfuck-CEbdhEXJ.js +0 -2
- package/web-ui/build/static/brainfuck-CEbdhEXJ.js.map +0 -1
- package/web-ui/build/static/brainfuck-DX_F0bB1.js +0 -2
- package/web-ui/build/static/brainfuck-DX_F0bB1.js.map +0 -1
- package/web-ui/build/static/brightscript-C7C9GXz7.js +0 -2
- package/web-ui/build/static/brightscript-C7C9GXz7.js.map +0 -1
- package/web-ui/build/static/bro-8vGfjIMT.js +0 -2
- package/web-ui/build/static/bro-8vGfjIMT.js.map +0 -1
- package/web-ui/build/static/bsl-D3kEcNqD.js +0 -2
- package/web-ui/build/static/bsl-D3kEcNqD.js.map +0 -1
- package/web-ui/build/static/c-B7xrRJnk.js +0 -2
- package/web-ui/build/static/c-B7xrRJnk.js.map +0 -1
- package/web-ui/build/static/c-hIIsxoX7.js +0 -2
- package/web-ui/build/static/c-hIIsxoX7.js.map +0 -1
- package/web-ui/build/static/c-like-DvRf25Ez.js +0 -2
- package/web-ui/build/static/c-like-DvRf25Ez.js.map +0 -1
- package/web-ui/build/static/cal-D2SPTth2.js +0 -2
- package/web-ui/build/static/cal-D2SPTth2.js.map +0 -1
- package/web-ui/build/static/capnproto-Bllu_47E.js +0 -2
- package/web-ui/build/static/capnproto-Bllu_47E.js.map +0 -1
- package/web-ui/build/static/ceylon-CVnQxPW_.js +0 -2
- package/web-ui/build/static/ceylon-CVnQxPW_.js.map +0 -1
- package/web-ui/build/static/cfscript-136BAkiA.js +0 -2
- package/web-ui/build/static/cfscript-136BAkiA.js.map +0 -1
- package/web-ui/build/static/chaiscript-Deb0uV6e.js +0 -2
- package/web-ui/build/static/chaiscript-Deb0uV6e.js.map +0 -1
- package/web-ui/build/static/cil-CGWxtaTa.js +0 -2
- package/web-ui/build/static/cil-CGWxtaTa.js.map +0 -1
- package/web-ui/build/static/clean-DPG2hRnY.js +0 -2
- package/web-ui/build/static/clean-DPG2hRnY.js.map +0 -1
- package/web-ui/build/static/clike-Db_GKbAn.js +0 -2
- package/web-ui/build/static/clike-Db_GKbAn.js.map +0 -1
- package/web-ui/build/static/clojure-CMGDq0u_.js +0 -2
- package/web-ui/build/static/clojure-CMGDq0u_.js.map +0 -1
- package/web-ui/build/static/clojure-fNJswsQZ.js +0 -2
- package/web-ui/build/static/clojure-fNJswsQZ.js.map +0 -1
- package/web-ui/build/static/clojure-repl-BK99VqBa.js +0 -2
- package/web-ui/build/static/clojure-repl-BK99VqBa.js.map +0 -1
- package/web-ui/build/static/cmake-CqGVUSx1.js +0 -2
- package/web-ui/build/static/cmake-CqGVUSx1.js.map +0 -1
- package/web-ui/build/static/cmake-w7-vuXq4.js +0 -2
- package/web-ui/build/static/cmake-w7-vuXq4.js.map +0 -1
- package/web-ui/build/static/cobol-Dw4CJrpP.js +0 -2
- package/web-ui/build/static/cobol-Dw4CJrpP.js.map +0 -1
- package/web-ui/build/static/coffeescript-B547a6Tt.js +0 -2
- package/web-ui/build/static/coffeescript-B547a6Tt.js.map +0 -1
- package/web-ui/build/static/coffeescript-CcGnr2Oc.js +0 -2
- package/web-ui/build/static/coffeescript-CcGnr2Oc.js.map +0 -1
- package/web-ui/build/static/concurnas-BguMX0TC.js +0 -2
- package/web-ui/build/static/concurnas-BguMX0TC.js.map +0 -1
- package/web-ui/build/static/coq-BetG3O0n.js +0 -2
- package/web-ui/build/static/coq-BetG3O0n.js.map +0 -1
- package/web-ui/build/static/coq-xYMsLxhd.js +0 -2
- package/web-ui/build/static/coq-xYMsLxhd.js.map +0 -1
- package/web-ui/build/static/cos-9pVoxybu.js +0 -2
- package/web-ui/build/static/cos-9pVoxybu.js.map +0 -1
- package/web-ui/build/static/cpp-Cmep8tlg.js +0 -2
- package/web-ui/build/static/cpp-Cmep8tlg.js.map +0 -1
- package/web-ui/build/static/cpp-WFS8ACjS.js +0 -2
- package/web-ui/build/static/cpp-WFS8ACjS.js.map +0 -1
- package/web-ui/build/static/crmsh-DnttSmzd.js +0 -2
- package/web-ui/build/static/crmsh-DnttSmzd.js.map +0 -1
- package/web-ui/build/static/crystal-CHoPii2P.js +0 -2
- package/web-ui/build/static/crystal-CHoPii2P.js.map +0 -1
- package/web-ui/build/static/crystal-DArZuwHK.js +0 -2
- package/web-ui/build/static/crystal-DArZuwHK.js.map +0 -1
- package/web-ui/build/static/csharp-CV3UCG6Z.js +0 -2
- package/web-ui/build/static/csharp-CV3UCG6Z.js.map +0 -1
- package/web-ui/build/static/csharp-DWaRlXQd.js +0 -2
- package/web-ui/build/static/csharp-DWaRlXQd.js.map +0 -1
- package/web-ui/build/static/cshtml-DRumO116.js +0 -2
- package/web-ui/build/static/cshtml-DRumO116.js.map +0 -1
- package/web-ui/build/static/csp-C1l8Zrl7.js +0 -2
- package/web-ui/build/static/csp-C1l8Zrl7.js.map +0 -1
- package/web-ui/build/static/csp-DpRjc_Q2.js +0 -2
- package/web-ui/build/static/csp-DpRjc_Q2.js.map +0 -1
- package/web-ui/build/static/css-BDkPSGsh.js +0 -2
- package/web-ui/build/static/css-BDkPSGsh.js.map +0 -1
- package/web-ui/build/static/css-D9CS02yW.js +0 -2
- package/web-ui/build/static/css-D9CS02yW.js.map +0 -1
- package/web-ui/build/static/css-extras-CElRePvX.js +0 -2
- package/web-ui/build/static/css-extras-CElRePvX.js.map +0 -1
- package/web-ui/build/static/csv-D15ikSEX.js +0 -2
- package/web-ui/build/static/csv-D15ikSEX.js.map +0 -1
- package/web-ui/build/static/cypher-GXqM1vQr.js +0 -2
- package/web-ui/build/static/cypher-GXqM1vQr.js.map +0 -1
- package/web-ui/build/static/d-By9Cm8NV.js +0 -2
- package/web-ui/build/static/d-By9Cm8NV.js.map +0 -1
- package/web-ui/build/static/d-D0ftVTgm.js +0 -2
- package/web-ui/build/static/d-D0ftVTgm.js.map +0 -1
- package/web-ui/build/static/dart-BarNifkO.js +0 -2
- package/web-ui/build/static/dart-BarNifkO.js.map +0 -1
- package/web-ui/build/static/dart-EzZy7uuT.js +0 -2
- package/web-ui/build/static/dart-EzZy7uuT.js.map +0 -1
- package/web-ui/build/static/dataweave-qYUjXb_M.js +0 -2
- package/web-ui/build/static/dataweave-qYUjXb_M.js.map +0 -1
- package/web-ui/build/static/dax-CWDjQA66.js +0 -2
- package/web-ui/build/static/dax-CWDjQA66.js.map +0 -1
- package/web-ui/build/static/delphi-ri1z5xXG.js +0 -2
- package/web-ui/build/static/delphi-ri1z5xXG.js.map +0 -1
- package/web-ui/build/static/dhall-BUy9f6HV.js +0 -2
- package/web-ui/build/static/dhall-BUy9f6HV.js.map +0 -1
- package/web-ui/build/static/diff-Cdcm47-D.js +0 -2
- package/web-ui/build/static/diff-Cdcm47-D.js.map +0 -1
- package/web-ui/build/static/diff-f_hRKxPF.js +0 -2
- package/web-ui/build/static/diff-f_hRKxPF.js.map +0 -1
- package/web-ui/build/static/django-Kv4Kw20M.js +0 -2
- package/web-ui/build/static/django-Kv4Kw20M.js.map +0 -1
- package/web-ui/build/static/django-qWPS9lui.js +0 -2
- package/web-ui/build/static/django-qWPS9lui.js.map +0 -1
- package/web-ui/build/static/dns-D2SihnoL.js +0 -2
- package/web-ui/build/static/dns-D2SihnoL.js.map +0 -1
- package/web-ui/build/static/dns-zone-file-BseHYSvg.js +0 -2
- package/web-ui/build/static/dns-zone-file-BseHYSvg.js.map +0 -1
- package/web-ui/build/static/docker-RdGk7gL-.js +0 -2
- package/web-ui/build/static/docker-RdGk7gL-.js.map +0 -1
- package/web-ui/build/static/dockerfile-BNin6O03.js +0 -2
- package/web-ui/build/static/dockerfile-BNin6O03.js.map +0 -1
- package/web-ui/build/static/dos-BQOZVc39.js +0 -2
- package/web-ui/build/static/dos-BQOZVc39.js.map +0 -1
- package/web-ui/build/static/dot-4iQEKkwe.js +0 -2
- package/web-ui/build/static/dot-4iQEKkwe.js.map +0 -1
- package/web-ui/build/static/dsconfig-BdhxHeNz.js +0 -2
- package/web-ui/build/static/dsconfig-BdhxHeNz.js.map +0 -1
- package/web-ui/build/static/dts-DbjkA3J7.js +0 -2
- package/web-ui/build/static/dts-DbjkA3J7.js.map +0 -1
- package/web-ui/build/static/dust-DXZ_6e-T.js +0 -2
- package/web-ui/build/static/dust-DXZ_6e-T.js.map +0 -1
- package/web-ui/build/static/ebnf-DnRIpsya.js +0 -2
- package/web-ui/build/static/ebnf-DnRIpsya.js.map +0 -1
- package/web-ui/build/static/ebnf-brEG4VE6.js +0 -2
- package/web-ui/build/static/ebnf-brEG4VE6.js.map +0 -1
- package/web-ui/build/static/editorconfig-DLfT7H2M.js +0 -2
- package/web-ui/build/static/editorconfig-DLfT7H2M.js.map +0 -1
- package/web-ui/build/static/eiffel-jBdSs5kq.js +0 -2
- package/web-ui/build/static/eiffel-jBdSs5kq.js.map +0 -1
- package/web-ui/build/static/ejs-BAkcnkmB.js +0 -2
- package/web-ui/build/static/ejs-BAkcnkmB.js.map +0 -1
- package/web-ui/build/static/elixir-DwYW-rcK.js +0 -2
- package/web-ui/build/static/elixir-DwYW-rcK.js.map +0 -1
- package/web-ui/build/static/elixir-bPaZl8oG.js +0 -2
- package/web-ui/build/static/elixir-bPaZl8oG.js.map +0 -1
- package/web-ui/build/static/elm-2rYpaTXb.js +0 -2
- package/web-ui/build/static/elm-2rYpaTXb.js.map +0 -1
- package/web-ui/build/static/elm-BWxYvhSw.js +0 -2
- package/web-ui/build/static/elm-BWxYvhSw.js.map +0 -1
- package/web-ui/build/static/erb-CjY75JdH.js +0 -2
- package/web-ui/build/static/erb-CjY75JdH.js.map +0 -1
- package/web-ui/build/static/erb-N8TsiJ8E.js +0 -2
- package/web-ui/build/static/erb-N8TsiJ8E.js.map +0 -1
- package/web-ui/build/static/erlang-DDnqvfl6.js +0 -2
- package/web-ui/build/static/erlang-DDnqvfl6.js.map +0 -1
- package/web-ui/build/static/erlang-DXKDoUD9.js +0 -2
- package/web-ui/build/static/erlang-DXKDoUD9.js.map +0 -1
- package/web-ui/build/static/erlang-repl-BaErBknt.js +0 -2
- package/web-ui/build/static/erlang-repl-BaErBknt.js.map +0 -1
- package/web-ui/build/static/etlua-Bezoxjkq.js +0 -2
- package/web-ui/build/static/etlua-Bezoxjkq.js.map +0 -1
- package/web-ui/build/static/excel-BIFN2KdQ.js +0 -2
- package/web-ui/build/static/excel-BIFN2KdQ.js.map +0 -1
- package/web-ui/build/static/excel-formula-CREKIpGw.js +0 -2
- package/web-ui/build/static/excel-formula-CREKIpGw.js.map +0 -1
- package/web-ui/build/static/factor-DT1TvHjB.js +0 -2
- package/web-ui/build/static/factor-DT1TvHjB.js.map +0 -1
- package/web-ui/build/static/false-Bs5FRzuv.js +0 -2
- package/web-ui/build/static/false-Bs5FRzuv.js.map +0 -1
- package/web-ui/build/static/firestore-security-rules-CiFnlrS_.js +0 -2
- package/web-ui/build/static/firestore-security-rules-CiFnlrS_.js.map +0 -1
- package/web-ui/build/static/fix-COI4p2al.js +0 -2
- package/web-ui/build/static/fix-COI4p2al.js.map +0 -1
- package/web-ui/build/static/flix-CiPXME8h.js +0 -2
- package/web-ui/build/static/flix-CiPXME8h.js.map +0 -1
- package/web-ui/build/static/flow-BAus9QSD.js +0 -2
- package/web-ui/build/static/flow-BAus9QSD.js.map +0 -1
- package/web-ui/build/static/fortran-D6LxPxlC.js +0 -2
- package/web-ui/build/static/fortran-D6LxPxlC.js.map +0 -1
- package/web-ui/build/static/fortran-ZmUw6lD7.js +0 -2
- package/web-ui/build/static/fortran-ZmUw6lD7.js.map +0 -1
- package/web-ui/build/static/fsharp-BDuBrEYT.js +0 -2
- package/web-ui/build/static/fsharp-BDuBrEYT.js.map +0 -1
- package/web-ui/build/static/fsharp-CfIRmhvx.js +0 -2
- package/web-ui/build/static/fsharp-CfIRmhvx.js.map +0 -1
- package/web-ui/build/static/ftl-BUd_V7Zz.js +0 -2
- package/web-ui/build/static/ftl-BUd_V7Zz.js.map +0 -1
- package/web-ui/build/static/gams-DpdfQMVN.js +0 -2
- package/web-ui/build/static/gams-DpdfQMVN.js.map +0 -1
- package/web-ui/build/static/gap-BEGTrEDy.js +0 -2
- package/web-ui/build/static/gap-BEGTrEDy.js.map +0 -1
- package/web-ui/build/static/gauss-BDQKj-lX.js +0 -2
- package/web-ui/build/static/gauss-BDQKj-lX.js.map +0 -1
- package/web-ui/build/static/gcode-FpJ1uAne.js +0 -2
- package/web-ui/build/static/gcode-FpJ1uAne.js.map +0 -1
- package/web-ui/build/static/gcode-Y9NiVA1t.js +0 -2
- package/web-ui/build/static/gcode-Y9NiVA1t.js.map +0 -1
- package/web-ui/build/static/gdscript-Bxc9v-NB.js +0 -2
- package/web-ui/build/static/gdscript-Bxc9v-NB.js.map +0 -1
- package/web-ui/build/static/gedcom-Bb37b68j.js +0 -2
- package/web-ui/build/static/gedcom-Bb37b68j.js.map +0 -1
- package/web-ui/build/static/gherkin-BZNINNzn.js +0 -2
- package/web-ui/build/static/gherkin-BZNINNzn.js.map +0 -1
- package/web-ui/build/static/gherkin-aBLlRH51.js +0 -2
- package/web-ui/build/static/gherkin-aBLlRH51.js.map +0 -1
- package/web-ui/build/static/git-COFqSrqr.js +0 -2
- package/web-ui/build/static/git-COFqSrqr.js.map +0 -1
- package/web-ui/build/static/glsl-C_ZGeZp8.js +0 -2
- package/web-ui/build/static/glsl-C_ZGeZp8.js.map +0 -1
- package/web-ui/build/static/glsl-tyKdLeU8.js +0 -2
- package/web-ui/build/static/glsl-tyKdLeU8.js.map +0 -1
- package/web-ui/build/static/gml-DWWe7A2T.js +0 -2
- package/web-ui/build/static/gml-DWWe7A2T.js.map +0 -1
- package/web-ui/build/static/gml-Dk0Uzn5j.js +0 -2
- package/web-ui/build/static/gml-Dk0Uzn5j.js.map +0 -1
- package/web-ui/build/static/gn-DU-VqIk_.js +0 -2
- package/web-ui/build/static/gn-DU-VqIk_.js.map +0 -1
- package/web-ui/build/static/go-RoyxM5AP.js +0 -2
- package/web-ui/build/static/go-RoyxM5AP.js.map +0 -1
- package/web-ui/build/static/go-module-_RlR0aCg.js +0 -2
- package/web-ui/build/static/go-module-_RlR0aCg.js.map +0 -1
- package/web-ui/build/static/go-pbWP5znD.js +0 -2
- package/web-ui/build/static/go-pbWP5znD.js.map +0 -1
- package/web-ui/build/static/golo-Ddi0vJaV.js +0 -2
- package/web-ui/build/static/golo-Ddi0vJaV.js.map +0 -1
- package/web-ui/build/static/gradle-BZ3N7qyp.js +0 -2
- package/web-ui/build/static/gradle-BZ3N7qyp.js.map +0 -1
- package/web-ui/build/static/graphql-BGAoJarF.js +0 -2
- package/web-ui/build/static/graphql-BGAoJarF.js.map +0 -1
- package/web-ui/build/static/groovy-DOEwlFU8.js +0 -2
- package/web-ui/build/static/groovy-DOEwlFU8.js.map +0 -1
- package/web-ui/build/static/groovy-eYvfymBv.js +0 -2
- package/web-ui/build/static/groovy-eYvfymBv.js.map +0 -1
- package/web-ui/build/static/haml-B9m6LA6_.js +0 -2
- package/web-ui/build/static/haml-B9m6LA6_.js.map +0 -1
- package/web-ui/build/static/haml-Ct_eNn0Z.js +0 -2
- package/web-ui/build/static/haml-Ct_eNn0Z.js.map +0 -1
- package/web-ui/build/static/handlebars-DYUlgG-y.js +0 -2
- package/web-ui/build/static/handlebars-DYUlgG-y.js.map +0 -1
- package/web-ui/build/static/handlebars-DYZ2Ne9G.js +0 -2
- package/web-ui/build/static/handlebars-DYZ2Ne9G.js.map +0 -1
- package/web-ui/build/static/haskell--1QjVwRO.js +0 -2
- package/web-ui/build/static/haskell--1QjVwRO.js.map +0 -1
- package/web-ui/build/static/haskell-6ieNCwME.js +0 -2
- package/web-ui/build/static/haskell-6ieNCwME.js.map +0 -1
- package/web-ui/build/static/haxe-9vYVDa9r.js +0 -2
- package/web-ui/build/static/haxe-9vYVDa9r.js.map +0 -1
- package/web-ui/build/static/haxe-EB2cUVVa.js +0 -2
- package/web-ui/build/static/haxe-EB2cUVVa.js.map +0 -1
- package/web-ui/build/static/hcl-Bwnml4Pn.js +0 -2
- package/web-ui/build/static/hcl-Bwnml4Pn.js.map +0 -1
- package/web-ui/build/static/hlsl-BucQfrPP.js +0 -2
- package/web-ui/build/static/hlsl-BucQfrPP.js.map +0 -1
- package/web-ui/build/static/hoon-CrdqfnCr.js +0 -2
- package/web-ui/build/static/hoon-CrdqfnCr.js.map +0 -1
- package/web-ui/build/static/hpkp-BfAlsA7T.js +0 -2
- package/web-ui/build/static/hpkp-BfAlsA7T.js.map +0 -1
- package/web-ui/build/static/hsp-BELl1Y1h.js +0 -2
- package/web-ui/build/static/hsp-BELl1Y1h.js.map +0 -1
- package/web-ui/build/static/hsts-aIjBNAvG.js +0 -2
- package/web-ui/build/static/hsts-aIjBNAvG.js.map +0 -1
- package/web-ui/build/static/htmlbars-CF7viC7q.js +0 -2
- package/web-ui/build/static/htmlbars-CF7viC7q.js.map +0 -1
- package/web-ui/build/static/http-C1ssx1jb.js +0 -2
- package/web-ui/build/static/http-C1ssx1jb.js.map +0 -1
- package/web-ui/build/static/http-D2_hcEoP.js +0 -2
- package/web-ui/build/static/http-D2_hcEoP.js.map +0 -1
- package/web-ui/build/static/hy-D7cA2Uvw.js +0 -2
- package/web-ui/build/static/hy-D7cA2Uvw.js.map +0 -1
- package/web-ui/build/static/ichigojam-D13pIunc.js +0 -2
- package/web-ui/build/static/ichigojam-D13pIunc.js.map +0 -1
- package/web-ui/build/static/icon-CtZAWvsu.js +0 -2
- package/web-ui/build/static/icon-CtZAWvsu.js.map +0 -1
- package/web-ui/build/static/icu-message-format-BWUiadk1.js +0 -2
- package/web-ui/build/static/icu-message-format-BWUiadk1.js.map +0 -1
- package/web-ui/build/static/idris-DFKhmzv-.js +0 -2
- package/web-ui/build/static/idris-DFKhmzv-.js.map +0 -1
- package/web-ui/build/static/iecst-1kR-l8Sc.js +0 -2
- package/web-ui/build/static/iecst-1kR-l8Sc.js.map +0 -1
- package/web-ui/build/static/ignore-BvXt1lN_.js +0 -2
- package/web-ui/build/static/ignore-BvXt1lN_.js.map +0 -1
- package/web-ui/build/static/index-5P5KjiaQ.js +0 -1237
- package/web-ui/build/static/index-5P5KjiaQ.js.map +0 -1
- package/web-ui/build/static/index-MTB4_11l.js +0 -14
- package/web-ui/build/static/index-MTB4_11l.js.map +0 -1
- package/web-ui/build/static/index-P4J_K3fF.js +0 -2
- package/web-ui/build/static/index-P4J_K3fF.js.map +0 -1
- package/web-ui/build/static/index-YFpNG9Ek.css +0 -1
- package/web-ui/build/static/inform7-BTpfTDz1.js +0 -2
- package/web-ui/build/static/inform7-BTpfTDz1.js.map +0 -1
- package/web-ui/build/static/inform7-CJIjMv2r.js +0 -2
- package/web-ui/build/static/inform7-CJIjMv2r.js.map +0 -1
- package/web-ui/build/static/ini-CaYSVtHR.js +0 -2
- package/web-ui/build/static/ini-CaYSVtHR.js.map +0 -1
- package/web-ui/build/static/ini-Coi7K5vx.js +0 -2
- package/web-ui/build/static/ini-Coi7K5vx.js.map +0 -1
- package/web-ui/build/static/io-DY1SrCZR.js +0 -2
- package/web-ui/build/static/io-DY1SrCZR.js.map +0 -1
- package/web-ui/build/static/irpf90-AaLFC4Tw.js +0 -2
- package/web-ui/build/static/irpf90-AaLFC4Tw.js.map +0 -1
- package/web-ui/build/static/isbl-CY0nj7ms.js +0 -2
- package/web-ui/build/static/isbl-CY0nj7ms.js.map +0 -1
- package/web-ui/build/static/j-ibTCoC6t.js +0 -2
- package/web-ui/build/static/j-ibTCoC6t.js.map +0 -1
- package/web-ui/build/static/java-CsR3T4HE.js +0 -2
- package/web-ui/build/static/java-CsR3T4HE.js.map +0 -1
- package/web-ui/build/static/java-mRrrDRBt.js +0 -2
- package/web-ui/build/static/java-mRrrDRBt.js.map +0 -1
- package/web-ui/build/static/javadoc-DtDnLQwo.js +0 -2
- package/web-ui/build/static/javadoc-DtDnLQwo.js.map +0 -1
- package/web-ui/build/static/javadoclike-DINsV3CW.js +0 -2
- package/web-ui/build/static/javadoclike-DINsV3CW.js.map +0 -1
- package/web-ui/build/static/javascript-Bu7QXFYt.js +0 -2
- package/web-ui/build/static/javascript-Bu7QXFYt.js.map +0 -1
- package/web-ui/build/static/javascript-D1gLfRcd.js +0 -2
- package/web-ui/build/static/javascript-D1gLfRcd.js.map +0 -1
- package/web-ui/build/static/javastacktrace-B_EX1nVN.js +0 -2
- package/web-ui/build/static/javastacktrace-B_EX1nVN.js.map +0 -1
- package/web-ui/build/static/jboss-cli-CY9f83oy.js +0 -2
- package/web-ui/build/static/jboss-cli-CY9f83oy.js.map +0 -1
- package/web-ui/build/static/jexl-DTzLUEd4.js +0 -2
- package/web-ui/build/static/jexl-DTzLUEd4.js.map +0 -1
- package/web-ui/build/static/jolie-DuZWPx91.js +0 -2
- package/web-ui/build/static/jolie-DuZWPx91.js.map +0 -1
- package/web-ui/build/static/jq-BIz4V6UP.js +0 -2
- package/web-ui/build/static/jq-BIz4V6UP.js.map +0 -1
- package/web-ui/build/static/js-extras-BSf4fAIj.js +0 -2
- package/web-ui/build/static/js-extras-BSf4fAIj.js.map +0 -1
- package/web-ui/build/static/js-templates-Du4N2P_d.js +0 -2
- package/web-ui/build/static/js-templates-Du4N2P_d.js.map +0 -1
- package/web-ui/build/static/jsdoc-C-CxrAs1.js +0 -2
- package/web-ui/build/static/jsdoc-C-CxrAs1.js.map +0 -1
- package/web-ui/build/static/json-C_bufJjH.js +0 -2
- package/web-ui/build/static/json-C_bufJjH.js.map +0 -1
- package/web-ui/build/static/json-EEZIxuOc.js +0 -2
- package/web-ui/build/static/json-EEZIxuOc.js.map +0 -1
- package/web-ui/build/static/json5-CJk49FBO.js +0 -2
- package/web-ui/build/static/json5-CJk49FBO.js.map +0 -1
- package/web-ui/build/static/jsonp-ngd5nEal.js +0 -2
- package/web-ui/build/static/jsonp-ngd5nEal.js.map +0 -1
- package/web-ui/build/static/jsstacktrace-DIwhduEX.js +0 -2
- package/web-ui/build/static/jsstacktrace-DIwhduEX.js.map +0 -1
- package/web-ui/build/static/jsx-BJmozOXf.js +0 -2
- package/web-ui/build/static/jsx-BJmozOXf.js.map +0 -1
- package/web-ui/build/static/julia-DcqjgjOW.js +0 -2
- package/web-ui/build/static/julia-DcqjgjOW.js.map +0 -1
- package/web-ui/build/static/julia-Drv4zlGA.js +0 -2
- package/web-ui/build/static/julia-Drv4zlGA.js.map +0 -1
- package/web-ui/build/static/julia-repl-fxJwoEYA.js +0 -2
- package/web-ui/build/static/julia-repl-fxJwoEYA.js.map +0 -1
- package/web-ui/build/static/keepalived-CM94ZaLi.js +0 -2
- package/web-ui/build/static/keepalived-CM94ZaLi.js.map +0 -1
- package/web-ui/build/static/keyman-DnA4rZGN.js +0 -2
- package/web-ui/build/static/keyman-DnA4rZGN.js.map +0 -1
- package/web-ui/build/static/kotlin-C8qUl8H3.js +0 -2
- package/web-ui/build/static/kotlin-C8qUl8H3.js.map +0 -1
- package/web-ui/build/static/kotlin-DbMr0J5m.js +0 -2
- package/web-ui/build/static/kotlin-DbMr0J5m.js.map +0 -1
- package/web-ui/build/static/kumir-DLA2l5UR.js +0 -2
- package/web-ui/build/static/kumir-DLA2l5UR.js.map +0 -1
- package/web-ui/build/static/kusto-Dzz2pKEq.js +0 -2
- package/web-ui/build/static/kusto-Dzz2pKEq.js.map +0 -1
- package/web-ui/build/static/lasso-DX_kbbmV.js +0 -2
- package/web-ui/build/static/lasso-DX_kbbmV.js.map +0 -1
- package/web-ui/build/static/latex-BSRcUv32.js +0 -2
- package/web-ui/build/static/latex-BSRcUv32.js.map +0 -1
- package/web-ui/build/static/latex-BdexxgJQ.js +0 -2
- package/web-ui/build/static/latex-BdexxgJQ.js.map +0 -1
- package/web-ui/build/static/latte-D8Q8M42F.js +0 -2
- package/web-ui/build/static/latte-D8Q8M42F.js.map +0 -1
- package/web-ui/build/static/ldif-BohiSf03.js +0 -2
- package/web-ui/build/static/ldif-BohiSf03.js.map +0 -1
- package/web-ui/build/static/leaf-SjVuhqmn.js +0 -2
- package/web-ui/build/static/leaf-SjVuhqmn.js.map +0 -1
- package/web-ui/build/static/less-DjjBynm0.js +0 -2
- package/web-ui/build/static/less-DjjBynm0.js.map +0 -1
- package/web-ui/build/static/less-WqAi1XYV.js +0 -2
- package/web-ui/build/static/less-WqAi1XYV.js.map +0 -1
- package/web-ui/build/static/lilypond-BZJKKuJo.js +0 -2
- package/web-ui/build/static/lilypond-BZJKKuJo.js.map +0 -1
- package/web-ui/build/static/liquid-ufgamxXf.js +0 -2
- package/web-ui/build/static/liquid-ufgamxXf.js.map +0 -1
- package/web-ui/build/static/lisp-CKum_PNb.js +0 -2
- package/web-ui/build/static/lisp-CKum_PNb.js.map +0 -1
- package/web-ui/build/static/lisp-DLB0Suc4.js +0 -2
- package/web-ui/build/static/lisp-DLB0Suc4.js.map +0 -1
- package/web-ui/build/static/livecodeserver-BspRaC30.js +0 -2
- package/web-ui/build/static/livecodeserver-BspRaC30.js.map +0 -1
- package/web-ui/build/static/livescript-CUgUPqkp.js +0 -2
- package/web-ui/build/static/livescript-CUgUPqkp.js.map +0 -1
- package/web-ui/build/static/livescript-Cs4ExrAl.js +0 -2
- package/web-ui/build/static/livescript-Cs4ExrAl.js.map +0 -1
- package/web-ui/build/static/llvm-BsoeQjnZ.js +0 -2
- package/web-ui/build/static/llvm-BsoeQjnZ.js.map +0 -1
- package/web-ui/build/static/llvm-WhfLFXpF.js +0 -2
- package/web-ui/build/static/llvm-WhfLFXpF.js.map +0 -1
- package/web-ui/build/static/log-slo8Bm6p.js +0 -2
- package/web-ui/build/static/log-slo8Bm6p.js.map +0 -1
- package/web-ui/build/static/lolcode-CR7kgSeF.js +0 -2
- package/web-ui/build/static/lolcode-CR7kgSeF.js.map +0 -1
- package/web-ui/build/static/lsl-ZphCmsU1.js +0 -2
- package/web-ui/build/static/lsl-ZphCmsU1.js.map +0 -1
- package/web-ui/build/static/lua-CM-7eJhz.js +0 -2
- package/web-ui/build/static/lua-CM-7eJhz.js.map +0 -1
- package/web-ui/build/static/lua-D_Nkgk6Z.js +0 -2
- package/web-ui/build/static/lua-D_Nkgk6Z.js.map +0 -1
- package/web-ui/build/static/magma-CtYRqfGw.js +0 -2
- package/web-ui/build/static/magma-CtYRqfGw.js.map +0 -1
- package/web-ui/build/static/makefile-Ci8dr6vL.js +0 -2
- package/web-ui/build/static/makefile-Ci8dr6vL.js.map +0 -1
- package/web-ui/build/static/makefile-q4rDQWwx.js +0 -2
- package/web-ui/build/static/makefile-q4rDQWwx.js.map +0 -1
- package/web-ui/build/static/markdown-CqcKz4GX.js +0 -2
- package/web-ui/build/static/markdown-CqcKz4GX.js.map +0 -1
- package/web-ui/build/static/markdown-D0yC5FNQ.js +0 -2
- package/web-ui/build/static/markdown-D0yC5FNQ.js.map +0 -1
- package/web-ui/build/static/markup-Cjk8Mxgk.js +0 -2
- package/web-ui/build/static/markup-Cjk8Mxgk.js.map +0 -1
- package/web-ui/build/static/markup-templating-BKhipwQC.js +0 -2
- package/web-ui/build/static/markup-templating-BKhipwQC.js.map +0 -1
- package/web-ui/build/static/mathematica-B7E8Pl72.js +0 -2
- package/web-ui/build/static/mathematica-B7E8Pl72.js.map +0 -1
- package/web-ui/build/static/matlab-BmHsLKQ0.js +0 -2
- package/web-ui/build/static/matlab-BmHsLKQ0.js.map +0 -1
- package/web-ui/build/static/matlab-FrsYO1Wp.js +0 -2
- package/web-ui/build/static/matlab-FrsYO1Wp.js.map +0 -1
- package/web-ui/build/static/maxima-5qIW2_R4.js +0 -2
- package/web-ui/build/static/maxima-5qIW2_R4.js.map +0 -1
- package/web-ui/build/static/maxscript-BkZblLnI.js +0 -2
- package/web-ui/build/static/maxscript-BkZblLnI.js.map +0 -1
- package/web-ui/build/static/mel-CVbicMhZ.js +0 -2
- package/web-ui/build/static/mel-CVbicMhZ.js.map +0 -1
- package/web-ui/build/static/mel-DR5pKO-7.js +0 -2
- package/web-ui/build/static/mel-DR5pKO-7.js.map +0 -1
- package/web-ui/build/static/mercury-OZVRt1y8.js +0 -2
- package/web-ui/build/static/mercury-OZVRt1y8.js.map +0 -1
- package/web-ui/build/static/mermaid-Bub4Bhlm.js +0 -2
- package/web-ui/build/static/mermaid-Bub4Bhlm.js.map +0 -1
- package/web-ui/build/static/mipsasm-BN6sOU73.js +0 -2
- package/web-ui/build/static/mipsasm-BN6sOU73.js.map +0 -1
- package/web-ui/build/static/mizar-CKCmBdrL.js +0 -2
- package/web-ui/build/static/mizar-CKCmBdrL.js.map +0 -1
- package/web-ui/build/static/mizar-fhWBjVld.js +0 -2
- package/web-ui/build/static/mizar-fhWBjVld.js.map +0 -1
- package/web-ui/build/static/mojolicious-D-HOU9Sm.js +0 -2
- package/web-ui/build/static/mojolicious-D-HOU9Sm.js.map +0 -1
- package/web-ui/build/static/mongodb-DXpvySHn.js +0 -2
- package/web-ui/build/static/mongodb-DXpvySHn.js.map +0 -1
- package/web-ui/build/static/monkey-DAtSg6px.js +0 -2
- package/web-ui/build/static/monkey-DAtSg6px.js.map +0 -1
- package/web-ui/build/static/monkey-DeVmm_9U.js +0 -2
- package/web-ui/build/static/monkey-DeVmm_9U.js.map +0 -1
- package/web-ui/build/static/moonscript-BBSFMAaO.js +0 -2
- package/web-ui/build/static/moonscript-BBSFMAaO.js.map +0 -1
- package/web-ui/build/static/moonscript-Cm7JpGeh.js +0 -2
- package/web-ui/build/static/moonscript-Cm7JpGeh.js.map +0 -1
- package/web-ui/build/static/n1ql-NOcj8zG0.js +0 -2
- package/web-ui/build/static/n1ql-NOcj8zG0.js.map +0 -1
- package/web-ui/build/static/n1ql-tfSeu5pu.js +0 -2
- package/web-ui/build/static/n1ql-tfSeu5pu.js.map +0 -1
- package/web-ui/build/static/n4js-uHeJH1ik.js +0 -2
- package/web-ui/build/static/n4js-uHeJH1ik.js.map +0 -1
- package/web-ui/build/static/nand2tetris-hdl-Be_aGDZb.js +0 -2
- package/web-ui/build/static/nand2tetris-hdl-Be_aGDZb.js.map +0 -1
- package/web-ui/build/static/naniscript-Dse7kZdK.js +0 -2
- package/web-ui/build/static/naniscript-Dse7kZdK.js.map +0 -1
- package/web-ui/build/static/nasm-DVWOnrHj.js +0 -2
- package/web-ui/build/static/nasm-DVWOnrHj.js.map +0 -1
- package/web-ui/build/static/neon-_evVOn2Q.js +0 -2
- package/web-ui/build/static/neon-_evVOn2Q.js.map +0 -1
- package/web-ui/build/static/nevod-azZ7THZA.js +0 -2
- package/web-ui/build/static/nevod-azZ7THZA.js.map +0 -1
- package/web-ui/build/static/nginx-DehpPiY7.js +0 -2
- package/web-ui/build/static/nginx-DehpPiY7.js.map +0 -1
- package/web-ui/build/static/nginx-DiDoV3kC.js +0 -2
- package/web-ui/build/static/nginx-DiDoV3kC.js.map +0 -1
- package/web-ui/build/static/nim-BHgI5oyC.js +0 -2
- package/web-ui/build/static/nim-BHgI5oyC.js.map +0 -1
- package/web-ui/build/static/nim-CuIRKo8H.js +0 -2
- package/web-ui/build/static/nim-CuIRKo8H.js.map +0 -1
- package/web-ui/build/static/nix-DCqNI1Eb.js +0 -2
- package/web-ui/build/static/nix-DCqNI1Eb.js.map +0 -1
- package/web-ui/build/static/nix-DwCqcL2e.js +0 -2
- package/web-ui/build/static/nix-DwCqcL2e.js.map +0 -1
- package/web-ui/build/static/node-repl-B71NVdJP.js +0 -2
- package/web-ui/build/static/node-repl-B71NVdJP.js.map +0 -1
- package/web-ui/build/static/nsis-CLnIDicp.js +0 -2
- package/web-ui/build/static/nsis-CLnIDicp.js.map +0 -1
- package/web-ui/build/static/nsis-Dri3Jb5G.js +0 -2
- package/web-ui/build/static/nsis-Dri3Jb5G.js.map +0 -1
- package/web-ui/build/static/objectivec-COHUWpqu.js +0 -2
- package/web-ui/build/static/objectivec-COHUWpqu.js.map +0 -1
- package/web-ui/build/static/objectivec-V0foMLD3.js +0 -2
- package/web-ui/build/static/objectivec-V0foMLD3.js.map +0 -1
- package/web-ui/build/static/ocaml-AXXjofiL.js +0 -2
- package/web-ui/build/static/ocaml-AXXjofiL.js.map +0 -1
- package/web-ui/build/static/ocaml-Q2h72FzT.js +0 -2
- package/web-ui/build/static/ocaml-Q2h72FzT.js.map +0 -1
- package/web-ui/build/static/opencl-C6GSwZ6w.js +0 -2
- package/web-ui/build/static/opencl-C6GSwZ6w.js.map +0 -1
- package/web-ui/build/static/openqasm-9NJUbzOO.js +0 -2
- package/web-ui/build/static/openqasm-9NJUbzOO.js.map +0 -1
- package/web-ui/build/static/openscad-Beoa-Ggx.js +0 -2
- package/web-ui/build/static/openscad-Beoa-Ggx.js.map +0 -1
- package/web-ui/build/static/oxygene-Bgqy12_f.js +0 -2
- package/web-ui/build/static/oxygene-Bgqy12_f.js.map +0 -1
- package/web-ui/build/static/oz-CyHpE2rC.js +0 -2
- package/web-ui/build/static/oz-CyHpE2rC.js.map +0 -1
- package/web-ui/build/static/parigp-CvvhNDQU.js +0 -2
- package/web-ui/build/static/parigp-CvvhNDQU.js.map +0 -1
- package/web-ui/build/static/parser-B8eRxP9O.js +0 -2
- package/web-ui/build/static/parser-B8eRxP9O.js.map +0 -1
- package/web-ui/build/static/parser3-BvDrgz3M.js +0 -2
- package/web-ui/build/static/parser3-BvDrgz3M.js.map +0 -1
- package/web-ui/build/static/pascal-D44-wqgL.js +0 -2
- package/web-ui/build/static/pascal-D44-wqgL.js.map +0 -1
- package/web-ui/build/static/pascaligo-Bd5HoQQp.js +0 -2
- package/web-ui/build/static/pascaligo-Bd5HoQQp.js.map +0 -1
- package/web-ui/build/static/pcaxis-DVZK6_uc.js +0 -2
- package/web-ui/build/static/pcaxis-DVZK6_uc.js.map +0 -1
- package/web-ui/build/static/peoplecode-BNGTG5LJ.js +0 -2
- package/web-ui/build/static/peoplecode-BNGTG5LJ.js.map +0 -1
- package/web-ui/build/static/perl-BgVqbCRm.js +0 -2
- package/web-ui/build/static/perl-BgVqbCRm.js.map +0 -1
- package/web-ui/build/static/perl-C4t4IpBd.js +0 -2
- package/web-ui/build/static/perl-C4t4IpBd.js.map +0 -1
- package/web-ui/build/static/pf-D1-dpaZ7.js +0 -2
- package/web-ui/build/static/pf-D1-dpaZ7.js.map +0 -1
- package/web-ui/build/static/pgsql-DV5XQnZI.js +0 -2
- package/web-ui/build/static/pgsql-DV5XQnZI.js.map +0 -1
- package/web-ui/build/static/php-6pDHAxRq.js +0 -2
- package/web-ui/build/static/php-6pDHAxRq.js.map +0 -1
- package/web-ui/build/static/php-extras-CgquDWeD.js +0 -2
- package/web-ui/build/static/php-extras-CgquDWeD.js.map +0 -1
- package/web-ui/build/static/php-q2aWUems.js +0 -2
- package/web-ui/build/static/php-q2aWUems.js.map +0 -1
- package/web-ui/build/static/php-template-Bb2zvUmi.js +0 -2
- package/web-ui/build/static/php-template-Bb2zvUmi.js.map +0 -1
- package/web-ui/build/static/phpdoc-B6ZNz66B.js +0 -2
- package/web-ui/build/static/phpdoc-B6ZNz66B.js.map +0 -1
- package/web-ui/build/static/plaintext-DRgh7Z67.js +0 -2
- package/web-ui/build/static/plaintext-DRgh7Z67.js.map +0 -1
- package/web-ui/build/static/plsql-q7KdbtaF.js +0 -2
- package/web-ui/build/static/plsql-q7KdbtaF.js.map +0 -1
- package/web-ui/build/static/pony-Y-hJnxHq.js +0 -2
- package/web-ui/build/static/pony-Y-hJnxHq.js.map +0 -1
- package/web-ui/build/static/powerquery-CH9cLS9q.js +0 -2
- package/web-ui/build/static/powerquery-CH9cLS9q.js.map +0 -1
- package/web-ui/build/static/powershell-B4Hp3Yr7.js +0 -2
- package/web-ui/build/static/powershell-B4Hp3Yr7.js.map +0 -1
- package/web-ui/build/static/powershell-BMnn1JwU.js +0 -2
- package/web-ui/build/static/powershell-BMnn1JwU.js.map +0 -1
- package/web-ui/build/static/processing-DD5zXoex.js +0 -2
- package/web-ui/build/static/processing-DD5zXoex.js.map +0 -1
- package/web-ui/build/static/processing-la5dBEOa.js +0 -2
- package/web-ui/build/static/processing-la5dBEOa.js.map +0 -1
- package/web-ui/build/static/profile-02nv16ld.js +0 -2
- package/web-ui/build/static/profile-02nv16ld.js.map +0 -1
- package/web-ui/build/static/prolog-By7y4UGy.js +0 -2
- package/web-ui/build/static/prolog-By7y4UGy.js.map +0 -1
- package/web-ui/build/static/prolog-C2JW0ytV.js +0 -2
- package/web-ui/build/static/prolog-C2JW0ytV.js.map +0 -1
- package/web-ui/build/static/promql-Bmmh0gus.js +0 -2
- package/web-ui/build/static/promql-Bmmh0gus.js.map +0 -1
- package/web-ui/build/static/properties-8Zn0j6UJ.js +0 -2
- package/web-ui/build/static/properties-8Zn0j6UJ.js.map +0 -1
- package/web-ui/build/static/properties-Cq4nky7a.js +0 -2
- package/web-ui/build/static/properties-Cq4nky7a.js.map +0 -1
- package/web-ui/build/static/protobuf-CFEd9h6u.js +0 -2
- package/web-ui/build/static/protobuf-CFEd9h6u.js.map +0 -1
- package/web-ui/build/static/protobuf-I_wL5rTd.js +0 -2
- package/web-ui/build/static/protobuf-I_wL5rTd.js.map +0 -1
- package/web-ui/build/static/psl-I43vvj2i.js +0 -2
- package/web-ui/build/static/psl-I43vvj2i.js.map +0 -1
- package/web-ui/build/static/pug-BLFo_LLo.js +0 -2
- package/web-ui/build/static/pug-BLFo_LLo.js.map +0 -1
- package/web-ui/build/static/puppet-CK3-yZpi.js +0 -2
- package/web-ui/build/static/puppet-CK3-yZpi.js.map +0 -1
- package/web-ui/build/static/puppet-DsTIkeL3.js +0 -2
- package/web-ui/build/static/puppet-DsTIkeL3.js.map +0 -1
- package/web-ui/build/static/pure-J02rZ38J.js +0 -2
- package/web-ui/build/static/pure-J02rZ38J.js.map +0 -1
- package/web-ui/build/static/purebasic-ThZOqcYF.js +0 -2
- package/web-ui/build/static/purebasic-ThZOqcYF.js.map +0 -1
- package/web-ui/build/static/purebasic-m2x_kkOe.js +0 -2
- package/web-ui/build/static/purebasic-m2x_kkOe.js.map +0 -1
- package/web-ui/build/static/purescript-CLUyF_08.js +0 -2
- package/web-ui/build/static/purescript-CLUyF_08.js.map +0 -1
- package/web-ui/build/static/python-B1ecpaTS.js +0 -2
- package/web-ui/build/static/python-B1ecpaTS.js.map +0 -1
- package/web-ui/build/static/python-CPtO88m5.js +0 -2
- package/web-ui/build/static/python-CPtO88m5.js.map +0 -1
- package/web-ui/build/static/python-repl-C5oUsWjd.js +0 -2
- package/web-ui/build/static/python-repl-C5oUsWjd.js.map +0 -1
- package/web-ui/build/static/q-B1iyCnHJ.js +0 -2
- package/web-ui/build/static/q-B1iyCnHJ.js.map +0 -1
- package/web-ui/build/static/q-Dm5Q-C35.js +0 -2
- package/web-ui/build/static/q-Dm5Q-C35.js.map +0 -1
- package/web-ui/build/static/qml-DG8tMA9D.js +0 -2
- package/web-ui/build/static/qml-DG8tMA9D.js.map +0 -1
- package/web-ui/build/static/qml-Dh59GQxP.js +0 -2
- package/web-ui/build/static/qml-Dh59GQxP.js.map +0 -1
- package/web-ui/build/static/qore-CcE1Alno.js +0 -2
- package/web-ui/build/static/qore-CcE1Alno.js.map +0 -1
- package/web-ui/build/static/qsharp-DyzQ76vK.js +0 -2
- package/web-ui/build/static/qsharp-DyzQ76vK.js.map +0 -1
- package/web-ui/build/static/r-BGwmT6uN.js +0 -2
- package/web-ui/build/static/r-BGwmT6uN.js.map +0 -1
- package/web-ui/build/static/r-tNzpnXL4.js +0 -2
- package/web-ui/build/static/r-tNzpnXL4.js.map +0 -1
- package/web-ui/build/static/racket-D--TmZPj.js +0 -2
- package/web-ui/build/static/racket-D--TmZPj.js.map +0 -1
- package/web-ui/build/static/reason-B_Vyfb8r.js +0 -2
- package/web-ui/build/static/reason-B_Vyfb8r.js.map +0 -1
- package/web-ui/build/static/reasonml-DO12CIwC.js +0 -2
- package/web-ui/build/static/reasonml-DO12CIwC.js.map +0 -1
- package/web-ui/build/static/regex-BhiEkjf5.js +0 -2
- package/web-ui/build/static/regex-BhiEkjf5.js.map +0 -1
- package/web-ui/build/static/rego-VmOgwE0S.js +0 -2
- package/web-ui/build/static/rego-VmOgwE0S.js.map +0 -1
- package/web-ui/build/static/renpy-B6w2Ojbu.js +0 -2
- package/web-ui/build/static/renpy-B6w2Ojbu.js.map +0 -1
- package/web-ui/build/static/rest-DFJjqGcB.js +0 -2
- package/web-ui/build/static/rest-DFJjqGcB.js.map +0 -1
- package/web-ui/build/static/rib-Cv6ekzud.js +0 -2
- package/web-ui/build/static/rib-Cv6ekzud.js.map +0 -1
- package/web-ui/build/static/rip-C-tGZN_Q.js +0 -2
- package/web-ui/build/static/rip-C-tGZN_Q.js.map +0 -1
- package/web-ui/build/static/roboconf-BhxuMlwG.js +0 -2
- package/web-ui/build/static/roboconf-BhxuMlwG.js.map +0 -1
- package/web-ui/build/static/roboconf-CPKGBU0g.js +0 -2
- package/web-ui/build/static/roboconf-CPKGBU0g.js.map +0 -1
- package/web-ui/build/static/robotframework-DRE67005.js +0 -2
- package/web-ui/build/static/robotframework-DRE67005.js.map +0 -1
- package/web-ui/build/static/routeros-CogkVYov.js +0 -2
- package/web-ui/build/static/routeros-CogkVYov.js.map +0 -1
- package/web-ui/build/static/rsl-C17JG3VL.js +0 -2
- package/web-ui/build/static/rsl-C17JG3VL.js.map +0 -1
- package/web-ui/build/static/ruby-BUJo5HTw.js +0 -2
- package/web-ui/build/static/ruby-BUJo5HTw.js.map +0 -1
- package/web-ui/build/static/ruby-C2ZBTnLY.js +0 -2
- package/web-ui/build/static/ruby-C2ZBTnLY.js.map +0 -1
- package/web-ui/build/static/ruleslanguage-CVut-Je9.js +0 -2
- package/web-ui/build/static/ruleslanguage-CVut-Je9.js.map +0 -1
- package/web-ui/build/static/rust-CNFlvigk.js +0 -2
- package/web-ui/build/static/rust-CNFlvigk.js.map +0 -1
- package/web-ui/build/static/rust-DA4JXIo2.js +0 -2
- package/web-ui/build/static/rust-DA4JXIo2.js.map +0 -1
- package/web-ui/build/static/sas-B1JAVdW0.js +0 -2
- package/web-ui/build/static/sas-B1JAVdW0.js.map +0 -1
- package/web-ui/build/static/sas-DUHCqbYx.js +0 -2
- package/web-ui/build/static/sas-DUHCqbYx.js.map +0 -1
- package/web-ui/build/static/sass-Dd5cza71.js +0 -2
- package/web-ui/build/static/sass-Dd5cza71.js.map +0 -1
- package/web-ui/build/static/scala-B38slPjk.js +0 -2
- package/web-ui/build/static/scala-B38slPjk.js.map +0 -1
- package/web-ui/build/static/scala-BoLFRtSw.js +0 -2
- package/web-ui/build/static/scala-BoLFRtSw.js.map +0 -1
- package/web-ui/build/static/scheme-B8skJ46g.js +0 -2
- package/web-ui/build/static/scheme-B8skJ46g.js.map +0 -1
- package/web-ui/build/static/scheme-C3n_9Cn0.js +0 -2
- package/web-ui/build/static/scheme-C3n_9Cn0.js.map +0 -1
- package/web-ui/build/static/scilab-C0FIPfSE.js +0 -2
- package/web-ui/build/static/scilab-C0FIPfSE.js.map +0 -1
- package/web-ui/build/static/scss-0aOXD_hh.js +0 -2
- package/web-ui/build/static/scss-0aOXD_hh.js.map +0 -1
- package/web-ui/build/static/scss-x5IloZdD.js +0 -2
- package/web-ui/build/static/scss-x5IloZdD.js.map +0 -1
- package/web-ui/build/static/shell-CYQtzsAn.js +0 -2
- package/web-ui/build/static/shell-CYQtzsAn.js.map +0 -1
- package/web-ui/build/static/shell-session-DVv-jq4s.js +0 -2
- package/web-ui/build/static/shell-session-DVv-jq4s.js.map +0 -1
- package/web-ui/build/static/smali-Bhutj2AJ.js +0 -2
- package/web-ui/build/static/smali-Bhutj2AJ.js.map +0 -1
- package/web-ui/build/static/smali-fOH819Z3.js +0 -2
- package/web-ui/build/static/smali-fOH819Z3.js.map +0 -1
- package/web-ui/build/static/smalltalk-5xxt8mKS.js +0 -2
- package/web-ui/build/static/smalltalk-5xxt8mKS.js.map +0 -1
- package/web-ui/build/static/smalltalk-Bwz_TMcJ.js +0 -2
- package/web-ui/build/static/smalltalk-Bwz_TMcJ.js.map +0 -1
- package/web-ui/build/static/smarty-C-lXphVs.js +0 -2
- package/web-ui/build/static/smarty-C-lXphVs.js.map +0 -1
- package/web-ui/build/static/sml-CQGKUrij.js +0 -2
- package/web-ui/build/static/sml-CQGKUrij.js.map +0 -1
- package/web-ui/build/static/sml-DLkTkhB_.js +0 -2
- package/web-ui/build/static/sml-DLkTkhB_.js.map +0 -1
- package/web-ui/build/static/solidity-hDatnTAN.js +0 -2
- package/web-ui/build/static/solidity-hDatnTAN.js.map +0 -1
- package/web-ui/build/static/solution-file-Bwlx7Ex_.js +0 -2
- package/web-ui/build/static/solution-file-Bwlx7Ex_.js.map +0 -1
- package/web-ui/build/static/soy-MPkTNpvX.js +0 -2
- package/web-ui/build/static/soy-MPkTNpvX.js.map +0 -1
- package/web-ui/build/static/sparql-altEdysP.js +0 -2
- package/web-ui/build/static/sparql-altEdysP.js.map +0 -1
- package/web-ui/build/static/splunk-spl-ee08fNLX.js +0 -2
- package/web-ui/build/static/splunk-spl-ee08fNLX.js.map +0 -1
- package/web-ui/build/static/sqf-BUk4YuLW.js +0 -2
- package/web-ui/build/static/sqf-BUk4YuLW.js.map +0 -1
- package/web-ui/build/static/sqf-BbUvFtZL.js +0 -2
- package/web-ui/build/static/sqf-BbUvFtZL.js.map +0 -1
- package/web-ui/build/static/sql-dEBpSksJ.js +0 -2
- package/web-ui/build/static/sql-dEBpSksJ.js.map +0 -1
- package/web-ui/build/static/sql-nSDEYTLs.js +0 -2
- package/web-ui/build/static/sql-nSDEYTLs.js.map +0 -1
- package/web-ui/build/static/sql_more-CS7D4J_l.js +0 -2
- package/web-ui/build/static/sql_more-CS7D4J_l.js.map +0 -1
- package/web-ui/build/static/squirrel-DZObnhph.js +0 -2
- package/web-ui/build/static/squirrel-DZObnhph.js.map +0 -1
- package/web-ui/build/static/stan-C2y-tDyE.js +0 -2
- package/web-ui/build/static/stan-C2y-tDyE.js.map +0 -1
- package/web-ui/build/static/stan-DjSiOCiq.js +0 -2
- package/web-ui/build/static/stan-DjSiOCiq.js.map +0 -1
- package/web-ui/build/static/stata-C7NtNYQm.js +0 -2
- package/web-ui/build/static/stata-C7NtNYQm.js.map +0 -1
- package/web-ui/build/static/step21-DNztQldJ.js +0 -2
- package/web-ui/build/static/step21-DNztQldJ.js.map +0 -1
- package/web-ui/build/static/stylus-4vzfmIr5.js +0 -2
- package/web-ui/build/static/stylus-4vzfmIr5.js.map +0 -1
- package/web-ui/build/static/stylus-D4X0-6j9.js +0 -2
- package/web-ui/build/static/stylus-D4X0-6j9.js.map +0 -1
- package/web-ui/build/static/subunit-W_dhUAYA.js +0 -2
- package/web-ui/build/static/subunit-W_dhUAYA.js.map +0 -1
- package/web-ui/build/static/swift-DyJcJ7qV.js +0 -2
- package/web-ui/build/static/swift-DyJcJ7qV.js.map +0 -1
- package/web-ui/build/static/swift-RVh0ER2w.js +0 -2
- package/web-ui/build/static/swift-RVh0ER2w.js.map +0 -1
- package/web-ui/build/static/systemd-yEgP-qwx.js +0 -2
- package/web-ui/build/static/systemd-yEgP-qwx.js.map +0 -1
- package/web-ui/build/static/t4-cs-BXECZrBN.js +0 -2
- package/web-ui/build/static/t4-cs-BXECZrBN.js.map +0 -1
- package/web-ui/build/static/t4-templating-DXyljnoK.js +0 -2
- package/web-ui/build/static/t4-templating-DXyljnoK.js.map +0 -1
- package/web-ui/build/static/t4-vb-DHtWKTdd.js +0 -2
- package/web-ui/build/static/t4-vb-DHtWKTdd.js.map +0 -1
- package/web-ui/build/static/taggerscript-B6YISRfo.js +0 -2
- package/web-ui/build/static/taggerscript-B6YISRfo.js.map +0 -1
- package/web-ui/build/static/tap-ByVDrWOb.js +0 -2
- package/web-ui/build/static/tap-ByVDrWOb.js.map +0 -1
- package/web-ui/build/static/tap-qChttdFl.js +0 -2
- package/web-ui/build/static/tap-qChttdFl.js.map +0 -1
- package/web-ui/build/static/tcl-D399IDpD.js +0 -2
- package/web-ui/build/static/tcl-D399IDpD.js.map +0 -1
- package/web-ui/build/static/tcl-DnxBEyA3.js +0 -2
- package/web-ui/build/static/tcl-DnxBEyA3.js.map +0 -1
- package/web-ui/build/static/textile-B4X5fSnK.js +0 -2
- package/web-ui/build/static/textile-B4X5fSnK.js.map +0 -1
- package/web-ui/build/static/thrift-DRntHtLf.js +0 -2
- package/web-ui/build/static/thrift-DRntHtLf.js.map +0 -1
- package/web-ui/build/static/toml-Dth9VtDM.js +0 -2
- package/web-ui/build/static/toml-Dth9VtDM.js.map +0 -1
- package/web-ui/build/static/tp-BB4GCCP6.js +0 -2
- package/web-ui/build/static/tp-BB4GCCP6.js.map +0 -1
- package/web-ui/build/static/tremor-BtqPMZ5X.js +0 -2
- package/web-ui/build/static/tremor-BtqPMZ5X.js.map +0 -1
- package/web-ui/build/static/tsx-JEERbg6Z.js +0 -2
- package/web-ui/build/static/tsx-JEERbg6Z.js.map +0 -1
- package/web-ui/build/static/tt2-wI5Z-oz1.js +0 -2
- package/web-ui/build/static/tt2-wI5Z-oz1.js.map +0 -1
- package/web-ui/build/static/turtle-DemYHH-2.js +0 -2
- package/web-ui/build/static/turtle-DemYHH-2.js.map +0 -1
- package/web-ui/build/static/twig-BvQudhGI.js +0 -2
- package/web-ui/build/static/twig-BvQudhGI.js.map +0 -1
- package/web-ui/build/static/twig-C7pPB9AO.js +0 -2
- package/web-ui/build/static/twig-C7pPB9AO.js.map +0 -1
- package/web-ui/build/static/typescript-cvGfAXut.js +0 -2
- package/web-ui/build/static/typescript-cvGfAXut.js.map +0 -1
- package/web-ui/build/static/typescript-unt3moJ_.js +0 -2
- package/web-ui/build/static/typescript-unt3moJ_.js.map +0 -1
- package/web-ui/build/static/typoscript-CkEcgWXK.js +0 -2
- package/web-ui/build/static/typoscript-CkEcgWXK.js.map +0 -1
- package/web-ui/build/static/unrealscript-0p9kYUw3.js +0 -2
- package/web-ui/build/static/unrealscript-0p9kYUw3.js.map +0 -1
- package/web-ui/build/static/uorazor-3tBbpgY2.js +0 -2
- package/web-ui/build/static/uorazor-3tBbpgY2.js.map +0 -1
- package/web-ui/build/static/uri-D4-sV8gl.js +0 -2
- package/web-ui/build/static/uri-D4-sV8gl.js.map +0 -1
- package/web-ui/build/static/v-7ys92aXi.js +0 -2
- package/web-ui/build/static/v-7ys92aXi.js.map +0 -1
- package/web-ui/build/static/vala-C0wv8E8H.js +0 -2
- package/web-ui/build/static/vala-C0wv8E8H.js.map +0 -1
- package/web-ui/build/static/vala-CaNt83mH.js +0 -2
- package/web-ui/build/static/vala-CaNt83mH.js.map +0 -1
- package/web-ui/build/static/vbnet-DUvzqdmm.js +0 -2
- package/web-ui/build/static/vbnet-DUvzqdmm.js.map +0 -1
- package/web-ui/build/static/vbnet-bYxMIfUc.js +0 -2
- package/web-ui/build/static/vbnet-bYxMIfUc.js.map +0 -1
- package/web-ui/build/static/vbscript-D3CbaHAg.js +0 -2
- package/web-ui/build/static/vbscript-D3CbaHAg.js.map +0 -1
- package/web-ui/build/static/vbscript-html-Bsig11Nm.js +0 -2
- package/web-ui/build/static/vbscript-html-Bsig11Nm.js.map +0 -1
- package/web-ui/build/static/velocity-B6JfA_zT.js +0 -2
- package/web-ui/build/static/velocity-B6JfA_zT.js.map +0 -1
- package/web-ui/build/static/verilog-DnHMGm_H.js +0 -2
- package/web-ui/build/static/verilog-DnHMGm_H.js.map +0 -1
- package/web-ui/build/static/verilog-EvSsqpil.js +0 -2
- package/web-ui/build/static/verilog-EvSsqpil.js.map +0 -1
- package/web-ui/build/static/vhdl-DQj0W197.js +0 -2
- package/web-ui/build/static/vhdl-DQj0W197.js.map +0 -1
- package/web-ui/build/static/vhdl-DzsvGcVQ.js +0 -2
- package/web-ui/build/static/vhdl-DzsvGcVQ.js.map +0 -1
- package/web-ui/build/static/vim-B1W_vWhG.js +0 -2
- package/web-ui/build/static/vim-B1W_vWhG.js.map +0 -1
- package/web-ui/build/static/vim-VQjEHrk4.js +0 -2
- package/web-ui/build/static/vim-VQjEHrk4.js.map +0 -1
- package/web-ui/build/static/visual-basic-Dbzdgqz1.js +0 -2
- package/web-ui/build/static/visual-basic-Dbzdgqz1.js.map +0 -1
- package/web-ui/build/static/warpscript-BYBrFwtk.js +0 -2
- package/web-ui/build/static/warpscript-BYBrFwtk.js.map +0 -1
- package/web-ui/build/static/wasm-GuE2QK5i.js +0 -2
- package/web-ui/build/static/wasm-GuE2QK5i.js.map +0 -1
- package/web-ui/build/static/web-idl-DlZWxr-z.js +0 -2
- package/web-ui/build/static/web-idl-DlZWxr-z.js.map +0 -1
- package/web-ui/build/static/wiki-sNZMK0Qv.js +0 -2
- package/web-ui/build/static/wiki-sNZMK0Qv.js.map +0 -1
- package/web-ui/build/static/wolfram-b_CW-n3I.js +0 -2
- package/web-ui/build/static/wolfram-b_CW-n3I.js.map +0 -1
- package/web-ui/build/static/wren-ClAOb6le.js +0 -2
- package/web-ui/build/static/wren-ClAOb6le.js.map +0 -1
- package/web-ui/build/static/x86asm-BvEoX3Y5.js +0 -2
- package/web-ui/build/static/x86asm-BvEoX3Y5.js.map +0 -1
- package/web-ui/build/static/xeora-B_HhI4na.js +0 -2
- package/web-ui/build/static/xeora-B_HhI4na.js.map +0 -1
- package/web-ui/build/static/xl-BRr7F944.js +0 -2
- package/web-ui/build/static/xl-BRr7F944.js.map +0 -1
- package/web-ui/build/static/xml-CbC32uLi.js +0 -2
- package/web-ui/build/static/xml-CbC32uLi.js.map +0 -1
- package/web-ui/build/static/xml-doc-DK_vuY77.js +0 -2
- package/web-ui/build/static/xml-doc-DK_vuY77.js.map +0 -1
- package/web-ui/build/static/xojo-CaWu1dMI.js +0 -2
- package/web-ui/build/static/xojo-CaWu1dMI.js.map +0 -1
- package/web-ui/build/static/xquery-BC7riL9z.js +0 -2
- package/web-ui/build/static/xquery-BC7riL9z.js.map +0 -1
- package/web-ui/build/static/xquery-CriQc8DW.js +0 -2
- package/web-ui/build/static/xquery-CriQc8DW.js.map +0 -1
- package/web-ui/build/static/yaml-BbQxcGyV.js +0 -2
- package/web-ui/build/static/yaml-BbQxcGyV.js.map +0 -1
- package/web-ui/build/static/yaml-DXIx17dr.js +0 -2
- package/web-ui/build/static/yaml-DXIx17dr.js.map +0 -1
- package/web-ui/build/static/yang-BzfVPkov.js +0 -2
- package/web-ui/build/static/yang-BzfVPkov.js.map +0 -1
- package/web-ui/build/static/zephir-EItXoaG8.js +0 -2
- package/web-ui/build/static/zephir-EItXoaG8.js.map +0 -1
- package/web-ui/build/static/zig-BhEiHuPN.js +0 -2
- package/web-ui/build/static/zig-BhEiHuPN.js.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { jest, describe, test, expect, beforeEach } from '@jest/globals';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { AttachmentIngestionService, safeBaseName } from '../attachmentIngestionService.js';
|
|
4
|
+
|
|
5
|
+
function makeFs() {
|
|
6
|
+
return {
|
|
7
|
+
mkdir: jest.fn().mockResolvedValue(undefined),
|
|
8
|
+
writeFile: jest.fn().mockResolvedValue(undefined),
|
|
9
|
+
unlink: jest.fn().mockResolvedValue(undefined),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
let fs, fas, svc;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
fs = makeFs();
|
|
16
|
+
fas = { uploadFile: jest.fn().mockResolvedValue({ fileId: 'f1', fileName: 'x' }) };
|
|
17
|
+
let n = 0;
|
|
18
|
+
svc = new AttachmentIngestionService({ fileAttachmentService: fas, fs, tempDir: '/tmp/ingest', idgen: () => `id${++n}` });
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
describe('safeBaseName', () => {
|
|
22
|
+
test('strips directories and unsafe chars', () => {
|
|
23
|
+
expect(safeBaseName('../../etc/pa ss wd')).toBe('pa_ss_wd');
|
|
24
|
+
expect(safeBaseName('C:\\evil\\report.pdf')).toBe('report.pdf');
|
|
25
|
+
expect(safeBaseName('')).toBe('upload');
|
|
26
|
+
expect(safeBaseName('...')).toBe('upload');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
describe('ingestUpload', () => {
|
|
31
|
+
test('decodes base64 and writes BINARY bytes (not utf8) to a temp file', async () => {
|
|
32
|
+
const bytes = Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x00, 0xff]); // PNG-ish header w/ non-utf8 bytes
|
|
33
|
+
const b64 = bytes.toString('base64');
|
|
34
|
+
|
|
35
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 'pic.png', dataBase64: b64 });
|
|
36
|
+
|
|
37
|
+
expect(fs.mkdir).toHaveBeenCalledWith('/tmp/ingest', { recursive: true });
|
|
38
|
+
const [writtenPath, writtenData, ...rest] = fs.writeFile.mock.calls[0];
|
|
39
|
+
expect(writtenPath).toBe(path.join('/tmp/ingest', 'id1-pic.png'));
|
|
40
|
+
expect(Buffer.isBuffer(writtenData)).toBe(true); // bytes, not a string
|
|
41
|
+
expect(writtenData.equals(bytes)).toBe(true); // exact round-trip
|
|
42
|
+
expect(rest).toEqual([]); // no 'utf8' encoding arg
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test('hands the temp path to fileAttachmentService and returns its metadata', async () => {
|
|
46
|
+
const res = await svc.ingestUpload({ agentId: 'a1', fileName: 'pic.png', dataBase64: Buffer.from('x').toString('base64') });
|
|
47
|
+
expect(fas.uploadFile).toHaveBeenCalledWith(expect.objectContaining({ agentId: 'a1', filePath: path.join('/tmp/ingest', 'id1-pic.png'), mode: 'content', fileName: 'pic.png', scope: 'agent', conversationId: null }));
|
|
48
|
+
expect(res).toEqual({ fileId: 'f1', fileName: 'x' });
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test('accepts a data: URI and strips the prefix', async () => {
|
|
52
|
+
const bytes = Buffer.from('hello');
|
|
53
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: `data:text/plain;base64,${bytes.toString('base64')}` });
|
|
54
|
+
expect(fs.writeFile.mock.calls[0][1].equals(bytes)).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test('a data: prefix with no comma falls back to the whole string as base64', async () => {
|
|
58
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: 'data:AAAA' });
|
|
59
|
+
expect(fs.writeFile).toHaveBeenCalledTimes(1);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test('cleans up the temp file after success', async () => {
|
|
63
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: Buffer.from('x').toString('base64') });
|
|
64
|
+
expect(fs.unlink).toHaveBeenCalledWith(path.join('/tmp/ingest', 'id1-t.txt'));
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
test('cleans up the temp file even when upload fails, and propagates the error', async () => {
|
|
68
|
+
fas.uploadFile.mockRejectedValueOnce(new Error('validation failed'));
|
|
69
|
+
await expect(svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: Buffer.from('x').toString('base64') }))
|
|
70
|
+
.rejects.toThrow(/validation failed/);
|
|
71
|
+
expect(fs.unlink).toHaveBeenCalled();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('cleanup failure is swallowed (does not mask the result)', async () => {
|
|
75
|
+
fs.unlink.mockRejectedValueOnce(new Error('ENOENT'));
|
|
76
|
+
const res = await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: Buffer.from('x').toString('base64') });
|
|
77
|
+
expect(res.fileId).toBe('f1');
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
test.each([
|
|
81
|
+
[{ fileName: 'x', dataBase64: 'AA' }, /agentId is required/],
|
|
82
|
+
[{ agentId: 'a', dataBase64: 'AA' }, /fileName is required/],
|
|
83
|
+
[{ agentId: 'a', fileName: 'x' }, /dataBase64 is required/],
|
|
84
|
+
[{ agentId: 'a', fileName: 'x', dataBase64: '' }, /dataBase64 is required/],
|
|
85
|
+
])('rejects invalid input %#', async (input, re) => {
|
|
86
|
+
await expect(svc.ingestUpload(input)).rejects.toThrow(re);
|
|
87
|
+
expect(fs.writeFile).not.toHaveBeenCalled();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
test('respects a custom mode', async () => {
|
|
91
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: 'AA==', mode: 'reference' });
|
|
92
|
+
expect(fas.uploadFile.mock.calls[0][0].mode).toBe('reference');
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test('forwards scope + conversationId to uploadFile', async () => {
|
|
96
|
+
await svc.ingestUpload({ agentId: 'a1', fileName: 't.txt', dataBase64: 'AA==', scope: 'conversation', conversationId: 'c1' });
|
|
97
|
+
expect(fas.uploadFile).toHaveBeenCalledWith(expect.objectContaining({ scope: 'conversation', conversationId: 'c1' }));
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
describe('ingestServerPath', () => {
|
|
102
|
+
test('delegates straight to fileAttachmentService', async () => {
|
|
103
|
+
await svc.ingestServerPath({ agentId: 'a1', filePath: '/srv/doc.pdf', fileName: 'doc.pdf' });
|
|
104
|
+
expect(fas.uploadFile).toHaveBeenCalledWith(expect.objectContaining({ agentId: 'a1', filePath: '/srv/doc.pdf', mode: 'content', fileName: 'doc.pdf' }));
|
|
105
|
+
expect(fs.writeFile).not.toHaveBeenCalled(); // no staging for server files
|
|
106
|
+
});
|
|
107
|
+
test.each([
|
|
108
|
+
[{ filePath: '/x' }, /agentId is required/],
|
|
109
|
+
[{ agentId: 'a' }, /filePath is required/],
|
|
110
|
+
])('validates input %#', async (input, re) => {
|
|
111
|
+
await expect(svc.ingestServerPath(input)).rejects.toThrow(re);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
describe('large-text indexing into the DocumentStore', () => {
|
|
116
|
+
const bigText = { fileId: 'f1', fileName: 'big.txt', contentType: 'text', size: 999999, tokenEstimate: 99999 };
|
|
117
|
+
const smallText = { fileId: 'f2', fileName: 'note.txt', contentType: 'text', size: 100, tokenEstimate: 50 };
|
|
118
|
+
let dm, fasIdx, idxSvc;
|
|
119
|
+
|
|
120
|
+
beforeEach(() => {
|
|
121
|
+
dm = { remember: jest.fn().mockResolvedValue({ docId: 'doc-1' }) };
|
|
122
|
+
fasIdx = {
|
|
123
|
+
uploadFile: jest.fn().mockResolvedValue(bigText),
|
|
124
|
+
getAttachmentContent: jest.fn().mockResolvedValue('a very long document body'.repeat(100)),
|
|
125
|
+
updateAttachment: jest.fn().mockResolvedValue(undefined),
|
|
126
|
+
};
|
|
127
|
+
idxSvc = new AttachmentIngestionService({ fileAttachmentService: fasIdx, documentMemory: dm, fs, tempDir: '/tmp/ingest', idgen: () => 'id1' });
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
test('large text → remembered in the store and linked by docId', async () => {
|
|
131
|
+
const res = await idxSvc.ingestUpload({ agentId: 'a1', fileName: 'big.txt', dataBase64: 'AAAA' });
|
|
132
|
+
expect(dm.remember).toHaveBeenCalledWith('a1', expect.objectContaining({ source: 'big.txt', title: 'big.txt' }));
|
|
133
|
+
expect(fasIdx.updateAttachment).toHaveBeenCalledWith('f1', { docId: 'doc-1', indexed: true });
|
|
134
|
+
expect(res).toMatchObject({ docId: 'doc-1', indexed: true });
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
test('small text is NOT indexed', async () => {
|
|
138
|
+
fasIdx.uploadFile.mockResolvedValueOnce(smallText);
|
|
139
|
+
await idxSvc.ingestUpload({ agentId: 'a1', fileName: 'note.txt', dataBase64: 'AAAA' });
|
|
140
|
+
expect(dm.remember).not.toHaveBeenCalled();
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
test('no documentMemory → never indexes (default behavior)', async () => {
|
|
144
|
+
const res = await svc.ingestUpload({ agentId: 'a1', fileName: 'big.txt', dataBase64: 'AAAA' });
|
|
145
|
+
expect(res).toEqual({ fileId: 'f1', fileName: 'x' }); // svc has no documentMemory
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
test('empty extracted content → skip indexing', async () => {
|
|
149
|
+
fasIdx.getAttachmentContent.mockResolvedValueOnce('');
|
|
150
|
+
const res = await idxSvc.ingestUpload({ agentId: 'a1', fileName: 'big.txt', dataBase64: 'AAAA' });
|
|
151
|
+
expect(dm.remember).not.toHaveBeenCalled();
|
|
152
|
+
expect(res).toBe(bigText);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
test('indexing failure is swallowed; the attachment is still returned', async () => {
|
|
156
|
+
dm.remember.mockRejectedValueOnce(new Error('embeddings down'));
|
|
157
|
+
const res = await idxSvc.ingestUpload({ agentId: 'a1', fileName: 'big.txt', dataBase64: 'AAAA' });
|
|
158
|
+
expect(res).toBe(bigText); // original metadata, no docId
|
|
159
|
+
expect(fasIdx.updateAttachment).not.toHaveBeenCalled();
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
test('ingestServerPath also indexes large text', async () => {
|
|
163
|
+
await idxSvc.ingestServerPath({ agentId: 'a1', filePath: '/srv/big.txt', fileName: 'big.txt' });
|
|
164
|
+
expect(dm.remember).toHaveBeenCalled();
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
test('null metadata from upload is tolerated', async () => {
|
|
168
|
+
fasIdx.uploadFile.mockResolvedValueOnce(null);
|
|
169
|
+
const res = await idxSvc.ingestUpload({ agentId: 'a1', fileName: 'x', dataBase64: 'AAAA' });
|
|
170
|
+
expect(res).toBeNull();
|
|
171
|
+
expect(dm.remember).not.toHaveBeenCalled();
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
describe('defaults', () => {
|
|
176
|
+
test('falls back to an OS temp dir when none injected', () => {
|
|
177
|
+
const s = new AttachmentIngestionService({ fileAttachmentService: fas });
|
|
178
|
+
expect(typeof s.tempDir).toBe('string');
|
|
179
|
+
expect(s.tempDir.length).toBeGreaterThan(0);
|
|
180
|
+
});
|
|
181
|
+
test('constructs with no arguments at all (default options)', () => {
|
|
182
|
+
expect(() => new AttachmentIngestionService()).not.toThrow();
|
|
183
|
+
});
|
|
184
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describe, test, expect } from '@jest/globals';
|
|
2
|
+
import { inAttachmentScope } from '../attachmentScope.js';
|
|
3
|
+
|
|
4
|
+
describe('inAttachmentScope', () => {
|
|
5
|
+
test('no scope (legacy) → always in scope', () => {
|
|
6
|
+
expect(inAttachmentScope({})).toBe(true);
|
|
7
|
+
expect(inAttachmentScope({}, { conversationId: 'c1' })).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
test("'agent' scope → always in scope", () => {
|
|
10
|
+
expect(inAttachmentScope({ scope: 'agent' }, { conversationId: 'c1' })).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
test("'conversation' scope → only when conversationId matches", () => {
|
|
13
|
+
expect(inAttachmentScope({ scope: 'conversation', conversationId: 'c1' }, { conversationId: 'c1' })).toBe(true);
|
|
14
|
+
expect(inAttachmentScope({ scope: 'conversation', conversationId: 'c1' }, { conversationId: 'c2' })).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
test("'conversation' scope with no current conversationId → out of scope", () => {
|
|
17
|
+
expect(inAttachmentScope({ scope: 'conversation', conversationId: 'c1' })).toBe(false);
|
|
18
|
+
});
|
|
19
|
+
test('unknown scope → fail-open (included)', () => {
|
|
20
|
+
expect(inAttachmentScope({ scope: 'weird' }, { conversationId: 'c1' })).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
test('null/undefined attachment → in scope (no throw)', () => {
|
|
23
|
+
expect(inAttachmentScope(null)).toBe(true);
|
|
24
|
+
expect(inAttachmentScope(undefined)).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { describe, test, expect } from '@jest/globals';
|
|
2
|
+
import { classifyAttachment, DEFAULT_THRESHOLDS } from '../attachmentStrategy.js';
|
|
3
|
+
|
|
4
|
+
const strat = (input, cfg) => classifyAttachment(input, cfg).strategy;
|
|
5
|
+
|
|
6
|
+
describe('classifyAttachment — text', () => {
|
|
7
|
+
test('small text (under token threshold) → inline-text', () => {
|
|
8
|
+
expect(strat({ contentType: 'text', tokenEstimate: 500 })).toBe('inline-text');
|
|
9
|
+
});
|
|
10
|
+
test('large text (over token threshold) → document-recall', () => {
|
|
11
|
+
expect(strat({ contentType: 'text', tokenEstimate: 5000 })).toBe('document-recall');
|
|
12
|
+
});
|
|
13
|
+
test('token threshold boundary is inclusive (== stays inline)', () => {
|
|
14
|
+
expect(strat({ contentType: 'text', tokenEstimate: DEFAULT_THRESHOLDS.inlineTextMaxTokens })).toBe('inline-text');
|
|
15
|
+
expect(strat({ contentType: 'text', tokenEstimate: DEFAULT_THRESHOLDS.inlineTextMaxTokens + 1 })).toBe('document-recall');
|
|
16
|
+
});
|
|
17
|
+
test('no token estimate → falls back to byte ceiling', () => {
|
|
18
|
+
expect(strat({ contentType: 'text', byteSize: 1000 })).toBe('inline-text');
|
|
19
|
+
expect(strat({ contentType: 'text', byteSize: DEFAULT_THRESHOLDS.inlineTextMaxBytes + 1 })).toBe('document-recall');
|
|
20
|
+
});
|
|
21
|
+
test('token estimate present overrides bytes (big bytes, tiny tokens → inline)', () => {
|
|
22
|
+
expect(strat({ contentType: 'text', tokenEstimate: 100, byteSize: 10 * 1024 * 1024 })).toBe('inline-text');
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe('classifyAttachment — image', () => {
|
|
27
|
+
test('vision-capable chat model → vision-native', () => {
|
|
28
|
+
expect(strat({ contentType: 'image', byteSize: 1000, modelVisionCapable: true, hasVisionModel: true })).toBe('vision-native');
|
|
29
|
+
});
|
|
30
|
+
test('non-vision chat model but a vision model exists → vision-analyze', () => {
|
|
31
|
+
expect(strat({ contentType: 'image', byteSize: 1000, modelVisionCapable: false, hasVisionModel: true })).toBe('vision-analyze');
|
|
32
|
+
});
|
|
33
|
+
test('no vision model at all → reference', () => {
|
|
34
|
+
expect(strat({ contentType: 'image', byteSize: 1000, modelVisionCapable: false, hasVisionModel: false })).toBe('reference');
|
|
35
|
+
});
|
|
36
|
+
test('oversize image → reference even when vision-capable', () => {
|
|
37
|
+
expect(strat({ contentType: 'image', byteSize: DEFAULT_THRESHOLDS.visionMaxBytes + 1, modelVisionCapable: true, hasVisionModel: true })).toBe('reference');
|
|
38
|
+
});
|
|
39
|
+
test('image at the size boundary is still allowed', () => {
|
|
40
|
+
expect(strat({ contentType: 'image', byteSize: DEFAULT_THRESHOLDS.visionMaxBytes, modelVisionCapable: true })).toBe('vision-native');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
describe('classifyAttachment — pdf', () => {
|
|
45
|
+
test('small PDF + vision model → vision-native', () => {
|
|
46
|
+
expect(strat({ contentType: 'pdf', byteSize: 1000, modelVisionCapable: true })).toBe('vision-native');
|
|
47
|
+
});
|
|
48
|
+
test('PDF without a vision-capable chat model → document-recall', () => {
|
|
49
|
+
expect(strat({ contentType: 'pdf', byteSize: 1000, modelVisionCapable: false })).toBe('document-recall');
|
|
50
|
+
});
|
|
51
|
+
test('oversize PDF even with vision model → document-recall (not native)', () => {
|
|
52
|
+
expect(strat({ contentType: 'pdf', byteSize: DEFAULT_THRESHOLDS.visionMaxBytes + 1, modelVisionCapable: true })).toBe('document-recall');
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
describe('classifyAttachment — binary/unknown + config', () => {
|
|
57
|
+
test('binary → reference', () => {
|
|
58
|
+
expect(strat({ contentType: 'binary', byteSize: 1000 })).toBe('reference');
|
|
59
|
+
});
|
|
60
|
+
test('unknown contentType → reference', () => {
|
|
61
|
+
expect(strat({ contentType: undefined })).toBe('reference');
|
|
62
|
+
});
|
|
63
|
+
test('empty input → reference (no throw)', () => {
|
|
64
|
+
expect(classifyAttachment()).toMatchObject({ strategy: 'reference' });
|
|
65
|
+
});
|
|
66
|
+
test('threshold override is honored', () => {
|
|
67
|
+
expect(strat({ contentType: 'text', tokenEstimate: 800 }, { inlineTextMaxTokens: 500 })).toBe('document-recall');
|
|
68
|
+
});
|
|
69
|
+
test('every result carries a human-readable reason', () => {
|
|
70
|
+
for (const input of [
|
|
71
|
+
{ contentType: 'text', tokenEstimate: 1 },
|
|
72
|
+
{ contentType: 'text', tokenEstimate: 99999 },
|
|
73
|
+
{ contentType: 'image', modelVisionCapable: true },
|
|
74
|
+
{ contentType: 'image', hasVisionModel: true },
|
|
75
|
+
{ contentType: 'image' },
|
|
76
|
+
{ contentType: 'pdf', modelVisionCapable: true },
|
|
77
|
+
{ contentType: 'pdf' },
|
|
78
|
+
{ contentType: 'binary' },
|
|
79
|
+
]) {
|
|
80
|
+
const r = classifyAttachment(input);
|
|
81
|
+
expect(typeof r.reason).toBe('string');
|
|
82
|
+
expect(r.reason.length).toBeGreaterThan(0);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment context builder — turn-time materialization of a chat agent's
|
|
3
|
+
* active attachments, applying the per-attachment strategy.
|
|
4
|
+
*
|
|
5
|
+
* - inline-text → the full text in an <attached-files> <file> block
|
|
6
|
+
* - document-recall → only the chunks relevant to the current query, pulled
|
|
7
|
+
* from the DocumentStore by the attachment's docId
|
|
8
|
+
* - vision-* → a text analysis from a (separate) vision model, when a
|
|
9
|
+
* visionAnalysisService is wired; otherwise a reference
|
|
10
|
+
* - reference → a lightweight pointer in <file-references>
|
|
11
|
+
*
|
|
12
|
+
* Output is { systemAdditions, contentBlocks }. systemAdditions is appended to
|
|
13
|
+
* the system prompt each turn (so it survives compaction by construction);
|
|
14
|
+
* contentBlocks is reserved for future native multimodal turns. Everything is
|
|
15
|
+
* best-effort: a failure on any single attachment degrades it to a reference
|
|
16
|
+
* and never breaks the turn.
|
|
17
|
+
*/
|
|
18
|
+
import { classifyAttachment } from './attachmentStrategy.js';
|
|
19
|
+
import { inAttachmentScope } from './attachmentScope.js';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Extract the most recent user message text from a conversation array, to use
|
|
23
|
+
* as the recall/vision focus query. Handles both string content and multimodal
|
|
24
|
+
* content arrays. Returns '' when there's no usable user text.
|
|
25
|
+
* @param {Array} messages
|
|
26
|
+
* @returns {string}
|
|
27
|
+
*/
|
|
28
|
+
export function latestUserQuery(messages) {
|
|
29
|
+
if (!Array.isArray(messages)) return '';
|
|
30
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
31
|
+
const m = messages[i];
|
|
32
|
+
if (!m || m.role !== 'user') continue;
|
|
33
|
+
if (typeof m.content === 'string') return m.content;
|
|
34
|
+
if (Array.isArray(m.content)) {
|
|
35
|
+
const t = m.content.find((c) => c && c.type === 'text' && typeof c.text === 'string');
|
|
36
|
+
return t ? t.text : '';
|
|
37
|
+
}
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const escapeXml = (t) => String(t ?? '')
|
|
44
|
+
.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>')
|
|
45
|
+
.replace(/"/g, '"');
|
|
46
|
+
|
|
47
|
+
export class AttachmentContextBuilder {
|
|
48
|
+
constructor({ attachmentService, documentMemory = null, visionAnalysisService = null, classify = classifyAttachment, logger = null } = {}) {
|
|
49
|
+
this.attachmentService = attachmentService;
|
|
50
|
+
this.documentMemory = documentMemory;
|
|
51
|
+
this.visionAnalysisService = visionAnalysisService;
|
|
52
|
+
this.classify = classify;
|
|
53
|
+
this.logger = logger;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @param {string} agentId
|
|
58
|
+
* @param {Object} [opts]
|
|
59
|
+
* @param {string} [opts.query] - recent user text, used for recall + vision focus
|
|
60
|
+
* @param {Object} [opts.model] - { visionCapable } of the active chat model
|
|
61
|
+
* @param {number} [opts.recallTopK]
|
|
62
|
+
* @param {Object} [opts.thresholds] - strategy threshold overrides
|
|
63
|
+
* @returns {Promise<{systemAdditions: string, contentBlocks: Array}>}
|
|
64
|
+
*/
|
|
65
|
+
async build(agentId, { query = '', model = {}, recallTopK = 5, thresholds, conversationId = null } = {}) {
|
|
66
|
+
const out = { systemAdditions: '', contentBlocks: [] };
|
|
67
|
+
if (!this.attachmentService || !agentId) return out;
|
|
68
|
+
|
|
69
|
+
let active;
|
|
70
|
+
try {
|
|
71
|
+
active = await this.attachmentService.getActiveAttachments(agentId);
|
|
72
|
+
} catch (err) {
|
|
73
|
+
this.logger?.warn?.('[attachmentContext] getActiveAttachments failed', { agentId, error: err?.message });
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
// Scope filter: agent-wide attachments always apply; conversation-scoped
|
|
77
|
+
// ones only on their own conversation.
|
|
78
|
+
active = (active || []).filter((a) => inAttachmentScope(a, { conversationId }));
|
|
79
|
+
if (active.length === 0) return out;
|
|
80
|
+
|
|
81
|
+
const hasVisionModel = model.hasVisionModel ?? (this.visionAnalysisService?.hasVisionModel?.() ?? false);
|
|
82
|
+
const files = [];
|
|
83
|
+
const refs = [];
|
|
84
|
+
|
|
85
|
+
for (const a of active) {
|
|
86
|
+
const { strategy } = this.classify({
|
|
87
|
+
contentType: a.contentType,
|
|
88
|
+
byteSize: a.size,
|
|
89
|
+
tokenEstimate: a.tokenEstimate,
|
|
90
|
+
modelVisionCapable: !!model.visionCapable,
|
|
91
|
+
hasVisionModel,
|
|
92
|
+
}, thresholds);
|
|
93
|
+
|
|
94
|
+
if (strategy === 'inline-text') {
|
|
95
|
+
const content = await this._content(a.fileId);
|
|
96
|
+
if (content) files.push(this._fileBlock(a, escapeXml(content), 'content'));
|
|
97
|
+
else refs.push(this._refBlock(a, 'content unavailable'));
|
|
98
|
+
} else if (strategy === 'document-recall') {
|
|
99
|
+
const excerpts = await this._recall(agentId, a, query, recallTopK);
|
|
100
|
+
if (excerpts) {
|
|
101
|
+
files.push(this._fileBlock(a, excerpts, 'recall'));
|
|
102
|
+
} else {
|
|
103
|
+
// Not indexed yet / no query / embeddings off → inline the full
|
|
104
|
+
// content so the model still sees it (no regression vs. the previous
|
|
105
|
+
// always-inline behavior). Recall is the optimization, not a gate.
|
|
106
|
+
const content = await this._content(a.fileId);
|
|
107
|
+
if (content) files.push(this._fileBlock(a, escapeXml(content), 'content'));
|
|
108
|
+
else refs.push(this._refBlock(a, 'content unavailable'));
|
|
109
|
+
}
|
|
110
|
+
} else if (strategy === 'vision-native' || strategy === 'vision-analyze') {
|
|
111
|
+
const analysis = await this._analyze(a, query);
|
|
112
|
+
if (analysis) files.push(this._fileBlock(a, analysis, 'vision'));
|
|
113
|
+
else refs.push(this._refBlock(a, 'image attached — vision analysis unavailable'));
|
|
114
|
+
} else {
|
|
115
|
+
refs.push(this._refBlock(a));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const parts = [];
|
|
120
|
+
if (files.length) parts.push(`<attached-files>\n${files.join('\n')}\n</attached-files>`);
|
|
121
|
+
if (refs.length) {
|
|
122
|
+
parts.push(`<file-references>\n${refs.join('\n')}\n</file-references>`);
|
|
123
|
+
parts.push('Note: referenced files can be read with the filesystem/recall tools if needed.');
|
|
124
|
+
}
|
|
125
|
+
/* istanbul ignore next: active is non-empty here, so a strategy always pushed to files or refs */
|
|
126
|
+
if (parts.length) out.systemAdditions = `\n${parts.join('\n')}\n`;
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async _content(fileId) {
|
|
131
|
+
try {
|
|
132
|
+
return await this.attachmentService.getAttachmentContent(fileId);
|
|
133
|
+
} catch {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
async _recall(agentId, a, query, topK) {
|
|
139
|
+
if (!this.documentMemory || !a.docId || !query || !query.trim()) return null;
|
|
140
|
+
try {
|
|
141
|
+
const { hits } = await this.documentMemory.recall(agentId, query, { docId: a.docId, topK });
|
|
142
|
+
const texts = (hits || []).map((h) => h && h.text).filter(Boolean);
|
|
143
|
+
if (texts.length === 0) return null;
|
|
144
|
+
return `[relevant excerpts]\n${texts.map(escapeXml).join('\n---\n')}`;
|
|
145
|
+
} catch (err) {
|
|
146
|
+
this.logger?.warn?.('[attachmentContext] recall failed', { docId: a.docId, error: err?.message });
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
async _analyze(a, query) {
|
|
152
|
+
if (!this.visionAnalysisService) return null;
|
|
153
|
+
const dataUri = await this._content(a.fileId);
|
|
154
|
+
if (!dataUri) return null;
|
|
155
|
+
const m = /^data:([^;]+);base64,(.*)$/s.exec(dataUri);
|
|
156
|
+
const mimeType = m ? m[1] : (a.fileType || 'image/png');
|
|
157
|
+
const imageBase64 = m ? m[2] : dataUri;
|
|
158
|
+
const focus = query && query.trim() ? `In the context of "${query.trim()}", ` : '';
|
|
159
|
+
const prompt = `${focus}describe this image, transcribe any text, and list the key objects.`;
|
|
160
|
+
try {
|
|
161
|
+
const res = await this.visionAnalysisService.analyze({ imageBase64, mimeType, prompt });
|
|
162
|
+
return res && res.text ? `[vision analysis]\n${escapeXml(res.text)}` : null;
|
|
163
|
+
} catch (err) {
|
|
164
|
+
this.logger?.warn?.('[attachmentContext] vision analysis failed', { fileId: a.fileId, error: err?.message });
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
_typeOf(a) {
|
|
170
|
+
return escapeXml(a.fileType || a.contentType || '');
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
_fileBlock(a, body, mode) {
|
|
174
|
+
const sizeKB = ((a.size || 0) / 1024).toFixed(1);
|
|
175
|
+
return ` <file name="${escapeXml(a.fileName)}" type="${this._typeOf(a)}" size="${sizeKB}KB" mode="${mode}">\n${body}\n </file>`;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
_refBlock(a, note) {
|
|
179
|
+
const pathAttr = a.originalPath ? ` path="${escapeXml(a.originalPath)}"` : '';
|
|
180
|
+
const noteAttr = note ? ` note="${escapeXml(note)}"` : '';
|
|
181
|
+
return ` <file name="${escapeXml(a.fileName)}"${pathAttr} type="${this._typeOf(a)}" mode="reference"${noteAttr} />`;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
export default AttachmentContextBuilder;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment ingestion — the single, binary-safe entry point for chat
|
|
3
|
+
* attachments.
|
|
4
|
+
*
|
|
5
|
+
* The legacy browser path read files with FileReader.readAsText and shipped a
|
|
6
|
+
* UTF-8 string, which corrupted every non-text file (images, PDFs, …). This
|
|
7
|
+
* service accepts the actual bytes as base64, decodes them to a Buffer, and
|
|
8
|
+
* writes a temporary file in BINARY mode before handing off to the existing
|
|
9
|
+
* FileAttachmentService (which validates, hashes, extracts/encodes, and stores
|
|
10
|
+
* under the persistent attachments dir). Server-side files (from the file
|
|
11
|
+
* picker) are passed straight through by path.
|
|
12
|
+
*
|
|
13
|
+
* Dependency-injected (fileAttachmentService / fs / tempDir / id generator) so
|
|
14
|
+
* it is fully unit-testable without touching disk.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import path from 'path';
|
|
18
|
+
import os from 'os';
|
|
19
|
+
import { promises as realFs } from 'fs';
|
|
20
|
+
import { randomUUID } from 'crypto';
|
|
21
|
+
import { classifyAttachment } from './attachmentStrategy.js';
|
|
22
|
+
|
|
23
|
+
/** Strip path separators so a client-supplied name can't escape the temp dir. */
|
|
24
|
+
export function safeBaseName(fileName) {
|
|
25
|
+
const base = path.basename(String(fileName || '').trim());
|
|
26
|
+
// Drop anything that isn't a sane filename char; keep dots/dashes/underscores.
|
|
27
|
+
const cleaned = base.replace(/[^\w.\-]+/g, '_').replace(/^\.+/, '');
|
|
28
|
+
return cleaned || 'upload';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class AttachmentIngestionService {
|
|
32
|
+
constructor({ fileAttachmentService, documentMemory = null, classify = classifyAttachment, fs = realFs, tempDir = null, idgen = randomUUID, logger = null } = {}) {
|
|
33
|
+
this.fileAttachmentService = fileAttachmentService;
|
|
34
|
+
this.documentMemory = documentMemory;
|
|
35
|
+
this.classify = classify;
|
|
36
|
+
this.fs = fs;
|
|
37
|
+
this.tempDir = tempDir || path.join(os.tmpdir(), 'loxia-attachment-ingest');
|
|
38
|
+
this.idgen = idgen;
|
|
39
|
+
this.logger = logger;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* After a file is stored, index large text/PDF into the DocumentStore so the
|
|
44
|
+
* context builder can recall only the relevant chunks instead of injecting
|
|
45
|
+
* the whole file every turn. Best-effort: indexing failure leaves the
|
|
46
|
+
* attachment usable (just not semantically searchable). Returns metadata,
|
|
47
|
+
* augmented with { docId, indexed } when indexed.
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
async _afterUpload(agentId, metadata) {
|
|
51
|
+
if (!this.documentMemory || !metadata) return metadata;
|
|
52
|
+
const { strategy } = this.classify({
|
|
53
|
+
contentType: metadata.contentType,
|
|
54
|
+
byteSize: metadata.size,
|
|
55
|
+
tokenEstimate: metadata.tokenEstimate,
|
|
56
|
+
});
|
|
57
|
+
if (strategy !== 'document-recall') return metadata;
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
const content = await this.fileAttachmentService.getAttachmentContent(metadata.fileId);
|
|
61
|
+
if (!content) return metadata;
|
|
62
|
+
const { docId } = await this.documentMemory.remember(agentId, {
|
|
63
|
+
content,
|
|
64
|
+
source: metadata.fileName,
|
|
65
|
+
title: metadata.fileName,
|
|
66
|
+
});
|
|
67
|
+
await this.fileAttachmentService.updateAttachment(metadata.fileId, { docId, indexed: true });
|
|
68
|
+
return { ...metadata, docId, indexed: true };
|
|
69
|
+
} catch (err) {
|
|
70
|
+
this.logger?.warn?.('[attachmentIngestion] large-text indexing failed', {
|
|
71
|
+
fileId: metadata.fileId, error: err?.message,
|
|
72
|
+
});
|
|
73
|
+
return metadata;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Ingest raw uploaded bytes (base64). Binary-safe.
|
|
79
|
+
* @param {Object} opts
|
|
80
|
+
* @param {string} opts.agentId
|
|
81
|
+
* @param {string} opts.fileName
|
|
82
|
+
* @param {string} opts.dataBase64 - base64 of the file's actual bytes
|
|
83
|
+
* @param {string} [opts.mode] - 'content' | 'reference' (default 'content')
|
|
84
|
+
* @returns {Promise<Object>} attachment metadata (from FileAttachmentService)
|
|
85
|
+
*/
|
|
86
|
+
async ingestUpload({ agentId, fileName, dataBase64, mode = 'content', scope = 'agent', conversationId = null }) {
|
|
87
|
+
if (!agentId) throw new Error('agentId is required');
|
|
88
|
+
if (!fileName) throw new Error('fileName is required');
|
|
89
|
+
if (typeof dataBase64 !== 'string' || dataBase64.length === 0) {
|
|
90
|
+
throw new Error('dataBase64 is required');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Accept either a bare base64 string or a data: URI.
|
|
94
|
+
const comma = dataBase64.indexOf(',');
|
|
95
|
+
const b64 = dataBase64.startsWith('data:') && comma !== -1 ? dataBase64.slice(comma + 1) : dataBase64;
|
|
96
|
+
const buffer = Buffer.from(b64, 'base64');
|
|
97
|
+
|
|
98
|
+
await this.fs.mkdir(this.tempDir, { recursive: true });
|
|
99
|
+
const tmpPath = path.join(this.tempDir, `${this.idgen()}-${safeBaseName(fileName)}`);
|
|
100
|
+
|
|
101
|
+
// BINARY write — no 'utf8'. This is the corruption fix.
|
|
102
|
+
await this.fs.writeFile(tmpPath, buffer);
|
|
103
|
+
|
|
104
|
+
let metadata;
|
|
105
|
+
try {
|
|
106
|
+
metadata = await this.fileAttachmentService.uploadFile({ agentId, filePath: tmpPath, mode, fileName, scope, conversationId });
|
|
107
|
+
} finally {
|
|
108
|
+
// Best-effort cleanup of the staging file (the store keeps its own copy).
|
|
109
|
+
try { await this.fs.unlink(tmpPath); } catch { /* already gone — fine */ }
|
|
110
|
+
}
|
|
111
|
+
return this._afterUpload(agentId, metadata);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Ingest a file that already lives on the server (file-picker path).
|
|
116
|
+
* @param {Object} opts
|
|
117
|
+
* @param {string} opts.agentId
|
|
118
|
+
* @param {string} opts.filePath
|
|
119
|
+
* @param {string} [opts.mode]
|
|
120
|
+
* @param {string} [opts.fileName]
|
|
121
|
+
* @returns {Promise<Object>} attachment metadata
|
|
122
|
+
*/
|
|
123
|
+
async ingestServerPath({ agentId, filePath, mode = 'content', fileName = null, scope = 'agent', conversationId = null }) {
|
|
124
|
+
if (!agentId) throw new Error('agentId is required');
|
|
125
|
+
if (!filePath) throw new Error('filePath is required');
|
|
126
|
+
const metadata = await this.fileAttachmentService.uploadFile({ agentId, filePath, mode, fileName, scope, conversationId });
|
|
127
|
+
return this._afterUpload(agentId, metadata);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export default AttachmentIngestionService;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment scope — pure predicate deciding whether an attachment applies to
|
|
3
|
+
* the current turn.
|
|
4
|
+
*
|
|
5
|
+
* - 'agent' (default / legacy): always in scope — persistent for the agent.
|
|
6
|
+
* - 'conversation': in scope only when its conversationId matches the current
|
|
7
|
+
* conversation (sessionId), so a file attached in one chat doesn't pollute
|
|
8
|
+
* unrelated later turns.
|
|
9
|
+
*
|
|
10
|
+
* Backward compatible: attachments with no `scope` are treated as 'agent'.
|
|
11
|
+
* Fail-open: an unrecognized scope is included rather than silently dropped.
|
|
12
|
+
*/
|
|
13
|
+
export function inAttachmentScope(attachment, { conversationId = null } = {}) {
|
|
14
|
+
const scope = attachment?.scope;
|
|
15
|
+
if (!scope || scope === 'agent') return true;
|
|
16
|
+
if (scope === 'conversation') {
|
|
17
|
+
return !!conversationId && attachment.conversationId === conversationId;
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default inAttachmentScope;
|